w-flow-vue 1.0.21 → 1.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * app v1.0.21
2
+ * app v1.0.22
3
3
  * (c) 2018-2021 yuda-lyu(semisphere)
4
4
  * Released under the MIT License.
5
5
  */
6
- !function(n,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(n="undefined"!=typeof globalThis?globalThis:n||self).app=e()}(this,function(){"use strict";var n=Array.isArray,e="object"==typeof global&&global&&global.Object===Object&&global,t="object"==typeof self&&self&&self.Object===Object&&self,o=e||t||Function("return this")(),r=o.Symbol,i=Object.prototype,a=i.hasOwnProperty,s=i.toString,l=r?r.toStringTag:void 0;var d=Object.prototype.toString;var u=r?r.toStringTag:void 0;function c(n){return null==n?void 0===n?"[object Undefined]":"[object Null]":u&&u in Object(n)?function(n){var e=a.call(n,l),t=n[l];try{n[l]=void 0;var o=!0}catch(n){}var r=s.call(n);return o&&(e?n[l]=t:delete n[l]),r}(n):function(n){return d.call(n)}(n)}function p(n){return null!=n&&"object"==typeof n}function f(n){return"symbol"==typeof n||p(n)&&"[object Symbol]"==c(n)}var h=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,g=/^\w*$/;function v(e,t){if(n(e))return!1;var o=typeof e;return!("number"!=o&&"symbol"!=o&&"boolean"!=o&&null!=e&&!f(e))||(g.test(e)||!h.test(e)||null!=t&&e in Object(t))}function m(n){var e=typeof n;return null!=n&&("object"==e||"function"==e)}function A(n){if(!m(n))return!1;var e=c(n);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}var b,y=o["__core-js_shared__"],C=(b=/[^.]+$/.exec(y&&y.keys&&y.keys.IE_PROTO||""))?"Symbol(src)_1."+b:"";var x=Function.prototype.toString;function w(n){if(null!=n){try{return x.call(n)}catch(n){}try{return n+""}catch(n){}}return""}var S=/^\[object .+?Constructor\]$/,k=Function.prototype,_=Object.prototype,B=k.toString,P=_.hasOwnProperty,T=RegExp("^"+B.call(P).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function E(n){return!(!m(n)||(e=n,C&&C in e))&&(A(n)?T:S).test(w(n));var e}function z(n,e){var t=function(n,e){return null==n?void 0:n[e]}(n,e);return E(t)?t:void 0}var I=z(Object,"create");var F=Object.prototype.hasOwnProperty;var H=Object.prototype.hasOwnProperty;function N(n){var e=-1,t=null==n?0:n.length;for(this.clear();++e<t;){var o=n[e];this.set(o[0],o[1])}}function $(n,e){return n===e||n!=n&&e!=e}function W(n,e){for(var t=n.length;t--;)if($(n[t][0],e))return t;return-1}N.prototype.clear=function(){this.__data__=I?I(null):{},this.size=0},N.prototype.delete=function(n){var e=this.has(n)&&delete this.__data__[n];return this.size-=e?1:0,e},N.prototype.get=function(n){var e=this.__data__;if(I){var t=e[n];return"__lodash_hash_undefined__"===t?void 0:t}return F.call(e,n)?e[n]:void 0},N.prototype.has=function(n){var e=this.__data__;return I?void 0!==e[n]:H.call(e,n)},N.prototype.set=function(n,e){var t=this.__data__;return this.size+=this.has(n)?0:1,t[n]=I&&void 0===e?"__lodash_hash_undefined__":e,this};var M=Array.prototype.splice;function L(n){var e=-1,t=null==n?0:n.length;for(this.clear();++e<t;){var o=n[e];this.set(o[0],o[1])}}L.prototype.clear=function(){this.__data__=[],this.size=0},L.prototype.delete=function(n){var e=this.__data__,t=W(e,n);return!(t<0)&&(t==e.length-1?e.pop():M.call(e,t,1),--this.size,!0)},L.prototype.get=function(n){var e=this.__data__,t=W(e,n);return t<0?void 0:e[t][1]},L.prototype.has=function(n){return W(this.__data__,n)>-1},L.prototype.set=function(n,e){var t=this.__data__,o=W(t,n);return o<0?(++this.size,t.push([n,e])):t[o][1]=e,this};var D=z(o,"Map");function R(n,e){var t,o,r=n.__data__;return("string"==(o=typeof(t=e))||"number"==o||"symbol"==o||"boolean"==o?"__proto__"!==t:null===t)?r["string"==typeof e?"string":"hash"]:r.map}function j(n){var e=-1,t=null==n?0:n.length;for(this.clear();++e<t;){var o=n[e];this.set(o[0],o[1])}}j.prototype.clear=function(){this.size=0,this.__data__={hash:new N,map:new(D||L),string:new N}},j.prototype.delete=function(n){var e=R(this,n).delete(n);return this.size-=e?1:0,e},j.prototype.get=function(n){return R(this,n).get(n)},j.prototype.has=function(n){return R(this,n).has(n)},j.prototype.set=function(n,e){var t=R(this,n),o=t.size;return t.set(n,e),this.size+=t.size==o?0:1,this};function O(n,e){if("function"!=typeof n||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var t=function(){var o=arguments,r=e?e.apply(this,o):o[0],i=t.cache;if(i.has(r))return i.get(r);var a=n.apply(this,o);return t.cache=i.set(r,a)||i,a};return t.cache=new(O.Cache||j),t}O.Cache=j;var V,Y,U,X=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,G=/\\(\\)?/g,Z=(V=function(n){var e=[];return 46===n.charCodeAt(0)&&e.push(""),n.replace(X,function(n,t,o,r){e.push(o?r.replace(G,"$1"):t||n)}),e},Y=O(V,function(n){return 500===U.size&&U.clear(),n}),U=Y.cache,Y),q=Z;function J(n,e){for(var t=-1,o=null==n?0:n.length,r=Array(o);++t<o;)r[t]=e(n[t],t,n);return r}var Q=r?r.prototype:void 0,K=Q?Q.toString:void 0;function nn(e){if("string"==typeof e)return e;if(n(e))return J(e,nn)+"";if(f(e))return K?K.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function en(n){return null==n?"":nn(n)}function tn(e,t){return n(e)?e:v(e,t)?[e]:q(en(e))}function on(n){if("string"==typeof n||f(n))return n;var e=n+"";return"0"==e&&1/n==-1/0?"-0":e}function rn(n,e){for(var t=0,o=(e=tn(e,n)).length;null!=n&&t<o;)n=n[on(e[t++])];return t&&t==o?n:void 0}function an(n,e,t){var o=null==n?void 0:rn(n,e);return void 0===o?t:o}function sn(n,e){for(var t=-1,o=null==n?0:n.length;++t<o&&!1!==e(n[t],t,n););return n}var ln,dn=function(n,e,t){for(var o=-1,r=Object(n),i=t(n),a=i.length;a--;){var s=i[ln?a:++o];if(!1===e(r[s],s,r))break}return n},un=dn;function cn(n){return p(n)&&"[object Arguments]"==c(n)}var pn=Object.prototype,fn=pn.hasOwnProperty,hn=pn.propertyIsEnumerable,gn=cn(function(){return arguments}())?cn:function(n){return p(n)&&fn.call(n,"callee")&&!hn.call(n,"callee")},vn=gn;var mn="object"==typeof exports&&exports&&!exports.nodeType&&exports,An=mn&&"object"==typeof module&&module&&!module.nodeType&&module,bn=An&&An.exports===mn?o.Buffer:void 0,yn=(bn?bn.isBuffer:void 0)||function(){return!1},Cn=/^(?:0|[1-9]\d*)$/;function xn(n,e){var t=typeof n;return!!(e=null==e?9007199254740991:e)&&("number"==t||"symbol"!=t&&Cn.test(n))&&n>-1&&n%1==0&&n<e}function wn(n){return"number"==typeof n&&n>-1&&n%1==0&&n<=9007199254740991}var Sn={};function kn(n){return function(e){return n(e)}}Sn["[object Float32Array]"]=Sn["[object Float64Array]"]=Sn["[object Int8Array]"]=Sn["[object Int16Array]"]=Sn["[object Int32Array]"]=Sn["[object Uint8Array]"]=Sn["[object Uint8ClampedArray]"]=Sn["[object Uint16Array]"]=Sn["[object Uint32Array]"]=!0,Sn["[object Arguments]"]=Sn["[object Array]"]=Sn["[object ArrayBuffer]"]=Sn["[object Boolean]"]=Sn["[object DataView]"]=Sn["[object Date]"]=Sn["[object Error]"]=Sn["[object Function]"]=Sn["[object Map]"]=Sn["[object Number]"]=Sn["[object Object]"]=Sn["[object RegExp]"]=Sn["[object Set]"]=Sn["[object String]"]=Sn["[object WeakMap]"]=!1;var _n="object"==typeof exports&&exports&&!exports.nodeType&&exports,Bn=_n&&"object"==typeof module&&module&&!module.nodeType&&module,Pn=Bn&&Bn.exports===_n&&e.process,Tn=function(){try{var n=Bn&&Bn.require&&Bn.require("util").types;return n||Pn&&Pn.binding&&Pn.binding("util")}catch(n){}}(),En=Tn&&Tn.isTypedArray,zn=En?kn(En):function(n){return p(n)&&wn(n.length)&&!!Sn[c(n)]},In=Object.prototype.hasOwnProperty;function Fn(e,t){var o=n(e),r=!o&&vn(e),i=!o&&!r&&yn(e),a=!o&&!r&&!i&&zn(e),s=o||r||i||a,l=s?function(n,e){for(var t=-1,o=Array(n);++t<n;)o[t]=e(t);return o}(e.length,String):[],d=l.length;for(var u in e)!t&&!In.call(e,u)||s&&("length"==u||i&&("offset"==u||"parent"==u)||a&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||xn(u,d))||l.push(u);return l}var Hn=Object.prototype;function Nn(n){var e=n&&n.constructor;return n===("function"==typeof e&&e.prototype||Hn)}function $n(n,e){return function(t){return n(e(t))}}var Wn=$n(Object.keys,Object),Mn=Object.prototype.hasOwnProperty;function Ln(n){if(!Nn(n))return Wn(n);var e=[];for(var t in Object(n))Mn.call(n,t)&&"constructor"!=t&&e.push(t);return e}function Dn(n){return null!=n&&wn(n.length)&&!A(n)}function Rn(n){return Dn(n)?Fn(n):Ln(n)}var jn=function(n,e){return function(t,o){if(null==t)return t;if(!Dn(t))return n(t,o);for(var r=t.length,i=e?r:-1,a=Object(t);(e?i--:++i<r)&&!1!==o(a[i],i,a););return t}}(function(n,e){return n&&un(n,e,Rn)}),On=jn;function Vn(n){return n}function Yn(e,t){var o;return(n(e)?sn:On)(e,"function"==typeof(o=t)?o:Vn)}function Un(n,e,t){var o=n.length;return t=void 0===t?o:t,!e&&t>=o?n:function(n,e,t){var o=-1,r=n.length;e<0&&(e=-e>r?0:r+e),(t=t>r?r:t)<0&&(t+=r),r=e>t?0:t-e>>>0,e>>>=0;for(var i=Array(r);++o<r;)i[o]=n[o+e];return i}(n,e,t)}var Xn=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");function Gn(n){return Xn.test(n)}function Zn(n,e,t){if(!m(t))return!1;var o=typeof e;return!!("number"==o?Dn(t)&&xn(e,t.length):"string"==o&&e in t)&&$(t[e],n)}var qn=Tn&&Tn.isRegExp,Jn=qn?kn(qn):function(n){return p(n)&&"[object RegExp]"==c(n)};var Qn="\\ud800-\\udfff",Kn="["+Qn+"]",ne="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",ee="\\ud83c[\\udffb-\\udfff]",te="[^"+Qn+"]",oe="(?:\\ud83c[\\udde6-\\uddff]){2}",re="[\\ud800-\\udbff][\\udc00-\\udfff]",ie="(?:"+ne+"|"+ee+")"+"?",ae="[\\ufe0e\\ufe0f]?",se=ae+ie+("(?:\\u200d(?:"+[te,oe,re].join("|")+")"+ae+ie+")*"),le="(?:"+[te+ne+"?",ne,oe,re,Kn].join("|")+")",de=RegExp(ee+"(?="+ee+")|"+le+se,"g");function ue(n){return Gn(n)?function(n){return n.match(de)||[]}(n):function(n){return n.split("")}(n)}function ce(n,e,t){return t&&"number"!=typeof t&&Zn(n,e,t)&&(e=t=void 0),(t=void 0===t?4294967295:t>>>0)?(n=en(n))&&("string"==typeof e||null!=e&&!Jn(e))&&!(e=nn(e))&&Gn(n)?Un(ue(n),0,t):n.split(e,t):[]}function pe(n){var e=this.__data__=new L(n);this.size=e.size}pe.prototype.clear=function(){this.__data__=new L,this.size=0},pe.prototype.delete=function(n){var e=this.__data__,t=e.delete(n);return this.size=e.size,t},pe.prototype.get=function(n){return this.__data__.get(n)},pe.prototype.has=function(n){return this.__data__.has(n)},pe.prototype.set=function(n,e){var t=this.__data__;if(t instanceof L){var o=t.__data__;if(!D||o.length<199)return o.push([n,e]),this.size=++t.size,this;t=this.__data__=new j(o)}return t.set(n,e),this.size=t.size,this};function fe(n){var e=-1,t=null==n?0:n.length;for(this.__data__=new j;++e<t;)this.add(n[e])}function he(n,e){for(var t=-1,o=null==n?0:n.length;++t<o;)if(e(n[t],t,n))return!0;return!1}function ge(n,e){return n.has(e)}fe.prototype.add=fe.prototype.push=function(n){return this.__data__.set(n,"__lodash_hash_undefined__"),this},fe.prototype.has=function(n){return this.__data__.has(n)};function ve(n,e,t,o,r,i){var a=1&t,s=n.length,l=e.length;if(s!=l&&!(a&&l>s))return!1;var d=i.get(n),u=i.get(e);if(d&&u)return d==e&&u==n;var c=-1,p=!0,f=2&t?new fe:void 0;for(i.set(n,e),i.set(e,n);++c<s;){var h=n[c],g=e[c];if(o)var v=a?o(g,h,c,e,n,i):o(h,g,c,n,e,i);if(void 0!==v){if(v)continue;p=!1;break}if(f){if(!he(e,function(n,e){if(!ge(f,e)&&(h===n||r(h,n,t,o,i)))return f.push(e)})){p=!1;break}}else if(h!==g&&!r(h,g,t,o,i)){p=!1;break}}return i.delete(n),i.delete(e),p}var me=o.Uint8Array;function Ae(n){var e=-1,t=Array(n.size);return n.forEach(function(n,o){t[++e]=[o,n]}),t}function be(n){var e=-1,t=Array(n.size);return n.forEach(function(n){t[++e]=n}),t}var ye=r?r.prototype:void 0,Ce=ye?ye.valueOf:void 0;function xe(n,e){for(var t=-1,o=e.length,r=n.length;++t<o;)n[r+t]=e[t];return n}function we(e,t,o){var r=t(e);return n(e)?r:xe(r,o(e))}function Se(){return[]}var ke=Object.prototype.propertyIsEnumerable,_e=Object.getOwnPropertySymbols,Be=_e?function(n){return null==n?[]:(n=Object(n),function(n,e){for(var t=-1,o=null==n?0:n.length,r=0,i=[];++t<o;){var a=n[t];e(a,t,n)&&(i[r++]=a)}return i}(_e(n),function(e){return ke.call(n,e)}))}:Se,Pe=Be;function Te(n){return we(n,Rn,Pe)}var Ee=Object.prototype.hasOwnProperty;var ze=z(o,"DataView"),Ie=z(o,"Promise"),Fe=z(o,"Set"),He=z(o,"WeakMap"),Ne="[object Map]",$e="[object Promise]",We="[object Set]",Me="[object WeakMap]",Le="[object DataView]",De=w(ze),Re=w(D),je=w(Ie),Oe=w(Fe),Ve=w(He),Ye=c;(ze&&Ye(new ze(new ArrayBuffer(1)))!=Le||D&&Ye(new D)!=Ne||Ie&&Ye(Ie.resolve())!=$e||Fe&&Ye(new Fe)!=We||He&&Ye(new He)!=Me)&&(Ye=function(n){var e=c(n),t="[object Object]"==e?n.constructor:void 0,o=t?w(t):"";if(o)switch(o){case De:return Le;case Re:return Ne;case je:return $e;case Oe:return We;case Ve:return Me}return e});var Ue=Ye,Xe="[object Arguments]",Ge="[object Array]",Ze="[object Object]",qe=Object.prototype.hasOwnProperty;function Je(e,t,o,r,i,a){var s=n(e),l=n(t),d=s?Ge:Ue(e),u=l?Ge:Ue(t),c=(d=d==Xe?Ze:d)==Ze,p=(u=u==Xe?Ze:u)==Ze,f=d==u;if(f&&yn(e)){if(!yn(t))return!1;s=!0,c=!1}if(f&&!c)return a||(a=new pe),s||zn(e)?ve(e,t,o,r,i,a):function(n,e,t,o,r,i,a){switch(t){case"[object DataView]":if(n.byteLength!=e.byteLength||n.byteOffset!=e.byteOffset)return!1;n=n.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(n.byteLength!=e.byteLength||!i(new me(n),new me(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return $(+n,+e);case"[object Error]":return n.name==e.name&&n.message==e.message;case"[object RegExp]":case"[object String]":return n==e+"";case"[object Map]":var s=Ae;case"[object Set]":var l=1&o;if(s||(s=be),n.size!=e.size&&!l)return!1;var d=a.get(n);if(d)return d==e;o|=2,a.set(n,e);var u=ve(s(n),s(e),o,r,i,a);return a.delete(n),u;case"[object Symbol]":if(Ce)return Ce.call(n)==Ce.call(e)}return!1}(e,t,d,o,r,i,a);if(!(1&o)){var h=c&&qe.call(e,"__wrapped__"),g=p&&qe.call(t,"__wrapped__");if(h||g){var v=h?e.value():e,m=g?t.value():t;return a||(a=new pe),i(v,m,o,r,a)}}return!!f&&(a||(a=new pe),function(n,e,t,o,r,i){var a=1&t,s=Te(n),l=s.length;if(l!=Te(e).length&&!a)return!1;for(var d=l;d--;){var u=s[d];if(!(a?u in e:Ee.call(e,u)))return!1}var c=i.get(n),p=i.get(e);if(c&&p)return c==e&&p==n;var f=!0;i.set(n,e),i.set(e,n);for(var h=a;++d<l;){var g=n[u=s[d]],v=e[u];if(o)var m=a?o(v,g,u,e,n,i):o(g,v,u,n,e,i);if(!(void 0===m?g===v||r(g,v,t,o,i):m)){f=!1;break}h||(h="constructor"==u)}if(f&&!h){var A=n.constructor,b=e.constructor;A==b||!("constructor"in n)||!("constructor"in e)||"function"==typeof A&&A instanceof A&&"function"==typeof b&&b instanceof b||(f=!1)}return i.delete(n),i.delete(e),f}(e,t,o,r,i,a))}function Qe(n,e,t,o,r){return n===e||(null==n||null==e||!p(n)&&!p(e)?n!=n&&e!=e:Je(n,e,t,o,Qe,r))}function Ke(n){return n==n&&!m(n)}function nt(n,e){return function(t){return null!=t&&(t[n]===e&&(void 0!==e||n in Object(t)))}}function et(n){var e=function(n){for(var e=Rn(n),t=e.length;t--;){var o=e[t],r=n[o];e[t]=[o,r,Ke(r)]}return e}(n);return 1==e.length&&e[0][2]?nt(e[0][0],e[0][1]):function(t){return t===n||function(n,e,t,o){var r=t.length,i=r,a=!o;if(null==n)return!i;for(n=Object(n);r--;){var s=t[r];if(a&&s[2]?s[1]!==n[s[0]]:!(s[0]in n))return!1}for(;++r<i;){var l=(s=t[r])[0],d=n[l],u=s[1];if(a&&s[2]){if(void 0===d&&!(l in n))return!1}else{var c=new pe;if(o)var p=o(d,u,l,n,e,c);if(!(void 0===p?Qe(u,d,3,o,c):p))return!1}}return!0}(t,n,e)}}function tt(n,e){return null!=n&&e in Object(n)}function ot(e,t){return null!=e&&function(e,t,o){for(var r=-1,i=(t=tn(t,e)).length,a=!1;++r<i;){var s=on(t[r]);if(!(a=null!=e&&o(e,s)))break;e=e[s]}return a||++r!=i?a:!!(i=null==e?0:e.length)&&wn(i)&&xn(s,i)&&(n(e)||vn(e))}(e,t,tt)}function rt(n){return function(e){return null==e?void 0:e[n]}}function it(n){return v(n)?rt(on(n)):function(n){return function(e){return rn(e,n)}}(n)}function at(e){return"function"==typeof e?e:null==e?Vn:"object"==typeof e?n(e)?(t=e[0],o=e[1],v(t)&&Ke(o)?nt(on(t),o):function(n){var e=an(n,t);return void 0===e&&e===o?ot(n,t):Qe(o,e,3)}):et(e):it(e);var t,o}function st(n,e){var t=-1,o=Dn(n)?Array(n.length):[];return On(n,function(n,r,i){o[++t]=e(n,r,i)}),o}function lt(e,t){return(n(e)?J:st)(e,at(t))}var dt=function(){try{var n=z(Object,"defineProperty");return n({},"",{}),n}catch(n){}}(),ut=dt;function ct(n,e,t){"__proto__"==e&&ut?ut(n,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):n[e]=t}function pt(n){return"[object String]"===Object.prototype.toString.call(n)}function ft(n){return!(!pt(n)||""===n)}function ht(n){if(!ft(n))return{};if(!ft(n=an(n=ce(n,"?"),"[1]")))return{};let e=ce(n,"&");return e=lt(e,function(n){return ce(n,"=")}),e=function(n){for(var e=-1,t=null==n?0:n.length,o={};++e<t;){var r=n[e];ct(o,r[0],r[1])}return o}(e),e}var gt=rt("length"),vt="\\ud800-\\udfff",mt="["+vt+"]",At="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",bt="\\ud83c[\\udffb-\\udfff]",yt="[^"+vt+"]",Ct="(?:\\ud83c[\\udde6-\\uddff]){2}",xt="[\\ud800-\\udbff][\\udc00-\\udfff]",wt="(?:"+At+"|"+bt+")"+"?",St="[\\ufe0e\\ufe0f]?",kt=St+wt+("(?:\\u200d(?:"+[yt,Ct,xt].join("|")+")"+St+wt+")*"),_t="(?:"+[yt+At+"?",At,Ct,xt,mt].join("|")+")",Bt=RegExp(bt+"(?="+bt+")|"+_t+kt,"g");function Pt(n){return Gn(n)?function(n){for(var e=Bt.lastIndex=0;Bt.test(n);)++e;return e}(n):gt(n)}function Tt(e){if(null==e)return 0;if(Dn(e))return"string"==typeof(t=e)||!n(t)&&p(t)&&"[object String]"==c(t)?Pt(e):e.length;var t,o=Ue(e);return"[object Map]"==o||"[object Set]"==o?e.size:Ln(e).length}function Et(n,e){for(var t=-1,o=null==n?0:n.length;++t<o;)if(!e(n[t],t,n))return!1;return!0}function zt(n,e){var t=!0;return On(n,function(n,o,r){return t=!!e(n,o,r)}),t}function It(n,e){return Qe(n,e)}function Ft(n){return"[object Object]"===Object.prototype.toString.call(n)}var Ht=/\s/;var Nt=/^\s+/;function $t(n){return n?n.slice(0,function(n){for(var e=n.length;e--&&Ht.test(n.charAt(e)););return e}(n)+1).replace(Nt,""):n}var Wt=/^[-+]0x[0-9a-f]+$/i,Mt=/^0b[01]+$/i,Lt=/^0o[0-7]+$/i,Dt=parseInt;function Rt(n){if("number"==typeof n)return n;if(f(n))return NaN;if(m(n)){var e="function"==typeof n.valueOf?n.valueOf():n;n=m(e)?e+"":e}if("string"!=typeof n)return 0===n?n:+n;n=$t(n);var t=Mt.test(n);return t||Lt.test(n)?Dt(n.slice(2),t?2:8):Wt.test(n)?NaN:+n}var jt=1/0;function Ot(n){return n?(n=Rt(n))===jt||n===-1/0?17976931348623157e292*(n<0?-1:1):n==n?n:0:0===n?n:0}function Vt(n){var e=Ot(n),t=e%1;return e==e?t?e-t:e:0}function Yt(n){return n!=n}function Ut(n){let e=!1;if(ft(n))e=!isNaN(Number(n));else if(function(n){return"[object Number]"===Object.prototype.toString.call(n)}(n)){if(Yt(n))return!1;e=!0}return e}function Xt(n){if(!Ut(n))return 0;return Ot(n)}function Gt(n){return!!Ut(n)&&(n=Xt(n),"number"==typeof(e=n)&&e==Vt(e));var e}var Zt=o.isFinite,qt=Math.min;var Jt=function(n){var e=Math[n];return function(n,t){if(n=Rt(n),(t=null==t?0:qt(Vt(t),292))&&Zt(n)){var o=(en(n)+"e").split("e");return+((o=(en(e(o[0]+"e"+(+o[1]+t)))+"e").split("e"))[0]+"e"+(+o[1]-t))}return e(n)}}("round"),Qt=Jt;function Kt(n){if(!Ut(n))return 0;n=Xt(n);let e=Qt(n);return"0"===String(e)?0:e}function no(n){if(!Gt(n))return!1;return Kt(n)>0}let eo="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),to=eo.length;function oo(n=32){let e=[];n=no(n)?Kt(n):32;for(let t=0;t<n;t++)e[t]=eo[0|Math.random()*to];return e.join("")}var ro=Object.prototype.hasOwnProperty;function io(n,e,t){var o=n[e];ro.call(n,e)&&$(o,t)&&(void 0!==t||e in n)||ct(n,e,t)}function ao(n,e,t,o){var r=!t;t||(t={});for(var i=-1,a=e.length;++i<a;){var s=e[i],l=o?o(t[s],n[s],s,t,n):void 0;void 0===l&&(l=n[s]),r?ct(t,s,l):io(t,s,l)}return t}var so=Object.prototype.hasOwnProperty;function lo(n){if(!m(n))return function(n){var e=[];if(null!=n)for(var t in Object(n))e.push(t);return e}(n);var e=Nn(n),t=[];for(var o in n)("constructor"!=o||!e&&so.call(n,o))&&t.push(o);return t}function uo(n){return Dn(n)?Fn(n,!0):lo(n)}var co="object"==typeof exports&&exports&&!exports.nodeType&&exports,po=co&&"object"==typeof module&&module&&!module.nodeType&&module,fo=po&&po.exports===co?o.Buffer:void 0,ho=fo?fo.allocUnsafe:void 0;function go(n,e){var t=-1,o=n.length;for(e||(e=Array(o));++t<o;)e[t]=n[t];return e}var vo=$n(Object.getPrototypeOf,Object),mo=Object.getOwnPropertySymbols?function(n){for(var e=[];n;)xe(e,Pe(n)),n=vo(n);return e}:Se,Ao=mo;function bo(n){return we(n,uo,Ao)}var yo=Object.prototype.hasOwnProperty;function Co(n){var e=new n.constructor(n.byteLength);return new me(e).set(new me(n)),e}var xo=/\w*$/;var wo=r?r.prototype:void 0,So=wo?wo.valueOf:void 0;function ko(n,e,t){var o,r=n.constructor;switch(e){case"[object ArrayBuffer]":return Co(n);case"[object Boolean]":case"[object Date]":return new r(+n);case"[object DataView]":return function(n,e){var t=e?Co(n.buffer):n.buffer;return new n.constructor(t,n.byteOffset,n.byteLength)}(n,t);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return function(n,e){var t=e?Co(n.buffer):n.buffer;return new n.constructor(t,n.byteOffset,n.length)}(n,t);case"[object Map]":case"[object Set]":return new r;case"[object Number]":case"[object String]":return new r(n);case"[object RegExp]":return function(n){var e=new n.constructor(n.source,xo.exec(n));return e.lastIndex=n.lastIndex,e}(n);case"[object Symbol]":return o=n,So?Object(So.call(o)):{}}}var _o=Object.create,Bo=function(){function n(){}return function(e){if(!m(e))return{};if(_o)return _o(e);n.prototype=e;var t=new n;return n.prototype=void 0,t}}(),Po=Bo;var To=Tn&&Tn.isMap,Eo=To?kn(To):function(n){return p(n)&&"[object Map]"==Ue(n)};var zo=Tn&&Tn.isSet,Io=zo?kn(zo):function(n){return p(n)&&"[object Set]"==Ue(n)},Fo="[object Arguments]",Ho="[object Function]",No="[object Object]",$o={};function Wo(e,t,o,r,i,a){var s,l=1&t,d=2&t,u=4&t;if(o&&(s=i?o(e,r,i,a):o(e)),void 0!==s)return s;if(!m(e))return e;var c=n(e);if(c){if(s=function(n){var e=n.length,t=new n.constructor(e);return e&&"string"==typeof n[0]&&yo.call(n,"index")&&(t.index=n.index,t.input=n.input),t}(e),!l)return go(e,s)}else{var p=Ue(e),f=p==Ho||"[object GeneratorFunction]"==p;if(yn(e))return function(n,e){if(e)return n.slice();var t=n.length,o=ho?ho(t):new n.constructor(t);return n.copy(o),o}(e,l);if(p==No||p==Fo||f&&!i){if(s=d||f?{}:function(n){return"function"!=typeof n.constructor||Nn(n)?{}:Po(vo(n))}(e),!l)return d?function(n,e){return ao(n,Ao(n),e)}(e,function(n,e){return n&&ao(e,uo(e),n)}(s,e)):function(n,e){return ao(n,Pe(n),e)}(e,function(n,e){return n&&ao(e,Rn(e),n)}(s,e))}else{if(!$o[p])return i?e:{};s=ko(e,p,l)}}a||(a=new pe);var h=a.get(e);if(h)return h;a.set(e,s),Io(e)?e.forEach(function(n){s.add(Wo(n,t,o,n,e,a))}):Eo(e)&&e.forEach(function(n,r){s.set(r,Wo(n,t,o,r,e,a))});var g=c?void 0:(u?d?bo:Te:d?uo:Rn)(e);return sn(g||e,function(n,r){g&&(n=e[r=n]),io(s,r,Wo(n,t,o,r,e,a))}),s}$o[Fo]=$o["[object Array]"]=$o["[object ArrayBuffer]"]=$o["[object DataView]"]=$o["[object Boolean]"]=$o["[object Date]"]=$o["[object Float32Array]"]=$o["[object Float64Array]"]=$o["[object Int8Array]"]=$o["[object Int16Array]"]=$o["[object Int32Array]"]=$o["[object Map]"]=$o["[object Number]"]=$o[No]=$o["[object RegExp]"]=$o["[object Set]"]=$o["[object String]"]=$o["[object Symbol]"]=$o["[object Uint8Array]"]=$o["[object Uint8ClampedArray]"]=$o["[object Uint16Array]"]=$o["[object Uint32Array]"]=!0,$o["[object Error]"]=$o[Ho]=$o["[object WeakMap]"]=!1;function Mo(n){return Wo(n,5)}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function Lo(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Do={exports:{}};!function(n){var e=Object.prototype.hasOwnProperty,t="~";function o(){}function r(n,e,t){this.fn=n,this.context=e,this.once=t||!1}function i(n,e,o,i,a){if("function"!=typeof o)throw new TypeError("The listener must be a function");var s=new r(o,i||n,a),l=t?t+e:e;return n._events[l]?n._events[l].fn?n._events[l]=[n._events[l],s]:n._events[l].push(s):(n._events[l]=s,n._eventsCount++),n}function a(n,e){0===--n._eventsCount?n._events=new o:delete n._events[e]}function s(){this._events=new o,this._eventsCount=0}Object.create&&(o.prototype=Object.create(null),(new o).__proto__||(t=!1)),s.prototype.eventNames=function(){var n,o,r=[];if(0===this._eventsCount)return r;for(o in n=this._events)e.call(n,o)&&r.push(t?o.slice(1):o);return Object.getOwnPropertySymbols?r.concat(Object.getOwnPropertySymbols(n)):r},s.prototype.listeners=function(n){var e=t?t+n:n,o=this._events[e];if(!o)return[];if(o.fn)return[o.fn];for(var r=0,i=o.length,a=new Array(i);r<i;r++)a[r]=o[r].fn;return a},s.prototype.listenerCount=function(n){var e=t?t+n:n,o=this._events[e];return o?o.fn?1:o.length:0},s.prototype.emit=function(n,e,o,r,i,a){var s=t?t+n:n;if(!this._events[s])return!1;var l,d,u=this._events[s],c=arguments.length;if(u.fn){switch(u.once&&this.removeListener(n,u.fn,void 0,!0),c){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,e),!0;case 3:return u.fn.call(u.context,e,o),!0;case 4:return u.fn.call(u.context,e,o,r),!0;case 5:return u.fn.call(u.context,e,o,r,i),!0;case 6:return u.fn.call(u.context,e,o,r,i,a),!0}for(d=1,l=new Array(c-1);d<c;d++)l[d-1]=arguments[d];u.fn.apply(u.context,l)}else{var p,f=u.length;for(d=0;d<f;d++)switch(u[d].once&&this.removeListener(n,u[d].fn,void 0,!0),c){case 1:u[d].fn.call(u[d].context);break;case 2:u[d].fn.call(u[d].context,e);break;case 3:u[d].fn.call(u[d].context,e,o);break;case 4:u[d].fn.call(u[d].context,e,o,r);break;default:if(!l)for(p=1,l=new Array(c-1);p<c;p++)l[p-1]=arguments[p];u[d].fn.apply(u[d].context,l)}}return!0},s.prototype.on=function(n,e,t){return i(this,n,e,t,!1)},s.prototype.once=function(n,e,t){return i(this,n,e,t,!0)},s.prototype.removeListener=function(n,e,o,r){var i=t?t+n:n;if(!this._events[i])return this;if(!e)return a(this,i),this;var s=this._events[i];if(s.fn)s.fn!==e||r&&!s.once||o&&s.context!==o||a(this,i);else{for(var l=0,d=[],u=s.length;l<u;l++)(s[l].fn!==e||r&&!s[l].once||o&&s[l].context!==o)&&d.push(s[l]);d.length?this._events[i]=1===d.length?d[0]:d:a(this,i)}return this},s.prototype.removeAllListeners=function(n){var e;return n?(e=t?t+n:n,this._events[e]&&a(this,e)):(this._events=new o,this._eventsCount=0),this},s.prototype.off=s.prototype.removeListener,s.prototype.addListener=s.prototype.on,s.prefixed=t,s.EventEmitter=s,n.exports=s}(Do);var Ro=Lo(Do.exports);function jo(){return new Ro}function Oo(n){let e=Object.prototype.toString.call(n);return"[object Function]"===e||"[object AsyncFunction]"===e}function Vo(){let n={};return{bind:function(e,t,o){let r=`r${oo()}`;e.setAttribute("ev-resize",r);let i=function(n,e={}){let t=an(e,"timeInterval",null);no(t)||(t=20);let o=an(e,"tolerancePixel",null);no(o)||(o=1);let r,i=jo(),a={offsetWidth:0,offsetHeight:0,clientWidth:0,clientHeight:0,windowWidth:0,windowHeight:0},s=Mo(a),l={width:"",height:""};if(!Oo(n))return console.log("invalid f",n),null;r=setInterval(()=>{let e=n();if(e){let n={offsetWidth:e.offsetWidth,offsetHeight:e.offsetHeight,clientWidth:e.clientWidth,clientHeight:e.clientHeight,windowWidth:window.innerWidth,windowHeight:window.innerHeight},t=s.offsetWidth-n.offsetWidth,r=s.offsetHeight-n.offsetHeight,d=Math.abs(t)>o,u=Math.abs(r)>o,c="";t>0?c="smaller":t<0&&(c="larger");let p="";if(r>0?p="smaller":r<0&&(p="larger"),l={width:c,height:p},d||u){let t={...s};setTimeout(()=>{n.offsetWidth>0&&n.offsetHeight>0&&(i.emit("resize",{sold:t,snew:n,smode:l,ele:e}),i.emit("resizeWithWindow",{sold:t,snew:n,smode:l,ele:e,from:"dom"}))},1)}a=s,s=n}},t);let d=n=>{i.emit("resizeWithWindow",{sold:a,snew:s,smode:l,from:"window"})};return window.addEventListener("resize",d),i.clear=()=>{clearInterval(r),window.removeEventListener("resize",d)},i}(()=>e);i.on("resizeWithWindow",n=>{!function(n,e,t){let o=n.data&&n.data.on||n.componentOptions&&n.componentOptions.listeners;o&&o[e]&&o[e].fns(t)}(o,"domresize",n)}),n[r]=i},unbind:function(e){let t=e.getAttribute("ev-resize");e.setAttribute("ev-resize",null),n[t]&&(n[t].clear(),n[t]=null,delete n[t])}}}var Yo,Uo=(Yo="toUpperCase",function(n){var e=Gn(n=en(n))?ue(n):void 0,t=e?e[0]:n.charAt(0),o=e?Un(e,1).join(""):n.slice(1);return t[Yo]()+o});var Xo,Go=(Xo={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"},function(n){return null==Xo?void 0:Xo[n]}),Zo=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,qo=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g");var Jo=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;var Qo=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;var Ko="\\ud800-\\udfff",nr="\\u2700-\\u27bf",er="a-z\\xdf-\\xf6\\xf8-\\xff",tr="A-Z\\xc0-\\xd6\\xd8-\\xde",or="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",rr="["+or+"]",ir="\\d+",ar="["+nr+"]",sr="["+er+"]",lr="[^"+Ko+or+ir+nr+er+tr+"]",dr="(?:\\ud83c[\\udde6-\\uddff]){2}",ur="[\\ud800-\\udbff][\\udc00-\\udfff]",cr="["+tr+"]",pr="(?:"+sr+"|"+lr+")",fr="(?:"+cr+"|"+lr+")",hr="(?:['’](?:d|ll|m|re|s|t|ve))?",gr="(?:['’](?:D|LL|M|RE|S|T|VE))?",vr="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",mr="[\\ufe0e\\ufe0f]?",Ar=mr+vr+("(?:\\u200d(?:"+["[^"+Ko+"]",dr,ur].join("|")+")"+mr+vr+")*"),br="(?:"+[ar,dr,ur].join("|")+")"+Ar,yr=RegExp([cr+"?"+sr+"+"+hr+"(?="+[rr,cr,"$"].join("|")+")",fr+"+"+gr+"(?="+[rr,cr+pr,"$"].join("|")+")",cr+"?"+pr+"+"+hr,cr+"+"+gr,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",ir,br].join("|"),"g");function Cr(n,e,t){return n=en(n),void 0===(e=t?void 0:e)?function(n){return Qo.test(n)}(n)?function(n){return n.match(yr)||[]}(n):function(n){return n.match(Jo)||[]}(n):n.match(e)||[]}var xr=RegExp("['’]","g");var wr,Sr=(wr=function(n,e,t){return e=e.toLowerCase(),n+(t?Uo(en(e).toLowerCase()):e)},function(n){return function(n,e,t,o){var r=-1,i=null==n?0:n.length;for(o&&i&&(t=n[++r]);++r<i;)t=e(t,n[r],r,n);return t}(Cr(function(n){return(n=en(n))&&n.replace(Zo,Go).replace(qo,"")}(n).replace(xr,"")),wr,"")}),kr=Sr;let _r={default:{red:{base:"#f44336",lighten5:"#ffebee",lighten4:"#ffcdd2",lighten3:"#ef9a9a",lighten2:"#e57373",lighten1:"#ef5350",darken1:"#e53935",darken2:"#d32f2f",darken3:"#c62828",darken4:"#b71c1c",accent1:"#ff8a80",accent2:"#ff5252",accent3:"#ff1744",accent4:"#d50000"},pink:{base:"#e91e63",lighten5:"#fce4ec",lighten4:"#f8bbd0",lighten3:"#f48fb1",lighten2:"#f06292",lighten1:"#ec407a",darken1:"#d81b60",darken2:"#c2185b",darken3:"#ad1457",darken4:"#880e4f",accent1:"#ff80ab",accent2:"#ff4081",accent3:"#f50057",accent4:"#c51162"},purple:{base:"#9c27b0",lighten5:"#f3e5f5",lighten4:"#e1bee7",lighten3:"#ce93d8",lighten2:"#ba68c8",lighten1:"#ab47bc",darken1:"#8e24aa",darken2:"#7b1fa2",darken3:"#6a1b9a",darken4:"#4a148c",accent1:"#ea80fc",accent2:"#e040fb",accent3:"#d500f9",accent4:"#aa00ff"},deepPurple:{base:"#673ab7",lighten5:"#ede7f6",lighten4:"#d1c4e9",lighten3:"#b39ddb",lighten2:"#9575cd",lighten1:"#7e57c2",darken1:"#5e35b1",darken2:"#512da8",darken3:"#4527a0",darken4:"#311b92",accent1:"#b388ff",accent2:"#7c4dff",accent3:"#651fff",accent4:"#6200ea"},indigo:{base:"#3f51b5",lighten5:"#e8eaf6",lighten4:"#c5cae9",lighten3:"#9fa8da",lighten2:"#7986cb",lighten1:"#5c6bc0",darken1:"#3949ab",darken2:"#303f9f",darken3:"#283593",darken4:"#1a237e",accent1:"#8c9eff",accent2:"#536dfe",accent3:"#3d5afe",accent4:"#304ffe"},blue:{base:"#2196f3",lighten5:"#e3f2fd",lighten4:"#bbdefb",lighten3:"#90caf9",lighten2:"#64b5f6",lighten1:"#42a5f5",darken1:"#1e88e5",darken2:"#1976d2",darken3:"#1565c0",darken4:"#0d47a1",accent1:"#82b1ff",accent2:"#448aff",accent3:"#2979ff",accent4:"#2962ff"},lightBlue:{base:"#03a9f4",lighten5:"#e1f5fe",lighten4:"#b3e5fc",lighten3:"#81d4fa",lighten2:"#4fc3f7",lighten1:"#29b6f6",darken1:"#039be5",darken2:"#0288d1",darken3:"#0277bd",darken4:"#01579b",accent1:"#80d8ff",accent2:"#40c4ff",accent3:"#00b0ff",accent4:"#0091ea"},cyan:{base:"#00bcd4",lighten5:"#e0f7fa",lighten4:"#b2ebf2",lighten3:"#80deea",lighten2:"#4dd0e1",lighten1:"#26c6da",darken1:"#00acc1",darken2:"#0097a7",darken3:"#00838f",darken4:"#006064",accent1:"#84ffff",accent2:"#18ffff",accent3:"#00e5ff",accent4:"#00b8d4"},teal:{base:"#009688",lighten5:"#e0f2f1",lighten4:"#b2dfdb",lighten3:"#80cbc4",lighten2:"#4db6ac",lighten1:"#26a69a",darken1:"#00897b",darken2:"#00796b",darken3:"#00695c",darken4:"#004d40",accent1:"#a7ffeb",accent2:"#64ffda",accent3:"#1de9b6",accent4:"#00bfa5"},green:{base:"#4caf50",lighten5:"#e8f5e9",lighten4:"#c8e6c9",lighten3:"#a5d6a7",lighten2:"#81c784",lighten1:"#66bb6a",darken1:"#43a047",darken2:"#388e3c",darken3:"#2e7d32",darken4:"#1b5e20",accent1:"#b9f6ca",accent2:"#69f0ae",accent3:"#00e676",accent4:"#00c853"},lightGreen:{base:"#8bc34a",lighten5:"#f1f8e9",lighten4:"#dcedc8",lighten3:"#c5e1a5",lighten2:"#aed581",lighten1:"#9ccc65",darken1:"#7cb342",darken2:"#689f38",darken3:"#558b2f",darken4:"#33691e",accent1:"#ccff90",accent2:"#b2ff59",accent3:"#76ff03",accent4:"#64dd17"},lime:{base:"#cddc39",lighten5:"#f9fbe7",lighten4:"#f0f4c3",lighten3:"#e6ee9c",lighten2:"#dce775",lighten1:"#d4e157",darken1:"#c0ca33",darken2:"#afb42b",darken3:"#9e9d24",darken4:"#827717",accent1:"#f4ff81",accent2:"#eeff41",accent3:"#c6ff00",accent4:"#aeea00"},yellow:{base:"#ffeb3b",lighten5:"#fffde7",lighten4:"#fff9c4",lighten3:"#fff59d",lighten2:"#fff176",lighten1:"#ffee58",darken1:"#fdd835",darken2:"#fbc02d",darken3:"#f9a825",darken4:"#f57f17",accent1:"#ffff8d",accent2:"#ffff00",accent3:"#ffea00",accent4:"#ffd600"},amber:{base:"#ffc107",lighten5:"#fff8e1",lighten4:"#ffecb3",lighten3:"#ffe082",lighten2:"#ffd54f",lighten1:"#ffca28",darken1:"#ffb300",darken2:"#ffa000",darken3:"#ff8f00",darken4:"#ff6f00",accent1:"#ffe57f",accent2:"#ffd740",accent3:"#ffc400",accent4:"#ffab00"},orange:{base:"#ff9800",lighten5:"#fff3e0",lighten4:"#ffe0b2",lighten3:"#ffcc80",lighten2:"#ffb74d",lighten1:"#ffa726",darken1:"#fb8c00",darken2:"#f57c00",darken3:"#ef6c00",darken4:"#e65100",accent1:"#ffd180",accent2:"#ffab40",accent3:"#ff9100",accent4:"#ff6d00"},deepOrange:{base:"#ff5722",lighten5:"#fbe9e7",lighten4:"#ffccbc",lighten3:"#ffab91",lighten2:"#ff8a65",lighten1:"#ff7043",darken1:"#f4511e",darken2:"#e64a19",darken3:"#d84315",darken4:"#bf360c",accent1:"#ff9e80",accent2:"#ff6e40",accent3:"#ff3d00",accent4:"#dd2c00"},brown:{base:"#795548",lighten5:"#efebe9",lighten4:"#d7ccc8",lighten3:"#bcaaa4",lighten2:"#a1887f",lighten1:"#8d6e63",darken1:"#6d4c41",darken2:"#5d4037",darken3:"#4e342e",darken4:"#3e2723"},blueGrey:{base:"#607d8b",lighten5:"#eceff1",lighten4:"#cfd8dc",lighten3:"#b0bec5",lighten2:"#90a4ae",lighten1:"#78909c",darken1:"#546e7a",darken2:"#455a64",darken3:"#37474f",darken4:"#263238"},grey:{base:"#9e9e9e",lighten5:"#fafafa",lighten4:"#f5f5f5",lighten3:"#eeeeee",lighten2:"#e0e0e0",lighten1:"#bdbdbd",darken1:"#757575",darken2:"#616161",darken3:"#424242",darken4:"#212121"},shades:{black:"#000000",white:"#ffffff",transparent:"transparent"}}};function Br(n){if("white"===n)return"#fff";if("black"===n)return"#000";if("transparent"===n)return"rgba(0,0,0,0)";let e=function(n){let e=ce(n," ");return 1===Tt(e)&&(e[1]=null),e}(n),t=function(n,e,t){let o=an(_r,`default.${n}.${e}`,null);return null===o&&(o=t),o}(function(n){let e=n.trim();return e=kr(e),e}(e[0]),function(n){ft(n)||(n="base");let e=n.trim();return e=e.replace("-","").trim(),e}(e[1]),n);return t}function Pr(n,e,t){if(!ft(n))return"";if(!ft(e))return"";if(!pt(t))return"";return String(n).replaceAll(e,t)}function Tr(n){if(Ft(n)){for(let e in n)return!0;return!1}return!1}var Er=Function.prototype,zr=Object.prototype,Ir=Er.toString,Fr=zr.hasOwnProperty,Hr=Ir.call(Object);function Nr(n){return p(n)&&1===n.nodeType&&!function(n){if(!p(n)||"[object Object]"!=c(n))return!1;var e=vo(n);if(null===e)return!0;var t=Fr.call(e,"constructor")&&e.constructor;return"function"==typeof t&&t instanceof t&&Ir.call(t)==Hr}(n)}function $r(n){return Nr(n)}function Wr(n){function e(n){n.parentNode.removeChild(n)}if($r(n)){return void e(n)}if(!ft(n))return;let t=function(n){return document.querySelectorAll(n)}(n);Yn(t,function(n){e(n)})}function Mr(n,e,t={}){let o=an(t,"timeDuration",null);no(o)||(o=1e3);let r=an(t,"color",null);if(ft(r)||(r="rgba(255, 255, 255, 0.5)"),!$r(n))return;n.style.position="relative",n.style.overflow="hidden";let i=n.getBoundingClientRect(),a=e.clientX-i.left,s=e.clientY-i.top,l=2*Math.max(n.clientWidth,n.clientHeight),d=document.createElement("div");d.style.width=`${l}px`,d.style.height=`${l}px`,d.style.transition=`all ${o/1e3}s linear`,d.style.position="absolute",d.style.zIndex=1,d.style.left=`${a}px`,d.style.top=`${s}px`,d.style.borderRadius="50%",d.style.transformOrigin="center",d.style.transform="translate(-50%,-50%) scale(0)",d.style.background=r,d.style.userSelect="none",d.style.pointerEvents="none",n.appendChild(d),setTimeout(()=>{d.style.transform="translate(-50%,-50%) scale(2)",d.style.opacity=0},1),setTimeout(()=>{Wr(d)},o)}function Lr(n={}){let e={};return{bind:function(n,t,o){let r=`r${oo()}`;n.setAttribute("ev-ripple",r),function(n,t){let o=n.getAttribute("ev-ripple"),r=an(t,"value");if(r=Tr(r),!r)return;let i=an(t,"value.color");if(!ft(i))return;i=Br(i);let a=an(t,"value.timeDuration");Ut(a)||(a=1e3);function s(n){Mr(n.currentTarget,n,{color:i,timeDuration:a})}a=Xt(a),n.addEventListener("click",s,!1),e[o]=s}(n,t)},unbind:function(n){!function(n){let t=n.getAttribute("ev-ripple");if(e[t]){let o=e[t];n.removeEventListener("click",o,!1),delete e[t]}}(n),n.setAttribute("ev-ripple",null)}}}function Dr(n){return!0===n||!1===n||p(n)&&"[object Boolean]"==c(n)}function Rr(n){return Dr(n)}function jr(n){return"number"==typeof n||p(n)&&"[object Number]"==c(n)}function Or(n,e={}){let t=an(e,"parse");Rr(t)||(t=!0);let o=an(e,"ext");Tr(o)||(o={});let r=an(e,"semicolon");Rr(r)||(r=!0);let i=an(e,"returnObj");Rr(i)||(i=!1);let a=0,s=0,l=0,d=0;if(t){let e=function(n,e={}){let t,o=an(e,"def",""),r=an(e,"type","");"num"!==r&&"text"!==r&&(r="num"),"num"===r?t=jr:"text"===r&&(t=pt);let i=o,a=o,s=o,l=o;return t(an(n,"h"))&&(i=an(n,"h"),a=i),t(an(n,"v"))&&(s=an(n,"v"),l=s),t(an(n,"left"))&&(i=an(n,"left")),t(an(n,"right"))&&(a=an(n,"right")),t(an(n,"top"))&&(s=an(n,"top")),t(an(n,"bottom"))&&(l=an(n,"bottom")),{left:i,right:a,top:s,bottom:l}}(n);a=e.left,s=e.right,l=e.top,d=e.bottom}a+=an(o,"left",0),s+=an(o,"right",0),l+=an(o,"top",0),d+=an(o,"bottom",0);let u=null;return i?u={left:a,right:s,top:l,bottom:d}:(u=`${l}px ${s}px ${d}px ${a}px`,r&&(u=`${u};`)),u}function Vr(n){return"[object Array]"===Object.prototype.toString.call(n)}function Yr(n){return!!function(n){return"[object Undefined]"===Object.prototype.toString.call(n)}(n)||(!!function(n){return"[object Null]"===Object.prototype.toString.call(n)}(n)||(!!function(n){if(Ft(n)){for(let e in n)return!1;return!0}return!1}(n)||(!!function(n){return!(!pt(n)||""!==n)}(n)||(!!function(n){return!!Vr(n)&&0===n.length}(n)||!!Yt(n)))))}var Ur={components:{},props:{icon:{type:[String,Array],default:""},color:{type:String,default:"grey darken-1"},colorHover:{type:String,default:"grey darken-3"},sizeOriginal:{type:Number,default:24},size:{type:Number,default:24},timeTransition:{type:Number,default:.15}},data:function(){return{mouseEnter:!1,r:.83,paths:[]}},computed:{hasIcon:function(){return ft(this.icon)},isMdi:function(){return!!this.hasIcon&&this.icon.indexOf("mdi-")>=0},isFa:function(){return!!this.hasIcon&&this.icon.indexOf(" fa-")>=0},isSvg:function(){let n=this;if(n.isMdi||n.isFa)return!1;let e=ft(n.icon),t=!(!Vr(o=n.icon)||0===o.length||1===o.length&&Yr(o[0]));var o;return e||t},usePaths:function(){let n=this;if(!n.isSvg)return[];let e=n.icon;return ft(n.icon)&&(e=[n.icon]),e},useIconColor:function(){let n=this;return n.mouseEnter?Br(n.colorHover):Br(n.color)},useStyleSize:function(){let n=this;return{width:`${n.size}px`,height:`${n.size}px`,"line-height":`${n.size}px`,"max-height":`${n.size}px`,"min-height":`${n.size}px`}}},methods:{}};function Xr(n,e,t,o,r,i,a,s,l,d){"boolean"!=typeof a&&(l=s,s=a,a=!1);const u="function"==typeof t?t.options:t;let c;if(n&&n.render&&(u.render=n.render,u.staticRenderFns=n.staticRenderFns,u._compiled=!0,r&&(u.functional=!0)),o&&(u._scopeId=o),i?(c=function(n){(n=n||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(n=__VUE_SSR_CONTEXT__),e&&e.call(this,l(n)),n&&n._registeredComponents&&n._registeredComponents.add(i)},u._ssrRegister=c):e&&(c=a?function(n){e.call(this,d(n,this.$root.$options.shadowRoot))}:function(n){e.call(this,s(n))}),c)if(u.functional){const n=u.render;u.render=function(e,t){return c.call(t),n(e,t)}}else{const n=u.beforeCreate;u.beforeCreate=n?[].concat(n,c):[c]}return t}const Gr="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());function Zr(n){return(n,e)=>function(n,e){const t=Gr?e.media||"default":n,o=Jr[t]||(Jr[t]={ids:new Set,styles:[]});if(!o.ids.has(n)){o.ids.add(n);let t=e.source;if(e.map&&(t+="\n/*# sourceURL="+e.map.sources[0]+" */",t+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e.map))))+" */"),o.element||(o.element=document.createElement("style"),o.element.type="text/css",e.media&&o.element.setAttribute("media",e.media),void 0===qr&&(qr=document.head||document.getElementsByTagName("head")[0]),qr.appendChild(o.element)),"styleSheet"in o.element)o.styles.push(t),o.element.styleSheet.cssText=o.styles.filter(Boolean).join("\n");else{const n=o.ids.size-1,e=document.createTextNode(t),r=o.element.childNodes;r[n]&&o.element.removeChild(r[n]),r.length?o.element.insertBefore(e,r[n]):o.element.appendChild(e)}}}(n,e)}let qr;const Jr={};const Qr=Ur;var Kr=function(){var n=this,e=n.$createElement,t=n._self._c||e;return n.icon?t("div",{style:[n.useStyleSize,{display:"flex","align-items":"center","user-select":"none",border:"0px solid #ddd"}],on:{keyup:function(e){return!e.type.indexOf("key")&&n._k(e.keyCode,"enter",13,e.key,"Enter")?null:function(e){n.$emit("click",e)}.apply(null,arguments)},click:function(e){n.$emit("click",e)}}},[n.isSvg?t("svg",{style:"transition:all "+n.timeTransition+"s linear; fill:"+n.useIconColor+";",attrs:{width:n.size,height:n.size,viewBox:"0 0 "+n.sizeOriginal+" "+n.sizeOriginal},on:{mouseenter:function(e){n.mouseEnter=!0},mouseleave:function(e){n.mouseEnter=!1}}},n._l(n.usePaths,function(e,o){return t("path",{key:o,attrs:{d:n.icon}})}),0):n._e(),n._v(" "),n.isMdi?t("div",{style:"transition:all "+n.timeTransition+"s linear; width:"+n.size+"px; height:"+n.size+"px; color:"+n.useIconColor+"; display:flex; align-items:center; justify-content:center;",on:{mouseenter:function(e){n.mouseEnter=!0},mouseleave:function(e){n.mouseEnter=!1}}},[t("span",{class:"mdi "+n.icon,style:"font-size:"+n.size+"px;"})]):n._e(),n._v(" "),n.isFa?t("div",{style:"transition:all "+n.timeTransition+"s linear; width:"+n.size+"px; height:"+n.size+"px; color:"+n.useIconColor+"; display:flex; align-items:center; justify-content:center;",on:{mouseenter:function(e){n.mouseEnter=!0},mouseleave:function(e){n.mouseEnter=!1}}},[t("div",{style:"width:"+n.size+"px; height:"+n.size+"px; _transform-origin:center; transform:translateX(0px) translateY(0px) scale("+n.r+");"},[t("div",{staticStyle:{display:"flex","align-items":"center","justify-content":"center"}},[t("i",{class:"fas "+n.icon,style:"font-size:"+n.size+"px;"})])])]):n._e()]):n._e()};Kr._withStripped=!0;const ni=Xr({render:Kr,staticRenderFns:[]},function(n){n&&n("data-v-3c0d50cc_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WIcon.vue"},media:void 0})},Qr,"data-v-3c0d50cc",false,void 0,!1,Zr,void 0,void 0);const ei={directives:{domripple:Lr()},components:{WIcon:ni},props:{text:{type:String,default:""},textFontSize:{type:String,default:"1rem"},active:{type:Boolean,default:!1},paddingStyle:{type:Object,default:()=>({v:10,h:12})},borderRadius:{type:Number,default:0},backgroundColor:{type:String,default:"white"},backgroundColorHover:{type:String,default:"rgba(200,200,200,0.2)"},backgroundColorActive:{type:String,default:"orange lighten-1"},backgroundColorDisabled:{type:String,default:"white"},textColor:{type:String,default:"#444"},textColorHover:{type:String,default:"#222"},textColorActive:{type:String,default:"white"},textColorDisabled:{type:String,default:"#444"},icon:{type:String,default:""},iconSize:{type:Number,default:22},iconColor:{type:String,default:"#444"},iconColorHover:{type:String,default:"#222"},iconColorActive:{type:String,default:"white"},iconColorDisabled:{type:String,default:"#444"},rippleColor:{type:String,default:"rgba(255,255,255,0.4)"},editable:{type:Boolean,default:!0},disabledColor:{type:String,default:"rgba(255,255,255,0.5)"},cursorPointer:{type:Boolean,default:!0}},data:function(){return{mouseEnter:!1}},computed:{useTextFontSize:function(){let n=this.textFontSize;return n=Pr(n,";",""),`font-size:${n};`},hasIcon:function(){return""!==this.icon},usePadding:function(){return`padding:${Or(this.paddingStyle,{ext:{}})};`},effBackgroundColor:function(){return Br(this.backgroundColor)},effBackgroundColorHover:function(){return Br(this.backgroundColorHover)},effBackgroundActive:function(){return Br(this.backgroundColorActive)},effBackgroundColorDisabled:function(){return Br(this.backgroundColorDisabled)},useBackgroundColor:function(){let n=this;return n.editable?n.active?n.effBackgroundActive:n.mouseEnter?n.effBackgroundColorHover:n.effBackgroundColor:n.effBackgroundColorDisabled},effTextColor:function(){return Br(this.textColor)},effTextColorHover:function(){return Br(this.textColorHover)},effTextActive:function(){return Br(this.textColorActive)},effTextColorDisabled:function(){return Br(this.textColorDisabled)},useTextColor:function(){let n=this;return n.editable?n.active?n.effTextActive:n.mouseEnter?n.effTextColorHover:n.effTextColor:n.effTextColorDisabled},effIconColor:function(){return Br(this.iconColor)},effIconColorHover:function(){return Br(this.iconColorHover)},effIconActive:function(){return Br(this.iconColorActive)},effIconColorDisabled:function(){return Br(this.iconColorDisabled)},useIconColor:function(){let n=this;return n.editable?n.active?n.effIconActive:n.mouseEnter?n.effIconColorHover:n.effIconColor:n.effIconColorDisabled},effDisabledColor:function(){return Br(this.disabledColor)}},methods:{clickItem:function(){let n=this;n.editable&&n.$emit("click",{icon:n.icon,text:n.text})}}};var ti=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{directives:[{name:"domripple",rawName:"v-domripple",value:{color:n.rippleColor},expression:"{color:rippleColor}"}],style:"position:relative; transition:all 0.3s; border-top-left-radius:"+n.borderRadius+"px; border-top-right-radius:"+n.borderRadius+"px; "+n.usePadding+" background:"+n.useBackgroundColor+"; "+(n.editable&&n.cursorPointer?"cursor:pointer;":"cursor:context-menu;"),on:{mouseenter:function(e){n.mouseEnter=!0},mouseleave:function(e){n.mouseEnter=!1},click:n.clickItem}},[t("div",{style:"transition:all 0.3s; color:"+n.useTextColor+"; "+n.useTextFontSize},[n._t("item",function(){return[t("div",{staticStyle:{display:"flex","align-items":"center"}},[n._t("item-left",null,{isHover:n.mouseEnter,isActive:n.active}),n._v(" "),n._t("item-content",function(){return[n.hasIcon?t("WIcon",{staticStyle:{"margin-right":"8px"},attrs:{icon:n.icon,color:n.useIconColor,colorHover:n.useIconColor,size:n.iconSize}}):n._e(),n._v(" "),t("div",[n._v("\n "+n._s(n.text)+"\n ")])]},{isHover:n.mouseEnter,isActive:n.active}),n._v(" "),n._t("item-right",null,{isHover:n.mouseEnter,isActive:n.active})],2)]},{isHover:n.mouseEnter,isActive:n.active}),n._v(" "),n.editable?n._e():t("div",{staticStyle:{position:"absolute",left:"0",right:"0",top:"0",bottom:"0"}},[t("div",{style:"overflow:hidden; width:100%; height:100%;"},[t("div",{style:"background:"+n.effDisabledColor+"; height:100%;"})])])],2)])};ti._withStripped=!0;const oi=Xr({render:ti,staticRenderFns:[]},function(n){n&&n("data-v-43e2211d_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WListItem.vue"},media:void 0})},ei,"data-v-43e2211d",false,void 0,!1,Zr,void 0,void 0);var ri={directives:{domresize:Vo()},components:{WListItem:oi},props:{items:{type:Array,default:()=>[]},enableActive:{type:Boolean,default:!0},itemActive:{type:[String,Object],default:null},itemTextFontSize:{type:String,default:"1rem"},keyText:{type:String,default:"text"},keyIcon:{type:String,default:"icon"},space:{type:Number,default:0},paddingStyle:{type:Object,default:()=>({v:10,h:12})},itemBorderRadius:{type:Number,default:0},itemBackgroundColor:{type:String,default:"transparent"},itemBackgroundColorHover:{type:String,default:"rgba(200,200,200,0.2)"},itemBackgroundColorActive:{type:String,default:"white"},itemBackgroundColorDisabled:{type:String,default:"white"},itemTextColor:{type:String,default:"#444"},itemTextColorHover:{type:String,default:"#222"},itemTextColorActive:{type:String,default:"orange darken-3"},itemTextColorDisabled:{type:String,default:"#444"},itemIconSize:{type:Number,default:22},itemIconColor:{type:String,default:"#444"},itemIconColorHover:{type:String,default:"#222"},itemIconColorActive:{type:String,default:"orange darken-3"},itemIconColorDisabled:{type:String,default:"#444"},itemRippleColor:{type:String,default:"rgba(245,124,0,0.4)"},borderBottom:{type:Boolean,default:!0},borderBottomSize:{type:Number,default:2},borderBottomColor:{type:String,default:"rgba(245,124,0,0.8)"},itemDisabledColor:{type:String,default:"transparent"},itemCursorPointer:{type:Boolean,default:!0}},data:function(){return{borderBottomLeft:0,borderBottomWidth:0,itemActiveTrans:null}},watch:{itemActiveTrans:{handler(n,e){this.updateBorderBottom()},immediate:!0}},computed:{changeItemActive:function(){let n=this;return n.enableActive&&(n.itemActiveTrans=n.itemActive),""},isObjValue:function(){return 0!==Tt(this.items)&&function(e,t,o){var r=n(e)?Et:zt;return o&&Zn(e,t,o)&&(t=void 0),r(e,at(t))}(this.items,n=>Ft(n))},effBorderBottomColor:function(){return Br(this.borderBottomColor)}},methods:{resize:function(n){this.updateBorderBottom()},getIcon:function(n){let e=this;return e.isObjValue?an(n,e.keyIcon,""):""},getText:function(n){let e=this;if(e.isObjValue){return an(n,e.keyText,"")}return n},getActive:function(n){let e=this,t=!1;return e.enableActive&&(t=It(n,e.itemActiveTrans)),t},getEditable:function(n){return an(n,"editable",!0)},updateBorderBottom:function(){let n=this;if(null==n.itemActiveTrans)return;let e=0,t=[];Yn(an(n,"$refs.wli",[]),(o,r)=>{let i=o,a=an(i,"clientWidth",0),s=an(i,"clientHeight",0),l=e,d=a,u=s;r>0&&n.space>0&&(l+=n.space,d-=n.space),t.push({left:l,bottom:0,width:d,heiht:u}),e+=a});let o=-1;if(Yn(n.items,(e,t)=>{if(It(e,n.itemActiveTrans))return o=t,!1}),-1===o)return;let r=t[o];n.borderBottomLeft=r.left,n.borderBottomWidth=r.width},ckItem:function(n,e){let t=this;if(!t.getEditable(n))return;t.itemActiveTrans=n;let o=null;o=t.isObjValue?{...n}:n,t.$emit("click",o,e),t.$emit("update:itemActive",o)}}};const ii=ri;var ai=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{directives:[{name:"domresize",rawName:"v-domresize"}],attrs:{changeItemActive:n.changeItemActive},on:{domresize:n.resize}},[t("div",{staticStyle:{position:"relative",display:"flex","align-items":"center","white-space":"nowrap"}},[n.borderBottom?t("div",{style:"transition:all 0.3s; position:absolute; z-index:1; bottom:0px; left:"+n.borderBottomLeft+"px; padding-left:"+n.borderBottomWidth+"px; border-bottom:"+n.borderBottomSize+"px solid "+n.effBorderBottomColor+";"}):n._e(),n._v(" "),n._l(n.items,function(e,o){return t("div",{key:o},[t("div",{ref:"wli",refInFor:!0,style:n.space>0&&o>0?"padding-left:"+n.space+"px;":""},[t("WListItem",{attrs:{icon:n.getIcon(e),text:n.getText(e),textFontSize:n.itemTextFontSize,active:n.getActive(e),paddingStyle:n.paddingStyle,borderRadius:n.itemBorderRadius,backgroundColor:n.itemBackgroundColor,backgroundColorHover:n.itemBackgroundColorHover,backgroundColorActive:n.itemBackgroundColorActive,backgroundColorDisabled:n.itemBackgroundColorDisabled,textColor:n.itemTextColor,textColorHover:n.itemTextColorHover,textColorActive:n.itemTextColorActive,textColorDisabled:n.itemTextColorDisabled,iconSize:n.itemIconSize,iconColor:n.itemIconColor,iconColorHover:n.itemIconColorHover,iconColorActive:n.itemIconColorActive,iconColorDisabled:n.itemIconColorDisabled,rippleColor:n.getEditable(e)?n.itemRippleColor:null,editable:n.getEditable(e),disabledColor:n.itemDisabledColor,cursorPointer:!n.getActive(e)&&n.itemCursorPointer},on:{click:function(t){return n.ckItem(e,o)}},scopedSlots:n._u([{key:"item",fn:function(t){return[n._t("item",null,{item:e,kitem:o,isHover:t.isHover,isActive:t.isActive})]}},{key:"item-left",fn:function(t){return[n._t("item-left",null,{item:e,kitem:o,isHover:t.isHover,isActive:t.isActive})]}},{key:"item-content",fn:function(t){return[n._t("item-content",null,{item:e,kitem:o,isHover:t.isHover,isActive:t.isActive})]}},{key:"item-right",fn:function(t){return[n._t("item-right",null,{item:e,kitem:o,isHover:t.isHover,isActive:t.isActive})]}}],null,!0)})],1)])})],2)])};ai._withStripped=!0;const si=Xr({render:ai,staticRenderFns:[]},function(n){n&&n("data-v-0e7006de_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WListHorizontal.vue"},media:void 0})},ii,"data-v-0e7006de",false,void 0,!1,Zr,void 0,void 0);const li={name:"FlowCanvas",methods:{onMouseDown(n){this._downPos={x:n.clientX,y:n.clientY},this.$emit("canvas-mousedown",n)},onMouseMove(n){this.$emit("canvas-mousemove",n)},onMouseUp(n){if(this.$emit("canvas-mouseup",n),this._downPos){let e=n.clientX-this._downPos.x,t=n.clientY-this._downPos.y;Math.abs(e)<3&&Math.abs(t)<3&&this.$emit("canvas-click",n),this._downPos=null}},onWheel(n){this.$emit("canvas-wheel",n)},onDoubleClick(n){this.$emit("canvas-dblclick",n)},onContextMenu(n){this.$emit("canvas-contextmenu",n)},getContainerRect(){return this.$refs.container?this.$refs.container.getBoundingClientRect():null}}};var di=function(){var n=this,e=n.$createElement;return(n._self._c||e)("div",{ref:"container",staticClass:"vue-flow",on:{mousedown:n.onMouseDown,mousemove:n.onMouseMove,mouseup:n.onMouseUp,wheel:function(e){return e.preventDefault(),n.onWheel.apply(null,arguments)},dblclick:n.onDoubleClick,contextmenu:n.onContextMenu}},[n._t("default")],2)};di._withStripped=!0;const ui=Xr({render:di,staticRenderFns:[]},function(n){n&&n("data-v-21b2f6d4_0",{source:"\n.vue-flow[data-v-21b2f6d4] {\n position: relative;\n width: 100%;\n height: 100%;\n overflow: hidden;\n background-color: #fff;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n}\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\canvas\\FlowCanvas.vue"],names:[],mappings:";AAuDA;EACA,kBAAA;EACA,WAAA;EACA,YAAA;EACA,gBAAA;EACA,sBAAA;EACA,8EAAA;AACA",file:"FlowCanvas.vue",sourcesContent:["<template>\n <div\n class=\"vue-flow\"\n ref=\"container\"\n @mousedown=\"onMouseDown\"\n @mousemove=\"onMouseMove\"\n @mouseup=\"onMouseUp\"\n @wheel.prevent=\"onWheel\"\n @dblclick=\"onDoubleClick\"\n @contextmenu=\"onContextMenu\"\n >\n <slot />\n </div>\n</template>\n\n<script>\nexport default {\n name: 'FlowCanvas',\n methods: {\n onMouseDown(event) {\n this._downPos = { x: event.clientX, y: event.clientY }\n this.$emit('canvas-mousedown', event)\n },\n onMouseMove(event) {\n this.$emit('canvas-mousemove', event)\n },\n onMouseUp(event) {\n this.$emit('canvas-mouseup', event)\n // Emit click only if mouse didn't move (distinguish from drag/pan/select)\n if (this._downPos) {\n let dx = event.clientX - this._downPos.x\n let dy = event.clientY - this._downPos.y\n if (Math.abs(dx) < 3 && Math.abs(dy) < 3) {\n this.$emit('canvas-click', event)\n }\n this._downPos = null\n }\n },\n onWheel(event) {\n this.$emit('canvas-wheel', event)\n },\n onDoubleClick(event) {\n this.$emit('canvas-dblclick', event)\n },\n onContextMenu(event) {\n this.$emit('canvas-contextmenu', event)\n },\n getContainerRect() {\n return this.$refs.container ? this.$refs.container.getBoundingClientRect() : null\n },\n },\n}\n<\/script>\n\n<style scoped>\n.vue-flow {\n position: relative;\n width: 100%;\n height: 100%;\n overflow: hidden;\n background-color: #fff;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n}\n</style>\n"]},media:void 0})},li,"data-v-21b2f6d4",false,void 0,!1,Zr,void 0,void 0);const ci={name:"ViewportTransform",props:{viewport:{type:Object,default:()=>({x:0,y:0,zoom:1})}},computed:{transformStyle(){let n=this.viewport||{};return{transform:`translate(${n.x||0}px, ${n.y||0}px) scale(${void 0===n.zoom||null===n.zoom?1:n.zoom})`,transformOrigin:"0 0"}}}};var pi=function(){var n=this,e=n.$createElement;return(n._self._c||e)("div",{staticClass:"vue-flow__viewport",style:n.transformStyle},[n._t("default")],2)};pi._withStripped=!0;const fi=Xr({render:pi,staticRenderFns:[]},function(n){n&&n("data-v-3df997de_0",{source:"\n.vue-flow__viewport[data-v-3df997de] {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n transform-origin: 0 0;\n}\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\canvas\\ViewportTransform.vue"],names:[],mappings:";AA8BA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,qBAAA;AACA",file:"ViewportTransform.vue",sourcesContent:["<template>\n <div class=\"vue-flow__viewport\" :style=\"transformStyle\">\n <slot />\n </div>\n</template>\n\n<script>\nexport default {\n name: 'ViewportTransform',\n props: {\n //改收整個viewport物件(而非x/y/zoom三個純量): 令宿主WFlowVue之render僅讀取穩定物件參考,\n //平移時mutate viewport.x/y不再觸發WFlowVue重渲染(進而不再連帶重渲染全部節點/連線), 僅本組件之computed重評估更新transform\n viewport: { type: Object, default: () => ({ x: 0, y: 0, zoom: 1 }) },\n },\n computed: {\n transformStyle() {\n let v = this.viewport || {}\n let x = v.x || 0\n let y = v.y || 0\n let zoom = (v.zoom === undefined || v.zoom === null) ? 1 : v.zoom\n return {\n transform: `translate(${x}px, ${y}px) scale(${zoom})`,\n transformOrigin: '0 0',\n }\n },\n },\n}\n<\/script>\n\n<style scoped>\n.vue-flow__viewport {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n transform-origin: 0 0;\n}\n</style>\n"]},media:void 0})},ci,"data-v-3df997de",false,void 0,!1,Zr,void 0,void 0);const hi={name:"BackgroundLayer",props:{variant:{type:String,default:"dots"},gap:{type:Number,default:20},size:{type:Number,default:1},patternColor:{type:String,default:"#81818a"},bgColor:{type:String,default:null},viewport:{type:Object,default:()=>({x:0,y:0,zoom:1})}},computed:{patternId:()=>"vue-flow-bg-pattern",vpX(){return this.viewport&&this.viewport.x||0},vpY(){return this.viewport&&this.viewport.y||0},vpZoom(){let n=this.viewport&&this.viewport.zoom;return null==n?1:n},scaledGap(){return this.gap*this.vpZoom},scaledSize(){return this.size*this.vpZoom},transformedX(){return this.vpX%this.scaledGap},transformedY(){return this.vpY%this.scaledGap}}};var gi=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("svg",{staticClass:"vue-flow__background"},[t("pattern",{attrs:{id:n.patternId,x:n.transformedX,y:n.transformedY,width:n.scaledGap,height:n.scaledGap,patternUnits:"userSpaceOnUse"}},["dots"===n.variant?[t("circle",{attrs:{cx:n.scaledSize,cy:n.scaledSize,r:n.scaledSize,fill:n.patternColor}})]:[t("path",{attrs:{d:"M "+n.scaledGap+" 0 L 0 0 0 "+n.scaledGap,fill:"none",stroke:n.patternColor,"stroke-width":n.scaledSize}})]],2),n._v(" "),t("rect",{attrs:{x:"0",y:"0",width:"100%",height:"100%",fill:"url(#"+n.patternId+")"}})])};gi._withStripped=!0;const vi=Xr({render:gi,staticRenderFns:[]},function(n){n&&n("data-v-e96a0d6e_0",{source:"\n.vue-flow__background[data-v-e96a0d6e] {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n}\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\canvas\\BackgroundLayer.vue"],names:[],mappings:";AA+EA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,oBAAA;AACA",file:"BackgroundLayer.vue",sourcesContent:['<template>\n <svg class="vue-flow__background">\n <pattern\n :id="patternId"\n :x="transformedX"\n :y="transformedY"\n :width="scaledGap"\n :height="scaledGap"\n patternUnits="userSpaceOnUse"\n >\n <template v-if="variant === \'dots\'">\n <circle\n :cx="scaledSize"\n :cy="scaledSize"\n :r="scaledSize"\n :fill="patternColor"\n />\n </template>\n <template v-else>\n <path\n :d="`M ${scaledGap} 0 L 0 0 0 ${scaledGap}`"\n fill="none"\n :stroke="patternColor"\n :stroke-width="scaledSize"\n />\n </template>\n </pattern>\n <rect\n x="0" y="0"\n width="100%" height="100%"\n :fill="`url(#${patternId})`"\n />\n </svg>\n</template>\n\n<script>\nexport default {\n name: \'BackgroundLayer\',\n props: {\n variant: { type: String, default: \'dots\' },\n gap: { type: Number, default: 20 },\n size: { type: Number, default: 1 },\n patternColor: { type: String, default: \'#81818a\' },\n bgColor: { type: String, default: null },\n //改收整個viewport物件(而非x/y/zoom三個純量): 令宿主WFlowVue之render僅讀取穩定物件參考,\n //平移時mutate viewport.x/y不再觸發WFlowVue重渲染, 僅本組件之computed重評估更新pattern偏移\n viewport: { type: Object, default: () => ({ x: 0, y: 0, zoom: 1 }) },\n },\n computed: {\n patternId() {\n return \'vue-flow-bg-pattern\'\n },\n vpX() {\n return (this.viewport && this.viewport.x) || 0\n },\n vpY() {\n return (this.viewport && this.viewport.y) || 0\n },\n vpZoom() {\n let z = this.viewport && this.viewport.zoom\n return (z === undefined || z === null) ? 1 : z\n },\n scaledGap() {\n return this.gap * this.vpZoom\n },\n scaledSize() {\n return this.size * this.vpZoom\n },\n transformedX() {\n return (this.vpX % this.scaledGap)\n },\n transformedY() {\n return (this.vpY % this.scaledGap)\n },\n },\n}\n<\/script>\n\n<style scoped>\n.vue-flow__background {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n}\n</style>\n']},media:void 0})},hi,"data-v-e96a0d6e",false,void 0,!1,Zr,void 0,void 0);const mi={name:"SelectionBox",props:{box:{type:Object,default:null}},computed:{boxStyle(){return this.box?{left:`${this.box.x}px`,top:`${this.box.y}px`,width:`${this.box.width}px`,height:`${this.box.height}px`}:{}}}};var Ai=function(){var n=this,e=n.$createElement,t=n._self._c||e;return n.box?t("div",{staticClass:"vue-flow__selection-box",style:n.boxStyle}):n._e()};Ai._withStripped=!0;const bi=Xr({render:Ai,staticRenderFns:[]},function(n){n&&n("data-v-7d8b4695_0",{source:"\n.vue-flow__selection-box[data-v-7d8b4695] {\n position: absolute;\n background: rgba(0, 65, 208, 0.08);\n border: 1px solid rgba(0, 65, 208, 0.4);\n pointer-events: none;\n}\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\canvas\\SelectionBox.vue"],names:[],mappings:";AA6BA;EACA,kBAAA;EACA,kCAAA;EACA,uCAAA;EACA,oBAAA;AACA",file:"SelectionBox.vue",sourcesContent:['<template>\n <div\n v-if="box"\n class="vue-flow__selection-box"\n :style="boxStyle"\n />\n</template>\n\n<script>\nexport default {\n name: \'SelectionBox\',\n props: {\n box: { type: Object, default: null }, // { x, y, width, height }\n },\n computed: {\n boxStyle() {\n if (!this.box) return {}\n return {\n left: `${this.box.x}px`,\n top: `${this.box.y}px`,\n width: `${this.box.width}px`,\n height: `${this.box.height}px`,\n }\n },\n },\n}\n<\/script>\n\n<style scoped>\n.vue-flow__selection-box {\n position: absolute;\n background: rgba(0, 65, 208, 0.08);\n border: 1px solid rgba(0, 65, 208, 0.4);\n pointer-events: none;\n}\n</style>\n']},media:void 0})},mi,"data-v-7d8b4695",false,void 0,!1,Zr,void 0,void 0);const yi={name:"NodeFace",inject:{getDefNode:{default:()=>()=>({})}},props:{node:{type:Object,required:!0},lastW:{type:Number,default:0},lastH:{type:Number,default:0}},computed:{dn(){return this.getDefNode()},nodeW(){return this.node.width||this.lastW||150},nodeH(){return this.node.height||this.lastH||40},isDiamond(){return"diamond"===this.node.shape},isEllipse(){return"ellipse"===this.node.shape},isTriangle(){let n=this.node.shape;return"triangle"===n||"triangle-right"===n||"triangle-down"===n||"triangle-left"===n},diamondPoints(){return this.isDiamond?this.nodeW/2+",0 "+this.nodeW+","+this.nodeH/2+" "+this.nodeW/2+","+this.nodeH+" 0,"+this.nodeH/2:""},trianglePoints(){if(!this.isTriangle)return"";let n=this.nodeW,e=this.nodeH,t=this.node.shape;return"triangle-right"===t?"0,0 "+n+","+e/2+" 0,"+e:"triangle-down"===t?"0,0 "+n+",0 "+n/2+","+e:"triangle-left"===t?n+",0 0,"+e/2+" "+n+","+e:n/2+",0 0,"+e+" "+n+","+e},svgViewBox(){return"0 0 "+this.nodeW+" "+this.nodeH},diamondViewBox(){return this.isDiamond?this.svgViewBox:"0 0 150 40"}}};var Ci=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{staticClass:"vue-flow__node-face"},[n.isDiamond?t("svg",{staticClass:"vue-flow__shape-svg",attrs:{viewBox:n.diamondViewBox,preserveAspectRatio:"none"}},[t("polygon",{attrs:{points:n.diamondPoints,fill:n.node.faceColor||n.dn.faceColor||"#fff","fill-opacity":1,stroke:n.node.edgeColor||n.dn.edgeColor||"#bbb","stroke-opacity":1,"stroke-width":void 0!==n.node.edgeWidth?n.node.edgeWidth:void 0!==n.dn.edgeWidth?n.dn.edgeWidth:1}})]):n._e(),n._v(" "),n.isEllipse?t("svg",{staticClass:"vue-flow__shape-svg",attrs:{viewBox:n.svgViewBox,preserveAspectRatio:"none"}},[t("ellipse",{attrs:{cx:n.nodeW/2,cy:n.nodeH/2,rx:n.nodeW/2,ry:n.nodeH/2,fill:n.node.faceColor||n.dn.faceColor||"#fff","fill-opacity":1,stroke:n.node.edgeColor||n.dn.edgeColor||"#bbb","stroke-opacity":1,"stroke-width":void 0!==n.node.edgeWidth?n.node.edgeWidth:void 0!==n.dn.edgeWidth?n.dn.edgeWidth:1}})]):n._e(),n._v(" "),n.isTriangle?t("svg",{staticClass:"vue-flow__shape-svg",attrs:{viewBox:n.svgViewBox,preserveAspectRatio:"none"}},[t("polygon",{attrs:{points:n.trianglePoints,fill:n.node.faceColor||n.dn.faceColor||"#fff","fill-opacity":1,stroke:n.node.edgeColor||n.dn.edgeColor||"#bbb","stroke-opacity":1,"stroke-width":void 0!==n.node.edgeWidth?n.node.edgeWidth:void 0!==n.dn.edgeWidth?n.dn.edgeWidth:1}})]):n._e()])};Ci._withStripped=!0;const xi=Xr({render:Ci,staticRenderFns:[]},function(n){n&&n("data-v-2edaed7e_0",{source:"\n.vue-flow__node-face[data-v-2edaed7e] {\n pointer-events: none;\n}\n.vue-flow__shape-svg[data-v-2edaed7e] {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n overflow: visible;\n}\n.vue-flow__shape-svg polygon[data-v-2edaed7e],\n.vue-flow__shape-svg ellipse[data-v-2edaed7e] {\n transition: filter 0.3s ease;\n}\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\nodes\\NodeFace.vue"],names:[],mappings:";AA+GA;EACA,oBAAA;AACA;AACA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,oBAAA;EACA,iBAAA;AACA;AACA;;EAEA,4BAAA;AACA",file:"NodeFace.vue",sourcesContent:["<template>\n <div class=\"vue-flow__node-face\">\n \x3c!-- Diamond shape SVG --\x3e\n <svg\n v-if=\"isDiamond\"\n class=\"vue-flow__shape-svg\"\n :viewBox=\"diamondViewBox\"\n preserveAspectRatio=\"none\"\n >\n <polygon\n :points=\"diamondPoints\"\n :fill=\"node.faceColor || dn.faceColor || '#fff'\"\n :fill-opacity=\"1\"\n :stroke=\"node.edgeColor || dn.edgeColor || '#bbb'\"\n :stroke-opacity=\"1\"\n :stroke-width=\"node.edgeWidth !== undefined ? node.edgeWidth : (dn.edgeWidth !== undefined ? dn.edgeWidth : 1)\"\n />\n </svg>\n \x3c!-- Ellipse shape SVG --\x3e\n <svg\n v-if=\"isEllipse\"\n class=\"vue-flow__shape-svg\"\n :viewBox=\"svgViewBox\"\n preserveAspectRatio=\"none\"\n >\n <ellipse\n :cx=\"nodeW / 2\"\n :cy=\"nodeH / 2\"\n :rx=\"nodeW / 2\"\n :ry=\"nodeH / 2\"\n :fill=\"node.faceColor || dn.faceColor || '#fff'\"\n :fill-opacity=\"1\"\n :stroke=\"node.edgeColor || dn.edgeColor || '#bbb'\"\n :stroke-opacity=\"1\"\n :stroke-width=\"node.edgeWidth !== undefined ? node.edgeWidth : (dn.edgeWidth !== undefined ? dn.edgeWidth : 1)\"\n />\n </svg>\n \x3c!-- Triangle shape SVG --\x3e\n <svg\n v-if=\"isTriangle\"\n class=\"vue-flow__shape-svg\"\n :viewBox=\"svgViewBox\"\n preserveAspectRatio=\"none\"\n >\n <polygon\n :points=\"trianglePoints\"\n :fill=\"node.faceColor || dn.faceColor || '#fff'\"\n :fill-opacity=\"1\"\n :stroke=\"node.edgeColor || dn.edgeColor || '#bbb'\"\n :stroke-opacity=\"1\"\n :stroke-width=\"node.edgeWidth !== undefined ? node.edgeWidth : (dn.edgeWidth !== undefined ? dn.edgeWidth : 1)\"\n />\n </svg>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'NodeFace',\n inject: { getDefNode: { default: () => () => ({}) } },\n props: {\n node: { type: Object, required: true },\n lastW: { type: Number, default: 0 },\n lastH: { type: Number, default: 0 },\n },\n computed: {\n dn() {\n return this.getDefNode()\n },\n nodeW() {\n return this.node.width || this.lastW || 150\n },\n nodeH() {\n return this.node.height || this.lastH || 40\n },\n isDiamond() {\n return this.node.shape === 'diamond'\n },\n isEllipse() {\n return this.node.shape === 'ellipse'\n },\n isTriangle() {\n let s = this.node.shape\n return s === 'triangle' || s === 'triangle-right' || s === 'triangle-down' || s === 'triangle-left'\n },\n diamondPoints() {\n if (!this.isDiamond) return ''\n return (this.nodeW / 2) + ',0 ' + this.nodeW + ',' + (this.nodeH / 2) + ' ' + (this.nodeW / 2) + ',' + this.nodeH + ' 0,' + (this.nodeH / 2)\n },\n trianglePoints() {\n if (!this.isTriangle) return ''\n let w = this.nodeW\n let h = this.nodeH\n let s = this.node.shape\n if (s === 'triangle-right') return '0,0 ' + w + ',' + (h / 2) + ' 0,' + h\n if (s === 'triangle-down') return '0,0 ' + w + ',0 ' + (w / 2) + ',' + h\n if (s === 'triangle-left') return w + ',0 0,' + (h / 2) + ' ' + w + ',' + h\n return (w / 2) + ',0 0,' + h + ' ' + w + ',' + h\n },\n svgViewBox() {\n return '0 0 ' + this.nodeW + ' ' + this.nodeH\n },\n diamondViewBox() {\n if (!this.isDiamond) return '0 0 150 40'\n return this.svgViewBox\n },\n },\n}\n<\/script>\n\n<style scoped>\n.vue-flow__node-face {\n pointer-events: none;\n}\n.vue-flow__shape-svg {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n overflow: visible;\n}\n.vue-flow__shape-svg polygon,\n.vue-flow__shape-svg ellipse {\n transition: filter 0.3s ease;\n}\n</style>\n"]},media:void 0})},yi,"data-v-2edaed7e",false,void 0,!1,Zr,void 0,void 0);const wi={name:"FlowHandle",props:{type:{type:String,default:"source"},position:{type:String,default:"bottom"},id:{type:String,default:null},connectable:{type:Boolean,default:!0},locked:{type:Boolean,default:!1},offset:{type:String,default:null},customStyle:{type:Object,default:null}},computed:{offsetStyle(){if(this.customStyle)return this.customStyle;if(!this.offset)return null;return"top"===this.position||"bottom"===this.position?{left:this.offset,transform:"translateX(-50%)"}:{top:this.offset,transform:"translateY(-50%)"}},classes(){return["vue-flow__handle",`vue-flow__handle--${this.position}`,`vue-flow__handle--${this.type}`,{"vue-flow__handle--not-connectable":!this.connectable}]}},methods:{onMouseDown(n){this.connectable&&this.$emit("connect-start",{event:n,handleId:this.id||this.type,handleType:this.type,handlePosition:this.position})}}};var Si=function(){var n=this,e=n.$createElement,t=n._self._c||e;return n.locked?n._e():t("div",{class:n.classes,style:n.offsetStyle,attrs:{"data-handle-id":n.id||n.type,"data-handle-type":n.type,"data-handle-position":n.position},on:{mousedown:function(e){return e.stopPropagation(),n.onMouseDown.apply(null,arguments)}}})};Si._withStripped=!0;const ki=Xr({render:Si,staticRenderFns:[]},function(n){n&&n("data-v-6c1627c2_0",{source:"\n.vue-flow__handle[data-v-6c1627c2] {\n position: absolute;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: #555;\n border: 1px solid #fff;\n pointer-events: all;\n cursor: crosshair;\n z-index: 3;\n}\n/* 連出點(source)白面黑線, 與連入點(深灰底白框)區隔: 使用者一眼可辨可拖曳建線之出發點 */\n.vue-flow__handle--source[data-v-6c1627c2] {\n background: #fff;\n border: 1px solid #1a1918;\n}\n/* 連入點(target)不可作為拖曳建線之出發點, 不顯示十字準星 */\n.vue-flow__handle--target[data-v-6c1627c2] {\n cursor: default;\n}\n.vue-flow__handle--top[data-v-6c1627c2] {\n top: -4px;\n left: 50%;\n transform: translateX(-50%);\n}\n.vue-flow__handle--bottom[data-v-6c1627c2] {\n bottom: -4px;\n left: 50%;\n transform: translateX(-50%);\n}\n.vue-flow__handle--left[data-v-6c1627c2] {\n top: 50%;\n left: -4px;\n transform: translateY(-50%);\n}\n.vue-flow__handle--right[data-v-6c1627c2] {\n top: 50%;\n right: -4px;\n transform: translateY(-50%);\n}\n.vue-flow__handle--not-connectable[data-v-6c1627c2] {\n cursor: default;\n pointer-events: none;\n}\n.vue-flow__handle[data-v-6c1627c2]:hover {\n background: #0041d0;\n width: 10px;\n height: 10px;\n}\n.vue-flow__handle--top[data-v-6c1627c2]:hover { top: -5px;\n}\n.vue-flow__handle--bottom[data-v-6c1627c2]:hover { bottom: -5px;\n}\n.vue-flow__handle--left[data-v-6c1627c2]:hover { left: -5px;\n}\n.vue-flow__handle--right[data-v-6c1627c2]:hover { right: -5px;\n}\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\nodes\\Handle.vue"],names:[],mappings:";AAwDA;EACA,kBAAA;EACA,UAAA;EACA,WAAA;EACA,kBAAA;EACA,gBAAA;EACA,sBAAA;EACA,mBAAA;EACA,iBAAA;EACA,UAAA;AACA;AACA,qDAAA;AACA;EACA,gBAAA;EACA,yBAAA;AACA;AACA,qCAAA;AACA;EACA,eAAA;AACA;AACA;EACA,SAAA;EACA,SAAA;EACA,2BAAA;AACA;AACA;EACA,YAAA;EACA,SAAA;EACA,2BAAA;AACA;AACA;EACA,QAAA;EACA,UAAA;EACA,2BAAA;AACA;AACA;EACA,QAAA;EACA,WAAA;EACA,2BAAA;AACA;AACA;EACA,eAAA;EACA,oBAAA;AACA;AACA;EACA,mBAAA;EACA,WAAA;EACA,YAAA;AACA;AACA,gDAAA,SAAA;AAAA;AACA,mDAAA,YAAA;AAAA;AACA,iDAAA,UAAA;AAAA;AACA,kDAAA,WAAA;AAAA",file:"Handle.vue",sourcesContent:["<template>\n <div\n v-if=\"!locked\"\n :class=\"classes\"\n :style=\"offsetStyle\"\n :data-handle-id=\"id || type\"\n :data-handle-type=\"type\"\n :data-handle-position=\"position\"\n @mousedown.stop=\"onMouseDown\"\n />\n</template>\n\n<script>\nexport default {\n name: 'FlowHandle',\n props: {\n type: { type: String, default: 'source' }, // 'source' | 'target'\n position: { type: String, default: 'bottom' }, // 'top' | 'right' | 'bottom' | 'left'\n id: { type: String, default: null },\n connectable: { type: Boolean, default: true },\n locked: { type: Boolean, default: false },\n offset: { type: String, default: null },\n customStyle: { type: Object, default: null },\n },\n computed: {\n offsetStyle() {\n if (this.customStyle) return this.customStyle\n if (!this.offset) return null\n const isHorizontal = this.position === 'top' || this.position === 'bottom'\n if (isHorizontal) return { left: this.offset, transform: 'translateX(-50%)' }\n return { top: this.offset, transform: 'translateY(-50%)' }\n },\n classes() {\n return [\n 'vue-flow__handle',\n `vue-flow__handle--${this.position}`,\n `vue-flow__handle--${this.type}`,\n { 'vue-flow__handle--not-connectable': !this.connectable },\n ]\n },\n },\n methods: {\n onMouseDown(event) {\n if (!this.connectable) return\n this.$emit('connect-start', {\n event,\n handleId: this.id || this.type,\n handleType: this.type,\n handlePosition: this.position,\n })\n },\n },\n}\n<\/script>\n\n<style scoped>\n.vue-flow__handle {\n position: absolute;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: #555;\n border: 1px solid #fff;\n pointer-events: all;\n cursor: crosshair;\n z-index: 3;\n}\n/* 連出點(source)白面黑線, 與連入點(深灰底白框)區隔: 使用者一眼可辨可拖曳建線之出發點 */\n.vue-flow__handle--source {\n background: #fff;\n border: 1px solid #1a1918;\n}\n/* 連入點(target)不可作為拖曳建線之出發點, 不顯示十字準星 */\n.vue-flow__handle--target {\n cursor: default;\n}\n.vue-flow__handle--top {\n top: -4px;\n left: 50%;\n transform: translateX(-50%);\n}\n.vue-flow__handle--bottom {\n bottom: -4px;\n left: 50%;\n transform: translateX(-50%);\n}\n.vue-flow__handle--left {\n top: 50%;\n left: -4px;\n transform: translateY(-50%);\n}\n.vue-flow__handle--right {\n top: 50%;\n right: -4px;\n transform: translateY(-50%);\n}\n.vue-flow__handle--not-connectable {\n cursor: default;\n pointer-events: none;\n}\n.vue-flow__handle:hover {\n background: #0041d0;\n width: 10px;\n height: 10px;\n}\n.vue-flow__handle--top:hover { top: -5px; }\n.vue-flow__handle--bottom:hover { bottom: -5px; }\n.vue-flow__handle--left:hover { left: -5px; }\n.vue-flow__handle--right:hover { right: -5px; }\n</style>\n"]},media:void 0})},wi,"data-v-6c1627c2",false,void 0,!1,Zr,void 0,void 0);const _i={name:"DefaultNode",components:{Handle:ki},inject:{getDefNode:{default:()=>()=>({})},getConns:{default:()=>()=>[]}},props:{node:{type:Object,required:!0},connectable:{type:Boolean,default:!0},locked:{type:Boolean,default:!1}},computed:{dn(){return this.getDefNode()},nodeToPosition(){return this.node.toPosition||this.dn.toPosition||"bottom"},nodeFromPosition(){return this.node.fromPosition||this.dn.fromPosition||"top"},usedSourceSides(){const n=this.nodeToPosition,e=this.getConns()||[],t=[];for(const o of e){if(o.from!==this.node.id)continue;const e=o.fromPosition||n;t.indexOf(e)<0&&t.push(e)}return t.length?t:[n]},usedTargetSides(){const n=this.nodeFromPosition,e=this.getConns()||[],t=[];for(const o of e){if(o.to!==this.node.id)continue;const e=o.toPosition||n;t.indexOf(e)<0&&t.push(e)}return t.length?t:[n]},isDiamond(){return"diamond"===this.node.shape},isEllipse(){return"ellipse"===this.node.shape},isTriangle(){let n=this.node.shape;return"triangle"===n||"triangle-right"===n||"triangle-down"===n||"triangle-left"===n},isSvgShape(){return this.isDiamond||this.isEllipse||this.isTriangle},labelStyle(){if(!this.isTriangle)return null;let n=this.node.width||this.dn.width||150,e=this.node.height||this.dn.height||40,t=this.node.shape,o=0,r=0;return"triangle-right"===t?o=Math.round(-n/6):"triangle-down"===t?r=Math.round(-e/6):"triangle-left"===t?o=Math.round(n/6):r=Math.round(e/6),{transform:`translate(${o}px, ${r}px)`}}},methods:{isBothSide(n){return this.usedSourceSides.indexOf(n)>=0&&this.usedTargetSides.indexOf(n)>=0},targetOffsetFor(n){return this.isSvgShape?null:this.isBothSide(n)?"33%":null},sourceOffsetFor(n){return this.isSvgShape?null:this.isBothSide(n)?"67%":null},targetHandleStyleFor(n){const e=this.isBothSide(n);return this.isTriangle?this.getTriangleHandleStyle(n,e?.33:.5):this.isEllipse&&e?this.getEllipseHandleStyle(n,.33):this.isDiamond&&e?this.getDiamondOffsetStyle(n,.33):null},sourceHandleStyleFor(n){const e=this.isBothSide(n);return this.isTriangle?this.getTriangleHandleStyle(n,e?.67:.5):this.isEllipse&&e?this.getEllipseHandleStyle(n,.67):this.isDiamond&&e?this.getDiamondOffsetStyle(n,.67):null},getTriangleHandleStyle(n,e){let t=this.triangleVertices(),o=this.pointOnTriangleSide(t,n,e);return{left:o.x+"%",top:o.y+"%",transform:"translate(-50%, -50%)"}},triangleVertices(){let n=this.node.shape;return"triangle-right"===n?{apex:{x:100,y:50},baseA:{x:0,y:0},baseB:{x:0,y:100},apexSide:"right",baseSide:"left",edgeA:"top",edgeB:"bottom"}:"triangle-down"===n?{apex:{x:50,y:100},baseA:{x:0,y:0},baseB:{x:100,y:0},apexSide:"bottom",baseSide:"top",edgeA:"left",edgeB:"right"}:"triangle-left"===n?{apex:{x:0,y:50},baseA:{x:100,y:0},baseB:{x:100,y:100},apexSide:"left",baseSide:"right",edgeA:"top",edgeB:"bottom"}:{apex:{x:50,y:0},baseA:{x:0,y:100},baseB:{x:100,y:100},apexSide:"top",baseSide:"bottom",edgeA:"left",edgeB:"right"}},pointOnTriangleSide(n,e,t){if(e===n.apexSide){if(t<=.5){let e=2*t;return{x:n.baseA.x+(n.apex.x-n.baseA.x)*e,y:n.baseA.y+(n.apex.y-n.baseA.y)*e}}{let e=2*(t-.5);return{x:n.apex.x+(n.baseB.x-n.apex.x)*e,y:n.apex.y+(n.baseB.y-n.apex.y)*e}}}return e===n.baseSide?{x:n.baseA.x+(n.baseB.x-n.baseA.x)*t,y:n.baseA.y+(n.baseB.y-n.baseA.y)*t}:e===n.edgeA?{x:n.apex.x+(n.baseA.x-n.apex.x)*t,y:n.apex.y+(n.baseA.y-n.apex.y)*t}:e===n.edgeB?{x:n.apex.x+(n.baseB.x-n.apex.x)*t,y:n.apex.y+(n.baseB.y-n.apex.y)*t}:{x:50,y:50}},getEllipseHandleStyle(n,e){let t;switch(n){case"top":t=Math.PI*(1-e);break;case"bottom":t=Math.PI*(e-1);break;case"left":t=Math.PI*(.5+e);break;case"right":t=Math.PI*(.5-e);break;default:t=0}return{left:50+50*Math.cos(t)+"%",top:50-50*Math.sin(t)+"%",transform:"translate(-50%, -50%)"}},getDiamondOffsetStyle(n,e){switch(n){case"top":if(e<=.5){let n=2*e;return{left:50*n+"%",top:50*(1-n)+"%",transform:"translate(-50%, -50%)"}}{let n=2*(e-.5);return{left:50+50*n+"%",top:50*n+"%",transform:"translate(-50%, -50%)"}}case"bottom":if(e<=.5){let n=2*e;return{left:50*n+"%",top:50+50*n+"%",transform:"translate(-50%, -50%)"}}{let n=2*(e-.5);return{left:50+50*n+"%",top:100-50*n+"%",transform:"translate(-50%, -50%)"}}case"left":if(e<=.5){let n=2*e;return{left:50*(1-n)+"%",top:50*n+"%",transform:"translate(-50%, -50%)"}}{let n=2*(e-.5);return{left:50*n+"%",top:50+50*n+"%",transform:"translate(-50%, -50%)"}}case"right":if(e<=.5){let n=2*e;return{left:50+50*n+"%",top:50*n+"%",transform:"translate(-50%, -50%)"}}{let n=2*(e-.5);return{left:100-50*n+"%",top:50+50*n+"%",transform:"translate(-50%, -50%)"}}default:return null}}}};var Bi=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{staticClass:"vue-flow__node-basic"},[n._l(n.usedTargetSides,function(e){return t("Handle",{key:"t-"+e,attrs:{type:"target",position:e,connectable:n.connectable,locked:n.locked,offset:n.targetOffsetFor(e),"custom-style":n.targetHandleStyleFor(e)},on:{"connect-start":function(e){return n.$emit("connect-start",e)}}})}),n._v(" "),t("div",{staticClass:"vue-flow__node-label",style:n.labelStyle},[n._v(n._s(n.node.name))]),n._v(" "),n._l(n.usedSourceSides,function(e){return t("Handle",{key:"s-"+e,attrs:{type:"source",position:e,connectable:n.connectable,locked:n.locked,offset:n.sourceOffsetFor(e),"custom-style":n.sourceHandleStyleFor(e)},on:{"connect-start":function(e){return n.$emit("connect-start",e)}}})})],2)};Bi._withStripped=!0;const Pi=Xr({render:Bi,staticRenderFns:[]},function(n){n&&n("data-v-16b4052e_0",{source:"\n.vue-flow__node-basic[data-v-16b4052e] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n padding: 10px 20px;\n}\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\nodes\\DefaultNode.vue"],names:[],mappings:";AAmSA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,QAAA;EACA,SAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,sBAAA;EACA,kBAAA;AACA",file:"DefaultNode.vue",sourcesContent:["<template>\n <div class=\"vue-flow__node-basic\">\n <Handle\n v-for=\"p in usedTargetSides\"\n :key=\"'t-' + p\"\n type=\"target\"\n :position=\"p\"\n :connectable=\"connectable\"\n :locked=\"locked\"\n :offset=\"targetOffsetFor(p)\"\n :custom-style=\"targetHandleStyleFor(p)\"\n @connect-start=\"$emit('connect-start', $event)\"\n />\n <div class=\"vue-flow__node-label\" :style=\"labelStyle\">{{ node.name }}</div>\n <Handle\n v-for=\"p in usedSourceSides\"\n :key=\"'s-' + p\"\n type=\"source\"\n :position=\"p\"\n :connectable=\"connectable\"\n :locked=\"locked\"\n :offset=\"sourceOffsetFor(p)\"\n :custom-style=\"sourceHandleStyleFor(p)\"\n @connect-start=\"$emit('connect-start', $event)\"\n />\n </div>\n</template>\n\n<script>\nimport Handle from './Handle.vue'\n\nexport default {\n name: 'DefaultNode',\n components: { Handle },\n inject: { getDefNode: { default: () => () => ({}) }, getConns: { default: () => () => [] } },\n props: {\n node: { type: Object, required: true },\n connectable: { type: Boolean, default: true },\n locked: { type: Boolean, default: false },\n },\n computed: {\n dn() {\n return this.getDefNode()\n },\n nodeToPosition() {\n return this.node.toPosition || this.dn.toPosition || 'bottom'\n },\n nodeFromPosition() {\n return this.node.fromPosition || this.dn.fromPosition || 'top'\n },\n // 連接點依「實際連線使用之方位」顯示(conn層級錨點優先), 無邊時回退節點/預設方位\n usedSourceSides() {\n const def = this.nodeToPosition\n const conns = this.getConns() || []\n const sides = []\n for (const c of conns) {\n if (c.from !== this.node.id) continue\n const p = c.fromPosition || def\n if (sides.indexOf(p) < 0) sides.push(p)\n }\n return sides.length ? sides : [def]\n },\n usedTargetSides() {\n const def = this.nodeFromPosition\n const conns = this.getConns() || []\n const sides = []\n for (const c of conns) {\n if (c.to !== this.node.id) continue\n const p = c.toPosition || def\n if (sides.indexOf(p) < 0) sides.push(p)\n }\n return sides.length ? sides : [def]\n },\n isDiamond() {\n return this.node.shape === 'diamond'\n },\n isEllipse() {\n return this.node.shape === 'ellipse'\n },\n isTriangle() {\n let s = this.node.shape\n return s === 'triangle' || s === 'triangle-right' || s === 'triangle-down' || s === 'triangle-left'\n },\n isSvgShape() {\n return this.isDiamond || this.isEllipse || this.isTriangle\n },\n labelStyle() {\n if (!this.isTriangle) return null\n let w = this.node.width || this.dn.width || 150\n let h = this.node.height || this.dn.height || 40\n let s = this.node.shape\n let x = 0\n let y = 0\n if (s === 'triangle-right') x = Math.round(-w / 6)\n else if (s === 'triangle-down') y = Math.round(-h / 6)\n else if (s === 'triangle-left') x = Math.round(w / 6)\n else y = Math.round(h / 6)\n return { transform: `translate(${x}px, ${y}px)` }\n },\n },\n methods: {\n // 同一側同時有入點與出點時錯開(入33%/出67%), 否則置中\n isBothSide(p) {\n return this.usedSourceSides.indexOf(p) >= 0 && this.usedTargetSides.indexOf(p) >= 0\n },\n targetOffsetFor(p) {\n if (this.isSvgShape) return null\n return this.isBothSide(p) ? '33%' : null\n },\n sourceOffsetFor(p) {\n if (this.isSvgShape) return null\n return this.isBothSide(p) ? '67%' : null\n },\n targetHandleStyleFor(p) {\n const both = this.isBothSide(p)\n if (this.isTriangle) {\n return this.getTriangleHandleStyle(p, both ? 0.33 : 0.5)\n }\n if (this.isEllipse && both) {\n return this.getEllipseHandleStyle(p, 0.33)\n }\n if (!this.isDiamond || !both) return null\n return this.getDiamondOffsetStyle(p, 0.33)\n },\n sourceHandleStyleFor(p) {\n const both = this.isBothSide(p)\n if (this.isTriangle) {\n return this.getTriangleHandleStyle(p, both ? 0.67 : 0.5)\n }\n if (this.isEllipse && both) {\n return this.getEllipseHandleStyle(p, 0.67)\n }\n if (!this.isDiamond || !both) return null\n return this.getDiamondOffsetStyle(p, 0.67)\n },\n getTriangleHandleStyle(side, ratio) {\n // Get vertices based on triangle direction\n let v = this.triangleVertices()\n let pt = this.pointOnTriangleSide(v, side, ratio)\n return { left: pt.x + '%', top: pt.y + '%', transform: 'translate(-50%, -50%)' }\n },\n triangleVertices() {\n // Returns 3 vertices in % coords: { apex, baseA, baseB }\n // Also returns which sides correspond to 'top','right','bottom','left'\n let s = this.node.shape\n if (s === 'triangle-right') {\n // apex right-center, base on left\n return {\n apex: { x: 100, y: 50 },\n baseA: { x: 0, y: 0 },\n baseB: { x: 0, y: 100 },\n apexSide: 'right',\n baseSide: 'left',\n edgeA: 'top',\n edgeB: 'bottom'\n }\n }\n if (s === 'triangle-down') {\n // apex bottom-center, base on top\n return {\n apex: { x: 50, y: 100 },\n baseA: { x: 0, y: 0 },\n baseB: { x: 100, y: 0 },\n apexSide: 'bottom',\n baseSide: 'top',\n edgeA: 'left',\n edgeB: 'right'\n }\n }\n if (s === 'triangle-left') {\n // apex left-center, base on right\n return {\n apex: { x: 0, y: 50 },\n baseA: { x: 100, y: 0 },\n baseB: { x: 100, y: 100 },\n apexSide: 'left',\n baseSide: 'right',\n edgeA: 'top',\n edgeB: 'bottom'\n }\n }\n // triangle (up): apex top-center, base on bottom\n return {\n apex: { x: 50, y: 0 },\n baseA: { x: 0, y: 100 },\n baseB: { x: 100, y: 100 },\n apexSide: 'top',\n baseSide: 'bottom',\n edgeA: 'left',\n edgeB: 'right'\n }\n },\n pointOnTriangleSide(v, side, ratio) {\n // apexSide: the side with the apex vertex (a single point, but for same-side we sweep across adjacent edges)\n // baseSide: the straight base edge\n // edgeA: the edge from baseA to apex\n // edgeB: the edge from apex to baseB\n if (side === v.apexSide) {\n // Sweep from edgeA near base → apex → edgeB near base\n if (ratio <= 0.5) {\n let t = ratio * 2\n return { x: v.baseA.x + (v.apex.x - v.baseA.x) * t, y: v.baseA.y + (v.apex.y - v.baseA.y) * t }\n }\n else {\n let t2 = (ratio - 0.5) * 2\n return { x: v.apex.x + (v.baseB.x - v.apex.x) * t2, y: v.apex.y + (v.baseB.y - v.apex.y) * t2 }\n }\n }\n if (side === v.baseSide) {\n // Straight line from baseA to baseB\n return { x: v.baseA.x + (v.baseB.x - v.baseA.x) * ratio, y: v.baseA.y + (v.baseB.y - v.baseA.y) * ratio }\n }\n if (side === v.edgeA) {\n // Edge from apex to baseA\n return { x: v.apex.x + (v.baseA.x - v.apex.x) * ratio, y: v.apex.y + (v.baseA.y - v.apex.y) * ratio }\n }\n if (side === v.edgeB) {\n // Edge from apex to baseB\n return { x: v.apex.x + (v.baseB.x - v.apex.x) * ratio, y: v.apex.y + (v.baseB.y - v.apex.y) * ratio }\n }\n return { x: 50, y: 50 }\n },\n getEllipseHandleStyle(side, ratio) {\n // Map ratio (0..1) to an angle on the ellipse quadrant for the given side\n // For 'top': angle goes from PI (left) to 0 (right), ratio 0.5 = top center\n // We position the handle on the ellipse border using parametric coords\n let angle\n switch (side) {\n case 'top':\n angle = Math.PI * (1 - ratio); break\n case 'bottom':\n angle = Math.PI * (ratio - 1); break\n case 'left':\n angle = Math.PI * (0.5 + ratio); break\n case 'right':\n angle = Math.PI * (0.5 - ratio); break\n default:\n angle = 0\n }\n // Ellipse parametric: x = 50% + 50% * cos(angle), y = 50% - 50% * sin(angle)\n let leftPct = 50 + 50 * Math.cos(angle)\n let topPct = 50 - 50 * Math.sin(angle)\n return { left: leftPct + '%', top: topPct + '%', transform: 'translate(-50%, -50%)' }\n },\n getDiamondOffsetStyle(side, ratio) {\n switch (side) {\n case 'top':\n if (ratio <= 0.5) {\n let t = ratio * 2\n return { left: (t * 50) + '%', top: ((1 - t) * 50) + '%', transform: 'translate(-50%, -50%)' }\n }\n else {\n let t2 = (ratio - 0.5) * 2\n return { left: (50 + t2 * 50) + '%', top: (t2 * 50) + '%', transform: 'translate(-50%, -50%)' }\n }\n case 'bottom':\n if (ratio <= 0.5) {\n let t3 = ratio * 2\n return { left: (t3 * 50) + '%', top: (50 + t3 * 50) + '%', transform: 'translate(-50%, -50%)' }\n }\n else {\n let t4 = (ratio - 0.5) * 2\n return { left: (50 + t4 * 50) + '%', top: (100 - t4 * 50) + '%', transform: 'translate(-50%, -50%)' }\n }\n case 'left':\n if (ratio <= 0.5) {\n let t5 = ratio * 2\n return { left: ((1 - t5) * 50) + '%', top: (t5 * 50) + '%', transform: 'translate(-50%, -50%)' }\n }\n else {\n let t6 = (ratio - 0.5) * 2\n return { left: (t6 * 50) + '%', top: (50 + t6 * 50) + '%', transform: 'translate(-50%, -50%)' }\n }\n case 'right':\n if (ratio <= 0.5) {\n let t7 = ratio * 2\n return { left: (50 + t7 * 50) + '%', top: (t7 * 50) + '%', transform: 'translate(-50%, -50%)' }\n }\n else {\n let t8 = (ratio - 0.5) * 2\n return { left: (100 - t8 * 50) + '%', top: (50 + t8 * 50) + '%', transform: 'translate(-50%, -50%)' }\n }\n default:\n return null\n }\n },\n },\n}\n<\/script>\n\n<style scoped>\n.vue-flow__node-basic {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n padding: 10px 20px;\n}\n</style>\n"]},media:void 0})},_i,"data-v-16b4052e",false,void 0,!1,Zr,void 0,void 0);const Ti={name:"InputNode",components:{Handle:ki},inject:{getDefNode:{default:()=>()=>({})},getConns:{default:()=>()=>[]}},props:{node:{type:Object,required:!0},connectable:{type:Boolean,default:!0},locked:{type:Boolean,default:!1}},computed:{dn(){return this.getDefNode()},usedSourceSides(){const n=this.node.toPosition||this.dn.toPosition||"bottom",e=this.getConns()||[],t=[];for(const o of e){if(o.from!==this.node.id)continue;const e=o.fromPosition||n;t.indexOf(e)<0&&t.push(e)}return t.length?t:[n]}}};var Ei=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{staticClass:"vue-flow__node-input"},[t("div",{staticClass:"vue-flow__node-label"},[n._v(n._s(n.node.name))]),n._v(" "),n._l(n.usedSourceSides,function(e){return t("Handle",{key:"s-"+e,attrs:{type:"source",position:e,connectable:n.connectable,locked:n.locked},on:{"connect-start":function(e){return n.$emit("connect-start",e)}}})})],2)};Ei._withStripped=!0;const zi=Xr({render:Ei,staticRenderFns:[]},function(n){n&&n("data-v-d6ac2cca_0",{source:"\n.vue-flow__node-input[data-v-d6ac2cca] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n padding: 10px 20px;\n}\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\nodes\\InputNode.vue"],names:[],mappings:";AAgDA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,QAAA;EACA,SAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,sBAAA;EACA,kBAAA;AACA",file:"InputNode.vue",sourcesContent:['<template>\n <div class="vue-flow__node-input">\n <div class="vue-flow__node-label">{{ node.name }}</div>\n <Handle\n v-for="p in usedSourceSides"\n :key="\'s-\' + p"\n type="source"\n :position="p"\n :connectable="connectable"\n :locked="locked"\n @connect-start="$emit(\'connect-start\', $event)"\n />\n </div>\n</template>\n\n<script>\nimport Handle from \'./Handle.vue\'\n\nexport default {\n name: \'InputNode\',\n components: { Handle },\n inject: { getDefNode: { default: () => () => ({}) }, getConns: { default: () => () => [] } },\n props: {\n node: { type: Object, required: true },\n connectable: { type: Boolean, default: true },\n locked: { type: Boolean, default: false },\n },\n computed: {\n dn() {\n return this.getDefNode()\n },\n // 連接點依「實際連線使用之方位」顯示(conn.fromPosition 逐邊錨點優先), 無任何出邊才回退節點/預設方位\n usedSourceSides() {\n const def = this.node.toPosition || this.dn.toPosition || \'bottom\'\n const conns = this.getConns() || []\n const sides = []\n for (const c of conns) {\n if (c.from !== this.node.id) continue\n const p = c.fromPosition || def\n if (sides.indexOf(p) < 0) sides.push(p)\n }\n return sides.length ? sides : [def]\n },\n },\n}\n<\/script>\n\n<style scoped>\n.vue-flow__node-input {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n padding: 10px 20px;\n}\n</style>\n']},media:void 0})},Ti,"data-v-d6ac2cca",false,void 0,!1,Zr,void 0,void 0);const Ii={name:"OutputNode",components:{Handle:ki},inject:{getDefNode:{default:()=>()=>({})},getConns:{default:()=>()=>[]}},props:{node:{type:Object,required:!0},connectable:{type:Boolean,default:!0},locked:{type:Boolean,default:!1}},computed:{dn(){return this.getDefNode()},usedTargetSides(){const n=this.node.fromPosition||this.dn.fromPosition||"top",e=this.getConns()||[],t=[];for(const o of e){if(o.to!==this.node.id)continue;const e=o.toPosition||n;t.indexOf(e)<0&&t.push(e)}return t.length?t:[n]}}};var Fi=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{staticClass:"vue-flow__node-output"},[n._l(n.usedTargetSides,function(e){return t("Handle",{key:"t-"+e,attrs:{type:"target",position:e,connectable:n.connectable,locked:n.locked},on:{"connect-start":function(e){return n.$emit("connect-start",e)}}})}),n._v(" "),t("div",{staticClass:"vue-flow__node-label"},[n._v(n._s(n.node.name))])],2)};Fi._withStripped=!0;const Hi=Xr({render:Fi,staticRenderFns:[]},function(n){n&&n("data-v-7a141c7e_0",{source:"\n.vue-flow__node-output[data-v-7a141c7e] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n padding: 10px 20px;\n}\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\nodes\\OutputNode.vue"],names:[],mappings:";AAgDA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,QAAA;EACA,SAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,sBAAA;EACA,kBAAA;AACA",file:"OutputNode.vue",sourcesContent:['<template>\n <div class="vue-flow__node-output">\n <Handle\n v-for="p in usedTargetSides"\n :key="\'t-\' + p"\n type="target"\n :position="p"\n :connectable="connectable"\n :locked="locked"\n @connect-start="$emit(\'connect-start\', $event)"\n />\n <div class="vue-flow__node-label">{{ node.name }}</div>\n </div>\n</template>\n\n<script>\nimport Handle from \'./Handle.vue\'\n\nexport default {\n name: \'OutputNode\',\n components: { Handle },\n inject: { getDefNode: { default: () => () => ({}) }, getConns: { default: () => () => [] } },\n props: {\n node: { type: Object, required: true },\n connectable: { type: Boolean, default: true },\n locked: { type: Boolean, default: false },\n },\n computed: {\n dn() {\n return this.getDefNode()\n },\n // 連接點依「實際連線使用之方位」顯示(conn.toPosition 逐邊錨點優先), 無任何入邊才回退節點/預設方位\n usedTargetSides() {\n const def = this.node.fromPosition || this.dn.fromPosition || \'top\'\n const conns = this.getConns() || []\n const sides = []\n for (const c of conns) {\n if (c.to !== this.node.id) continue\n const p = c.toPosition || def\n if (sides.indexOf(p) < 0) sides.push(p)\n }\n return sides.length ? sides : [def]\n },\n },\n}\n<\/script>\n\n<style scoped>\n.vue-flow__node-output {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n padding: 10px 20px;\n}\n</style>\n']},media:void 0})},Ii,"data-v-7a141c7e",false,void 0,!1,Zr,void 0,void 0),Ni={basic:Pi,input:zi,output:Hi};const $i={name:"NodeBody",components:{NodeFace:xi,DefaultNode:Pi,InputNode:zi,OutputNode:Hi},props:{node:{type:Object,required:!0},connectable:{type:Boolean,default:!0},selected:{type:Boolean,default:!1},resizable:{type:Boolean,default:!0},locked:{type:Boolean,default:!1},hovered:{type:Boolean,default:!1},lastW:{type:Number,default:0},lastH:{type:Number,default:0}},computed:{nodeComponent(){return Ni[this.node.type||"basic"]||Pi},bodyStyle(){const n=this.lastW||this.node.width,e=this.lastH||this.node.height,t={};return n&&(t.width="number"==typeof n?n+"px":n),e&&(t.height="number"==typeof e?e+"px":e),t}}};var Wi=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{staticClass:"vue-flow__node-body",style:n.bodyStyle},[t("NodeFace",{attrs:{node:n.node,lastW:n.lastW,lastH:n.lastH}}),n._v(" "),t(n.nodeComponent,{tag:"component",attrs:{node:n.node,connectable:n.connectable,locked:n.locked},on:{"connect-start":function(e){return n.$emit("connect-start",e)}}}),n._v(" "),t("transition",{attrs:{name:"vue-flow__fade"}},[n.resizable&&!n.locked&&(n.selected||n.hovered)?t("div",{staticClass:"vue-flow__resize-group"},[t("div",{staticClass:"vue-flow__resize vue-flow__resize--top-left",on:{mousedown:function(e){return e.stopPropagation(),n.$emit("resize-start",{event:e,edge:"top-left"})}}}),n._v(" "),t("div",{staticClass:"vue-flow__resize vue-flow__resize--top-right",on:{mousedown:function(e){return e.stopPropagation(),n.$emit("resize-start",{event:e,edge:"top-right"})}}}),n._v(" "),t("div",{staticClass:"vue-flow__resize vue-flow__resize--bottom-left",on:{mousedown:function(e){return e.stopPropagation(),n.$emit("resize-start",{event:e,edge:"bottom-left"})}}}),n._v(" "),t("div",{staticClass:"vue-flow__resize vue-flow__resize--bottom-right",on:{mousedown:function(e){return e.stopPropagation(),n.$emit("resize-start",{event:e,edge:"bottom-right"})}}})]):n._e()])],1)};Wi._withStripped=!0;const Mi=Xr({render:Wi,staticRenderFns:[]},function(n){n&&n("data-v-0dd42cc1_0",{source:"\n.vue-flow__node-body[data-v-0dd42cc1] {\n box-sizing: border-box;\n}\n.vue-flow__resize[data-v-0dd42cc1] {\n position: absolute;\n pointer-events: all;\n}\n.vue-flow__resize--top-left[data-v-0dd42cc1],\n.vue-flow__resize--top-right[data-v-0dd42cc1],\n.vue-flow__resize--bottom-left[data-v-0dd42cc1],\n.vue-flow__resize--bottom-right[data-v-0dd42cc1] {\n width: 10px;\n height: 10px;\n z-index: 1;\n border-radius: 2px;\n background: #fff;\n border: 1.5px solid #bbb;\n transition: border-color 0.15s ease;\n}\n.vue-flow__resize--top-left[data-v-0dd42cc1]:hover,\n.vue-flow__resize--top-right[data-v-0dd42cc1]:hover,\n.vue-flow__resize--bottom-left[data-v-0dd42cc1]:hover,\n.vue-flow__resize--bottom-right[data-v-0dd42cc1]:hover {\n border-color: #0041d0;\n background: #e8f0fe;\n}\n.vue-flow__resize--top-left[data-v-0dd42cc1] { top: -5px; left: -5px; cursor: nwse-resize;\n}\n.vue-flow__resize--top-right[data-v-0dd42cc1] { top: -5px; right: -5px; cursor: nesw-resize;\n}\n.vue-flow__resize--bottom-left[data-v-0dd42cc1] { bottom: -5px; left: -5px; cursor: nesw-resize;\n}\n.vue-flow__resize--bottom-right[data-v-0dd42cc1] { bottom: -5px; right: -5px; cursor: nwse-resize;\n}\n.vue-flow__fade-enter-active[data-v-0dd42cc1],\n.vue-flow__fade-leave-active[data-v-0dd42cc1] {\n transition: opacity 0.15s ease;\n}\n.vue-flow__fade-enter[data-v-0dd42cc1],\n.vue-flow__fade-leave-to[data-v-0dd42cc1] {\n opacity: 0;\n}\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\nodes\\NodeBody.vue"],names:[],mappings:";AAgEA;EACA,sBAAA;AACA;AACA;EACA,kBAAA;EACA,mBAAA;AACA;AACA;;;;EAIA,WAAA;EACA,YAAA;EACA,UAAA;EACA,kBAAA;EACA,gBAAA;EACA,wBAAA;EACA,mCAAA;AACA;AACA;;;;EAIA,qBAAA;EACA,mBAAA;AACA;AACA,+CAAA,SAAA,EAAA,UAAA,EAAA,mBAAA;AAAA;AACA,gDAAA,SAAA,EAAA,WAAA,EAAA,mBAAA;AAAA;AACA,kDAAA,YAAA,EAAA,UAAA,EAAA,mBAAA;AAAA;AACA,mDAAA,YAAA,EAAA,WAAA,EAAA,mBAAA;AAAA;AACA;;EAEA,8BAAA;AACA;AACA;;EAEA,UAAA;AACA",file:"NodeBody.vue",sourcesContent:['<template>\n <div class="vue-flow__node-body" :style="bodyStyle">\n <NodeFace :node="node" :lastW="lastW" :lastH="lastH" />\n <component\n :is="nodeComponent"\n :node="node"\n :connectable="connectable"\n :locked="locked"\n @connect-start="$emit(\'connect-start\', $event)"\n />\n \x3c!-- Corner resize handles (4 corners only) --\x3e\n <transition name="vue-flow__fade">\n <div v-if="resizable && !locked && (selected || hovered)" class="vue-flow__resize-group">\n <div class="vue-flow__resize vue-flow__resize--top-left" @mousedown.stop="$emit(\'resize-start\', { event: $event, edge: \'top-left\' })"></div>\n <div class="vue-flow__resize vue-flow__resize--top-right" @mousedown.stop="$emit(\'resize-start\', { event: $event, edge: \'top-right\' })"></div>\n <div class="vue-flow__resize vue-flow__resize--bottom-left" @mousedown.stop="$emit(\'resize-start\', { event: $event, edge: \'bottom-left\' })"></div>\n <div class="vue-flow__resize vue-flow__resize--bottom-right" @mousedown.stop="$emit(\'resize-start\', { event: $event, edge: \'bottom-right\' })"></div>\n </div>\n </transition>\n </div>\n</template>\n\n<script>\nimport NodeFace from \'./NodeFace.vue\'\nimport DefaultNode from \'./DefaultNode.vue\'\nimport InputNode from \'./InputNode.vue\'\nimport OutputNode from \'./OutputNode.vue\'\n\nconst builtInNodes = {\n basic: DefaultNode,\n input: InputNode,\n output: OutputNode,\n}\n\nexport default {\n name: \'NodeBody\',\n components: { NodeFace, DefaultNode, InputNode, OutputNode },\n props: {\n node: { type: Object, required: true },\n connectable: { type: Boolean, default: true },\n selected: { type: Boolean, default: false },\n resizable: { type: Boolean, default: true },\n locked: { type: Boolean, default: false },\n hovered: { type: Boolean, default: false },\n lastW: { type: Number, default: 0 },\n lastH: { type: Number, default: 0 },\n },\n computed: {\n nodeComponent() {\n return builtInNodes[this.node.type || \'basic\'] || DefaultNode\n },\n bodyStyle() {\n const w = this.lastW || this.node.width\n const h = this.lastH || this.node.height\n const s = {}\n if (w) s.width = (typeof w === \'number\' ? w + \'px\' : w)\n if (h) s.height = (typeof h === \'number\' ? h + \'px\' : h)\n return s\n },\n },\n}\n<\/script>\n\n<style scoped>\n.vue-flow__node-body {\n box-sizing: border-box;\n}\n.vue-flow__resize {\n position: absolute;\n pointer-events: all;\n}\n.vue-flow__resize--top-left,\n.vue-flow__resize--top-right,\n.vue-flow__resize--bottom-left,\n.vue-flow__resize--bottom-right {\n width: 10px;\n height: 10px;\n z-index: 1;\n border-radius: 2px;\n background: #fff;\n border: 1.5px solid #bbb;\n transition: border-color 0.15s ease;\n}\n.vue-flow__resize--top-left:hover,\n.vue-flow__resize--top-right:hover,\n.vue-flow__resize--bottom-left:hover,\n.vue-flow__resize--bottom-right:hover {\n border-color: #0041d0;\n background: #e8f0fe;\n}\n.vue-flow__resize--top-left { top: -5px; left: -5px; cursor: nwse-resize; }\n.vue-flow__resize--top-right { top: -5px; right: -5px; cursor: nesw-resize; }\n.vue-flow__resize--bottom-left { bottom: -5px; left: -5px; cursor: nesw-resize; }\n.vue-flow__resize--bottom-right { bottom: -5px; right: -5px; cursor: nwse-resize; }\n.vue-flow__fade-enter-active,\n.vue-flow__fade-leave-active {\n transition: opacity 0.15s ease;\n}\n.vue-flow__fade-enter,\n.vue-flow__fade-leave-to {\n opacity: 0;\n}\n</style>\n']},media:void 0})},$i,"data-v-0dd42cc1",false,void 0,!1,Zr,void 0,void 0);var Li=Math.max;var Di=ut?function(n,e){return ut(n,"toString",{configurable:!0,enumerable:!1,value:(t=e,function(){return t}),writable:!0});var t}:Vn,Ri=Di,ji=Date.now;var Oi=function(n){var e=0,t=0;return function(){var o=ji(),r=16-(o-t);if(t=o,r>0){if(++e>=800)return arguments[0]}else e=0;return n.apply(void 0,arguments)}}(Ri),Vi=Oi;function Yi(n,e){return Vi(function(n,e,t){return e=Li(void 0===e?n.length-1:e,0),function(){for(var o=arguments,r=-1,i=Li(o.length-e,0),a=Array(i);++r<i;)a[r]=o[e+r];r=-1;for(var s=Array(e+1);++r<e;)s[r]=o[r];return s[e]=t(a),function(n,e,t){switch(t.length){case 0:return n.call(e);case 1:return n.call(e,t[0]);case 2:return n.call(e,t[0],t[1]);case 3:return n.call(e,t[0],t[1],t[2])}return n.apply(e,t)}(n,this,s)}}(n,e,Vn),n+"")}function Ui(n){return n!=n}function Xi(n,e,t){return e==e?function(n,e,t){for(var o=t-1,r=n.length;++o<r;)if(n[o]===e)return o;return-1}(n,e,t):function(n,e,t,o){for(var r=n.length,i=t+(o?1:-1);o?i--:++i<r;)if(e(n[i],i,n))return i;return-1}(n,Ui,t)}function Gi(n,e,t,o){for(var r=t-1,i=n.length;++r<i;)if(o(n[r],e))return r;return-1}var Zi=Array.prototype.splice;var qi=Yi(function(n,e){return n&&n.length&&e&&e.length?function(n,e,t,o){var r=o?Gi:Xi,i=-1,a=e.length,s=n;for(n===e&&(e=go(e)),t&&(s=J(n,kn(t)));++i<a;)for(var l=0,d=e[i],u=t?t(d):d;(l=r(s,u,l,o))>-1;)s!==n&&Zi.call(s,l,1),Zi.call(n,l,1);return n}(n,e):n});const Ji={props:{to:{type:String,default:null}},computed:{toEl:function(){let n=this,e=null;try{e=document.querySelector(n.to)}catch(n){}return e}},watch:{toEl:function(n){this.teleport()}},mounted:function(){this.teleport()},destroyed:function(){let n=this;try{n.$el.remove()}catch(n){}},methods:{teleport:function(){let n=this;try{n.$el&&n.$el.parentElement!==n.toEl&&n.toEl.appendChild(n.$el)}catch(n){}}}};var Qi=function(){var n=this,e=n.$createElement;return(n._self._c||e)("div",[n._t("default")],2)};Qi._withStripped=!0;const Ki=Xr({render:Qi,staticRenderFns:[]},function(n){n&&n("data-v-665a9dd1_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"Teleport.vue"},media:void 0})},Ji,"data-v-665a9dd1",false,void 0,!1,Zr,void 0,void 0);function na(n,e){return!!Ft(n)&&(!(!ft(e)&&!Ut(e))&&e in n)}function ea(n,e,t){if(!jr(n))return void console.log("clientX is not a number",n);if(!jr(e))return void console.log("clientY is not a number",e);if(!$r(t))return void console.log("ele is not a HTMLElement",t);let o;try{o=t.getBoundingClientRect()}catch(n){return void console.log("invalid ele for getBoundingClientRect",n)}let r=!1;try{r=n>=o.left&&n<=o.right&&e>=o.top&&e<=o.bottom}catch(n){console.log("catch when calculating page information of element",n)}return r}function ta(n){if(null==n)return window;if("[object Window]"!==n.toString()){var e=n.ownerDocument;return e&&e.defaultView||window}return n}function oa(n){return n instanceof ta(n).Element||n instanceof Element}function ra(n){return n instanceof ta(n).HTMLElement||n instanceof HTMLElement}function ia(n){return"undefined"!=typeof ShadowRoot&&(n instanceof ta(n).ShadowRoot||n instanceof ShadowRoot)}var aa=Math.max,sa=Math.min,la=Math.round;function da(){var n=navigator.userAgentData;return null!=n&&n.brands&&Array.isArray(n.brands)?n.brands.map(function(n){return n.brand+"/"+n.version}).join(" "):navigator.userAgent}function ua(){return!/^((?!chrome|android).)*safari/i.test(da())}function ca(n,e,t){void 0===e&&(e=!1),void 0===t&&(t=!1);var o=n.getBoundingClientRect(),r=1,i=1;e&&ra(n)&&(r=n.offsetWidth>0&&la(o.width)/n.offsetWidth||1,i=n.offsetHeight>0&&la(o.height)/n.offsetHeight||1);var a=(oa(n)?ta(n):window).visualViewport,s=!ua()&&t,l=(o.left+(s&&a?a.offsetLeft:0))/r,d=(o.top+(s&&a?a.offsetTop:0))/i,u=o.width/r,c=o.height/i;return{width:u,height:c,top:d,right:l+u,bottom:d+c,left:l,x:l,y:d}}function pa(n){var e=ta(n);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function fa(n){return n?(n.nodeName||"").toLowerCase():null}function ha(n){return((oa(n)?n.ownerDocument:n.document)||window.document).documentElement}function ga(n){return ca(ha(n)).left+pa(n).scrollLeft}function va(n){return ta(n).getComputedStyle(n)}function ma(n){var e=va(n),t=e.overflow,o=e.overflowX,r=e.overflowY;return/auto|scroll|overlay|hidden/.test(t+r+o)}function Aa(n,e,t){void 0===t&&(t=!1);var o,r,i=ra(e),a=ra(e)&&function(n){var e=n.getBoundingClientRect(),t=la(e.width)/n.offsetWidth||1,o=la(e.height)/n.offsetHeight||1;return 1!==t||1!==o}(e),s=ha(e),l=ca(n,a,t),d={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(i||!i&&!t)&&(("body"!==fa(e)||ma(s))&&(d=(o=e)!==ta(o)&&ra(o)?{scrollLeft:(r=o).scrollLeft,scrollTop:r.scrollTop}:pa(o)),ra(e)?((u=ca(e,!0)).x+=e.clientLeft,u.y+=e.clientTop):s&&(u.x=ga(s))),{x:l.left+d.scrollLeft-u.x,y:l.top+d.scrollTop-u.y,width:l.width,height:l.height}}function ba(n){var e=ca(n),t=n.offsetWidth,o=n.offsetHeight;return Math.abs(e.width-t)<=1&&(t=e.width),Math.abs(e.height-o)<=1&&(o=e.height),{x:n.offsetLeft,y:n.offsetTop,width:t,height:o}}function ya(n){return"html"===fa(n)?n:n.assignedSlot||n.parentNode||(ia(n)?n.host:null)||ha(n)}function Ca(n){return["html","body","#document"].indexOf(fa(n))>=0?n.ownerDocument.body:ra(n)&&ma(n)?n:Ca(ya(n))}function xa(n,e){var t;void 0===e&&(e=[]);var o=Ca(n),r=o===(null==(t=n.ownerDocument)?void 0:t.body),i=ta(o),a=r?[i].concat(i.visualViewport||[],ma(o)?o:[]):o,s=e.concat(a);return r?s:s.concat(xa(ya(a)))}function wa(n){return["table","td","th"].indexOf(fa(n))>=0}function Sa(n){return ra(n)&&"fixed"!==va(n).position?n.offsetParent:null}function ka(n){for(var e=ta(n),t=Sa(n);t&&wa(t)&&"static"===va(t).position;)t=Sa(t);return t&&("html"===fa(t)||"body"===fa(t)&&"static"===va(t).position)?e:t||function(n){var e=/firefox/i.test(da());if(/Trident/i.test(da())&&ra(n)&&"fixed"===va(n).position)return null;var t=ya(n);for(ia(t)&&(t=t.host);ra(t)&&["html","body"].indexOf(fa(t))<0;){var o=va(t);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||e&&"filter"===o.willChange||e&&o.filter&&"none"!==o.filter)return t;t=t.parentNode}return null}(n)||e}var _a="top",Ba="bottom",Pa="right",Ta="left",Ea="auto",za=[_a,Ba,Pa,Ta],Ia="start",Fa="end",Ha="viewport",Na="popper",$a=za.reduce(function(n,e){return n.concat([e+"-"+Ia,e+"-"+Fa])},[]),Wa=[].concat(za,[Ea]).reduce(function(n,e){return n.concat([e,e+"-"+Ia,e+"-"+Fa])},[]),Ma=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function La(n){var e=new Map,t=new Set,o=[];function r(n){t.add(n.name),[].concat(n.requires||[],n.requiresIfExists||[]).forEach(function(n){if(!t.has(n)){var o=e.get(n);o&&r(o)}}),o.push(n)}return n.forEach(function(n){e.set(n.name,n)}),n.forEach(function(n){t.has(n.name)||r(n)}),o}function Da(n,e){var t=e.getRootNode&&e.getRootNode();if(n.contains(e))return!0;if(t&&ia(t)){var o=e;do{if(o&&n.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function Ra(n){return Object.assign({},n,{left:n.x,top:n.y,right:n.x+n.width,bottom:n.y+n.height})}function ja(n,e,t){return e===Ha?Ra(function(n,e){var t=ta(n),o=ha(n),r=t.visualViewport,i=o.clientWidth,a=o.clientHeight,s=0,l=0;if(r){i=r.width,a=r.height;var d=ua();(d||!d&&"fixed"===e)&&(s=r.offsetLeft,l=r.offsetTop)}return{width:i,height:a,x:s+ga(n),y:l}}(n,t)):oa(e)?function(n,e){var t=ca(n,!1,"fixed"===e);return t.top=t.top+n.clientTop,t.left=t.left+n.clientLeft,t.bottom=t.top+n.clientHeight,t.right=t.left+n.clientWidth,t.width=n.clientWidth,t.height=n.clientHeight,t.x=t.left,t.y=t.top,t}(e,t):Ra(function(n){var e,t=ha(n),o=pa(n),r=null==(e=n.ownerDocument)?void 0:e.body,i=aa(t.scrollWidth,t.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=aa(t.scrollHeight,t.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),s=-o.scrollLeft+ga(n),l=-o.scrollTop;return"rtl"===va(r||t).direction&&(s+=aa(t.clientWidth,r?r.clientWidth:0)-i),{width:i,height:a,x:s,y:l}}(ha(n)))}function Oa(n,e,t,o){var r="clippingParents"===e?function(n){var e=xa(ya(n)),t=["absolute","fixed"].indexOf(va(n).position)>=0&&ra(n)?ka(n):n;return oa(t)?e.filter(function(n){return oa(n)&&Da(n,t)&&"body"!==fa(n)}):[]}(n):[].concat(e),i=[].concat(r,[t]),a=i[0],s=i.reduce(function(e,t){var r=ja(n,t,o);return e.top=aa(r.top,e.top),e.right=sa(r.right,e.right),e.bottom=sa(r.bottom,e.bottom),e.left=aa(r.left,e.left),e},ja(n,a,o));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function Va(n){return n.split("-")[0]}function Ya(n){return n.split("-")[1]}function Ua(n){return["top","bottom"].indexOf(n)>=0?"x":"y"}function Xa(n){var e,t=n.reference,o=n.element,r=n.placement,i=r?Va(r):null,a=r?Ya(r):null,s=t.x+t.width/2-o.width/2,l=t.y+t.height/2-o.height/2;switch(i){case _a:e={x:s,y:t.y-o.height};break;case Ba:e={x:s,y:t.y+t.height};break;case Pa:e={x:t.x+t.width,y:l};break;case Ta:e={x:t.x-o.width,y:l};break;default:e={x:t.x,y:t.y}}var d=i?Ua(i):null;if(null!=d){var u="y"===d?"height":"width";switch(a){case Ia:e[d]=e[d]-(t[u]/2-o[u]/2);break;case Fa:e[d]=e[d]+(t[u]/2-o[u]/2)}}return e}function Ga(n){return Object.assign({},{top:0,right:0,bottom:0,left:0},n)}function Za(n,e){return e.reduce(function(e,t){return e[t]=n,e},{})}function qa(n,e){void 0===e&&(e={});var t=e,o=t.placement,r=void 0===o?n.placement:o,i=t.strategy,a=void 0===i?n.strategy:i,s=t.boundary,l=void 0===s?"clippingParents":s,d=t.rootBoundary,u=void 0===d?Ha:d,c=t.elementContext,p=void 0===c?Na:c,f=t.altBoundary,h=void 0!==f&&f,g=t.padding,v=void 0===g?0:g,m=Ga("number"!=typeof v?v:Za(v,za)),A=p===Na?"reference":Na,b=n.rects.popper,y=n.elements[h?A:p],C=Oa(oa(y)?y:y.contextElement||ha(n.elements.popper),l,u,a),x=ca(n.elements.reference),w=Xa({reference:x,element:b,strategy:"absolute",placement:r}),S=Ra(Object.assign({},b,w)),k=p===Na?S:x,_={top:C.top-k.top+m.top,bottom:k.bottom-C.bottom+m.bottom,left:C.left-k.left+m.left,right:k.right-C.right+m.right},B=n.modifiersData.offset;if(p===Na&&B){var P=B[r];Object.keys(_).forEach(function(n){var e=[Pa,Ba].indexOf(n)>=0?1:-1,t=[_a,Ba].indexOf(n)>=0?"y":"x";_[n]+=P[t]*e})}return _}var Ja={placement:"bottom",modifiers:[],strategy:"absolute"};function Qa(){for(var n=arguments.length,e=new Array(n),t=0;t<n;t++)e[t]=arguments[t];return!e.some(function(n){return!(n&&"function"==typeof n.getBoundingClientRect)})}function Ka(n){void 0===n&&(n={});var e=n,t=e.defaultModifiers,o=void 0===t?[]:t,r=e.defaultOptions,i=void 0===r?Ja:r;return function(n,e,t){void 0===t&&(t=i);var r,a,s={placement:"bottom",orderedModifiers:[],options:Object.assign({},Ja,i),modifiersData:{},elements:{reference:n,popper:e},attributes:{},styles:{}},l=[],d=!1,u={state:s,setOptions:function(t){var r="function"==typeof t?t(s.options):t;c(),s.options=Object.assign({},i,s.options,r),s.scrollParents={reference:oa(n)?xa(n):n.contextElement?xa(n.contextElement):[],popper:xa(e)};var a,d,p=function(n){var e=La(n);return Ma.reduce(function(n,t){return n.concat(e.filter(function(n){return n.phase===t}))},[])}((a=[].concat(o,s.options.modifiers),d=a.reduce(function(n,e){var t=n[e.name];return n[e.name]=t?Object.assign({},t,e,{options:Object.assign({},t.options,e.options),data:Object.assign({},t.data,e.data)}):e,n},{}),Object.keys(d).map(function(n){return d[n]})));return s.orderedModifiers=p.filter(function(n){return n.enabled}),s.orderedModifiers.forEach(function(n){var e=n.name,t=n.options,o=void 0===t?{}:t,r=n.effect;if("function"==typeof r){var i=r({state:s,name:e,instance:u,options:o}),a=function(){};l.push(i||a)}}),u.update()},forceUpdate:function(){if(!d){var n=s.elements,e=n.reference,t=n.popper;if(Qa(e,t)){s.rects={reference:Aa(e,ka(t),"fixed"===s.options.strategy),popper:ba(t)},s.reset=!1,s.placement=s.options.placement,s.orderedModifiers.forEach(function(n){return s.modifiersData[n.name]=Object.assign({},n.data)});for(var o=0;o<s.orderedModifiers.length;o++)if(!0!==s.reset){var r=s.orderedModifiers[o],i=r.fn,a=r.options,l=void 0===a?{}:a,c=r.name;"function"==typeof i&&(s=i({state:s,options:l,name:c,instance:u})||s)}else s.reset=!1,o=-1}}},update:(r=function(){return new Promise(function(n){u.forceUpdate(),n(s)})},function(){return a||(a=new Promise(function(n){Promise.resolve().then(function(){a=void 0,n(r())})})),a}),destroy:function(){c(),d=!0}};if(!Qa(n,e))return u;function c(){l.forEach(function(n){return n()}),l=[]}return u.setOptions(t).then(function(n){!d&&t.onFirstUpdate&&t.onFirstUpdate(n)}),u}}var ns={passive:!0};var es={top:"auto",right:"auto",bottom:"auto",left:"auto"};function ts(n){var e,t=n.popper,o=n.popperRect,r=n.placement,i=n.variation,a=n.offsets,s=n.position,l=n.gpuAcceleration,d=n.adaptive,u=n.roundOffsets,c=n.isFixed,p=a.x,f=void 0===p?0:p,h=a.y,g=void 0===h?0:h,v="function"==typeof u?u({x:f,y:g}):{x:f,y:g};f=v.x,g=v.y;var m=a.hasOwnProperty("x"),A=a.hasOwnProperty("y"),b=Ta,y=_a,C=window;if(d){var x=ka(t),w="clientHeight",S="clientWidth";if(x===ta(t)&&"static"!==va(x=ha(t)).position&&"absolute"===s&&(w="scrollHeight",S="scrollWidth"),r===_a||(r===Ta||r===Pa)&&i===Fa)y=Ba,g-=(c&&x===C&&C.visualViewport?C.visualViewport.height:x[w])-o.height,g*=l?1:-1;if(r===Ta||(r===_a||r===Ba)&&i===Fa)b=Pa,f-=(c&&x===C&&C.visualViewport?C.visualViewport.width:x[S])-o.width,f*=l?1:-1}var k,_=Object.assign({position:s},d&&es),B=!0===u?function(n,e){var t=n.x,o=n.y,r=e.devicePixelRatio||1;return{x:la(t*r)/r||0,y:la(o*r)/r||0}}({x:f,y:g},ta(t)):{x:f,y:g};return f=B.x,g=B.y,l?Object.assign({},_,((k={})[y]=A?"0":"",k[b]=m?"0":"",k.transform=(C.devicePixelRatio||1)<=1?"translate("+f+"px, "+g+"px)":"translate3d("+f+"px, "+g+"px, 0)",k)):Object.assign({},_,((e={})[y]=A?g+"px":"",e[b]=m?f+"px":"",e.transform="",e))}var os={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(n){var e=n.state,t=n.options,o=t.gpuAcceleration,r=void 0===o||o,i=t.adaptive,a=void 0===i||i,s=t.roundOffsets,l=void 0===s||s,d={placement:Va(e.placement),variation:Ya(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:r,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,ts(Object.assign({},d,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:a,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,ts(Object.assign({},d,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var rs={name:"applyStyles",enabled:!0,phase:"write",fn:function(n){var e=n.state;Object.keys(e.elements).forEach(function(n){var t=e.styles[n]||{},o=e.attributes[n]||{},r=e.elements[n];ra(r)&&fa(r)&&(Object.assign(r.style,t),Object.keys(o).forEach(function(n){var e=o[n];!1===e?r.removeAttribute(n):r.setAttribute(n,!0===e?"":e)}))})},effect:function(n){var e=n.state,t={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,t.popper),e.styles=t,e.elements.arrow&&Object.assign(e.elements.arrow.style,t.arrow),function(){Object.keys(e.elements).forEach(function(n){var o=e.elements[n],r=e.attributes[n]||{},i=Object.keys(e.styles.hasOwnProperty(n)?e.styles[n]:t[n]).reduce(function(n,e){return n[e]="",n},{});ra(o)&&fa(o)&&(Object.assign(o.style,i),Object.keys(r).forEach(function(n){o.removeAttribute(n)}))})}},requires:["computeStyles"]},is=Ka({defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(n){var e=n.state,t=n.instance,o=n.options,r=o.scroll,i=void 0===r||r,a=o.resize,s=void 0===a||a,l=ta(e.elements.popper),d=[].concat(e.scrollParents.reference,e.scrollParents.popper);return i&&d.forEach(function(n){n.addEventListener("scroll",t.update,ns)}),s&&l.addEventListener("resize",t.update,ns),function(){i&&d.forEach(function(n){n.removeEventListener("scroll",t.update,ns)}),s&&l.removeEventListener("resize",t.update,ns)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(n){var e=n.state,t=n.name;e.modifiersData[t]=Xa({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},os,rs]}),as={left:"right",right:"left",bottom:"top",top:"bottom"};function ss(n){return n.replace(/left|right|bottom|top/g,function(n){return as[n]})}var ls={start:"end",end:"start"};function ds(n){return n.replace(/start|end/g,function(n){return ls[n]})}function us(n,e){void 0===e&&(e={});var t=e,o=t.placement,r=t.boundary,i=t.rootBoundary,a=t.padding,s=t.flipVariations,l=t.allowedAutoPlacements,d=void 0===l?Wa:l,u=Ya(o),c=u?s?$a:$a.filter(function(n){return Ya(n)===u}):za,p=c.filter(function(n){return d.indexOf(n)>=0});0===p.length&&(p=c);var f=p.reduce(function(e,t){return e[t]=qa(n,{placement:t,boundary:r,rootBoundary:i,padding:a})[Va(t)],e},{});return Object.keys(f).sort(function(n,e){return f[n]-f[e]})}var cs={name:"flip",enabled:!0,phase:"main",fn:function(n){var e=n.state,t=n.options,o=n.name;if(!e.modifiersData[o]._skip){for(var r=t.mainAxis,i=void 0===r||r,a=t.altAxis,s=void 0===a||a,l=t.fallbackPlacements,d=t.padding,u=t.boundary,c=t.rootBoundary,p=t.altBoundary,f=t.flipVariations,h=void 0===f||f,g=t.allowedAutoPlacements,v=e.options.placement,m=Va(v),A=l||(m===v||!h?[ss(v)]:function(n){if(Va(n)===Ea)return[];var e=ss(n);return[ds(n),e,ds(e)]}(v)),b=[v].concat(A).reduce(function(n,t){return n.concat(Va(t)===Ea?us(e,{placement:t,boundary:u,rootBoundary:c,padding:d,flipVariations:h,allowedAutoPlacements:g}):t)},[]),y=e.rects.reference,C=e.rects.popper,x=new Map,w=!0,S=b[0],k=0;k<b.length;k++){var _=b[k],B=Va(_),P=Ya(_)===Ia,T=[_a,Ba].indexOf(B)>=0,E=T?"width":"height",z=qa(e,{placement:_,boundary:u,rootBoundary:c,altBoundary:p,padding:d}),I=T?P?Pa:Ta:P?Ba:_a;y[E]>C[E]&&(I=ss(I));var F=ss(I),H=[];if(i&&H.push(z[B]<=0),s&&H.push(z[I]<=0,z[F]<=0),H.every(function(n){return n})){S=_,w=!1;break}x.set(_,H)}if(w)for(var N=function(n){var e=b.find(function(e){var t=x.get(e);if(t)return t.slice(0,n).every(function(n){return n})});if(e)return S=e,"break"},$=h?3:1;$>0;$--){if("break"===N($))break}e.placement!==S&&(e.modifiersData[o]._skip=!0,e.placement=S,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};var ps={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(n){var e=n.state,t=n.options,o=n.name,r=t.offset,i=void 0===r?[0,0]:r,a=Wa.reduce(function(n,t){return n[t]=function(n,e,t){var o=Va(n),r=[Ta,_a].indexOf(o)>=0?-1:1,i="function"==typeof t?t(Object.assign({},e,{placement:n})):t,a=i[0],s=i[1];return a=a||0,s=(s||0)*r,[Ta,Pa].indexOf(o)>=0?{x:s,y:a}:{x:a,y:s}}(t,e.rects,i),n},{}),s=a[e.placement],l=s.x,d=s.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=d),e.modifiersData[o]=a}};function fs(n,e,t){return void 0===t&&(t={x:0,y:0}),{top:n.top-e.height-t.y,right:n.right-e.width+t.x,bottom:n.bottom-e.height+t.y,left:n.left-e.width-t.x}}function hs(n){return[_a,Pa,Ba,Ta].some(function(e){return n[e]>=0})}var gs={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(n){var e=n.state,t=n.name,o=e.rects.reference,r=e.rects.popper,i=e.modifiersData.preventOverflow,a=qa(e,{elementContext:"reference"}),s=qa(e,{altBoundary:!0}),l=fs(a,o),d=fs(s,r,i),u=hs(l),c=hs(d);e.modifiersData[t]={referenceClippingOffsets:l,popperEscapeOffsets:d,isReferenceHidden:u,hasPopperEscaped:c},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":c})}};function vs(n,e,t){return aa(n,sa(e,t))}var ms={name:"preventOverflow",enabled:!0,phase:"main",fn:function(n){var e=n.state,t=n.options,o=n.name,r=t.mainAxis,i=void 0===r||r,a=t.altAxis,s=void 0!==a&&a,l=t.boundary,d=t.rootBoundary,u=t.altBoundary,c=t.padding,p=t.tether,f=void 0===p||p,h=t.tetherOffset,g=void 0===h?0:h,v=qa(e,{boundary:l,rootBoundary:d,padding:c,altBoundary:u}),m=Va(e.placement),A=Ya(e.placement),b=!A,y=Ua(m),C="x"===y?"y":"x",x=e.modifiersData.popperOffsets,w=e.rects.reference,S=e.rects.popper,k="function"==typeof g?g(Object.assign({},e.rects,{placement:e.placement})):g,_="number"==typeof k?{mainAxis:k,altAxis:k}:Object.assign({mainAxis:0,altAxis:0},k),B=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,P={x:0,y:0};if(x){if(i){var T,E="y"===y?_a:Ta,z="y"===y?Ba:Pa,I="y"===y?"height":"width",F=x[y],H=F+v[E],N=F-v[z],$=f?-S[I]/2:0,W=A===Ia?w[I]:S[I],M=A===Ia?-S[I]:-w[I],L=e.elements.arrow,D=f&&L?ba(L):{width:0,height:0},R=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},j=R[E],O=R[z],V=vs(0,w[I],D[I]),Y=b?w[I]/2-$-V-j-_.mainAxis:W-V-j-_.mainAxis,U=b?-w[I]/2+$+V+O+_.mainAxis:M+V+O+_.mainAxis,X=e.elements.arrow&&ka(e.elements.arrow),G=X?"y"===y?X.clientTop||0:X.clientLeft||0:0,Z=null!=(T=null==B?void 0:B[y])?T:0,q=F+U-Z,J=vs(f?sa(H,F+Y-Z-G):H,F,f?aa(N,q):N);x[y]=J,P[y]=J-F}if(s){var Q,K="x"===y?_a:Ta,nn="x"===y?Ba:Pa,en=x[C],tn="y"===C?"height":"width",on=en+v[K],rn=en-v[nn],an=-1!==[_a,Ta].indexOf(m),sn=null!=(Q=null==B?void 0:B[C])?Q:0,ln=an?on:en-w[tn]-S[tn]-sn+_.altAxis,dn=an?en+w[tn]+S[tn]-sn-_.altAxis:rn,un=f&&an?function(n,e,t){var o=vs(n,e,t);return o>t?t:o}(ln,en,dn):vs(f?ln:on,en,f?dn:rn);x[C]=un,P[C]=un-en}e.modifiersData[o]=P}},requiresIfExists:["offset"]};function As(n,e,t,o,r,i={}){let a=jo();if(Yn(["mode","mmkey",o,"triggerWidth","placement","placementDistX","placementDistY","transitionTime","isolated","editable","contentStyle"],e=>{if(!na(n,e))throw new Error(`invalid vo.${e}`)}),!Oo(e))throw new Error("funGetDivTrigger is not a function");if(!Oo(t))throw new Error("funGetDivContent is not a function");let s=an(i,"funAddTrigger"),l=an(i,"funCheckTrigger"),d=an(i,"funRemoveTrigger"),u=an(i,"modeHide",null);"click"!==u&&"mousedown"!==u&&(u="click");let c={mouseClientX:0,mouseClientY:0,cursorTriggerInner:!1,clickContentInner:!1,popperShow:!1,popperInstance:null,removeTriggerTimer:null},p=()=>!Oo(l)||l(n.mode,n.mmkey),f=o=>{let r=e();if(!$r(r))return;n.$nextTick(()=>{n.triggerWidth=r.offsetWidth});let i=t();if(!$r(i))return;null!==c.removeTriggerTimer&&(clearTimeout(c.removeTriggerTimer),c.removeTriggerTimer=null),Oo(s)&&s(n.mode,n.mmkey);let l={strategy:"fixed",placement:n.placement,modifiers:[ms,os,{name:"computeStyles",options:{gpuAcceleration:!1}},cs,{name:"flip",options:{}},ps,{name:"offset",options:{offset:[n.placementDistX,n.placementDistY]}},gs,{name:"emitPlacement",enabled:!0,phase:"afterWrite",fn:({state:e})=>{let t=an(e,"placement",null);null!==t&&(n.$emit("placement-change",t),a.emit("placement-change",t))}}]};c.popperInstance=is(r,i,l)},h=e=>{c.popperInstance&&(c.popperInstance.destroy(),c.popperInstance=null),c.removeTriggerTimer=setTimeout(()=>{c.removeTriggerTimer=null,Oo(d)&&d(n.mode,n.mmkey)},20)},g=e=>{n.$nextTick(()=>{let e=n.editable&&n[o];if(e&&!c.popperShow){let e=-15;n.contentStyle=`opacity:0; pointer-events:none; transform:translateY(${e}px);`,f(),c.popperShow=!0,n.$emit("show"),a.emit("show"),setTimeout(()=>{n.contentStyle=`transition:all ${n.transitionTime}ms ease-out; opacity:1; pointer-events:none;`},1),setTimeout(()=>{n.contentStyle=""},n.transitionTime)}else!e&&c.popperShow&&(h(),c.popperShow=!1,n.$emit("hide"),a.emit("hide"))})},v=(e,t)=>{n.editable&&(n[o]=e,g())},m=(e,t)=>{n.editable&&(n.isolated&&v(e),n.$nextTick(()=>{n.$emit(r,e),a.emit(r,e)}))},A=(e,t)=>{n.editable&&(n[o]||n.mode===e&&m(!0))},b=(e,t)=>{n.editable&&n[o]&&n.mode===e&&m(!1)};return a.mounted=()=>{c.windowMousemove=n=>{c.mouseClientX=n.clientX,c.mouseClientY=n.clientY},window.addEventListener("mousemove",c.windowMousemove,!1),c.windowMousedown=r=>{let i=e();$r(i)?c.cursorTriggerInner=ea(r.clientX,r.clientY,i):c.cursorTriggerInner=!1;let a=t();if(n[o]&&a?c.clickContentInner=ea(r.clientX,r.clientY,a):c.clickContentInner=!1,"mousedown"===u){if(!p())return;!n[o]||c.cursorTriggerInner||c.clickContentInner||n.evHide("popup","windowMousedown")}},window.addEventListener("mousedown",c.windowMousedown,!1),c.windowMouseup=e=>{p()&&(!n[o]||c.cursorTriggerInner||c.clickContentInner?(c.cursorTriggerInner=!1,c.clickContentInner=!1):n.evHide("popup","windowMouseup"))},window.addEventListener("mouseup",c.windowMouseup,!1),c.windowScroll=t=>{if("tooltip"!==n.mode)return;let r=e();$r(r)&&(c.cursorTriggerInner=!!r&&ea(c.mouseClientX,c.mouseClientY,r),c.cursorTriggerInner?n[o]||A("tooltip"):n[o]&&b("tooltip"))},window.addEventListener("scroll",c.windowScroll,!1)},a.destroy=()=>{window.removeEventListener("mousemove",c.windowMousemove,!1),window.removeEventListener("mousedown",c.windowMousedown,!1),window.removeEventListener("mouseup",c.windowMouseup,!1),window.removeEventListener("scroll",c.windowMouseup,!1),m(!1)},a.showPopper=f,a.hidePopper=h,a.updatePopper=(e,t)=>{c.popperInstance&&c.popperInstance.update(),n.$emit("resize",e),a.emit("resize",e)},a.displayPopper=g,a.updateValue=v,a.triggerEvent=m,a.evShow=A,a.evHide=b,a}let bs={tooltip:[],popup:[]};function ys(n,e){bs[n].push(e)}function Cs(n,e){return t=bs[n],((o=null==t?0:t.length)?t[o-1]:void 0)===e;var t,o}function xs(n,e){qi(bs[n],e)}const ws={directives:{domresize:Vo()},components:{Teleport:Ki},props:{mode:{type:String,default:"tooltip"},value:{type:Boolean,default:!1},displayType:{type:String,default:"block"},cmpZIndex:{type:Number,default:3e3},isolated:{type:Boolean,default:!1},minWidth:{type:Number,default:null},maxWidth:{type:Number,default:null},autoFitMinWidth:{type:Boolean,default:!1},autoFitMaxWidth:{type:Boolean,default:!1},placement:{type:String,default:"bottom"},placementDistX:{type:Number,default:0},placementDistY:{type:Number,default:5},borderRadius:{type:Number,default:4},textFontSize:{type:String,default:"0.85rem"},textColor:{type:String,default:"white"},backgroundColor:{type:String,default:"rgba(60,60,60,0.75)"},paddingStyle:{type:Object,default:()=>({v:2,h:10})},modeHide:{type:String,default:"click"},shadow:{type:Boolean,default:!0},shadowStyle:{type:String,default:"0 5px 5px -3px rgba(0,0,0,.2), 0 8px 10px 1px rgba(0,0,0,.14), 0 3px 14px 2px rgba(0,0,0,.12)"},transitionTime:{type:Number,default:200},labelContent:{type:String,default:null},editable:{type:Boolean,default:!0}},data:function(){return{mmkey:oo(),valueTrans:!1,triggerWidth:null,contentStyle:"",bp:null}},mounted:function(){let n=this;n.bp=new As(n,n.funGetDivTrigger,n.funGetDivContent,"valueTrans","input",{funAddTrigger:ys,funCheckTrigger:Cs,funRemoveTrigger:xs,modeHide:n.modeHide}),n.bp.mounted()},beforeDestroy:function(){this.bp.destroy()},computed:{changeValue:function(){let n=this,e=n.value;return n.isolated||n.updateValue(e,"changeValue"),""},useDisplayType:function(){return"line"===this.displayType?"display:block;":"display:inline-block;"},useMinWidth:function(){let n=this;return jr(n.minWidth)?`min-width:${n.minWidth}px;`:n.autoFitMinWidth?`min-width:${n.triggerWidth}px;`:""},useMaxWidth:function(){let n=this;return jr(n.maxWidth)?`max-width:${n.maxWidth}px;`:n.autoFitMaxWidth?`max-width:${n.triggerWidth}px;`:""},useBorderRadius:function(){let n=this;return jr(n.borderRadius)?`border-radius:${n.borderRadius}px;`:""},useTextFontSize:function(){let n=this.textFontSize;return n=Pr(n,";",""),`font-size:${n};`},useTextColor:function(){return Br(this.textColor)},useBackgroundColor:function(){return Br(this.backgroundColor)},usePadding:function(){return`padding:${Or(this.paddingStyle)};`},useShadow:function(){if(!this.shadow)return"";let n=Pr(this.shadowStyle,";","");return""!==n?`box-shadow:${n};`:""}},methods:{funGetDivTrigger:function(){return an(this,"$refs.divTrigger",null)},funGetDivContent:function(){return an(this,"$refs.divContent",null)},evShow:function(n,e){let t=this;Oo(an(t,"bp.evShow"))&&t.bp.evShow(n,e)},evHide:function(n,e){let t=this;Oo(an(t,"bp.evHide"))&&t.bp.evHide(n,e)},updatePopper:function(n,e){let t=this;Oo(an(t,"bp.updatePopper"))&&t.bp.updatePopper(n,e)},updateValue:function(n,e){let t=this;Oo(an(t,"bp.updateValue"))&&t.bp.updateValue(n,e)}}};var Ss=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:""+n.useDisplayType,attrs:{changeValue:n.changeValue}},[t("div",{ref:"divTrigger",staticStyle:{outline:"none"},attrs:{tabindex:"0"},on:{click:function(e){return n.evShow("popup","click")},mouseenter:function(e){return n.evShow("tooltip","mouseenter")},mouseleave:function(e){return n.evHide("tooltip","mouseleave")}}},[n._t("trigger")],2),n._v(" "),t("Teleport",{attrs:{to:"body"}},[t("div",{directives:[{name:"show",rawName:"v-show",value:n.valueTrans,expression:"valueTrans"},{name:"domresize",rawName:"v-domresize"}],ref:"divContent",staticClass:"WPopperFix",style:"z-index:"+n.cmpZIndex+";",attrs:{wtlp:n.labelContent},on:{domresize:n.updatePopper}},[n.valueTrans?t("div",{style:n.contentStyle+" "+n.usePadding+" "+n.useTextFontSize+" color:"+n.useTextColor+"; background:"+n.useBackgroundColor+"; "+n.useMinWidth+" "+n.useMaxWidth+" "+n.useBorderRadius+" "+n.useShadow},[n._t("content",null,{funHide:function(){n.updateValue(!1,"slot")}})],2):n._e()])])],1)};Ss._withStripped=!0;const ks=Xr({render:Ss,staticRenderFns:[]},function(n){n&&n("data-v-229a34c9_0",{source:"\n.WPopperFix[data-popper-reference-hidden][data-v-229a34c9] {\r\n visibility: hidden;\r\n pointer-events: none;\n}\r\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\node_modules\\w-component-vue\\src\\components\\WTooltip.vue"],names:[],mappings:";AAkbA;IACA,kBAAA;IACA,oBAAA;AACA",file:"WTooltip.vue",sourcesContent:["<template>\r\n <div\r\n :style=\"`${useDisplayType}`\"\r\n :changeValue=\"changeValue\"\r\n >\r\n\r\n <div\r\n ref=\"divTrigger\"\r\n style=\"outline:none;\"\r\n tabindex=\"0\"\r\n @click=\"evShow('popup','click')\"\r\n @mouseenter=\"evShow('tooltip','mouseenter')\"\r\n @mouseleave=\"evHide('tooltip','mouseleave')\"\r\n >\r\n\r\n <slot name=\"trigger\"></slot>\r\n\r\n </div>\r\n\r\n \x3c!-- 不能給予position因會被popupjs洗掉, 但可給z-index, 且popupjs會改用transform:translate定位 --\x3e\r\n \x3c!-- 若使用minWidth, 會使popupjs重算給予minWidth用以自動撐開彈窗寬度失效, 若於其內slot外添加div給予minWidth, 亦會使popupjs給予minWidth機制失效, 待研究 --\x3e\r\n <Teleport to=\"body\">\r\n <div\r\n ref=\"divContent\"\r\n class=\"WPopperFix\"\r\n :style=\"`z-index:${cmpZIndex};`\"\r\n :wtlp=\"labelContent\"\r\n v-show=\"valueTrans\"\r\n v-domresize\r\n @domresize=\"updatePopper\"\r\n >\r\n <div\r\n :style=\"`${contentStyle} ${usePadding} ${useTextFontSize} color:${useTextColor}; background:${useBackgroundColor}; ${useMinWidth} ${useMaxWidth} ${useBorderRadius} ${useShadow}`\"\r\n v-if=\"valueTrans\"\r\n >\r\n <slot\r\n name=\"content\"\r\n :funHide=\"()=>{updateValue(false,'slot')}\"\r\n ></slot>\r\n </div>\r\n </div>\r\n </Teleport>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport get from 'lodash-es/get.js'\r\nimport last from 'lodash-es/last.js'\r\nimport pull from 'lodash-es/pull.js'\r\nimport isNumber from 'lodash-es/isNumber.js'\r\nimport genID from 'wsemi/src/genID.mjs'\r\nimport replace from 'wsemi/src/replace.mjs'\r\nimport isfun from 'wsemi/src/isfun.mjs'\r\nimport Teleport from './Teleport.vue'\r\nimport convertColor from '../js/convertColor.mjs'\r\nimport parseSpace from '../js/parseSpace.mjs'\r\nimport domResize from '../js/domResize.mjs'\r\nimport BuildPopper from '../js/buildPopper.mjs'\r\n\r\n\r\n//tootip與popup不共用已出現項目清單, 避免互相影響\r\nlet kpRespList = {\r\n tooltip: [],\r\n popup: [],\r\n}\r\nfunction funAddTrigger(mode, mmkey) {\r\n kpRespList[mode].push(mmkey)\r\n}\r\nfunction funCheckTrigger(mode, mmkey) {\r\n return last(kpRespList[mode]) === mmkey\r\n}\r\nfunction funRemoveTrigger(mode, mmkey) {\r\n pull(kpRespList[mode], mmkey)\r\n}\r\n\r\n\r\n/**\r\n * @vue-prop {String} [mode='tooltip'] 輸入組件模式字串,可選'tooltip'與'popup',預設'tooltip'\r\n * @vue-prop {Boolean} [value=false] 輸入是否顯示布林值,預設false\r\n * @vue-prop {String} [displayType='block'] 輸入display設定字串,可選'block'與'line',預設'block'\r\n * @vue-prop {Number} [cmpZIndex=3000] 輸入提示窗或彈窗使用z-index數字,預設3000\r\n * @vue-prop {Boolean} [isolated=false] 輸入提示窗或彈窗當mode為'popup'時是否為獨立顯引狀態布林值,也就是可不接收外部傳入value值,預設false\r\n * @vue-prop {Number} [minWidth=null] 輸入提示窗或彈窗最小寬度數字,不含paddingStyle的寬度,單位為px,預設null\r\n * @vue-prop {Number} [maxWidth=null] 輸入提示窗或彈窗最大寬度數字,不含paddingStyle的寬度,單位為px,預設null\r\n * @vue-prop {Boolean} [autoFitMinWidth=false] 輸入是否使用驅動區寬度作為提示窗或彈窗之最小寬度布林值,不含paddingStyle的寬度,預設false\r\n * @vue-prop {Boolean} [autoFitMaxWidth=false] 輸入是否使用驅動區寬度作為提示窗或彈窗之最大寬度布林值,不含paddingStyle的寬度,預設false\r\n * @vue-prop {String} [placement='bottom'] 輸入提示窗或彈窗出現位置字串,可選'top-start'、'top'、'top-end'、'bottom-start'、'bottom'、'bottom-end'、'left-start'、'left'、'left-end'、'right-start'、'right'、'right-end'、,預設'bottom'\r\n * @vue-prop {Number} [placementDistX=0] 輸入提示窗或彈窗距離觸發元素之水平向右平移數字,單位為px,預設0\r\n * @vue-prop {Number} [placementDistY=5] 輸入提示窗或彈窗距離觸發元素之垂直向下平移數字,單位為px,預設5\r\n * @vue-prop {Number} [borderRadius=4] 輸入提示窗或彈窗框圓角度數字,單位為px,預設4\r\n * @vue-prop {String} [textFontSize='0.85rem'] 輸入提示窗或彈窗文字字型大小字串,預設'0.85rem'\r\n * @vue-prop {String} [textColor='white'] 輸入提示窗或彈窗文字顏色字串,預設'white'\r\n * @vue-prop {String} [backgroundColor='rgba(60,60,60,0.75)'] 輸入提示窗或彈窗背景顏色字串,預設'rgba(60,60,60,0.75)'\r\n * @vue-prop {Object} [paddingStyle={v:2,h:10}] 輸入提示窗或彈窗內寬距離設定物件,可用鍵值為v、h、left、right、top、bottom,v代表同時設定top與bottom,h代表設定left與right,若有重複設定時後面鍵值會覆蓋前面,各鍵值為寬度數字,單位為px,預設{v:2,h:10}\r\n * @vue-prop {String} [modeHide='click'] 輸入點擊外部關閉模式字串,可選'click'與'mousedown','click'為mouseup時才關閉,'mousedown'為mousedown時關閉,預設'click'\r\n * @vue-prop {Boolean} [shadow=true] 輸入提示窗或彈窗是否顯示陰影布林值,預設true\r\n * @vue-prop {String} [shadowStyle=''] 輸入提示窗或彈窗陰影顏色字串,預設值詳見props\r\n * @vue-prop {Number} [transitionTime=200] 輸入提示窗或彈窗淡入出現時間數字,單位為ms,預設200\r\n * @vue-prop {String} [labelContent=null] 輸入針對teleport至body內之內容div所給予之wtlp屬性值字串,供查找使用,預設null\r\n * @vue-prop {Boolean} [editable=true] 輸入是否為編輯模式布林值,預設true\r\n */\r\nexport default {\r\n directives: {\r\n domresize: domResize(),\r\n },\r\n components: {\r\n Teleport,\r\n },\r\n props: {\r\n mode: {\r\n type: String,\r\n default: 'tooltip', //tooltip, popup\r\n },\r\n value: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n displayType: {\r\n type: String,\r\n default: 'block', //line, block\r\n },\r\n cmpZIndex: {\r\n type: Number,\r\n default: 3000,\r\n },\r\n isolated: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n minWidth: {\r\n type: Number,\r\n default: null,\r\n },\r\n maxWidth: {\r\n type: Number,\r\n default: null,\r\n },\r\n autoFitMinWidth: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n autoFitMaxWidth: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n placement: {\r\n type: String,\r\n default: 'bottom',\r\n },\r\n placementDistX: {\r\n type: Number,\r\n default: 0,\r\n },\r\n placementDistY: {\r\n type: Number,\r\n default: 5,\r\n },\r\n borderRadius: {\r\n type: Number,\r\n default: 4,\r\n },\r\n textFontSize: {\r\n type: String,\r\n default: '0.85rem',\r\n },\r\n textColor: {\r\n type: String,\r\n default: 'white',\r\n },\r\n backgroundColor: {\r\n type: String,\r\n default: 'rgba(60,60,60,0.75)',\r\n },\r\n paddingStyle: {\r\n type: Object,\r\n default: () => {\r\n return {\r\n v: 2,\r\n h: 10,\r\n }\r\n },\r\n },\r\n modeHide: {\r\n type: String,\r\n default: 'click',\r\n },\r\n shadow: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n shadowStyle: {\r\n type: String,\r\n default: '0 5px 5px -3px rgba(0,0,0,.2), 0 8px 10px 1px rgba(0,0,0,.14), 0 3px 14px 2px rgba(0,0,0,.12)',\r\n },\r\n transitionTime: {\r\n type: Number,\r\n default: 200,\r\n },\r\n labelContent: {\r\n type: String,\r\n default: null,\r\n },\r\n editable: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n },\r\n data: function() {\r\n return {\r\n\r\n mmkey: genID(), //beforeMount內無法變更data, mounted內會晚於computed, 故優先放於data生成\r\n // mmkey: (() => {\r\n // let id = genID()\r\n // console.log('data gen mmkey', id)\r\n // return id\r\n // })(),\r\n\r\n valueTrans: false,\r\n\r\n triggerWidth: null, //會由BuildPopper內更新\r\n contentStyle: '',\r\n\r\n bp: null,\r\n\r\n }\r\n },\r\n mounted: function() {\r\n //console.log('mounted')\r\n\r\n let vo = this\r\n\r\n //BuildPopper\r\n let keyShow = 'valueTrans'\r\n let evNameValue = 'input'\r\n vo.bp = new BuildPopper(vo,\r\n vo.funGetDivTrigger,\r\n vo.funGetDivContent,\r\n keyShow,\r\n evNameValue,\r\n {\r\n funAddTrigger,\r\n funCheckTrigger,\r\n funRemoveTrigger,\r\n modeHide: vo.modeHide,\r\n })\r\n\r\n //mounted\r\n vo.bp.mounted()\r\n\r\n },\r\n beforeDestroy: function() {\r\n //console.log('beforeDestroy')\r\n\r\n let vo = this\r\n\r\n //destroy\r\n vo.bp.destroy()\r\n\r\n },\r\n computed: {\r\n\r\n changeValue: function () {\r\n //console.log('computed changeValue')\r\n\r\n let vo = this\r\n\r\n //trigger\r\n let value = vo.value\r\n let isolated = vo.isolated\r\n\r\n //updateValue\r\n if (!isolated) {\r\n vo.updateValue(value, 'changeValue')\r\n }\r\n\r\n return ''\r\n },\r\n\r\n useDisplayType: function() {\r\n let vo = this\r\n if (vo.displayType === 'line') {\r\n return 'display:block;'\r\n }\r\n return 'display:inline-block;'\r\n },\r\n\r\n useMinWidth: function() {\r\n //console.log('computed useMinWidth')\r\n\r\n let vo = this\r\n\r\n if (isNumber(vo.minWidth)) {\r\n return `min-width:${vo.minWidth}px;`\r\n }\r\n else if (vo.autoFitMinWidth) {\r\n return `min-width:${vo.triggerWidth}px;`\r\n }\r\n return ''\r\n },\r\n\r\n useMaxWidth: function() {\r\n //console.log('computed useMaxWidth')\r\n\r\n let vo = this\r\n\r\n if (isNumber(vo.maxWidth)) {\r\n return `max-width:${vo.maxWidth}px;`\r\n }\r\n else if (vo.autoFitMaxWidth) {\r\n return `max-width:${vo.triggerWidth}px;`\r\n }\r\n return ''\r\n },\r\n\r\n useBorderRadius: function() {\r\n //console.log('computed useBorderRadius')\r\n\r\n let vo = this\r\n\r\n if (isNumber(vo.borderRadius)) {\r\n return `border-radius:${vo.borderRadius}px;`\r\n }\r\n return ''\r\n },\r\n\r\n useTextFontSize: function() {\r\n let vo = this\r\n let s = vo.textFontSize\r\n s = replace(s, ';', '')\r\n return `font-size:${s};`\r\n },\r\n\r\n useTextColor: function() {\r\n //console.log('computed useTextColor')\r\n\r\n let vo = this\r\n\r\n return convertColor(vo.textColor)\r\n },\r\n\r\n useBackgroundColor: function() {\r\n //console.log('computed useBackgroundColor')\r\n\r\n let vo = this\r\n\r\n return convertColor(vo.backgroundColor)\r\n },\r\n\r\n usePadding: function() {\r\n //console.log('computed usePadding')\r\n\r\n let vo = this\r\n\r\n //parseSpace\r\n let cs = parseSpace(vo.paddingStyle)\r\n\r\n //padding\r\n let padding = `padding:${cs};`\r\n\r\n return padding\r\n },\r\n\r\n useShadow: function() {\r\n //console.log('computed useShadow')\r\n\r\n let vo = this\r\n\r\n //check\r\n if (!vo.shadow) {\r\n return ''\r\n }\r\n\r\n //shadowStyle\r\n let s = replace(vo.shadowStyle, ';', '')\r\n if (s !== '') {\r\n return `box-shadow:${s};`\r\n }\r\n\r\n return ''\r\n },\r\n\r\n },\r\n methods: {\r\n\r\n funGetDivTrigger: function() {\r\n let vo = this\r\n let divTrigger = get(vo, '$refs.divTrigger', null)\r\n return divTrigger\r\n },\r\n\r\n funGetDivContent: function() {\r\n let vo = this\r\n let divContent = get(vo, '$refs.divContent', null)\r\n return divContent\r\n },\r\n\r\n evShow: function(kind, from) {\r\n let vo = this\r\n let f = get(vo, 'bp.evShow')\r\n if (isfun(f)) {\r\n vo.bp.evShow(kind, from)\r\n }\r\n },\r\n\r\n evHide: function(kind, from) {\r\n let vo = this\r\n let f = get(vo, 'bp.evHide')\r\n if (isfun(f)) {\r\n vo.bp.evHide(kind, from)\r\n }\r\n },\r\n\r\n updatePopper: function(msg, from) {\r\n let vo = this\r\n let f = get(vo, 'bp.updatePopper')\r\n if (isfun(f)) {\r\n vo.bp.updatePopper(msg, from)\r\n }\r\n },\r\n\r\n updateValue: function(value, from) {\r\n let vo = this\r\n let f = get(vo, 'bp.updateValue')\r\n if (isfun(f)) {\r\n vo.bp.updateValue(value, from)\r\n }\r\n },\r\n\r\n },\r\n}\r\n<\/script>\r\n\r\n<style scoped>\r\n.WPopperFix[data-popper-reference-hidden] {\r\n visibility: hidden;\r\n pointer-events: none;\r\n}\r\n</style>\r\n\r\n"]},media:void 0})},ws,"data-v-229a34c9",false,void 0,!1,Zr,void 0,void 0);const _s={components:{WTooltip:ks},props:{value:{type:Boolean,default:!1},displayType:{type:String,default:"block"},cmpZIndex:{type:Number,default:3e3},isolated:{type:Boolean,default:!1},minWidth:{type:Number,default:null},maxWidth:{type:Number,default:null},autoFitMinWidth:{type:Boolean,default:!1},autoFitMaxWidth:{type:Boolean,default:!1},placement:{type:String,default:"bottom-start"},placementDistX:{type:Number,default:0},placementDistY:{type:Number,default:5},borderRadius:{type:Number,default:4},textFontSize:{type:String,default:"inherit"},textColor:{type:String,default:"black"},backgroundColor:{type:String,default:"white"},paddingStyle:{type:Object,default:()=>({v:0,h:0})},modeHide:{type:String,default:"click"},shadow:{type:Boolean,default:!0},shadowStyle:{type:String,default:"0 5px 5px -3px rgba(0,0,0,.2), 0 8px 10px 1px rgba(0,0,0,.14), 0 3px 14px 2px rgba(0,0,0,.12)"},transitionTime:{type:Number,default:200},labelContent:{type:String,default:null},editable:{type:Boolean,default:!0}},data:function(){return{}},mounted:function(){},computed:{},methods:{}};var Bs=function(){var n=this,e=n.$createElement;return(n._self._c||e)("WTooltip",n._g(n._b({scopedSlots:n._u([{key:"trigger",fn:function(){return[n._t("trigger")]},proxy:!0},{key:"content",fn:function(e){return[n._t("content",null,{funHide:e.funHide})]}}],null,!0)},"WTooltip",Object.assign({},n.$props,{mode:"popup"}),!1),n.$listeners))};Bs._withStripped=!0;const Ps=Xr({render:Bs,staticRenderFns:[]},function(n){n&&n("data-v-0e335b10_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WPopup.vue"},media:void 0})},_s,"data-v-0e335b10",false,void 0,!1,Zr,void 0,void 0);function Ts(n,e,t){if((n=en(n))&&(t||void 0===e))return $t(n);if(!n||!(e=nn(e)))return n;var o=ue(n),r=ue(e),i=function(n,e){for(var t=-1,o=n.length;++t<o&&Xi(e,n[t],0)>-1;);return t}(o,r),a=function(n,e){for(var t=n.length;t--&&Xi(e,n[t],0)>-1;);return t}(o,r)+1;return Un(o,i,a).join("")}var Es=r?r.isConcatSpreadable:void 0;function zs(e){return n(e)||vn(e)||!!(Es&&e&&e[Es])}function Is(n,e,t,o,r){var i=-1,a=n.length;for(t||(t=zs),r||(r=[]);++i<a;){var s=n[i];e>0&&t(s)?e>1?Is(s,e-1,t,o,r):xe(r,s):o||(r[r.length]=s)}return r}function Fs(n,e){if(n!==e){var t=void 0!==n,o=null===n,r=n==n,i=f(n),a=void 0!==e,s=null===e,l=e==e,d=f(e);if(!s&&!d&&!i&&n>e||i&&a&&l&&!s&&!d||o&&a&&l||!t&&l||!r)return 1;if(!o&&!i&&!d&&n<e||d&&t&&r&&!o&&!i||s&&t&&r||!a&&r||!l)return-1}return 0}function Hs(e,t,o){t=t.length?J(t,function(e){return n(e)?function(n){return rn(n,1===e.length?e[0]:e)}:e}):[Vn];var r=-1;return t=J(t,kn(at)),function(n,e){var t=n.length;for(n.sort(e);t--;)n[t]=n[t].value;return n}(st(e,function(n,e,o){return{criteria:J(t,function(e){return e(n)}),index:++r,value:n}}),function(n,e){return function(n,e,t){for(var o=-1,r=n.criteria,i=e.criteria,a=r.length,s=t.length;++o<a;){var l=Fs(r[o],i[o]);if(l)return o>=s?l:l*("desc"==t[o]?-1:1)}return n.index-e.index}(n,e,o)})}var Ns=Yi(function(n,e){if(null==n)return[];var t=e.length;return t>1&&Zn(n,e[0],e[1])?e=[]:t>2&&Zn(e[0],e[1],e[2])&&(e=[e[0]]),Hs(n,Is(e,1),[])});function $s(n){return en(n).toLowerCase()}function Ws(n){return en(n).toUpperCase()}function Ms(n){if(!Gt(n))return!1;return Kt(n)>=0}function Ls(n,e){return ft(n)&&Ms(e)?0===(e=Kt(e))?"":n.substring(0,e):""}function Ds(n,e){return ft(n)&&Ms(e)?0===(e=Kt(e))?n:function(n,e){if(!ft(n))return"";if(!Ms(e))return"";if(0===(e=Kt(e)))return"";let t=n.length-e;return t<0&&(t=0),n.substring(t,t+e)}(n,n.length-e):""}function Rs(n,e){if(!ft(n))return[];if(!ft(e))return[];let t=function(n,e){return ft(n)&&ft(e)?n.split(e):[]}(n,e);t=lt(t,Ts);let o=[];return Yn(t,function(n){ft(n)&&o.push(n)}),o}function js(n){if(!(ft(n)||Ut(n)||f(n)||function(n){return"[object BigInt]"===Object.prototype.toString.call(n)}(n)))return"";let e="";try{e=String(n)}catch(n){}try{e=n.toString()}catch(n){}return e}function Os(n,e,t=1){return ft(n)&&Ms(e)?(t=no(t)?Kt(t):1,n.substring(e,e+t)):""}let Vs={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"};function Ys(n){return Xs(n,1)}function Us(n){return Xs(n,360)}function Xs(n,e=1){if(n.indexOf("%")>=0){if(!Ut(n=Pr(n,"%","")))throw new Error("invalid color: value is not a number");n=Xt(n)/100}else{if(!Ut(n))throw new Error("invalid color: value is not a number");n=Xt(n)/e}if(n>1)throw new Error("invalid color: value > 1");if(n<0)throw new Error("invalid color: value < 0");return n}function Gs(n){if(!Ut(n))throw new Error("invalid color: value is not a number");if((n=Xt(n))>1)throw new Error("invalid color: value > 1");if(n<0)throw new Error("invalid color: value < 0");return n}function Zs(n,e="rgba"){if(!Vr(n))throw new Error("invalid colors array");let t=an(n,0,0),o=an(n,1,0),r=an(n,2,0),i=an(n,3,1);if(4!==Tt(e=e.split("")))throw new Error("tar.length !== 4");let a=an(e,0),s=an(e,1),l=an(e,2),d=an(e,3);return{[a]:t,[s]:o,[l]:r,[d]:i}}function qs(n){let e=(n=Ds(n,1)).length;if(2===e)n=`${n}${n}${n}ff`;else if(3===e){let e=Os(n,0,1),t=Os(n,1,1),o=Os(n,2,1);n=`${e}${e}${t}${t}${o}${o}ff`}else if(6===e)n=`${n}ff`;else if(8!==e)throw new Error("invalid hex color");function t(n){if(2!==n.length)throw new Error("hex.length of color is not equal to 2");if(!Ut(n=parseInt(n,16)))throw new Error("invalid hex of color");return(n=Xt(n))/255}return{r:t(Os(n,0,2)),g:t(Os(n,2,2)),b:t(Os(n,4,2)),a:t(Os(n,6,2))}}function Js(n){return n=Zs(n=lt(n,(n,e)=>e<=2?Xs(n,255):3===e?Gs(n):null),"rgba")}function Qs(n){return n=al(n=Zs(n=lt(n,(n,e)=>0===e?Us(n):1===e||2===e?Ys(n):3===e?Gs(n):null),"hsla"))}function Ks(n){return n=sl(n=Zs(n=lt(n,(n,e)=>0===e?Us(n):1===e||2===e?Ys(n):3===e?Gs(n):null),"hsva"))}function nl(n){if("transparent"===n)return{r:0,g:0,b:0,a:0};if(function(n){return na(Vs,n)}(n))return qs(n=`#${Vs[n]}`);if(function(n){return"#"===Ls(n,1)&&(!!/[0-9A-Fa-f]{2}/g.test(n)||(!!/[0-9A-Fa-f]{3}/g.test(n)||(!!/[0-9A-Fa-f]{6}/g.test(n)||!!/[0-9A-Fa-f]{8}/g.test(n))))}(n))return qs(n);if(function(n){return"rgb"===Ls(n,3)||"rgba"===Ls(n,4)}(n))return function(n){return n=Pr(n,"rgba",""),n=Pr(n,"rgb",""),Js(Rs(n=Pr(n=n.replace(/[()]/g,""),","," ")," "))}(n);if(function(n){return"hsl"===Ls(n,3)||"hsla"===Ls(n,4)}(n))return function(n){return n=Pr(n,"hsla",""),n=Pr(n,"hsl",""),Qs(Rs(n=Pr(n=n.replace(/[()]/g,""),","," ")," "))}(n);if(function(n){return"hsv"===Ls(n,3)||"hsva"===Ls(n,4)}(n))return function(n){return n=Pr(n,"hsva",""),n=Pr(n,"hsv",""),Ks(Rs(n=Pr(n=n.replace(/[()]/g,""),","," ")," "))}(n);throw new Error("format of color string is not hex-color, name-color, rgba, hsla, hsva")}function el(n,e){return!!na(n,e=$s(e))||!!na(n,e=Ws(e))}function tl(n,e,t){let o;return o=an(n,e,null),null!==o?o:(o=an(n,e=Ws(e),null),null!==o?o:t)}function ol(n){if(function(n){let e=el(n,"r"),t=el(n,"g"),o=el(n,"b");return e&&t&&o}(n))return function(n){let e=[tl(n,"r",null),tl(n,"g",null),tl(n,"b",null),tl(n,"a",1)];return e=lt(e,js),Js(e)}(n);if(function(n){let e=el(n,"h"),t=el(n,"s"),o=el(n,"l");return e&&t&&o}(n))return function(n){let e=[tl(n,"h",null),tl(n,"s",null),tl(n,"l",null),tl(n,"a",1)];return e=lt(e,js),Qs(e)}(n);if(function(n){let e=el(n,"h"),t=el(n,"s"),o=el(n,"v");return e&&t&&o}(n))return function(n){let e=[tl(n,"h",null),tl(n,"s",null),tl(n,"v",null),tl(n,"a",1)];return e=lt(e,js),Ks(e)}(n);throw new Error("color object is not one of rgba, hsla, hsva")}function rl(n){let e,t,o=n.r,r=n.g,i=n.b,a=Math.max(o,r,i),s=Math.min(o,r,i),l=(a+s)/2;if(a===s)e=t=0;else{let n=a-s;switch(t=l>.5?n/(2-a-s):n/(a+s),a){case o:e=(r-i)/n+(r<i?6:0);break;case r:e=(i-o)/n+2;break;case i:e=(o-r)/n+4}e/=6}return{h:e,s:t,l:l,a:n.a}}function il(n){let e,t,o=n.r,r=n.g,i=n.b,a=Math.max(o,r,i),s=Math.min(o,r,i),l=a,d=a-s;if(t=0===a?0:d/a,a===s)e=0;else{switch(a){case o:e=(r-i)/d+(r<i?6:0);break;case r:e=(i-o)/d+2;break;case i:e=(o-r)/d+4}e/=6}return{h:e,s:t,v:l,a:n.a}}function al(n){let e,t,o,r=n.h,i=n.s,a=n.l;function s(n,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?n+6*(e-n)*t:t<.5?e:t<2/3?n+(e-n)*(2/3-t)*6:n}if(0===i)e=t=o=a;else{let n=a<.5?a*(1+i):a+i-a*i,l=2*a-n;e=s(l,n,r+1/3),t=s(l,n,r),o=s(l,n,r-1/3)}return{r:e,g:t,b:o,a:n.a}}function sl(n){let e,t,o,r=n.h,i=n.s,a=n.v,s=Math.floor(6*r),l=6*r-s,d=a*(1-i),u=a*(1-l*i),c=a*(1-(1-l)*i);switch(s%6){case 0:e=a,t=c,o=d;break;case 1:e=u,t=a,o=d;break;case 2:e=d,t=a,o=c;break;case 3:e=d,t=u,o=a;break;case 4:e=c,t=d,o=a;break;case 5:e=a,t=d,o=u}return{r:e,g:t,b:o,a:n.a}}function ll(n){let e=Math.round(255*n).toString(16);if(1===e.length)return`0${e}`;if(2===e.length)return e;throw new Error("invalid value")}function dl(n,e=!0){let t=n.r,o=n.g,r=n.b,i=n.a,a=`${ll(t)}${ll(o)}${ll(r)}`;return e&&(a=`${a}${ll(i)}`),a}function ul(n){return Math.min(1,Math.max(0,n))}function cl(n,e){if(!ft(e))throw new Error("fmtOutput is not a string");if(!Yl[e])throw console.log(`fmtOutput must be [${Rn(Yl)}]`),new Error("invalid fmtOutput");return n=Yl[e](n)}function pl(n,e,t="toRgbString"){if(e<0||e>1)throw new Error("amount < 0 or > 1");let o=rl(n);return o.h+=e,o.h=o.h%1,cl(al(o),t)}function fl(n,e,t,o,r="toRgbString"){if(e<0||e>1)throw new Error("w1 < 0 or > 1");if(o<0||o>1)throw new Error("w1 < 0 or > 1");return cl({r:n.r*e+t.r*o,g:n.g*e+t.g*o,b:n.b*e+t.b*o,a:n.a*e+t.a*o},r)}function hl(n){return`${Qt(100*n,1)}%`}function gl(n){return Qt(n,0)}function vl(n){return Qt(n,3)}function ml(n){return{r:gl(255*n.r),g:gl(255*n.g),b:gl(255*n.b)}}function Al(n){return`rgb(${gl(255*n.r)}, ${gl(255*n.g)}, ${gl(255*n.b)})`}function bl(n){return{r:gl(255*n.r),g:gl(255*n.g),b:gl(255*n.b),a:vl(n.a)}}function yl(n){return`rgba(${gl(255*n.r)}, ${gl(255*n.g)}, ${gl(255*n.b)}, ${vl(n.a)})`}function Cl(n){let e=rl(n);return{h:gl(360*e.h),s:vl(e.s),l:vl(e.l)}}function xl(n){let e=rl(n);return`hsl(${gl(360*e.h)}, ${vl(e.s)}, ${vl(e.l)})`}function wl(n){let e=rl(n);return{h:gl(360*e.h),s:vl(e.s),l:vl(e.l),a:vl(e.a)}}function Sl(n){let e=rl(n);return`hsla(${gl(360*e.h)}, ${vl(e.s)}, ${vl(e.l)}, ${vl(e.a)})`}function kl(n){let e=il(n);return{h:gl(360*e.h),s:vl(e.s),v:vl(e.v)}}function _l(n){let e=il(n);return`hsv(${gl(360*e.h)}, ${vl(e.s)}, ${vl(e.v)})`}function Bl(n){let e=il(n);return{h:gl(360*e.h),s:vl(e.s),v:vl(e.v),a:vl(e.a)}}function Pl(n){let e=il(n);return`hsva(${gl(360*e.h)}, ${vl(e.s)}, ${vl(e.v)}, ${vl(e.a)})`}function Tl(n){return{r:hl(n.r),g:hl(n.g),b:hl(n.b)}}function El(n){return`rgb(${hl(n.r)}, ${hl(n.g)}, ${hl(n.b)})`}function zl(n){return{r:hl(n.r),g:hl(n.g),b:hl(n.b),a:vl(n.a)}}function Il(n){return`rgba(${hl(n.r)}, ${hl(n.g)}, ${hl(n.b)}, ${vl(n.a)})`}function Fl(n){let e=rl(n);return{h:gl(360*e.h),s:hl(e.s),l:hl(e.l)}}function Hl(n){let e=rl(n);return`hsl(${gl(360*e.h)}, ${hl(e.s)}, ${hl(e.l)})`}function Nl(n){let e=rl(n);return{h:gl(360*e.h),s:hl(e.s),l:hl(e.l),a:vl(e.a)}}function $l(n){let e=rl(n);return`hsla(${gl(360*e.h)}, ${hl(e.s)}, ${hl(e.l)}, ${vl(e.a)})`}function Wl(n){let e=il(n);return{h:gl(360*e.h),s:hl(e.s),v:hl(e.v)}}function Ml(n){let e=il(n);return`hsv(${gl(360*e.h)}, ${hl(e.s)}, ${hl(e.v)})`}function Ll(n){let e=il(n);return{h:gl(360*e.h),s:hl(e.s),v:hl(e.v),a:vl(e.a)}}function Dl(n){let e=il(n);return`hsva(${gl(360*e.h)}, ${hl(e.s)}, ${hl(e.v)}, ${vl(e.a)})`}function Rl(n){let e=function(n){return dl(n,!1)}(n);return`#${e}`}function jl(n){return`#${dl(n)}`}function Ol(n){let e=null,t=null,o=null;if(ft(n))e=$s(Ts(n));else{if(!Tr(n))throw console.log("color=",n),new Error("color is not a string or an object");t=n}if(null!==e)try{o=nl(e)}catch(n){throw console.log(n),new Error(`can not parse color: ${e}`)}else if(null!==t)try{o=ol(t)}catch(n){throw console.log(n),new Error(`can not parse color: ${JSON.stringify(t)}`)}return o}function Vl(n){if(!Tr(n))return console.log("gradient is not an effective object"),n=>`rgb(${255*(n=Math.min(Math.max(n,0),1))},${255*n},${255*n})`;let e=[];return Yn(n,(n,t)=>{e.push([Xt(t),bl(Ol(n)),n])}),e=Ns(e,0),function(n){let t=null;for(let o=1;o<e.length;o++){let r=e[o-1][0],i=e[o-1][1],a=e[o][0],s=e[o][1];if(r<=n&&a>=n){let e=(a-n)/(a-r),o=(n-r)/(a-r);t=fl(Ol(i),e,Ol(s),o,"toRgbaString");break}}return t}}let Yl={toRgb:ml,toRgbString:Al,toRgba:bl,toRgbaString:yl,toHsl:Cl,toHslString:xl,toHsla:wl,toHslaString:Sl,toHsv:kl,toHsvString:_l,toHsva:Bl,toHsvaString:Pl,toRgbP:Tl,toRgbPString:El,toRgbaP:zl,toRgbaPString:Il,toHslP:Fl,toHslPString:Hl,toHslaP:Nl,toHslaPString:$l,toHsvP:Wl,toHsvPString:Ml,toHsvaP:Ll,toHsvaPString:Dl,toHexString:Rl,toHex8String:jl};var Ul={toRgb:n=>ml(Ol(n)),toRgbString:n=>Al(Ol(n)),toRgba:n=>bl(Ol(n)),toRgbaString:n=>yl(Ol(n)),toHsl:n=>Cl(Ol(n)),toHslString:n=>xl(Ol(n)),toHsla:n=>wl(Ol(n)),toHslaString:n=>Sl(Ol(n)),toHsv:n=>kl(Ol(n)),toHsvString:n=>_l(Ol(n)),toHsva:n=>Bl(Ol(n)),toHsvaString:n=>Pl(Ol(n)),toRgbP:n=>Tl(Ol(n)),toRgbPString:n=>El(Ol(n)),toRgbaP:n=>zl(Ol(n)),toRgbaPString:n=>Il(Ol(n)),toHslP:n=>Fl(Ol(n)),toHslPString:n=>Hl(Ol(n)),toHslaP:n=>Nl(Ol(n)),toHslaPString:n=>$l(Ol(n)),toHsvP:n=>Wl(Ol(n)),toHsvPString:n=>Ml(Ol(n)),toHsvaP:n=>Ll(Ol(n)),toHsvaPString:n=>Dl(Ol(n)),toHexString:n=>Rl(Ol(n)),toHex8String:n=>jl(Ol(n)),modSaturate:(n,e,t)=>function(n,e,t="toRgbString"){if(e<0||e>1)throw new Error("amount < 0 or > 1");let o=rl(n);return o.s+=e,o.s=ul(o.s),cl(al(o),t)}(Ol(n),e,t),modGrey:(n,e)=>function(n,e="toRgbString"){let t=rl(n);return t.s=0,cl(al(t),e)}(Ol(n),e),modLighten:(n,e,t)=>function(n,e,t="toRgbString"){if(e<0||e>1)throw new Error("amount < 0 or > 1");let o=rl(n);return o.l+=e,o.l=ul(o.l),cl(al(o),t)}(Ol(n),e,t),modBrighten:(n,e,t)=>function(n,e,t="toRgbString"){if(e<0||e>1)throw new Error("amount < 0 or > 1");return n.r+=e,n.r=ul(n.r),n.g+=e,n.g=ul(n.g),n.b+=e,n.b=ul(n.b),cl(n,t)}(Ol(n),e,t),modHue:(n,e,t)=>pl(Ol(n),e,t),modComplement:(n,e)=>function(n,e="toRgbString"){return pl(n,.5,e)}(Ol(n),e),spreadHue:(n,e,t)=>function(n,e,t="toRgbString"){if(!Gt(e))throw new Error("num is not an integer");if((e=Kt(e))<=1)return[n];let o=rl(n),r=1/e,i=[];for(let n=0;n<e;n++)i.push(cl(al(o),t)),o.h+=r,o.h=o.h%1;return i}(Ol(n),e,t),spreadMonochromatic:(n,e,t)=>function(n,e,t="toRgbString"){if(!Gt(e))throw new Error("num is not an integer");if((e=Kt(e))<=1)return[n];let o=il(n);o.s=1,o.l=1;let r=1/e,i=[];for(let n=0;n<e;n++)i.push(cl(sl(o),t)),o.h-=r,o.l-=r;return i}(Ol(n),e,t),mix:(n,e,t,o,r)=>fl(Ol(n),e,Ol(t),o,r),getBrightness:n=>function(n){if(1!==n.a)throw new Error("alpha of color can not be equal to 1");return(299*n.r+587*n.g+114*n.b)/1e3}(Ol(n)),getLuminance:n=>function(n){if(1!==n.a)throw new Error("alpha of color can not be equal to 1");let e,t,o,r=n.r,i=n.g,a=n.b;return e=r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4),t=i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4),o=a<=.03928?a/12.92:Math.pow((a+.055)/1.055,2.4),.2126*e+.7152*t+.0722*o}(Ol(n)),interp:Vl};function Xl(n,e,t){for(var o=-1,r=n.length;++o<r;){var i=n[o],a=e(i);if(null!=a&&(void 0===s?a==a&&!f(a):t(a,s)))var s=a,l=i}return l}function Gl(n,e){return n<e}function Zl(n){return n&&n.length?Xl(n,Vn,Gl):void 0}function ql(n,e){return n>e}function Jl(n){return n&&n.length?Xl(n,Vn,ql):void 0}var Ql=Array.prototype.join;function Kl(n,e){return null==n?"":Ql.call(n,e)}var nd={components:{},props:{value:{type:String,default:"#FFFFFF"},size:{type:Number,default:200}},data:function(){let n=function(n){let e=n,t=e/2*Math.sqrt(3),o=e/4*3,r=lt((()=>{let n=[];for(let t=0;t<6;t++){let o=Math.PI/3*(t+.5),r=.5+.5*Math.cos(o),i=.5+.5*Math.sin(o);r*=e,i*=e,n.push({x:r,y:i})}return n})(),n=>`${n.x},${n.y}`);r=Kl(r," ");let i=[];Yn([{dx:6,cs:["#003366","#336699","#3366CC","#003399","#000099","#0000CC","#000066"]},{dx:5,cs:["#006666","#006699","#0099CC","#0066CC","#0033CC","#0000FF","#3333FF","#333399"]},{dx:4,cs:["#669999","#009999","#33CCCC","#00CCFF","#0099FF","#0066FF","#3366FF","#3333CC","#666699"]},{dx:3,cs:["#339966","#00CC99","#00FFCC","#00FFFF","#33CCFF","#3399FF","#6699FF","#6666FF","#6600FF","#6600CC"]},{dx:2,cs:["#339933","#00CC66","#00FF99","#66FFCC","#66FFFF","#66CCFF","#99CCFF","#9999FF","#9966FF","#9933FF","#9900FF"]},{dx:1,cs:["#006600","#00CC00","#00FF00","#66FF99","#99FFCC","#CCFFFF","#CCCCFF","#CC99FF","#CC66FF","#CC33FF","#CC00FF","#9900CC"]},{dx:0,cs:["#003300","#009933","#33CC33","#66FF66","#99FF99","#CCFFCC","#FFFFFF","#FFCCFF","#FF99FF","#FF66FF","#FF00FF","#CC00CC","#660066"]},{dx:1,cs:["#336600","#009900","#66FF33","#99FF66","#CCFF99","#FFFFCC","#FFCCCC","#FF99CC","#FF66CC","#FF33CC","#CC0099","#993399"]},{dx:2,cs:["#333300","#669900","#99FF33","#CCFF66","#FFFF99","#FFCC99","#FF9999","#FF6699","#FF3399","#CC3399","#990099"]},{dx:3,cs:["#666633","#99CC00","#CCFF33","#FFFF66","#FFCC66","#FF9966","#FF6666","#FF0066","#CC6699","#993366"]},{dx:4,cs:["#999966","#CCCC00","#FFFF00","#FFCC00","#FF9933","#FF6600","#FF5050","#CC0066","#660033"]},{dx:5,cs:["#996633","#CC9900","#FF9900","#CC6600","#FF3300","#FF0000","#CC0000","#990033"]},{dx:6,cs:["#663300","#996600","#CC3300","#993300","#990000","#800000","#993333"]}],(n,e)=>{Yn(n.cs,(r,a)=>{let s={x:(t+0)*a+n.dx*(t/2),y:(o+0)*e,color:r};ft(r)&&i.push(s)})});let a=Zl(lt(i,"x")),s=Jl(lt(i,"x")),l=Zl(lt(i,"y")),d=Jl(lt(i,"y"));return s+=t+2,d+=e+1,{cpgs:r,colors:i,xmin:a,xmax:s,ymin:l,ymax:d}}(18);return{valueTrans:null,cpgs:n.cpgs,colors:n.colors,xmin:n.xmin,xmax:n.xmax,ymin:n.ymin,ymax:n.ymax,pick:null}},computed:{changeValue:function(){return this.valueTrans=Br(this.value),""},changePick:function(){let n=this,e=null;return Yn(n.colors,t=>{n.jdColor2(t.color,n.valueTrans)&&(e=t)}),n.pick=e,""},width:function(){return this.size},height:function(){return this.width/10*9}},methods:{jdColor2:function(n,e){return Ul.toRgbString(n)===Ul.toRgbString(e)},ckColor:function(n){this.valueTrans=n.color,this.$emit("input",n.color)}}};const ed=nd;var td=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:"display:inline-block; width:"+n.width+"px; height:"+n.height+"px;",attrs:{changeValue:n.changeValue,changePick:n.changePick}},[t("div",{staticStyle:{display:"flex"}},[t("svg",{attrs:{viewBox:"0 0 "+n.xmax+" "+n.ymax,width:n.width,height:n.height,xmlns:"http://www.w3.org/2000/svg"}},[n._l(n.colors,function(e,o){return t("polygon",{key:"kc-"+o,style:"fill:"+e.color+"; stroke:"+e.color+"; stroke-width:1px; cursor:pointer; user-select:none;",attrs:{transform:"translate("+e.x+", "+e.y+")",points:n.cpgs},on:{click:function(t){return n.ckColor(e)}}})}),n._v(" "),n.pick?[t("polygon",{style:"fill:transparent; stroke:#000; stroke-width:4px; cursor:pointer; user-select:none;",attrs:{transform:"translate("+n.pick.x+", "+n.pick.y+")",points:n.cpgs},on:{click:function(e){return n.ckColor(n.pick)}}}),n._v(" "),t("polygon",{style:"fill:transparent; stroke:#fff; stroke-width:2px; cursor:pointer; user-select:none;",attrs:{transform:"translate("+n.pick.x+", "+n.pick.y+")",points:n.cpgs},on:{click:function(e){return n.ckColor(n.pick)}}})]:n._e()],2)])])};td._withStripped=!0;const od=Xr({render:td,staticRenderFns:[]},function(n){n&&n("data-v-6cff9481_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WColorPickHexagon.vue"},media:void 0})},ed,"data-v-6cff9481",false,void 0,!1,Zr,void 0,void 0);var rd={components:{},props:{value:{type:String,default:"#FFFFFF"},colorLeft:{type:String,default:"#FFFFFF"},colorRight:{type:String,default:"#000000"},colorNum:{type:Number,default:10},width:{type:Number,default:200},height:{type:Number,default:20}},data:function(){return{aimg:"data:image/svg+xml;base64,ICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDEwIDEwIiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQogICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSI1IiBoZWlnaHQ9IjUiIGZpbGw9IiNkZGQiIC8+DQogICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9IjAiIHk9IjUiIHdpZHRoPSI1IiBoZWlnaHQ9IjUiIGZpbGw9IiNmZmYiIC8+DQogICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9IjUiIHk9IjAiIHdpZHRoPSI1IiBoZWlnaHQ9IjUiIGZpbGw9IiNmZmYiIC8+DQogICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9IjUiIHk9IjUiIHdpZHRoPSI1IiBoZWlnaHQ9IjUiIGZpbGw9IiNkZGQiIC8+DQogICAgICAgICAgICAgICAgPC9zdmc+",valueTrans:null,colorLeftTrans:null,colorRightTrans:null,s:20,pick:null}},computed:{changeValue:function(){let n=this;return n.valueTrans=Br(n.value),n.colorLeftTrans=Br(n.colorLeft),n.colorRightTrans=Br(n.colorRight),""},colors:function(){let n=this,e={0:n.colorLeftTrans,1:n.colorRightTrans},t=Ul.interp(e),o=[];for(let e=0;e<n.colorNum;e++){let r=e/Math.max(n.colorNum-1,1),i=t(r);o.push({r:r,x:e*n.s,y:0,color:i})}return o},changePick:function(){let n=this,e=null;return Yn(n.colors,t=>{n.jdColor2(t.color,n.valueTrans)&&(e=t)}),n.pick=e,""}},methods:{jdColor2:function(n,e){return Ul.toRgbString(n)===Ul.toRgbString(e)},ckColor:function(n){this.valueTrans=n.color,this.$emit("input",n.color)}}};const id=rd;var ad=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:"display:inline-block; width:"+n.width+"px; height:"+n.height+"px;",attrs:{changeValue:n.changeValue,changePick:n.changePick}},[t("div",{style:"position:relative; width:"+n.width+"px; height:"+n.height+"px;"},[t("div",{style:"\n position:absolute; left:0px; top:0px;\n width:"+n.width+"px; height:"+n.height+"px;\n background-image: url("+n.aimg+");\n background-repeat:repeat;\n "}),n._v(" "),t("div",{style:"\n position:absolute; left:0px; top:0px;\n width:"+n.width+"px; height:"+n.height+"px;\n "},[t("div",{staticStyle:{display:"flex"}},[t("svg",{attrs:{viewBox:"0 0 "+n.colors.length*n.s+" "+n.s,width:n.width,height:n.height,preserveAspectRatio:"none",xmlns:"http://www.w3.org/2000/svg"}},[n._l(n.colors,function(e,o){return t("rect",{key:"kc-"+o,style:"fill:"+e.color+"; stroke-width:0px; cursor:pointer; user-select:none;",attrs:{x:e.x,y:e.y,width:n.s,height:n.s},on:{click:function(t){return n.ckColor(e)}}})}),n._v(" "),n.pick?[t("rect",{style:"fill:transparent; stroke:#000; stroke-width:1px; cursor:pointer; user-select:none;",attrs:{x:n.pick.x,y:n.pick.y,width:n.s,height:n.s}}),n._v(" "),t("rect",{style:"fill:transparent; stroke:#fff; stroke-width:2px; cursor:pointer; user-select:none;",attrs:{x:n.pick.x+2,y:n.pick.y+2,width:n.s-4,height:n.s-4}})]:n._e()],2)])])])])};ad._withStripped=!0;const sd={components:{WColorPickHexagon:od,WColorPickStripe:Xr({render:ad,staticRenderFns:[]},function(n){n&&n("data-v-d9d8b6ce_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WColorPickStripe.vue"},media:void 0})},id,"data-v-d9d8b6ce",false,void 0,!1,Zr,void 0,void 0)},props:{value:{type:String,default:"#FFFFFF"},size:{type:Number,default:200},space:{type:Number,default:5}},data:function(){return{valueTrans:null}},computed:{changeValue:function(){return this.valueTrans=Br(this.value),""},hexagonSize:function(){return this.size},hexagonWidth:function(){return this.size},hexagonHeight:function(){return this.hexagonWidth/10*9},stripeWidth:function(){return this.size},stripeHeight:function(){return this.stripeWidth/10},width:function(){return this.size},height:function(){let n=this;return n.hexagonHeight+n.space+n.stripeHeight}},methods:{ckColor:function(n){n=(n=Ul.toHexString(n)).toUpperCase(),this.valueTrans=n,this.$emit("input",n)}}};var ld=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:"display:inline-block; width:"+n.width+"px; height:"+n.height+"px;",attrs:{changeValue:n.changeValue}},[t("div",{staticStyle:{display:"flex"}},[t("WColorPickHexagon",{attrs:{size:n.hexagonSize,value:n.valueTrans},on:{input:n.ckColor}})],1),n._v(" "),t("div",{style:"height:"+n.space+"px;"}),n._v(" "),t("div",{staticStyle:{display:"flex"}},[t("WColorPickStripe",{attrs:{width:n.stripeWidth,height:n.stripeHeight,colorNum:10,value:n.valueTrans},on:{input:n.ckColor}})],1)])};ld._withStripped=!0;const dd=Xr({render:ld,staticRenderFns:[]},function(n){n&&n("data-v-1fab84d1_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WColorPickHexagonGray.vue"},media:void 0})},sd,"data-v-1fab84d1",false,void 0,!1,Zr,void 0,void 0);const ud={components:{},props:{value:{type:Number,default:1},color:{type:String,default:"#000000"},width:{type:Number,default:200},height:{type:Number,default:20},cursorSize:{type:Number,default:7}},data:function(){return{aimg:"data:image/svg+xml;base64,ICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDEwIDEwIiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQogICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSI1IiBoZWlnaHQ9IjUiIGZpbGw9IiNkZGQiIC8+DQogICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9IjAiIHk9IjUiIHdpZHRoPSI1IiBoZWlnaHQ9IjUiIGZpbGw9IiNmZmYiIC8+DQogICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9IjUiIHk9IjAiIHdpZHRoPSI1IiBoZWlnaHQ9IjUiIGZpbGw9IiNmZmYiIC8+DQogICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9IjUiIHk9IjUiIHdpZHRoPSI1IiBoZWlnaHQ9IjUiIGZpbGw9IiNkZGQiIC8+DQogICAgICAgICAgICAgICAgPC9zdmc+",valueTrans:1,colorTrans:"#000",curMousedown:!1,curLocLeft:0}},mounted:function(){let n=this;n.windowMousemove=e=>{n.curMousedown&&n.updateCurLocByEvent(e)},window.addEventListener("mousemove",n.windowMousemove,!1),n.windowMouseup=e=>{n.curMousedown=!1},window.addEventListener("mouseup",n.windowMouseup,!1)},beforeDestroy:function(){window.removeEventListener("mousemove",this.windowMousemove,!1),window.removeEventListener("mouseup",this.windowMouseup,!1)},computed:{changeValue:function(){let n=this;return n.valueTrans=n.value,n.updateCurLocByValue(),""},changeColor:function(){return this.colorTrans=Br(this.color),""}},methods:{updateCurLocByEvent:function(n){let e=this,t=e.$el.getBoundingClientRect(),o=n.clientX-t.left;o=Math.min(Math.max(o,0),e.width-1),e.curLocLeft=o,e.updateAlpha()},updateCurLocByValue:function(){let n=this,e=n.valueTrans*(n.width-1);n.curLocLeft=e},updateAlpha:function(){let n=this,e=n.width-1,t=0;e-0-1>0&&(t=(n.curLocLeft-0)/(e-0));let o=t;n.$emit("input",o)},mousedownCur:function(n){this.curMousedown=!0,this.updateCurLocByEvent(n)}}};var cd=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:"display:inline-block;",attrs:{changeValue:n.changeValue,changeColor:n.changeColor}},[t("div",{style:"position:relative; width:"+n.width+"px; height:"+n.height+"px;"},[t("div",{style:"\n position:absolute; left:0px; top:0px;\n width:"+n.width+"px; height:"+n.height+"px;\n background-image: url("+n.aimg+");\n background-repeat:repeat;\n "},[n._e()]),n._v(" "),t("div",{style:"\n position:absolute; left:0px; top:0px;\n width:"+n.width+"px; height:"+n.height+"px;\n background:linear-gradient(to left, "+n.colorTrans+", transparent);\n "}),n._v(" "),t("div",{style:"\n position:absolute; left:"+(n.curLocLeft-Math.floor(n.cursorSize/2)-1)+"px; top:-1px;\n width:"+(n.cursorSize+2)+"px; height:"+(n.height+2)+"px;\n box-sizing:border-box;\n background:transparent;\n border:1px solid #666;\n cursor:pointer;\n user-select:none;\n _pointer-events:none;\n ",on:{mousedown:n.mousedownCur}}),n._v(" "),t("div",{style:"\n position:absolute; left:"+(n.curLocLeft-Math.floor(n.cursorSize/2))+"px; top:0px;\n width:"+n.cursorSize+"px; height:"+n.height+"px;\n box-sizing:border-box;\n background:transparent;\n border:1px solid #fff;\n cursor:pointer;\n user-select:none;\n _pointer-events:none;\n ",on:{mousedown:n.mousedownCur}}),n._v(" "),t("div",{style:"\n position:absolute; left:0px; top:0px;\n width:"+n.width+"px; height:"+n.height+"px;\n cursor:pointer;\n user-select:none;\n _pointer-events:none;\n ",on:{mousedown:n.mousedownCur}})])])};cd._withStripped=!0;const pd=Xr({render:cd,staticRenderFns:[]},function(n){n&&n("data-v-52468a21_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WColorPickAlpha.vue"},media:void 0})},ud,"data-v-52468a21",false,void 0,!1,Zr,void 0,void 0);var fd={components:{WColorPickHexagonGray:dd,WColorPickAlpha:pd},props:{value:{type:String,default:"#FFFFFF"},size:{type:Number,default:200},spaceGray:{type:Number,default:5},spaceAlpha:{type:Number,default:8}},data:function(){return{colorPure:"#fff",colorAlpha:1,pick:null}},computed:{changeValue:function(){let n=this,e=Br(n.value),t=Ul.toRgba(e),o={r:t.r,g:t.g,b:t.b},r=Ul.toRgbString(o),i=t.a;return n.colorPure=r,n.colorAlpha=i,""},hexagonGrayWidth:function(){return this.size},hexagonGrayHeight:function(){return this.hexagonGrayWidth+this.spaceGray},alphaWidth:function(){return this.size},alphaHeight:function(){return this.alphaWidth/10},width:function(){return this.size},height:function(){let n=this;return n.hexagonGrayHeight+n.spaceAlpha+n.alphaHeight}},methods:{updateColor:function(n,e,t){let o=Ul.toRgba(n);o.a=e;let r=Ul.toRgbaString(o);this.$emit("input",r)}}};const hd=fd;var gd=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:"display:inline-block; width:"+n.width+"px; height:"+n.height+"px;",attrs:{changeValue:n.changeValue}},[t("div",{staticStyle:{display:"flex"}},[t("WColorPickHexagonGray",{attrs:{size:n.size,space:n.spaceGray,value:n.colorPure},on:{input:function(e){n.colorPure=e,n.updateColor(n.colorPure,n.colorAlpha,"hexagonGray")}}})],1),n._v(" "),t("div",{style:"height:"+n.spaceAlpha+"px;"}),n._v(" "),t("div",{staticStyle:{display:"flex"}},[t("WColorPickAlpha",{attrs:{width:n.alphaWidth,height:n.alphaHeight,cursorSize:7,value:n.colorAlpha,color:n.colorPure},on:{input:function(e){n.colorAlpha=e,n.updateColor(n.colorPure,n.colorAlpha,"alpha")}}})],1)])};gd._withStripped=!0;const vd=Xr({render:gd,staticRenderFns:[]},function(n){n&&n("data-v-7f86d7fc_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WColorSelectPanelBlock.vue"},media:void 0})},hd,"data-v-7f86d7fc",false,void 0,!1,Zr,void 0,void 0);const md={components:{},props:{value:{type:String,default:"#FFFFFF"},color:{type:String,default:"#FFFFFF"},colorLeftTop:{type:String,default:"#FFFFFF"},colorBottom:{type:String,default:"#000000"},width:{type:Number,default:200},height:{type:Number,default:200},cursorSize:{type:Number,default:14}},data:function(){return{valueTrans:"#fff",colorTrans:"#fff",colorLeftTopTrans:"#fff",colorBottomTrans:"#fff",curMousedown:!1,curLocLeft:0,curLocTop:0}},mounted:function(){let n=this;n.windowMousemove=e=>{n.curMousedown&&n.updateCurLocByEvent(e)},window.addEventListener("mousemove",n.windowMousemove,!1),n.windowMouseup=e=>{n.curMousedown=!1},window.addEventListener("mouseup",n.windowMouseup,!1)},beforeDestroy:function(){window.removeEventListener("mousemove",this.windowMousemove,!1),window.removeEventListener("mouseup",this.windowMouseup,!1)},computed:{changeParams:function(){let n=this;n.valueTrans=Br(n.value);let e=Br(n.color);return e={h:Ul.toHsv(e).h,s:1,v:1},e=Ul.toHexString(e),n.colorTrans=e,n.colorLeftTopTrans=Br(n.colorLeftTop),n.colorBottomTrans=Br(n.colorBottom),n.updateCurLocByValue(),""},changeColor:function(){return this.updateColor(this.color),""}},methods:{updateCurLocByEvent:function(n){let e=this,t=e.$el.getBoundingClientRect(),o=n.clientX-t.left,r=n.clientY-t.top;o=Math.min(Math.max(o,0),e.width-1),r=Math.min(Math.max(r,0),e.height-1),e.curLocLeft=o,e.curLocTop=r,e.updateColor()},updateCurLocByValue:function(){let n=this,e=Ul.toHsv(n.valueTrans),t=e.s*(n.width-1),o=(1-e.v)*(n.height-1),r=Ul.toHsv(n.colorTrans);e.h===r.h&&(n.curLocLeft=t,n.curLocTop=o)},updateColor:function(){let n=this,e=n.width-1,t=0;e-0>0&&(t=(n.curLocLeft-0)/(e-0));let o,r,i,a=n.height-1,s=0;a-0>0&&(s=(n.curLocTop-0)/(a-0)),o=n.colorTrans,r=n.colorLeftTopTrans,i=Ul.mix(o,t,r,1-t,"toRgbString"),o=i,r=n.colorBottomTrans,i=Ul.mix(o,1-s,r,s,"toHexString"),i=i.toUpperCase(),n.$emit("input",i)},mousedownCur:function(n){this.curMousedown=!0,this.updateCurLocByEvent(n)}}};var Ad=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:"display:inline-block;",attrs:{changeParams:n.changeParams,changeColor:n.changeColor}},[t("div",{style:"position:relative; width:"+n.width+"px; height:"+n.height+"px;"},[t("div",{style:"\n position:absolute; left:0px; top:0px;\n width:"+n.width+"px; height:"+n.height+"px;\n background:linear-gradient(to right, "+n.colorLeftTop+", "+n.colorTrans+");\n "}),n._v(" "),t("div",{style:"\n position:absolute; left:0px; top:0px;\n width:"+n.width+"px; height:"+n.height+"px;\n background:linear-gradient(to top, "+n.colorBottom+", transparent);\n "}),n._v(" "),t("div",{style:"\n position:absolute; left:"+(n.curLocLeft-Math.floor(n.cursorSize/2)-1)+"px; top:"+(n.curLocTop-Math.floor(n.cursorSize/2)-1)+"px;\n width:"+(n.cursorSize+2)+"px; height:"+(n.cursorSize+2)+"px;\n box-sizing:border-box;\n background:transparent;\n border-radius:50%;\n border:1px solid #666;\n cursor:pointer;\n user-select:none;\n _pointer-events:none;\n ",on:{mousedown:n.mousedownCur}}),n._v(" "),t("div",{style:"\n position:absolute; left:"+(n.curLocLeft-Math.floor(n.cursorSize/2))+"px; top:"+(n.curLocTop-Math.floor(n.cursorSize/2))+"px;\n width:"+n.cursorSize+"px; height:"+n.cursorSize+"px;\n box-sizing:border-box;\n background:transparent;\n border-radius:50%;\n border:1px solid #fff;\n cursor:pointer;\n user-select:none;\n _pointer-events:none;\n ",on:{mousedown:n.mousedownCur}}),n._v(" "),t("div",{style:"\n position:absolute; left:0px; top:0px;\n width:"+n.width+"px; height:"+n.height+"px;\n cursor:pointer;\n user-select:none;\n _pointer-events:none;\n ",on:{mousedown:n.mousedownCur}})])])};Ad._withStripped=!0;const bd=Xr({render:Ad,staticRenderFns:[]},function(n){n&&n("data-v-0cf93a56_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WColorPickHsv.vue"},media:void 0})},md,"data-v-0cf93a56",false,void 0,!1,Zr,void 0,void 0);function yd(){let n,e,t=new Promise(function(){n=arguments[0],e=arguments[1]});return t.resolve=n,t.reject=e,t}async function Cd(n,e={}){let t=null,o=yd();if(!Oo(n))return o.reject("waitfunction需輸入函數f"),o;let r=async()=>{let e=n();return function(n){let e,t=Object.prototype.toString.call(n);if(e="[object Promise]"===t,e)return!0;if("[object Function]"!==t)return!1;try{e="function"!=typeof n.subscribe&&"function"==typeof n.then}catch(n){}return e}(e)&&(e=await e),e};if(t=await r(),!0===t)return o.resolve(),o;let i=an(e,"attemptNum",null);no(i)||(i=200);let a=an(e,"timeInterval",null);no(a)||(a=1e3);let s=0,l=setInterval(async()=>{s+=1,t=await r(),!0===t&&(clearInterval(l),o.resolve()),s>i&&(clearInterval(l),o.reject(`exceeded attemptNum[${i}]`))},a);return o}const xd={components:{},props:{value:{type:String,default:"#FF0000"},width:{type:Number,default:200},height:{type:Number,default:20},cursorSize:{type:Number,default:7}},data:function(){return{valueTrans:"#fff",curMousedown:!1,curLocLeft:0}},mounted:function(){let n=this;n.plotBackground(),n.windowMousemove=e=>{n.curMousedown&&n.updateCurLocByEvent(e)},window.addEventListener("mousemove",n.windowMousemove,!1),n.windowMouseup=e=>{n.curMousedown=!1},window.addEventListener("mouseup",n.windowMouseup,!1)},beforeDestroy:function(){window.removeEventListener("mousemove",this.windowMousemove,!1),window.removeEventListener("mouseup",this.windowMouseup,!1)},computed:{changeValue:function(){let n=this;return n.valueTrans=Br(n.value),n.updateCurLocByValue(),""}},methods:{plotBackground:function(){let n=this;(async function(){await Cd(()=>$r(n.$refs.cvs));let e=n.$refs.cvs;e.width=n.width,e.height=n.height;let t=e.getContext("2d"),o=n.width-1;for(let e=0;e<=o;e++){let r={h:e/o*360,s:1,v:1};r=Ul.toHexString(r),t.fillStyle=r,t.fillRect(e,0,1,n.height)}})().catch(n=>{console.log(n)})},updateCurLocByEvent:function(n){let e=this,t=e.$el.getBoundingClientRect(),o=n.clientX-t.left;o=Math.min(Math.max(o,0),e.width-1),e.curLocLeft=o,e.updateColor()},updateCurLocByValue:function(){let n=this,e=Ul.toHsv(n.valueTrans).h/360*(n.width-1);n.curLocLeft=e},updateColor:function(){let n=this,e=n.width-1,t=0;e-0-1>0&&(t=(n.curLocLeft-0)/(e-0));let o={h:360*t,s:1,v:1};o=Ul.toHexString(o),o=o.toUpperCase(),n.$emit("input",o)},mousedownCur:function(n){this.curMousedown=!0,this.updateCurLocByEvent(n)}}};var wd=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:"display:inline-block;",attrs:{changeValue:n.changeValue}},[t("div",{style:"position:relative; width:"+n.width+"px; height:"+n.height+"px;"},[t("div",{style:"\n position:absolute; left:0px; top:0px;\n width:"+n.width+"px; height:"+n.height+"px;\n overflow:hidden;\n "},[t("div",{staticStyle:{display:"flex"}},[t("canvas",{ref:"cvs",style:"width:"+n.width+"px; height:"+n.height+"px;"})])]),n._v(" "),t("div",{style:"\n position:absolute; left:"+(n.curLocLeft-Math.floor(n.cursorSize/2)-1)+"px; top:-1px;\n width:"+(n.cursorSize+2)+"px; height:"+(n.height+2)+"px;\n box-sizing:border-box;\n background:transparent;\n border:1px solid #666;\n cursor:pointer;\n user-select:none;\n _pointer-events:none;\n ",on:{mousedown:n.mousedownCur}}),n._v(" "),t("div",{style:"\n position:absolute; left:"+(n.curLocLeft-Math.floor(n.cursorSize/2))+"px; top:0px;\n width:"+n.cursorSize+"px; height:"+n.height+"px;\n box-sizing:border-box;\n background:transparent;\n border:1px solid #fff;\n cursor:pointer;\n user-select:none;\n _pointer-events:none;\n ",on:{mousedown:n.mousedownCur}}),n._v(" "),t("div",{style:"\n position:absolute; left:0px; top:0px;\n width:"+n.width+"px; height:"+n.height+"px;\n cursor:pointer;\n user-select:none;\n _pointer-events:none;\n ",on:{mousedown:n.mousedownCur}})])])};wd._withStripped=!0;const Sd={components:{WColorPickHsv:bd,WColorPickHue:Xr({render:wd,staticRenderFns:[]},function(n){n&&n("data-v-b034493e_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WColorPickHue.vue"},media:void 0})},xd,"data-v-b034493e",false,void 0,!1,Zr,void 0,void 0),WColorPickAlpha:pd},props:{value:{type:String,default:"#FFFFFF"},size:{type:Number,default:200},space:{type:Number,default:10}},data:function(){return{lock:!1,valueTrans:null,colorHue:"#f00",colorPure:"#fff",colorAlpha:1}},computed:{changeParams:function(){let n=this;if(n.value===n.valueTrans)return;if(n.lock)return;n.lock=!0,n.valueTrans=Br(n.value);let e=Ul.toHsva(n.value),t="#f00";{let n={h:e.h,s:1,v:1};t=Ul.toHexString(n)}let o="#fff";{let n={h:e.h,s:e.s,v:e.v};o=Ul.toHexString(n)}let r=1;return r=e.a,n.colorHue=t,n.colorPure=o,n.colorAlpha=r,""},hsvWidth:function(){return this.size},hsvHeight:function(){return this.hsvWidth},hueWidth:function(){return this.size},hueHeight:function(){return this.hueWidth/10},alphaWidth:function(){return this.size},alphaHeight:function(){return this.alphaWidth/10},width:function(){return this.size},height:function(){let n=this;return n.hsvHeight+n.space+n.hueHeight+n.space+n.alphaHeight}},methods:{updateColor:function(n,e){let t=this;if(t.lock&&"hsv"===e)return void(t.lock=!1);let o=Ul.toHsva(t.colorHue),r=Ul.toHsva(t.colorPure),i={h:o.h,s:r.s,v:r.v,a:t.colorAlpha};i=Ul.toRgbaString(i),t.valueTrans=i,t.$emit("input",i)}}};var kd=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:"display:inline-block; width:"+n.width+"px; height:"+n.height+"px;",attrs:{changeParams:n.changeParams}},[t("div",{staticStyle:{display:"flex"}},[t("WColorPickHsv",{attrs:{width:n.hsvWidth,height:n.hsvHeight,cursorSize:14,color:n.colorHue},on:{input:function(e){n.updateColor(e,"hsv")}},model:{value:n.colorPure,callback:function(e){n.colorPure=e},expression:"colorPure"}})],1),n._v(" "),t("div",{style:"height:"+n.space+"px;"}),n._v(" "),t("div",{staticStyle:{display:"flex"}},[t("WColorPickHue",{attrs:{width:n.hueWidth,height:n.hueHeight,cursorSize:7},on:{input:function(e){n.updateColor(e,"hue")}},model:{value:n.colorHue,callback:function(e){n.colorHue=e},expression:"colorHue"}})],1),n._v(" "),t("div",{style:"height:"+n.space+"px;"}),n._v(" "),t("div",{staticStyle:{display:"flex"}},[t("WColorPickAlpha",{attrs:{width:n.alphaWidth,height:n.alphaHeight,colorNum:10,color:n.colorPure},on:{input:function(e){n.updateColor(e,"alpha")}},model:{value:n.colorAlpha,callback:function(e){n.colorAlpha=e},expression:"colorAlpha"}})],1)])};kd._withStripped=!0;const _d={components:{WColorSelectPanelBlock:vd,WColorSelectPanelHsva:Xr({render:kd,staticRenderFns:[]},function(n){n&&n("data-v-8667ecc2_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WColorSelectPanelHsva.vue"},media:void 0})},Sd,"data-v-8667ecc2",false,void 0,!1,Zr,void 0,void 0)},props:{value:{type:String,default:"#FFFFFF"},type:{type:String,default:"LUMP"},size:{type:Number,default:200},space:{type:Number,default:10},backgroundColor:{type:String,default:"transparent"}},data:function(){return{valueTrans:"#fff",typeTrans:"LUMP"}},computed:{changeValue:function(){return this.valueTrans=Br(this.value),""},changeType:function(){return this.typeTrans=this.type,""},useBackgroundColor:function(){return Br(this.backgroundColor)}},methods:{updateColor:function(n,e){this.valueTrans=n,this.$emit("input",n)}}};var Bd=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:"display:inline-block; background:"+n.useBackgroundColor+";",attrs:{changeValue:n.changeValue,changeType:n.changeType}},[t("div",{style:"padding:"+n.space+"px;"},["LUMP"===n.typeTrans?t("div",{staticStyle:{display:"flex"}},[t("WColorSelectPanelBlock",{attrs:{size:n.size,spaceGray:5,spaceAlpha:8,value:n.valueTrans},on:{input:function(e){n.updateColor(e,"block")}}})],1):n._e(),n._v(" "),"HSVA"===n.typeTrans?t("div",{staticStyle:{display:"flex"}},[t("WColorSelectPanelHsva",{attrs:{_size:"size*0.8875",size:n.size,space:10,value:n.valueTrans},on:{input:function(e){n.updateColor(e,"hsva")}}})],1):n._e()])])};Bd._withStripped=!0;const Pd=Xr({render:Bd,staticRenderFns:[]},function(n){n&&n("data-v-52c9efc1_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WColorSelectPanel.vue"},media:void 0})},_d,"data-v-52c9efc1",false,void 0,!1,Zr,void 0,void 0);function Td(n){if(!Ut(n))return!1;return Xt(n)>=0}function Ed(n,e){function t(n){return Vr(n)?n:[n]}if(Yr(n))return!1;if(0===(n=t(n)).length)return!1;if(Yr(n))return!1;if(0===(e=t(e)).length)return!1;for(let t=0;t<n.length;t++)for(let o=0;o<e.length;o++)if(It(n[t],e[o]))return!0;return!1}function zd(n){if(!n)return"invalid event";if(!n.cancelable)return"event is not cancelable";try{null!==navigator.userAgent.toLowerCase().match(/rv:([\d.]+)\) like gecko/)?n.cancelBubble=!0:n.stopPropagation(),n.preventDefault()}catch(n){}}const Id={components:{},props:{name:{type:String,default:"cir-wave"},size:{type:Number,default:48},color:{type:String,default:"#666"}},data:function(){return{}},computed:{effColor:function(){return Br(this.color)}},methods:{}};var Fd=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:"display:inline-block; vertical-align:middle; outline:none; user-select:none; height:"+n.size+"px; width:"+n.size+"px;",attrs:{cmp:"loading",loadtype:n.name}},["cir-wave"===n.name?[t("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 100 100",preserveAspectRatio:"xMidYMid",width:n.size,height:n.size}},[t("circle",{attrs:{cx:"50",cy:"50",r:"14.6699",fill:"none",stroke:"#420457","stroke-width":"10"}},[t("animate",{attrs:{attributeName:"r",repeatCount:"indefinite",dur:"1s",values:"0;40",keyTimes:"0;1",keySplines:"0 0.2 0.8 1",calcMode:"spline",begin:"-0.5s"}}),n._v(" "),t("animate",{attrs:{attributeName:"opacity",repeatCount:"indefinite",dur:"1s",values:"1;0",keyTimes:"0;1",keySplines:"0.2 0 0.8 1",calcMode:"spline",begin:"-0.5s"}})]),n._v(" "),t("circle",{attrs:{cx:"50",cy:"50",r:"33.9915",fill:"none",stroke:"#5a3faa","stroke-width":"10"}},[t("animate",{attrs:{attributeName:"r",repeatCount:"indefinite",dur:"1s",values:"0;40",keyTimes:"0;1",keySplines:"0 0.2 0.8 1",calcMode:"spline"}}),n._v(" "),t("animate",{attrs:{attributeName:"opacity",repeatCount:"indefinite",dur:"1s",values:"1;0",keyTimes:"0;1",keySplines:"0.2 0 0.8 1",calcMode:"spline"}})])])]:"cir-rotate"===n.name?[t("div",{style:"position:relative; display:inline-flex; align-items:center; justify-content:center; height:"+n.size+"px; width:"+n.size+"px;"},[t("svg",{staticClass:"pgc-rotate",staticStyle:{transform:"rotate(0deg)"},attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"21.904761904761905 21.904761904761905 43.80952380952381 43.80952380952381"}},[t("circle",{staticClass:"pgc-dash",attrs:{fill:"transparent",cx:"43.80952380952381",cy:"43.80952380952381",r:"20","stroke-width":"4","stroke-dasharray":"100","stroke-dashoffset":"50px",stroke:n.effColor}})])])]:n._e()],2)};Fd._withStripped=!0;const Hd=Xr({render:Fd,staticRenderFns:[]},function(n){n&&n("data-v-1ba2145f_0",{source:"\n.pgc-rotate[data-v-1ba2145f] {\r\n width: 100%;\r\n height: 100%;\r\n margin: auto;\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n z-index: 1;\r\n transition: all .6s ease-in-out;\r\n animation: progress-circular-rotate-data-v-1ba2145f 1.4s linear infinite;\r\n transform-origin: center center;\n}\n.pgc-dash[data-v-1ba2145f] {\r\n animation: progress-circular-dash-data-v-1ba2145f 1.4s ease-in-out infinite;\r\n stroke-linecap: round;\r\n stroke-dasharray: 80,200;\r\n stroke-dashoffset: 0px;\n}\n@-webkit-keyframes progress-circular-dash-data-v-1ba2145f {\n0% {\r\n stroke-dasharray: 1,200;\r\n stroke-dashoffset: 0px\n}\n50% {\r\n stroke-dasharray: 100,200;\r\n stroke-dashoffset: -15px\n}\nto {\r\n stroke-dasharray: 100,200;\r\n stroke-dashoffset: -124px\n}\n}\n@keyframes progress-circular-dash-data-v-1ba2145f {\n0% {\r\n stroke-dasharray: 1,200;\r\n stroke-dashoffset: 0px\n}\n50% {\r\n stroke-dasharray: 100,200;\r\n stroke-dashoffset: -15px\n}\nto {\r\n stroke-dasharray: 100,200;\r\n stroke-dashoffset: -124px\n}\n}\n@-webkit-keyframes progress-circular-rotate-data-v-1ba2145f {\nto {\r\n transform: rotate(1turn)\n}\n}\n@keyframes progress-circular-rotate-data-v-1ba2145f {\nto {\r\n transform: rotate(1turn)\n}\n}\r\n\r\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\node_modules\\w-component-vue\\src\\components\\WIconLoading.vue"],names:[],mappings:";AAmGA;IACA,WAAA;IACA,YAAA;IACA,YAAA;IACA,kBAAA;IACA,MAAA;IACA,SAAA;IACA,OAAA;IACA,QAAA;IACA,UAAA;IACA,+BAAA;IACA,wEAAA;IACA,+BAAA;AACA;AAEA;IACA,2EAAA;IACA,qBAAA;IACA,wBAAA;IACA,sBAAA;AACA;AAEA;AACA;QACA,uBAAA;QACA;AACA;AAEA;QACA,yBAAA;QACA;AACA;AAEA;QACA,yBAAA;QACA;AACA;AACA;AAEA;AACA;QACA,uBAAA;QACA;AACA;AAEA;QACA,yBAAA;QACA;AACA;AAEA;QACA,yBAAA;QACA;AACA;AACA;AAEA;AACA;QACA;AACA;AACA;AAEA;AACA;QACA;AACA;AACA",file:"WIconLoading.vue",sourcesContent:['<template>\r\n <div\r\n :style="`display:inline-block; vertical-align:middle; outline:none; user-select:none; height:${size}px; width:${size}px;`"\r\n :cmp="\'loading\'"\r\n :loadtype="name"\r\n >\r\n\r\n <template v-if="name===\'cir-wave\'">\r\n\r\n <svg\r\n xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid"\r\n :width="size"\r\n :height="size"\r\n >\r\n <circle cx="50" cy="50" r="14.6699" fill="none" stroke="#420457" stroke-width="10">\r\n <animate attributeName="r" repeatCount="indefinite" dur="1s" values="0;40" keyTimes="0;1" keySplines="0 0.2 0.8 1" calcMode="spline" begin="-0.5s"></animate>\r\n <animate attributeName="opacity" repeatCount="indefinite" dur="1s" values="1;0" keyTimes="0;1" keySplines="0.2 0 0.8 1" calcMode="spline" begin="-0.5s"></animate>\r\n </circle>\r\n <circle cx="50" cy="50" r="33.9915" fill="none" stroke="#5a3faa" stroke-width="10">\r\n <animate attributeName="r" repeatCount="indefinite" dur="1s" values="0;40" keyTimes="0;1" keySplines="0 0.2 0.8 1" calcMode="spline"></animate>\r\n <animate attributeName="opacity" repeatCount="indefinite" dur="1s" values="1;0" keyTimes="0;1" keySplines="0.2 0 0.8 1" calcMode="spline"></animate>\r\n </circle>\r\n </svg>\r\n\r\n </template>\r\n\r\n <template v-else-if="name===\'cir-rotate\'">\r\n\r\n <div :style="`position:relative; display:inline-flex; align-items:center; justify-content:center; height:${size}px; width:${size}px;`">\r\n <svg\r\n class="pgc-rotate"\r\n style="transform: rotate(0deg);"\r\n xmlns="http://www.w3.org/2000/svg"\r\n viewBox="21.904761904761905 21.904761904761905 43.80952380952381 43.80952380952381"\r\n >\r\n <circle\r\n class="pgc-dash"\r\n fill="transparent"\r\n cx="43.80952380952381"\r\n cy="43.80952380952381"\r\n r="20"\r\n stroke-width="4"\r\n stroke-dasharray="100"\r\n stroke-dashoffset="50px"\r\n :stroke="effColor"\r\n ></circle>\r\n </svg>\r\n </div>\r\n\r\n </template>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport convertColor from \'../js/convertColor.mjs\'\r\n\r\n\r\n/**\r\n * @vue-prop {String} [name=\'cir-wave\'] 輸入動畫名稱字串,預設\'cir-wave\'\r\n * @vue-prop {Number} [size=48] 輸入圖標欲顯示的尺寸浮點數,預設48\r\n * @vue-prop {String} [color=\'#666\'] 輸入圖標顏色字串,預設\'#666\'\r\n */\r\nexport default {\r\n components: {\r\n },\r\n props: {\r\n name: {\r\n type: String,\r\n default: \'cir-wave\',\r\n },\r\n size: {\r\n type: Number,\r\n default: 48,\r\n },\r\n color: {\r\n type: String,\r\n default: \'#666\',\r\n },\r\n },\r\n data: function() {\r\n return {\r\n }\r\n },\r\n computed: {\r\n\r\n effColor: function() {\r\n let vo = this\r\n return convertColor(vo.color)\r\n },\r\n\r\n },\r\n methods: {\r\n },\r\n}\r\n<\/script>\r\n\r\n<style scoped>\r\n\r\n.pgc-rotate {\r\n width: 100%;\r\n height: 100%;\r\n margin: auto;\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n z-index: 1;\r\n transition: all .6s ease-in-out;\r\n animation: progress-circular-rotate 1.4s linear infinite;\r\n transform-origin: center center;\r\n}\r\n\r\n.pgc-dash {\r\n animation: progress-circular-dash 1.4s ease-in-out infinite;\r\n stroke-linecap: round;\r\n stroke-dasharray: 80,200;\r\n stroke-dashoffset: 0px;\r\n}\r\n\r\n@-webkit-keyframes progress-circular-dash {\r\n 0% {\r\n stroke-dasharray: 1,200;\r\n stroke-dashoffset: 0px\r\n }\r\n\r\n 50% {\r\n stroke-dasharray: 100,200;\r\n stroke-dashoffset: -15px\r\n }\r\n\r\n to {\r\n stroke-dasharray: 100,200;\r\n stroke-dashoffset: -124px\r\n }\r\n}\r\n\r\n@keyframes progress-circular-dash {\r\n 0% {\r\n stroke-dasharray: 1,200;\r\n stroke-dashoffset: 0px\r\n }\r\n\r\n 50% {\r\n stroke-dasharray: 100,200;\r\n stroke-dashoffset: -15px\r\n }\r\n\r\n to {\r\n stroke-dasharray: 100,200;\r\n stroke-dashoffset: -124px\r\n }\r\n}\r\n\r\n@-webkit-keyframes progress-circular-rotate {\r\n to {\r\n transform: rotate(1turn)\r\n }\r\n}\r\n\r\n@keyframes progress-circular-rotate {\r\n to {\r\n transform: rotate(1turn)\r\n }\r\n}\r\n\r\n</style>\r\n']},media:void 0})},Id,"data-v-1ba2145f",false,void 0,!1,Zr,void 0,void 0);var Nd={directives:{domripple:Lr()},components:{WIcon:ni,WIconLoading:Hd,WTooltip:ks},props:{text:{type:String,default:""},tooltip:{type:String,default:""},icon:{type:String,default:""},iconColor:{type:String,default:"black"},iconColorHover:{type:String,default:"grey darken-3"},iconColorActive:{type:String,default:"white"},iconSize:{type:Number,default:22},prog:{type:Number,default:null},progColor:{type:String,default:"rgba(150,150,150,0.4)"},progBackgroundColor:{type:String,default:"rgba(150,150,150,0.075)"},textColor:{type:String,default:"black"},textColorHover:{type:String,default:"grey darken-3"},textColorActive:{type:String,default:"white"},textFontSize:{type:String,default:"0.85rem"},borderUsed:{type:Object,default:()=>({top:!0,bottom:!0,left:!0,right:!0})},borderWidth:{type:Object,default:()=>({top:1,bottom:1,left:1,right:1})},borderRadius:{type:Number,default:30},borderRadiusStyle:{type:Object,default:()=>({left:!0,right:!0})},borderColor:{type:String,default:"transparent"},borderColorHover:{type:String,default:"transparent"},borderColorActive:{type:String,default:"transparent"},backgroundColor:{type:String,default:"rgb(241,241,241)"},backgroundColorHover:{type:String,default:"rgb(236,236,236)"},backgroundColorActive:{type:String,default:"orange"},tooltipBorderRadius:{type:Number,default:4},tooltipPaddingStyle:{type:Object,default:()=>({v:5,h:8})},tooltipTextFontSize:{type:String,default:"0.85rem"},tooltipTextColor:{type:String,default:"white"},tooltipBackgroundColor:{type:String,default:"rgba(60,60,60,0.75)"},shadow:{type:Boolean,default:!0},shadowStyle:{type:String,default:"0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12)"},shadowActive:{type:Boolean,default:!0},shadowActiveStyle:{type:String,default:"0 12px 20px -10px {backgroundColorActiveAlpha=0.28}, 0 4px 20px 0 rgba(0,0,0,.12), 0 7px 8px -5px {backgroundColorActiveAlpha=0.2}"},rippleColor:{type:String,default:"rgba(255,255,255,0.4)"},displayType:{type:String,default:"block"},paddingStyle:{type:Object,default:()=>({v:3,h:15})},shiftLeft:{type:Number,default:0},shiftRight:{type:Number,default:0},active:{type:Boolean,default:!1},close:{type:Boolean,default:!1},cursorPointer:{type:Boolean,default:!0},loading:{type:Boolean,default:!1},loadingColor:{type:String,default:"grey darken-2"},promiseUnlock:{type:Boolean,default:!1},role:{type:String,default:"button"},editable:{type:Boolean,default:!0},disabledColor:{type:String,default:"rgba(255,255,255,0.5)"}},data:function(){return{mdiCloseCircle:"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z",activeTrans:!1,hoverTrans:!1,loadingTrans:!1,progTrans:null}},mounted:function(){},computed:{changeActive:function(){return this.activeTrans=this.active,""},changeProg:function(){return this.progTrans=this.prog,""},changeLoading:function(){return this.loadingTrans=this.loading,""},useDisplayType:function(){return"line"===this.displayType?"display:block;":"display:inline-block;"},usePadding:function(){let n=this;return`padding:${Or(n.paddingStyle,{ext:{left:n.shiftLeft,right:n.shiftRight}})};`},effIconColor:function(){return Br(this.iconColor)},effIconColorHover:function(){return Br(this.iconColorHover)},effIconColorActive:function(){return Br(this.iconColorActive)},hasIcon:function(){return""!==this.icon},hasText:function(){return""!==this.text},useIconColor:function(){let n,e=this;return e.loadingTrans||e.isProging?e.effIconColor:(n=e.activeTrans?e.effIconColorActive:e.hoverTrans?e.effIconColorHover:e.effIconColor,e.editable||(n=e.activeTrans?e.effIconColorActive:e.effIconColor),n)},effDisabledColor:function(){return Br(this.disabledColor)},effProgColor:function(){return Br(this.progColor)},effProgBackgroundColor:function(){return Br(this.progBackgroundColor)},effTextColor:function(){return Br(this.textColor)},effTextColorHover:function(){return Br(this.textColorHover)},effTextColorActive:function(){return Br(this.textColorActive)},useTextColor:function(){let n,e=this;return e.loadingTrans||e.isProging?e.effTextColor:(n=e.activeTrans?e.effTextColorActive:e.hoverTrans?e.effTextColorHover:e.effTextColor,e.editable||(n=e.activeTrans?e.effTextColorActive:e.effTextColor),n)},useTextFontSize:function(){let n=this.textFontSize;return n=Pr(n,";",""),`font-size:${n};`},effBorderColor:function(){return Br(this.borderColor)},effBorderColorHover:function(){return Br(this.borderColorHover)},effBorderColorActive:function(){return Br(this.borderColorActive)},useBorderColor:function(){let n,e=this;return(e.loadingTrans||e.isProging)&&(n=e.effBorderColor),n=e.activeTrans?e.effBorderColorActive:e.hoverTrans?e.effBorderColorHover:e.effBorderColor,e.editable||(n=e.activeTrans?e.effBorderColorActive:e.effBorderColor),Kl(lt(e.useBorderUsed,(e,t)=>`border-${t}-color:${e?n:"transparent"};`)," ")},useBorderUsed:function(){let n=this,e=!0,t=!0,o=!0,r=!0;return Rr(an(n,"borderUsed.left"))&&(e=an(n,"borderUsed.left")),Rr(an(n,"borderUsed.right"))&&(t=an(n,"borderUsed.right")),Rr(an(n,"borderUsed.top"))&&(o=an(n,"borderUsed.top")),Rr(an(n,"borderUsed.bottom"))&&(r=an(n,"borderUsed.bottom")),{left:e,right:t,top:o,bottom:r}},useBorderWidth:function(){return`border-width:${Or(this.borderWidth)};`},useBorderRadius:function(){let n=this,e=0,t=0,o=0,r=0;return!0===an(n,"borderRadiusStyle.left")&&(e=n.borderRadius,o=n.borderRadius),!0===an(n,"borderRadiusStyle.right")&&(t=n.borderRadius,r=n.borderRadius),!0===an(n,"borderRadiusStyle.top")&&(e=n.borderRadius,t=n.borderRadius),!0===an(n,"borderRadiusStyle.bottom")&&(o=n.borderRadius,r=n.borderRadius),!0!==an(n,"borderRadiusStyle.topLeft")&&!0!==an(n,"borderRadiusStyle.top-left")||(e=n.borderRadius),!0!==an(n,"borderRadiusStyle.topRight")&&!0!==an(n,"borderRadiusStyle.top-right")||(t=n.borderRadius),!0!==an(n,"borderRadiusStyle.bottomLeft")&&!0!==an(n,"borderRadiusStyle.bottom-left")||(o=n.borderRadius),!0!==an(n,"borderRadiusStyle.bottomRight")&&!0!==an(n,"borderRadiusStyle.bottom-right")||(r=n.borderRadius),`border-top-left-radius:${e}px; border-top-right-radius:${t}px; border-bottom-left-radius:${o}px; border-bottom-right-radius:${r}px;`},effBackgroundColor:function(){return Br(this.backgroundColor)},effBackgroundColorHover:function(){return Br(this.backgroundColorHover)},effBackgroundColorActive:function(){return Br(this.backgroundColorActive)},useBackgroundColor:function(){let n,e=this;return e.loadingTrans||e.isProging?e.effBackgroundColor:(n=e.activeTrans?e.effBackgroundColorActive:e.hoverTrans?e.effBackgroundColorHover:e.effBackgroundColor,e.editable||(n=e.activeTrans?e.effBackgroundColorActive:e.effBackgroundColor),n)},useShadow:function(){let n=this;function e(n,e,t){let o=ce(n=Pr(n,"}","{"),"{");return o=lt(o,n=>{if(n.indexOf(e)>=0){let e=Rs(n,"=")[1];return e=Ut(e)?Xt(e):.2,function(n,e){let t=Br(n),o=Ul.toRgba(t);return o.a=e,Ul.toRgbaString(o)}(t,e)}return n}),Kl(o,"")}return n.activeTrans&&n.shadowActive?ft(n.shadowActiveStyle)?"box-shadow:"+e(n.shadowActiveStyle,"backgroundColorActiveAlpha",n.backgroundColorActive):"":n.shadow&&ft(n.shadowStyle)?"box-shadow:"+e(n.shadowStyle,"backgroundColorAlpha",n.backgroundColor):""},isProging:function(){return Ut(this.useProg)},useProg:function(){let n=this.progTrans;return Ut(n)?(n=Xt(n),n<0||n>100?null:n):null},effLoadingColor:function(){return Br(this.loadingColor)},useRipple:function(){let n=this;if(n.editable&&!n.loadingTrans&&!n.isProging)return{color:n.rippleColor,timeDuration:700}},hasTooltop:function(){return ft(this.tooltip)}},methods:{clickBtn:function(n){let e=this;if(!e.editable)return;if(e.isProging)return;if(e.loadingTrans)return;let t={setProg:n=>{null===n||Ut(n)?(Ut(n)&&(n=Xt(n)),e.progTrans=n,e.$nextTick(()=>{e.$emit("update:prog",e.progTrans)}),n>=100&&e.$nextTick(()=>{e.progTrans=null,e.$emit("update:prog",e.progTrans)})):console.log("prog is not number")},setLoading:n=>{Rr(n)?(e.loadingTrans=n,e.$nextTick(()=>{e.$emit("update:loading",e.loadingTrans)})):console.log("loading is not boolean")}};if(e.promiseUnlock){e.loadingTrans=!0,e.$nextTick(()=>{e.$emit("update:loading",e.loadingTrans)});let n=yd();t.pm=n,n.catch().finally(()=>{e.loadingTrans=!1,e.$nextTick(()=>{e.$emit("update:loading",e.loadingTrans)})})}e.$nextTick(()=>{e.$emit("click",t)})},clickClose:function(n){let e=this;zd(n),e.editable&&e.$nextTick(()=>{e.$emit("click-close")})}}};const $d=Nd;var Wd=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:n.useDisplayType+" vertical-align:middle; outline:none; user-select:none;",attrs:{role:n.editable?n.role:"",changeActive:n.changeActive,changeProg:n.changeProg,changeLoading:n.changeLoading}},[t("div",{staticStyle:{position:"relative"}},[t("WTooltip",{attrs:{displayType:"line",isolated:!0,borderRadius:n.tooltipBorderRadius,paddingStyle:n.tooltipPaddingStyle,textFontSize:n.tooltipTextFontSize,textColor:n.tooltipTextColor,backgroundColor:n.tooltipBackgroundColor,editable:n.hasTooltop},scopedSlots:n._u([{key:"trigger",fn:function(){return[t("div",{directives:[{name:"domripple",rawName:"v-domripple",value:n.useRipple,expression:"useRipple"}],style:"transition:all 0.3s; "+n.useBorderRadius+" background:"+n.useBackgroundColor+"; "+(n.editable&&n.cursorPointer?"cursor:pointer;":"")+" "+n.useShadow+"; outline:none; user-select:none; overflow:hidden;",attrs:{tabindex:"0"},on:{mouseenter:function(e){n.hoverTrans=!0,n.$emit("mouseenter",e)},mouseleave:function(e){n.hoverTrans=!1,n.$emit("mouseleave",e)},keyup:function(e){return!e.type.indexOf("key")&&n._k(e.keyCode,"enter",13,e.key,"Enter")?null:n.clickBtn(e)},click:function(e){return n.clickBtn(e)}}},[t("div",{style:"transition:all 0.3s; "+n.usePadding+" "+n.useBorderRadius+" "+n.useBorderWidth+" "+n.useBorderColor+" border-style:solid; outline:none; user-select:none;",attrs:{tabindex:"1"}},[t("div",{style:"display:flex; align-items:center; "+("line"===n.displayType?"justify-content:center;":"")},[t("div",[n._t("default",function(){return[t("div",{staticStyle:{display:"flex","align-items":"center","white-space":"nowrap"}},[n.hasIcon?t("WIcon",{style:"margin-left:-6px; margin-right:"+(n.hasText?5:-6)+"px;",attrs:{icon:n.icon,color:n.useIconColor,colorHover:n.useIconColor,size:n.iconSize}}):n._e(),n._v(" "),n.hasText?t("div",{style:"transition:all 0.3s; text-transform:none; color:"+n.useTextColor+"; "+n.useTextFontSize+" "+(n.hasIcon?"min-height:"+n.iconSize+"px":"")+"; display:flex; align-items:center;"},[n._v("\n "+n._s(n.text)+"\n ")]):n._e()],1)]})],2),n._v(" "),n.close?t("div",{style:"margin:0px -9px 0px 5px; display:inline-block; outline:none; user-select:none;",attrs:{tabindex:"2"},on:{keyup:function(e){return!e.type.indexOf("key")&&n._k(e.keyCode,"enter",13,e.key,"Enter")?null:n.clickClose(e)},click:function(e){return n.clickClose(e)}}},[t("WIcon",{attrs:{icon:n.mdiCloseCircle,color:n.useIconColor,colorHover:n.useIconColor,size:n.iconSize}})],1):n._e()])])])]},proxy:!0},{key:"content",fn:function(){return[n._v("\n "+n._s(n.tooltip)+"\n ")]},proxy:!0}],null,!0)}),n._v(" "),n.isProging?t("div",{staticStyle:{position:"absolute",left:"0",right:"0",top:"0",bottom:"0"}},[t("div",{style:n.useBorderRadius+" overflow:hidden; width:100%; height:100%;"},[t("div",{style:"background:"+n.effProgBackgroundColor+"; height:100%;"},[t("div",{style:"background:"+n.effProgColor+"; width:"+n.useProg+"%; height:100%;"})])])]):n._e(),n._v(" "),!n.editable||n.loadingTrans?t("div",{staticStyle:{position:"absolute",left:"0",right:"0",top:"0",bottom:"0"}},[t("div",{style:n.useBorderRadius+" overflow:hidden; width:100%; height:100%;"},[t("div",{style:"background:"+n.effDisabledColor+"; height:100%;"})])]):n._e(),n._v(" "),!n.isProging&&n.loadingTrans?t("div",{staticStyle:{position:"absolute",left:"0",right:"0",top:"0",bottom:"0"}},[t("div",{staticStyle:{display:"flex","align-items":"center","justify-content":"center",height:"100%"}},[t("WIconLoading",{attrs:{name:"cir-rotate",color:n.effLoadingColor,size:n.iconSize}})],1)]):n._e()],1)])};Wd._withStripped=!0;const Md=Xr({render:Wd,staticRenderFns:[]},function(n){n&&n("data-v-018efb2c_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WButtonChip.vue"},media:void 0})},$d,"data-v-018efb2c",false,void 0,!1,Zr,void 0,void 0);const Ld={components:{WButtonChip:Md},props:{multiCheck:{type:Boolean,default:!0},items:{type:Array,default:()=>[]},value:{type:[Array,String,Object],default:null},keyText:{type:String,default:"text"},keyIcon:{type:String,default:"icon"},keyTooltip:{type:String,default:"tooltip"},iconColor:{type:String,default:"black"},iconColorHover:{type:String,default:"grey darken-3"},iconColorActive:{type:String,default:"white"},iconSize:{type:Number,default:22},textColor:{type:String,default:"black"},textColorHover:{type:String,default:"grey darken-3"},textColorActive:{type:String,default:"white"},textFontSize:{type:String,default:"0.85rem"},borderWidth:{type:Object,default:()=>({top:1,bottom:1,left:1,right:1})},borderRadius:{type:Number,default:30},borderRadiusStyle:{type:Object,default:()=>({left:!0,right:!0})},borderColor:{type:String,default:"transparent"},borderColorHover:{type:String,default:"transparent"},borderColorActive:{type:String,default:"transparent"},backgroundColor:{type:String,default:"transparent"},backgroundColorHover:{type:String,default:"rgba(200,200,200,0.25)"},backgroundColorActive:{type:String,default:"orange"},tooltipBorderRadius:{type:Number,default:4},tooltipPaddingStyle:{type:Object,default:()=>({v:5,h:8})},tooltipTextFontSize:{type:String,default:"0.85rem"},tooltipTextColor:{type:String,default:"white"},tooltipBackgroundColor:{type:String,default:"rgba(60,60,60,0.75)"},marginStyle:{type:Object,default:()=>({top:10,bottom:10,left:0,right:10})},shadow:{type:Boolean,default:!1},shadowStyle:{type:String,default:"0 12px 20px -10px {backgroundColorAlpha=0.28}, 0 4px 20px 0 rgba(0,0,0,.12), 0 7px 8px -5px {backgroundColorAlpha=0.2}"},shadowActive:{type:Boolean,default:!0},shadowActiveStyle:{type:String,default:"0 12px 20px -10px {backgroundColorActiveAlpha=0.28}, 0 4px 20px 0 rgba(0,0,0,.12), 0 7px 8px -5px {backgroundColorActiveAlpha=0.2}"},paddingStyle:{type:Object,default:()=>({v:3,h:15})},shiftLeft:{type:Number,default:0},shiftRight:{type:Number,default:0},group:{type:Boolean,default:!1},groupBorderRadiusStyle:{type:Object,default:()=>({left:!0,right:!0})},groupShift:{type:Number,default:5},close:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},loadingColor:{type:String,default:"black"},editable:{type:Boolean,default:!0}},data:function(){return{get:an,itemsTrans:[],borderUsed:{top:!0,bottom:!0,left:!0,right:!0}}},mounted:function(){},computed:{changeItems:function(){let n=this;let e=Mo(n.items),t=lt(e,e=>{let t=function(e){let t;return t=n.multiCheck?Ed(n.value,e):It(e,n.value),t}(e);return{active:t,hover:!1,borderColor:n.borderColor,borderColorHover:n.borderColorHover,borderColorActive:n.borderColorActive}}),o=lt(e,(o,r)=>{let i={data:o},a=t[r];i.ia=a,i.active=a.active,i.hover=!1;let s=null;r>0&&(s=t[r-1]);let l=null;r<e.length-1&&(l=t[r+1]);let d={};n.group&&(0===r&&(!0===an(n,"groupBorderRadiusStyle.left")&&(d.left=!0),!0!==an(n,"groupBorderRadiusStyle.topLeft")&&!0!==an(n,"groupBorderRadiusStyle.top-left")||(d.topLeft=!0),!0!==an(n,"groupBorderRadiusStyle.bottomLeft")&&!0!==an(n,"groupBorderRadiusStyle.bottom-left")||(d.bottomLeft=!0),!0===an(n,"groupBorderRadiusStyle.top")&&(d.topLeft=!0),!0===an(n,"groupBorderRadiusStyle.bottom")&&(d.bottomLeft=!0)),r===e.length-1&&(!0===an(n,"groupBorderRadiusStyle.right")&&(d.right=!0),!0!==an(n,"groupBorderRadiusStyle.topRight")&&!0!==an(n,"groupBorderRadiusStyle.top-right")||(d.topRight=!0),!0!==an(n,"groupBorderRadiusStyle.bottomRight")&&!0!==an(n,"groupBorderRadiusStyle.bottom-right")||(d.bottomRight=!0),!0===an(n,"groupBorderRadiusStyle.top")&&(d.topRight=!0),!0===an(n,"groupBorderRadiusStyle.bottom")&&(d.bottomRight=!0))),i.spcBorderRadiusStyle=d;let u={};n.group&&(u={top:n.borderWidth.top,bottom:n.borderWidth.bottom,left:1,right:1},0===r&&(u.left=n.borderWidth.left),r===e.length-1&&(u.right=n.borderWidth.right)),i.spcBorderWidth=u;let c={};n.group&&(c=n.getSpcBorderUsed(r,!1,s,a,l)),i.spcBorderUsed=c,i.spcBorderUsedBackup=Mo(c);let p=0,f=0;return n.group&&(0===r?p=n.groupShift:r===e.length-1&&(f=n.groupShift)),i.spcShiftLeft=p,i.spcShiftRight=f,i});return n.itemsTrans=o,""},useMarginStyle:function(){return`margin:${Or(this.marginStyle,{parse:!this.group})};`}},methods:{getSpcBorderUsed:function(n,e,t,o,r){let i={top:!0,bottom:!0,left:!0,right:!0};if(t){let n=null;n=t.hover?t.borderColorHover:t.borderColor,n=t.active?t.borderColorActive:n;let e=null;e=o.hover?o.borderColorHover:o.borderColor,e=o.active?o.borderColorActive:e;let r=!1;n===e&&(r=!0);let a=!1;t.active&&!o.active&&(a=!0);let s=!1;o.hover&&(s=!0);let l=!1;s||(l=a),l=l||r,i.left=!l}if(r){let n=!1;r.active&&!o.active&&(n=!0);let e=!1;o.hover&&(e=!0);let t=!1;e||(t=n),i.right=!t}return i},mouseenter:function(n,e){let t=this;Yn(t.itemsTrans,(n,o)=>{t.itemsTrans[o].ia.hover=o===e}),Yn(t.itemsTrans,(n,o)=>{let r=an(t,`itemsTrans[${o}].ia`,null),i=an(t,`itemsTrans[${o-1}].ia`,null),a=an(t,`itemsTrans[${o+1}].ia`,null),s=t.getSpcBorderUsed(o,o===e,i,r,a);t.itemsTrans[o].spcBorderUsed=s})},mouseleave:function(n,e){let t=this;Yn(t.itemsTrans,(n,e)=>{t.itemsTrans[e].spcBorderUsed=Mo(t.itemsTrans[e].spcBorderUsedBackup)})},toggleState:function(n){let e=this;if(!1!==e.editable)if(e.multiCheck){let t=Mo(e.value);if(n.active){let e=[];Yn(t,t=>{It(t,n.data)||e.push(t)}),t=e}else t.push(n.data);e.$nextTick(()=>{e.$emit("input",t),e.$emit("click",n.data,""+(n.active?"hide":"show"))})}else e.$nextTick(()=>{e.$emit("input",n.data),e.$emit("click",n.data)})}}};var Dd=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{attrs:{changeItems:n.changeItems}},[n._l(n.itemsTrans,function(e,o){return[t("WButtonChip",{key:o,style:""+n.useMarginStyle,attrs:{text:n.get(e,"data."+n.keyText)||n.get(e,"data"),tooltip:n.get(e,"data."+n.keyTooltip),icon:n.get(e,"data."+n.keyIcon),iconColor:n.iconColor,iconColorHover:n.iconColorHover,iconColorActive:n.iconColorActive,iconSize:n.iconSize,textColor:n.textColor,textColorHover:n.textColorHover,textColorActive:n.textColorActive,textFontSize:n.textFontSize,borderUsed:n.group?e.spcBorderUsed:n.borderUsed,borderWidth:n.group?e.spcBorderWidth:n.borderWidth,borderRadius:n.borderRadius,borderRadiusStyle:n.group?e.spcBorderRadiusStyle:n.borderRadiusStyle,borderColor:n.borderColor,borderColorHover:n.borderColorHover,borderColorActive:n.borderColorActive,backgroundColor:n.backgroundColor,backgroundColorHover:n.backgroundColorHover,backgroundColorActive:n.backgroundColorActive,tooltipBorderRadius:n.tooltipBorderRadius,tooltipPaddingStyle:n.tooltipPaddingStyle,tooltipTextFontSize:n.tooltipTextFontSize,tooltipTextColor:n.tooltipTextColor,tooltipBackgroundColor:n.tooltipBackgroundColor,shadow:n.shadow,shadowStyle:n.shadowStyle,shadowActive:n.shadowActive,shadowActiveStyle:n.shadowActiveStyle,paddingStyle:n.paddingStyle,shiftLeft:n.shiftLeft+e.spcShiftLeft,shiftRight:n.shiftRight+e.spcShiftRight,_close:"close",loading:n.loading,loadingColor:n.loadingColor,editable:n.editable,disabledColor:"rgba(255,255,255,0.4)",active:e.active},on:{click:function(t){return n.toggleState(e)},mouseenter:function(t){return n.mouseenter(e,o)},mouseleave:function(t){return n.mouseleave(e,o)}}},[n._t("default",null,{item:e,kitem:o})],2)]})],2)};Dd._withStripped=!0;const Rd={components:{WGroupChipCheck:Xr({render:Dd,staticRenderFns:[]},function(n){n&&n("data-v-9f5475de_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WGroupChipCheck.vue"},media:void 0})},Ld,"data-v-9f5475de",false,void 0,!1,Zr,void 0,void 0)},props:{items:{type:Array,default:()=>[]},value:{type:[String,Object],default:null},keyText:{type:String,default:"text"},keyIcon:{type:String,default:"icon"},keyTooltip:{type:String,default:"tooltip"},iconColor:{type:String,default:"black"},iconColorHover:{type:String,default:"grey darken-3"},iconColorActive:{type:String,default:"white"},iconSize:{type:Number,default:22},textColor:{type:String,default:"black"},textColorHover:{type:String,default:"grey darken-3"},textColorActive:{type:String,default:"white"},textFontSize:{type:String,default:"0.85rem"},borderWidth:{type:Object,default:()=>({top:1,bottom:1,left:1,right:1})},borderRadius:{type:Number,default:30},borderRadiusStyle:{type:Object,default:()=>({left:!0,right:!0})},borderColor:{type:String,default:"transparent"},borderColorHover:{type:String,default:"transparent"},borderColorActive:{type:String,default:"transparent"},backgroundColor:{type:String,default:"transparent"},backgroundColorHover:{type:String,default:"rgba(200,200,200,0.25)"},backgroundColorActive:{type:String,default:"orange"},tooltipBorderRadius:{type:Number,default:4},tooltipPaddingStyle:{type:Object,default:()=>({v:5,h:8})},tooltipTextFontSize:{type:String,default:"0.85rem"},tooltipTextColor:{type:String,default:"white"},tooltipBackgroundColor:{type:String,default:"rgba(60,60,60,0.75)"},marginStyle:{type:Object,default:()=>({top:10,bottom:10,left:0,right:10})},shadow:{type:Boolean,default:!1},shadowStyle:{type:String,default:"0 12px 20px -10px {backgroundColorAlpha=0.28}, 0 4px 20px 0 rgba(0,0,0,.12), 0 7px 8px -5px {backgroundColorAlpha=0.2}"},shadowActive:{type:Boolean,default:!0},shadowActiveStyle:{type:String,default:"0 12px 20px -10px {backgroundColorActiveAlpha=0.28}, 0 4px 20px 0 rgba(0,0,0,.12), 0 7px 8px -5px {backgroundColorActiveAlpha=0.2}"},paddingStyle:{type:Object,default:()=>({v:3,h:15})},shiftLeft:{type:Number,default:0},shiftRight:{type:Number,default:0},group:{type:Boolean,default:!1},groupBorderRadiusStyle:{type:Object,default:()=>({left:!0,right:!0})},groupShift:{type:Number,default:5},close:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},loadingColor:{type:String,default:"black"},editable:{type:Boolean,default:!0}},data:function(){return{}},mounted:function(){},computed:{},methods:{}};var jd=function(){var n=this,e=n.$createElement;return(n._self._c||e)("WGroupChipCheck",n._g(n._b({scopedSlots:n._u([{key:"default",fn:function(e){return[n._t("default",null,{item:e.item,kitem:e.kitem})]}}],null,!0)},"WGroupChipCheck",Object.assign({},n.$props,{multiCheck:!1}),!1),n.$listeners))};jd._withStripped=!0;const Od=Xr({render:jd,staticRenderFns:[]},function(n){n&&n("data-v-0038f68e_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WGroupChipRadio.vue"},media:void 0})},Rd,"data-v-0038f68e",false,void 0,!1,Zr,void 0,void 0);const Vd={components:{},props:{label:{type:String,default:""},labelWidth:{type:Number,default:null},labelHeight:{type:Number,default:null},labelColor:{type:String,default:"#666"},labelFontSize:{type:String,default:"0.8rem"},labelHorizontalAlign:{type:String,default:"left"},labelVerticalAlign:{type:String,default:"center"},labelShiftTop:{type:Number,default:0},space:{type:Number,default:0},seplines:{type:Boolean,default:!1},floatForItemSub:{type:Boolean,default:!0}},data:function(){return{}},computed:{useLabelWidth:function(){let n=this;if(Ut(n.labelWidth)){return{width:`${Xt(n.labelWidth)}px`}}return{}},useLabelHeight:function(){let n=this;if(Ut(n.labelHeight)){return{height:`${Xt(n.labelHeight)}px`}}return{}},useLabelVerticalAlign:function(){let n=this,e="middle";return"top"!==n.labelVerticalAlign&&"bottom"!==n.labelVerticalAlign||(e=n.labelVerticalAlign),e},useLabelColor:function(){return Br(this.labelColor)}},methods:{}};var Yd=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{},[n.seplines?[n._t("label",function(){return[t("div",{style:[n.useLabelWidth,n.useLabelHeight,{color:n.useLabelColor,fontSize:n.labelFontSize,textAlign:n.labelHorizontalAlign,paddingTop:n.labelShiftTop+"px",paddingBottom:n.space+"px"}]},[n._v("\n "+n._s(n.label)+"\n ")])]}),n._v(" "),t("div",{},[n._t("item"),n._v(" "),t("div",{staticStyle:{position:"relative"}},[t("div",{style:n.floatForItemSub?"position:absolute; top:0; left:0;":""},[n._t("item-sub")],2)])],2)]:[t("table",{staticStyle:{width:"100%","border-collapse":"collapse"}},[t("tr",[t("td",{style:[{verticalAlign:n.useLabelVerticalAlign,whiteSpace:"nowrap",color:n.useLabelColor,fontSize:n.labelFontSize,textAlign:n.labelHorizontalAlign}]},[n._t("label",function(){return[t("div",{style:[n.useLabelWidth,n.useLabelHeight,{paddingTop:n.labelShiftTop+"px"}]},[n._v("\n "+n._s(n.label)+":\n ")])]})],2),n._v(" "),t("td",{style:[{paddingRight:n.space+8+"px"}]}),n._v(" "),t("td",{style:[{width:"100%"}]},[n._t("item"),n._v(" "),n.floatForItemSub?t("div",{staticStyle:{position:"relative"}},[t("div",{staticStyle:{position:"absolute",top:"0",left:"0"}},[n._t("item-sub")],2)]):n._e()],2)]),n._v(" "),n.floatForItemSub?n._e():t("tr",[t("td"),n._v(" "),t("td"),n._v(" "),t("td",[n._t("item-sub")],2)])])]],2)};Yd._withStripped=!0;const Ud=Xr({render:Yd,staticRenderFns:[]},function(n){n&&n("data-v-29126b65_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WPanelLabelItem.vue"},media:void 0})},Vd,"data-v-29126b65",false,void 0,!1,Zr,void 0,void 0);const Xd={components:{WIcon:ni,WTooltip:ks},props:{paddingStyle:{type:Object,default:()=>({v:0,h:15})},backgroundColor:{type:String,default:"transparent"},backgroundColorHover:{type:String,default:"transparent"},backgroundColorFocus:{type:String,default:"transparent"},borderWidth:{type:Number,default:1},borderRadius:{type:Number,default:30},borderColor:{type:String,default:"transparent"},borderColorHover:{type:String,default:"transparent"},borderColorFocus:{type:String,default:"transparent"},shadow:{type:Boolean,default:!0},leftIcon:{type:String,default:""},leftIconSize:{type:Number,default:24},leftIconColor:{type:String,default:"deep-orange lighten-2"},leftIconColorHover:{type:String,default:"deep-orange lighten-1"},leftIconColorFocus:{type:String,default:"deep-orange lighten-1"},leftIconTooltip:{type:String,default:""},rightIcon:{type:String,default:""},rightIconSize:{type:Number,default:24},rightIconColor:{type:String,default:"deep-orange lighten-2"},rightIconColorHover:{type:String,default:"deep-orange lighten-2"},rightIconColorFocus:{type:String,default:"deep-orange lighten-1"},rightIconTooltip:{type:String,default:""},iconShiftOuter:{type:Number,default:-10},iconShiftInner:{type:Number,default:5},tooltipBorderRadius:{type:Number,default:4},tooltipPaddingStyle:{type:Object,default:()=>({v:5,h:8})},tooltipTextFontSize:{type:String,default:"0.85rem"},tooltipTextColor:{type:String,default:"white"},tooltipBackgroundColor:{type:String,default:"rgba(60,60,60,0.75)"},verticalAlign:{type:String,default:"center"},editable:{type:Boolean,default:!0},hovered:{type:Boolean,default:!1},focused:{type:Boolean,default:!1}},data:function(){return{hoveredTrans:!1,focusedTrans:!1}},computed:{changeParam:function(){let n=this;return n.hoveredTrans=n.hovered,n.focusedTrans=n.focused,""},useBackgroundColor:function(){let n=this,e={};return n.focusedTrans?(e["background-color"]=Br(n.backgroundColorFocus),e):n.hoveredTrans?(e["background-color"]=Br(n.backgroundColorHover),e):(e["background-color"]=Br(n.backgroundColor),e)},useBorder:function(){let n=this,e={};return n.focusedTrans?(e.border=`${n.borderWidth}px solid ${Br(n.borderColorFocus)}`,e):n.hoveredTrans?(e.border=`${n.borderWidth}px solid ${Br(n.borderColorHover)}`,e):(e.border=`${n.borderWidth}px solid ${Br(n.borderColor)}`,e)},useShadow:function(){let n={};return this.shadow&&(n["box-shadow"]="0 3px 1px -2px rgba(0,0,0,.2), 0 2px 2px 0 rgba(0,0,0,.14), 0 1px 5px 0 rgba(0,0,0,.12)"),n},useLeftIconColor:function(){let n=this;return n.hoveredTrans?Br(n.leftIconColorHover):n.focusedTrans?Br(n.leftIconColorFocus):Br(n.leftIconColor)},useRightIconColor:function(){let n=this;return n.hoveredTrans?Br(n.rightIconColorHover):n.focusedTrans?Br(n.rightIconColorFocus):Br(n.rightIconColor)},useTitleColor:function(){let n={};return n.color=Br(this.titleColor),n},usePadding:function(){return{padding:Or(this.paddingStyle,{semicolon:!1})}},hasLeftIconTooltop:function(){return ft(this.leftIconTooltip)},hasRightIconTooltop:function(){return ft(this.rightIconTooltip)},useVerticalAlign:function(){let n=this,e={};return"center"===n.verticalAlign?e["align-items"]="center":"top"===n.verticalAlign?e["align-items"]="flex-start":"bottom"===n.verticalAlign&&(e["align-items"]="flex-end"),e}},methods:{clickIcon:function(n){let e=this;!1!==e.editable&&e.$nextTick(()=>{e.$emit("click-"+n)})},mouseenter:function(){let n=this;n.hoveredTrans=!0,n.$nextTick(()=>{n.$emit("update:hovered",!0)})},mouseleave:function(){let n=this;n.hoveredTrans=!1,n.$nextTick(()=>{n.$emit("update:hovered",!1)})}}};var Gd=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{attrs:{changeParam:n.changeParam}},[t("div",{style:[{transition:"all 0.3s",display:"flex","justify-content":"flex-start","border-radius":n.borderRadius+"px",opacity:n.editable?1:.6},n.usePadding,n.useBackgroundColor,n.useBorder,n.useShadow,n.useVerticalAlign],on:{mouseenter:n.mouseenter,mouseleave:n.mouseleave}},[n.leftIcon?t("div",{style:"margin-left:"+n.iconShiftOuter+"px; margin-right:"+n.iconShiftInner+"px; user-select:none; cursor:pointer; outline:none;",attrs:{tabindex:"0"},on:{keyup:function(e){return!e.type.indexOf("key")&&n._k(e.keyCode,"enter",13,e.key,"Enter")?null:n.clickIcon("left")},click:function(e){return n.clickIcon("left")}}},[t("WTooltip",{attrs:{displayType:"line",isolated:!0,borderRadius:n.tooltipBorderRadius,paddingStyle:n.tooltipPaddingStyle,textFontSize:n.tooltipTextFontSize,textColor:n.tooltipTextColor,backgroundColor:n.tooltipBackgroundColor,editable:n.hasLeftIconTooltop},scopedSlots:n._u([{key:"trigger",fn:function(){return[t("div",{attrs:{ShellEllipse:"leftIcon"}},[t("WIcon",{attrs:{icon:n.leftIcon,size:n.leftIconSize,color:n.useLeftIconColor,colorHover:n.useLeftIconColor}})],1)]},proxy:!0},{key:"content",fn:function(){return[n._v("\n "+n._s(n.leftIconTooltip)+"\n ")]},proxy:!0}],null,!1,3849071383)})],1):n._e(),n._v(" "),t("div",{style:[{width:"100%"}]},[n._t("default")],2),n._v(" "),n.rightIcon?t("div",{style:"margin-right:"+n.iconShiftOuter+"px; margin-left:"+n.iconShiftInner+"px; user-select:none; cursor:pointer; outline:none;",attrs:{tabindex:"0"},on:{keyup:function(e){return!e.type.indexOf("key")&&n._k(e.keyCode,"enter",13,e.key,"Enter")?null:n.clickIcon("right")},click:function(e){return n.clickIcon("right")}}},[t("WTooltip",{attrs:{displayType:"line",isolated:!0,borderRadius:n.tooltipBorderRadius,paddingStyle:n.tooltipPaddingStyle,textFontSize:n.tooltipTextFontSize,textColor:n.tooltipTextColor,backgroundColor:n.tooltipBackgroundColor,editable:n.hasRightIconTooltop},scopedSlots:n._u([{key:"trigger",fn:function(){return[t("div",{attrs:{ShellEllipse:"rightIcon"}},[t("WIcon",{attrs:{icon:n.rightIcon,size:n.rightIconSize,color:n.useRightIconColor,colorHover:n.useRightIconColor}})],1)]},proxy:!0},{key:"content",fn:function(){return[n._v("\n "+n._s(n.rightIconTooltip)+"\n ")]},proxy:!0}],null,!1,1563142679)})],1):n._e()])])};Gd._withStripped=!0;const Zd=Xr({render:Gd,staticRenderFns:[]},function(n){n&&n("data-v-aaf69256_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WShellEllipse.vue"},media:void 0})},Xd,"data-v-aaf69256",false,void 0,!1,Zr,void 0,void 0);const qd={components:{},props:{borderColor:{type:String,default:"grey lighten-1"},borderColorHover:{type:String,default:"grey"},borderColorFocus:{type:String,default:"blue darken-2"},borderWidth:{type:Number,default:1},borderWidthHover:{type:Number,default:1},borderWidthFocus:{type:Number,default:2},focused:{type:Boolean,default:!1}},data:function(){return{focusedTrans:!1,hoverTrans:!1}},computed:{changeParam:function(){return this.focusedTrans=this.focused,""},useBorderWidth:function(){let n=this;return n.hoverTrans?n.borderWidthHover:n.borderWidth},useBorderColor:function(){let n=this;return n.hoverTrans?Br(n.borderColorHover):Br(n.borderColor)},useBorderColorFocus:function(){return Br(this.borderColorFocus)}},methods:{}};var Jd=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{attrs:{changeParam:n.changeParam}},[t("div",{staticStyle:{position:"relative"},on:{mouseenter:function(e){n.hoverTrans=!0},mouseleave:function(e){n.hoverTrans=!1}}},[n._t("default"),n._v(" "),t("div",{style:"position:absolute; left:0px; right:0px; bottom:0px; z-index:1; border-bottom:"+n.useBorderWidth+"px solid "+n.useBorderColor+";"}),n._v(" "),t("transition",{attrs:{name:"fade"}},[n.focused?t("div",{style:"position:absolute; left:0px; right:0px; bottom:0px; z-index:2; border-bottom:"+n.borderWidthFocus+"px solid "+n.useBorderColorFocus+";"}):n._e()])],2)])};Jd._withStripped=!0;const Qd=Xr({render:Jd,staticRenderFns:[]},function(n){n&&n("data-v-78955cc0_0",{source:"\n.fade-enter-active[data-v-78955cc0], .fade-leave-active[data-v-78955cc0] {\r\n transition: all 0.3s;\n}\n.fade-enter[data-v-78955cc0], .fade-leave-to[data-v-78955cc0] {\r\n transform: scaleX(0);\n}\n.fade-enter-to[data-v-78955cc0], .fade-leave[data-v-78955cc0] {\r\n transform: scaleX(100%);\n}\r\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\node_modules\\w-component-vue\\src\\components\\WShellBottomLine.vue"],names:[],mappings:";AAiIA;IACA,oBAAA;AACA;AACA;IACA,oBAAA;AACA;AACA;IACA,uBAAA;AACA",file:"WShellBottomLine.vue",sourcesContent:["<template>\r\n <div :changeParam=\"changeParam\">\r\n\r\n <div\r\n style=\"position:relative;\"\r\n @mouseenter=\"hoverTrans=true\"\r\n @mouseleave=\"hoverTrans=false\"\r\n >\r\n\r\n <slot></slot>\r\n\r\n <div\r\n :style=\"`position:absolute; left:0px; right:0px; bottom:0px; z-index:1; border-bottom:${useBorderWidth}px solid ${useBorderColor};`\"\r\n ></div>\r\n\r\n <transition name=\"fade\">\r\n <div\r\n :style=\"`position:absolute; left:0px; right:0px; bottom:0px; z-index:2; border-bottom:${borderWidthFocus}px solid ${useBorderColorFocus};`\"\r\n v-if=\"focused\"\r\n ></div>\r\n </transition>\r\n\r\n </div>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport convertColor from '../js/convertColor.mjs'\r\n\r\n\r\n/**\r\n * @vue-prop {Number} [borderWidth=1] 輸入線寬度數字,單位為px,預設1\r\n * @vue-prop {String} [borderColor='grey lighten-1'] 輸入線顏色字串,預設'grey lighten-1'\r\n * @vue-prop {String} [borderColorHover='grey'] 輸入滑鼠移入時線顏色字串,預設'grey'\r\n * @vue-prop {String} [borderColorFocus='blue darken-2'] 輸入取得焦點時線顏色字串,預設'blue darken-2'\r\n * @vue-prop {Number} [borderWidthHover=1] 輸入滑鼠移入時線寬度數字,單位為px,預設1\r\n * @vue-prop {Number} [borderWidthFocus=2] 輸入取得焦點時線寬度數字,單位為px,預設2\r\n * @vue-prop {Boolean} [focused=false] 輸入是否為取得焦點狀態,預設false\r\n */\r\nexport default {\r\n components: {\r\n },\r\n props: {\r\n borderColor: {\r\n type: String,\r\n default: 'grey lighten-1',\r\n },\r\n borderColorHover: {\r\n type: String,\r\n default: 'grey',\r\n },\r\n borderColorFocus: {\r\n type: String,\r\n default: 'blue darken-2',\r\n },\r\n borderWidth: {\r\n type: Number,\r\n default: 1,\r\n },\r\n borderWidthHover: {\r\n type: Number,\r\n default: 1,\r\n },\r\n borderWidthFocus: {\r\n type: Number,\r\n default: 2,\r\n },\r\n focused: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n data: function() {\r\n return {\r\n focusedTrans: false,\r\n hoverTrans: false,\r\n }\r\n },\r\n computed: {\r\n\r\n changeParam: function () {\r\n //console.log('computed changeParam')\r\n\r\n let vo = this\r\n\r\n //focusedTrans\r\n vo.focusedTrans = vo.focused\r\n\r\n return ''\r\n },\r\n\r\n useBorderWidth: function() {\r\n //console.log('computed useBorderWidth')\r\n\r\n let vo = this\r\n\r\n if (vo.hoverTrans) {\r\n return vo.borderWidthHover\r\n }\r\n return vo.borderWidth\r\n },\r\n\r\n useBorderColor: function() {\r\n //console.log('computed useBorderColor')\r\n\r\n let vo = this\r\n\r\n if (vo.hoverTrans) {\r\n return convertColor(vo.borderColorHover)\r\n }\r\n return convertColor(vo.borderColor)\r\n },\r\n\r\n useBorderColorFocus: function() {\r\n //console.log('computed useBorderColorFocus')\r\n\r\n let vo = this\r\n\r\n return convertColor(vo.borderColorFocus)\r\n },\r\n\r\n },\r\n methods: {\r\n },\r\n}\r\n<\/script>\r\n\r\n<style scoped>\r\n.fade-enter-active, .fade-leave-active {\r\n transition: all 0.3s;\r\n}\r\n.fade-enter, .fade-leave-to {\r\n transform: scaleX(0);\r\n}\r\n.fade-enter-to, .fade-leave {\r\n transform: scaleX(100%);\r\n}\r\n</style>\r\n"]},media:void 0})},qd,"data-v-78955cc0",false,void 0,!1,Zr,void 0,void 0);function Kd(n,e,t={}){let o=!1,r="";if("isstr"===e)pt(n)||(o=!0,r="需要為字串",n="");else if("isnum"===e)Ut(n)||(o=!0,r="需要為數字",n=0);else if("isp0num"===e)Td(n)||(o=!0,r="需要為含0的正浮點數",n=0);else if("isn0num"===e)Ut(i=n)&&Xt(i)<=0||(o=!0,r="需要為含0的負浮點數",n=0);else if("isint"===e)Gt(n)||(o=!0,r="需要為整數",n=0);else if("ispint"===e)no(n)||(o=!0,r="需要為不含0正整數",n=0);else if("isp0int"===e)Ms(n)||(o=!0,r="需要為含0正整數",n=0);else if("isnint"===e)(function(n){return!!Gt(n)&&Kt(n)<0})(n)||(o=!0,r="需要為不含0負整數",n=0);else if("isn0int"===e)(function(n){return!!Gt(n)&&Kt(n)<=0})(n)||(o=!0,r="需要為含0負整數",n=0);else if("custom"===e){let e=an(t,"funCustom");if(!Oo(e))throw new Error("invalid opt.funCustom when type='custom'");let i=e(n);if(!Rr(i.err))throw new Error("invalid return.err for type='custom'");if(i.err&&!ft(i.errmsg))throw new Error("invalid return.errmsg when return.err=true for type='custom'");if(!Ut(i.value)&!pt(i.value))throw new Error("invalid return.value for type='custom'");o=i.err,r=i.errmsg,n=i.value}else if(Oo(e)){n=e(n)}else"any"===e?Ut(n)||pt(n)||(o=!0,r="需要為字串或數字",n=""):(o=!0,r="需要指定驗證類型",n=null);var i;return{value:n,err:o,errmsg:r}}const nu={props:{type:{type:String,default:"any"},funVerify:{type:Function,default:null},value:{type:[String,Number],default:""},textFontSize:{type:String,default:"1rem"},textColor:{type:String,default:"black"},textAlign:{type:String,default:"left"},placeholder:{type:String,default:""},height:{type:[Number,String],default:""},password:{type:Boolean,default:!1},editable:{type:Boolean,default:!0},focused:{type:Boolean,default:!1}},data:function(){return{valueTrans:"",errmsg:""}},mounted:function(){},computed:{changeValue:function(){return this.valueTrans=this.value,""},useHeight:function(){let n=this,e="";return Ut(n.height)?e=`height:${n.height}px;`:ft(n.height)&&(e=`height:${n.height}; line-height:${n.height};`),e},useTextFontSize:function(){let n=this.textFontSize;return n=Pr(n,";",""),`font-size:${n};`},useTextColor:function(){return Br(this.textColor)}},methods:{setValue:function(n){this.valueTrans=n},setFocus:function(){this.$refs.inp.focus()},updateFocused:function(n){let e=this;e.focused!==n&&e.$nextTick(()=>{e.$emit("update:focused",n)})},updateValue:function(n){let e=this,t=Kd(e.valueTrans,e.type,{funCustom:e.funVerify});e.valueTrans=t.value,e.errmsg=t.errmsg},trigger:function(n,e){let t=this;t.$nextTick(()=>{t.$emit(n,t.valueTrans,t.errmsg,e)})}}};var eu=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{attrs:{changeValue:n.changeValue}},["checkbox"==(n.password?"password":"text")?t("input",{directives:[{name:"model",rawName:"v-model",value:n.valueTrans,expression:"valueTrans"}],ref:"inp",style:"transition:all 0.3s; display:block; outline:none; width:100%; box-sizing:border-box; border-style:none; background:transparent; color:"+n.useTextColor+"; "+n.useHeight+" text-align:"+n.textAlign+"; "+n.useTextFontSize+" opacity:"+(""!==n.valueTrans||n.focused?1:.6)+";",attrs:{readonly:!n.editable,placeholder:n.placeholder,type:"checkbox"},domProps:{checked:Array.isArray(n.valueTrans)?n._i(n.valueTrans,null)>-1:n.valueTrans},on:{input:function(e){n.updateValue(e),n.trigger("input",e),n.updateFocused(!0)},change:[function(e){var t=n.valueTrans,o=e.target,r=!!o.checked;if(Array.isArray(t)){var i=n._i(t,null);o.checked?i<0&&(n.valueTrans=t.concat([null])):i>-1&&(n.valueTrans=t.slice(0,i).concat(t.slice(i+1)))}else n.valueTrans=r},function(e){n.trigger("change",e)}],focus:function(e){return n.updateFocused(!0)},blur:function(e){n.trigger("blur",e),n.updateFocused(!1)},keyup:function(e){return!e.type.indexOf("key")&&n._k(e.keyCode,"enter",13,e.key,"Enter")?null:function(e){n.trigger("enter",e)}.apply(null,arguments)},select:function(e){n.trigger("select",e)}}}):"radio"==(n.password?"password":"text")?t("input",{directives:[{name:"model",rawName:"v-model",value:n.valueTrans,expression:"valueTrans"}],ref:"inp",style:"transition:all 0.3s; display:block; outline:none; width:100%; box-sizing:border-box; border-style:none; background:transparent; color:"+n.useTextColor+"; "+n.useHeight+" text-align:"+n.textAlign+"; "+n.useTextFontSize+" opacity:"+(""!==n.valueTrans||n.focused?1:.6)+";",attrs:{readonly:!n.editable,placeholder:n.placeholder,type:"radio"},domProps:{checked:n._q(n.valueTrans,null)},on:{input:function(e){n.updateValue(e),n.trigger("input",e),n.updateFocused(!0)},change:[function(e){n.valueTrans=null},function(e){n.trigger("change",e)}],focus:function(e){return n.updateFocused(!0)},blur:function(e){n.trigger("blur",e),n.updateFocused(!1)},keyup:function(e){return!e.type.indexOf("key")&&n._k(e.keyCode,"enter",13,e.key,"Enter")?null:function(e){n.trigger("enter",e)}.apply(null,arguments)},select:function(e){n.trigger("select",e)}}}):t("input",{directives:[{name:"model",rawName:"v-model",value:n.valueTrans,expression:"valueTrans"}],ref:"inp",style:"transition:all 0.3s; display:block; outline:none; width:100%; box-sizing:border-box; border-style:none; background:transparent; color:"+n.useTextColor+"; "+n.useHeight+" text-align:"+n.textAlign+"; "+n.useTextFontSize+" opacity:"+(""!==n.valueTrans||n.focused?1:.6)+";",attrs:{readonly:!n.editable,placeholder:n.placeholder,type:n.password?"password":"text"},domProps:{value:n.valueTrans},on:{input:[function(e){e.target.composing||(n.valueTrans=e.target.value)},function(e){n.updateValue(e),n.trigger("input",e),n.updateFocused(!0)}],change:function(e){n.trigger("change",e)},focus:function(e){return n.updateFocused(!0)},blur:function(e){n.trigger("blur",e),n.updateFocused(!1)},keyup:function(e){return!e.type.indexOf("key")&&n._k(e.keyCode,"enter",13,e.key,"Enter")?null:function(e){n.trigger("enter",e)}.apply(null,arguments)},select:function(e){n.trigger("select",e)}}})])};eu._withStripped=!0;const tu={components:{WShellEllipse:Zd,WShellBottomLine:Qd,WTextCore:Xr({render:eu,staticRenderFns:[]},function(n){n&&n("data-v-1ca57af2_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WTextCore.vue"},media:void 0})},nu,"data-v-1ca57af2",false,void 0,!1,Zr,void 0,void 0)},props:{paddingStyle:{type:Object,default:()=>({v:0,h:0})},borderRadius:{type:Number,default:30},shadow:{type:Boolean,default:!1},type:{type:String,default:"any"},funVerify:{type:Function,default:null},value:{type:[String,Number]},textFontSize:{type:String,default:"1rem"},textColor:{type:String,default:"black"},textAlign:{type:String,default:"left"},leftIcon:{type:String,default:""},leftIconSize:{type:Number,default:24},leftIconColor:{type:String,default:"blue"},leftIconColorHover:{type:String,default:"blue darken-1"},leftIconColorFocus:{type:String,default:"blue darken-1"},leftIconTooltip:{type:String,default:""},rightIcon:{type:String,default:""},rightIconSize:{type:Number,default:24},rightIconColor:{type:String,default:"blue"},rightIconColorHover:{type:String,default:"blue darken-1"},rightIconColorFocus:{type:String,default:"blue darken-1"},rightIconTooltip:{type:String,default:""},iconShiftOuter:{type:Number,default:0},iconShiftInner:{type:Number,default:5},backgroundColor:{type:String,default:"transparent"},backgroundColorHover:{type:String,default:"transparent"},backgroundColorFocus:{type:String,default:"transparent"},borderColor:{type:String,default:"transparent"},borderColorHover:{type:String,default:"transparent"},borderColorFocus:{type:String,default:"transparent"},bottomLineBorderColor:{type:String,default:"grey lighten-1"},bottomLineBorderColorHover:{type:String,default:"grey"},bottomLineBorderColorFocus:{type:String,default:"blue darken-1"},bottomLineBorderWidth:{type:Number,default:1},bottomLineBorderWidthHover:{type:Number,default:1},bottomLineBorderWidthFocus:{type:Number,default:2},placeholder:{type:String,default:""},height:{type:Number,default:28},password:{type:Boolean,default:!1},editable:{type:Boolean,default:!0},focused:{type:Boolean,default:!1}},data:function(){return{focusedTrans:!1}},mounted:function(){},computed:{changeFocused:function(){return this.focusedTrans=this.focused,""}},methods:{modifyFocused:function(n){let e=this;e.focusedTrans=n,e.$nextTick(()=>{e.$emit("update:focused",n)})}}};var ou=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{attrs:{changeFocused:n.changeFocused}},[t("WShellBottomLine",{attrs:{borderColor:n.bottomLineBorderColor,borderColorHover:n.bottomLineBorderColorHover,borderColorFocus:n.bottomLineBorderColorFocus,borderWidth:n.bottomLineBorderWidth,borderWidthHover:n.bottomLineBorderWidthHover,borderWidthFocus:n.bottomLineBorderWidthFocus,focused:n.focusedTrans}},[t("WShellEllipse",{attrs:{paddingStyle:n.paddingStyle,borderRadius:n.borderRadius,shadow:n.shadow,leftIcon:n.leftIcon,leftIconSize:n.leftIconSize,leftIconColor:n.leftIconColor,leftIconColorHover:n.leftIconColorHover,leftIconColorFocus:n.leftIconColorFocus,leftIconTooltip:n.leftIconTooltip,rightIcon:n.rightIcon,rightIconSize:n.rightIconSize,rightIconColor:n.rightIconColor,rightIconColorHover:n.rightIconColorHover,rightIconColorFocus:n.rightIconColorFocus,rightIconTooltip:n.rightIconTooltip,iconShiftOuter:n.iconShiftOuter,iconShiftInner:n.iconShiftInner,backgroundColor:n.backgroundColor,backgroundColorHover:n.backgroundColorHover,backgroundColorFocus:n.backgroundColorFocus,borderColor:n.borderColor,borderColorHover:n.borderColorHover,borderColorFocus:n.borderColorFocus,editable:n.editable,focused:n.focusedTrans},on:{"click-left":function(e){return n.$emit("click-left")},"click-right":function(e){return n.$emit("click-right")}}},[t("WTextCore",{attrs:{type:n.type,funVerify:n.funVerify,textFontSize:n.textFontSize,textColor:n.textColor,textAlign:n.textAlign,placeholder:n.placeholder,height:n.height,password:n.password,editable:n.editable,value:n.value,focused:n.focusedTrans},on:{"update:focused":n.modifyFocused,select:function(e,t,o){n.$emit("select",e,t,o)},blur:function(e,t,o){n.$emit("blur",e,t,o)},enter:function(e,t,o){n.$emit("enter",e,t,o)},input:function(e,t,o){n.$emit("input",e,t,o)},change:function(e,t,o){n.$emit("change",e,t,o)}}})],1)],1)],1)};ou._withStripped=!0;const ru=Xr({render:ou,staticRenderFns:[]},function(n){n&&n("data-v-4498f151_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WText.vue"},media:void 0})},tu,"data-v-4498f151",false,void 0,!1,Zr,void 0,void 0);
6
+ !function(n,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(n="undefined"!=typeof globalThis?globalThis:n||self).app=e()}(this,function(){"use strict";var n=Array.isArray,e="object"==typeof global&&global&&global.Object===Object&&global,t="object"==typeof self&&self&&self.Object===Object&&self,o=e||t||Function("return this")(),r=o.Symbol,i=Object.prototype,a=i.hasOwnProperty,s=i.toString,l=r?r.toStringTag:void 0;var d=Object.prototype.toString;var u=r?r.toStringTag:void 0;function c(n){return null==n?void 0===n?"[object Undefined]":"[object Null]":u&&u in Object(n)?function(n){var e=a.call(n,l),t=n[l];try{n[l]=void 0;var o=!0}catch(n){}var r=s.call(n);return o&&(e?n[l]=t:delete n[l]),r}(n):function(n){return d.call(n)}(n)}function p(n){return null!=n&&"object"==typeof n}function f(n){return"symbol"==typeof n||p(n)&&"[object Symbol]"==c(n)}var h=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,g=/^\w*$/;function v(e,t){if(n(e))return!1;var o=typeof e;return!("number"!=o&&"symbol"!=o&&"boolean"!=o&&null!=e&&!f(e))||(g.test(e)||!h.test(e)||null!=t&&e in Object(t))}function m(n){var e=typeof n;return null!=n&&("object"==e||"function"==e)}function A(n){if(!m(n))return!1;var e=c(n);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}var b,y=o["__core-js_shared__"],C=(b=/[^.]+$/.exec(y&&y.keys&&y.keys.IE_PROTO||""))?"Symbol(src)_1."+b:"";var x=Function.prototype.toString;function w(n){if(null!=n){try{return x.call(n)}catch(n){}try{return n+""}catch(n){}}return""}var S=/^\[object .+?Constructor\]$/,k=Function.prototype,_=Object.prototype,B=k.toString,P=_.hasOwnProperty,T=RegExp("^"+B.call(P).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function E(n){return!(!m(n)||(e=n,C&&C in e))&&(A(n)?T:S).test(w(n));var e}function z(n,e){var t=function(n,e){return null==n?void 0:n[e]}(n,e);return E(t)?t:void 0}var I=z(Object,"create");var F=Object.prototype.hasOwnProperty;var H=Object.prototype.hasOwnProperty;function N(n){var e=-1,t=null==n?0:n.length;for(this.clear();++e<t;){var o=n[e];this.set(o[0],o[1])}}function W(n,e){return n===e||n!=n&&e!=e}function $(n,e){for(var t=n.length;t--;)if(W(n[t][0],e))return t;return-1}N.prototype.clear=function(){this.__data__=I?I(null):{},this.size=0},N.prototype.delete=function(n){var e=this.has(n)&&delete this.__data__[n];return this.size-=e?1:0,e},N.prototype.get=function(n){var e=this.__data__;if(I){var t=e[n];return"__lodash_hash_undefined__"===t?void 0:t}return F.call(e,n)?e[n]:void 0},N.prototype.has=function(n){var e=this.__data__;return I?void 0!==e[n]:H.call(e,n)},N.prototype.set=function(n,e){var t=this.__data__;return this.size+=this.has(n)?0:1,t[n]=I&&void 0===e?"__lodash_hash_undefined__":e,this};var M=Array.prototype.splice;function L(n){var e=-1,t=null==n?0:n.length;for(this.clear();++e<t;){var o=n[e];this.set(o[0],o[1])}}L.prototype.clear=function(){this.__data__=[],this.size=0},L.prototype.delete=function(n){var e=this.__data__,t=$(e,n);return!(t<0)&&(t==e.length-1?e.pop():M.call(e,t,1),--this.size,!0)},L.prototype.get=function(n){var e=this.__data__,t=$(e,n);return t<0?void 0:e[t][1]},L.prototype.has=function(n){return $(this.__data__,n)>-1},L.prototype.set=function(n,e){var t=this.__data__,o=$(t,n);return o<0?(++this.size,t.push([n,e])):t[o][1]=e,this};var D=z(o,"Map");function R(n,e){var t,o,r=n.__data__;return("string"==(o=typeof(t=e))||"number"==o||"symbol"==o||"boolean"==o?"__proto__"!==t:null===t)?r["string"==typeof e?"string":"hash"]:r.map}function j(n){var e=-1,t=null==n?0:n.length;for(this.clear();++e<t;){var o=n[e];this.set(o[0],o[1])}}j.prototype.clear=function(){this.size=0,this.__data__={hash:new N,map:new(D||L),string:new N}},j.prototype.delete=function(n){var e=R(this,n).delete(n);return this.size-=e?1:0,e},j.prototype.get=function(n){return R(this,n).get(n)},j.prototype.has=function(n){return R(this,n).has(n)},j.prototype.set=function(n,e){var t=R(this,n),o=t.size;return t.set(n,e),this.size+=t.size==o?0:1,this};function O(n,e){if("function"!=typeof n||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var t=function(){var o=arguments,r=e?e.apply(this,o):o[0],i=t.cache;if(i.has(r))return i.get(r);var a=n.apply(this,o);return t.cache=i.set(r,a)||i,a};return t.cache=new(O.Cache||j),t}O.Cache=j;var V,Y,U,X=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,G=/\\(\\)?/g,Z=(V=function(n){var e=[];return 46===n.charCodeAt(0)&&e.push(""),n.replace(X,function(n,t,o,r){e.push(o?r.replace(G,"$1"):t||n)}),e},Y=O(V,function(n){return 500===U.size&&U.clear(),n}),U=Y.cache,Y),q=Z;function J(n,e){for(var t=-1,o=null==n?0:n.length,r=Array(o);++t<o;)r[t]=e(n[t],t,n);return r}var Q=r?r.prototype:void 0,K=Q?Q.toString:void 0;function nn(e){if("string"==typeof e)return e;if(n(e))return J(e,nn)+"";if(f(e))return K?K.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function en(n){return null==n?"":nn(n)}function tn(e,t){return n(e)?e:v(e,t)?[e]:q(en(e))}function on(n){if("string"==typeof n||f(n))return n;var e=n+"";return"0"==e&&1/n==-1/0?"-0":e}function rn(n,e){for(var t=0,o=(e=tn(e,n)).length;null!=n&&t<o;)n=n[on(e[t++])];return t&&t==o?n:void 0}function an(n,e,t){var o=null==n?void 0:rn(n,e);return void 0===o?t:o}function sn(n,e){for(var t=-1,o=null==n?0:n.length;++t<o&&!1!==e(n[t],t,n););return n}var ln,dn=function(n,e,t){for(var o=-1,r=Object(n),i=t(n),a=i.length;a--;){var s=i[ln?a:++o];if(!1===e(r[s],s,r))break}return n},un=dn;function cn(n){return p(n)&&"[object Arguments]"==c(n)}var pn=Object.prototype,fn=pn.hasOwnProperty,hn=pn.propertyIsEnumerable,gn=cn(function(){return arguments}())?cn:function(n){return p(n)&&fn.call(n,"callee")&&!hn.call(n,"callee")},vn=gn;var mn="object"==typeof exports&&exports&&!exports.nodeType&&exports,An=mn&&"object"==typeof module&&module&&!module.nodeType&&module,bn=An&&An.exports===mn?o.Buffer:void 0,yn=(bn?bn.isBuffer:void 0)||function(){return!1},Cn=/^(?:0|[1-9]\d*)$/;function xn(n,e){var t=typeof n;return!!(e=null==e?9007199254740991:e)&&("number"==t||"symbol"!=t&&Cn.test(n))&&n>-1&&n%1==0&&n<e}function wn(n){return"number"==typeof n&&n>-1&&n%1==0&&n<=9007199254740991}var Sn={};function kn(n){return function(e){return n(e)}}Sn["[object Float32Array]"]=Sn["[object Float64Array]"]=Sn["[object Int8Array]"]=Sn["[object Int16Array]"]=Sn["[object Int32Array]"]=Sn["[object Uint8Array]"]=Sn["[object Uint8ClampedArray]"]=Sn["[object Uint16Array]"]=Sn["[object Uint32Array]"]=!0,Sn["[object Arguments]"]=Sn["[object Array]"]=Sn["[object ArrayBuffer]"]=Sn["[object Boolean]"]=Sn["[object DataView]"]=Sn["[object Date]"]=Sn["[object Error]"]=Sn["[object Function]"]=Sn["[object Map]"]=Sn["[object Number]"]=Sn["[object Object]"]=Sn["[object RegExp]"]=Sn["[object Set]"]=Sn["[object String]"]=Sn["[object WeakMap]"]=!1;var _n="object"==typeof exports&&exports&&!exports.nodeType&&exports,Bn=_n&&"object"==typeof module&&module&&!module.nodeType&&module,Pn=Bn&&Bn.exports===_n&&e.process,Tn=function(){try{var n=Bn&&Bn.require&&Bn.require("util").types;return n||Pn&&Pn.binding&&Pn.binding("util")}catch(n){}}(),En=Tn&&Tn.isTypedArray,zn=En?kn(En):function(n){return p(n)&&wn(n.length)&&!!Sn[c(n)]},In=Object.prototype.hasOwnProperty;function Fn(e,t){var o=n(e),r=!o&&vn(e),i=!o&&!r&&yn(e),a=!o&&!r&&!i&&zn(e),s=o||r||i||a,l=s?function(n,e){for(var t=-1,o=Array(n);++t<n;)o[t]=e(t);return o}(e.length,String):[],d=l.length;for(var u in e)!t&&!In.call(e,u)||s&&("length"==u||i&&("offset"==u||"parent"==u)||a&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||xn(u,d))||l.push(u);return l}var Hn=Object.prototype;function Nn(n){var e=n&&n.constructor;return n===("function"==typeof e&&e.prototype||Hn)}function Wn(n,e){return function(t){return n(e(t))}}var $n=Wn(Object.keys,Object),Mn=Object.prototype.hasOwnProperty;function Ln(n){if(!Nn(n))return $n(n);var e=[];for(var t in Object(n))Mn.call(n,t)&&"constructor"!=t&&e.push(t);return e}function Dn(n){return null!=n&&wn(n.length)&&!A(n)}function Rn(n){return Dn(n)?Fn(n):Ln(n)}var jn=function(n,e){return function(t,o){if(null==t)return t;if(!Dn(t))return n(t,o);for(var r=t.length,i=e?r:-1,a=Object(t);(e?i--:++i<r)&&!1!==o(a[i],i,a););return t}}(function(n,e){return n&&un(n,e,Rn)}),On=jn;function Vn(n){return n}function Yn(e,t){var o;return(n(e)?sn:On)(e,"function"==typeof(o=t)?o:Vn)}function Un(n,e,t){var o=n.length;return t=void 0===t?o:t,!e&&t>=o?n:function(n,e,t){var o=-1,r=n.length;e<0&&(e=-e>r?0:r+e),(t=t>r?r:t)<0&&(t+=r),r=e>t?0:t-e>>>0,e>>>=0;for(var i=Array(r);++o<r;)i[o]=n[o+e];return i}(n,e,t)}var Xn=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");function Gn(n){return Xn.test(n)}function Zn(n,e,t){if(!m(t))return!1;var o=typeof e;return!!("number"==o?Dn(t)&&xn(e,t.length):"string"==o&&e in t)&&W(t[e],n)}var qn=Tn&&Tn.isRegExp,Jn=qn?kn(qn):function(n){return p(n)&&"[object RegExp]"==c(n)};var Qn="\\ud800-\\udfff",Kn="["+Qn+"]",ne="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",ee="\\ud83c[\\udffb-\\udfff]",te="[^"+Qn+"]",oe="(?:\\ud83c[\\udde6-\\uddff]){2}",re="[\\ud800-\\udbff][\\udc00-\\udfff]",ie="(?:"+ne+"|"+ee+")"+"?",ae="[\\ufe0e\\ufe0f]?",se=ae+ie+("(?:\\u200d(?:"+[te,oe,re].join("|")+")"+ae+ie+")*"),le="(?:"+[te+ne+"?",ne,oe,re,Kn].join("|")+")",de=RegExp(ee+"(?="+ee+")|"+le+se,"g");function ue(n){return Gn(n)?function(n){return n.match(de)||[]}(n):function(n){return n.split("")}(n)}function ce(n,e,t){return t&&"number"!=typeof t&&Zn(n,e,t)&&(e=t=void 0),(t=void 0===t?4294967295:t>>>0)?(n=en(n))&&("string"==typeof e||null!=e&&!Jn(e))&&!(e=nn(e))&&Gn(n)?Un(ue(n),0,t):n.split(e,t):[]}function pe(n){var e=this.__data__=new L(n);this.size=e.size}pe.prototype.clear=function(){this.__data__=new L,this.size=0},pe.prototype.delete=function(n){var e=this.__data__,t=e.delete(n);return this.size=e.size,t},pe.prototype.get=function(n){return this.__data__.get(n)},pe.prototype.has=function(n){return this.__data__.has(n)},pe.prototype.set=function(n,e){var t=this.__data__;if(t instanceof L){var o=t.__data__;if(!D||o.length<199)return o.push([n,e]),this.size=++t.size,this;t=this.__data__=new j(o)}return t.set(n,e),this.size=t.size,this};function fe(n){var e=-1,t=null==n?0:n.length;for(this.__data__=new j;++e<t;)this.add(n[e])}function he(n,e){for(var t=-1,o=null==n?0:n.length;++t<o;)if(e(n[t],t,n))return!0;return!1}function ge(n,e){return n.has(e)}fe.prototype.add=fe.prototype.push=function(n){return this.__data__.set(n,"__lodash_hash_undefined__"),this},fe.prototype.has=function(n){return this.__data__.has(n)};function ve(n,e,t,o,r,i){var a=1&t,s=n.length,l=e.length;if(s!=l&&!(a&&l>s))return!1;var d=i.get(n),u=i.get(e);if(d&&u)return d==e&&u==n;var c=-1,p=!0,f=2&t?new fe:void 0;for(i.set(n,e),i.set(e,n);++c<s;){var h=n[c],g=e[c];if(o)var v=a?o(g,h,c,e,n,i):o(h,g,c,n,e,i);if(void 0!==v){if(v)continue;p=!1;break}if(f){if(!he(e,function(n,e){if(!ge(f,e)&&(h===n||r(h,n,t,o,i)))return f.push(e)})){p=!1;break}}else if(h!==g&&!r(h,g,t,o,i)){p=!1;break}}return i.delete(n),i.delete(e),p}var me=o.Uint8Array;function Ae(n){var e=-1,t=Array(n.size);return n.forEach(function(n,o){t[++e]=[o,n]}),t}function be(n){var e=-1,t=Array(n.size);return n.forEach(function(n){t[++e]=n}),t}var ye=r?r.prototype:void 0,Ce=ye?ye.valueOf:void 0;function xe(n,e){for(var t=-1,o=e.length,r=n.length;++t<o;)n[r+t]=e[t];return n}function we(e,t,o){var r=t(e);return n(e)?r:xe(r,o(e))}function Se(){return[]}var ke=Object.prototype.propertyIsEnumerable,_e=Object.getOwnPropertySymbols,Be=_e?function(n){return null==n?[]:(n=Object(n),function(n,e){for(var t=-1,o=null==n?0:n.length,r=0,i=[];++t<o;){var a=n[t];e(a,t,n)&&(i[r++]=a)}return i}(_e(n),function(e){return ke.call(n,e)}))}:Se,Pe=Be;function Te(n){return we(n,Rn,Pe)}var Ee=Object.prototype.hasOwnProperty;var ze=z(o,"DataView"),Ie=z(o,"Promise"),Fe=z(o,"Set"),He=z(o,"WeakMap"),Ne="[object Map]",We="[object Promise]",$e="[object Set]",Me="[object WeakMap]",Le="[object DataView]",De=w(ze),Re=w(D),je=w(Ie),Oe=w(Fe),Ve=w(He),Ye=c;(ze&&Ye(new ze(new ArrayBuffer(1)))!=Le||D&&Ye(new D)!=Ne||Ie&&Ye(Ie.resolve())!=We||Fe&&Ye(new Fe)!=$e||He&&Ye(new He)!=Me)&&(Ye=function(n){var e=c(n),t="[object Object]"==e?n.constructor:void 0,o=t?w(t):"";if(o)switch(o){case De:return Le;case Re:return Ne;case je:return We;case Oe:return $e;case Ve:return Me}return e});var Ue=Ye,Xe="[object Arguments]",Ge="[object Array]",Ze="[object Object]",qe=Object.prototype.hasOwnProperty;function Je(e,t,o,r,i,a){var s=n(e),l=n(t),d=s?Ge:Ue(e),u=l?Ge:Ue(t),c=(d=d==Xe?Ze:d)==Ze,p=(u=u==Xe?Ze:u)==Ze,f=d==u;if(f&&yn(e)){if(!yn(t))return!1;s=!0,c=!1}if(f&&!c)return a||(a=new pe),s||zn(e)?ve(e,t,o,r,i,a):function(n,e,t,o,r,i,a){switch(t){case"[object DataView]":if(n.byteLength!=e.byteLength||n.byteOffset!=e.byteOffset)return!1;n=n.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(n.byteLength!=e.byteLength||!i(new me(n),new me(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return W(+n,+e);case"[object Error]":return n.name==e.name&&n.message==e.message;case"[object RegExp]":case"[object String]":return n==e+"";case"[object Map]":var s=Ae;case"[object Set]":var l=1&o;if(s||(s=be),n.size!=e.size&&!l)return!1;var d=a.get(n);if(d)return d==e;o|=2,a.set(n,e);var u=ve(s(n),s(e),o,r,i,a);return a.delete(n),u;case"[object Symbol]":if(Ce)return Ce.call(n)==Ce.call(e)}return!1}(e,t,d,o,r,i,a);if(!(1&o)){var h=c&&qe.call(e,"__wrapped__"),g=p&&qe.call(t,"__wrapped__");if(h||g){var v=h?e.value():e,m=g?t.value():t;return a||(a=new pe),i(v,m,o,r,a)}}return!!f&&(a||(a=new pe),function(n,e,t,o,r,i){var a=1&t,s=Te(n),l=s.length;if(l!=Te(e).length&&!a)return!1;for(var d=l;d--;){var u=s[d];if(!(a?u in e:Ee.call(e,u)))return!1}var c=i.get(n),p=i.get(e);if(c&&p)return c==e&&p==n;var f=!0;i.set(n,e),i.set(e,n);for(var h=a;++d<l;){var g=n[u=s[d]],v=e[u];if(o)var m=a?o(v,g,u,e,n,i):o(g,v,u,n,e,i);if(!(void 0===m?g===v||r(g,v,t,o,i):m)){f=!1;break}h||(h="constructor"==u)}if(f&&!h){var A=n.constructor,b=e.constructor;A==b||!("constructor"in n)||!("constructor"in e)||"function"==typeof A&&A instanceof A&&"function"==typeof b&&b instanceof b||(f=!1)}return i.delete(n),i.delete(e),f}(e,t,o,r,i,a))}function Qe(n,e,t,o,r){return n===e||(null==n||null==e||!p(n)&&!p(e)?n!=n&&e!=e:Je(n,e,t,o,Qe,r))}function Ke(n){return n==n&&!m(n)}function nt(n,e){return function(t){return null!=t&&(t[n]===e&&(void 0!==e||n in Object(t)))}}function et(n){var e=function(n){for(var e=Rn(n),t=e.length;t--;){var o=e[t],r=n[o];e[t]=[o,r,Ke(r)]}return e}(n);return 1==e.length&&e[0][2]?nt(e[0][0],e[0][1]):function(t){return t===n||function(n,e,t,o){var r=t.length,i=r,a=!o;if(null==n)return!i;for(n=Object(n);r--;){var s=t[r];if(a&&s[2]?s[1]!==n[s[0]]:!(s[0]in n))return!1}for(;++r<i;){var l=(s=t[r])[0],d=n[l],u=s[1];if(a&&s[2]){if(void 0===d&&!(l in n))return!1}else{var c=new pe;if(o)var p=o(d,u,l,n,e,c);if(!(void 0===p?Qe(u,d,3,o,c):p))return!1}}return!0}(t,n,e)}}function tt(n,e){return null!=n&&e in Object(n)}function ot(e,t){return null!=e&&function(e,t,o){for(var r=-1,i=(t=tn(t,e)).length,a=!1;++r<i;){var s=on(t[r]);if(!(a=null!=e&&o(e,s)))break;e=e[s]}return a||++r!=i?a:!!(i=null==e?0:e.length)&&wn(i)&&xn(s,i)&&(n(e)||vn(e))}(e,t,tt)}function rt(n){return function(e){return null==e?void 0:e[n]}}function it(n){return v(n)?rt(on(n)):function(n){return function(e){return rn(e,n)}}(n)}function at(e){return"function"==typeof e?e:null==e?Vn:"object"==typeof e?n(e)?(t=e[0],o=e[1],v(t)&&Ke(o)?nt(on(t),o):function(n){var e=an(n,t);return void 0===e&&e===o?ot(n,t):Qe(o,e,3)}):et(e):it(e);var t,o}function st(n,e){var t=-1,o=Dn(n)?Array(n.length):[];return On(n,function(n,r,i){o[++t]=e(n,r,i)}),o}function lt(e,t){return(n(e)?J:st)(e,at(t))}var dt=function(){try{var n=z(Object,"defineProperty");return n({},"",{}),n}catch(n){}}(),ut=dt;function ct(n,e,t){"__proto__"==e&&ut?ut(n,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):n[e]=t}function pt(n){return"[object String]"===Object.prototype.toString.call(n)}function ft(n){return!(!pt(n)||""===n)}function ht(n){if(!ft(n))return{};if(!ft(n=an(n=ce(n,"?"),"[1]")))return{};let e=ce(n,"&");return e=lt(e,function(n){return ce(n,"=")}),e=function(n){for(var e=-1,t=null==n?0:n.length,o={};++e<t;){var r=n[e];ct(o,r[0],r[1])}return o}(e),e}var gt=rt("length"),vt="\\ud800-\\udfff",mt="["+vt+"]",At="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",bt="\\ud83c[\\udffb-\\udfff]",yt="[^"+vt+"]",Ct="(?:\\ud83c[\\udde6-\\uddff]){2}",xt="[\\ud800-\\udbff][\\udc00-\\udfff]",wt="(?:"+At+"|"+bt+")"+"?",St="[\\ufe0e\\ufe0f]?",kt=St+wt+("(?:\\u200d(?:"+[yt,Ct,xt].join("|")+")"+St+wt+")*"),_t="(?:"+[yt+At+"?",At,Ct,xt,mt].join("|")+")",Bt=RegExp(bt+"(?="+bt+")|"+_t+kt,"g");function Pt(n){return Gn(n)?function(n){for(var e=Bt.lastIndex=0;Bt.test(n);)++e;return e}(n):gt(n)}function Tt(e){if(null==e)return 0;if(Dn(e))return"string"==typeof(t=e)||!n(t)&&p(t)&&"[object String]"==c(t)?Pt(e):e.length;var t,o=Ue(e);return"[object Map]"==o||"[object Set]"==o?e.size:Ln(e).length}function Et(n,e){for(var t=-1,o=null==n?0:n.length;++t<o;)if(!e(n[t],t,n))return!1;return!0}function zt(n,e){var t=!0;return On(n,function(n,o,r){return t=!!e(n,o,r)}),t}function It(n,e){return Qe(n,e)}function Ft(n){return"[object Object]"===Object.prototype.toString.call(n)}var Ht=/\s/;var Nt=/^\s+/;function Wt(n){return n?n.slice(0,function(n){for(var e=n.length;e--&&Ht.test(n.charAt(e)););return e}(n)+1).replace(Nt,""):n}var $t=/^[-+]0x[0-9a-f]+$/i,Mt=/^0b[01]+$/i,Lt=/^0o[0-7]+$/i,Dt=parseInt;function Rt(n){if("number"==typeof n)return n;if(f(n))return NaN;if(m(n)){var e="function"==typeof n.valueOf?n.valueOf():n;n=m(e)?e+"":e}if("string"!=typeof n)return 0===n?n:+n;n=Wt(n);var t=Mt.test(n);return t||Lt.test(n)?Dt(n.slice(2),t?2:8):$t.test(n)?NaN:+n}var jt=1/0;function Ot(n){return n?(n=Rt(n))===jt||n===-1/0?17976931348623157e292*(n<0?-1:1):n==n?n:0:0===n?n:0}function Vt(n){var e=Ot(n),t=e%1;return e==e?t?e-t:e:0}function Yt(n){return n!=n}function Ut(n){let e=!1;if(ft(n))e=!isNaN(Number(n));else if(function(n){return"[object Number]"===Object.prototype.toString.call(n)}(n)){if(Yt(n))return!1;e=!0}return e}function Xt(n){if(!Ut(n))return 0;return Ot(n)}function Gt(n){return!!Ut(n)&&(n=Xt(n),"number"==typeof(e=n)&&e==Vt(e));var e}var Zt=o.isFinite,qt=Math.min;var Jt=function(n){var e=Math[n];return function(n,t){if(n=Rt(n),(t=null==t?0:qt(Vt(t),292))&&Zt(n)){var o=(en(n)+"e").split("e");return+((o=(en(e(o[0]+"e"+(+o[1]+t)))+"e").split("e"))[0]+"e"+(+o[1]-t))}return e(n)}}("round"),Qt=Jt;function Kt(n){if(!Ut(n))return 0;n=Xt(n);let e=Qt(n);return"0"===String(e)?0:e}function no(n){if(!Gt(n))return!1;return Kt(n)>0}let eo="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),to=eo.length;function oo(n=32){let e=[];n=no(n)?Kt(n):32;for(let t=0;t<n;t++)e[t]=eo[0|Math.random()*to];return e.join("")}var ro=Object.prototype.hasOwnProperty;function io(n,e,t){var o=n[e];ro.call(n,e)&&W(o,t)&&(void 0!==t||e in n)||ct(n,e,t)}function ao(n,e,t,o){var r=!t;t||(t={});for(var i=-1,a=e.length;++i<a;){var s=e[i],l=o?o(t[s],n[s],s,t,n):void 0;void 0===l&&(l=n[s]),r?ct(t,s,l):io(t,s,l)}return t}var so=Object.prototype.hasOwnProperty;function lo(n){if(!m(n))return function(n){var e=[];if(null!=n)for(var t in Object(n))e.push(t);return e}(n);var e=Nn(n),t=[];for(var o in n)("constructor"!=o||!e&&so.call(n,o))&&t.push(o);return t}function uo(n){return Dn(n)?Fn(n,!0):lo(n)}var co="object"==typeof exports&&exports&&!exports.nodeType&&exports,po=co&&"object"==typeof module&&module&&!module.nodeType&&module,fo=po&&po.exports===co?o.Buffer:void 0,ho=fo?fo.allocUnsafe:void 0;function go(n,e){var t=-1,o=n.length;for(e||(e=Array(o));++t<o;)e[t]=n[t];return e}var vo=Wn(Object.getPrototypeOf,Object),mo=Object.getOwnPropertySymbols?function(n){for(var e=[];n;)xe(e,Pe(n)),n=vo(n);return e}:Se,Ao=mo;function bo(n){return we(n,uo,Ao)}var yo=Object.prototype.hasOwnProperty;function Co(n){var e=new n.constructor(n.byteLength);return new me(e).set(new me(n)),e}var xo=/\w*$/;var wo=r?r.prototype:void 0,So=wo?wo.valueOf:void 0;function ko(n,e,t){var o,r=n.constructor;switch(e){case"[object ArrayBuffer]":return Co(n);case"[object Boolean]":case"[object Date]":return new r(+n);case"[object DataView]":return function(n,e){var t=e?Co(n.buffer):n.buffer;return new n.constructor(t,n.byteOffset,n.byteLength)}(n,t);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return function(n,e){var t=e?Co(n.buffer):n.buffer;return new n.constructor(t,n.byteOffset,n.length)}(n,t);case"[object Map]":case"[object Set]":return new r;case"[object Number]":case"[object String]":return new r(n);case"[object RegExp]":return function(n){var e=new n.constructor(n.source,xo.exec(n));return e.lastIndex=n.lastIndex,e}(n);case"[object Symbol]":return o=n,So?Object(So.call(o)):{}}}var _o=Object.create,Bo=function(){function n(){}return function(e){if(!m(e))return{};if(_o)return _o(e);n.prototype=e;var t=new n;return n.prototype=void 0,t}}(),Po=Bo;var To=Tn&&Tn.isMap,Eo=To?kn(To):function(n){return p(n)&&"[object Map]"==Ue(n)};var zo=Tn&&Tn.isSet,Io=zo?kn(zo):function(n){return p(n)&&"[object Set]"==Ue(n)},Fo="[object Arguments]",Ho="[object Function]",No="[object Object]",Wo={};function $o(e,t,o,r,i,a){var s,l=1&t,d=2&t,u=4&t;if(o&&(s=i?o(e,r,i,a):o(e)),void 0!==s)return s;if(!m(e))return e;var c=n(e);if(c){if(s=function(n){var e=n.length,t=new n.constructor(e);return e&&"string"==typeof n[0]&&yo.call(n,"index")&&(t.index=n.index,t.input=n.input),t}(e),!l)return go(e,s)}else{var p=Ue(e),f=p==Ho||"[object GeneratorFunction]"==p;if(yn(e))return function(n,e){if(e)return n.slice();var t=n.length,o=ho?ho(t):new n.constructor(t);return n.copy(o),o}(e,l);if(p==No||p==Fo||f&&!i){if(s=d||f?{}:function(n){return"function"!=typeof n.constructor||Nn(n)?{}:Po(vo(n))}(e),!l)return d?function(n,e){return ao(n,Ao(n),e)}(e,function(n,e){return n&&ao(e,uo(e),n)}(s,e)):function(n,e){return ao(n,Pe(n),e)}(e,function(n,e){return n&&ao(e,Rn(e),n)}(s,e))}else{if(!Wo[p])return i?e:{};s=ko(e,p,l)}}a||(a=new pe);var h=a.get(e);if(h)return h;a.set(e,s),Io(e)?e.forEach(function(n){s.add($o(n,t,o,n,e,a))}):Eo(e)&&e.forEach(function(n,r){s.set(r,$o(n,t,o,r,e,a))});var g=c?void 0:(u?d?bo:Te:d?uo:Rn)(e);return sn(g||e,function(n,r){g&&(n=e[r=n]),io(s,r,$o(n,t,o,r,e,a))}),s}Wo[Fo]=Wo["[object Array]"]=Wo["[object ArrayBuffer]"]=Wo["[object DataView]"]=Wo["[object Boolean]"]=Wo["[object Date]"]=Wo["[object Float32Array]"]=Wo["[object Float64Array]"]=Wo["[object Int8Array]"]=Wo["[object Int16Array]"]=Wo["[object Int32Array]"]=Wo["[object Map]"]=Wo["[object Number]"]=Wo[No]=Wo["[object RegExp]"]=Wo["[object Set]"]=Wo["[object String]"]=Wo["[object Symbol]"]=Wo["[object Uint8Array]"]=Wo["[object Uint8ClampedArray]"]=Wo["[object Uint16Array]"]=Wo["[object Uint32Array]"]=!0,Wo["[object Error]"]=Wo[Ho]=Wo["[object WeakMap]"]=!1;function Mo(n){return $o(n,5)}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function Lo(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Do={exports:{}};!function(n){var e=Object.prototype.hasOwnProperty,t="~";function o(){}function r(n,e,t){this.fn=n,this.context=e,this.once=t||!1}function i(n,e,o,i,a){if("function"!=typeof o)throw new TypeError("The listener must be a function");var s=new r(o,i||n,a),l=t?t+e:e;return n._events[l]?n._events[l].fn?n._events[l]=[n._events[l],s]:n._events[l].push(s):(n._events[l]=s,n._eventsCount++),n}function a(n,e){0===--n._eventsCount?n._events=new o:delete n._events[e]}function s(){this._events=new o,this._eventsCount=0}Object.create&&(o.prototype=Object.create(null),(new o).__proto__||(t=!1)),s.prototype.eventNames=function(){var n,o,r=[];if(0===this._eventsCount)return r;for(o in n=this._events)e.call(n,o)&&r.push(t?o.slice(1):o);return Object.getOwnPropertySymbols?r.concat(Object.getOwnPropertySymbols(n)):r},s.prototype.listeners=function(n){var e=t?t+n:n,o=this._events[e];if(!o)return[];if(o.fn)return[o.fn];for(var r=0,i=o.length,a=new Array(i);r<i;r++)a[r]=o[r].fn;return a},s.prototype.listenerCount=function(n){var e=t?t+n:n,o=this._events[e];return o?o.fn?1:o.length:0},s.prototype.emit=function(n,e,o,r,i,a){var s=t?t+n:n;if(!this._events[s])return!1;var l,d,u=this._events[s],c=arguments.length;if(u.fn){switch(u.once&&this.removeListener(n,u.fn,void 0,!0),c){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,e),!0;case 3:return u.fn.call(u.context,e,o),!0;case 4:return u.fn.call(u.context,e,o,r),!0;case 5:return u.fn.call(u.context,e,o,r,i),!0;case 6:return u.fn.call(u.context,e,o,r,i,a),!0}for(d=1,l=new Array(c-1);d<c;d++)l[d-1]=arguments[d];u.fn.apply(u.context,l)}else{var p,f=u.length;for(d=0;d<f;d++)switch(u[d].once&&this.removeListener(n,u[d].fn,void 0,!0),c){case 1:u[d].fn.call(u[d].context);break;case 2:u[d].fn.call(u[d].context,e);break;case 3:u[d].fn.call(u[d].context,e,o);break;case 4:u[d].fn.call(u[d].context,e,o,r);break;default:if(!l)for(p=1,l=new Array(c-1);p<c;p++)l[p-1]=arguments[p];u[d].fn.apply(u[d].context,l)}}return!0},s.prototype.on=function(n,e,t){return i(this,n,e,t,!1)},s.prototype.once=function(n,e,t){return i(this,n,e,t,!0)},s.prototype.removeListener=function(n,e,o,r){var i=t?t+n:n;if(!this._events[i])return this;if(!e)return a(this,i),this;var s=this._events[i];if(s.fn)s.fn!==e||r&&!s.once||o&&s.context!==o||a(this,i);else{for(var l=0,d=[],u=s.length;l<u;l++)(s[l].fn!==e||r&&!s[l].once||o&&s[l].context!==o)&&d.push(s[l]);d.length?this._events[i]=1===d.length?d[0]:d:a(this,i)}return this},s.prototype.removeAllListeners=function(n){var e;return n?(e=t?t+n:n,this._events[e]&&a(this,e)):(this._events=new o,this._eventsCount=0),this},s.prototype.off=s.prototype.removeListener,s.prototype.addListener=s.prototype.on,s.prefixed=t,s.EventEmitter=s,n.exports=s}(Do);var Ro=Lo(Do.exports);function jo(){return new Ro}function Oo(n){let e=Object.prototype.toString.call(n);return"[object Function]"===e||"[object AsyncFunction]"===e}function Vo(){let n={};return{bind:function(e,t,o){let r=`r${oo()}`;e.setAttribute("ev-resize",r);let i=function(n,e={}){let t=an(e,"timeInterval",null);no(t)||(t=20);let o=an(e,"tolerancePixel",null);no(o)||(o=1);let r,i=jo(),a={offsetWidth:0,offsetHeight:0,clientWidth:0,clientHeight:0,windowWidth:0,windowHeight:0},s=Mo(a),l={width:"",height:""};if(!Oo(n))return console.log("invalid f",n),null;r=setInterval(()=>{let e=n();if(e){let n={offsetWidth:e.offsetWidth,offsetHeight:e.offsetHeight,clientWidth:e.clientWidth,clientHeight:e.clientHeight,windowWidth:window.innerWidth,windowHeight:window.innerHeight},t=s.offsetWidth-n.offsetWidth,r=s.offsetHeight-n.offsetHeight,d=Math.abs(t)>o,u=Math.abs(r)>o,c="";t>0?c="smaller":t<0&&(c="larger");let p="";if(r>0?p="smaller":r<0&&(p="larger"),l={width:c,height:p},d||u){let t={...s};setTimeout(()=>{n.offsetWidth>0&&n.offsetHeight>0&&(i.emit("resize",{sold:t,snew:n,smode:l,ele:e}),i.emit("resizeWithWindow",{sold:t,snew:n,smode:l,ele:e,from:"dom"}))},1)}a=s,s=n}},t);let d=n=>{i.emit("resizeWithWindow",{sold:a,snew:s,smode:l,from:"window"})};return window.addEventListener("resize",d),i.clear=()=>{clearInterval(r),window.removeEventListener("resize",d)},i}(()=>e);i.on("resizeWithWindow",n=>{!function(n,e,t){let o=n.data&&n.data.on||n.componentOptions&&n.componentOptions.listeners;o&&o[e]&&o[e].fns(t)}(o,"domresize",n)}),n[r]=i},unbind:function(e){let t=e.getAttribute("ev-resize");e.setAttribute("ev-resize",null),n[t]&&(n[t].clear(),n[t]=null,delete n[t])}}}var Yo,Uo=(Yo="toUpperCase",function(n){var e=Gn(n=en(n))?ue(n):void 0,t=e?e[0]:n.charAt(0),o=e?Un(e,1).join(""):n.slice(1);return t[Yo]()+o});var Xo,Go=(Xo={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"},function(n){return null==Xo?void 0:Xo[n]}),Zo=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,qo=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g");var Jo=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;var Qo=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;var Ko="\\ud800-\\udfff",nr="\\u2700-\\u27bf",er="a-z\\xdf-\\xf6\\xf8-\\xff",tr="A-Z\\xc0-\\xd6\\xd8-\\xde",or="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",rr="["+or+"]",ir="\\d+",ar="["+nr+"]",sr="["+er+"]",lr="[^"+Ko+or+ir+nr+er+tr+"]",dr="(?:\\ud83c[\\udde6-\\uddff]){2}",ur="[\\ud800-\\udbff][\\udc00-\\udfff]",cr="["+tr+"]",pr="(?:"+sr+"|"+lr+")",fr="(?:"+cr+"|"+lr+")",hr="(?:['’](?:d|ll|m|re|s|t|ve))?",gr="(?:['’](?:D|LL|M|RE|S|T|VE))?",vr="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",mr="[\\ufe0e\\ufe0f]?",Ar=mr+vr+("(?:\\u200d(?:"+["[^"+Ko+"]",dr,ur].join("|")+")"+mr+vr+")*"),br="(?:"+[ar,dr,ur].join("|")+")"+Ar,yr=RegExp([cr+"?"+sr+"+"+hr+"(?="+[rr,cr,"$"].join("|")+")",fr+"+"+gr+"(?="+[rr,cr+pr,"$"].join("|")+")",cr+"?"+pr+"+"+hr,cr+"+"+gr,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",ir,br].join("|"),"g");function Cr(n,e,t){return n=en(n),void 0===(e=t?void 0:e)?function(n){return Qo.test(n)}(n)?function(n){return n.match(yr)||[]}(n):function(n){return n.match(Jo)||[]}(n):n.match(e)||[]}var xr=RegExp("['’]","g");var wr,Sr=(wr=function(n,e,t){return e=e.toLowerCase(),n+(t?Uo(en(e).toLowerCase()):e)},function(n){return function(n,e,t,o){var r=-1,i=null==n?0:n.length;for(o&&i&&(t=n[++r]);++r<i;)t=e(t,n[r],r,n);return t}(Cr(function(n){return(n=en(n))&&n.replace(Zo,Go).replace(qo,"")}(n).replace(xr,"")),wr,"")}),kr=Sr;let _r={default:{red:{base:"#f44336",lighten5:"#ffebee",lighten4:"#ffcdd2",lighten3:"#ef9a9a",lighten2:"#e57373",lighten1:"#ef5350",darken1:"#e53935",darken2:"#d32f2f",darken3:"#c62828",darken4:"#b71c1c",accent1:"#ff8a80",accent2:"#ff5252",accent3:"#ff1744",accent4:"#d50000"},pink:{base:"#e91e63",lighten5:"#fce4ec",lighten4:"#f8bbd0",lighten3:"#f48fb1",lighten2:"#f06292",lighten1:"#ec407a",darken1:"#d81b60",darken2:"#c2185b",darken3:"#ad1457",darken4:"#880e4f",accent1:"#ff80ab",accent2:"#ff4081",accent3:"#f50057",accent4:"#c51162"},purple:{base:"#9c27b0",lighten5:"#f3e5f5",lighten4:"#e1bee7",lighten3:"#ce93d8",lighten2:"#ba68c8",lighten1:"#ab47bc",darken1:"#8e24aa",darken2:"#7b1fa2",darken3:"#6a1b9a",darken4:"#4a148c",accent1:"#ea80fc",accent2:"#e040fb",accent3:"#d500f9",accent4:"#aa00ff"},deepPurple:{base:"#673ab7",lighten5:"#ede7f6",lighten4:"#d1c4e9",lighten3:"#b39ddb",lighten2:"#9575cd",lighten1:"#7e57c2",darken1:"#5e35b1",darken2:"#512da8",darken3:"#4527a0",darken4:"#311b92",accent1:"#b388ff",accent2:"#7c4dff",accent3:"#651fff",accent4:"#6200ea"},indigo:{base:"#3f51b5",lighten5:"#e8eaf6",lighten4:"#c5cae9",lighten3:"#9fa8da",lighten2:"#7986cb",lighten1:"#5c6bc0",darken1:"#3949ab",darken2:"#303f9f",darken3:"#283593",darken4:"#1a237e",accent1:"#8c9eff",accent2:"#536dfe",accent3:"#3d5afe",accent4:"#304ffe"},blue:{base:"#2196f3",lighten5:"#e3f2fd",lighten4:"#bbdefb",lighten3:"#90caf9",lighten2:"#64b5f6",lighten1:"#42a5f5",darken1:"#1e88e5",darken2:"#1976d2",darken3:"#1565c0",darken4:"#0d47a1",accent1:"#82b1ff",accent2:"#448aff",accent3:"#2979ff",accent4:"#2962ff"},lightBlue:{base:"#03a9f4",lighten5:"#e1f5fe",lighten4:"#b3e5fc",lighten3:"#81d4fa",lighten2:"#4fc3f7",lighten1:"#29b6f6",darken1:"#039be5",darken2:"#0288d1",darken3:"#0277bd",darken4:"#01579b",accent1:"#80d8ff",accent2:"#40c4ff",accent3:"#00b0ff",accent4:"#0091ea"},cyan:{base:"#00bcd4",lighten5:"#e0f7fa",lighten4:"#b2ebf2",lighten3:"#80deea",lighten2:"#4dd0e1",lighten1:"#26c6da",darken1:"#00acc1",darken2:"#0097a7",darken3:"#00838f",darken4:"#006064",accent1:"#84ffff",accent2:"#18ffff",accent3:"#00e5ff",accent4:"#00b8d4"},teal:{base:"#009688",lighten5:"#e0f2f1",lighten4:"#b2dfdb",lighten3:"#80cbc4",lighten2:"#4db6ac",lighten1:"#26a69a",darken1:"#00897b",darken2:"#00796b",darken3:"#00695c",darken4:"#004d40",accent1:"#a7ffeb",accent2:"#64ffda",accent3:"#1de9b6",accent4:"#00bfa5"},green:{base:"#4caf50",lighten5:"#e8f5e9",lighten4:"#c8e6c9",lighten3:"#a5d6a7",lighten2:"#81c784",lighten1:"#66bb6a",darken1:"#43a047",darken2:"#388e3c",darken3:"#2e7d32",darken4:"#1b5e20",accent1:"#b9f6ca",accent2:"#69f0ae",accent3:"#00e676",accent4:"#00c853"},lightGreen:{base:"#8bc34a",lighten5:"#f1f8e9",lighten4:"#dcedc8",lighten3:"#c5e1a5",lighten2:"#aed581",lighten1:"#9ccc65",darken1:"#7cb342",darken2:"#689f38",darken3:"#558b2f",darken4:"#33691e",accent1:"#ccff90",accent2:"#b2ff59",accent3:"#76ff03",accent4:"#64dd17"},lime:{base:"#cddc39",lighten5:"#f9fbe7",lighten4:"#f0f4c3",lighten3:"#e6ee9c",lighten2:"#dce775",lighten1:"#d4e157",darken1:"#c0ca33",darken2:"#afb42b",darken3:"#9e9d24",darken4:"#827717",accent1:"#f4ff81",accent2:"#eeff41",accent3:"#c6ff00",accent4:"#aeea00"},yellow:{base:"#ffeb3b",lighten5:"#fffde7",lighten4:"#fff9c4",lighten3:"#fff59d",lighten2:"#fff176",lighten1:"#ffee58",darken1:"#fdd835",darken2:"#fbc02d",darken3:"#f9a825",darken4:"#f57f17",accent1:"#ffff8d",accent2:"#ffff00",accent3:"#ffea00",accent4:"#ffd600"},amber:{base:"#ffc107",lighten5:"#fff8e1",lighten4:"#ffecb3",lighten3:"#ffe082",lighten2:"#ffd54f",lighten1:"#ffca28",darken1:"#ffb300",darken2:"#ffa000",darken3:"#ff8f00",darken4:"#ff6f00",accent1:"#ffe57f",accent2:"#ffd740",accent3:"#ffc400",accent4:"#ffab00"},orange:{base:"#ff9800",lighten5:"#fff3e0",lighten4:"#ffe0b2",lighten3:"#ffcc80",lighten2:"#ffb74d",lighten1:"#ffa726",darken1:"#fb8c00",darken2:"#f57c00",darken3:"#ef6c00",darken4:"#e65100",accent1:"#ffd180",accent2:"#ffab40",accent3:"#ff9100",accent4:"#ff6d00"},deepOrange:{base:"#ff5722",lighten5:"#fbe9e7",lighten4:"#ffccbc",lighten3:"#ffab91",lighten2:"#ff8a65",lighten1:"#ff7043",darken1:"#f4511e",darken2:"#e64a19",darken3:"#d84315",darken4:"#bf360c",accent1:"#ff9e80",accent2:"#ff6e40",accent3:"#ff3d00",accent4:"#dd2c00"},brown:{base:"#795548",lighten5:"#efebe9",lighten4:"#d7ccc8",lighten3:"#bcaaa4",lighten2:"#a1887f",lighten1:"#8d6e63",darken1:"#6d4c41",darken2:"#5d4037",darken3:"#4e342e",darken4:"#3e2723"},blueGrey:{base:"#607d8b",lighten5:"#eceff1",lighten4:"#cfd8dc",lighten3:"#b0bec5",lighten2:"#90a4ae",lighten1:"#78909c",darken1:"#546e7a",darken2:"#455a64",darken3:"#37474f",darken4:"#263238"},grey:{base:"#9e9e9e",lighten5:"#fafafa",lighten4:"#f5f5f5",lighten3:"#eeeeee",lighten2:"#e0e0e0",lighten1:"#bdbdbd",darken1:"#757575",darken2:"#616161",darken3:"#424242",darken4:"#212121"},shades:{black:"#000000",white:"#ffffff",transparent:"transparent"}}};function Br(n){if("white"===n)return"#fff";if("black"===n)return"#000";if("transparent"===n)return"rgba(0,0,0,0)";let e=function(n){let e=ce(n," ");return 1===Tt(e)&&(e[1]=null),e}(n),t=function(n,e,t){let o=an(_r,`default.${n}.${e}`,null);return null===o&&(o=t),o}(function(n){let e=n.trim();return e=kr(e),e}(e[0]),function(n){ft(n)||(n="base");let e=n.trim();return e=e.replace("-","").trim(),e}(e[1]),n);return t}function Pr(n,e,t){if(!ft(n))return"";if(!ft(e))return"";if(!pt(t))return"";return String(n).replaceAll(e,t)}function Tr(n){if(Ft(n)){for(let e in n)return!0;return!1}return!1}var Er=Function.prototype,zr=Object.prototype,Ir=Er.toString,Fr=zr.hasOwnProperty,Hr=Ir.call(Object);function Nr(n){return p(n)&&1===n.nodeType&&!function(n){if(!p(n)||"[object Object]"!=c(n))return!1;var e=vo(n);if(null===e)return!0;var t=Fr.call(e,"constructor")&&e.constructor;return"function"==typeof t&&t instanceof t&&Ir.call(t)==Hr}(n)}function Wr(n){return Nr(n)}function $r(n){function e(n){n.parentNode.removeChild(n)}if(Wr(n)){return void e(n)}if(!ft(n))return;let t=function(n){return document.querySelectorAll(n)}(n);Yn(t,function(n){e(n)})}function Mr(n,e,t={}){let o=an(t,"timeDuration",null);no(o)||(o=1e3);let r=an(t,"color",null);if(ft(r)||(r="rgba(255, 255, 255, 0.5)"),!Wr(n))return;n.style.position="relative",n.style.overflow="hidden";let i=n.getBoundingClientRect(),a=e.clientX-i.left,s=e.clientY-i.top,l=2*Math.max(n.clientWidth,n.clientHeight),d=document.createElement("div");d.style.width=`${l}px`,d.style.height=`${l}px`,d.style.transition=`all ${o/1e3}s linear`,d.style.position="absolute",d.style.zIndex=1,d.style.left=`${a}px`,d.style.top=`${s}px`,d.style.borderRadius="50%",d.style.transformOrigin="center",d.style.transform="translate(-50%,-50%) scale(0)",d.style.background=r,d.style.userSelect="none",d.style.pointerEvents="none",n.appendChild(d),setTimeout(()=>{d.style.transform="translate(-50%,-50%) scale(2)",d.style.opacity=0},1),setTimeout(()=>{$r(d)},o)}function Lr(n={}){let e={};return{bind:function(n,t,o){let r=`r${oo()}`;n.setAttribute("ev-ripple",r),function(n,t){let o=n.getAttribute("ev-ripple"),r=an(t,"value");if(r=Tr(r),!r)return;let i=an(t,"value.color");if(!ft(i))return;i=Br(i);let a=an(t,"value.timeDuration");Ut(a)||(a=1e3);function s(n){Mr(n.currentTarget,n,{color:i,timeDuration:a})}a=Xt(a),n.addEventListener("click",s,!1),e[o]=s}(n,t)},unbind:function(n){!function(n){let t=n.getAttribute("ev-ripple");if(e[t]){let o=e[t];n.removeEventListener("click",o,!1),delete e[t]}}(n),n.setAttribute("ev-ripple",null)}}}function Dr(n){return!0===n||!1===n||p(n)&&"[object Boolean]"==c(n)}function Rr(n){return Dr(n)}function jr(n){return"number"==typeof n||p(n)&&"[object Number]"==c(n)}function Or(n,e={}){let t=an(e,"parse");Rr(t)||(t=!0);let o=an(e,"ext");Tr(o)||(o={});let r=an(e,"semicolon");Rr(r)||(r=!0);let i=an(e,"returnObj");Rr(i)||(i=!1);let a=0,s=0,l=0,d=0;if(t){let e=function(n,e={}){let t,o=an(e,"def",""),r=an(e,"type","");"num"!==r&&"text"!==r&&(r="num"),"num"===r?t=jr:"text"===r&&(t=pt);let i=o,a=o,s=o,l=o;return t(an(n,"h"))&&(i=an(n,"h"),a=i),t(an(n,"v"))&&(s=an(n,"v"),l=s),t(an(n,"left"))&&(i=an(n,"left")),t(an(n,"right"))&&(a=an(n,"right")),t(an(n,"top"))&&(s=an(n,"top")),t(an(n,"bottom"))&&(l=an(n,"bottom")),{left:i,right:a,top:s,bottom:l}}(n);a=e.left,s=e.right,l=e.top,d=e.bottom}a+=an(o,"left",0),s+=an(o,"right",0),l+=an(o,"top",0),d+=an(o,"bottom",0);let u=null;return i?u={left:a,right:s,top:l,bottom:d}:(u=`${l}px ${s}px ${d}px ${a}px`,r&&(u=`${u};`)),u}function Vr(n){return"[object Array]"===Object.prototype.toString.call(n)}function Yr(n){return!!function(n){return"[object Undefined]"===Object.prototype.toString.call(n)}(n)||(!!function(n){return"[object Null]"===Object.prototype.toString.call(n)}(n)||(!!function(n){if(Ft(n)){for(let e in n)return!1;return!0}return!1}(n)||(!!function(n){return!(!pt(n)||""!==n)}(n)||(!!function(n){return!!Vr(n)&&0===n.length}(n)||!!Yt(n)))))}var Ur={components:{},props:{icon:{type:[String,Array],default:""},color:{type:String,default:"grey darken-1"},colorHover:{type:String,default:"grey darken-3"},sizeOriginal:{type:Number,default:24},size:{type:Number,default:24},timeTransition:{type:Number,default:.15}},data:function(){return{mouseEnter:!1,r:.83,paths:[]}},computed:{hasIcon:function(){return ft(this.icon)},isMdi:function(){return!!this.hasIcon&&this.icon.indexOf("mdi-")>=0},isFa:function(){return!!this.hasIcon&&this.icon.indexOf(" fa-")>=0},isSvg:function(){let n=this;if(n.isMdi||n.isFa)return!1;let e=ft(n.icon),t=!(!Vr(o=n.icon)||0===o.length||1===o.length&&Yr(o[0]));var o;return e||t},usePaths:function(){let n=this;if(!n.isSvg)return[];let e=n.icon;return ft(n.icon)&&(e=[n.icon]),e},useIconColor:function(){let n=this;return n.mouseEnter?Br(n.colorHover):Br(n.color)},useStyleSize:function(){let n=this;return{width:`${n.size}px`,height:`${n.size}px`,"line-height":`${n.size}px`,"max-height":`${n.size}px`,"min-height":`${n.size}px`}}},methods:{}};function Xr(n,e,t,o,r,i,a,s,l,d){"boolean"!=typeof a&&(l=s,s=a,a=!1);const u="function"==typeof t?t.options:t;let c;if(n&&n.render&&(u.render=n.render,u.staticRenderFns=n.staticRenderFns,u._compiled=!0,r&&(u.functional=!0)),o&&(u._scopeId=o),i?(c=function(n){(n=n||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(n=__VUE_SSR_CONTEXT__),e&&e.call(this,l(n)),n&&n._registeredComponents&&n._registeredComponents.add(i)},u._ssrRegister=c):e&&(c=a?function(n){e.call(this,d(n,this.$root.$options.shadowRoot))}:function(n){e.call(this,s(n))}),c)if(u.functional){const n=u.render;u.render=function(e,t){return c.call(t),n(e,t)}}else{const n=u.beforeCreate;u.beforeCreate=n?[].concat(n,c):[c]}return t}const Gr="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());function Zr(n){return(n,e)=>function(n,e){const t=Gr?e.media||"default":n,o=Jr[t]||(Jr[t]={ids:new Set,styles:[]});if(!o.ids.has(n)){o.ids.add(n);let t=e.source;if(e.map&&(t+="\n/*# sourceURL="+e.map.sources[0]+" */",t+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e.map))))+" */"),o.element||(o.element=document.createElement("style"),o.element.type="text/css",e.media&&o.element.setAttribute("media",e.media),void 0===qr&&(qr=document.head||document.getElementsByTagName("head")[0]),qr.appendChild(o.element)),"styleSheet"in o.element)o.styles.push(t),o.element.styleSheet.cssText=o.styles.filter(Boolean).join("\n");else{const n=o.ids.size-1,e=document.createTextNode(t),r=o.element.childNodes;r[n]&&o.element.removeChild(r[n]),r.length?o.element.insertBefore(e,r[n]):o.element.appendChild(e)}}}(n,e)}let qr;const Jr={};const Qr=Ur;var Kr=function(){var n=this,e=n.$createElement,t=n._self._c||e;return n.icon?t("div",{style:[n.useStyleSize,{display:"flex","align-items":"center","user-select":"none",border:"0px solid #ddd"}],on:{keyup:function(e){return!e.type.indexOf("key")&&n._k(e.keyCode,"enter",13,e.key,"Enter")?null:function(e){n.$emit("click",e)}.apply(null,arguments)},click:function(e){n.$emit("click",e)}}},[n.isSvg?t("svg",{style:"transition:all "+n.timeTransition+"s linear; fill:"+n.useIconColor+";",attrs:{width:n.size,height:n.size,viewBox:"0 0 "+n.sizeOriginal+" "+n.sizeOriginal},on:{mouseenter:function(e){n.mouseEnter=!0},mouseleave:function(e){n.mouseEnter=!1}}},n._l(n.usePaths,function(e,o){return t("path",{key:o,attrs:{d:n.icon}})}),0):n._e(),n._v(" "),n.isMdi?t("div",{style:"transition:all "+n.timeTransition+"s linear; width:"+n.size+"px; height:"+n.size+"px; color:"+n.useIconColor+"; display:flex; align-items:center; justify-content:center;",on:{mouseenter:function(e){n.mouseEnter=!0},mouseleave:function(e){n.mouseEnter=!1}}},[t("span",{class:"mdi "+n.icon,style:"font-size:"+n.size+"px;"})]):n._e(),n._v(" "),n.isFa?t("div",{style:"transition:all "+n.timeTransition+"s linear; width:"+n.size+"px; height:"+n.size+"px; color:"+n.useIconColor+"; display:flex; align-items:center; justify-content:center;",on:{mouseenter:function(e){n.mouseEnter=!0},mouseleave:function(e){n.mouseEnter=!1}}},[t("div",{style:"width:"+n.size+"px; height:"+n.size+"px; _transform-origin:center; transform:translateX(0px) translateY(0px) scale("+n.r+");"},[t("div",{staticStyle:{display:"flex","align-items":"center","justify-content":"center"}},[t("i",{class:"fas "+n.icon,style:"font-size:"+n.size+"px;"})])])]):n._e()]):n._e()};Kr._withStripped=!0;const ni=Xr({render:Kr,staticRenderFns:[]},function(n){n&&n("data-v-3c0d50cc_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WIcon.vue"},media:void 0})},Qr,"data-v-3c0d50cc",false,void 0,!1,Zr,void 0,void 0);const ei={directives:{domripple:Lr()},components:{WIcon:ni},props:{text:{type:String,default:""},textFontSize:{type:String,default:"1rem"},active:{type:Boolean,default:!1},paddingStyle:{type:Object,default:()=>({v:10,h:12})},borderRadius:{type:Number,default:0},backgroundColor:{type:String,default:"white"},backgroundColorHover:{type:String,default:"rgba(200,200,200,0.2)"},backgroundColorActive:{type:String,default:"orange lighten-1"},backgroundColorDisabled:{type:String,default:"white"},textColor:{type:String,default:"#444"},textColorHover:{type:String,default:"#222"},textColorActive:{type:String,default:"white"},textColorDisabled:{type:String,default:"#444"},icon:{type:String,default:""},iconSize:{type:Number,default:22},iconColor:{type:String,default:"#444"},iconColorHover:{type:String,default:"#222"},iconColorActive:{type:String,default:"white"},iconColorDisabled:{type:String,default:"#444"},rippleColor:{type:String,default:"rgba(255,255,255,0.4)"},editable:{type:Boolean,default:!0},disabledColor:{type:String,default:"rgba(255,255,255,0.5)"},cursorPointer:{type:Boolean,default:!0}},data:function(){return{mouseEnter:!1}},computed:{useTextFontSize:function(){let n=this.textFontSize;return n=Pr(n,";",""),`font-size:${n};`},hasIcon:function(){return""!==this.icon},usePadding:function(){return`padding:${Or(this.paddingStyle,{ext:{}})};`},effBackgroundColor:function(){return Br(this.backgroundColor)},effBackgroundColorHover:function(){return Br(this.backgroundColorHover)},effBackgroundActive:function(){return Br(this.backgroundColorActive)},effBackgroundColorDisabled:function(){return Br(this.backgroundColorDisabled)},useBackgroundColor:function(){let n=this;return n.editable?n.active?n.effBackgroundActive:n.mouseEnter?n.effBackgroundColorHover:n.effBackgroundColor:n.effBackgroundColorDisabled},effTextColor:function(){return Br(this.textColor)},effTextColorHover:function(){return Br(this.textColorHover)},effTextActive:function(){return Br(this.textColorActive)},effTextColorDisabled:function(){return Br(this.textColorDisabled)},useTextColor:function(){let n=this;return n.editable?n.active?n.effTextActive:n.mouseEnter?n.effTextColorHover:n.effTextColor:n.effTextColorDisabled},effIconColor:function(){return Br(this.iconColor)},effIconColorHover:function(){return Br(this.iconColorHover)},effIconActive:function(){return Br(this.iconColorActive)},effIconColorDisabled:function(){return Br(this.iconColorDisabled)},useIconColor:function(){let n=this;return n.editable?n.active?n.effIconActive:n.mouseEnter?n.effIconColorHover:n.effIconColor:n.effIconColorDisabled},effDisabledColor:function(){return Br(this.disabledColor)}},methods:{clickItem:function(){let n=this;n.editable&&n.$emit("click",{icon:n.icon,text:n.text})}}};var ti=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{directives:[{name:"domripple",rawName:"v-domripple",value:{color:n.rippleColor},expression:"{color:rippleColor}"}],style:"position:relative; transition:all 0.3s; border-top-left-radius:"+n.borderRadius+"px; border-top-right-radius:"+n.borderRadius+"px; "+n.usePadding+" background:"+n.useBackgroundColor+"; "+(n.editable&&n.cursorPointer?"cursor:pointer;":"cursor:context-menu;"),on:{mouseenter:function(e){n.mouseEnter=!0},mouseleave:function(e){n.mouseEnter=!1},click:n.clickItem}},[t("div",{style:"transition:all 0.3s; color:"+n.useTextColor+"; "+n.useTextFontSize},[n._t("item",function(){return[t("div",{staticStyle:{display:"flex","align-items":"center"}},[n._t("item-left",null,{isHover:n.mouseEnter,isActive:n.active}),n._v(" "),n._t("item-content",function(){return[n.hasIcon?t("WIcon",{staticStyle:{"margin-right":"8px"},attrs:{icon:n.icon,color:n.useIconColor,colorHover:n.useIconColor,size:n.iconSize}}):n._e(),n._v(" "),t("div",[n._v("\n "+n._s(n.text)+"\n ")])]},{isHover:n.mouseEnter,isActive:n.active}),n._v(" "),n._t("item-right",null,{isHover:n.mouseEnter,isActive:n.active})],2)]},{isHover:n.mouseEnter,isActive:n.active}),n._v(" "),n.editable?n._e():t("div",{staticStyle:{position:"absolute",left:"0",right:"0",top:"0",bottom:"0"}},[t("div",{style:"overflow:hidden; width:100%; height:100%;"},[t("div",{style:"background:"+n.effDisabledColor+"; height:100%;"})])])],2)])};ti._withStripped=!0;const oi=Xr({render:ti,staticRenderFns:[]},function(n){n&&n("data-v-43e2211d_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WListItem.vue"},media:void 0})},ei,"data-v-43e2211d",false,void 0,!1,Zr,void 0,void 0);var ri={directives:{domresize:Vo()},components:{WListItem:oi},props:{items:{type:Array,default:()=>[]},enableActive:{type:Boolean,default:!0},itemActive:{type:[String,Object],default:null},itemTextFontSize:{type:String,default:"1rem"},keyText:{type:String,default:"text"},keyIcon:{type:String,default:"icon"},space:{type:Number,default:0},paddingStyle:{type:Object,default:()=>({v:10,h:12})},itemBorderRadius:{type:Number,default:0},itemBackgroundColor:{type:String,default:"transparent"},itemBackgroundColorHover:{type:String,default:"rgba(200,200,200,0.2)"},itemBackgroundColorActive:{type:String,default:"white"},itemBackgroundColorDisabled:{type:String,default:"white"},itemTextColor:{type:String,default:"#444"},itemTextColorHover:{type:String,default:"#222"},itemTextColorActive:{type:String,default:"orange darken-3"},itemTextColorDisabled:{type:String,default:"#444"},itemIconSize:{type:Number,default:22},itemIconColor:{type:String,default:"#444"},itemIconColorHover:{type:String,default:"#222"},itemIconColorActive:{type:String,default:"orange darken-3"},itemIconColorDisabled:{type:String,default:"#444"},itemRippleColor:{type:String,default:"rgba(245,124,0,0.4)"},borderBottom:{type:Boolean,default:!0},borderBottomSize:{type:Number,default:2},borderBottomColor:{type:String,default:"rgba(245,124,0,0.8)"},itemDisabledColor:{type:String,default:"transparent"},itemCursorPointer:{type:Boolean,default:!0}},data:function(){return{borderBottomLeft:0,borderBottomWidth:0,itemActiveTrans:null}},watch:{itemActiveTrans:{handler(n,e){this.updateBorderBottom()},immediate:!0}},computed:{changeItemActive:function(){let n=this;return n.enableActive&&(n.itemActiveTrans=n.itemActive),""},isObjValue:function(){return 0!==Tt(this.items)&&function(e,t,o){var r=n(e)?Et:zt;return o&&Zn(e,t,o)&&(t=void 0),r(e,at(t))}(this.items,n=>Ft(n))},effBorderBottomColor:function(){return Br(this.borderBottomColor)}},methods:{resize:function(n){this.updateBorderBottom()},getIcon:function(n){let e=this;return e.isObjValue?an(n,e.keyIcon,""):""},getText:function(n){let e=this;if(e.isObjValue){return an(n,e.keyText,"")}return n},getActive:function(n){let e=this,t=!1;return e.enableActive&&(t=It(n,e.itemActiveTrans)),t},getEditable:function(n){return an(n,"editable",!0)},updateBorderBottom:function(){let n=this;if(null==n.itemActiveTrans)return;let e=0,t=[];Yn(an(n,"$refs.wli",[]),(o,r)=>{let i=o,a=an(i,"clientWidth",0),s=an(i,"clientHeight",0),l=e,d=a,u=s;r>0&&n.space>0&&(l+=n.space,d-=n.space),t.push({left:l,bottom:0,width:d,heiht:u}),e+=a});let o=-1;if(Yn(n.items,(e,t)=>{if(It(e,n.itemActiveTrans))return o=t,!1}),-1===o)return;let r=t[o];n.borderBottomLeft=r.left,n.borderBottomWidth=r.width},ckItem:function(n,e){let t=this;if(!t.getEditable(n))return;t.itemActiveTrans=n;let o=null;o=t.isObjValue?{...n}:n,t.$emit("click",o,e),t.$emit("update:itemActive",o)}}};const ii=ri;var ai=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{directives:[{name:"domresize",rawName:"v-domresize"}],attrs:{changeItemActive:n.changeItemActive},on:{domresize:n.resize}},[t("div",{staticStyle:{position:"relative",display:"flex","align-items":"center","white-space":"nowrap"}},[n.borderBottom?t("div",{style:"transition:all 0.3s; position:absolute; z-index:1; bottom:0px; left:"+n.borderBottomLeft+"px; padding-left:"+n.borderBottomWidth+"px; border-bottom:"+n.borderBottomSize+"px solid "+n.effBorderBottomColor+";"}):n._e(),n._v(" "),n._l(n.items,function(e,o){return t("div",{key:o},[t("div",{ref:"wli",refInFor:!0,style:n.space>0&&o>0?"padding-left:"+n.space+"px;":""},[t("WListItem",{attrs:{icon:n.getIcon(e),text:n.getText(e),textFontSize:n.itemTextFontSize,active:n.getActive(e),paddingStyle:n.paddingStyle,borderRadius:n.itemBorderRadius,backgroundColor:n.itemBackgroundColor,backgroundColorHover:n.itemBackgroundColorHover,backgroundColorActive:n.itemBackgroundColorActive,backgroundColorDisabled:n.itemBackgroundColorDisabled,textColor:n.itemTextColor,textColorHover:n.itemTextColorHover,textColorActive:n.itemTextColorActive,textColorDisabled:n.itemTextColorDisabled,iconSize:n.itemIconSize,iconColor:n.itemIconColor,iconColorHover:n.itemIconColorHover,iconColorActive:n.itemIconColorActive,iconColorDisabled:n.itemIconColorDisabled,rippleColor:n.getEditable(e)?n.itemRippleColor:null,editable:n.getEditable(e),disabledColor:n.itemDisabledColor,cursorPointer:!n.getActive(e)&&n.itemCursorPointer},on:{click:function(t){return n.ckItem(e,o)}},scopedSlots:n._u([{key:"item",fn:function(t){return[n._t("item",null,{item:e,kitem:o,isHover:t.isHover,isActive:t.isActive})]}},{key:"item-left",fn:function(t){return[n._t("item-left",null,{item:e,kitem:o,isHover:t.isHover,isActive:t.isActive})]}},{key:"item-content",fn:function(t){return[n._t("item-content",null,{item:e,kitem:o,isHover:t.isHover,isActive:t.isActive})]}},{key:"item-right",fn:function(t){return[n._t("item-right",null,{item:e,kitem:o,isHover:t.isHover,isActive:t.isActive})]}}],null,!0)})],1)])})],2)])};ai._withStripped=!0;const si=Xr({render:ai,staticRenderFns:[]},function(n){n&&n("data-v-0e7006de_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WListHorizontal.vue"},media:void 0})},ii,"data-v-0e7006de",false,void 0,!1,Zr,void 0,void 0);const li={name:"FlowCanvas",methods:{onMouseDown(n){this._downPos={x:n.clientX,y:n.clientY},this.$emit("canvas-mousedown",n)},onMouseMove(n){this.$emit("canvas-mousemove",n)},onMouseUp(n){if(this.$emit("canvas-mouseup",n),this._downPos){let e=n.clientX-this._downPos.x,t=n.clientY-this._downPos.y;Math.abs(e)<3&&Math.abs(t)<3&&this.$emit("canvas-click",n),this._downPos=null}},onWheel(n){this.$emit("canvas-wheel",n)},onDoubleClick(n){this.$emit("canvas-dblclick",n)},onContextMenu(n){this.$emit("canvas-contextmenu",n)},getContainerRect(){return this.$refs.container?this.$refs.container.getBoundingClientRect():null}}};var di=function(){var n=this,e=n.$createElement;return(n._self._c||e)("div",{ref:"container",staticClass:"vue-flow",on:{mousedown:n.onMouseDown,mousemove:n.onMouseMove,mouseup:n.onMouseUp,wheel:function(e){return e.preventDefault(),n.onWheel.apply(null,arguments)},dblclick:n.onDoubleClick,contextmenu:n.onContextMenu}},[n._t("default")],2)};di._withStripped=!0;const ui=Xr({render:di,staticRenderFns:[]},function(n){n&&n("data-v-21b2f6d4_0",{source:"\n.vue-flow[data-v-21b2f6d4] {\n position: relative;\n width: 100%;\n height: 100%;\n overflow: hidden;\n background-color: #fff;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n}\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\canvas\\FlowCanvas.vue"],names:[],mappings:";AAuDA;EACA,kBAAA;EACA,WAAA;EACA,YAAA;EACA,gBAAA;EACA,sBAAA;EACA,8EAAA;AACA",file:"FlowCanvas.vue",sourcesContent:["<template>\n <div\n class=\"vue-flow\"\n ref=\"container\"\n @mousedown=\"onMouseDown\"\n @mousemove=\"onMouseMove\"\n @mouseup=\"onMouseUp\"\n @wheel.prevent=\"onWheel\"\n @dblclick=\"onDoubleClick\"\n @contextmenu=\"onContextMenu\"\n >\n <slot />\n </div>\n</template>\n\n<script>\nexport default {\n name: 'FlowCanvas',\n methods: {\n onMouseDown(event) {\n this._downPos = { x: event.clientX, y: event.clientY }\n this.$emit('canvas-mousedown', event)\n },\n onMouseMove(event) {\n this.$emit('canvas-mousemove', event)\n },\n onMouseUp(event) {\n this.$emit('canvas-mouseup', event)\n // Emit click only if mouse didn't move (distinguish from drag/pan/select)\n if (this._downPos) {\n let dx = event.clientX - this._downPos.x\n let dy = event.clientY - this._downPos.y\n if (Math.abs(dx) < 3 && Math.abs(dy) < 3) {\n this.$emit('canvas-click', event)\n }\n this._downPos = null\n }\n },\n onWheel(event) {\n this.$emit('canvas-wheel', event)\n },\n onDoubleClick(event) {\n this.$emit('canvas-dblclick', event)\n },\n onContextMenu(event) {\n this.$emit('canvas-contextmenu', event)\n },\n getContainerRect() {\n return this.$refs.container ? this.$refs.container.getBoundingClientRect() : null\n },\n },\n}\n<\/script>\n\n<style scoped>\n.vue-flow {\n position: relative;\n width: 100%;\n height: 100%;\n overflow: hidden;\n background-color: #fff;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n}\n</style>\n"]},media:void 0})},li,"data-v-21b2f6d4",false,void 0,!1,Zr,void 0,void 0);const ci={name:"ViewportTransform",props:{viewport:{type:Object,default:()=>({x:0,y:0,zoom:1})}},computed:{transformStyle(){let n=this.viewport||{};return{transform:`translate(${n.x||0}px, ${n.y||0}px) scale(${void 0===n.zoom||null===n.zoom?1:n.zoom})`,transformOrigin:"0 0"}}}};var pi=function(){var n=this,e=n.$createElement;return(n._self._c||e)("div",{staticClass:"vue-flow__viewport",style:n.transformStyle},[n._t("default")],2)};pi._withStripped=!0;const fi=Xr({render:pi,staticRenderFns:[]},function(n){n&&n("data-v-3df997de_0",{source:"\n.vue-flow__viewport[data-v-3df997de] {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n transform-origin: 0 0;\n}\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\canvas\\ViewportTransform.vue"],names:[],mappings:";AA8BA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,qBAAA;AACA",file:"ViewportTransform.vue",sourcesContent:["<template>\n <div class=\"vue-flow__viewport\" :style=\"transformStyle\">\n <slot />\n </div>\n</template>\n\n<script>\nexport default {\n name: 'ViewportTransform',\n props: {\n //改收整個viewport物件(而非x/y/zoom三個純量): 令宿主WFlowVue之render僅讀取穩定物件參考,\n //平移時mutate viewport.x/y不再觸發WFlowVue重渲染(進而不再連帶重渲染全部節點/連線), 僅本組件之computed重評估更新transform\n viewport: { type: Object, default: () => ({ x: 0, y: 0, zoom: 1 }) },\n },\n computed: {\n transformStyle() {\n let v = this.viewport || {}\n let x = v.x || 0\n let y = v.y || 0\n let zoom = (v.zoom === undefined || v.zoom === null) ? 1 : v.zoom\n return {\n transform: `translate(${x}px, ${y}px) scale(${zoom})`,\n transformOrigin: '0 0',\n }\n },\n },\n}\n<\/script>\n\n<style scoped>\n.vue-flow__viewport {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n transform-origin: 0 0;\n}\n</style>\n"]},media:void 0})},ci,"data-v-3df997de",false,void 0,!1,Zr,void 0,void 0);const hi={name:"BackgroundLayer",props:{variant:{type:String,default:"dots"},gap:{type:Number,default:20},size:{type:Number,default:1},patternColor:{type:String,default:"#81818a"},bgColor:{type:String,default:null},viewport:{type:Object,default:()=>({x:0,y:0,zoom:1})}},computed:{patternId:()=>"vue-flow-bg-pattern",vpX(){return this.viewport&&this.viewport.x||0},vpY(){return this.viewport&&this.viewport.y||0},vpZoom(){let n=this.viewport&&this.viewport.zoom;return null==n?1:n},scaledGap(){return this.gap*this.vpZoom},scaledSize(){return this.size*this.vpZoom},transformedX(){return this.vpX%this.scaledGap},transformedY(){return this.vpY%this.scaledGap}}};var gi=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("svg",{staticClass:"vue-flow__background"},[t("pattern",{attrs:{id:n.patternId,x:n.transformedX,y:n.transformedY,width:n.scaledGap,height:n.scaledGap,patternUnits:"userSpaceOnUse"}},["dots"===n.variant?[t("circle",{attrs:{cx:n.scaledSize,cy:n.scaledSize,r:n.scaledSize,fill:n.patternColor}})]:[t("path",{attrs:{d:"M "+n.scaledGap+" 0 L 0 0 0 "+n.scaledGap,fill:"none",stroke:n.patternColor,"stroke-width":n.scaledSize}})]],2),n._v(" "),t("rect",{attrs:{x:"0",y:"0",width:"100%",height:"100%",fill:"url(#"+n.patternId+")"}})])};gi._withStripped=!0;const vi=Xr({render:gi,staticRenderFns:[]},function(n){n&&n("data-v-e96a0d6e_0",{source:"\n.vue-flow__background[data-v-e96a0d6e] {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n}\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\canvas\\BackgroundLayer.vue"],names:[],mappings:";AA+EA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,oBAAA;AACA",file:"BackgroundLayer.vue",sourcesContent:['<template>\n <svg class="vue-flow__background">\n <pattern\n :id="patternId"\n :x="transformedX"\n :y="transformedY"\n :width="scaledGap"\n :height="scaledGap"\n patternUnits="userSpaceOnUse"\n >\n <template v-if="variant === \'dots\'">\n <circle\n :cx="scaledSize"\n :cy="scaledSize"\n :r="scaledSize"\n :fill="patternColor"\n />\n </template>\n <template v-else>\n <path\n :d="`M ${scaledGap} 0 L 0 0 0 ${scaledGap}`"\n fill="none"\n :stroke="patternColor"\n :stroke-width="scaledSize"\n />\n </template>\n </pattern>\n <rect\n x="0" y="0"\n width="100%" height="100%"\n :fill="`url(#${patternId})`"\n />\n </svg>\n</template>\n\n<script>\nexport default {\n name: \'BackgroundLayer\',\n props: {\n variant: { type: String, default: \'dots\' },\n gap: { type: Number, default: 20 },\n size: { type: Number, default: 1 },\n patternColor: { type: String, default: \'#81818a\' },\n bgColor: { type: String, default: null },\n //改收整個viewport物件(而非x/y/zoom三個純量): 令宿主WFlowVue之render僅讀取穩定物件參考,\n //平移時mutate viewport.x/y不再觸發WFlowVue重渲染, 僅本組件之computed重評估更新pattern偏移\n viewport: { type: Object, default: () => ({ x: 0, y: 0, zoom: 1 }) },\n },\n computed: {\n patternId() {\n return \'vue-flow-bg-pattern\'\n },\n vpX() {\n return (this.viewport && this.viewport.x) || 0\n },\n vpY() {\n return (this.viewport && this.viewport.y) || 0\n },\n vpZoom() {\n let z = this.viewport && this.viewport.zoom\n return (z === undefined || z === null) ? 1 : z\n },\n scaledGap() {\n return this.gap * this.vpZoom\n },\n scaledSize() {\n return this.size * this.vpZoom\n },\n transformedX() {\n return (this.vpX % this.scaledGap)\n },\n transformedY() {\n return (this.vpY % this.scaledGap)\n },\n },\n}\n<\/script>\n\n<style scoped>\n.vue-flow__background {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n}\n</style>\n']},media:void 0})},hi,"data-v-e96a0d6e",false,void 0,!1,Zr,void 0,void 0);const mi={name:"SelectionBox",props:{box:{type:Object,default:null}},computed:{boxStyle(){return this.box?{left:`${this.box.x}px`,top:`${this.box.y}px`,width:`${this.box.width}px`,height:`${this.box.height}px`}:{}}}};var Ai=function(){var n=this,e=n.$createElement,t=n._self._c||e;return n.box?t("div",{staticClass:"vue-flow__selection-box",style:n.boxStyle}):n._e()};Ai._withStripped=!0;const bi=Xr({render:Ai,staticRenderFns:[]},function(n){n&&n("data-v-7d8b4695_0",{source:"\n.vue-flow__selection-box[data-v-7d8b4695] {\n position: absolute;\n background: rgba(0, 65, 208, 0.08);\n border: 1px solid rgba(0, 65, 208, 0.4);\n pointer-events: none;\n}\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\canvas\\SelectionBox.vue"],names:[],mappings:";AA6BA;EACA,kBAAA;EACA,kCAAA;EACA,uCAAA;EACA,oBAAA;AACA",file:"SelectionBox.vue",sourcesContent:['<template>\n <div\n v-if="box"\n class="vue-flow__selection-box"\n :style="boxStyle"\n />\n</template>\n\n<script>\nexport default {\n name: \'SelectionBox\',\n props: {\n box: { type: Object, default: null }, // { x, y, width, height }\n },\n computed: {\n boxStyle() {\n if (!this.box) return {}\n return {\n left: `${this.box.x}px`,\n top: `${this.box.y}px`,\n width: `${this.box.width}px`,\n height: `${this.box.height}px`,\n }\n },\n },\n}\n<\/script>\n\n<style scoped>\n.vue-flow__selection-box {\n position: absolute;\n background: rgba(0, 65, 208, 0.08);\n border: 1px solid rgba(0, 65, 208, 0.4);\n pointer-events: none;\n}\n</style>\n']},media:void 0})},mi,"data-v-7d8b4695",false,void 0,!1,Zr,void 0,void 0);const yi={name:"NodeFace",inject:{getDefNode:{default:()=>()=>({})}},props:{node:{type:Object,required:!0},lastW:{type:Number,default:0},lastH:{type:Number,default:0}},computed:{dn(){return this.getDefNode()},nodeW(){return this.node.width||this.lastW||150},nodeH(){return this.node.height||this.lastH||40},isDiamond(){return"diamond"===this.node.shape},isEllipse(){return"ellipse"===this.node.shape},isTriangle(){let n=this.node.shape;return"triangle"===n||"triangle-right"===n||"triangle-down"===n||"triangle-left"===n},diamondPoints(){return this.isDiamond?this.nodeW/2+",0 "+this.nodeW+","+this.nodeH/2+" "+this.nodeW/2+","+this.nodeH+" 0,"+this.nodeH/2:""},trianglePoints(){if(!this.isTriangle)return"";let n=this.nodeW,e=this.nodeH,t=this.node.shape;return"triangle-right"===t?"0,0 "+n+","+e/2+" 0,"+e:"triangle-down"===t?"0,0 "+n+",0 "+n/2+","+e:"triangle-left"===t?n+",0 0,"+e/2+" "+n+","+e:n/2+",0 0,"+e+" "+n+","+e},svgViewBox(){return"0 0 "+this.nodeW+" "+this.nodeH},diamondViewBox(){return this.isDiamond?this.svgViewBox:"0 0 150 40"}}};var Ci=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{staticClass:"vue-flow__node-face"},[n.isDiamond?t("svg",{staticClass:"vue-flow__shape-svg",attrs:{viewBox:n.diamondViewBox,preserveAspectRatio:"none"}},[t("polygon",{attrs:{points:n.diamondPoints,fill:n.node.faceColor||n.dn.faceColor||"#fff","fill-opacity":1,stroke:n.node.edgeColor||n.dn.edgeColor||"#bbb","stroke-opacity":1,"stroke-width":void 0!==n.node.edgeWidth?n.node.edgeWidth:void 0!==n.dn.edgeWidth?n.dn.edgeWidth:1}})]):n._e(),n._v(" "),n.isEllipse?t("svg",{staticClass:"vue-flow__shape-svg",attrs:{viewBox:n.svgViewBox,preserveAspectRatio:"none"}},[t("ellipse",{attrs:{cx:n.nodeW/2,cy:n.nodeH/2,rx:n.nodeW/2,ry:n.nodeH/2,fill:n.node.faceColor||n.dn.faceColor||"#fff","fill-opacity":1,stroke:n.node.edgeColor||n.dn.edgeColor||"#bbb","stroke-opacity":1,"stroke-width":void 0!==n.node.edgeWidth?n.node.edgeWidth:void 0!==n.dn.edgeWidth?n.dn.edgeWidth:1}})]):n._e(),n._v(" "),n.isTriangle?t("svg",{staticClass:"vue-flow__shape-svg",attrs:{viewBox:n.svgViewBox,preserveAspectRatio:"none"}},[t("polygon",{attrs:{points:n.trianglePoints,fill:n.node.faceColor||n.dn.faceColor||"#fff","fill-opacity":1,stroke:n.node.edgeColor||n.dn.edgeColor||"#bbb","stroke-opacity":1,"stroke-width":void 0!==n.node.edgeWidth?n.node.edgeWidth:void 0!==n.dn.edgeWidth?n.dn.edgeWidth:1}})]):n._e()])};Ci._withStripped=!0;const xi=Xr({render:Ci,staticRenderFns:[]},function(n){n&&n("data-v-2edaed7e_0",{source:"\n.vue-flow__node-face[data-v-2edaed7e] {\n pointer-events: none;\n}\n.vue-flow__shape-svg[data-v-2edaed7e] {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n overflow: visible;\n}\n.vue-flow__shape-svg polygon[data-v-2edaed7e],\n.vue-flow__shape-svg ellipse[data-v-2edaed7e] {\n transition: filter 0.3s ease;\n}\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\nodes\\NodeFace.vue"],names:[],mappings:";AA+GA;EACA,oBAAA;AACA;AACA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,oBAAA;EACA,iBAAA;AACA;AACA;;EAEA,4BAAA;AACA",file:"NodeFace.vue",sourcesContent:["<template>\n <div class=\"vue-flow__node-face\">\n \x3c!-- Diamond shape SVG --\x3e\n <svg\n v-if=\"isDiamond\"\n class=\"vue-flow__shape-svg\"\n :viewBox=\"diamondViewBox\"\n preserveAspectRatio=\"none\"\n >\n <polygon\n :points=\"diamondPoints\"\n :fill=\"node.faceColor || dn.faceColor || '#fff'\"\n :fill-opacity=\"1\"\n :stroke=\"node.edgeColor || dn.edgeColor || '#bbb'\"\n :stroke-opacity=\"1\"\n :stroke-width=\"node.edgeWidth !== undefined ? node.edgeWidth : (dn.edgeWidth !== undefined ? dn.edgeWidth : 1)\"\n />\n </svg>\n \x3c!-- Ellipse shape SVG --\x3e\n <svg\n v-if=\"isEllipse\"\n class=\"vue-flow__shape-svg\"\n :viewBox=\"svgViewBox\"\n preserveAspectRatio=\"none\"\n >\n <ellipse\n :cx=\"nodeW / 2\"\n :cy=\"nodeH / 2\"\n :rx=\"nodeW / 2\"\n :ry=\"nodeH / 2\"\n :fill=\"node.faceColor || dn.faceColor || '#fff'\"\n :fill-opacity=\"1\"\n :stroke=\"node.edgeColor || dn.edgeColor || '#bbb'\"\n :stroke-opacity=\"1\"\n :stroke-width=\"node.edgeWidth !== undefined ? node.edgeWidth : (dn.edgeWidth !== undefined ? dn.edgeWidth : 1)\"\n />\n </svg>\n \x3c!-- Triangle shape SVG --\x3e\n <svg\n v-if=\"isTriangle\"\n class=\"vue-flow__shape-svg\"\n :viewBox=\"svgViewBox\"\n preserveAspectRatio=\"none\"\n >\n <polygon\n :points=\"trianglePoints\"\n :fill=\"node.faceColor || dn.faceColor || '#fff'\"\n :fill-opacity=\"1\"\n :stroke=\"node.edgeColor || dn.edgeColor || '#bbb'\"\n :stroke-opacity=\"1\"\n :stroke-width=\"node.edgeWidth !== undefined ? node.edgeWidth : (dn.edgeWidth !== undefined ? dn.edgeWidth : 1)\"\n />\n </svg>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'NodeFace',\n inject: { getDefNode: { default: () => () => ({}) } },\n props: {\n node: { type: Object, required: true },\n lastW: { type: Number, default: 0 },\n lastH: { type: Number, default: 0 },\n },\n computed: {\n dn() {\n return this.getDefNode()\n },\n nodeW() {\n return this.node.width || this.lastW || 150\n },\n nodeH() {\n return this.node.height || this.lastH || 40\n },\n isDiamond() {\n return this.node.shape === 'diamond'\n },\n isEllipse() {\n return this.node.shape === 'ellipse'\n },\n isTriangle() {\n let s = this.node.shape\n return s === 'triangle' || s === 'triangle-right' || s === 'triangle-down' || s === 'triangle-left'\n },\n diamondPoints() {\n if (!this.isDiamond) return ''\n return (this.nodeW / 2) + ',0 ' + this.nodeW + ',' + (this.nodeH / 2) + ' ' + (this.nodeW / 2) + ',' + this.nodeH + ' 0,' + (this.nodeH / 2)\n },\n trianglePoints() {\n if (!this.isTriangle) return ''\n let w = this.nodeW\n let h = this.nodeH\n let s = this.node.shape\n if (s === 'triangle-right') return '0,0 ' + w + ',' + (h / 2) + ' 0,' + h\n if (s === 'triangle-down') return '0,0 ' + w + ',0 ' + (w / 2) + ',' + h\n if (s === 'triangle-left') return w + ',0 0,' + (h / 2) + ' ' + w + ',' + h\n return (w / 2) + ',0 0,' + h + ' ' + w + ',' + h\n },\n svgViewBox() {\n return '0 0 ' + this.nodeW + ' ' + this.nodeH\n },\n diamondViewBox() {\n if (!this.isDiamond) return '0 0 150 40'\n return this.svgViewBox\n },\n },\n}\n<\/script>\n\n<style scoped>\n.vue-flow__node-face {\n pointer-events: none;\n}\n.vue-flow__shape-svg {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n overflow: visible;\n}\n.vue-flow__shape-svg polygon,\n.vue-flow__shape-svg ellipse {\n transition: filter 0.3s ease;\n}\n</style>\n"]},media:void 0})},yi,"data-v-2edaed7e",false,void 0,!1,Zr,void 0,void 0);const wi={name:"FlowHandle",props:{type:{type:String,default:"source"},position:{type:String,default:"bottom"},id:{type:String,default:null},connectable:{type:Boolean,default:!0},locked:{type:Boolean,default:!1},offset:{type:String,default:null},customStyle:{type:Object,default:null}},computed:{offsetStyle(){if(this.customStyle)return this.customStyle;if(!this.offset)return null;return"top"===this.position||"bottom"===this.position?{left:this.offset,transform:"translateX(-50%)"}:{top:this.offset,transform:"translateY(-50%)"}},classes(){return["vue-flow__handle",`vue-flow__handle--${this.position}`,`vue-flow__handle--${this.type}`,{"vue-flow__handle--not-connectable":!this.connectable}]}},methods:{onMouseDown(n){this.connectable&&this.$emit("connect-start",{event:n,handleId:this.id||this.type,handleType:this.type,handlePosition:this.position})}}};var Si=function(){var n=this,e=n.$createElement,t=n._self._c||e;return n.locked?n._e():t("div",{class:n.classes,style:n.offsetStyle,attrs:{"data-handle-id":n.id||n.type,"data-handle-type":n.type,"data-handle-position":n.position},on:{mousedown:function(e){return e.stopPropagation(),n.onMouseDown.apply(null,arguments)}}})};Si._withStripped=!0;const ki=Xr({render:Si,staticRenderFns:[]},function(n){n&&n("data-v-6c1627c2_0",{source:"\n.vue-flow__handle[data-v-6c1627c2] {\n position: absolute;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: #555;\n border: 1px solid #fff;\n pointer-events: all;\n cursor: crosshair;\n z-index: 3;\n}\n/* 連出點(source)白面黑線, 與連入點(深灰底白框)區隔: 使用者一眼可辨可拖曳建線之出發點 */\n.vue-flow__handle--source[data-v-6c1627c2] {\n background: #fff;\n border: 1px solid #1a1918;\n}\n/* 連入點(target)不可作為拖曳建線之出發點, 不顯示十字準星 */\n.vue-flow__handle--target[data-v-6c1627c2] {\n cursor: default;\n}\n.vue-flow__handle--top[data-v-6c1627c2] {\n top: -4px;\n left: 50%;\n transform: translateX(-50%);\n}\n.vue-flow__handle--bottom[data-v-6c1627c2] {\n bottom: -4px;\n left: 50%;\n transform: translateX(-50%);\n}\n.vue-flow__handle--left[data-v-6c1627c2] {\n top: 50%;\n left: -4px;\n transform: translateY(-50%);\n}\n.vue-flow__handle--right[data-v-6c1627c2] {\n top: 50%;\n right: -4px;\n transform: translateY(-50%);\n}\n.vue-flow__handle--not-connectable[data-v-6c1627c2] {\n cursor: default;\n pointer-events: none;\n}\n.vue-flow__handle[data-v-6c1627c2]:hover {\n background: #0041d0;\n width: 10px;\n height: 10px;\n}\n.vue-flow__handle--top[data-v-6c1627c2]:hover { top: -5px;\n}\n.vue-flow__handle--bottom[data-v-6c1627c2]:hover { bottom: -5px;\n}\n.vue-flow__handle--left[data-v-6c1627c2]:hover { left: -5px;\n}\n.vue-flow__handle--right[data-v-6c1627c2]:hover { right: -5px;\n}\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\nodes\\Handle.vue"],names:[],mappings:";AAwDA;EACA,kBAAA;EACA,UAAA;EACA,WAAA;EACA,kBAAA;EACA,gBAAA;EACA,sBAAA;EACA,mBAAA;EACA,iBAAA;EACA,UAAA;AACA;AACA,qDAAA;AACA;EACA,gBAAA;EACA,yBAAA;AACA;AACA,qCAAA;AACA;EACA,eAAA;AACA;AACA;EACA,SAAA;EACA,SAAA;EACA,2BAAA;AACA;AACA;EACA,YAAA;EACA,SAAA;EACA,2BAAA;AACA;AACA;EACA,QAAA;EACA,UAAA;EACA,2BAAA;AACA;AACA;EACA,QAAA;EACA,WAAA;EACA,2BAAA;AACA;AACA;EACA,eAAA;EACA,oBAAA;AACA;AACA;EACA,mBAAA;EACA,WAAA;EACA,YAAA;AACA;AACA,gDAAA,SAAA;AAAA;AACA,mDAAA,YAAA;AAAA;AACA,iDAAA,UAAA;AAAA;AACA,kDAAA,WAAA;AAAA",file:"Handle.vue",sourcesContent:["<template>\n <div\n v-if=\"!locked\"\n :class=\"classes\"\n :style=\"offsetStyle\"\n :data-handle-id=\"id || type\"\n :data-handle-type=\"type\"\n :data-handle-position=\"position\"\n @mousedown.stop=\"onMouseDown\"\n />\n</template>\n\n<script>\nexport default {\n name: 'FlowHandle',\n props: {\n type: { type: String, default: 'source' }, // 'source' | 'target'\n position: { type: String, default: 'bottom' }, // 'top' | 'right' | 'bottom' | 'left'\n id: { type: String, default: null },\n connectable: { type: Boolean, default: true },\n locked: { type: Boolean, default: false },\n offset: { type: String, default: null },\n customStyle: { type: Object, default: null },\n },\n computed: {\n offsetStyle() {\n if (this.customStyle) return this.customStyle\n if (!this.offset) return null\n const isHorizontal = this.position === 'top' || this.position === 'bottom'\n if (isHorizontal) return { left: this.offset, transform: 'translateX(-50%)' }\n return { top: this.offset, transform: 'translateY(-50%)' }\n },\n classes() {\n return [\n 'vue-flow__handle',\n `vue-flow__handle--${this.position}`,\n `vue-flow__handle--${this.type}`,\n { 'vue-flow__handle--not-connectable': !this.connectable },\n ]\n },\n },\n methods: {\n onMouseDown(event) {\n if (!this.connectable) return\n this.$emit('connect-start', {\n event,\n handleId: this.id || this.type,\n handleType: this.type,\n handlePosition: this.position,\n })\n },\n },\n}\n<\/script>\n\n<style scoped>\n.vue-flow__handle {\n position: absolute;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: #555;\n border: 1px solid #fff;\n pointer-events: all;\n cursor: crosshair;\n z-index: 3;\n}\n/* 連出點(source)白面黑線, 與連入點(深灰底白框)區隔: 使用者一眼可辨可拖曳建線之出發點 */\n.vue-flow__handle--source {\n background: #fff;\n border: 1px solid #1a1918;\n}\n/* 連入點(target)不可作為拖曳建線之出發點, 不顯示十字準星 */\n.vue-flow__handle--target {\n cursor: default;\n}\n.vue-flow__handle--top {\n top: -4px;\n left: 50%;\n transform: translateX(-50%);\n}\n.vue-flow__handle--bottom {\n bottom: -4px;\n left: 50%;\n transform: translateX(-50%);\n}\n.vue-flow__handle--left {\n top: 50%;\n left: -4px;\n transform: translateY(-50%);\n}\n.vue-flow__handle--right {\n top: 50%;\n right: -4px;\n transform: translateY(-50%);\n}\n.vue-flow__handle--not-connectable {\n cursor: default;\n pointer-events: none;\n}\n.vue-flow__handle:hover {\n background: #0041d0;\n width: 10px;\n height: 10px;\n}\n.vue-flow__handle--top:hover { top: -5px; }\n.vue-flow__handle--bottom:hover { bottom: -5px; }\n.vue-flow__handle--left:hover { left: -5px; }\n.vue-flow__handle--right:hover { right: -5px; }\n</style>\n"]},media:void 0})},wi,"data-v-6c1627c2",false,void 0,!1,Zr,void 0,void 0);const _i={name:"DefaultNode",components:{Handle:ki},inject:{getDefNode:{default:()=>()=>({})},getConns:{default:()=>()=>[]}},props:{node:{type:Object,required:!0},connectable:{type:Boolean,default:!0},locked:{type:Boolean,default:!1}},computed:{dn(){return this.getDefNode()},nodeToPosition(){return this.node.toPosition||this.dn.toPosition||"bottom"},nodeFromPosition(){return this.node.fromPosition||this.dn.fromPosition||"top"},usedSourceSides(){const n=this.nodeToPosition,e=this.getConns()||[],t=[];for(const o of e){if(o.from!==this.node.id)continue;const e=o.fromPosition||n;t.indexOf(e)<0&&t.push(e)}return t.length?t:[n]},usedTargetSides(){const n=this.nodeFromPosition,e=this.getConns()||[],t=[];for(const o of e){if(o.to!==this.node.id)continue;const e=o.toPosition||n;t.indexOf(e)<0&&t.push(e)}return t.length?t:[n]},isDiamond(){return"diamond"===this.node.shape},isEllipse(){return"ellipse"===this.node.shape},isTriangle(){let n=this.node.shape;return"triangle"===n||"triangle-right"===n||"triangle-down"===n||"triangle-left"===n},isSvgShape(){return this.isDiamond||this.isEllipse||this.isTriangle},labelStyle(){if(!this.isTriangle)return null;let n=this.node.width||this.dn.width||150,e=this.node.height||this.dn.height||40,t=this.node.shape,o=0,r=0;return"triangle-right"===t?o=Math.round(-n/6):"triangle-down"===t?r=Math.round(-e/6):"triangle-left"===t?o=Math.round(n/6):r=Math.round(e/6),{transform:`translate(${o}px, ${r}px)`}}},methods:{isBothSide(n){return this.usedSourceSides.indexOf(n)>=0&&this.usedTargetSides.indexOf(n)>=0},targetOffsetFor(n){return this.isSvgShape?null:this.isBothSide(n)?"33%":null},sourceOffsetFor(n){return this.isSvgShape?null:this.isBothSide(n)?"67%":null},targetHandleStyleFor(n){const e=this.isBothSide(n);return this.isTriangle?this.getTriangleHandleStyle(n,e?.33:.5):this.isEllipse&&e?this.getEllipseHandleStyle(n,.33):this.isDiamond&&e?this.getDiamondOffsetStyle(n,.33):null},sourceHandleStyleFor(n){const e=this.isBothSide(n);return this.isTriangle?this.getTriangleHandleStyle(n,e?.67:.5):this.isEllipse&&e?this.getEllipseHandleStyle(n,.67):this.isDiamond&&e?this.getDiamondOffsetStyle(n,.67):null},getTriangleHandleStyle(n,e){let t=this.triangleVertices(),o=this.pointOnTriangleSide(t,n,e);return{left:o.x+"%",top:o.y+"%",transform:"translate(-50%, -50%)"}},triangleVertices(){let n=this.node.shape;return"triangle-right"===n?{apex:{x:100,y:50},baseA:{x:0,y:0},baseB:{x:0,y:100},apexSide:"right",baseSide:"left",edgeA:"top",edgeB:"bottom"}:"triangle-down"===n?{apex:{x:50,y:100},baseA:{x:0,y:0},baseB:{x:100,y:0},apexSide:"bottom",baseSide:"top",edgeA:"left",edgeB:"right"}:"triangle-left"===n?{apex:{x:0,y:50},baseA:{x:100,y:0},baseB:{x:100,y:100},apexSide:"left",baseSide:"right",edgeA:"top",edgeB:"bottom"}:{apex:{x:50,y:0},baseA:{x:0,y:100},baseB:{x:100,y:100},apexSide:"top",baseSide:"bottom",edgeA:"left",edgeB:"right"}},pointOnTriangleSide(n,e,t){if(e===n.apexSide){if(t<=.5){let e=2*t;return{x:n.baseA.x+(n.apex.x-n.baseA.x)*e,y:n.baseA.y+(n.apex.y-n.baseA.y)*e}}{let e=2*(t-.5);return{x:n.apex.x+(n.baseB.x-n.apex.x)*e,y:n.apex.y+(n.baseB.y-n.apex.y)*e}}}return e===n.baseSide?{x:n.baseA.x+(n.baseB.x-n.baseA.x)*t,y:n.baseA.y+(n.baseB.y-n.baseA.y)*t}:e===n.edgeA?{x:n.apex.x+(n.baseA.x-n.apex.x)*t,y:n.apex.y+(n.baseA.y-n.apex.y)*t}:e===n.edgeB?{x:n.apex.x+(n.baseB.x-n.apex.x)*t,y:n.apex.y+(n.baseB.y-n.apex.y)*t}:{x:50,y:50}},getEllipseHandleStyle(n,e){let t;switch(n){case"top":t=Math.PI*(1-e);break;case"bottom":t=Math.PI*(e-1);break;case"left":t=Math.PI*(.5+e);break;case"right":t=Math.PI*(.5-e);break;default:t=0}return{left:50+50*Math.cos(t)+"%",top:50-50*Math.sin(t)+"%",transform:"translate(-50%, -50%)"}},getDiamondOffsetStyle(n,e){switch(n){case"top":if(e<=.5){let n=2*e;return{left:50*n+"%",top:50*(1-n)+"%",transform:"translate(-50%, -50%)"}}{let n=2*(e-.5);return{left:50+50*n+"%",top:50*n+"%",transform:"translate(-50%, -50%)"}}case"bottom":if(e<=.5){let n=2*e;return{left:50*n+"%",top:50+50*n+"%",transform:"translate(-50%, -50%)"}}{let n=2*(e-.5);return{left:50+50*n+"%",top:100-50*n+"%",transform:"translate(-50%, -50%)"}}case"left":if(e<=.5){let n=2*e;return{left:50*(1-n)+"%",top:50*n+"%",transform:"translate(-50%, -50%)"}}{let n=2*(e-.5);return{left:50*n+"%",top:50+50*n+"%",transform:"translate(-50%, -50%)"}}case"right":if(e<=.5){let n=2*e;return{left:50+50*n+"%",top:50*n+"%",transform:"translate(-50%, -50%)"}}{let n=2*(e-.5);return{left:100-50*n+"%",top:50+50*n+"%",transform:"translate(-50%, -50%)"}}default:return null}}}};var Bi=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{staticClass:"vue-flow__node-basic"},[n._l(n.usedTargetSides,function(e){return t("Handle",{key:"t-"+e,attrs:{type:"target",position:e,connectable:n.connectable,locked:n.locked,offset:n.targetOffsetFor(e),"custom-style":n.targetHandleStyleFor(e)},on:{"connect-start":function(e){return n.$emit("connect-start",e)}}})}),n._v(" "),t("div",{staticClass:"vue-flow__node-label",style:n.labelStyle},[n._v(n._s(n.node.name))]),n._v(" "),n._l(n.usedSourceSides,function(e){return t("Handle",{key:"s-"+e,attrs:{type:"source",position:e,connectable:n.connectable,locked:n.locked,offset:n.sourceOffsetFor(e),"custom-style":n.sourceHandleStyleFor(e)},on:{"connect-start":function(e){return n.$emit("connect-start",e)}}})})],2)};Bi._withStripped=!0;const Pi=Xr({render:Bi,staticRenderFns:[]},function(n){n&&n("data-v-16b4052e_0",{source:"\n.vue-flow__node-basic[data-v-16b4052e] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n padding: 10px 20px;\n}\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\nodes\\DefaultNode.vue"],names:[],mappings:";AAmSA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,QAAA;EACA,SAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,sBAAA;EACA,kBAAA;AACA",file:"DefaultNode.vue",sourcesContent:["<template>\n <div class=\"vue-flow__node-basic\">\n <Handle\n v-for=\"p in usedTargetSides\"\n :key=\"'t-' + p\"\n type=\"target\"\n :position=\"p\"\n :connectable=\"connectable\"\n :locked=\"locked\"\n :offset=\"targetOffsetFor(p)\"\n :custom-style=\"targetHandleStyleFor(p)\"\n @connect-start=\"$emit('connect-start', $event)\"\n />\n <div class=\"vue-flow__node-label\" :style=\"labelStyle\">{{ node.name }}</div>\n <Handle\n v-for=\"p in usedSourceSides\"\n :key=\"'s-' + p\"\n type=\"source\"\n :position=\"p\"\n :connectable=\"connectable\"\n :locked=\"locked\"\n :offset=\"sourceOffsetFor(p)\"\n :custom-style=\"sourceHandleStyleFor(p)\"\n @connect-start=\"$emit('connect-start', $event)\"\n />\n </div>\n</template>\n\n<script>\nimport Handle from './Handle.vue'\n\nexport default {\n name: 'DefaultNode',\n components: { Handle },\n inject: { getDefNode: { default: () => () => ({}) }, getConns: { default: () => () => [] } },\n props: {\n node: { type: Object, required: true },\n connectable: { type: Boolean, default: true },\n locked: { type: Boolean, default: false },\n },\n computed: {\n dn() {\n return this.getDefNode()\n },\n nodeToPosition() {\n return this.node.toPosition || this.dn.toPosition || 'bottom'\n },\n nodeFromPosition() {\n return this.node.fromPosition || this.dn.fromPosition || 'top'\n },\n // 連接點依「實際連線使用之方位」顯示(conn層級錨點優先), 無邊時回退節點/預設方位\n usedSourceSides() {\n const def = this.nodeToPosition\n const conns = this.getConns() || []\n const sides = []\n for (const c of conns) {\n if (c.from !== this.node.id) continue\n const p = c.fromPosition || def\n if (sides.indexOf(p) < 0) sides.push(p)\n }\n return sides.length ? sides : [def]\n },\n usedTargetSides() {\n const def = this.nodeFromPosition\n const conns = this.getConns() || []\n const sides = []\n for (const c of conns) {\n if (c.to !== this.node.id) continue\n const p = c.toPosition || def\n if (sides.indexOf(p) < 0) sides.push(p)\n }\n return sides.length ? sides : [def]\n },\n isDiamond() {\n return this.node.shape === 'diamond'\n },\n isEllipse() {\n return this.node.shape === 'ellipse'\n },\n isTriangle() {\n let s = this.node.shape\n return s === 'triangle' || s === 'triangle-right' || s === 'triangle-down' || s === 'triangle-left'\n },\n isSvgShape() {\n return this.isDiamond || this.isEllipse || this.isTriangle\n },\n labelStyle() {\n if (!this.isTriangle) return null\n let w = this.node.width || this.dn.width || 150\n let h = this.node.height || this.dn.height || 40\n let s = this.node.shape\n let x = 0\n let y = 0\n if (s === 'triangle-right') x = Math.round(-w / 6)\n else if (s === 'triangle-down') y = Math.round(-h / 6)\n else if (s === 'triangle-left') x = Math.round(w / 6)\n else y = Math.round(h / 6)\n return { transform: `translate(${x}px, ${y}px)` }\n },\n },\n methods: {\n // 同一側同時有入點與出點時錯開(入33%/出67%), 否則置中\n isBothSide(p) {\n return this.usedSourceSides.indexOf(p) >= 0 && this.usedTargetSides.indexOf(p) >= 0\n },\n targetOffsetFor(p) {\n if (this.isSvgShape) return null\n return this.isBothSide(p) ? '33%' : null\n },\n sourceOffsetFor(p) {\n if (this.isSvgShape) return null\n return this.isBothSide(p) ? '67%' : null\n },\n targetHandleStyleFor(p) {\n const both = this.isBothSide(p)\n if (this.isTriangle) {\n return this.getTriangleHandleStyle(p, both ? 0.33 : 0.5)\n }\n if (this.isEllipse && both) {\n return this.getEllipseHandleStyle(p, 0.33)\n }\n if (!this.isDiamond || !both) return null\n return this.getDiamondOffsetStyle(p, 0.33)\n },\n sourceHandleStyleFor(p) {\n const both = this.isBothSide(p)\n if (this.isTriangle) {\n return this.getTriangleHandleStyle(p, both ? 0.67 : 0.5)\n }\n if (this.isEllipse && both) {\n return this.getEllipseHandleStyle(p, 0.67)\n }\n if (!this.isDiamond || !both) return null\n return this.getDiamondOffsetStyle(p, 0.67)\n },\n getTriangleHandleStyle(side, ratio) {\n // Get vertices based on triangle direction\n let v = this.triangleVertices()\n let pt = this.pointOnTriangleSide(v, side, ratio)\n return { left: pt.x + '%', top: pt.y + '%', transform: 'translate(-50%, -50%)' }\n },\n triangleVertices() {\n // Returns 3 vertices in % coords: { apex, baseA, baseB }\n // Also returns which sides correspond to 'top','right','bottom','left'\n let s = this.node.shape\n if (s === 'triangle-right') {\n // apex right-center, base on left\n return {\n apex: { x: 100, y: 50 },\n baseA: { x: 0, y: 0 },\n baseB: { x: 0, y: 100 },\n apexSide: 'right',\n baseSide: 'left',\n edgeA: 'top',\n edgeB: 'bottom'\n }\n }\n if (s === 'triangle-down') {\n // apex bottom-center, base on top\n return {\n apex: { x: 50, y: 100 },\n baseA: { x: 0, y: 0 },\n baseB: { x: 100, y: 0 },\n apexSide: 'bottom',\n baseSide: 'top',\n edgeA: 'left',\n edgeB: 'right'\n }\n }\n if (s === 'triangle-left') {\n // apex left-center, base on right\n return {\n apex: { x: 0, y: 50 },\n baseA: { x: 100, y: 0 },\n baseB: { x: 100, y: 100 },\n apexSide: 'left',\n baseSide: 'right',\n edgeA: 'top',\n edgeB: 'bottom'\n }\n }\n // triangle (up): apex top-center, base on bottom\n return {\n apex: { x: 50, y: 0 },\n baseA: { x: 0, y: 100 },\n baseB: { x: 100, y: 100 },\n apexSide: 'top',\n baseSide: 'bottom',\n edgeA: 'left',\n edgeB: 'right'\n }\n },\n pointOnTriangleSide(v, side, ratio) {\n // apexSide: the side with the apex vertex (a single point, but for same-side we sweep across adjacent edges)\n // baseSide: the straight base edge\n // edgeA: the edge from baseA to apex\n // edgeB: the edge from apex to baseB\n if (side === v.apexSide) {\n // Sweep from edgeA near base → apex → edgeB near base\n if (ratio <= 0.5) {\n let t = ratio * 2\n return { x: v.baseA.x + (v.apex.x - v.baseA.x) * t, y: v.baseA.y + (v.apex.y - v.baseA.y) * t }\n }\n else {\n let t2 = (ratio - 0.5) * 2\n return { x: v.apex.x + (v.baseB.x - v.apex.x) * t2, y: v.apex.y + (v.baseB.y - v.apex.y) * t2 }\n }\n }\n if (side === v.baseSide) {\n // Straight line from baseA to baseB\n return { x: v.baseA.x + (v.baseB.x - v.baseA.x) * ratio, y: v.baseA.y + (v.baseB.y - v.baseA.y) * ratio }\n }\n if (side === v.edgeA) {\n // Edge from apex to baseA\n return { x: v.apex.x + (v.baseA.x - v.apex.x) * ratio, y: v.apex.y + (v.baseA.y - v.apex.y) * ratio }\n }\n if (side === v.edgeB) {\n // Edge from apex to baseB\n return { x: v.apex.x + (v.baseB.x - v.apex.x) * ratio, y: v.apex.y + (v.baseB.y - v.apex.y) * ratio }\n }\n return { x: 50, y: 50 }\n },\n getEllipseHandleStyle(side, ratio) {\n // Map ratio (0..1) to an angle on the ellipse quadrant for the given side\n // For 'top': angle goes from PI (left) to 0 (right), ratio 0.5 = top center\n // We position the handle on the ellipse border using parametric coords\n let angle\n switch (side) {\n case 'top':\n angle = Math.PI * (1 - ratio); break\n case 'bottom':\n angle = Math.PI * (ratio - 1); break\n case 'left':\n angle = Math.PI * (0.5 + ratio); break\n case 'right':\n angle = Math.PI * (0.5 - ratio); break\n default:\n angle = 0\n }\n // Ellipse parametric: x = 50% + 50% * cos(angle), y = 50% - 50% * sin(angle)\n let leftPct = 50 + 50 * Math.cos(angle)\n let topPct = 50 - 50 * Math.sin(angle)\n return { left: leftPct + '%', top: topPct + '%', transform: 'translate(-50%, -50%)' }\n },\n getDiamondOffsetStyle(side, ratio) {\n switch (side) {\n case 'top':\n if (ratio <= 0.5) {\n let t = ratio * 2\n return { left: (t * 50) + '%', top: ((1 - t) * 50) + '%', transform: 'translate(-50%, -50%)' }\n }\n else {\n let t2 = (ratio - 0.5) * 2\n return { left: (50 + t2 * 50) + '%', top: (t2 * 50) + '%', transform: 'translate(-50%, -50%)' }\n }\n case 'bottom':\n if (ratio <= 0.5) {\n let t3 = ratio * 2\n return { left: (t3 * 50) + '%', top: (50 + t3 * 50) + '%', transform: 'translate(-50%, -50%)' }\n }\n else {\n let t4 = (ratio - 0.5) * 2\n return { left: (50 + t4 * 50) + '%', top: (100 - t4 * 50) + '%', transform: 'translate(-50%, -50%)' }\n }\n case 'left':\n if (ratio <= 0.5) {\n let t5 = ratio * 2\n return { left: ((1 - t5) * 50) + '%', top: (t5 * 50) + '%', transform: 'translate(-50%, -50%)' }\n }\n else {\n let t6 = (ratio - 0.5) * 2\n return { left: (t6 * 50) + '%', top: (50 + t6 * 50) + '%', transform: 'translate(-50%, -50%)' }\n }\n case 'right':\n if (ratio <= 0.5) {\n let t7 = ratio * 2\n return { left: (50 + t7 * 50) + '%', top: (t7 * 50) + '%', transform: 'translate(-50%, -50%)' }\n }\n else {\n let t8 = (ratio - 0.5) * 2\n return { left: (100 - t8 * 50) + '%', top: (50 + t8 * 50) + '%', transform: 'translate(-50%, -50%)' }\n }\n default:\n return null\n }\n },\n },\n}\n<\/script>\n\n<style scoped>\n.vue-flow__node-basic {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n padding: 10px 20px;\n}\n</style>\n"]},media:void 0})},_i,"data-v-16b4052e",false,void 0,!1,Zr,void 0,void 0);const Ti={name:"InputNode",components:{Handle:ki},inject:{getDefNode:{default:()=>()=>({})},getConns:{default:()=>()=>[]}},props:{node:{type:Object,required:!0},connectable:{type:Boolean,default:!0},locked:{type:Boolean,default:!1}},computed:{dn(){return this.getDefNode()},usedSourceSides(){const n=this.node.toPosition||this.dn.toPosition||"bottom",e=this.getConns()||[],t=[];for(const o of e){if(o.from!==this.node.id)continue;const e=o.fromPosition||n;t.indexOf(e)<0&&t.push(e)}return t.length?t:[n]}}};var Ei=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{staticClass:"vue-flow__node-input"},[t("div",{staticClass:"vue-flow__node-label"},[n._v(n._s(n.node.name))]),n._v(" "),n._l(n.usedSourceSides,function(e){return t("Handle",{key:"s-"+e,attrs:{type:"source",position:e,connectable:n.connectable,locked:n.locked},on:{"connect-start":function(e){return n.$emit("connect-start",e)}}})})],2)};Ei._withStripped=!0;const zi=Xr({render:Ei,staticRenderFns:[]},function(n){n&&n("data-v-d6ac2cca_0",{source:"\n.vue-flow__node-input[data-v-d6ac2cca] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n padding: 10px 20px;\n}\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\nodes\\InputNode.vue"],names:[],mappings:";AAgDA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,QAAA;EACA,SAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,sBAAA;EACA,kBAAA;AACA",file:"InputNode.vue",sourcesContent:['<template>\n <div class="vue-flow__node-input">\n <div class="vue-flow__node-label">{{ node.name }}</div>\n <Handle\n v-for="p in usedSourceSides"\n :key="\'s-\' + p"\n type="source"\n :position="p"\n :connectable="connectable"\n :locked="locked"\n @connect-start="$emit(\'connect-start\', $event)"\n />\n </div>\n</template>\n\n<script>\nimport Handle from \'./Handle.vue\'\n\nexport default {\n name: \'InputNode\',\n components: { Handle },\n inject: { getDefNode: { default: () => () => ({}) }, getConns: { default: () => () => [] } },\n props: {\n node: { type: Object, required: true },\n connectable: { type: Boolean, default: true },\n locked: { type: Boolean, default: false },\n },\n computed: {\n dn() {\n return this.getDefNode()\n },\n // 連接點依「實際連線使用之方位」顯示(conn.fromPosition 逐邊錨點優先), 無任何出邊才回退節點/預設方位\n usedSourceSides() {\n const def = this.node.toPosition || this.dn.toPosition || \'bottom\'\n const conns = this.getConns() || []\n const sides = []\n for (const c of conns) {\n if (c.from !== this.node.id) continue\n const p = c.fromPosition || def\n if (sides.indexOf(p) < 0) sides.push(p)\n }\n return sides.length ? sides : [def]\n },\n },\n}\n<\/script>\n\n<style scoped>\n.vue-flow__node-input {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n padding: 10px 20px;\n}\n</style>\n']},media:void 0})},Ti,"data-v-d6ac2cca",false,void 0,!1,Zr,void 0,void 0);const Ii={name:"OutputNode",components:{Handle:ki},inject:{getDefNode:{default:()=>()=>({})},getConns:{default:()=>()=>[]}},props:{node:{type:Object,required:!0},connectable:{type:Boolean,default:!0},locked:{type:Boolean,default:!1}},computed:{dn(){return this.getDefNode()},usedTargetSides(){const n=this.node.fromPosition||this.dn.fromPosition||"top",e=this.getConns()||[],t=[];for(const o of e){if(o.to!==this.node.id)continue;const e=o.toPosition||n;t.indexOf(e)<0&&t.push(e)}return t.length?t:[n]}}};var Fi=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{staticClass:"vue-flow__node-output"},[n._l(n.usedTargetSides,function(e){return t("Handle",{key:"t-"+e,attrs:{type:"target",position:e,connectable:n.connectable,locked:n.locked},on:{"connect-start":function(e){return n.$emit("connect-start",e)}}})}),n._v(" "),t("div",{staticClass:"vue-flow__node-label"},[n._v(n._s(n.node.name))])],2)};Fi._withStripped=!0;const Hi=Xr({render:Fi,staticRenderFns:[]},function(n){n&&n("data-v-7a141c7e_0",{source:"\n.vue-flow__node-output[data-v-7a141c7e] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n padding: 10px 20px;\n}\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\nodes\\OutputNode.vue"],names:[],mappings:";AAgDA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,QAAA;EACA,SAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,sBAAA;EACA,kBAAA;AACA",file:"OutputNode.vue",sourcesContent:['<template>\n <div class="vue-flow__node-output">\n <Handle\n v-for="p in usedTargetSides"\n :key="\'t-\' + p"\n type="target"\n :position="p"\n :connectable="connectable"\n :locked="locked"\n @connect-start="$emit(\'connect-start\', $event)"\n />\n <div class="vue-flow__node-label">{{ node.name }}</div>\n </div>\n</template>\n\n<script>\nimport Handle from \'./Handle.vue\'\n\nexport default {\n name: \'OutputNode\',\n components: { Handle },\n inject: { getDefNode: { default: () => () => ({}) }, getConns: { default: () => () => [] } },\n props: {\n node: { type: Object, required: true },\n connectable: { type: Boolean, default: true },\n locked: { type: Boolean, default: false },\n },\n computed: {\n dn() {\n return this.getDefNode()\n },\n // 連接點依「實際連線使用之方位」顯示(conn.toPosition 逐邊錨點優先), 無任何入邊才回退節點/預設方位\n usedTargetSides() {\n const def = this.node.fromPosition || this.dn.fromPosition || \'top\'\n const conns = this.getConns() || []\n const sides = []\n for (const c of conns) {\n if (c.to !== this.node.id) continue\n const p = c.toPosition || def\n if (sides.indexOf(p) < 0) sides.push(p)\n }\n return sides.length ? sides : [def]\n },\n },\n}\n<\/script>\n\n<style scoped>\n.vue-flow__node-output {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n padding: 10px 20px;\n}\n</style>\n']},media:void 0})},Ii,"data-v-7a141c7e",false,void 0,!1,Zr,void 0,void 0),Ni={basic:Pi,input:zi,output:Hi};const Wi={name:"NodeBody",components:{NodeFace:xi,DefaultNode:Pi,InputNode:zi,OutputNode:Hi},props:{node:{type:Object,required:!0},connectable:{type:Boolean,default:!0},selected:{type:Boolean,default:!1},resizable:{type:Boolean,default:!0},locked:{type:Boolean,default:!1},hovered:{type:Boolean,default:!1},lastW:{type:Number,default:0},lastH:{type:Number,default:0}},computed:{nodeComponent(){return Ni[this.node.type||"basic"]||Pi},bodyStyle(){const n=this.lastW||this.node.width,e=this.lastH||this.node.height,t={};return n&&(t.width="number"==typeof n?n+"px":n),e&&(t.height="number"==typeof e?e+"px":e),t}}};var $i=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{staticClass:"vue-flow__node-body",style:n.bodyStyle},[t("NodeFace",{attrs:{node:n.node,lastW:n.lastW,lastH:n.lastH}}),n._v(" "),t(n.nodeComponent,{tag:"component",attrs:{node:n.node,connectable:n.connectable,locked:n.locked},on:{"connect-start":function(e){return n.$emit("connect-start",e)}}}),n._v(" "),t("transition",{attrs:{name:"vue-flow__fade"}},[n.resizable&&!n.locked&&(n.selected||n.hovered)?t("div",{staticClass:"vue-flow__resize-group"},[t("div",{staticClass:"vue-flow__resize vue-flow__resize--top-left",on:{mousedown:function(e){return e.stopPropagation(),n.$emit("resize-start",{event:e,edge:"top-left"})}}}),n._v(" "),t("div",{staticClass:"vue-flow__resize vue-flow__resize--top-right",on:{mousedown:function(e){return e.stopPropagation(),n.$emit("resize-start",{event:e,edge:"top-right"})}}}),n._v(" "),t("div",{staticClass:"vue-flow__resize vue-flow__resize--bottom-left",on:{mousedown:function(e){return e.stopPropagation(),n.$emit("resize-start",{event:e,edge:"bottom-left"})}}}),n._v(" "),t("div",{staticClass:"vue-flow__resize vue-flow__resize--bottom-right",on:{mousedown:function(e){return e.stopPropagation(),n.$emit("resize-start",{event:e,edge:"bottom-right"})}}})]):n._e()])],1)};$i._withStripped=!0;const Mi=Xr({render:$i,staticRenderFns:[]},function(n){n&&n("data-v-0dd42cc1_0",{source:"\n.vue-flow__node-body[data-v-0dd42cc1] {\n box-sizing: border-box;\n}\n.vue-flow__resize[data-v-0dd42cc1] {\n position: absolute;\n pointer-events: all;\n}\n.vue-flow__resize--top-left[data-v-0dd42cc1],\n.vue-flow__resize--top-right[data-v-0dd42cc1],\n.vue-flow__resize--bottom-left[data-v-0dd42cc1],\n.vue-flow__resize--bottom-right[data-v-0dd42cc1] {\n width: 10px;\n height: 10px;\n z-index: 1;\n border-radius: 2px;\n background: #fff;\n border: 1.5px solid #bbb;\n transition: border-color 0.15s ease;\n}\n.vue-flow__resize--top-left[data-v-0dd42cc1]:hover,\n.vue-flow__resize--top-right[data-v-0dd42cc1]:hover,\n.vue-flow__resize--bottom-left[data-v-0dd42cc1]:hover,\n.vue-flow__resize--bottom-right[data-v-0dd42cc1]:hover {\n border-color: #0041d0;\n background: #e8f0fe;\n}\n.vue-flow__resize--top-left[data-v-0dd42cc1] { top: -5px; left: -5px; cursor: nwse-resize;\n}\n.vue-flow__resize--top-right[data-v-0dd42cc1] { top: -5px; right: -5px; cursor: nesw-resize;\n}\n.vue-flow__resize--bottom-left[data-v-0dd42cc1] { bottom: -5px; left: -5px; cursor: nesw-resize;\n}\n.vue-flow__resize--bottom-right[data-v-0dd42cc1] { bottom: -5px; right: -5px; cursor: nwse-resize;\n}\n.vue-flow__fade-enter-active[data-v-0dd42cc1],\n.vue-flow__fade-leave-active[data-v-0dd42cc1] {\n transition: opacity 0.15s ease;\n}\n.vue-flow__fade-enter[data-v-0dd42cc1],\n.vue-flow__fade-leave-to[data-v-0dd42cc1] {\n opacity: 0;\n}\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\nodes\\NodeBody.vue"],names:[],mappings:";AAgEA;EACA,sBAAA;AACA;AACA;EACA,kBAAA;EACA,mBAAA;AACA;AACA;;;;EAIA,WAAA;EACA,YAAA;EACA,UAAA;EACA,kBAAA;EACA,gBAAA;EACA,wBAAA;EACA,mCAAA;AACA;AACA;;;;EAIA,qBAAA;EACA,mBAAA;AACA;AACA,+CAAA,SAAA,EAAA,UAAA,EAAA,mBAAA;AAAA;AACA,gDAAA,SAAA,EAAA,WAAA,EAAA,mBAAA;AAAA;AACA,kDAAA,YAAA,EAAA,UAAA,EAAA,mBAAA;AAAA;AACA,mDAAA,YAAA,EAAA,WAAA,EAAA,mBAAA;AAAA;AACA;;EAEA,8BAAA;AACA;AACA;;EAEA,UAAA;AACA",file:"NodeBody.vue",sourcesContent:['<template>\n <div class="vue-flow__node-body" :style="bodyStyle">\n <NodeFace :node="node" :lastW="lastW" :lastH="lastH" />\n <component\n :is="nodeComponent"\n :node="node"\n :connectable="connectable"\n :locked="locked"\n @connect-start="$emit(\'connect-start\', $event)"\n />\n \x3c!-- Corner resize handles (4 corners only) --\x3e\n <transition name="vue-flow__fade">\n <div v-if="resizable && !locked && (selected || hovered)" class="vue-flow__resize-group">\n <div class="vue-flow__resize vue-flow__resize--top-left" @mousedown.stop="$emit(\'resize-start\', { event: $event, edge: \'top-left\' })"></div>\n <div class="vue-flow__resize vue-flow__resize--top-right" @mousedown.stop="$emit(\'resize-start\', { event: $event, edge: \'top-right\' })"></div>\n <div class="vue-flow__resize vue-flow__resize--bottom-left" @mousedown.stop="$emit(\'resize-start\', { event: $event, edge: \'bottom-left\' })"></div>\n <div class="vue-flow__resize vue-flow__resize--bottom-right" @mousedown.stop="$emit(\'resize-start\', { event: $event, edge: \'bottom-right\' })"></div>\n </div>\n </transition>\n </div>\n</template>\n\n<script>\nimport NodeFace from \'./NodeFace.vue\'\nimport DefaultNode from \'./DefaultNode.vue\'\nimport InputNode from \'./InputNode.vue\'\nimport OutputNode from \'./OutputNode.vue\'\n\nconst builtInNodes = {\n basic: DefaultNode,\n input: InputNode,\n output: OutputNode,\n}\n\nexport default {\n name: \'NodeBody\',\n components: { NodeFace, DefaultNode, InputNode, OutputNode },\n props: {\n node: { type: Object, required: true },\n connectable: { type: Boolean, default: true },\n selected: { type: Boolean, default: false },\n resizable: { type: Boolean, default: true },\n locked: { type: Boolean, default: false },\n hovered: { type: Boolean, default: false },\n lastW: { type: Number, default: 0 },\n lastH: { type: Number, default: 0 },\n },\n computed: {\n nodeComponent() {\n return builtInNodes[this.node.type || \'basic\'] || DefaultNode\n },\n bodyStyle() {\n const w = this.lastW || this.node.width\n const h = this.lastH || this.node.height\n const s = {}\n if (w) s.width = (typeof w === \'number\' ? w + \'px\' : w)\n if (h) s.height = (typeof h === \'number\' ? h + \'px\' : h)\n return s\n },\n },\n}\n<\/script>\n\n<style scoped>\n.vue-flow__node-body {\n box-sizing: border-box;\n}\n.vue-flow__resize {\n position: absolute;\n pointer-events: all;\n}\n.vue-flow__resize--top-left,\n.vue-flow__resize--top-right,\n.vue-flow__resize--bottom-left,\n.vue-flow__resize--bottom-right {\n width: 10px;\n height: 10px;\n z-index: 1;\n border-radius: 2px;\n background: #fff;\n border: 1.5px solid #bbb;\n transition: border-color 0.15s ease;\n}\n.vue-flow__resize--top-left:hover,\n.vue-flow__resize--top-right:hover,\n.vue-flow__resize--bottom-left:hover,\n.vue-flow__resize--bottom-right:hover {\n border-color: #0041d0;\n background: #e8f0fe;\n}\n.vue-flow__resize--top-left { top: -5px; left: -5px; cursor: nwse-resize; }\n.vue-flow__resize--top-right { top: -5px; right: -5px; cursor: nesw-resize; }\n.vue-flow__resize--bottom-left { bottom: -5px; left: -5px; cursor: nesw-resize; }\n.vue-flow__resize--bottom-right { bottom: -5px; right: -5px; cursor: nwse-resize; }\n.vue-flow__fade-enter-active,\n.vue-flow__fade-leave-active {\n transition: opacity 0.15s ease;\n}\n.vue-flow__fade-enter,\n.vue-flow__fade-leave-to {\n opacity: 0;\n}\n</style>\n']},media:void 0})},Wi,"data-v-0dd42cc1",false,void 0,!1,Zr,void 0,void 0);var Li=Math.max;var Di=ut?function(n,e){return ut(n,"toString",{configurable:!0,enumerable:!1,value:(t=e,function(){return t}),writable:!0});var t}:Vn,Ri=Di,ji=Date.now;var Oi=function(n){var e=0,t=0;return function(){var o=ji(),r=16-(o-t);if(t=o,r>0){if(++e>=800)return arguments[0]}else e=0;return n.apply(void 0,arguments)}}(Ri),Vi=Oi;function Yi(n,e){return Vi(function(n,e,t){return e=Li(void 0===e?n.length-1:e,0),function(){for(var o=arguments,r=-1,i=Li(o.length-e,0),a=Array(i);++r<i;)a[r]=o[e+r];r=-1;for(var s=Array(e+1);++r<e;)s[r]=o[r];return s[e]=t(a),function(n,e,t){switch(t.length){case 0:return n.call(e);case 1:return n.call(e,t[0]);case 2:return n.call(e,t[0],t[1]);case 3:return n.call(e,t[0],t[1],t[2])}return n.apply(e,t)}(n,this,s)}}(n,e,Vn),n+"")}function Ui(n){return n!=n}function Xi(n,e,t){return e==e?function(n,e,t){for(var o=t-1,r=n.length;++o<r;)if(n[o]===e)return o;return-1}(n,e,t):function(n,e,t,o){for(var r=n.length,i=t+(o?1:-1);o?i--:++i<r;)if(e(n[i],i,n))return i;return-1}(n,Ui,t)}function Gi(n,e,t,o){for(var r=t-1,i=n.length;++r<i;)if(o(n[r],e))return r;return-1}var Zi=Array.prototype.splice;var qi=Yi(function(n,e){return n&&n.length&&e&&e.length?function(n,e,t,o){var r=o?Gi:Xi,i=-1,a=e.length,s=n;for(n===e&&(e=go(e)),t&&(s=J(n,kn(t)));++i<a;)for(var l=0,d=e[i],u=t?t(d):d;(l=r(s,u,l,o))>-1;)s!==n&&Zi.call(s,l,1),Zi.call(n,l,1);return n}(n,e):n});const Ji={props:{to:{type:String,default:null}},computed:{toEl:function(){let n=this,e=null;try{e=document.querySelector(n.to)}catch(n){}return e}},watch:{toEl:function(n){this.teleport()}},mounted:function(){this.teleport()},destroyed:function(){let n=this;try{n.$el.remove()}catch(n){}},methods:{teleport:function(){let n=this;try{n.$el&&n.$el.parentElement!==n.toEl&&n.toEl.appendChild(n.$el)}catch(n){}}}};var Qi=function(){var n=this,e=n.$createElement;return(n._self._c||e)("div",[n._t("default")],2)};Qi._withStripped=!0;const Ki=Xr({render:Qi,staticRenderFns:[]},function(n){n&&n("data-v-665a9dd1_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"Teleport.vue"},media:void 0})},Ji,"data-v-665a9dd1",false,void 0,!1,Zr,void 0,void 0);function na(n,e){return!!Ft(n)&&(!(!ft(e)&&!Ut(e))&&e in n)}function ea(n,e,t){if(!jr(n))return void console.log("clientX is not a number",n);if(!jr(e))return void console.log("clientY is not a number",e);if(!Wr(t))return void console.log("ele is not a HTMLElement",t);let o;try{o=t.getBoundingClientRect()}catch(n){return void console.log("invalid ele for getBoundingClientRect",n)}let r=!1;try{r=n>=o.left&&n<=o.right&&e>=o.top&&e<=o.bottom}catch(n){console.log("catch when calculating page information of element",n)}return r}function ta(n){if(null==n)return window;if("[object Window]"!==n.toString()){var e=n.ownerDocument;return e&&e.defaultView||window}return n}function oa(n){return n instanceof ta(n).Element||n instanceof Element}function ra(n){return n instanceof ta(n).HTMLElement||n instanceof HTMLElement}function ia(n){return"undefined"!=typeof ShadowRoot&&(n instanceof ta(n).ShadowRoot||n instanceof ShadowRoot)}var aa=Math.max,sa=Math.min,la=Math.round;function da(){var n=navigator.userAgentData;return null!=n&&n.brands&&Array.isArray(n.brands)?n.brands.map(function(n){return n.brand+"/"+n.version}).join(" "):navigator.userAgent}function ua(){return!/^((?!chrome|android).)*safari/i.test(da())}function ca(n,e,t){void 0===e&&(e=!1),void 0===t&&(t=!1);var o=n.getBoundingClientRect(),r=1,i=1;e&&ra(n)&&(r=n.offsetWidth>0&&la(o.width)/n.offsetWidth||1,i=n.offsetHeight>0&&la(o.height)/n.offsetHeight||1);var a=(oa(n)?ta(n):window).visualViewport,s=!ua()&&t,l=(o.left+(s&&a?a.offsetLeft:0))/r,d=(o.top+(s&&a?a.offsetTop:0))/i,u=o.width/r,c=o.height/i;return{width:u,height:c,top:d,right:l+u,bottom:d+c,left:l,x:l,y:d}}function pa(n){var e=ta(n);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function fa(n){return n?(n.nodeName||"").toLowerCase():null}function ha(n){return((oa(n)?n.ownerDocument:n.document)||window.document).documentElement}function ga(n){return ca(ha(n)).left+pa(n).scrollLeft}function va(n){return ta(n).getComputedStyle(n)}function ma(n){var e=va(n),t=e.overflow,o=e.overflowX,r=e.overflowY;return/auto|scroll|overlay|hidden/.test(t+r+o)}function Aa(n,e,t){void 0===t&&(t=!1);var o,r,i=ra(e),a=ra(e)&&function(n){var e=n.getBoundingClientRect(),t=la(e.width)/n.offsetWidth||1,o=la(e.height)/n.offsetHeight||1;return 1!==t||1!==o}(e),s=ha(e),l=ca(n,a,t),d={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(i||!i&&!t)&&(("body"!==fa(e)||ma(s))&&(d=(o=e)!==ta(o)&&ra(o)?{scrollLeft:(r=o).scrollLeft,scrollTop:r.scrollTop}:pa(o)),ra(e)?((u=ca(e,!0)).x+=e.clientLeft,u.y+=e.clientTop):s&&(u.x=ga(s))),{x:l.left+d.scrollLeft-u.x,y:l.top+d.scrollTop-u.y,width:l.width,height:l.height}}function ba(n){var e=ca(n),t=n.offsetWidth,o=n.offsetHeight;return Math.abs(e.width-t)<=1&&(t=e.width),Math.abs(e.height-o)<=1&&(o=e.height),{x:n.offsetLeft,y:n.offsetTop,width:t,height:o}}function ya(n){return"html"===fa(n)?n:n.assignedSlot||n.parentNode||(ia(n)?n.host:null)||ha(n)}function Ca(n){return["html","body","#document"].indexOf(fa(n))>=0?n.ownerDocument.body:ra(n)&&ma(n)?n:Ca(ya(n))}function xa(n,e){var t;void 0===e&&(e=[]);var o=Ca(n),r=o===(null==(t=n.ownerDocument)?void 0:t.body),i=ta(o),a=r?[i].concat(i.visualViewport||[],ma(o)?o:[]):o,s=e.concat(a);return r?s:s.concat(xa(ya(a)))}function wa(n){return["table","td","th"].indexOf(fa(n))>=0}function Sa(n){return ra(n)&&"fixed"!==va(n).position?n.offsetParent:null}function ka(n){for(var e=ta(n),t=Sa(n);t&&wa(t)&&"static"===va(t).position;)t=Sa(t);return t&&("html"===fa(t)||"body"===fa(t)&&"static"===va(t).position)?e:t||function(n){var e=/firefox/i.test(da());if(/Trident/i.test(da())&&ra(n)&&"fixed"===va(n).position)return null;var t=ya(n);for(ia(t)&&(t=t.host);ra(t)&&["html","body"].indexOf(fa(t))<0;){var o=va(t);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||e&&"filter"===o.willChange||e&&o.filter&&"none"!==o.filter)return t;t=t.parentNode}return null}(n)||e}var _a="top",Ba="bottom",Pa="right",Ta="left",Ea="auto",za=[_a,Ba,Pa,Ta],Ia="start",Fa="end",Ha="viewport",Na="popper",Wa=za.reduce(function(n,e){return n.concat([e+"-"+Ia,e+"-"+Fa])},[]),$a=[].concat(za,[Ea]).reduce(function(n,e){return n.concat([e,e+"-"+Ia,e+"-"+Fa])},[]),Ma=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function La(n){var e=new Map,t=new Set,o=[];function r(n){t.add(n.name),[].concat(n.requires||[],n.requiresIfExists||[]).forEach(function(n){if(!t.has(n)){var o=e.get(n);o&&r(o)}}),o.push(n)}return n.forEach(function(n){e.set(n.name,n)}),n.forEach(function(n){t.has(n.name)||r(n)}),o}function Da(n,e){var t=e.getRootNode&&e.getRootNode();if(n.contains(e))return!0;if(t&&ia(t)){var o=e;do{if(o&&n.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function Ra(n){return Object.assign({},n,{left:n.x,top:n.y,right:n.x+n.width,bottom:n.y+n.height})}function ja(n,e,t){return e===Ha?Ra(function(n,e){var t=ta(n),o=ha(n),r=t.visualViewport,i=o.clientWidth,a=o.clientHeight,s=0,l=0;if(r){i=r.width,a=r.height;var d=ua();(d||!d&&"fixed"===e)&&(s=r.offsetLeft,l=r.offsetTop)}return{width:i,height:a,x:s+ga(n),y:l}}(n,t)):oa(e)?function(n,e){var t=ca(n,!1,"fixed"===e);return t.top=t.top+n.clientTop,t.left=t.left+n.clientLeft,t.bottom=t.top+n.clientHeight,t.right=t.left+n.clientWidth,t.width=n.clientWidth,t.height=n.clientHeight,t.x=t.left,t.y=t.top,t}(e,t):Ra(function(n){var e,t=ha(n),o=pa(n),r=null==(e=n.ownerDocument)?void 0:e.body,i=aa(t.scrollWidth,t.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=aa(t.scrollHeight,t.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),s=-o.scrollLeft+ga(n),l=-o.scrollTop;return"rtl"===va(r||t).direction&&(s+=aa(t.clientWidth,r?r.clientWidth:0)-i),{width:i,height:a,x:s,y:l}}(ha(n)))}function Oa(n,e,t,o){var r="clippingParents"===e?function(n){var e=xa(ya(n)),t=["absolute","fixed"].indexOf(va(n).position)>=0&&ra(n)?ka(n):n;return oa(t)?e.filter(function(n){return oa(n)&&Da(n,t)&&"body"!==fa(n)}):[]}(n):[].concat(e),i=[].concat(r,[t]),a=i[0],s=i.reduce(function(e,t){var r=ja(n,t,o);return e.top=aa(r.top,e.top),e.right=sa(r.right,e.right),e.bottom=sa(r.bottom,e.bottom),e.left=aa(r.left,e.left),e},ja(n,a,o));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function Va(n){return n.split("-")[0]}function Ya(n){return n.split("-")[1]}function Ua(n){return["top","bottom"].indexOf(n)>=0?"x":"y"}function Xa(n){var e,t=n.reference,o=n.element,r=n.placement,i=r?Va(r):null,a=r?Ya(r):null,s=t.x+t.width/2-o.width/2,l=t.y+t.height/2-o.height/2;switch(i){case _a:e={x:s,y:t.y-o.height};break;case Ba:e={x:s,y:t.y+t.height};break;case Pa:e={x:t.x+t.width,y:l};break;case Ta:e={x:t.x-o.width,y:l};break;default:e={x:t.x,y:t.y}}var d=i?Ua(i):null;if(null!=d){var u="y"===d?"height":"width";switch(a){case Ia:e[d]=e[d]-(t[u]/2-o[u]/2);break;case Fa:e[d]=e[d]+(t[u]/2-o[u]/2)}}return e}function Ga(n){return Object.assign({},{top:0,right:0,bottom:0,left:0},n)}function Za(n,e){return e.reduce(function(e,t){return e[t]=n,e},{})}function qa(n,e){void 0===e&&(e={});var t=e,o=t.placement,r=void 0===o?n.placement:o,i=t.strategy,a=void 0===i?n.strategy:i,s=t.boundary,l=void 0===s?"clippingParents":s,d=t.rootBoundary,u=void 0===d?Ha:d,c=t.elementContext,p=void 0===c?Na:c,f=t.altBoundary,h=void 0!==f&&f,g=t.padding,v=void 0===g?0:g,m=Ga("number"!=typeof v?v:Za(v,za)),A=p===Na?"reference":Na,b=n.rects.popper,y=n.elements[h?A:p],C=Oa(oa(y)?y:y.contextElement||ha(n.elements.popper),l,u,a),x=ca(n.elements.reference),w=Xa({reference:x,element:b,strategy:"absolute",placement:r}),S=Ra(Object.assign({},b,w)),k=p===Na?S:x,_={top:C.top-k.top+m.top,bottom:k.bottom-C.bottom+m.bottom,left:C.left-k.left+m.left,right:k.right-C.right+m.right},B=n.modifiersData.offset;if(p===Na&&B){var P=B[r];Object.keys(_).forEach(function(n){var e=[Pa,Ba].indexOf(n)>=0?1:-1,t=[_a,Ba].indexOf(n)>=0?"y":"x";_[n]+=P[t]*e})}return _}var Ja={placement:"bottom",modifiers:[],strategy:"absolute"};function Qa(){for(var n=arguments.length,e=new Array(n),t=0;t<n;t++)e[t]=arguments[t];return!e.some(function(n){return!(n&&"function"==typeof n.getBoundingClientRect)})}function Ka(n){void 0===n&&(n={});var e=n,t=e.defaultModifiers,o=void 0===t?[]:t,r=e.defaultOptions,i=void 0===r?Ja:r;return function(n,e,t){void 0===t&&(t=i);var r,a,s={placement:"bottom",orderedModifiers:[],options:Object.assign({},Ja,i),modifiersData:{},elements:{reference:n,popper:e},attributes:{},styles:{}},l=[],d=!1,u={state:s,setOptions:function(t){var r="function"==typeof t?t(s.options):t;c(),s.options=Object.assign({},i,s.options,r),s.scrollParents={reference:oa(n)?xa(n):n.contextElement?xa(n.contextElement):[],popper:xa(e)};var a,d,p=function(n){var e=La(n);return Ma.reduce(function(n,t){return n.concat(e.filter(function(n){return n.phase===t}))},[])}((a=[].concat(o,s.options.modifiers),d=a.reduce(function(n,e){var t=n[e.name];return n[e.name]=t?Object.assign({},t,e,{options:Object.assign({},t.options,e.options),data:Object.assign({},t.data,e.data)}):e,n},{}),Object.keys(d).map(function(n){return d[n]})));return s.orderedModifiers=p.filter(function(n){return n.enabled}),s.orderedModifiers.forEach(function(n){var e=n.name,t=n.options,o=void 0===t?{}:t,r=n.effect;if("function"==typeof r){var i=r({state:s,name:e,instance:u,options:o}),a=function(){};l.push(i||a)}}),u.update()},forceUpdate:function(){if(!d){var n=s.elements,e=n.reference,t=n.popper;if(Qa(e,t)){s.rects={reference:Aa(e,ka(t),"fixed"===s.options.strategy),popper:ba(t)},s.reset=!1,s.placement=s.options.placement,s.orderedModifiers.forEach(function(n){return s.modifiersData[n.name]=Object.assign({},n.data)});for(var o=0;o<s.orderedModifiers.length;o++)if(!0!==s.reset){var r=s.orderedModifiers[o],i=r.fn,a=r.options,l=void 0===a?{}:a,c=r.name;"function"==typeof i&&(s=i({state:s,options:l,name:c,instance:u})||s)}else s.reset=!1,o=-1}}},update:(r=function(){return new Promise(function(n){u.forceUpdate(),n(s)})},function(){return a||(a=new Promise(function(n){Promise.resolve().then(function(){a=void 0,n(r())})})),a}),destroy:function(){c(),d=!0}};if(!Qa(n,e))return u;function c(){l.forEach(function(n){return n()}),l=[]}return u.setOptions(t).then(function(n){!d&&t.onFirstUpdate&&t.onFirstUpdate(n)}),u}}var ns={passive:!0};var es={top:"auto",right:"auto",bottom:"auto",left:"auto"};function ts(n){var e,t=n.popper,o=n.popperRect,r=n.placement,i=n.variation,a=n.offsets,s=n.position,l=n.gpuAcceleration,d=n.adaptive,u=n.roundOffsets,c=n.isFixed,p=a.x,f=void 0===p?0:p,h=a.y,g=void 0===h?0:h,v="function"==typeof u?u({x:f,y:g}):{x:f,y:g};f=v.x,g=v.y;var m=a.hasOwnProperty("x"),A=a.hasOwnProperty("y"),b=Ta,y=_a,C=window;if(d){var x=ka(t),w="clientHeight",S="clientWidth";if(x===ta(t)&&"static"!==va(x=ha(t)).position&&"absolute"===s&&(w="scrollHeight",S="scrollWidth"),r===_a||(r===Ta||r===Pa)&&i===Fa)y=Ba,g-=(c&&x===C&&C.visualViewport?C.visualViewport.height:x[w])-o.height,g*=l?1:-1;if(r===Ta||(r===_a||r===Ba)&&i===Fa)b=Pa,f-=(c&&x===C&&C.visualViewport?C.visualViewport.width:x[S])-o.width,f*=l?1:-1}var k,_=Object.assign({position:s},d&&es),B=!0===u?function(n,e){var t=n.x,o=n.y,r=e.devicePixelRatio||1;return{x:la(t*r)/r||0,y:la(o*r)/r||0}}({x:f,y:g},ta(t)):{x:f,y:g};return f=B.x,g=B.y,l?Object.assign({},_,((k={})[y]=A?"0":"",k[b]=m?"0":"",k.transform=(C.devicePixelRatio||1)<=1?"translate("+f+"px, "+g+"px)":"translate3d("+f+"px, "+g+"px, 0)",k)):Object.assign({},_,((e={})[y]=A?g+"px":"",e[b]=m?f+"px":"",e.transform="",e))}var os={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(n){var e=n.state,t=n.options,o=t.gpuAcceleration,r=void 0===o||o,i=t.adaptive,a=void 0===i||i,s=t.roundOffsets,l=void 0===s||s,d={placement:Va(e.placement),variation:Ya(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:r,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,ts(Object.assign({},d,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:a,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,ts(Object.assign({},d,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var rs={name:"applyStyles",enabled:!0,phase:"write",fn:function(n){var e=n.state;Object.keys(e.elements).forEach(function(n){var t=e.styles[n]||{},o=e.attributes[n]||{},r=e.elements[n];ra(r)&&fa(r)&&(Object.assign(r.style,t),Object.keys(o).forEach(function(n){var e=o[n];!1===e?r.removeAttribute(n):r.setAttribute(n,!0===e?"":e)}))})},effect:function(n){var e=n.state,t={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,t.popper),e.styles=t,e.elements.arrow&&Object.assign(e.elements.arrow.style,t.arrow),function(){Object.keys(e.elements).forEach(function(n){var o=e.elements[n],r=e.attributes[n]||{},i=Object.keys(e.styles.hasOwnProperty(n)?e.styles[n]:t[n]).reduce(function(n,e){return n[e]="",n},{});ra(o)&&fa(o)&&(Object.assign(o.style,i),Object.keys(r).forEach(function(n){o.removeAttribute(n)}))})}},requires:["computeStyles"]},is=Ka({defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(n){var e=n.state,t=n.instance,o=n.options,r=o.scroll,i=void 0===r||r,a=o.resize,s=void 0===a||a,l=ta(e.elements.popper),d=[].concat(e.scrollParents.reference,e.scrollParents.popper);return i&&d.forEach(function(n){n.addEventListener("scroll",t.update,ns)}),s&&l.addEventListener("resize",t.update,ns),function(){i&&d.forEach(function(n){n.removeEventListener("scroll",t.update,ns)}),s&&l.removeEventListener("resize",t.update,ns)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(n){var e=n.state,t=n.name;e.modifiersData[t]=Xa({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},os,rs]}),as={left:"right",right:"left",bottom:"top",top:"bottom"};function ss(n){return n.replace(/left|right|bottom|top/g,function(n){return as[n]})}var ls={start:"end",end:"start"};function ds(n){return n.replace(/start|end/g,function(n){return ls[n]})}function us(n,e){void 0===e&&(e={});var t=e,o=t.placement,r=t.boundary,i=t.rootBoundary,a=t.padding,s=t.flipVariations,l=t.allowedAutoPlacements,d=void 0===l?$a:l,u=Ya(o),c=u?s?Wa:Wa.filter(function(n){return Ya(n)===u}):za,p=c.filter(function(n){return d.indexOf(n)>=0});0===p.length&&(p=c);var f=p.reduce(function(e,t){return e[t]=qa(n,{placement:t,boundary:r,rootBoundary:i,padding:a})[Va(t)],e},{});return Object.keys(f).sort(function(n,e){return f[n]-f[e]})}var cs={name:"flip",enabled:!0,phase:"main",fn:function(n){var e=n.state,t=n.options,o=n.name;if(!e.modifiersData[o]._skip){for(var r=t.mainAxis,i=void 0===r||r,a=t.altAxis,s=void 0===a||a,l=t.fallbackPlacements,d=t.padding,u=t.boundary,c=t.rootBoundary,p=t.altBoundary,f=t.flipVariations,h=void 0===f||f,g=t.allowedAutoPlacements,v=e.options.placement,m=Va(v),A=l||(m===v||!h?[ss(v)]:function(n){if(Va(n)===Ea)return[];var e=ss(n);return[ds(n),e,ds(e)]}(v)),b=[v].concat(A).reduce(function(n,t){return n.concat(Va(t)===Ea?us(e,{placement:t,boundary:u,rootBoundary:c,padding:d,flipVariations:h,allowedAutoPlacements:g}):t)},[]),y=e.rects.reference,C=e.rects.popper,x=new Map,w=!0,S=b[0],k=0;k<b.length;k++){var _=b[k],B=Va(_),P=Ya(_)===Ia,T=[_a,Ba].indexOf(B)>=0,E=T?"width":"height",z=qa(e,{placement:_,boundary:u,rootBoundary:c,altBoundary:p,padding:d}),I=T?P?Pa:Ta:P?Ba:_a;y[E]>C[E]&&(I=ss(I));var F=ss(I),H=[];if(i&&H.push(z[B]<=0),s&&H.push(z[I]<=0,z[F]<=0),H.every(function(n){return n})){S=_,w=!1;break}x.set(_,H)}if(w)for(var N=function(n){var e=b.find(function(e){var t=x.get(e);if(t)return t.slice(0,n).every(function(n){return n})});if(e)return S=e,"break"},W=h?3:1;W>0;W--){if("break"===N(W))break}e.placement!==S&&(e.modifiersData[o]._skip=!0,e.placement=S,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};var ps={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(n){var e=n.state,t=n.options,o=n.name,r=t.offset,i=void 0===r?[0,0]:r,a=$a.reduce(function(n,t){return n[t]=function(n,e,t){var o=Va(n),r=[Ta,_a].indexOf(o)>=0?-1:1,i="function"==typeof t?t(Object.assign({},e,{placement:n})):t,a=i[0],s=i[1];return a=a||0,s=(s||0)*r,[Ta,Pa].indexOf(o)>=0?{x:s,y:a}:{x:a,y:s}}(t,e.rects,i),n},{}),s=a[e.placement],l=s.x,d=s.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=d),e.modifiersData[o]=a}};function fs(n,e,t){return void 0===t&&(t={x:0,y:0}),{top:n.top-e.height-t.y,right:n.right-e.width+t.x,bottom:n.bottom-e.height+t.y,left:n.left-e.width-t.x}}function hs(n){return[_a,Pa,Ba,Ta].some(function(e){return n[e]>=0})}var gs={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(n){var e=n.state,t=n.name,o=e.rects.reference,r=e.rects.popper,i=e.modifiersData.preventOverflow,a=qa(e,{elementContext:"reference"}),s=qa(e,{altBoundary:!0}),l=fs(a,o),d=fs(s,r,i),u=hs(l),c=hs(d);e.modifiersData[t]={referenceClippingOffsets:l,popperEscapeOffsets:d,isReferenceHidden:u,hasPopperEscaped:c},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":c})}};function vs(n,e,t){return aa(n,sa(e,t))}var ms={name:"preventOverflow",enabled:!0,phase:"main",fn:function(n){var e=n.state,t=n.options,o=n.name,r=t.mainAxis,i=void 0===r||r,a=t.altAxis,s=void 0!==a&&a,l=t.boundary,d=t.rootBoundary,u=t.altBoundary,c=t.padding,p=t.tether,f=void 0===p||p,h=t.tetherOffset,g=void 0===h?0:h,v=qa(e,{boundary:l,rootBoundary:d,padding:c,altBoundary:u}),m=Va(e.placement),A=Ya(e.placement),b=!A,y=Ua(m),C="x"===y?"y":"x",x=e.modifiersData.popperOffsets,w=e.rects.reference,S=e.rects.popper,k="function"==typeof g?g(Object.assign({},e.rects,{placement:e.placement})):g,_="number"==typeof k?{mainAxis:k,altAxis:k}:Object.assign({mainAxis:0,altAxis:0},k),B=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,P={x:0,y:0};if(x){if(i){var T,E="y"===y?_a:Ta,z="y"===y?Ba:Pa,I="y"===y?"height":"width",F=x[y],H=F+v[E],N=F-v[z],W=f?-S[I]/2:0,$=A===Ia?w[I]:S[I],M=A===Ia?-S[I]:-w[I],L=e.elements.arrow,D=f&&L?ba(L):{width:0,height:0},R=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},j=R[E],O=R[z],V=vs(0,w[I],D[I]),Y=b?w[I]/2-W-V-j-_.mainAxis:$-V-j-_.mainAxis,U=b?-w[I]/2+W+V+O+_.mainAxis:M+V+O+_.mainAxis,X=e.elements.arrow&&ka(e.elements.arrow),G=X?"y"===y?X.clientTop||0:X.clientLeft||0:0,Z=null!=(T=null==B?void 0:B[y])?T:0,q=F+U-Z,J=vs(f?sa(H,F+Y-Z-G):H,F,f?aa(N,q):N);x[y]=J,P[y]=J-F}if(s){var Q,K="x"===y?_a:Ta,nn="x"===y?Ba:Pa,en=x[C],tn="y"===C?"height":"width",on=en+v[K],rn=en-v[nn],an=-1!==[_a,Ta].indexOf(m),sn=null!=(Q=null==B?void 0:B[C])?Q:0,ln=an?on:en-w[tn]-S[tn]-sn+_.altAxis,dn=an?en+w[tn]+S[tn]-sn-_.altAxis:rn,un=f&&an?function(n,e,t){var o=vs(n,e,t);return o>t?t:o}(ln,en,dn):vs(f?ln:on,en,f?dn:rn);x[C]=un,P[C]=un-en}e.modifiersData[o]=P}},requiresIfExists:["offset"]};function As(n,e,t,o,r,i={}){let a=jo();if(Yn(["mode","mmkey",o,"triggerWidth","placement","placementDistX","placementDistY","transitionTime","isolated","editable","contentStyle"],e=>{if(!na(n,e))throw new Error(`invalid vo.${e}`)}),!Oo(e))throw new Error("funGetDivTrigger is not a function");if(!Oo(t))throw new Error("funGetDivContent is not a function");let s=an(i,"funAddTrigger"),l=an(i,"funCheckTrigger"),d=an(i,"funRemoveTrigger"),u=an(i,"modeHide",null);"click"!==u&&"mousedown"!==u&&(u="click");let c={mouseClientX:0,mouseClientY:0,cursorTriggerInner:!1,clickContentInner:!1,popperShow:!1,popperInstance:null,removeTriggerTimer:null},p=()=>!Oo(l)||l(n.mode,n.mmkey),f=o=>{let r=e();if(!Wr(r))return;n.$nextTick(()=>{n.triggerWidth=r.offsetWidth});let i=t();if(!Wr(i))return;null!==c.removeTriggerTimer&&(clearTimeout(c.removeTriggerTimer),c.removeTriggerTimer=null),Oo(s)&&s(n.mode,n.mmkey);let l={strategy:"fixed",placement:n.placement,modifiers:[ms,os,{name:"computeStyles",options:{gpuAcceleration:!1}},cs,{name:"flip",options:{}},ps,{name:"offset",options:{offset:[n.placementDistX,n.placementDistY]}},gs,{name:"emitPlacement",enabled:!0,phase:"afterWrite",fn:({state:e})=>{let t=an(e,"placement",null);null!==t&&(n.$emit("placement-change",t),a.emit("placement-change",t))}}]};c.popperInstance=is(r,i,l)},h=e=>{c.popperInstance&&(c.popperInstance.destroy(),c.popperInstance=null),c.removeTriggerTimer=setTimeout(()=>{c.removeTriggerTimer=null,Oo(d)&&d(n.mode,n.mmkey)},20)},g=e=>{n.$nextTick(()=>{let e=n.editable&&n[o];if(e&&!c.popperShow){let e=-15;n.contentStyle=`opacity:0; pointer-events:none; transform:translateY(${e}px);`,f(),c.popperShow=!0,n.$emit("show"),a.emit("show"),setTimeout(()=>{n.contentStyle=`transition:all ${n.transitionTime}ms ease-out; opacity:1; pointer-events:none;`},1),setTimeout(()=>{n.contentStyle=""},n.transitionTime)}else!e&&c.popperShow&&(h(),c.popperShow=!1,n.$emit("hide"),a.emit("hide"))})},v=(e,t)=>{n.editable&&(n[o]=e,g())},m=(e,t)=>{n.editable&&(n.isolated&&v(e),n.$nextTick(()=>{n.$emit(r,e),a.emit(r,e)}))},A=(e,t)=>{n.editable&&(n[o]||n.mode===e&&m(!0))},b=(e,t)=>{n.editable&&n[o]&&n.mode===e&&m(!1)};return a.mounted=()=>{c.windowMousemove=n=>{c.mouseClientX=n.clientX,c.mouseClientY=n.clientY},window.addEventListener("mousemove",c.windowMousemove,!1),c.windowMousedown=r=>{let i=e();Wr(i)?c.cursorTriggerInner=ea(r.clientX,r.clientY,i):c.cursorTriggerInner=!1;let a=t();if(n[o]&&a?c.clickContentInner=ea(r.clientX,r.clientY,a):c.clickContentInner=!1,"mousedown"===u){if(!p())return;!n[o]||c.cursorTriggerInner||c.clickContentInner||n.evHide("popup","windowMousedown")}},window.addEventListener("mousedown",c.windowMousedown,!1),c.windowMouseup=e=>{p()&&(!n[o]||c.cursorTriggerInner||c.clickContentInner?(c.cursorTriggerInner=!1,c.clickContentInner=!1):n.evHide("popup","windowMouseup"))},window.addEventListener("mouseup",c.windowMouseup,!1),c.windowScroll=t=>{if("tooltip"!==n.mode)return;let r=e();Wr(r)&&(c.cursorTriggerInner=!!r&&ea(c.mouseClientX,c.mouseClientY,r),c.cursorTriggerInner?n[o]||A("tooltip"):n[o]&&b("tooltip"))},window.addEventListener("scroll",c.windowScroll,!1)},a.destroy=()=>{window.removeEventListener("mousemove",c.windowMousemove,!1),window.removeEventListener("mousedown",c.windowMousedown,!1),window.removeEventListener("mouseup",c.windowMouseup,!1),window.removeEventListener("scroll",c.windowMouseup,!1),m(!1)},a.showPopper=f,a.hidePopper=h,a.updatePopper=(e,t)=>{c.popperInstance&&c.popperInstance.update(),n.$emit("resize",e),a.emit("resize",e)},a.displayPopper=g,a.updateValue=v,a.triggerEvent=m,a.evShow=A,a.evHide=b,a}let bs={tooltip:[],popup:[]};function ys(n,e){bs[n].push(e)}function Cs(n,e){return t=bs[n],((o=null==t?0:t.length)?t[o-1]:void 0)===e;var t,o}function xs(n,e){qi(bs[n],e)}const ws={directives:{domresize:Vo()},components:{Teleport:Ki},props:{mode:{type:String,default:"tooltip"},value:{type:Boolean,default:!1},displayType:{type:String,default:"block"},cmpZIndex:{type:Number,default:3e3},isolated:{type:Boolean,default:!1},minWidth:{type:Number,default:null},maxWidth:{type:Number,default:null},autoFitMinWidth:{type:Boolean,default:!1},autoFitMaxWidth:{type:Boolean,default:!1},placement:{type:String,default:"bottom"},placementDistX:{type:Number,default:0},placementDistY:{type:Number,default:5},borderRadius:{type:Number,default:4},textFontSize:{type:String,default:"0.85rem"},textColor:{type:String,default:"white"},backgroundColor:{type:String,default:"rgba(60,60,60,0.75)"},paddingStyle:{type:Object,default:()=>({v:2,h:10})},modeHide:{type:String,default:"click"},shadow:{type:Boolean,default:!0},shadowStyle:{type:String,default:"0 5px 5px -3px rgba(0,0,0,.2), 0 8px 10px 1px rgba(0,0,0,.14), 0 3px 14px 2px rgba(0,0,0,.12)"},transitionTime:{type:Number,default:200},labelContent:{type:String,default:null},editable:{type:Boolean,default:!0}},data:function(){return{mmkey:oo(),valueTrans:!1,triggerWidth:null,contentStyle:"",bp:null}},mounted:function(){let n=this;n.bp=new As(n,n.funGetDivTrigger,n.funGetDivContent,"valueTrans","input",{funAddTrigger:ys,funCheckTrigger:Cs,funRemoveTrigger:xs,modeHide:n.modeHide}),n.bp.mounted()},beforeDestroy:function(){this.bp.destroy()},computed:{changeValue:function(){let n=this,e=n.value;return n.isolated||n.updateValue(e,"changeValue"),""},useDisplayType:function(){return"line"===this.displayType?"display:block;":"display:inline-block;"},useMinWidth:function(){let n=this;return jr(n.minWidth)?`min-width:${n.minWidth}px;`:n.autoFitMinWidth?`min-width:${n.triggerWidth}px;`:""},useMaxWidth:function(){let n=this;return jr(n.maxWidth)?`max-width:${n.maxWidth}px;`:n.autoFitMaxWidth?`max-width:${n.triggerWidth}px;`:""},useBorderRadius:function(){let n=this;return jr(n.borderRadius)?`border-radius:${n.borderRadius}px;`:""},useTextFontSize:function(){let n=this.textFontSize;return n=Pr(n,";",""),`font-size:${n};`},useTextColor:function(){return Br(this.textColor)},useBackgroundColor:function(){return Br(this.backgroundColor)},usePadding:function(){return`padding:${Or(this.paddingStyle)};`},useShadow:function(){if(!this.shadow)return"";let n=Pr(this.shadowStyle,";","");return""!==n?`box-shadow:${n};`:""}},methods:{funGetDivTrigger:function(){return an(this,"$refs.divTrigger",null)},funGetDivContent:function(){return an(this,"$refs.divContent",null)},evShow:function(n,e){let t=this;Oo(an(t,"bp.evShow"))&&t.bp.evShow(n,e)},evHide:function(n,e){let t=this;Oo(an(t,"bp.evHide"))&&t.bp.evHide(n,e)},updatePopper:function(n,e){let t=this;Oo(an(t,"bp.updatePopper"))&&t.bp.updatePopper(n,e)},updateValue:function(n,e){let t=this;Oo(an(t,"bp.updateValue"))&&t.bp.updateValue(n,e)}}};var Ss=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:""+n.useDisplayType,attrs:{changeValue:n.changeValue}},[t("div",{ref:"divTrigger",staticStyle:{outline:"none"},attrs:{tabindex:"0"},on:{click:function(e){return n.evShow("popup","click")},mouseenter:function(e){return n.evShow("tooltip","mouseenter")},mouseleave:function(e){return n.evHide("tooltip","mouseleave")}}},[n._t("trigger")],2),n._v(" "),t("Teleport",{attrs:{to:"body"}},[t("div",{directives:[{name:"show",rawName:"v-show",value:n.valueTrans,expression:"valueTrans"},{name:"domresize",rawName:"v-domresize"}],ref:"divContent",staticClass:"WPopperFix",style:"z-index:"+n.cmpZIndex+";",attrs:{wtlp:n.labelContent},on:{domresize:n.updatePopper}},[n.valueTrans?t("div",{style:n.contentStyle+" "+n.usePadding+" "+n.useTextFontSize+" color:"+n.useTextColor+"; background:"+n.useBackgroundColor+"; "+n.useMinWidth+" "+n.useMaxWidth+" "+n.useBorderRadius+" "+n.useShadow},[n._t("content",null,{funHide:function(){n.updateValue(!1,"slot")}})],2):n._e()])])],1)};Ss._withStripped=!0;const ks=Xr({render:Ss,staticRenderFns:[]},function(n){n&&n("data-v-229a34c9_0",{source:"\n.WPopperFix[data-popper-reference-hidden][data-v-229a34c9] {\r\n visibility: hidden;\r\n pointer-events: none;\n}\r\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\node_modules\\w-component-vue\\src\\components\\WTooltip.vue"],names:[],mappings:";AAkbA;IACA,kBAAA;IACA,oBAAA;AACA",file:"WTooltip.vue",sourcesContent:["<template>\r\n <div\r\n :style=\"`${useDisplayType}`\"\r\n :changeValue=\"changeValue\"\r\n >\r\n\r\n <div\r\n ref=\"divTrigger\"\r\n style=\"outline:none;\"\r\n tabindex=\"0\"\r\n @click=\"evShow('popup','click')\"\r\n @mouseenter=\"evShow('tooltip','mouseenter')\"\r\n @mouseleave=\"evHide('tooltip','mouseleave')\"\r\n >\r\n\r\n <slot name=\"trigger\"></slot>\r\n\r\n </div>\r\n\r\n \x3c!-- 不能給予position因會被popupjs洗掉, 但可給z-index, 且popupjs會改用transform:translate定位 --\x3e\r\n \x3c!-- 若使用minWidth, 會使popupjs重算給予minWidth用以自動撐開彈窗寬度失效, 若於其內slot外添加div給予minWidth, 亦會使popupjs給予minWidth機制失效, 待研究 --\x3e\r\n <Teleport to=\"body\">\r\n <div\r\n ref=\"divContent\"\r\n class=\"WPopperFix\"\r\n :style=\"`z-index:${cmpZIndex};`\"\r\n :wtlp=\"labelContent\"\r\n v-show=\"valueTrans\"\r\n v-domresize\r\n @domresize=\"updatePopper\"\r\n >\r\n <div\r\n :style=\"`${contentStyle} ${usePadding} ${useTextFontSize} color:${useTextColor}; background:${useBackgroundColor}; ${useMinWidth} ${useMaxWidth} ${useBorderRadius} ${useShadow}`\"\r\n v-if=\"valueTrans\"\r\n >\r\n <slot\r\n name=\"content\"\r\n :funHide=\"()=>{updateValue(false,'slot')}\"\r\n ></slot>\r\n </div>\r\n </div>\r\n </Teleport>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport get from 'lodash-es/get.js'\r\nimport last from 'lodash-es/last.js'\r\nimport pull from 'lodash-es/pull.js'\r\nimport isNumber from 'lodash-es/isNumber.js'\r\nimport genID from 'wsemi/src/genID.mjs'\r\nimport replace from 'wsemi/src/replace.mjs'\r\nimport isfun from 'wsemi/src/isfun.mjs'\r\nimport Teleport from './Teleport.vue'\r\nimport convertColor from '../js/convertColor.mjs'\r\nimport parseSpace from '../js/parseSpace.mjs'\r\nimport domResize from '../js/domResize.mjs'\r\nimport BuildPopper from '../js/buildPopper.mjs'\r\n\r\n\r\n//tootip與popup不共用已出現項目清單, 避免互相影響\r\nlet kpRespList = {\r\n tooltip: [],\r\n popup: [],\r\n}\r\nfunction funAddTrigger(mode, mmkey) {\r\n kpRespList[mode].push(mmkey)\r\n}\r\nfunction funCheckTrigger(mode, mmkey) {\r\n return last(kpRespList[mode]) === mmkey\r\n}\r\nfunction funRemoveTrigger(mode, mmkey) {\r\n pull(kpRespList[mode], mmkey)\r\n}\r\n\r\n\r\n/**\r\n * @vue-prop {String} [mode='tooltip'] 輸入組件模式字串,可選'tooltip'與'popup',預設'tooltip'\r\n * @vue-prop {Boolean} [value=false] 輸入是否顯示布林值,預設false\r\n * @vue-prop {String} [displayType='block'] 輸入display設定字串,可選'block'與'line',預設'block'\r\n * @vue-prop {Number} [cmpZIndex=3000] 輸入提示窗或彈窗使用z-index數字,預設3000\r\n * @vue-prop {Boolean} [isolated=false] 輸入提示窗或彈窗當mode為'popup'時是否為獨立顯引狀態布林值,也就是可不接收外部傳入value值,預設false\r\n * @vue-prop {Number} [minWidth=null] 輸入提示窗或彈窗最小寬度數字,不含paddingStyle的寬度,單位為px,預設null\r\n * @vue-prop {Number} [maxWidth=null] 輸入提示窗或彈窗最大寬度數字,不含paddingStyle的寬度,單位為px,預設null\r\n * @vue-prop {Boolean} [autoFitMinWidth=false] 輸入是否使用驅動區寬度作為提示窗或彈窗之最小寬度布林值,不含paddingStyle的寬度,預設false\r\n * @vue-prop {Boolean} [autoFitMaxWidth=false] 輸入是否使用驅動區寬度作為提示窗或彈窗之最大寬度布林值,不含paddingStyle的寬度,預設false\r\n * @vue-prop {String} [placement='bottom'] 輸入提示窗或彈窗出現位置字串,可選'top-start'、'top'、'top-end'、'bottom-start'、'bottom'、'bottom-end'、'left-start'、'left'、'left-end'、'right-start'、'right'、'right-end'、,預設'bottom'\r\n * @vue-prop {Number} [placementDistX=0] 輸入提示窗或彈窗距離觸發元素之水平向右平移數字,單位為px,預設0\r\n * @vue-prop {Number} [placementDistY=5] 輸入提示窗或彈窗距離觸發元素之垂直向下平移數字,單位為px,預設5\r\n * @vue-prop {Number} [borderRadius=4] 輸入提示窗或彈窗框圓角度數字,單位為px,預設4\r\n * @vue-prop {String} [textFontSize='0.85rem'] 輸入提示窗或彈窗文字字型大小字串,預設'0.85rem'\r\n * @vue-prop {String} [textColor='white'] 輸入提示窗或彈窗文字顏色字串,預設'white'\r\n * @vue-prop {String} [backgroundColor='rgba(60,60,60,0.75)'] 輸入提示窗或彈窗背景顏色字串,預設'rgba(60,60,60,0.75)'\r\n * @vue-prop {Object} [paddingStyle={v:2,h:10}] 輸入提示窗或彈窗內寬距離設定物件,可用鍵值為v、h、left、right、top、bottom,v代表同時設定top與bottom,h代表設定left與right,若有重複設定時後面鍵值會覆蓋前面,各鍵值為寬度數字,單位為px,預設{v:2,h:10}\r\n * @vue-prop {String} [modeHide='click'] 輸入點擊外部關閉模式字串,可選'click'與'mousedown','click'為mouseup時才關閉,'mousedown'為mousedown時關閉,預設'click'\r\n * @vue-prop {Boolean} [shadow=true] 輸入提示窗或彈窗是否顯示陰影布林值,預設true\r\n * @vue-prop {String} [shadowStyle=''] 輸入提示窗或彈窗陰影顏色字串,預設值詳見props\r\n * @vue-prop {Number} [transitionTime=200] 輸入提示窗或彈窗淡入出現時間數字,單位為ms,預設200\r\n * @vue-prop {String} [labelContent=null] 輸入針對teleport至body內之內容div所給予之wtlp屬性值字串,供查找使用,預設null\r\n * @vue-prop {Boolean} [editable=true] 輸入是否為編輯模式布林值,預設true\r\n */\r\nexport default {\r\n directives: {\r\n domresize: domResize(),\r\n },\r\n components: {\r\n Teleport,\r\n },\r\n props: {\r\n mode: {\r\n type: String,\r\n default: 'tooltip', //tooltip, popup\r\n },\r\n value: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n displayType: {\r\n type: String,\r\n default: 'block', //line, block\r\n },\r\n cmpZIndex: {\r\n type: Number,\r\n default: 3000,\r\n },\r\n isolated: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n minWidth: {\r\n type: Number,\r\n default: null,\r\n },\r\n maxWidth: {\r\n type: Number,\r\n default: null,\r\n },\r\n autoFitMinWidth: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n autoFitMaxWidth: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n placement: {\r\n type: String,\r\n default: 'bottom',\r\n },\r\n placementDistX: {\r\n type: Number,\r\n default: 0,\r\n },\r\n placementDistY: {\r\n type: Number,\r\n default: 5,\r\n },\r\n borderRadius: {\r\n type: Number,\r\n default: 4,\r\n },\r\n textFontSize: {\r\n type: String,\r\n default: '0.85rem',\r\n },\r\n textColor: {\r\n type: String,\r\n default: 'white',\r\n },\r\n backgroundColor: {\r\n type: String,\r\n default: 'rgba(60,60,60,0.75)',\r\n },\r\n paddingStyle: {\r\n type: Object,\r\n default: () => {\r\n return {\r\n v: 2,\r\n h: 10,\r\n }\r\n },\r\n },\r\n modeHide: {\r\n type: String,\r\n default: 'click',\r\n },\r\n shadow: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n shadowStyle: {\r\n type: String,\r\n default: '0 5px 5px -3px rgba(0,0,0,.2), 0 8px 10px 1px rgba(0,0,0,.14), 0 3px 14px 2px rgba(0,0,0,.12)',\r\n },\r\n transitionTime: {\r\n type: Number,\r\n default: 200,\r\n },\r\n labelContent: {\r\n type: String,\r\n default: null,\r\n },\r\n editable: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n },\r\n data: function() {\r\n return {\r\n\r\n mmkey: genID(), //beforeMount內無法變更data, mounted內會晚於computed, 故優先放於data生成\r\n // mmkey: (() => {\r\n // let id = genID()\r\n // console.log('data gen mmkey', id)\r\n // return id\r\n // })(),\r\n\r\n valueTrans: false,\r\n\r\n triggerWidth: null, //會由BuildPopper內更新\r\n contentStyle: '',\r\n\r\n bp: null,\r\n\r\n }\r\n },\r\n mounted: function() {\r\n //console.log('mounted')\r\n\r\n let vo = this\r\n\r\n //BuildPopper\r\n let keyShow = 'valueTrans'\r\n let evNameValue = 'input'\r\n vo.bp = new BuildPopper(vo,\r\n vo.funGetDivTrigger,\r\n vo.funGetDivContent,\r\n keyShow,\r\n evNameValue,\r\n {\r\n funAddTrigger,\r\n funCheckTrigger,\r\n funRemoveTrigger,\r\n modeHide: vo.modeHide,\r\n })\r\n\r\n //mounted\r\n vo.bp.mounted()\r\n\r\n },\r\n beforeDestroy: function() {\r\n //console.log('beforeDestroy')\r\n\r\n let vo = this\r\n\r\n //destroy\r\n vo.bp.destroy()\r\n\r\n },\r\n computed: {\r\n\r\n changeValue: function () {\r\n //console.log('computed changeValue')\r\n\r\n let vo = this\r\n\r\n //trigger\r\n let value = vo.value\r\n let isolated = vo.isolated\r\n\r\n //updateValue\r\n if (!isolated) {\r\n vo.updateValue(value, 'changeValue')\r\n }\r\n\r\n return ''\r\n },\r\n\r\n useDisplayType: function() {\r\n let vo = this\r\n if (vo.displayType === 'line') {\r\n return 'display:block;'\r\n }\r\n return 'display:inline-block;'\r\n },\r\n\r\n useMinWidth: function() {\r\n //console.log('computed useMinWidth')\r\n\r\n let vo = this\r\n\r\n if (isNumber(vo.minWidth)) {\r\n return `min-width:${vo.minWidth}px;`\r\n }\r\n else if (vo.autoFitMinWidth) {\r\n return `min-width:${vo.triggerWidth}px;`\r\n }\r\n return ''\r\n },\r\n\r\n useMaxWidth: function() {\r\n //console.log('computed useMaxWidth')\r\n\r\n let vo = this\r\n\r\n if (isNumber(vo.maxWidth)) {\r\n return `max-width:${vo.maxWidth}px;`\r\n }\r\n else if (vo.autoFitMaxWidth) {\r\n return `max-width:${vo.triggerWidth}px;`\r\n }\r\n return ''\r\n },\r\n\r\n useBorderRadius: function() {\r\n //console.log('computed useBorderRadius')\r\n\r\n let vo = this\r\n\r\n if (isNumber(vo.borderRadius)) {\r\n return `border-radius:${vo.borderRadius}px;`\r\n }\r\n return ''\r\n },\r\n\r\n useTextFontSize: function() {\r\n let vo = this\r\n let s = vo.textFontSize\r\n s = replace(s, ';', '')\r\n return `font-size:${s};`\r\n },\r\n\r\n useTextColor: function() {\r\n //console.log('computed useTextColor')\r\n\r\n let vo = this\r\n\r\n return convertColor(vo.textColor)\r\n },\r\n\r\n useBackgroundColor: function() {\r\n //console.log('computed useBackgroundColor')\r\n\r\n let vo = this\r\n\r\n return convertColor(vo.backgroundColor)\r\n },\r\n\r\n usePadding: function() {\r\n //console.log('computed usePadding')\r\n\r\n let vo = this\r\n\r\n //parseSpace\r\n let cs = parseSpace(vo.paddingStyle)\r\n\r\n //padding\r\n let padding = `padding:${cs};`\r\n\r\n return padding\r\n },\r\n\r\n useShadow: function() {\r\n //console.log('computed useShadow')\r\n\r\n let vo = this\r\n\r\n //check\r\n if (!vo.shadow) {\r\n return ''\r\n }\r\n\r\n //shadowStyle\r\n let s = replace(vo.shadowStyle, ';', '')\r\n if (s !== '') {\r\n return `box-shadow:${s};`\r\n }\r\n\r\n return ''\r\n },\r\n\r\n },\r\n methods: {\r\n\r\n funGetDivTrigger: function() {\r\n let vo = this\r\n let divTrigger = get(vo, '$refs.divTrigger', null)\r\n return divTrigger\r\n },\r\n\r\n funGetDivContent: function() {\r\n let vo = this\r\n let divContent = get(vo, '$refs.divContent', null)\r\n return divContent\r\n },\r\n\r\n evShow: function(kind, from) {\r\n let vo = this\r\n let f = get(vo, 'bp.evShow')\r\n if (isfun(f)) {\r\n vo.bp.evShow(kind, from)\r\n }\r\n },\r\n\r\n evHide: function(kind, from) {\r\n let vo = this\r\n let f = get(vo, 'bp.evHide')\r\n if (isfun(f)) {\r\n vo.bp.evHide(kind, from)\r\n }\r\n },\r\n\r\n updatePopper: function(msg, from) {\r\n let vo = this\r\n let f = get(vo, 'bp.updatePopper')\r\n if (isfun(f)) {\r\n vo.bp.updatePopper(msg, from)\r\n }\r\n },\r\n\r\n updateValue: function(value, from) {\r\n let vo = this\r\n let f = get(vo, 'bp.updateValue')\r\n if (isfun(f)) {\r\n vo.bp.updateValue(value, from)\r\n }\r\n },\r\n\r\n },\r\n}\r\n<\/script>\r\n\r\n<style scoped>\r\n.WPopperFix[data-popper-reference-hidden] {\r\n visibility: hidden;\r\n pointer-events: none;\r\n}\r\n</style>\r\n\r\n"]},media:void 0})},ws,"data-v-229a34c9",false,void 0,!1,Zr,void 0,void 0);const _s={components:{WTooltip:ks},props:{value:{type:Boolean,default:!1},displayType:{type:String,default:"block"},cmpZIndex:{type:Number,default:3e3},isolated:{type:Boolean,default:!1},minWidth:{type:Number,default:null},maxWidth:{type:Number,default:null},autoFitMinWidth:{type:Boolean,default:!1},autoFitMaxWidth:{type:Boolean,default:!1},placement:{type:String,default:"bottom-start"},placementDistX:{type:Number,default:0},placementDistY:{type:Number,default:5},borderRadius:{type:Number,default:4},textFontSize:{type:String,default:"inherit"},textColor:{type:String,default:"black"},backgroundColor:{type:String,default:"white"},paddingStyle:{type:Object,default:()=>({v:0,h:0})},modeHide:{type:String,default:"click"},shadow:{type:Boolean,default:!0},shadowStyle:{type:String,default:"0 5px 5px -3px rgba(0,0,0,.2), 0 8px 10px 1px rgba(0,0,0,.14), 0 3px 14px 2px rgba(0,0,0,.12)"},transitionTime:{type:Number,default:200},labelContent:{type:String,default:null},editable:{type:Boolean,default:!0}},data:function(){return{}},mounted:function(){},computed:{},methods:{}};var Bs=function(){var n=this,e=n.$createElement;return(n._self._c||e)("WTooltip",n._g(n._b({scopedSlots:n._u([{key:"trigger",fn:function(){return[n._t("trigger")]},proxy:!0},{key:"content",fn:function(e){return[n._t("content",null,{funHide:e.funHide})]}}],null,!0)},"WTooltip",Object.assign({},n.$props,{mode:"popup"}),!1),n.$listeners))};Bs._withStripped=!0;const Ps=Xr({render:Bs,staticRenderFns:[]},function(n){n&&n("data-v-0e335b10_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WPopup.vue"},media:void 0})},_s,"data-v-0e335b10",false,void 0,!1,Zr,void 0,void 0);function Ts(n,e,t){if((n=en(n))&&(t||void 0===e))return Wt(n);if(!n||!(e=nn(e)))return n;var o=ue(n),r=ue(e),i=function(n,e){for(var t=-1,o=n.length;++t<o&&Xi(e,n[t],0)>-1;);return t}(o,r),a=function(n,e){for(var t=n.length;t--&&Xi(e,n[t],0)>-1;);return t}(o,r)+1;return Un(o,i,a).join("")}var Es=r?r.isConcatSpreadable:void 0;function zs(e){return n(e)||vn(e)||!!(Es&&e&&e[Es])}function Is(n,e,t,o,r){var i=-1,a=n.length;for(t||(t=zs),r||(r=[]);++i<a;){var s=n[i];e>0&&t(s)?e>1?Is(s,e-1,t,o,r):xe(r,s):o||(r[r.length]=s)}return r}function Fs(n,e){if(n!==e){var t=void 0!==n,o=null===n,r=n==n,i=f(n),a=void 0!==e,s=null===e,l=e==e,d=f(e);if(!s&&!d&&!i&&n>e||i&&a&&l&&!s&&!d||o&&a&&l||!t&&l||!r)return 1;if(!o&&!i&&!d&&n<e||d&&t&&r&&!o&&!i||s&&t&&r||!a&&r||!l)return-1}return 0}function Hs(e,t,o){t=t.length?J(t,function(e){return n(e)?function(n){return rn(n,1===e.length?e[0]:e)}:e}):[Vn];var r=-1;return t=J(t,kn(at)),function(n,e){var t=n.length;for(n.sort(e);t--;)n[t]=n[t].value;return n}(st(e,function(n,e,o){return{criteria:J(t,function(e){return e(n)}),index:++r,value:n}}),function(n,e){return function(n,e,t){for(var o=-1,r=n.criteria,i=e.criteria,a=r.length,s=t.length;++o<a;){var l=Fs(r[o],i[o]);if(l)return o>=s?l:l*("desc"==t[o]?-1:1)}return n.index-e.index}(n,e,o)})}var Ns=Yi(function(n,e){if(null==n)return[];var t=e.length;return t>1&&Zn(n,e[0],e[1])?e=[]:t>2&&Zn(e[0],e[1],e[2])&&(e=[e[0]]),Hs(n,Is(e,1),[])});function Ws(n){return en(n).toLowerCase()}function $s(n){return en(n).toUpperCase()}function Ms(n){if(!Gt(n))return!1;return Kt(n)>=0}function Ls(n,e){return ft(n)&&Ms(e)?0===(e=Kt(e))?"":n.substring(0,e):""}function Ds(n,e){return ft(n)&&Ms(e)?0===(e=Kt(e))?n:function(n,e){if(!ft(n))return"";if(!Ms(e))return"";if(0===(e=Kt(e)))return"";let t=n.length-e;return t<0&&(t=0),n.substring(t,t+e)}(n,n.length-e):""}function Rs(n,e){if(!ft(n))return[];if(!ft(e))return[];let t=function(n,e){return ft(n)&&ft(e)?n.split(e):[]}(n,e);t=lt(t,Ts);let o=[];return Yn(t,function(n){ft(n)&&o.push(n)}),o}function js(n){if(!(ft(n)||Ut(n)||f(n)||function(n){return"[object BigInt]"===Object.prototype.toString.call(n)}(n)))return"";let e="";try{e=String(n)}catch(n){}try{e=n.toString()}catch(n){}return e}function Os(n,e,t=1){return ft(n)&&Ms(e)?(t=no(t)?Kt(t):1,n.substring(e,e+t)):""}let Vs={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"};function Ys(n){return Xs(n,1)}function Us(n){return Xs(n,360)}function Xs(n,e=1){if(n.indexOf("%")>=0){if(!Ut(n=Pr(n,"%","")))throw new Error("invalid color: value is not a number");n=Xt(n)/100}else{if(!Ut(n))throw new Error("invalid color: value is not a number");n=Xt(n)/e}if(n>1)throw new Error("invalid color: value > 1");if(n<0)throw new Error("invalid color: value < 0");return n}function Gs(n){if(!Ut(n))throw new Error("invalid color: value is not a number");if((n=Xt(n))>1)throw new Error("invalid color: value > 1");if(n<0)throw new Error("invalid color: value < 0");return n}function Zs(n,e="rgba"){if(!Vr(n))throw new Error("invalid colors array");let t=an(n,0,0),o=an(n,1,0),r=an(n,2,0),i=an(n,3,1);if(4!==Tt(e=e.split("")))throw new Error("tar.length !== 4");let a=an(e,0),s=an(e,1),l=an(e,2),d=an(e,3);return{[a]:t,[s]:o,[l]:r,[d]:i}}function qs(n){let e=(n=Ds(n,1)).length;if(2===e)n=`${n}${n}${n}ff`;else if(3===e){let e=Os(n,0,1),t=Os(n,1,1),o=Os(n,2,1);n=`${e}${e}${t}${t}${o}${o}ff`}else if(6===e)n=`${n}ff`;else if(8!==e)throw new Error("invalid hex color");function t(n){if(2!==n.length)throw new Error("hex.length of color is not equal to 2");if(!Ut(n=parseInt(n,16)))throw new Error("invalid hex of color");return(n=Xt(n))/255}return{r:t(Os(n,0,2)),g:t(Os(n,2,2)),b:t(Os(n,4,2)),a:t(Os(n,6,2))}}function Js(n){return n=Zs(n=lt(n,(n,e)=>e<=2?Xs(n,255):3===e?Gs(n):null),"rgba")}function Qs(n){return n=al(n=Zs(n=lt(n,(n,e)=>0===e?Us(n):1===e||2===e?Ys(n):3===e?Gs(n):null),"hsla"))}function Ks(n){return n=sl(n=Zs(n=lt(n,(n,e)=>0===e?Us(n):1===e||2===e?Ys(n):3===e?Gs(n):null),"hsva"))}function nl(n){if("transparent"===n)return{r:0,g:0,b:0,a:0};if(function(n){return na(Vs,n)}(n))return qs(n=`#${Vs[n]}`);if(function(n){return"#"===Ls(n,1)&&(!!/[0-9A-Fa-f]{2}/g.test(n)||(!!/[0-9A-Fa-f]{3}/g.test(n)||(!!/[0-9A-Fa-f]{6}/g.test(n)||!!/[0-9A-Fa-f]{8}/g.test(n))))}(n))return qs(n);if(function(n){return"rgb"===Ls(n,3)||"rgba"===Ls(n,4)}(n))return function(n){return n=Pr(n,"rgba",""),n=Pr(n,"rgb",""),Js(Rs(n=Pr(n=n.replace(/[()]/g,""),","," ")," "))}(n);if(function(n){return"hsl"===Ls(n,3)||"hsla"===Ls(n,4)}(n))return function(n){return n=Pr(n,"hsla",""),n=Pr(n,"hsl",""),Qs(Rs(n=Pr(n=n.replace(/[()]/g,""),","," ")," "))}(n);if(function(n){return"hsv"===Ls(n,3)||"hsva"===Ls(n,4)}(n))return function(n){return n=Pr(n,"hsva",""),n=Pr(n,"hsv",""),Ks(Rs(n=Pr(n=n.replace(/[()]/g,""),","," ")," "))}(n);throw new Error("format of color string is not hex-color, name-color, rgba, hsla, hsva")}function el(n,e){return!!na(n,e=Ws(e))||!!na(n,e=$s(e))}function tl(n,e,t){let o;return o=an(n,e,null),null!==o?o:(o=an(n,e=$s(e),null),null!==o?o:t)}function ol(n){if(function(n){let e=el(n,"r"),t=el(n,"g"),o=el(n,"b");return e&&t&&o}(n))return function(n){let e=[tl(n,"r",null),tl(n,"g",null),tl(n,"b",null),tl(n,"a",1)];return e=lt(e,js),Js(e)}(n);if(function(n){let e=el(n,"h"),t=el(n,"s"),o=el(n,"l");return e&&t&&o}(n))return function(n){let e=[tl(n,"h",null),tl(n,"s",null),tl(n,"l",null),tl(n,"a",1)];return e=lt(e,js),Qs(e)}(n);if(function(n){let e=el(n,"h"),t=el(n,"s"),o=el(n,"v");return e&&t&&o}(n))return function(n){let e=[tl(n,"h",null),tl(n,"s",null),tl(n,"v",null),tl(n,"a",1)];return e=lt(e,js),Ks(e)}(n);throw new Error("color object is not one of rgba, hsla, hsva")}function rl(n){let e,t,o=n.r,r=n.g,i=n.b,a=Math.max(o,r,i),s=Math.min(o,r,i),l=(a+s)/2;if(a===s)e=t=0;else{let n=a-s;switch(t=l>.5?n/(2-a-s):n/(a+s),a){case o:e=(r-i)/n+(r<i?6:0);break;case r:e=(i-o)/n+2;break;case i:e=(o-r)/n+4}e/=6}return{h:e,s:t,l:l,a:n.a}}function il(n){let e,t,o=n.r,r=n.g,i=n.b,a=Math.max(o,r,i),s=Math.min(o,r,i),l=a,d=a-s;if(t=0===a?0:d/a,a===s)e=0;else{switch(a){case o:e=(r-i)/d+(r<i?6:0);break;case r:e=(i-o)/d+2;break;case i:e=(o-r)/d+4}e/=6}return{h:e,s:t,v:l,a:n.a}}function al(n){let e,t,o,r=n.h,i=n.s,a=n.l;function s(n,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?n+6*(e-n)*t:t<.5?e:t<2/3?n+(e-n)*(2/3-t)*6:n}if(0===i)e=t=o=a;else{let n=a<.5?a*(1+i):a+i-a*i,l=2*a-n;e=s(l,n,r+1/3),t=s(l,n,r),o=s(l,n,r-1/3)}return{r:e,g:t,b:o,a:n.a}}function sl(n){let e,t,o,r=n.h,i=n.s,a=n.v,s=Math.floor(6*r),l=6*r-s,d=a*(1-i),u=a*(1-l*i),c=a*(1-(1-l)*i);switch(s%6){case 0:e=a,t=c,o=d;break;case 1:e=u,t=a,o=d;break;case 2:e=d,t=a,o=c;break;case 3:e=d,t=u,o=a;break;case 4:e=c,t=d,o=a;break;case 5:e=a,t=d,o=u}return{r:e,g:t,b:o,a:n.a}}function ll(n){let e=Math.round(255*n).toString(16);if(1===e.length)return`0${e}`;if(2===e.length)return e;throw new Error("invalid value")}function dl(n,e=!0){let t=n.r,o=n.g,r=n.b,i=n.a,a=`${ll(t)}${ll(o)}${ll(r)}`;return e&&(a=`${a}${ll(i)}`),a}function ul(n){return Math.min(1,Math.max(0,n))}function cl(n,e){if(!ft(e))throw new Error("fmtOutput is not a string");if(!Yl[e])throw console.log(`fmtOutput must be [${Rn(Yl)}]`),new Error("invalid fmtOutput");return n=Yl[e](n)}function pl(n,e,t="toRgbString"){if(e<0||e>1)throw new Error("amount < 0 or > 1");let o=rl(n);return o.h+=e,o.h=o.h%1,cl(al(o),t)}function fl(n,e,t,o,r="toRgbString"){if(e<0||e>1)throw new Error("w1 < 0 or > 1");if(o<0||o>1)throw new Error("w1 < 0 or > 1");return cl({r:n.r*e+t.r*o,g:n.g*e+t.g*o,b:n.b*e+t.b*o,a:n.a*e+t.a*o},r)}function hl(n){return`${Qt(100*n,1)}%`}function gl(n){return Qt(n,0)}function vl(n){return Qt(n,3)}function ml(n){return{r:gl(255*n.r),g:gl(255*n.g),b:gl(255*n.b)}}function Al(n){return`rgb(${gl(255*n.r)}, ${gl(255*n.g)}, ${gl(255*n.b)})`}function bl(n){return{r:gl(255*n.r),g:gl(255*n.g),b:gl(255*n.b),a:vl(n.a)}}function yl(n){return`rgba(${gl(255*n.r)}, ${gl(255*n.g)}, ${gl(255*n.b)}, ${vl(n.a)})`}function Cl(n){let e=rl(n);return{h:gl(360*e.h),s:vl(e.s),l:vl(e.l)}}function xl(n){let e=rl(n);return`hsl(${gl(360*e.h)}, ${vl(e.s)}, ${vl(e.l)})`}function wl(n){let e=rl(n);return{h:gl(360*e.h),s:vl(e.s),l:vl(e.l),a:vl(e.a)}}function Sl(n){let e=rl(n);return`hsla(${gl(360*e.h)}, ${vl(e.s)}, ${vl(e.l)}, ${vl(e.a)})`}function kl(n){let e=il(n);return{h:gl(360*e.h),s:vl(e.s),v:vl(e.v)}}function _l(n){let e=il(n);return`hsv(${gl(360*e.h)}, ${vl(e.s)}, ${vl(e.v)})`}function Bl(n){let e=il(n);return{h:gl(360*e.h),s:vl(e.s),v:vl(e.v),a:vl(e.a)}}function Pl(n){let e=il(n);return`hsva(${gl(360*e.h)}, ${vl(e.s)}, ${vl(e.v)}, ${vl(e.a)})`}function Tl(n){return{r:hl(n.r),g:hl(n.g),b:hl(n.b)}}function El(n){return`rgb(${hl(n.r)}, ${hl(n.g)}, ${hl(n.b)})`}function zl(n){return{r:hl(n.r),g:hl(n.g),b:hl(n.b),a:vl(n.a)}}function Il(n){return`rgba(${hl(n.r)}, ${hl(n.g)}, ${hl(n.b)}, ${vl(n.a)})`}function Fl(n){let e=rl(n);return{h:gl(360*e.h),s:hl(e.s),l:hl(e.l)}}function Hl(n){let e=rl(n);return`hsl(${gl(360*e.h)}, ${hl(e.s)}, ${hl(e.l)})`}function Nl(n){let e=rl(n);return{h:gl(360*e.h),s:hl(e.s),l:hl(e.l),a:vl(e.a)}}function Wl(n){let e=rl(n);return`hsla(${gl(360*e.h)}, ${hl(e.s)}, ${hl(e.l)}, ${vl(e.a)})`}function $l(n){let e=il(n);return{h:gl(360*e.h),s:hl(e.s),v:hl(e.v)}}function Ml(n){let e=il(n);return`hsv(${gl(360*e.h)}, ${hl(e.s)}, ${hl(e.v)})`}function Ll(n){let e=il(n);return{h:gl(360*e.h),s:hl(e.s),v:hl(e.v),a:vl(e.a)}}function Dl(n){let e=il(n);return`hsva(${gl(360*e.h)}, ${hl(e.s)}, ${hl(e.v)}, ${vl(e.a)})`}function Rl(n){let e=function(n){return dl(n,!1)}(n);return`#${e}`}function jl(n){return`#${dl(n)}`}function Ol(n){let e=null,t=null,o=null;if(ft(n))e=Ws(Ts(n));else{if(!Tr(n))throw console.log("color=",n),new Error("color is not a string or an object");t=n}if(null!==e)try{o=nl(e)}catch(n){throw console.log(n),new Error(`can not parse color: ${e}`)}else if(null!==t)try{o=ol(t)}catch(n){throw console.log(n),new Error(`can not parse color: ${JSON.stringify(t)}`)}return o}function Vl(n){if(!Tr(n))return console.log("gradient is not an effective object"),n=>`rgb(${255*(n=Math.min(Math.max(n,0),1))},${255*n},${255*n})`;let e=[];return Yn(n,(n,t)=>{e.push([Xt(t),bl(Ol(n)),n])}),e=Ns(e,0),function(n){let t=null;for(let o=1;o<e.length;o++){let r=e[o-1][0],i=e[o-1][1],a=e[o][0],s=e[o][1];if(r<=n&&a>=n){let e=(a-n)/(a-r),o=(n-r)/(a-r);t=fl(Ol(i),e,Ol(s),o,"toRgbaString");break}}return t}}let Yl={toRgb:ml,toRgbString:Al,toRgba:bl,toRgbaString:yl,toHsl:Cl,toHslString:xl,toHsla:wl,toHslaString:Sl,toHsv:kl,toHsvString:_l,toHsva:Bl,toHsvaString:Pl,toRgbP:Tl,toRgbPString:El,toRgbaP:zl,toRgbaPString:Il,toHslP:Fl,toHslPString:Hl,toHslaP:Nl,toHslaPString:Wl,toHsvP:$l,toHsvPString:Ml,toHsvaP:Ll,toHsvaPString:Dl,toHexString:Rl,toHex8String:jl};var Ul={toRgb:n=>ml(Ol(n)),toRgbString:n=>Al(Ol(n)),toRgba:n=>bl(Ol(n)),toRgbaString:n=>yl(Ol(n)),toHsl:n=>Cl(Ol(n)),toHslString:n=>xl(Ol(n)),toHsla:n=>wl(Ol(n)),toHslaString:n=>Sl(Ol(n)),toHsv:n=>kl(Ol(n)),toHsvString:n=>_l(Ol(n)),toHsva:n=>Bl(Ol(n)),toHsvaString:n=>Pl(Ol(n)),toRgbP:n=>Tl(Ol(n)),toRgbPString:n=>El(Ol(n)),toRgbaP:n=>zl(Ol(n)),toRgbaPString:n=>Il(Ol(n)),toHslP:n=>Fl(Ol(n)),toHslPString:n=>Hl(Ol(n)),toHslaP:n=>Nl(Ol(n)),toHslaPString:n=>Wl(Ol(n)),toHsvP:n=>$l(Ol(n)),toHsvPString:n=>Ml(Ol(n)),toHsvaP:n=>Ll(Ol(n)),toHsvaPString:n=>Dl(Ol(n)),toHexString:n=>Rl(Ol(n)),toHex8String:n=>jl(Ol(n)),modSaturate:(n,e,t)=>function(n,e,t="toRgbString"){if(e<0||e>1)throw new Error("amount < 0 or > 1");let o=rl(n);return o.s+=e,o.s=ul(o.s),cl(al(o),t)}(Ol(n),e,t),modGrey:(n,e)=>function(n,e="toRgbString"){let t=rl(n);return t.s=0,cl(al(t),e)}(Ol(n),e),modLighten:(n,e,t)=>function(n,e,t="toRgbString"){if(e<0||e>1)throw new Error("amount < 0 or > 1");let o=rl(n);return o.l+=e,o.l=ul(o.l),cl(al(o),t)}(Ol(n),e,t),modBrighten:(n,e,t)=>function(n,e,t="toRgbString"){if(e<0||e>1)throw new Error("amount < 0 or > 1");return n.r+=e,n.r=ul(n.r),n.g+=e,n.g=ul(n.g),n.b+=e,n.b=ul(n.b),cl(n,t)}(Ol(n),e,t),modHue:(n,e,t)=>pl(Ol(n),e,t),modComplement:(n,e)=>function(n,e="toRgbString"){return pl(n,.5,e)}(Ol(n),e),spreadHue:(n,e,t)=>function(n,e,t="toRgbString"){if(!Gt(e))throw new Error("num is not an integer");if((e=Kt(e))<=1)return[n];let o=rl(n),r=1/e,i=[];for(let n=0;n<e;n++)i.push(cl(al(o),t)),o.h+=r,o.h=o.h%1;return i}(Ol(n),e,t),spreadMonochromatic:(n,e,t)=>function(n,e,t="toRgbString"){if(!Gt(e))throw new Error("num is not an integer");if((e=Kt(e))<=1)return[n];let o=il(n);o.s=1,o.l=1;let r=1/e,i=[];for(let n=0;n<e;n++)i.push(cl(sl(o),t)),o.h-=r,o.l-=r;return i}(Ol(n),e,t),mix:(n,e,t,o,r)=>fl(Ol(n),e,Ol(t),o,r),getBrightness:n=>function(n){if(1!==n.a)throw new Error("alpha of color can not be equal to 1");return(299*n.r+587*n.g+114*n.b)/1e3}(Ol(n)),getLuminance:n=>function(n){if(1!==n.a)throw new Error("alpha of color can not be equal to 1");let e,t,o,r=n.r,i=n.g,a=n.b;return e=r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4),t=i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4),o=a<=.03928?a/12.92:Math.pow((a+.055)/1.055,2.4),.2126*e+.7152*t+.0722*o}(Ol(n)),interp:Vl};function Xl(n,e,t){for(var o=-1,r=n.length;++o<r;){var i=n[o],a=e(i);if(null!=a&&(void 0===s?a==a&&!f(a):t(a,s)))var s=a,l=i}return l}function Gl(n,e){return n<e}function Zl(n){return n&&n.length?Xl(n,Vn,Gl):void 0}function ql(n,e){return n>e}function Jl(n){return n&&n.length?Xl(n,Vn,ql):void 0}var Ql=Array.prototype.join;function Kl(n,e){return null==n?"":Ql.call(n,e)}var nd={components:{},props:{value:{type:String,default:"#FFFFFF"},size:{type:Number,default:200}},data:function(){let n=function(n){let e=n,t=e/2*Math.sqrt(3),o=e/4*3,r=lt((()=>{let n=[];for(let t=0;t<6;t++){let o=Math.PI/3*(t+.5),r=.5+.5*Math.cos(o),i=.5+.5*Math.sin(o);r*=e,i*=e,n.push({x:r,y:i})}return n})(),n=>`${n.x},${n.y}`);r=Kl(r," ");let i=[];Yn([{dx:6,cs:["#003366","#336699","#3366CC","#003399","#000099","#0000CC","#000066"]},{dx:5,cs:["#006666","#006699","#0099CC","#0066CC","#0033CC","#0000FF","#3333FF","#333399"]},{dx:4,cs:["#669999","#009999","#33CCCC","#00CCFF","#0099FF","#0066FF","#3366FF","#3333CC","#666699"]},{dx:3,cs:["#339966","#00CC99","#00FFCC","#00FFFF","#33CCFF","#3399FF","#6699FF","#6666FF","#6600FF","#6600CC"]},{dx:2,cs:["#339933","#00CC66","#00FF99","#66FFCC","#66FFFF","#66CCFF","#99CCFF","#9999FF","#9966FF","#9933FF","#9900FF"]},{dx:1,cs:["#006600","#00CC00","#00FF00","#66FF99","#99FFCC","#CCFFFF","#CCCCFF","#CC99FF","#CC66FF","#CC33FF","#CC00FF","#9900CC"]},{dx:0,cs:["#003300","#009933","#33CC33","#66FF66","#99FF99","#CCFFCC","#FFFFFF","#FFCCFF","#FF99FF","#FF66FF","#FF00FF","#CC00CC","#660066"]},{dx:1,cs:["#336600","#009900","#66FF33","#99FF66","#CCFF99","#FFFFCC","#FFCCCC","#FF99CC","#FF66CC","#FF33CC","#CC0099","#993399"]},{dx:2,cs:["#333300","#669900","#99FF33","#CCFF66","#FFFF99","#FFCC99","#FF9999","#FF6699","#FF3399","#CC3399","#990099"]},{dx:3,cs:["#666633","#99CC00","#CCFF33","#FFFF66","#FFCC66","#FF9966","#FF6666","#FF0066","#CC6699","#993366"]},{dx:4,cs:["#999966","#CCCC00","#FFFF00","#FFCC00","#FF9933","#FF6600","#FF5050","#CC0066","#660033"]},{dx:5,cs:["#996633","#CC9900","#FF9900","#CC6600","#FF3300","#FF0000","#CC0000","#990033"]},{dx:6,cs:["#663300","#996600","#CC3300","#993300","#990000","#800000","#993333"]}],(n,e)=>{Yn(n.cs,(r,a)=>{let s={x:(t+0)*a+n.dx*(t/2),y:(o+0)*e,color:r};ft(r)&&i.push(s)})});let a=Zl(lt(i,"x")),s=Jl(lt(i,"x")),l=Zl(lt(i,"y")),d=Jl(lt(i,"y"));return s+=t+2,d+=e+1,{cpgs:r,colors:i,xmin:a,xmax:s,ymin:l,ymax:d}}(18);return{valueTrans:null,cpgs:n.cpgs,colors:n.colors,xmin:n.xmin,xmax:n.xmax,ymin:n.ymin,ymax:n.ymax,pick:null}},computed:{changeValue:function(){return this.valueTrans=Br(this.value),""},changePick:function(){let n=this,e=null;return Yn(n.colors,t=>{n.jdColor2(t.color,n.valueTrans)&&(e=t)}),n.pick=e,""},width:function(){return this.size},height:function(){return this.width/10*9}},methods:{jdColor2:function(n,e){return Ul.toRgbString(n)===Ul.toRgbString(e)},ckColor:function(n){this.valueTrans=n.color,this.$emit("input",n.color)}}};const ed=nd;var td=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:"display:inline-block; width:"+n.width+"px; height:"+n.height+"px;",attrs:{changeValue:n.changeValue,changePick:n.changePick}},[t("div",{staticStyle:{display:"flex"}},[t("svg",{attrs:{viewBox:"0 0 "+n.xmax+" "+n.ymax,width:n.width,height:n.height,xmlns:"http://www.w3.org/2000/svg"}},[n._l(n.colors,function(e,o){return t("polygon",{key:"kc-"+o,style:"fill:"+e.color+"; stroke:"+e.color+"; stroke-width:1px; cursor:pointer; user-select:none;",attrs:{transform:"translate("+e.x+", "+e.y+")",points:n.cpgs},on:{click:function(t){return n.ckColor(e)}}})}),n._v(" "),n.pick?[t("polygon",{style:"fill:transparent; stroke:#000; stroke-width:4px; cursor:pointer; user-select:none;",attrs:{transform:"translate("+n.pick.x+", "+n.pick.y+")",points:n.cpgs},on:{click:function(e){return n.ckColor(n.pick)}}}),n._v(" "),t("polygon",{style:"fill:transparent; stroke:#fff; stroke-width:2px; cursor:pointer; user-select:none;",attrs:{transform:"translate("+n.pick.x+", "+n.pick.y+")",points:n.cpgs},on:{click:function(e){return n.ckColor(n.pick)}}})]:n._e()],2)])])};td._withStripped=!0;const od=Xr({render:td,staticRenderFns:[]},function(n){n&&n("data-v-6cff9481_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WColorPickHexagon.vue"},media:void 0})},ed,"data-v-6cff9481",false,void 0,!1,Zr,void 0,void 0);var rd={components:{},props:{value:{type:String,default:"#FFFFFF"},colorLeft:{type:String,default:"#FFFFFF"},colorRight:{type:String,default:"#000000"},colorNum:{type:Number,default:10},width:{type:Number,default:200},height:{type:Number,default:20}},data:function(){return{aimg:"data:image/svg+xml;base64,ICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDEwIDEwIiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQogICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSI1IiBoZWlnaHQ9IjUiIGZpbGw9IiNkZGQiIC8+DQogICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9IjAiIHk9IjUiIHdpZHRoPSI1IiBoZWlnaHQ9IjUiIGZpbGw9IiNmZmYiIC8+DQogICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9IjUiIHk9IjAiIHdpZHRoPSI1IiBoZWlnaHQ9IjUiIGZpbGw9IiNmZmYiIC8+DQogICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9IjUiIHk9IjUiIHdpZHRoPSI1IiBoZWlnaHQ9IjUiIGZpbGw9IiNkZGQiIC8+DQogICAgICAgICAgICAgICAgPC9zdmc+",valueTrans:null,colorLeftTrans:null,colorRightTrans:null,s:20,pick:null}},computed:{changeValue:function(){let n=this;return n.valueTrans=Br(n.value),n.colorLeftTrans=Br(n.colorLeft),n.colorRightTrans=Br(n.colorRight),""},colors:function(){let n=this,e={0:n.colorLeftTrans,1:n.colorRightTrans},t=Ul.interp(e),o=[];for(let e=0;e<n.colorNum;e++){let r=e/Math.max(n.colorNum-1,1),i=t(r);o.push({r:r,x:e*n.s,y:0,color:i})}return o},changePick:function(){let n=this,e=null;return Yn(n.colors,t=>{n.jdColor2(t.color,n.valueTrans)&&(e=t)}),n.pick=e,""}},methods:{jdColor2:function(n,e){return Ul.toRgbString(n)===Ul.toRgbString(e)},ckColor:function(n){this.valueTrans=n.color,this.$emit("input",n.color)}}};const id=rd;var ad=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:"display:inline-block; width:"+n.width+"px; height:"+n.height+"px;",attrs:{changeValue:n.changeValue,changePick:n.changePick}},[t("div",{style:"position:relative; width:"+n.width+"px; height:"+n.height+"px;"},[t("div",{style:"\n position:absolute; left:0px; top:0px;\n width:"+n.width+"px; height:"+n.height+"px;\n background-image: url("+n.aimg+");\n background-repeat:repeat;\n "}),n._v(" "),t("div",{style:"\n position:absolute; left:0px; top:0px;\n width:"+n.width+"px; height:"+n.height+"px;\n "},[t("div",{staticStyle:{display:"flex"}},[t("svg",{attrs:{viewBox:"0 0 "+n.colors.length*n.s+" "+n.s,width:n.width,height:n.height,preserveAspectRatio:"none",xmlns:"http://www.w3.org/2000/svg"}},[n._l(n.colors,function(e,o){return t("rect",{key:"kc-"+o,style:"fill:"+e.color+"; stroke-width:0px; cursor:pointer; user-select:none;",attrs:{x:e.x,y:e.y,width:n.s,height:n.s},on:{click:function(t){return n.ckColor(e)}}})}),n._v(" "),n.pick?[t("rect",{style:"fill:transparent; stroke:#000; stroke-width:1px; cursor:pointer; user-select:none;",attrs:{x:n.pick.x,y:n.pick.y,width:n.s,height:n.s}}),n._v(" "),t("rect",{style:"fill:transparent; stroke:#fff; stroke-width:2px; cursor:pointer; user-select:none;",attrs:{x:n.pick.x+2,y:n.pick.y+2,width:n.s-4,height:n.s-4}})]:n._e()],2)])])])])};ad._withStripped=!0;const sd={components:{WColorPickHexagon:od,WColorPickStripe:Xr({render:ad,staticRenderFns:[]},function(n){n&&n("data-v-d9d8b6ce_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WColorPickStripe.vue"},media:void 0})},id,"data-v-d9d8b6ce",false,void 0,!1,Zr,void 0,void 0)},props:{value:{type:String,default:"#FFFFFF"},size:{type:Number,default:200},space:{type:Number,default:5}},data:function(){return{valueTrans:null}},computed:{changeValue:function(){return this.valueTrans=Br(this.value),""},hexagonSize:function(){return this.size},hexagonWidth:function(){return this.size},hexagonHeight:function(){return this.hexagonWidth/10*9},stripeWidth:function(){return this.size},stripeHeight:function(){return this.stripeWidth/10},width:function(){return this.size},height:function(){let n=this;return n.hexagonHeight+n.space+n.stripeHeight}},methods:{ckColor:function(n){n=(n=Ul.toHexString(n)).toUpperCase(),this.valueTrans=n,this.$emit("input",n)}}};var ld=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:"display:inline-block; width:"+n.width+"px; height:"+n.height+"px;",attrs:{changeValue:n.changeValue}},[t("div",{staticStyle:{display:"flex"}},[t("WColorPickHexagon",{attrs:{size:n.hexagonSize,value:n.valueTrans},on:{input:n.ckColor}})],1),n._v(" "),t("div",{style:"height:"+n.space+"px;"}),n._v(" "),t("div",{staticStyle:{display:"flex"}},[t("WColorPickStripe",{attrs:{width:n.stripeWidth,height:n.stripeHeight,colorNum:10,value:n.valueTrans},on:{input:n.ckColor}})],1)])};ld._withStripped=!0;const dd=Xr({render:ld,staticRenderFns:[]},function(n){n&&n("data-v-1fab84d1_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WColorPickHexagonGray.vue"},media:void 0})},sd,"data-v-1fab84d1",false,void 0,!1,Zr,void 0,void 0);const ud={components:{},props:{value:{type:Number,default:1},color:{type:String,default:"#000000"},width:{type:Number,default:200},height:{type:Number,default:20},cursorSize:{type:Number,default:7}},data:function(){return{aimg:"data:image/svg+xml;base64,ICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDEwIDEwIiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQogICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSI1IiBoZWlnaHQ9IjUiIGZpbGw9IiNkZGQiIC8+DQogICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9IjAiIHk9IjUiIHdpZHRoPSI1IiBoZWlnaHQ9IjUiIGZpbGw9IiNmZmYiIC8+DQogICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9IjUiIHk9IjAiIHdpZHRoPSI1IiBoZWlnaHQ9IjUiIGZpbGw9IiNmZmYiIC8+DQogICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9IjUiIHk9IjUiIHdpZHRoPSI1IiBoZWlnaHQ9IjUiIGZpbGw9IiNkZGQiIC8+DQogICAgICAgICAgICAgICAgPC9zdmc+",valueTrans:1,colorTrans:"#000",curMousedown:!1,curLocLeft:0}},mounted:function(){let n=this;n.windowMousemove=e=>{n.curMousedown&&n.updateCurLocByEvent(e)},window.addEventListener("mousemove",n.windowMousemove,!1),n.windowMouseup=e=>{n.curMousedown=!1},window.addEventListener("mouseup",n.windowMouseup,!1)},beforeDestroy:function(){window.removeEventListener("mousemove",this.windowMousemove,!1),window.removeEventListener("mouseup",this.windowMouseup,!1)},computed:{changeValue:function(){let n=this;return n.valueTrans=n.value,n.updateCurLocByValue(),""},changeColor:function(){return this.colorTrans=Br(this.color),""}},methods:{updateCurLocByEvent:function(n){let e=this,t=e.$el.getBoundingClientRect(),o=n.clientX-t.left;o=Math.min(Math.max(o,0),e.width-1),e.curLocLeft=o,e.updateAlpha()},updateCurLocByValue:function(){let n=this,e=n.valueTrans*(n.width-1);n.curLocLeft=e},updateAlpha:function(){let n=this,e=n.width-1,t=0;e-0-1>0&&(t=(n.curLocLeft-0)/(e-0));let o=t;n.$emit("input",o)},mousedownCur:function(n){this.curMousedown=!0,this.updateCurLocByEvent(n)}}};var cd=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:"display:inline-block;",attrs:{changeValue:n.changeValue,changeColor:n.changeColor}},[t("div",{style:"position:relative; width:"+n.width+"px; height:"+n.height+"px;"},[t("div",{style:"\n position:absolute; left:0px; top:0px;\n width:"+n.width+"px; height:"+n.height+"px;\n background-image: url("+n.aimg+");\n background-repeat:repeat;\n "},[n._e()]),n._v(" "),t("div",{style:"\n position:absolute; left:0px; top:0px;\n width:"+n.width+"px; height:"+n.height+"px;\n background:linear-gradient(to left, "+n.colorTrans+", transparent);\n "}),n._v(" "),t("div",{style:"\n position:absolute; left:"+(n.curLocLeft-Math.floor(n.cursorSize/2)-1)+"px; top:-1px;\n width:"+(n.cursorSize+2)+"px; height:"+(n.height+2)+"px;\n box-sizing:border-box;\n background:transparent;\n border:1px solid #666;\n cursor:pointer;\n user-select:none;\n _pointer-events:none;\n ",on:{mousedown:n.mousedownCur}}),n._v(" "),t("div",{style:"\n position:absolute; left:"+(n.curLocLeft-Math.floor(n.cursorSize/2))+"px; top:0px;\n width:"+n.cursorSize+"px; height:"+n.height+"px;\n box-sizing:border-box;\n background:transparent;\n border:1px solid #fff;\n cursor:pointer;\n user-select:none;\n _pointer-events:none;\n ",on:{mousedown:n.mousedownCur}}),n._v(" "),t("div",{style:"\n position:absolute; left:0px; top:0px;\n width:"+n.width+"px; height:"+n.height+"px;\n cursor:pointer;\n user-select:none;\n _pointer-events:none;\n ",on:{mousedown:n.mousedownCur}})])])};cd._withStripped=!0;const pd=Xr({render:cd,staticRenderFns:[]},function(n){n&&n("data-v-52468a21_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WColorPickAlpha.vue"},media:void 0})},ud,"data-v-52468a21",false,void 0,!1,Zr,void 0,void 0);var fd={components:{WColorPickHexagonGray:dd,WColorPickAlpha:pd},props:{value:{type:String,default:"#FFFFFF"},size:{type:Number,default:200},spaceGray:{type:Number,default:5},spaceAlpha:{type:Number,default:8}},data:function(){return{colorPure:"#fff",colorAlpha:1,pick:null}},computed:{changeValue:function(){let n=this,e=Br(n.value),t=Ul.toRgba(e),o={r:t.r,g:t.g,b:t.b},r=Ul.toRgbString(o),i=t.a;return n.colorPure=r,n.colorAlpha=i,""},hexagonGrayWidth:function(){return this.size},hexagonGrayHeight:function(){return this.hexagonGrayWidth+this.spaceGray},alphaWidth:function(){return this.size},alphaHeight:function(){return this.alphaWidth/10},width:function(){return this.size},height:function(){let n=this;return n.hexagonGrayHeight+n.spaceAlpha+n.alphaHeight}},methods:{updateColor:function(n,e,t){let o=Ul.toRgba(n);o.a=e;let r=Ul.toRgbaString(o);this.$emit("input",r)}}};const hd=fd;var gd=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:"display:inline-block; width:"+n.width+"px; height:"+n.height+"px;",attrs:{changeValue:n.changeValue}},[t("div",{staticStyle:{display:"flex"}},[t("WColorPickHexagonGray",{attrs:{size:n.size,space:n.spaceGray,value:n.colorPure},on:{input:function(e){n.colorPure=e,n.updateColor(n.colorPure,n.colorAlpha,"hexagonGray")}}})],1),n._v(" "),t("div",{style:"height:"+n.spaceAlpha+"px;"}),n._v(" "),t("div",{staticStyle:{display:"flex"}},[t("WColorPickAlpha",{attrs:{width:n.alphaWidth,height:n.alphaHeight,cursorSize:7,value:n.colorAlpha,color:n.colorPure},on:{input:function(e){n.colorAlpha=e,n.updateColor(n.colorPure,n.colorAlpha,"alpha")}}})],1)])};gd._withStripped=!0;const vd=Xr({render:gd,staticRenderFns:[]},function(n){n&&n("data-v-7f86d7fc_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WColorSelectPanelBlock.vue"},media:void 0})},hd,"data-v-7f86d7fc",false,void 0,!1,Zr,void 0,void 0);const md={components:{},props:{value:{type:String,default:"#FFFFFF"},color:{type:String,default:"#FFFFFF"},colorLeftTop:{type:String,default:"#FFFFFF"},colorBottom:{type:String,default:"#000000"},width:{type:Number,default:200},height:{type:Number,default:200},cursorSize:{type:Number,default:14}},data:function(){return{valueTrans:"#fff",colorTrans:"#fff",colorLeftTopTrans:"#fff",colorBottomTrans:"#fff",curMousedown:!1,curLocLeft:0,curLocTop:0}},mounted:function(){let n=this;n.windowMousemove=e=>{n.curMousedown&&n.updateCurLocByEvent(e)},window.addEventListener("mousemove",n.windowMousemove,!1),n.windowMouseup=e=>{n.curMousedown=!1},window.addEventListener("mouseup",n.windowMouseup,!1)},beforeDestroy:function(){window.removeEventListener("mousemove",this.windowMousemove,!1),window.removeEventListener("mouseup",this.windowMouseup,!1)},computed:{changeParams:function(){let n=this;n.valueTrans=Br(n.value);let e=Br(n.color);return e={h:Ul.toHsv(e).h,s:1,v:1},e=Ul.toHexString(e),n.colorTrans=e,n.colorLeftTopTrans=Br(n.colorLeftTop),n.colorBottomTrans=Br(n.colorBottom),n.updateCurLocByValue(),""},changeColor:function(){return this.updateColor(this.color),""}},methods:{updateCurLocByEvent:function(n){let e=this,t=e.$el.getBoundingClientRect(),o=n.clientX-t.left,r=n.clientY-t.top;o=Math.min(Math.max(o,0),e.width-1),r=Math.min(Math.max(r,0),e.height-1),e.curLocLeft=o,e.curLocTop=r,e.updateColor()},updateCurLocByValue:function(){let n=this,e=Ul.toHsv(n.valueTrans),t=e.s*(n.width-1),o=(1-e.v)*(n.height-1),r=Ul.toHsv(n.colorTrans);e.h===r.h&&(n.curLocLeft=t,n.curLocTop=o)},updateColor:function(){let n=this,e=n.width-1,t=0;e-0>0&&(t=(n.curLocLeft-0)/(e-0));let o,r,i,a=n.height-1,s=0;a-0>0&&(s=(n.curLocTop-0)/(a-0)),o=n.colorTrans,r=n.colorLeftTopTrans,i=Ul.mix(o,t,r,1-t,"toRgbString"),o=i,r=n.colorBottomTrans,i=Ul.mix(o,1-s,r,s,"toHexString"),i=i.toUpperCase(),n.$emit("input",i)},mousedownCur:function(n){this.curMousedown=!0,this.updateCurLocByEvent(n)}}};var Ad=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:"display:inline-block;",attrs:{changeParams:n.changeParams,changeColor:n.changeColor}},[t("div",{style:"position:relative; width:"+n.width+"px; height:"+n.height+"px;"},[t("div",{style:"\n position:absolute; left:0px; top:0px;\n width:"+n.width+"px; height:"+n.height+"px;\n background:linear-gradient(to right, "+n.colorLeftTop+", "+n.colorTrans+");\n "}),n._v(" "),t("div",{style:"\n position:absolute; left:0px; top:0px;\n width:"+n.width+"px; height:"+n.height+"px;\n background:linear-gradient(to top, "+n.colorBottom+", transparent);\n "}),n._v(" "),t("div",{style:"\n position:absolute; left:"+(n.curLocLeft-Math.floor(n.cursorSize/2)-1)+"px; top:"+(n.curLocTop-Math.floor(n.cursorSize/2)-1)+"px;\n width:"+(n.cursorSize+2)+"px; height:"+(n.cursorSize+2)+"px;\n box-sizing:border-box;\n background:transparent;\n border-radius:50%;\n border:1px solid #666;\n cursor:pointer;\n user-select:none;\n _pointer-events:none;\n ",on:{mousedown:n.mousedownCur}}),n._v(" "),t("div",{style:"\n position:absolute; left:"+(n.curLocLeft-Math.floor(n.cursorSize/2))+"px; top:"+(n.curLocTop-Math.floor(n.cursorSize/2))+"px;\n width:"+n.cursorSize+"px; height:"+n.cursorSize+"px;\n box-sizing:border-box;\n background:transparent;\n border-radius:50%;\n border:1px solid #fff;\n cursor:pointer;\n user-select:none;\n _pointer-events:none;\n ",on:{mousedown:n.mousedownCur}}),n._v(" "),t("div",{style:"\n position:absolute; left:0px; top:0px;\n width:"+n.width+"px; height:"+n.height+"px;\n cursor:pointer;\n user-select:none;\n _pointer-events:none;\n ",on:{mousedown:n.mousedownCur}})])])};Ad._withStripped=!0;const bd=Xr({render:Ad,staticRenderFns:[]},function(n){n&&n("data-v-0cf93a56_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WColorPickHsv.vue"},media:void 0})},md,"data-v-0cf93a56",false,void 0,!1,Zr,void 0,void 0);function yd(){let n,e,t=new Promise(function(){n=arguments[0],e=arguments[1]});return t.resolve=n,t.reject=e,t}async function Cd(n,e={}){let t=null,o=yd();if(!Oo(n))return o.reject("waitfunction需輸入函數f"),o;let r=async()=>{let e=n();return function(n){let e,t=Object.prototype.toString.call(n);if(e="[object Promise]"===t,e)return!0;if("[object Function]"!==t)return!1;try{e="function"!=typeof n.subscribe&&"function"==typeof n.then}catch(n){}return e}(e)&&(e=await e),e};if(t=await r(),!0===t)return o.resolve(),o;let i=an(e,"attemptNum",null);no(i)||(i=200);let a=an(e,"timeInterval",null);no(a)||(a=1e3);let s=0,l=setInterval(async()=>{s+=1,t=await r(),!0===t&&(clearInterval(l),o.resolve()),s>i&&(clearInterval(l),o.reject(`exceeded attemptNum[${i}]`))},a);return o}const xd={components:{},props:{value:{type:String,default:"#FF0000"},width:{type:Number,default:200},height:{type:Number,default:20},cursorSize:{type:Number,default:7}},data:function(){return{valueTrans:"#fff",curMousedown:!1,curLocLeft:0}},mounted:function(){let n=this;n.plotBackground(),n.windowMousemove=e=>{n.curMousedown&&n.updateCurLocByEvent(e)},window.addEventListener("mousemove",n.windowMousemove,!1),n.windowMouseup=e=>{n.curMousedown=!1},window.addEventListener("mouseup",n.windowMouseup,!1)},beforeDestroy:function(){window.removeEventListener("mousemove",this.windowMousemove,!1),window.removeEventListener("mouseup",this.windowMouseup,!1)},computed:{changeValue:function(){let n=this;return n.valueTrans=Br(n.value),n.updateCurLocByValue(),""}},methods:{plotBackground:function(){let n=this;(async function(){await Cd(()=>Wr(n.$refs.cvs));let e=n.$refs.cvs;e.width=n.width,e.height=n.height;let t=e.getContext("2d"),o=n.width-1;for(let e=0;e<=o;e++){let r={h:e/o*360,s:1,v:1};r=Ul.toHexString(r),t.fillStyle=r,t.fillRect(e,0,1,n.height)}})().catch(n=>{console.log(n)})},updateCurLocByEvent:function(n){let e=this,t=e.$el.getBoundingClientRect(),o=n.clientX-t.left;o=Math.min(Math.max(o,0),e.width-1),e.curLocLeft=o,e.updateColor()},updateCurLocByValue:function(){let n=this,e=Ul.toHsv(n.valueTrans).h/360*(n.width-1);n.curLocLeft=e},updateColor:function(){let n=this,e=n.width-1,t=0;e-0-1>0&&(t=(n.curLocLeft-0)/(e-0));let o={h:360*t,s:1,v:1};o=Ul.toHexString(o),o=o.toUpperCase(),n.$emit("input",o)},mousedownCur:function(n){this.curMousedown=!0,this.updateCurLocByEvent(n)}}};var wd=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:"display:inline-block;",attrs:{changeValue:n.changeValue}},[t("div",{style:"position:relative; width:"+n.width+"px; height:"+n.height+"px;"},[t("div",{style:"\n position:absolute; left:0px; top:0px;\n width:"+n.width+"px; height:"+n.height+"px;\n overflow:hidden;\n "},[t("div",{staticStyle:{display:"flex"}},[t("canvas",{ref:"cvs",style:"width:"+n.width+"px; height:"+n.height+"px;"})])]),n._v(" "),t("div",{style:"\n position:absolute; left:"+(n.curLocLeft-Math.floor(n.cursorSize/2)-1)+"px; top:-1px;\n width:"+(n.cursorSize+2)+"px; height:"+(n.height+2)+"px;\n box-sizing:border-box;\n background:transparent;\n border:1px solid #666;\n cursor:pointer;\n user-select:none;\n _pointer-events:none;\n ",on:{mousedown:n.mousedownCur}}),n._v(" "),t("div",{style:"\n position:absolute; left:"+(n.curLocLeft-Math.floor(n.cursorSize/2))+"px; top:0px;\n width:"+n.cursorSize+"px; height:"+n.height+"px;\n box-sizing:border-box;\n background:transparent;\n border:1px solid #fff;\n cursor:pointer;\n user-select:none;\n _pointer-events:none;\n ",on:{mousedown:n.mousedownCur}}),n._v(" "),t("div",{style:"\n position:absolute; left:0px; top:0px;\n width:"+n.width+"px; height:"+n.height+"px;\n cursor:pointer;\n user-select:none;\n _pointer-events:none;\n ",on:{mousedown:n.mousedownCur}})])])};wd._withStripped=!0;const Sd={components:{WColorPickHsv:bd,WColorPickHue:Xr({render:wd,staticRenderFns:[]},function(n){n&&n("data-v-b034493e_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WColorPickHue.vue"},media:void 0})},xd,"data-v-b034493e",false,void 0,!1,Zr,void 0,void 0),WColorPickAlpha:pd},props:{value:{type:String,default:"#FFFFFF"},size:{type:Number,default:200},space:{type:Number,default:10}},data:function(){return{lock:!1,valueTrans:null,colorHue:"#f00",colorPure:"#fff",colorAlpha:1}},computed:{changeParams:function(){let n=this;if(n.value===n.valueTrans)return;if(n.lock)return;n.lock=!0,n.valueTrans=Br(n.value);let e=Ul.toHsva(n.value),t="#f00";{let n={h:e.h,s:1,v:1};t=Ul.toHexString(n)}let o="#fff";{let n={h:e.h,s:e.s,v:e.v};o=Ul.toHexString(n)}let r=1;return r=e.a,n.colorHue=t,n.colorPure=o,n.colorAlpha=r,""},hsvWidth:function(){return this.size},hsvHeight:function(){return this.hsvWidth},hueWidth:function(){return this.size},hueHeight:function(){return this.hueWidth/10},alphaWidth:function(){return this.size},alphaHeight:function(){return this.alphaWidth/10},width:function(){return this.size},height:function(){let n=this;return n.hsvHeight+n.space+n.hueHeight+n.space+n.alphaHeight}},methods:{updateColor:function(n,e){let t=this;if(t.lock&&"hsv"===e)return void(t.lock=!1);let o=Ul.toHsva(t.colorHue),r=Ul.toHsva(t.colorPure),i={h:o.h,s:r.s,v:r.v,a:t.colorAlpha};i=Ul.toRgbaString(i),t.valueTrans=i,t.$emit("input",i)}}};var kd=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:"display:inline-block; width:"+n.width+"px; height:"+n.height+"px;",attrs:{changeParams:n.changeParams}},[t("div",{staticStyle:{display:"flex"}},[t("WColorPickHsv",{attrs:{width:n.hsvWidth,height:n.hsvHeight,cursorSize:14,color:n.colorHue},on:{input:function(e){n.updateColor(e,"hsv")}},model:{value:n.colorPure,callback:function(e){n.colorPure=e},expression:"colorPure"}})],1),n._v(" "),t("div",{style:"height:"+n.space+"px;"}),n._v(" "),t("div",{staticStyle:{display:"flex"}},[t("WColorPickHue",{attrs:{width:n.hueWidth,height:n.hueHeight,cursorSize:7},on:{input:function(e){n.updateColor(e,"hue")}},model:{value:n.colorHue,callback:function(e){n.colorHue=e},expression:"colorHue"}})],1),n._v(" "),t("div",{style:"height:"+n.space+"px;"}),n._v(" "),t("div",{staticStyle:{display:"flex"}},[t("WColorPickAlpha",{attrs:{width:n.alphaWidth,height:n.alphaHeight,colorNum:10,color:n.colorPure},on:{input:function(e){n.updateColor(e,"alpha")}},model:{value:n.colorAlpha,callback:function(e){n.colorAlpha=e},expression:"colorAlpha"}})],1)])};kd._withStripped=!0;const _d={components:{WColorSelectPanelBlock:vd,WColorSelectPanelHsva:Xr({render:kd,staticRenderFns:[]},function(n){n&&n("data-v-8667ecc2_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WColorSelectPanelHsva.vue"},media:void 0})},Sd,"data-v-8667ecc2",false,void 0,!1,Zr,void 0,void 0)},props:{value:{type:String,default:"#FFFFFF"},type:{type:String,default:"LUMP"},size:{type:Number,default:200},space:{type:Number,default:10},backgroundColor:{type:String,default:"transparent"}},data:function(){return{valueTrans:"#fff",typeTrans:"LUMP"}},computed:{changeValue:function(){return this.valueTrans=Br(this.value),""},changeType:function(){return this.typeTrans=this.type,""},useBackgroundColor:function(){return Br(this.backgroundColor)}},methods:{updateColor:function(n,e){this.valueTrans=n,this.$emit("input",n)}}};var Bd=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:"display:inline-block; background:"+n.useBackgroundColor+";",attrs:{changeValue:n.changeValue,changeType:n.changeType}},[t("div",{style:"padding:"+n.space+"px;"},["LUMP"===n.typeTrans?t("div",{staticStyle:{display:"flex"}},[t("WColorSelectPanelBlock",{attrs:{size:n.size,spaceGray:5,spaceAlpha:8,value:n.valueTrans},on:{input:function(e){n.updateColor(e,"block")}}})],1):n._e(),n._v(" "),"HSVA"===n.typeTrans?t("div",{staticStyle:{display:"flex"}},[t("WColorSelectPanelHsva",{attrs:{_size:"size*0.8875",size:n.size,space:10,value:n.valueTrans},on:{input:function(e){n.updateColor(e,"hsva")}}})],1):n._e()])])};Bd._withStripped=!0;const Pd=Xr({render:Bd,staticRenderFns:[]},function(n){n&&n("data-v-52c9efc1_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WColorSelectPanel.vue"},media:void 0})},_d,"data-v-52c9efc1",false,void 0,!1,Zr,void 0,void 0);function Td(n){if(!Ut(n))return!1;return Xt(n)>=0}function Ed(n,e){function t(n){return Vr(n)?n:[n]}if(Yr(n))return!1;if(0===(n=t(n)).length)return!1;if(Yr(n))return!1;if(0===(e=t(e)).length)return!1;for(let t=0;t<n.length;t++)for(let o=0;o<e.length;o++)if(It(n[t],e[o]))return!0;return!1}function zd(n){if(!n)return"invalid event";if(!n.cancelable)return"event is not cancelable";try{null!==navigator.userAgent.toLowerCase().match(/rv:([\d.]+)\) like gecko/)?n.cancelBubble=!0:n.stopPropagation(),n.preventDefault()}catch(n){}}const Id={components:{},props:{name:{type:String,default:"cir-wave"},size:{type:Number,default:48},color:{type:String,default:"#666"}},data:function(){return{}},computed:{effColor:function(){return Br(this.color)}},methods:{}};var Fd=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:"display:inline-block; vertical-align:middle; outline:none; user-select:none; height:"+n.size+"px; width:"+n.size+"px;",attrs:{cmp:"loading",loadtype:n.name}},["cir-wave"===n.name?[t("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 100 100",preserveAspectRatio:"xMidYMid",width:n.size,height:n.size}},[t("circle",{attrs:{cx:"50",cy:"50",r:"14.6699",fill:"none",stroke:"#420457","stroke-width":"10"}},[t("animate",{attrs:{attributeName:"r",repeatCount:"indefinite",dur:"1s",values:"0;40",keyTimes:"0;1",keySplines:"0 0.2 0.8 1",calcMode:"spline",begin:"-0.5s"}}),n._v(" "),t("animate",{attrs:{attributeName:"opacity",repeatCount:"indefinite",dur:"1s",values:"1;0",keyTimes:"0;1",keySplines:"0.2 0 0.8 1",calcMode:"spline",begin:"-0.5s"}})]),n._v(" "),t("circle",{attrs:{cx:"50",cy:"50",r:"33.9915",fill:"none",stroke:"#5a3faa","stroke-width":"10"}},[t("animate",{attrs:{attributeName:"r",repeatCount:"indefinite",dur:"1s",values:"0;40",keyTimes:"0;1",keySplines:"0 0.2 0.8 1",calcMode:"spline"}}),n._v(" "),t("animate",{attrs:{attributeName:"opacity",repeatCount:"indefinite",dur:"1s",values:"1;0",keyTimes:"0;1",keySplines:"0.2 0 0.8 1",calcMode:"spline"}})])])]:"cir-rotate"===n.name?[t("div",{style:"position:relative; display:inline-flex; align-items:center; justify-content:center; height:"+n.size+"px; width:"+n.size+"px;"},[t("svg",{staticClass:"pgc-rotate",staticStyle:{transform:"rotate(0deg)"},attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"21.904761904761905 21.904761904761905 43.80952380952381 43.80952380952381"}},[t("circle",{staticClass:"pgc-dash",attrs:{fill:"transparent",cx:"43.80952380952381",cy:"43.80952380952381",r:"20","stroke-width":"4","stroke-dasharray":"100","stroke-dashoffset":"50px",stroke:n.effColor}})])])]:n._e()],2)};Fd._withStripped=!0;const Hd=Xr({render:Fd,staticRenderFns:[]},function(n){n&&n("data-v-1ba2145f_0",{source:"\n.pgc-rotate[data-v-1ba2145f] {\r\n width: 100%;\r\n height: 100%;\r\n margin: auto;\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n z-index: 1;\r\n transition: all .6s ease-in-out;\r\n animation: progress-circular-rotate-data-v-1ba2145f 1.4s linear infinite;\r\n transform-origin: center center;\n}\n.pgc-dash[data-v-1ba2145f] {\r\n animation: progress-circular-dash-data-v-1ba2145f 1.4s ease-in-out infinite;\r\n stroke-linecap: round;\r\n stroke-dasharray: 80,200;\r\n stroke-dashoffset: 0px;\n}\n@-webkit-keyframes progress-circular-dash-data-v-1ba2145f {\n0% {\r\n stroke-dasharray: 1,200;\r\n stroke-dashoffset: 0px\n}\n50% {\r\n stroke-dasharray: 100,200;\r\n stroke-dashoffset: -15px\n}\nto {\r\n stroke-dasharray: 100,200;\r\n stroke-dashoffset: -124px\n}\n}\n@keyframes progress-circular-dash-data-v-1ba2145f {\n0% {\r\n stroke-dasharray: 1,200;\r\n stroke-dashoffset: 0px\n}\n50% {\r\n stroke-dasharray: 100,200;\r\n stroke-dashoffset: -15px\n}\nto {\r\n stroke-dasharray: 100,200;\r\n stroke-dashoffset: -124px\n}\n}\n@-webkit-keyframes progress-circular-rotate-data-v-1ba2145f {\nto {\r\n transform: rotate(1turn)\n}\n}\n@keyframes progress-circular-rotate-data-v-1ba2145f {\nto {\r\n transform: rotate(1turn)\n}\n}\r\n\r\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\node_modules\\w-component-vue\\src\\components\\WIconLoading.vue"],names:[],mappings:";AAmGA;IACA,WAAA;IACA,YAAA;IACA,YAAA;IACA,kBAAA;IACA,MAAA;IACA,SAAA;IACA,OAAA;IACA,QAAA;IACA,UAAA;IACA,+BAAA;IACA,wEAAA;IACA,+BAAA;AACA;AAEA;IACA,2EAAA;IACA,qBAAA;IACA,wBAAA;IACA,sBAAA;AACA;AAEA;AACA;QACA,uBAAA;QACA;AACA;AAEA;QACA,yBAAA;QACA;AACA;AAEA;QACA,yBAAA;QACA;AACA;AACA;AAEA;AACA;QACA,uBAAA;QACA;AACA;AAEA;QACA,yBAAA;QACA;AACA;AAEA;QACA,yBAAA;QACA;AACA;AACA;AAEA;AACA;QACA;AACA;AACA;AAEA;AACA;QACA;AACA;AACA",file:"WIconLoading.vue",sourcesContent:['<template>\r\n <div\r\n :style="`display:inline-block; vertical-align:middle; outline:none; user-select:none; height:${size}px; width:${size}px;`"\r\n :cmp="\'loading\'"\r\n :loadtype="name"\r\n >\r\n\r\n <template v-if="name===\'cir-wave\'">\r\n\r\n <svg\r\n xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid"\r\n :width="size"\r\n :height="size"\r\n >\r\n <circle cx="50" cy="50" r="14.6699" fill="none" stroke="#420457" stroke-width="10">\r\n <animate attributeName="r" repeatCount="indefinite" dur="1s" values="0;40" keyTimes="0;1" keySplines="0 0.2 0.8 1" calcMode="spline" begin="-0.5s"></animate>\r\n <animate attributeName="opacity" repeatCount="indefinite" dur="1s" values="1;0" keyTimes="0;1" keySplines="0.2 0 0.8 1" calcMode="spline" begin="-0.5s"></animate>\r\n </circle>\r\n <circle cx="50" cy="50" r="33.9915" fill="none" stroke="#5a3faa" stroke-width="10">\r\n <animate attributeName="r" repeatCount="indefinite" dur="1s" values="0;40" keyTimes="0;1" keySplines="0 0.2 0.8 1" calcMode="spline"></animate>\r\n <animate attributeName="opacity" repeatCount="indefinite" dur="1s" values="1;0" keyTimes="0;1" keySplines="0.2 0 0.8 1" calcMode="spline"></animate>\r\n </circle>\r\n </svg>\r\n\r\n </template>\r\n\r\n <template v-else-if="name===\'cir-rotate\'">\r\n\r\n <div :style="`position:relative; display:inline-flex; align-items:center; justify-content:center; height:${size}px; width:${size}px;`">\r\n <svg\r\n class="pgc-rotate"\r\n style="transform: rotate(0deg);"\r\n xmlns="http://www.w3.org/2000/svg"\r\n viewBox="21.904761904761905 21.904761904761905 43.80952380952381 43.80952380952381"\r\n >\r\n <circle\r\n class="pgc-dash"\r\n fill="transparent"\r\n cx="43.80952380952381"\r\n cy="43.80952380952381"\r\n r="20"\r\n stroke-width="4"\r\n stroke-dasharray="100"\r\n stroke-dashoffset="50px"\r\n :stroke="effColor"\r\n ></circle>\r\n </svg>\r\n </div>\r\n\r\n </template>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport convertColor from \'../js/convertColor.mjs\'\r\n\r\n\r\n/**\r\n * @vue-prop {String} [name=\'cir-wave\'] 輸入動畫名稱字串,預設\'cir-wave\'\r\n * @vue-prop {Number} [size=48] 輸入圖標欲顯示的尺寸浮點數,預設48\r\n * @vue-prop {String} [color=\'#666\'] 輸入圖標顏色字串,預設\'#666\'\r\n */\r\nexport default {\r\n components: {\r\n },\r\n props: {\r\n name: {\r\n type: String,\r\n default: \'cir-wave\',\r\n },\r\n size: {\r\n type: Number,\r\n default: 48,\r\n },\r\n color: {\r\n type: String,\r\n default: \'#666\',\r\n },\r\n },\r\n data: function() {\r\n return {\r\n }\r\n },\r\n computed: {\r\n\r\n effColor: function() {\r\n let vo = this\r\n return convertColor(vo.color)\r\n },\r\n\r\n },\r\n methods: {\r\n },\r\n}\r\n<\/script>\r\n\r\n<style scoped>\r\n\r\n.pgc-rotate {\r\n width: 100%;\r\n height: 100%;\r\n margin: auto;\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n z-index: 1;\r\n transition: all .6s ease-in-out;\r\n animation: progress-circular-rotate 1.4s linear infinite;\r\n transform-origin: center center;\r\n}\r\n\r\n.pgc-dash {\r\n animation: progress-circular-dash 1.4s ease-in-out infinite;\r\n stroke-linecap: round;\r\n stroke-dasharray: 80,200;\r\n stroke-dashoffset: 0px;\r\n}\r\n\r\n@-webkit-keyframes progress-circular-dash {\r\n 0% {\r\n stroke-dasharray: 1,200;\r\n stroke-dashoffset: 0px\r\n }\r\n\r\n 50% {\r\n stroke-dasharray: 100,200;\r\n stroke-dashoffset: -15px\r\n }\r\n\r\n to {\r\n stroke-dasharray: 100,200;\r\n stroke-dashoffset: -124px\r\n }\r\n}\r\n\r\n@keyframes progress-circular-dash {\r\n 0% {\r\n stroke-dasharray: 1,200;\r\n stroke-dashoffset: 0px\r\n }\r\n\r\n 50% {\r\n stroke-dasharray: 100,200;\r\n stroke-dashoffset: -15px\r\n }\r\n\r\n to {\r\n stroke-dasharray: 100,200;\r\n stroke-dashoffset: -124px\r\n }\r\n}\r\n\r\n@-webkit-keyframes progress-circular-rotate {\r\n to {\r\n transform: rotate(1turn)\r\n }\r\n}\r\n\r\n@keyframes progress-circular-rotate {\r\n to {\r\n transform: rotate(1turn)\r\n }\r\n}\r\n\r\n</style>\r\n']},media:void 0})},Id,"data-v-1ba2145f",false,void 0,!1,Zr,void 0,void 0);var Nd={directives:{domripple:Lr()},components:{WIcon:ni,WIconLoading:Hd,WTooltip:ks},props:{text:{type:String,default:""},tooltip:{type:String,default:""},icon:{type:String,default:""},iconColor:{type:String,default:"black"},iconColorHover:{type:String,default:"grey darken-3"},iconColorActive:{type:String,default:"white"},iconSize:{type:Number,default:22},prog:{type:Number,default:null},progColor:{type:String,default:"rgba(150,150,150,0.4)"},progBackgroundColor:{type:String,default:"rgba(150,150,150,0.075)"},textColor:{type:String,default:"black"},textColorHover:{type:String,default:"grey darken-3"},textColorActive:{type:String,default:"white"},textFontSize:{type:String,default:"0.85rem"},borderUsed:{type:Object,default:()=>({top:!0,bottom:!0,left:!0,right:!0})},borderWidth:{type:Object,default:()=>({top:1,bottom:1,left:1,right:1})},borderRadius:{type:Number,default:30},borderRadiusStyle:{type:Object,default:()=>({left:!0,right:!0})},borderColor:{type:String,default:"transparent"},borderColorHover:{type:String,default:"transparent"},borderColorActive:{type:String,default:"transparent"},backgroundColor:{type:String,default:"rgb(241,241,241)"},backgroundColorHover:{type:String,default:"rgb(236,236,236)"},backgroundColorActive:{type:String,default:"orange"},tooltipBorderRadius:{type:Number,default:4},tooltipPaddingStyle:{type:Object,default:()=>({v:5,h:8})},tooltipTextFontSize:{type:String,default:"0.85rem"},tooltipTextColor:{type:String,default:"white"},tooltipBackgroundColor:{type:String,default:"rgba(60,60,60,0.75)"},shadow:{type:Boolean,default:!0},shadowStyle:{type:String,default:"0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12)"},shadowActive:{type:Boolean,default:!0},shadowActiveStyle:{type:String,default:"0 12px 20px -10px {backgroundColorActiveAlpha=0.28}, 0 4px 20px 0 rgba(0,0,0,.12), 0 7px 8px -5px {backgroundColorActiveAlpha=0.2}"},rippleColor:{type:String,default:"rgba(255,255,255,0.4)"},displayType:{type:String,default:"block"},paddingStyle:{type:Object,default:()=>({v:3,h:15})},shiftLeft:{type:Number,default:0},shiftRight:{type:Number,default:0},active:{type:Boolean,default:!1},close:{type:Boolean,default:!1},cursorPointer:{type:Boolean,default:!0},loading:{type:Boolean,default:!1},loadingColor:{type:String,default:"grey darken-2"},promiseUnlock:{type:Boolean,default:!1},role:{type:String,default:"button"},editable:{type:Boolean,default:!0},disabledColor:{type:String,default:"rgba(255,255,255,0.5)"}},data:function(){return{mdiCloseCircle:"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z",activeTrans:!1,hoverTrans:!1,loadingTrans:!1,progTrans:null}},mounted:function(){},computed:{changeActive:function(){return this.activeTrans=this.active,""},changeProg:function(){return this.progTrans=this.prog,""},changeLoading:function(){return this.loadingTrans=this.loading,""},useDisplayType:function(){return"line"===this.displayType?"display:block;":"display:inline-block;"},usePadding:function(){let n=this;return`padding:${Or(n.paddingStyle,{ext:{left:n.shiftLeft,right:n.shiftRight}})};`},effIconColor:function(){return Br(this.iconColor)},effIconColorHover:function(){return Br(this.iconColorHover)},effIconColorActive:function(){return Br(this.iconColorActive)},hasIcon:function(){return""!==this.icon},hasText:function(){return""!==this.text},useIconColor:function(){let n,e=this;return e.loadingTrans||e.isProging?e.effIconColor:(n=e.activeTrans?e.effIconColorActive:e.hoverTrans?e.effIconColorHover:e.effIconColor,e.editable||(n=e.activeTrans?e.effIconColorActive:e.effIconColor),n)},effDisabledColor:function(){return Br(this.disabledColor)},effProgColor:function(){return Br(this.progColor)},effProgBackgroundColor:function(){return Br(this.progBackgroundColor)},effTextColor:function(){return Br(this.textColor)},effTextColorHover:function(){return Br(this.textColorHover)},effTextColorActive:function(){return Br(this.textColorActive)},useTextColor:function(){let n,e=this;return e.loadingTrans||e.isProging?e.effTextColor:(n=e.activeTrans?e.effTextColorActive:e.hoverTrans?e.effTextColorHover:e.effTextColor,e.editable||(n=e.activeTrans?e.effTextColorActive:e.effTextColor),n)},useTextFontSize:function(){let n=this.textFontSize;return n=Pr(n,";",""),`font-size:${n};`},effBorderColor:function(){return Br(this.borderColor)},effBorderColorHover:function(){return Br(this.borderColorHover)},effBorderColorActive:function(){return Br(this.borderColorActive)},useBorderColor:function(){let n,e=this;return(e.loadingTrans||e.isProging)&&(n=e.effBorderColor),n=e.activeTrans?e.effBorderColorActive:e.hoverTrans?e.effBorderColorHover:e.effBorderColor,e.editable||(n=e.activeTrans?e.effBorderColorActive:e.effBorderColor),Kl(lt(e.useBorderUsed,(e,t)=>`border-${t}-color:${e?n:"transparent"};`)," ")},useBorderUsed:function(){let n=this,e=!0,t=!0,o=!0,r=!0;return Rr(an(n,"borderUsed.left"))&&(e=an(n,"borderUsed.left")),Rr(an(n,"borderUsed.right"))&&(t=an(n,"borderUsed.right")),Rr(an(n,"borderUsed.top"))&&(o=an(n,"borderUsed.top")),Rr(an(n,"borderUsed.bottom"))&&(r=an(n,"borderUsed.bottom")),{left:e,right:t,top:o,bottom:r}},useBorderWidth:function(){return`border-width:${Or(this.borderWidth)};`},useBorderRadius:function(){let n=this,e=0,t=0,o=0,r=0;return!0===an(n,"borderRadiusStyle.left")&&(e=n.borderRadius,o=n.borderRadius),!0===an(n,"borderRadiusStyle.right")&&(t=n.borderRadius,r=n.borderRadius),!0===an(n,"borderRadiusStyle.top")&&(e=n.borderRadius,t=n.borderRadius),!0===an(n,"borderRadiusStyle.bottom")&&(o=n.borderRadius,r=n.borderRadius),!0!==an(n,"borderRadiusStyle.topLeft")&&!0!==an(n,"borderRadiusStyle.top-left")||(e=n.borderRadius),!0!==an(n,"borderRadiusStyle.topRight")&&!0!==an(n,"borderRadiusStyle.top-right")||(t=n.borderRadius),!0!==an(n,"borderRadiusStyle.bottomLeft")&&!0!==an(n,"borderRadiusStyle.bottom-left")||(o=n.borderRadius),!0!==an(n,"borderRadiusStyle.bottomRight")&&!0!==an(n,"borderRadiusStyle.bottom-right")||(r=n.borderRadius),`border-top-left-radius:${e}px; border-top-right-radius:${t}px; border-bottom-left-radius:${o}px; border-bottom-right-radius:${r}px;`},effBackgroundColor:function(){return Br(this.backgroundColor)},effBackgroundColorHover:function(){return Br(this.backgroundColorHover)},effBackgroundColorActive:function(){return Br(this.backgroundColorActive)},useBackgroundColor:function(){let n,e=this;return e.loadingTrans||e.isProging?e.effBackgroundColor:(n=e.activeTrans?e.effBackgroundColorActive:e.hoverTrans?e.effBackgroundColorHover:e.effBackgroundColor,e.editable||(n=e.activeTrans?e.effBackgroundColorActive:e.effBackgroundColor),n)},useShadow:function(){let n=this;function e(n,e,t){let o=ce(n=Pr(n,"}","{"),"{");return o=lt(o,n=>{if(n.indexOf(e)>=0){let e=Rs(n,"=")[1];return e=Ut(e)?Xt(e):.2,function(n,e){let t=Br(n),o=Ul.toRgba(t);return o.a=e,Ul.toRgbaString(o)}(t,e)}return n}),Kl(o,"")}return n.activeTrans&&n.shadowActive?ft(n.shadowActiveStyle)?"box-shadow:"+e(n.shadowActiveStyle,"backgroundColorActiveAlpha",n.backgroundColorActive):"":n.shadow&&ft(n.shadowStyle)?"box-shadow:"+e(n.shadowStyle,"backgroundColorAlpha",n.backgroundColor):""},isProging:function(){return Ut(this.useProg)},useProg:function(){let n=this.progTrans;return Ut(n)?(n=Xt(n),n<0||n>100?null:n):null},effLoadingColor:function(){return Br(this.loadingColor)},useRipple:function(){let n=this;if(n.editable&&!n.loadingTrans&&!n.isProging)return{color:n.rippleColor,timeDuration:700}},hasTooltop:function(){return ft(this.tooltip)}},methods:{clickBtn:function(n){let e=this;if(!e.editable)return;if(e.isProging)return;if(e.loadingTrans)return;let t={setProg:n=>{null===n||Ut(n)?(Ut(n)&&(n=Xt(n)),e.progTrans=n,e.$nextTick(()=>{e.$emit("update:prog",e.progTrans)}),n>=100&&e.$nextTick(()=>{e.progTrans=null,e.$emit("update:prog",e.progTrans)})):console.log("prog is not number")},setLoading:n=>{Rr(n)?(e.loadingTrans=n,e.$nextTick(()=>{e.$emit("update:loading",e.loadingTrans)})):console.log("loading is not boolean")}};if(e.promiseUnlock){e.loadingTrans=!0,e.$nextTick(()=>{e.$emit("update:loading",e.loadingTrans)});let n=yd();t.pm=n,n.catch().finally(()=>{e.loadingTrans=!1,e.$nextTick(()=>{e.$emit("update:loading",e.loadingTrans)})})}e.$nextTick(()=>{e.$emit("click",t)})},clickClose:function(n){let e=this;zd(n),e.editable&&e.$nextTick(()=>{e.$emit("click-close")})}}};const Wd=Nd;var $d=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:n.useDisplayType+" vertical-align:middle; outline:none; user-select:none;",attrs:{role:n.editable?n.role:"",changeActive:n.changeActive,changeProg:n.changeProg,changeLoading:n.changeLoading}},[t("div",{staticStyle:{position:"relative"}},[t("WTooltip",{attrs:{displayType:"line",isolated:!0,borderRadius:n.tooltipBorderRadius,paddingStyle:n.tooltipPaddingStyle,textFontSize:n.tooltipTextFontSize,textColor:n.tooltipTextColor,backgroundColor:n.tooltipBackgroundColor,editable:n.hasTooltop},scopedSlots:n._u([{key:"trigger",fn:function(){return[t("div",{directives:[{name:"domripple",rawName:"v-domripple",value:n.useRipple,expression:"useRipple"}],style:"transition:all 0.3s; "+n.useBorderRadius+" background:"+n.useBackgroundColor+"; "+(n.editable&&n.cursorPointer?"cursor:pointer;":"")+" "+n.useShadow+"; outline:none; user-select:none; overflow:hidden;",attrs:{tabindex:"0"},on:{mouseenter:function(e){n.hoverTrans=!0,n.$emit("mouseenter",e)},mouseleave:function(e){n.hoverTrans=!1,n.$emit("mouseleave",e)},keyup:function(e){return!e.type.indexOf("key")&&n._k(e.keyCode,"enter",13,e.key,"Enter")?null:n.clickBtn(e)},click:function(e){return n.clickBtn(e)}}},[t("div",{style:"transition:all 0.3s; "+n.usePadding+" "+n.useBorderRadius+" "+n.useBorderWidth+" "+n.useBorderColor+" border-style:solid; outline:none; user-select:none;",attrs:{tabindex:"1"}},[t("div",{style:"display:flex; align-items:center; "+("line"===n.displayType?"justify-content:center;":"")},[t("div",[n._t("default",function(){return[t("div",{staticStyle:{display:"flex","align-items":"center","white-space":"nowrap"}},[n.hasIcon?t("WIcon",{style:"margin-left:-6px; margin-right:"+(n.hasText?5:-6)+"px;",attrs:{icon:n.icon,color:n.useIconColor,colorHover:n.useIconColor,size:n.iconSize}}):n._e(),n._v(" "),n.hasText?t("div",{style:"transition:all 0.3s; text-transform:none; color:"+n.useTextColor+"; "+n.useTextFontSize+" "+(n.hasIcon?"min-height:"+n.iconSize+"px":"")+"; display:flex; align-items:center;"},[n._v("\n "+n._s(n.text)+"\n ")]):n._e()],1)]})],2),n._v(" "),n.close?t("div",{style:"margin:0px -9px 0px 5px; display:inline-block; outline:none; user-select:none;",attrs:{tabindex:"2"},on:{keyup:function(e){return!e.type.indexOf("key")&&n._k(e.keyCode,"enter",13,e.key,"Enter")?null:n.clickClose(e)},click:function(e){return n.clickClose(e)}}},[t("WIcon",{attrs:{icon:n.mdiCloseCircle,color:n.useIconColor,colorHover:n.useIconColor,size:n.iconSize}})],1):n._e()])])])]},proxy:!0},{key:"content",fn:function(){return[n._v("\n "+n._s(n.tooltip)+"\n ")]},proxy:!0}],null,!0)}),n._v(" "),n.isProging?t("div",{staticStyle:{position:"absolute",left:"0",right:"0",top:"0",bottom:"0"}},[t("div",{style:n.useBorderRadius+" overflow:hidden; width:100%; height:100%;"},[t("div",{style:"background:"+n.effProgBackgroundColor+"; height:100%;"},[t("div",{style:"background:"+n.effProgColor+"; width:"+n.useProg+"%; height:100%;"})])])]):n._e(),n._v(" "),!n.editable||n.loadingTrans?t("div",{staticStyle:{position:"absolute",left:"0",right:"0",top:"0",bottom:"0"}},[t("div",{style:n.useBorderRadius+" overflow:hidden; width:100%; height:100%;"},[t("div",{style:"background:"+n.effDisabledColor+"; height:100%;"})])]):n._e(),n._v(" "),!n.isProging&&n.loadingTrans?t("div",{staticStyle:{position:"absolute",left:"0",right:"0",top:"0",bottom:"0"}},[t("div",{staticStyle:{display:"flex","align-items":"center","justify-content":"center",height:"100%"}},[t("WIconLoading",{attrs:{name:"cir-rotate",color:n.effLoadingColor,size:n.iconSize}})],1)]):n._e()],1)])};$d._withStripped=!0;const Md=Xr({render:$d,staticRenderFns:[]},function(n){n&&n("data-v-018efb2c_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WButtonChip.vue"},media:void 0})},Wd,"data-v-018efb2c",false,void 0,!1,Zr,void 0,void 0);const Ld={components:{WButtonChip:Md},props:{multiCheck:{type:Boolean,default:!0},items:{type:Array,default:()=>[]},value:{type:[Array,String,Object],default:null},keyText:{type:String,default:"text"},keyIcon:{type:String,default:"icon"},keyTooltip:{type:String,default:"tooltip"},iconColor:{type:String,default:"black"},iconColorHover:{type:String,default:"grey darken-3"},iconColorActive:{type:String,default:"white"},iconSize:{type:Number,default:22},textColor:{type:String,default:"black"},textColorHover:{type:String,default:"grey darken-3"},textColorActive:{type:String,default:"white"},textFontSize:{type:String,default:"0.85rem"},borderWidth:{type:Object,default:()=>({top:1,bottom:1,left:1,right:1})},borderRadius:{type:Number,default:30},borderRadiusStyle:{type:Object,default:()=>({left:!0,right:!0})},borderColor:{type:String,default:"transparent"},borderColorHover:{type:String,default:"transparent"},borderColorActive:{type:String,default:"transparent"},backgroundColor:{type:String,default:"transparent"},backgroundColorHover:{type:String,default:"rgba(200,200,200,0.25)"},backgroundColorActive:{type:String,default:"orange"},tooltipBorderRadius:{type:Number,default:4},tooltipPaddingStyle:{type:Object,default:()=>({v:5,h:8})},tooltipTextFontSize:{type:String,default:"0.85rem"},tooltipTextColor:{type:String,default:"white"},tooltipBackgroundColor:{type:String,default:"rgba(60,60,60,0.75)"},marginStyle:{type:Object,default:()=>({top:10,bottom:10,left:0,right:10})},shadow:{type:Boolean,default:!1},shadowStyle:{type:String,default:"0 12px 20px -10px {backgroundColorAlpha=0.28}, 0 4px 20px 0 rgba(0,0,0,.12), 0 7px 8px -5px {backgroundColorAlpha=0.2}"},shadowActive:{type:Boolean,default:!0},shadowActiveStyle:{type:String,default:"0 12px 20px -10px {backgroundColorActiveAlpha=0.28}, 0 4px 20px 0 rgba(0,0,0,.12), 0 7px 8px -5px {backgroundColorActiveAlpha=0.2}"},paddingStyle:{type:Object,default:()=>({v:3,h:15})},shiftLeft:{type:Number,default:0},shiftRight:{type:Number,default:0},group:{type:Boolean,default:!1},groupBorderRadiusStyle:{type:Object,default:()=>({left:!0,right:!0})},groupShift:{type:Number,default:5},close:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},loadingColor:{type:String,default:"black"},editable:{type:Boolean,default:!0}},data:function(){return{get:an,itemsTrans:[],borderUsed:{top:!0,bottom:!0,left:!0,right:!0}}},mounted:function(){},computed:{changeItems:function(){let n=this;let e=Mo(n.items),t=lt(e,e=>{let t=function(e){let t;return t=n.multiCheck?Ed(n.value,e):It(e,n.value),t}(e);return{active:t,hover:!1,borderColor:n.borderColor,borderColorHover:n.borderColorHover,borderColorActive:n.borderColorActive}}),o=lt(e,(o,r)=>{let i={data:o},a=t[r];i.ia=a,i.active=a.active,i.hover=!1;let s=null;r>0&&(s=t[r-1]);let l=null;r<e.length-1&&(l=t[r+1]);let d={};n.group&&(0===r&&(!0===an(n,"groupBorderRadiusStyle.left")&&(d.left=!0),!0!==an(n,"groupBorderRadiusStyle.topLeft")&&!0!==an(n,"groupBorderRadiusStyle.top-left")||(d.topLeft=!0),!0!==an(n,"groupBorderRadiusStyle.bottomLeft")&&!0!==an(n,"groupBorderRadiusStyle.bottom-left")||(d.bottomLeft=!0),!0===an(n,"groupBorderRadiusStyle.top")&&(d.topLeft=!0),!0===an(n,"groupBorderRadiusStyle.bottom")&&(d.bottomLeft=!0)),r===e.length-1&&(!0===an(n,"groupBorderRadiusStyle.right")&&(d.right=!0),!0!==an(n,"groupBorderRadiusStyle.topRight")&&!0!==an(n,"groupBorderRadiusStyle.top-right")||(d.topRight=!0),!0!==an(n,"groupBorderRadiusStyle.bottomRight")&&!0!==an(n,"groupBorderRadiusStyle.bottom-right")||(d.bottomRight=!0),!0===an(n,"groupBorderRadiusStyle.top")&&(d.topRight=!0),!0===an(n,"groupBorderRadiusStyle.bottom")&&(d.bottomRight=!0))),i.spcBorderRadiusStyle=d;let u={};n.group&&(u={top:n.borderWidth.top,bottom:n.borderWidth.bottom,left:1,right:1},0===r&&(u.left=n.borderWidth.left),r===e.length-1&&(u.right=n.borderWidth.right)),i.spcBorderWidth=u;let c={};n.group&&(c=n.getSpcBorderUsed(r,!1,s,a,l)),i.spcBorderUsed=c,i.spcBorderUsedBackup=Mo(c);let p=0,f=0;return n.group&&(0===r?p=n.groupShift:r===e.length-1&&(f=n.groupShift)),i.spcShiftLeft=p,i.spcShiftRight=f,i});return n.itemsTrans=o,""},useMarginStyle:function(){return`margin:${Or(this.marginStyle,{parse:!this.group})};`}},methods:{getSpcBorderUsed:function(n,e,t,o,r){let i={top:!0,bottom:!0,left:!0,right:!0};if(t){let n=null;n=t.hover?t.borderColorHover:t.borderColor,n=t.active?t.borderColorActive:n;let e=null;e=o.hover?o.borderColorHover:o.borderColor,e=o.active?o.borderColorActive:e;let r=!1;n===e&&(r=!0);let a=!1;t.active&&!o.active&&(a=!0);let s=!1;o.hover&&(s=!0);let l=!1;s||(l=a),l=l||r,i.left=!l}if(r){let n=!1;r.active&&!o.active&&(n=!0);let e=!1;o.hover&&(e=!0);let t=!1;e||(t=n),i.right=!t}return i},mouseenter:function(n,e){let t=this;Yn(t.itemsTrans,(n,o)=>{t.itemsTrans[o].ia.hover=o===e}),Yn(t.itemsTrans,(n,o)=>{let r=an(t,`itemsTrans[${o}].ia`,null),i=an(t,`itemsTrans[${o-1}].ia`,null),a=an(t,`itemsTrans[${o+1}].ia`,null),s=t.getSpcBorderUsed(o,o===e,i,r,a);t.itemsTrans[o].spcBorderUsed=s})},mouseleave:function(n,e){let t=this;Yn(t.itemsTrans,(n,e)=>{t.itemsTrans[e].spcBorderUsed=Mo(t.itemsTrans[e].spcBorderUsedBackup)})},toggleState:function(n){let e=this;if(!1!==e.editable)if(e.multiCheck){let t=Mo(e.value);if(n.active){let e=[];Yn(t,t=>{It(t,n.data)||e.push(t)}),t=e}else t.push(n.data);e.$nextTick(()=>{e.$emit("input",t),e.$emit("click",n.data,""+(n.active?"hide":"show"))})}else e.$nextTick(()=>{e.$emit("input",n.data),e.$emit("click",n.data)})}}};var Dd=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{attrs:{changeItems:n.changeItems}},[n._l(n.itemsTrans,function(e,o){return[t("WButtonChip",{key:o,style:""+n.useMarginStyle,attrs:{text:n.get(e,"data."+n.keyText)||n.get(e,"data"),tooltip:n.get(e,"data."+n.keyTooltip),icon:n.get(e,"data."+n.keyIcon),iconColor:n.iconColor,iconColorHover:n.iconColorHover,iconColorActive:n.iconColorActive,iconSize:n.iconSize,textColor:n.textColor,textColorHover:n.textColorHover,textColorActive:n.textColorActive,textFontSize:n.textFontSize,borderUsed:n.group?e.spcBorderUsed:n.borderUsed,borderWidth:n.group?e.spcBorderWidth:n.borderWidth,borderRadius:n.borderRadius,borderRadiusStyle:n.group?e.spcBorderRadiusStyle:n.borderRadiusStyle,borderColor:n.borderColor,borderColorHover:n.borderColorHover,borderColorActive:n.borderColorActive,backgroundColor:n.backgroundColor,backgroundColorHover:n.backgroundColorHover,backgroundColorActive:n.backgroundColorActive,tooltipBorderRadius:n.tooltipBorderRadius,tooltipPaddingStyle:n.tooltipPaddingStyle,tooltipTextFontSize:n.tooltipTextFontSize,tooltipTextColor:n.tooltipTextColor,tooltipBackgroundColor:n.tooltipBackgroundColor,shadow:n.shadow,shadowStyle:n.shadowStyle,shadowActive:n.shadowActive,shadowActiveStyle:n.shadowActiveStyle,paddingStyle:n.paddingStyle,shiftLeft:n.shiftLeft+e.spcShiftLeft,shiftRight:n.shiftRight+e.spcShiftRight,_close:"close",loading:n.loading,loadingColor:n.loadingColor,editable:n.editable,disabledColor:"rgba(255,255,255,0.4)",active:e.active},on:{click:function(t){return n.toggleState(e)},mouseenter:function(t){return n.mouseenter(e,o)},mouseleave:function(t){return n.mouseleave(e,o)}}},[n._t("default",null,{item:e,kitem:o})],2)]})],2)};Dd._withStripped=!0;const Rd={components:{WGroupChipCheck:Xr({render:Dd,staticRenderFns:[]},function(n){n&&n("data-v-9f5475de_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WGroupChipCheck.vue"},media:void 0})},Ld,"data-v-9f5475de",false,void 0,!1,Zr,void 0,void 0)},props:{items:{type:Array,default:()=>[]},value:{type:[String,Object],default:null},keyText:{type:String,default:"text"},keyIcon:{type:String,default:"icon"},keyTooltip:{type:String,default:"tooltip"},iconColor:{type:String,default:"black"},iconColorHover:{type:String,default:"grey darken-3"},iconColorActive:{type:String,default:"white"},iconSize:{type:Number,default:22},textColor:{type:String,default:"black"},textColorHover:{type:String,default:"grey darken-3"},textColorActive:{type:String,default:"white"},textFontSize:{type:String,default:"0.85rem"},borderWidth:{type:Object,default:()=>({top:1,bottom:1,left:1,right:1})},borderRadius:{type:Number,default:30},borderRadiusStyle:{type:Object,default:()=>({left:!0,right:!0})},borderColor:{type:String,default:"transparent"},borderColorHover:{type:String,default:"transparent"},borderColorActive:{type:String,default:"transparent"},backgroundColor:{type:String,default:"transparent"},backgroundColorHover:{type:String,default:"rgba(200,200,200,0.25)"},backgroundColorActive:{type:String,default:"orange"},tooltipBorderRadius:{type:Number,default:4},tooltipPaddingStyle:{type:Object,default:()=>({v:5,h:8})},tooltipTextFontSize:{type:String,default:"0.85rem"},tooltipTextColor:{type:String,default:"white"},tooltipBackgroundColor:{type:String,default:"rgba(60,60,60,0.75)"},marginStyle:{type:Object,default:()=>({top:10,bottom:10,left:0,right:10})},shadow:{type:Boolean,default:!1},shadowStyle:{type:String,default:"0 12px 20px -10px {backgroundColorAlpha=0.28}, 0 4px 20px 0 rgba(0,0,0,.12), 0 7px 8px -5px {backgroundColorAlpha=0.2}"},shadowActive:{type:Boolean,default:!0},shadowActiveStyle:{type:String,default:"0 12px 20px -10px {backgroundColorActiveAlpha=0.28}, 0 4px 20px 0 rgba(0,0,0,.12), 0 7px 8px -5px {backgroundColorActiveAlpha=0.2}"},paddingStyle:{type:Object,default:()=>({v:3,h:15})},shiftLeft:{type:Number,default:0},shiftRight:{type:Number,default:0},group:{type:Boolean,default:!1},groupBorderRadiusStyle:{type:Object,default:()=>({left:!0,right:!0})},groupShift:{type:Number,default:5},close:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},loadingColor:{type:String,default:"black"},editable:{type:Boolean,default:!0}},data:function(){return{}},mounted:function(){},computed:{},methods:{}};var jd=function(){var n=this,e=n.$createElement;return(n._self._c||e)("WGroupChipCheck",n._g(n._b({scopedSlots:n._u([{key:"default",fn:function(e){return[n._t("default",null,{item:e.item,kitem:e.kitem})]}}],null,!0)},"WGroupChipCheck",Object.assign({},n.$props,{multiCheck:!1}),!1),n.$listeners))};jd._withStripped=!0;const Od=Xr({render:jd,staticRenderFns:[]},function(n){n&&n("data-v-0038f68e_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WGroupChipRadio.vue"},media:void 0})},Rd,"data-v-0038f68e",false,void 0,!1,Zr,void 0,void 0);const Vd={components:{},props:{label:{type:String,default:""},labelWidth:{type:Number,default:null},labelHeight:{type:Number,default:null},labelColor:{type:String,default:"#666"},labelFontSize:{type:String,default:"0.8rem"},labelHorizontalAlign:{type:String,default:"left"},labelVerticalAlign:{type:String,default:"center"},labelShiftTop:{type:Number,default:0},space:{type:Number,default:0},seplines:{type:Boolean,default:!1},floatForItemSub:{type:Boolean,default:!0}},data:function(){return{}},computed:{useLabelWidth:function(){let n=this;if(Ut(n.labelWidth)){return{width:`${Xt(n.labelWidth)}px`}}return{}},useLabelHeight:function(){let n=this;if(Ut(n.labelHeight)){return{height:`${Xt(n.labelHeight)}px`}}return{}},useLabelVerticalAlign:function(){let n=this,e="middle";return"top"!==n.labelVerticalAlign&&"bottom"!==n.labelVerticalAlign||(e=n.labelVerticalAlign),e},useLabelColor:function(){return Br(this.labelColor)}},methods:{}};var Yd=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{},[n.seplines?[n._t("label",function(){return[t("div",{style:[n.useLabelWidth,n.useLabelHeight,{color:n.useLabelColor,fontSize:n.labelFontSize,textAlign:n.labelHorizontalAlign,paddingTop:n.labelShiftTop+"px",paddingBottom:n.space+"px"}]},[n._v("\n "+n._s(n.label)+"\n ")])]}),n._v(" "),t("div",{},[n._t("item"),n._v(" "),t("div",{staticStyle:{position:"relative"}},[t("div",{style:n.floatForItemSub?"position:absolute; top:0; left:0;":""},[n._t("item-sub")],2)])],2)]:[t("table",{staticStyle:{width:"100%","border-collapse":"collapse"}},[t("tr",[t("td",{style:[{verticalAlign:n.useLabelVerticalAlign,whiteSpace:"nowrap",color:n.useLabelColor,fontSize:n.labelFontSize,textAlign:n.labelHorizontalAlign}]},[n._t("label",function(){return[t("div",{style:[n.useLabelWidth,n.useLabelHeight,{paddingTop:n.labelShiftTop+"px"}]},[n._v("\n "+n._s(n.label)+":\n ")])]})],2),n._v(" "),t("td",{style:[{paddingRight:n.space+8+"px"}]}),n._v(" "),t("td",{style:[{width:"100%"}]},[n._t("item"),n._v(" "),n.floatForItemSub?t("div",{staticStyle:{position:"relative"}},[t("div",{staticStyle:{position:"absolute",top:"0",left:"0"}},[n._t("item-sub")],2)]):n._e()],2)]),n._v(" "),n.floatForItemSub?n._e():t("tr",[t("td"),n._v(" "),t("td"),n._v(" "),t("td",[n._t("item-sub")],2)])])]],2)};Yd._withStripped=!0;const Ud=Xr({render:Yd,staticRenderFns:[]},function(n){n&&n("data-v-29126b65_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WPanelLabelItem.vue"},media:void 0})},Vd,"data-v-29126b65",false,void 0,!1,Zr,void 0,void 0);const Xd={components:{WIcon:ni,WTooltip:ks},props:{paddingStyle:{type:Object,default:()=>({v:0,h:15})},backgroundColor:{type:String,default:"transparent"},backgroundColorHover:{type:String,default:"transparent"},backgroundColorFocus:{type:String,default:"transparent"},borderWidth:{type:Number,default:1},borderRadius:{type:Number,default:30},borderColor:{type:String,default:"transparent"},borderColorHover:{type:String,default:"transparent"},borderColorFocus:{type:String,default:"transparent"},shadow:{type:Boolean,default:!0},leftIcon:{type:String,default:""},leftIconSize:{type:Number,default:24},leftIconColor:{type:String,default:"deep-orange lighten-2"},leftIconColorHover:{type:String,default:"deep-orange lighten-1"},leftIconColorFocus:{type:String,default:"deep-orange lighten-1"},leftIconTooltip:{type:String,default:""},rightIcon:{type:String,default:""},rightIconSize:{type:Number,default:24},rightIconColor:{type:String,default:"deep-orange lighten-2"},rightIconColorHover:{type:String,default:"deep-orange lighten-2"},rightIconColorFocus:{type:String,default:"deep-orange lighten-1"},rightIconTooltip:{type:String,default:""},iconShiftOuter:{type:Number,default:-10},iconShiftInner:{type:Number,default:5},tooltipBorderRadius:{type:Number,default:4},tooltipPaddingStyle:{type:Object,default:()=>({v:5,h:8})},tooltipTextFontSize:{type:String,default:"0.85rem"},tooltipTextColor:{type:String,default:"white"},tooltipBackgroundColor:{type:String,default:"rgba(60,60,60,0.75)"},verticalAlign:{type:String,default:"center"},editable:{type:Boolean,default:!0},hovered:{type:Boolean,default:!1},focused:{type:Boolean,default:!1}},data:function(){return{hoveredTrans:!1,focusedTrans:!1}},computed:{changeParam:function(){let n=this;return n.hoveredTrans=n.hovered,n.focusedTrans=n.focused,""},useBackgroundColor:function(){let n=this,e={};return n.focusedTrans?(e["background-color"]=Br(n.backgroundColorFocus),e):n.hoveredTrans?(e["background-color"]=Br(n.backgroundColorHover),e):(e["background-color"]=Br(n.backgroundColor),e)},useBorder:function(){let n=this,e={};return n.focusedTrans?(e.border=`${n.borderWidth}px solid ${Br(n.borderColorFocus)}`,e):n.hoveredTrans?(e.border=`${n.borderWidth}px solid ${Br(n.borderColorHover)}`,e):(e.border=`${n.borderWidth}px solid ${Br(n.borderColor)}`,e)},useShadow:function(){let n={};return this.shadow&&(n["box-shadow"]="0 3px 1px -2px rgba(0,0,0,.2), 0 2px 2px 0 rgba(0,0,0,.14), 0 1px 5px 0 rgba(0,0,0,.12)"),n},useLeftIconColor:function(){let n=this;return n.hoveredTrans?Br(n.leftIconColorHover):n.focusedTrans?Br(n.leftIconColorFocus):Br(n.leftIconColor)},useRightIconColor:function(){let n=this;return n.hoveredTrans?Br(n.rightIconColorHover):n.focusedTrans?Br(n.rightIconColorFocus):Br(n.rightIconColor)},useTitleColor:function(){let n={};return n.color=Br(this.titleColor),n},usePadding:function(){return{padding:Or(this.paddingStyle,{semicolon:!1})}},hasLeftIconTooltop:function(){return ft(this.leftIconTooltip)},hasRightIconTooltop:function(){return ft(this.rightIconTooltip)},useVerticalAlign:function(){let n=this,e={};return"center"===n.verticalAlign?e["align-items"]="center":"top"===n.verticalAlign?e["align-items"]="flex-start":"bottom"===n.verticalAlign&&(e["align-items"]="flex-end"),e}},methods:{clickIcon:function(n){let e=this;!1!==e.editable&&e.$nextTick(()=>{e.$emit("click-"+n)})},mouseenter:function(){let n=this;n.hoveredTrans=!0,n.$nextTick(()=>{n.$emit("update:hovered",!0)})},mouseleave:function(){let n=this;n.hoveredTrans=!1,n.$nextTick(()=>{n.$emit("update:hovered",!1)})}}};var Gd=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{attrs:{changeParam:n.changeParam}},[t("div",{style:[{transition:"all 0.3s",display:"flex","justify-content":"flex-start","border-radius":n.borderRadius+"px",opacity:n.editable?1:.6},n.usePadding,n.useBackgroundColor,n.useBorder,n.useShadow,n.useVerticalAlign],on:{mouseenter:n.mouseenter,mouseleave:n.mouseleave}},[n.leftIcon?t("div",{style:"margin-left:"+n.iconShiftOuter+"px; margin-right:"+n.iconShiftInner+"px; user-select:none; cursor:pointer; outline:none;",attrs:{tabindex:"0"},on:{keyup:function(e){return!e.type.indexOf("key")&&n._k(e.keyCode,"enter",13,e.key,"Enter")?null:n.clickIcon("left")},click:function(e){return n.clickIcon("left")}}},[t("WTooltip",{attrs:{displayType:"line",isolated:!0,borderRadius:n.tooltipBorderRadius,paddingStyle:n.tooltipPaddingStyle,textFontSize:n.tooltipTextFontSize,textColor:n.tooltipTextColor,backgroundColor:n.tooltipBackgroundColor,editable:n.hasLeftIconTooltop},scopedSlots:n._u([{key:"trigger",fn:function(){return[t("div",{attrs:{ShellEllipse:"leftIcon"}},[t("WIcon",{attrs:{icon:n.leftIcon,size:n.leftIconSize,color:n.useLeftIconColor,colorHover:n.useLeftIconColor}})],1)]},proxy:!0},{key:"content",fn:function(){return[n._v("\n "+n._s(n.leftIconTooltip)+"\n ")]},proxy:!0}],null,!1,3849071383)})],1):n._e(),n._v(" "),t("div",{style:[{width:"100%"}]},[n._t("default")],2),n._v(" "),n.rightIcon?t("div",{style:"margin-right:"+n.iconShiftOuter+"px; margin-left:"+n.iconShiftInner+"px; user-select:none; cursor:pointer; outline:none;",attrs:{tabindex:"0"},on:{keyup:function(e){return!e.type.indexOf("key")&&n._k(e.keyCode,"enter",13,e.key,"Enter")?null:n.clickIcon("right")},click:function(e){return n.clickIcon("right")}}},[t("WTooltip",{attrs:{displayType:"line",isolated:!0,borderRadius:n.tooltipBorderRadius,paddingStyle:n.tooltipPaddingStyle,textFontSize:n.tooltipTextFontSize,textColor:n.tooltipTextColor,backgroundColor:n.tooltipBackgroundColor,editable:n.hasRightIconTooltop},scopedSlots:n._u([{key:"trigger",fn:function(){return[t("div",{attrs:{ShellEllipse:"rightIcon"}},[t("WIcon",{attrs:{icon:n.rightIcon,size:n.rightIconSize,color:n.useRightIconColor,colorHover:n.useRightIconColor}})],1)]},proxy:!0},{key:"content",fn:function(){return[n._v("\n "+n._s(n.rightIconTooltip)+"\n ")]},proxy:!0}],null,!1,1563142679)})],1):n._e()])])};Gd._withStripped=!0;const Zd=Xr({render:Gd,staticRenderFns:[]},function(n){n&&n("data-v-aaf69256_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WShellEllipse.vue"},media:void 0})},Xd,"data-v-aaf69256",false,void 0,!1,Zr,void 0,void 0);const qd={components:{},props:{borderColor:{type:String,default:"grey lighten-1"},borderColorHover:{type:String,default:"grey"},borderColorFocus:{type:String,default:"blue darken-2"},borderWidth:{type:Number,default:1},borderWidthHover:{type:Number,default:1},borderWidthFocus:{type:Number,default:2},focused:{type:Boolean,default:!1}},data:function(){return{focusedTrans:!1,hoverTrans:!1}},computed:{changeParam:function(){return this.focusedTrans=this.focused,""},useBorderWidth:function(){let n=this;return n.hoverTrans?n.borderWidthHover:n.borderWidth},useBorderColor:function(){let n=this;return n.hoverTrans?Br(n.borderColorHover):Br(n.borderColor)},useBorderColorFocus:function(){return Br(this.borderColorFocus)}},methods:{}};var Jd=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{attrs:{changeParam:n.changeParam}},[t("div",{staticStyle:{position:"relative"},on:{mouseenter:function(e){n.hoverTrans=!0},mouseleave:function(e){n.hoverTrans=!1}}},[n._t("default"),n._v(" "),t("div",{style:"position:absolute; left:0px; right:0px; bottom:0px; z-index:1; border-bottom:"+n.useBorderWidth+"px solid "+n.useBorderColor+";"}),n._v(" "),t("transition",{attrs:{name:"fade"}},[n.focused?t("div",{style:"position:absolute; left:0px; right:0px; bottom:0px; z-index:2; border-bottom:"+n.borderWidthFocus+"px solid "+n.useBorderColorFocus+";"}):n._e()])],2)])};Jd._withStripped=!0;const Qd=Xr({render:Jd,staticRenderFns:[]},function(n){n&&n("data-v-78955cc0_0",{source:"\n.fade-enter-active[data-v-78955cc0], .fade-leave-active[data-v-78955cc0] {\r\n transition: all 0.3s;\n}\n.fade-enter[data-v-78955cc0], .fade-leave-to[data-v-78955cc0] {\r\n transform: scaleX(0);\n}\n.fade-enter-to[data-v-78955cc0], .fade-leave[data-v-78955cc0] {\r\n transform: scaleX(100%);\n}\r\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\node_modules\\w-component-vue\\src\\components\\WShellBottomLine.vue"],names:[],mappings:";AAiIA;IACA,oBAAA;AACA;AACA;IACA,oBAAA;AACA;AACA;IACA,uBAAA;AACA",file:"WShellBottomLine.vue",sourcesContent:["<template>\r\n <div :changeParam=\"changeParam\">\r\n\r\n <div\r\n style=\"position:relative;\"\r\n @mouseenter=\"hoverTrans=true\"\r\n @mouseleave=\"hoverTrans=false\"\r\n >\r\n\r\n <slot></slot>\r\n\r\n <div\r\n :style=\"`position:absolute; left:0px; right:0px; bottom:0px; z-index:1; border-bottom:${useBorderWidth}px solid ${useBorderColor};`\"\r\n ></div>\r\n\r\n <transition name=\"fade\">\r\n <div\r\n :style=\"`position:absolute; left:0px; right:0px; bottom:0px; z-index:2; border-bottom:${borderWidthFocus}px solid ${useBorderColorFocus};`\"\r\n v-if=\"focused\"\r\n ></div>\r\n </transition>\r\n\r\n </div>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport convertColor from '../js/convertColor.mjs'\r\n\r\n\r\n/**\r\n * @vue-prop {Number} [borderWidth=1] 輸入線寬度數字,單位為px,預設1\r\n * @vue-prop {String} [borderColor='grey lighten-1'] 輸入線顏色字串,預設'grey lighten-1'\r\n * @vue-prop {String} [borderColorHover='grey'] 輸入滑鼠移入時線顏色字串,預設'grey'\r\n * @vue-prop {String} [borderColorFocus='blue darken-2'] 輸入取得焦點時線顏色字串,預設'blue darken-2'\r\n * @vue-prop {Number} [borderWidthHover=1] 輸入滑鼠移入時線寬度數字,單位為px,預設1\r\n * @vue-prop {Number} [borderWidthFocus=2] 輸入取得焦點時線寬度數字,單位為px,預設2\r\n * @vue-prop {Boolean} [focused=false] 輸入是否為取得焦點狀態,預設false\r\n */\r\nexport default {\r\n components: {\r\n },\r\n props: {\r\n borderColor: {\r\n type: String,\r\n default: 'grey lighten-1',\r\n },\r\n borderColorHover: {\r\n type: String,\r\n default: 'grey',\r\n },\r\n borderColorFocus: {\r\n type: String,\r\n default: 'blue darken-2',\r\n },\r\n borderWidth: {\r\n type: Number,\r\n default: 1,\r\n },\r\n borderWidthHover: {\r\n type: Number,\r\n default: 1,\r\n },\r\n borderWidthFocus: {\r\n type: Number,\r\n default: 2,\r\n },\r\n focused: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n data: function() {\r\n return {\r\n focusedTrans: false,\r\n hoverTrans: false,\r\n }\r\n },\r\n computed: {\r\n\r\n changeParam: function () {\r\n //console.log('computed changeParam')\r\n\r\n let vo = this\r\n\r\n //focusedTrans\r\n vo.focusedTrans = vo.focused\r\n\r\n return ''\r\n },\r\n\r\n useBorderWidth: function() {\r\n //console.log('computed useBorderWidth')\r\n\r\n let vo = this\r\n\r\n if (vo.hoverTrans) {\r\n return vo.borderWidthHover\r\n }\r\n return vo.borderWidth\r\n },\r\n\r\n useBorderColor: function() {\r\n //console.log('computed useBorderColor')\r\n\r\n let vo = this\r\n\r\n if (vo.hoverTrans) {\r\n return convertColor(vo.borderColorHover)\r\n }\r\n return convertColor(vo.borderColor)\r\n },\r\n\r\n useBorderColorFocus: function() {\r\n //console.log('computed useBorderColorFocus')\r\n\r\n let vo = this\r\n\r\n return convertColor(vo.borderColorFocus)\r\n },\r\n\r\n },\r\n methods: {\r\n },\r\n}\r\n<\/script>\r\n\r\n<style scoped>\r\n.fade-enter-active, .fade-leave-active {\r\n transition: all 0.3s;\r\n}\r\n.fade-enter, .fade-leave-to {\r\n transform: scaleX(0);\r\n}\r\n.fade-enter-to, .fade-leave {\r\n transform: scaleX(100%);\r\n}\r\n</style>\r\n"]},media:void 0})},qd,"data-v-78955cc0",false,void 0,!1,Zr,void 0,void 0);function Kd(n,e,t={}){let o=!1,r="";if("isstr"===e)pt(n)||(o=!0,r="需要為字串",n="");else if("isnum"===e)Ut(n)||(o=!0,r="需要為數字",n=0);else if("isp0num"===e)Td(n)||(o=!0,r="需要為含0的正浮點數",n=0);else if("isn0num"===e)Ut(i=n)&&Xt(i)<=0||(o=!0,r="需要為含0的負浮點數",n=0);else if("isint"===e)Gt(n)||(o=!0,r="需要為整數",n=0);else if("ispint"===e)no(n)||(o=!0,r="需要為不含0正整數",n=0);else if("isp0int"===e)Ms(n)||(o=!0,r="需要為含0正整數",n=0);else if("isnint"===e)(function(n){return!!Gt(n)&&Kt(n)<0})(n)||(o=!0,r="需要為不含0負整數",n=0);else if("isn0int"===e)(function(n){return!!Gt(n)&&Kt(n)<=0})(n)||(o=!0,r="需要為含0負整數",n=0);else if("custom"===e){let e=an(t,"funCustom");if(!Oo(e))throw new Error("invalid opt.funCustom when type='custom'");let i=e(n);if(!Rr(i.err))throw new Error("invalid return.err for type='custom'");if(i.err&&!ft(i.errmsg))throw new Error("invalid return.errmsg when return.err=true for type='custom'");if(!Ut(i.value)&!pt(i.value))throw new Error("invalid return.value for type='custom'");o=i.err,r=i.errmsg,n=i.value}else if(Oo(e)){n=e(n)}else"any"===e?Ut(n)||pt(n)||(o=!0,r="需要為字串或數字",n=""):(o=!0,r="需要指定驗證類型",n=null);var i;return{value:n,err:o,errmsg:r}}const nu={props:{type:{type:String,default:"any"},funVerify:{type:Function,default:null},value:{type:[String,Number],default:""},textFontSize:{type:String,default:"1rem"},textColor:{type:String,default:"black"},textAlign:{type:String,default:"left"},placeholder:{type:String,default:""},height:{type:[Number,String],default:""},password:{type:Boolean,default:!1},editable:{type:Boolean,default:!0},focused:{type:Boolean,default:!1}},data:function(){return{valueTrans:"",errmsg:""}},mounted:function(){},computed:{changeValue:function(){return this.valueTrans=this.value,""},useHeight:function(){let n=this,e="";return Ut(n.height)?e=`height:${n.height}px;`:ft(n.height)&&(e=`height:${n.height}; line-height:${n.height};`),e},useTextFontSize:function(){let n=this.textFontSize;return n=Pr(n,";",""),`font-size:${n};`},useTextColor:function(){return Br(this.textColor)}},methods:{setValue:function(n){this.valueTrans=n},setFocus:function(){this.$refs.inp.focus()},updateFocused:function(n){let e=this;e.focused!==n&&e.$nextTick(()=>{e.$emit("update:focused",n)})},updateValue:function(n){let e=this,t=Kd(e.valueTrans,e.type,{funCustom:e.funVerify});e.valueTrans=t.value,e.errmsg=t.errmsg},trigger:function(n,e){let t=this;t.$nextTick(()=>{t.$emit(n,t.valueTrans,t.errmsg,e)})}}};var eu=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{attrs:{changeValue:n.changeValue}},["checkbox"==(n.password?"password":"text")?t("input",{directives:[{name:"model",rawName:"v-model",value:n.valueTrans,expression:"valueTrans"}],ref:"inp",style:"transition:all 0.3s; display:block; outline:none; width:100%; box-sizing:border-box; border-style:none; background:transparent; color:"+n.useTextColor+"; "+n.useHeight+" text-align:"+n.textAlign+"; "+n.useTextFontSize+" opacity:"+(""!==n.valueTrans||n.focused?1:.6)+";",attrs:{readonly:!n.editable,placeholder:n.placeholder,type:"checkbox"},domProps:{checked:Array.isArray(n.valueTrans)?n._i(n.valueTrans,null)>-1:n.valueTrans},on:{input:function(e){n.updateValue(e),n.trigger("input",e),n.updateFocused(!0)},change:[function(e){var t=n.valueTrans,o=e.target,r=!!o.checked;if(Array.isArray(t)){var i=n._i(t,null);o.checked?i<0&&(n.valueTrans=t.concat([null])):i>-1&&(n.valueTrans=t.slice(0,i).concat(t.slice(i+1)))}else n.valueTrans=r},function(e){n.trigger("change",e)}],focus:function(e){return n.updateFocused(!0)},blur:function(e){n.trigger("blur",e),n.updateFocused(!1)},keyup:function(e){return!e.type.indexOf("key")&&n._k(e.keyCode,"enter",13,e.key,"Enter")?null:function(e){n.trigger("enter",e)}.apply(null,arguments)},select:function(e){n.trigger("select",e)}}}):"radio"==(n.password?"password":"text")?t("input",{directives:[{name:"model",rawName:"v-model",value:n.valueTrans,expression:"valueTrans"}],ref:"inp",style:"transition:all 0.3s; display:block; outline:none; width:100%; box-sizing:border-box; border-style:none; background:transparent; color:"+n.useTextColor+"; "+n.useHeight+" text-align:"+n.textAlign+"; "+n.useTextFontSize+" opacity:"+(""!==n.valueTrans||n.focused?1:.6)+";",attrs:{readonly:!n.editable,placeholder:n.placeholder,type:"radio"},domProps:{checked:n._q(n.valueTrans,null)},on:{input:function(e){n.updateValue(e),n.trigger("input",e),n.updateFocused(!0)},change:[function(e){n.valueTrans=null},function(e){n.trigger("change",e)}],focus:function(e){return n.updateFocused(!0)},blur:function(e){n.trigger("blur",e),n.updateFocused(!1)},keyup:function(e){return!e.type.indexOf("key")&&n._k(e.keyCode,"enter",13,e.key,"Enter")?null:function(e){n.trigger("enter",e)}.apply(null,arguments)},select:function(e){n.trigger("select",e)}}}):t("input",{directives:[{name:"model",rawName:"v-model",value:n.valueTrans,expression:"valueTrans"}],ref:"inp",style:"transition:all 0.3s; display:block; outline:none; width:100%; box-sizing:border-box; border-style:none; background:transparent; color:"+n.useTextColor+"; "+n.useHeight+" text-align:"+n.textAlign+"; "+n.useTextFontSize+" opacity:"+(""!==n.valueTrans||n.focused?1:.6)+";",attrs:{readonly:!n.editable,placeholder:n.placeholder,type:n.password?"password":"text"},domProps:{value:n.valueTrans},on:{input:[function(e){e.target.composing||(n.valueTrans=e.target.value)},function(e){n.updateValue(e),n.trigger("input",e),n.updateFocused(!0)}],change:function(e){n.trigger("change",e)},focus:function(e){return n.updateFocused(!0)},blur:function(e){n.trigger("blur",e),n.updateFocused(!1)},keyup:function(e){return!e.type.indexOf("key")&&n._k(e.keyCode,"enter",13,e.key,"Enter")?null:function(e){n.trigger("enter",e)}.apply(null,arguments)},select:function(e){n.trigger("select",e)}}})])};eu._withStripped=!0;const tu={components:{WShellEllipse:Zd,WShellBottomLine:Qd,WTextCore:Xr({render:eu,staticRenderFns:[]},function(n){n&&n("data-v-1ca57af2_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WTextCore.vue"},media:void 0})},nu,"data-v-1ca57af2",false,void 0,!1,Zr,void 0,void 0)},props:{paddingStyle:{type:Object,default:()=>({v:0,h:0})},borderRadius:{type:Number,default:30},shadow:{type:Boolean,default:!1},type:{type:String,default:"any"},funVerify:{type:Function,default:null},value:{type:[String,Number]},textFontSize:{type:String,default:"1rem"},textColor:{type:String,default:"black"},textAlign:{type:String,default:"left"},leftIcon:{type:String,default:""},leftIconSize:{type:Number,default:24},leftIconColor:{type:String,default:"blue"},leftIconColorHover:{type:String,default:"blue darken-1"},leftIconColorFocus:{type:String,default:"blue darken-1"},leftIconTooltip:{type:String,default:""},rightIcon:{type:String,default:""},rightIconSize:{type:Number,default:24},rightIconColor:{type:String,default:"blue"},rightIconColorHover:{type:String,default:"blue darken-1"},rightIconColorFocus:{type:String,default:"blue darken-1"},rightIconTooltip:{type:String,default:""},iconShiftOuter:{type:Number,default:0},iconShiftInner:{type:Number,default:5},backgroundColor:{type:String,default:"transparent"},backgroundColorHover:{type:String,default:"transparent"},backgroundColorFocus:{type:String,default:"transparent"},borderColor:{type:String,default:"transparent"},borderColorHover:{type:String,default:"transparent"},borderColorFocus:{type:String,default:"transparent"},bottomLineBorderColor:{type:String,default:"grey lighten-1"},bottomLineBorderColorHover:{type:String,default:"grey"},bottomLineBorderColorFocus:{type:String,default:"blue darken-1"},bottomLineBorderWidth:{type:Number,default:1},bottomLineBorderWidthHover:{type:Number,default:1},bottomLineBorderWidthFocus:{type:Number,default:2},placeholder:{type:String,default:""},height:{type:Number,default:28},password:{type:Boolean,default:!1},editable:{type:Boolean,default:!0},focused:{type:Boolean,default:!1}},data:function(){return{focusedTrans:!1}},mounted:function(){},computed:{changeFocused:function(){return this.focusedTrans=this.focused,""}},methods:{modifyFocused:function(n){let e=this;e.focusedTrans=n,e.$nextTick(()=>{e.$emit("update:focused",n)})}}};var ou=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{attrs:{changeFocused:n.changeFocused}},[t("WShellBottomLine",{attrs:{borderColor:n.bottomLineBorderColor,borderColorHover:n.bottomLineBorderColorHover,borderColorFocus:n.bottomLineBorderColorFocus,borderWidth:n.bottomLineBorderWidth,borderWidthHover:n.bottomLineBorderWidthHover,borderWidthFocus:n.bottomLineBorderWidthFocus,focused:n.focusedTrans}},[t("WShellEllipse",{attrs:{paddingStyle:n.paddingStyle,borderRadius:n.borderRadius,shadow:n.shadow,leftIcon:n.leftIcon,leftIconSize:n.leftIconSize,leftIconColor:n.leftIconColor,leftIconColorHover:n.leftIconColorHover,leftIconColorFocus:n.leftIconColorFocus,leftIconTooltip:n.leftIconTooltip,rightIcon:n.rightIcon,rightIconSize:n.rightIconSize,rightIconColor:n.rightIconColor,rightIconColorHover:n.rightIconColorHover,rightIconColorFocus:n.rightIconColorFocus,rightIconTooltip:n.rightIconTooltip,iconShiftOuter:n.iconShiftOuter,iconShiftInner:n.iconShiftInner,backgroundColor:n.backgroundColor,backgroundColorHover:n.backgroundColorHover,backgroundColorFocus:n.backgroundColorFocus,borderColor:n.borderColor,borderColorHover:n.borderColorHover,borderColorFocus:n.borderColorFocus,editable:n.editable,focused:n.focusedTrans},on:{"click-left":function(e){return n.$emit("click-left")},"click-right":function(e){return n.$emit("click-right")}}},[t("WTextCore",{attrs:{type:n.type,funVerify:n.funVerify,textFontSize:n.textFontSize,textColor:n.textColor,textAlign:n.textAlign,placeholder:n.placeholder,height:n.height,password:n.password,editable:n.editable,value:n.value,focused:n.focusedTrans},on:{"update:focused":n.modifyFocused,select:function(e,t,o){n.$emit("select",e,t,o)},blur:function(e,t,o){n.$emit("blur",e,t,o)},enter:function(e,t,o){n.$emit("enter",e,t,o)},input:function(e,t,o){n.$emit("input",e,t,o)},change:function(e,t,o){n.$emit("change",e,t,o)}}})],1)],1)],1)};ou._withStripped=!0;const ru=Xr({render:ou,staticRenderFns:[]},function(n){n&&n("data-v-4498f151_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WText.vue"},media:void 0})},tu,"data-v-4498f151",false,void 0,!1,Zr,void 0,void 0);
7
7
  /*!
8
8
  * decimal.js v10.6.0
9
9
  * An arbitrary-precision Decimal type for JavaScript.
@@ -11,7 +11,7 @@
11
11
  * Copyright (c) 2025 Michael Mclaughlin <M8ch88l@gmail.com>
12
12
  * MIT Licence
13
13
  */
14
- var iu,au,su=9e15,lu=1e9,du="0123456789abcdef",uu="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",cu="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",pu={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-su,maxE:su,crypto:!1},fu=!0,hu="[DecimalError] ",gu=hu+"Invalid argument: ",vu=hu+"Precision limit exceeded",mu=hu+"crypto unavailable",Au="[object Decimal]",bu=Math.floor,yu=Math.pow,Cu=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,xu=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,wu=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Su=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,ku=1e7,_u=uu.length-1,Bu=cu.length-1,Pu={toStringTag:Au};function Tu(n){var e,t,o,r=n.length-1,i="",a=n[0];if(r>0){for(i+=a,e=1;e<r;e++)(t=7-(o=n[e]+"").length)&&(i+=Du(t)),i+=o;(t=7-(o=(a=n[e])+"").length)&&(i+=Du(t))}else if(0===a)return"0";for(;a%10==0;)a/=10;return i+a}function Eu(n,e,t){if(n!==~~n||n<e||n>t)throw Error(gu+n)}function zu(n,e,t,o){var r,i,a,s;for(i=n[0];i>=10;i/=10)--e;return--e<0?(e+=7,r=0):(r=Math.ceil((e+1)/7),e%=7),i=yu(10,7-e),s=n[r]%i|0,null==o?e<3?(0==e?s=s/100|0:1==e&&(s=s/10|0),a=t<4&&99999==s||t>3&&49999==s||5e4==s||0==s):a=(t<4&&s+1==i||t>3&&s+1==i/2)&&(n[r+1]/i/100|0)==yu(10,e-2)-1||(s==i/2||0==s)&&!(n[r+1]/i/100|0):e<4?(0==e?s=s/1e3|0:1==e?s=s/100|0:2==e&&(s=s/10|0),a=(o||t<4)&&9999==s||!o&&t>3&&4999==s):a=((o||t<4)&&s+1==i||!o&&t>3&&s+1==i/2)&&(n[r+1]/i/1e3|0)==yu(10,e-3)-1,a}function Iu(n,e,t){for(var o,r,i=[0],a=0,s=n.length;a<s;){for(r=i.length;r--;)i[r]*=e;for(i[0]+=du.indexOf(n.charAt(a++)),o=0;o<i.length;o++)i[o]>t-1&&(void 0===i[o+1]&&(i[o+1]=0),i[o+1]+=i[o]/t|0,i[o]%=t)}return i.reverse()}Pu.absoluteValue=Pu.abs=function(){var n=new this.constructor(this);return n.s<0&&(n.s=1),Hu(n)},Pu.ceil=function(){return Hu(new this.constructor(this),this.e+1,2)},Pu.clampedTo=Pu.clamp=function(n,e){var t=this,o=t.constructor;if(n=new o(n),e=new o(e),!n.s||!e.s)return new o(NaN);if(n.gt(e))throw Error(gu+e);return t.cmp(n)<0?n:t.cmp(e)>0?e:new o(t)},Pu.comparedTo=Pu.cmp=function(n){var e,t,o,r,i=this,a=i.d,s=(n=new i.constructor(n)).d,l=i.s,d=n.s;if(!a||!s)return l&&d?l!==d?l:a===s?0:!a^l<0?1:-1:NaN;if(!a[0]||!s[0])return a[0]?l:s[0]?-d:0;if(l!==d)return l;if(i.e!==n.e)return i.e>n.e^l<0?1:-1;for(e=0,t=(o=a.length)<(r=s.length)?o:r;e<t;++e)if(a[e]!==s[e])return a[e]>s[e]^l<0?1:-1;return o===r?0:o>r^l<0?1:-1},Pu.cosine=Pu.cos=function(){var n,e,t=this,o=t.constructor;return t.d?t.d[0]?(n=o.precision,e=o.rounding,o.precision=n+Math.max(t.e,t.sd())+7,o.rounding=1,t=function(n,e){var t,o,r;if(e.isZero())return e;o=e.d.length,o<32?r=(1/qu(4,t=Math.ceil(o/3))).toString():(t=16,r="2.3283064365386962890625e-10");n.precision+=t,e=Zu(n,1,e.times(r),new n(1));for(var i=t;i--;){var a=e.times(e);e=a.times(a).minus(a).times(8).plus(1)}return n.precision-=t,e}(o,Ju(o,t)),o.precision=n,o.rounding=e,Hu(2==au||3==au?t.neg():t,n,e,!0)):new o(1):new o(NaN)},Pu.cubeRoot=Pu.cbrt=function(){var n,e,t,o,r,i,a,s,l,d,u=this,c=u.constructor;if(!u.isFinite()||u.isZero())return new c(u);for(fu=!1,(i=u.s*yu(u.s*u,1/3))&&Math.abs(i)!=1/0?o=new c(i.toString()):(t=Tu(u.d),(i=((n=u.e)-t.length+1)%3)&&(t+=1==i||-2==i?"0":"00"),i=yu(t,1/3),n=bu((n+1)/3)-(n%3==(n<0?-1:2)),(o=new c(t=i==1/0?"5e"+n:(t=i.toExponential()).slice(0,t.indexOf("e")+1)+n)).s=u.s),a=(n=c.precision)+3;;)if(d=(l=(s=o).times(s).times(s)).plus(u),o=Fu(d.plus(u).times(s),d.plus(l),a+2,1),Tu(s.d).slice(0,a)===(t=Tu(o.d)).slice(0,a)){if("9999"!=(t=t.slice(a-3,a+1))&&(r||"4999"!=t)){+t&&(+t.slice(1)||"5"!=t.charAt(0))||(Hu(o,n+1,1),e=!o.times(o).times(o).eq(u));break}if(!r&&(Hu(s,n+1,0),s.times(s).times(s).eq(u))){o=s;break}a+=4,r=1}return fu=!0,Hu(o,n,c.rounding,e)},Pu.decimalPlaces=Pu.dp=function(){var n,e=this.d,t=NaN;if(e){if(t=7*((n=e.length-1)-bu(this.e/7)),n=e[n])for(;n%10==0;n/=10)t--;t<0&&(t=0)}return t},Pu.dividedBy=Pu.div=function(n){return Fu(this,new this.constructor(n))},Pu.dividedToIntegerBy=Pu.divToInt=function(n){var e=this.constructor;return Hu(Fu(this,new e(n),0,1,1),e.precision,e.rounding)},Pu.equals=Pu.eq=function(n){return 0===this.cmp(n)},Pu.floor=function(){return Hu(new this.constructor(this),this.e+1,3)},Pu.greaterThan=Pu.gt=function(n){return this.cmp(n)>0},Pu.greaterThanOrEqualTo=Pu.gte=function(n){var e=this.cmp(n);return 1==e||0===e},Pu.hyperbolicCosine=Pu.cosh=function(){var n,e,t,o,r,i=this,a=i.constructor,s=new a(1);if(!i.isFinite())return new a(i.s?1/0:NaN);if(i.isZero())return s;t=a.precision,o=a.rounding,a.precision=t+Math.max(i.e,i.sd())+4,a.rounding=1,(r=i.d.length)<32?e=(1/qu(4,n=Math.ceil(r/3))).toString():(n=16,e="2.3283064365386962890625e-10"),i=Zu(a,1,i.times(e),new a(1),!0);for(var l,d=n,u=new a(8);d--;)l=i.times(i),i=s.minus(l.times(u.minus(l.times(u))));return Hu(i,a.precision=t,a.rounding=o,!0)},Pu.hyperbolicSine=Pu.sinh=function(){var n,e,t,o,r=this,i=r.constructor;if(!r.isFinite()||r.isZero())return new i(r);if(e=i.precision,t=i.rounding,i.precision=e+Math.max(r.e,r.sd())+4,i.rounding=1,(o=r.d.length)<3)r=Zu(i,2,r,r,!0);else{n=(n=1.4*Math.sqrt(o))>16?16:0|n,r=Zu(i,2,r=r.times(1/qu(5,n)),r,!0);for(var a,s=new i(5),l=new i(16),d=new i(20);n--;)a=r.times(r),r=r.times(s.plus(a.times(l.times(a).plus(d))))}return i.precision=e,i.rounding=t,Hu(r,e,t,!0)},Pu.hyperbolicTangent=Pu.tanh=function(){var n,e,t=this,o=t.constructor;return t.isFinite()?t.isZero()?new o(t):(n=o.precision,e=o.rounding,o.precision=n+7,o.rounding=1,Fu(t.sinh(),t.cosh(),o.precision=n,o.rounding=e)):new o(t.s)},Pu.inverseCosine=Pu.acos=function(){var n=this,e=n.constructor,t=n.abs().cmp(1),o=e.precision,r=e.rounding;return-1!==t?0===t?n.isNeg()?Mu(e,o,r):new e(0):new e(NaN):n.isZero()?Mu(e,o+4,r).times(.5):(e.precision=o+6,e.rounding=1,n=new e(1).minus(n).div(n.plus(1)).sqrt().atan(),e.precision=o,e.rounding=r,n.times(2))},Pu.inverseHyperbolicCosine=Pu.acosh=function(){var n,e,t=this,o=t.constructor;return t.lte(1)?new o(t.eq(1)?0:NaN):t.isFinite()?(n=o.precision,e=o.rounding,o.precision=n+Math.max(Math.abs(t.e),t.sd())+4,o.rounding=1,fu=!1,t=t.times(t).minus(1).sqrt().plus(t),fu=!0,o.precision=n,o.rounding=e,t.ln()):new o(t)},Pu.inverseHyperbolicSine=Pu.asinh=function(){var n,e,t=this,o=t.constructor;return!t.isFinite()||t.isZero()?new o(t):(n=o.precision,e=o.rounding,o.precision=n+2*Math.max(Math.abs(t.e),t.sd())+6,o.rounding=1,fu=!1,t=t.times(t).plus(1).sqrt().plus(t),fu=!0,o.precision=n,o.rounding=e,t.ln())},Pu.inverseHyperbolicTangent=Pu.atanh=function(){var n,e,t,o,r=this,i=r.constructor;return r.isFinite()?r.e>=0?new i(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(n=i.precision,e=i.rounding,o=r.sd(),Math.max(o,n)<2*-r.e-1?Hu(new i(r),n,e,!0):(i.precision=t=o-r.e,r=Fu(r.plus(1),new i(1).minus(r),t+n,1),i.precision=n+4,i.rounding=1,r=r.ln(),i.precision=n,i.rounding=e,r.times(.5))):new i(NaN)},Pu.inverseSine=Pu.asin=function(){var n,e,t,o,r=this,i=r.constructor;return r.isZero()?new i(r):(e=r.abs().cmp(1),t=i.precision,o=i.rounding,-1!==e?0===e?((n=Mu(i,t+4,o).times(.5)).s=r.s,n):new i(NaN):(i.precision=t+6,i.rounding=1,r=r.div(new i(1).minus(r.times(r)).sqrt().plus(1)).atan(),i.precision=t,i.rounding=o,r.times(2)))},Pu.inverseTangent=Pu.atan=function(){var n,e,t,o,r,i,a,s,l,d=this,u=d.constructor,c=u.precision,p=u.rounding;if(d.isFinite()){if(d.isZero())return new u(d);if(d.abs().eq(1)&&c+4<=Bu)return(a=Mu(u,c+4,p).times(.25)).s=d.s,a}else{if(!d.s)return new u(NaN);if(c+4<=Bu)return(a=Mu(u,c+4,p).times(.5)).s=d.s,a}for(u.precision=s=c+10,u.rounding=1,n=t=Math.min(28,s/7+2|0);n;--n)d=d.div(d.times(d).plus(1).sqrt().plus(1));for(fu=!1,e=Math.ceil(s/7),o=1,l=d.times(d),a=new u(d),r=d;-1!==n;)if(r=r.times(l),i=a.minus(r.div(o+=2)),r=r.times(l),void 0!==(a=i.plus(r.div(o+=2))).d[e])for(n=e;a.d[n]===i.d[n]&&n--;);return t&&(a=a.times(2<<t-1)),fu=!0,Hu(a,u.precision=c,u.rounding=p,!0)},Pu.isFinite=function(){return!!this.d},Pu.isInteger=Pu.isInt=function(){return!!this.d&&bu(this.e/7)>this.d.length-2},Pu.isNaN=function(){return!this.s},Pu.isNegative=Pu.isNeg=function(){return this.s<0},Pu.isPositive=Pu.isPos=function(){return this.s>0},Pu.isZero=function(){return!!this.d&&0===this.d[0]},Pu.lessThan=Pu.lt=function(n){return this.cmp(n)<0},Pu.lessThanOrEqualTo=Pu.lte=function(n){return this.cmp(n)<1},Pu.logarithm=Pu.log=function(n){var e,t,o,r,i,a,s,l,d=this,u=d.constructor,c=u.precision,p=u.rounding;if(null==n)n=new u(10),e=!0;else{if(t=(n=new u(n)).d,n.s<0||!t||!t[0]||n.eq(1))return new u(NaN);e=n.eq(10)}if(t=d.d,d.s<0||!t||!t[0]||d.eq(1))return new u(t&&!t[0]?-1/0:1!=d.s?NaN:t?0:1/0);if(e)if(t.length>1)i=!0;else{for(r=t[0];r%10==0;)r/=10;i=1!==r}if(fu=!1,a=Yu(d,s=c+5),o=e?Wu(u,s+10):Yu(n,s),zu((l=Fu(a,o,s,1)).d,r=c,p))do{if(a=Yu(d,s+=10),o=e?Wu(u,s+10):Yu(n,s),l=Fu(a,o,s,1),!i){+Tu(l.d).slice(r+1,r+15)+1==1e14&&(l=Hu(l,c+1,0));break}}while(zu(l.d,r+=10,p));return fu=!0,Hu(l,c,p)},Pu.minus=Pu.sub=function(n){var e,t,o,r,i,a,s,l,d,u,c,p,f=this,h=f.constructor;if(n=new h(n),!f.d||!n.d)return f.s&&n.s?f.d?n.s=-n.s:n=new h(n.d||f.s!==n.s?f:NaN):n=new h(NaN),n;if(f.s!=n.s)return n.s=-n.s,f.plus(n);if(d=f.d,p=n.d,s=h.precision,l=h.rounding,!d[0]||!p[0]){if(p[0])n.s=-n.s;else{if(!d[0])return new h(3===l?-0:0);n=new h(f)}return fu?Hu(n,s,l):n}if(t=bu(n.e/7),u=bu(f.e/7),d=d.slice(),i=u-t){for((c=i<0)?(e=d,i=-i,a=p.length):(e=p,t=u,a=d.length),i>(o=Math.max(Math.ceil(s/7),a)+2)&&(i=o,e.length=1),e.reverse(),o=i;o--;)e.push(0);e.reverse()}else{for((c=(o=d.length)<(a=p.length))&&(a=o),o=0;o<a;o++)if(d[o]!=p[o]){c=d[o]<p[o];break}i=0}for(c&&(e=d,d=p,p=e,n.s=-n.s),a=d.length,o=p.length-a;o>0;--o)d[a++]=0;for(o=p.length;o>i;){if(d[--o]<p[o]){for(r=o;r&&0===d[--r];)d[r]=ku-1;--d[r],d[o]+=ku}d[o]-=p[o]}for(;0===d[--a];)d.pop();for(;0===d[0];d.shift())--t;return d[0]?(n.d=d,n.e=$u(d,t),fu?Hu(n,s,l):n):new h(3===l?-0:0)},Pu.modulo=Pu.mod=function(n){var e,t=this,o=t.constructor;return n=new o(n),!t.d||!n.s||n.d&&!n.d[0]?new o(NaN):!n.d||t.d&&!t.d[0]?Hu(new o(t),o.precision,o.rounding):(fu=!1,9==o.modulo?(e=Fu(t,n.abs(),0,3,1)).s*=n.s:e=Fu(t,n,0,o.modulo,1),e=e.times(n),fu=!0,t.minus(e))},Pu.naturalExponential=Pu.exp=function(){return Vu(this)},Pu.naturalLogarithm=Pu.ln=function(){return Yu(this)},Pu.negated=Pu.neg=function(){var n=new this.constructor(this);return n.s=-n.s,Hu(n)},Pu.plus=Pu.add=function(n){var e,t,o,r,i,a,s,l,d,u,c=this,p=c.constructor;if(n=new p(n),!c.d||!n.d)return c.s&&n.s?c.d||(n=new p(n.d||c.s===n.s?c:NaN)):n=new p(NaN),n;if(c.s!=n.s)return n.s=-n.s,c.minus(n);if(d=c.d,u=n.d,s=p.precision,l=p.rounding,!d[0]||!u[0])return u[0]||(n=new p(c)),fu?Hu(n,s,l):n;if(i=bu(c.e/7),o=bu(n.e/7),d=d.slice(),r=i-o){for(r<0?(t=d,r=-r,a=u.length):(t=u,o=i,a=d.length),r>(a=(i=Math.ceil(s/7))>a?i+1:a+1)&&(r=a,t.length=1),t.reverse();r--;)t.push(0);t.reverse()}for((a=d.length)-(r=u.length)<0&&(r=a,t=u,u=d,d=t),e=0;r;)e=(d[--r]=d[r]+u[r]+e)/ku|0,d[r]%=ku;for(e&&(d.unshift(e),++o),a=d.length;0==d[--a];)d.pop();return n.d=d,n.e=$u(d,o),fu?Hu(n,s,l):n},Pu.precision=Pu.sd=function(n){var e,t=this;if(void 0!==n&&n!==!!n&&1!==n&&0!==n)throw Error(gu+n);return t.d?(e=Lu(t.d),n&&t.e+1>e&&(e=t.e+1)):e=NaN,e},Pu.round=function(){var n=this,e=n.constructor;return Hu(new e(n),n.e+1,e.rounding)},Pu.sine=Pu.sin=function(){var n,e,t=this,o=t.constructor;return t.isFinite()?t.isZero()?new o(t):(n=o.precision,e=o.rounding,o.precision=n+Math.max(t.e,t.sd())+7,o.rounding=1,t=function(n,e){var t,o=e.d.length;if(o<3)return e.isZero()?e:Zu(n,2,e,e);t=(t=1.4*Math.sqrt(o))>16?16:0|t,e=e.times(1/qu(5,t)),e=Zu(n,2,e,e);for(var r,i=new n(5),a=new n(16),s=new n(20);t--;)r=e.times(e),e=e.times(i.plus(r.times(a.times(r).minus(s))));return e}(o,Ju(o,t)),o.precision=n,o.rounding=e,Hu(au>2?t.neg():t,n,e,!0)):new o(NaN)},Pu.squareRoot=Pu.sqrt=function(){var n,e,t,o,r,i,a=this,s=a.d,l=a.e,d=a.s,u=a.constructor;if(1!==d||!s||!s[0])return new u(!d||d<0&&(!s||s[0])?NaN:s?a:1/0);for(fu=!1,0==(d=Math.sqrt(+a))||d==1/0?(((e=Tu(s)).length+l)%2==0&&(e+="0"),d=Math.sqrt(e),l=bu((l+1)/2)-(l<0||l%2),o=new u(e=d==1/0?"5e"+l:(e=d.toExponential()).slice(0,e.indexOf("e")+1)+l)):o=new u(d.toString()),t=(l=u.precision)+3;;)if(o=(i=o).plus(Fu(a,i,t+2,1)).times(.5),Tu(i.d).slice(0,t)===(e=Tu(o.d)).slice(0,t)){if("9999"!=(e=e.slice(t-3,t+1))&&(r||"4999"!=e)){+e&&(+e.slice(1)||"5"!=e.charAt(0))||(Hu(o,l+1,1),n=!o.times(o).eq(a));break}if(!r&&(Hu(i,l+1,0),i.times(i).eq(a))){o=i;break}t+=4,r=1}return fu=!0,Hu(o,l,u.rounding,n)},Pu.tangent=Pu.tan=function(){var n,e,t=this,o=t.constructor;return t.isFinite()?t.isZero()?new o(t):(n=o.precision,e=o.rounding,o.precision=n+10,o.rounding=1,(t=t.sin()).s=1,t=Fu(t,new o(1).minus(t.times(t)).sqrt(),n+10,0),o.precision=n,o.rounding=e,Hu(2==au||4==au?t.neg():t,n,e,!0)):new o(NaN)},Pu.times=Pu.mul=function(n){var e,t,o,r,i,a,s,l,d,u=this,c=u.constructor,p=u.d,f=(n=new c(n)).d;if(n.s*=u.s,!(p&&p[0]&&f&&f[0]))return new c(!n.s||p&&!p[0]&&!f||f&&!f[0]&&!p?NaN:p&&f?0*n.s:n.s/0);for(t=bu(u.e/7)+bu(n.e/7),(l=p.length)<(d=f.length)&&(i=p,p=f,f=i,a=l,l=d,d=a),i=[],o=a=l+d;o--;)i.push(0);for(o=d;--o>=0;){for(e=0,r=l+o;r>o;)s=i[r]+f[o]*p[r-o-1]+e,i[r--]=s%ku|0,e=s/ku|0;i[r]=(i[r]+e)%ku|0}for(;!i[--a];)i.pop();return e?++t:i.shift(),n.d=i,n.e=$u(i,t),fu?Hu(n,c.precision,c.rounding):n},Pu.toBinary=function(n,e){return Qu(this,2,n,e)},Pu.toDecimalPlaces=Pu.toDP=function(n,e){var t=this,o=t.constructor;return t=new o(t),void 0===n?t:(Eu(n,0,lu),void 0===e?e=o.rounding:Eu(e,0,8),Hu(t,n+t.e+1,e))},Pu.toExponential=function(n,e){var t,o=this,r=o.constructor;return void 0===n?t=Nu(o,!0):(Eu(n,0,lu),void 0===e?e=r.rounding:Eu(e,0,8),t=Nu(o=Hu(new r(o),n+1,e),!0,n+1)),o.isNeg()&&!o.isZero()?"-"+t:t},Pu.toFixed=function(n,e){var t,o,r=this,i=r.constructor;return void 0===n?t=Nu(r):(Eu(n,0,lu),void 0===e?e=i.rounding:Eu(e,0,8),t=Nu(o=Hu(new i(r),n+r.e+1,e),!1,n+o.e+1)),r.isNeg()&&!r.isZero()?"-"+t:t},Pu.toFraction=function(n){var e,t,o,r,i,a,s,l,d,u,c,p,f=this,h=f.d,g=f.constructor;if(!h)return new g(f);if(d=t=new g(1),o=l=new g(0),a=(i=(e=new g(o)).e=Lu(h)-f.e-1)%7,e.d[0]=yu(10,a<0?7+a:a),null==n)n=i>0?e:d;else{if(!(s=new g(n)).isInt()||s.lt(d))throw Error(gu+s);n=s.gt(e)?i>0?e:d:s}for(fu=!1,s=new g(Tu(h)),u=g.precision,g.precision=i=7*h.length*2;c=Fu(s,e,0,1,1),1!=(r=t.plus(c.times(o))).cmp(n);)t=o,o=r,r=d,d=l.plus(c.times(r)),l=r,r=e,e=s.minus(c.times(r)),s=r;return r=Fu(n.minus(t),o,0,1,1),l=l.plus(r.times(d)),t=t.plus(r.times(o)),l.s=d.s=f.s,p=Fu(d,o,i,1).minus(f).abs().cmp(Fu(l,t,i,1).minus(f).abs())<1?[d,o]:[l,t],g.precision=u,fu=!0,p},Pu.toHexadecimal=Pu.toHex=function(n,e){return Qu(this,16,n,e)},Pu.toNearest=function(n,e){var t=this,o=t.constructor;if(t=new o(t),null==n){if(!t.d)return t;n=new o(1),e=o.rounding}else{if(n=new o(n),void 0===e?e=o.rounding:Eu(e,0,8),!t.d)return n.s?t:n;if(!n.d)return n.s&&(n.s=t.s),n}return n.d[0]?(fu=!1,t=Fu(t,n,0,e,1).times(n),fu=!0,Hu(t)):(n.s=t.s,t=n),t},Pu.toNumber=function(){return+this},Pu.toOctal=function(n,e){return Qu(this,8,n,e)},Pu.toPower=Pu.pow=function(n){var e,t,o,r,i,a,s=this,l=s.constructor,d=+(n=new l(n));if(!(s.d&&n.d&&s.d[0]&&n.d[0]))return new l(yu(+s,d));if((s=new l(s)).eq(1))return s;if(o=l.precision,i=l.rounding,n.eq(1))return Hu(s,o,i);if((e=bu(n.e/7))>=n.d.length-1&&(t=d<0?-d:d)<=9007199254740991)return r=Ru(l,s,t,o),n.s<0?new l(1).div(r):Hu(r,o,i);if((a=s.s)<0){if(e<n.d.length-1)return new l(NaN);if(1&n.d[e]||(a=1),0==s.e&&1==s.d[0]&&1==s.d.length)return s.s=a,s}return(e=0!=(t=yu(+s,d))&&isFinite(t)?new l(t+"").e:bu(d*(Math.log("0."+Tu(s.d))/Math.LN10+s.e+1)))>l.maxE+1||e<l.minE-1?new l(e>0?a/0:0):(fu=!1,l.rounding=s.s=1,t=Math.min(12,(e+"").length),(r=Vu(n.times(Yu(s,o+t)),o)).d&&zu((r=Hu(r,o+5,1)).d,o,i)&&(e=o+10,+Tu((r=Hu(Vu(n.times(Yu(s,e+t)),e),e+5,1)).d).slice(o+1,o+15)+1==1e14&&(r=Hu(r,o+1,0))),r.s=a,fu=!0,l.rounding=i,Hu(r,o,i))},Pu.toPrecision=function(n,e){var t,o=this,r=o.constructor;return void 0===n?t=Nu(o,o.e<=r.toExpNeg||o.e>=r.toExpPos):(Eu(n,1,lu),void 0===e?e=r.rounding:Eu(e,0,8),t=Nu(o=Hu(new r(o),n,e),n<=o.e||o.e<=r.toExpNeg,n)),o.isNeg()&&!o.isZero()?"-"+t:t},Pu.toSignificantDigits=Pu.toSD=function(n,e){var t=this.constructor;return void 0===n?(n=t.precision,e=t.rounding):(Eu(n,1,lu),void 0===e?e=t.rounding:Eu(e,0,8)),Hu(new t(this),n,e)},Pu.toString=function(){var n=this,e=n.constructor,t=Nu(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()&&!n.isZero()?"-"+t:t},Pu.truncated=Pu.trunc=function(){return Hu(new this.constructor(this),this.e+1,1)},Pu.valueOf=Pu.toJSON=function(){var n=this,e=n.constructor,t=Nu(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()?"-"+t:t};var Fu=function(){function n(n,e,t){var o,r=0,i=n.length;for(n=n.slice();i--;)o=n[i]*e+r,n[i]=o%t|0,r=o/t|0;return r&&n.unshift(r),n}function e(n,e,t,o){var r,i;if(t!=o)i=t>o?1:-1;else for(r=i=0;r<t;r++)if(n[r]!=e[r]){i=n[r]>e[r]?1:-1;break}return i}function t(n,e,t,o){for(var r=0;t--;)n[t]-=r,r=n[t]<e[t]?1:0,n[t]=r*o+n[t]-e[t];for(;!n[0]&&n.length>1;)n.shift()}return function(o,r,i,a,s,l){var d,u,c,p,f,h,g,v,m,A,b,y,C,x,w,S,k,_,B,P,T=o.constructor,E=o.s==r.s?1:-1,z=o.d,I=r.d;if(!(z&&z[0]&&I&&I[0]))return new T(o.s&&r.s&&(z?!I||z[0]!=I[0]:I)?z&&0==z[0]||!I?0*E:E/0:NaN);for(l?(f=1,u=o.e-r.e):(l=ku,f=7,u=bu(o.e/f)-bu(r.e/f)),B=I.length,k=z.length,A=(m=new T(E)).d=[],c=0;I[c]==(z[c]||0);c++);if(I[c]>(z[c]||0)&&u--,null==i?(x=i=T.precision,a=T.rounding):x=s?i+(o.e-r.e)+1:i,x<0)A.push(1),h=!0;else{if(x=x/f+2|0,c=0,1==B){for(p=0,I=I[0],x++;(c<k||p)&&x--;c++)w=p*l+(z[c]||0),A[c]=w/I|0,p=w%I|0;h=p||c<k}else{for((p=l/(I[0]+1)|0)>1&&(I=n(I,p,l),z=n(z,p,l),B=I.length,k=z.length),S=B,y=(b=z.slice(0,B)).length;y<B;)b[y++]=0;(P=I.slice()).unshift(0),_=I[0],I[1]>=l/2&&++_;do{p=0,(d=e(I,b,B,y))<0?(C=b[0],B!=y&&(C=C*l+(b[1]||0)),(p=C/_|0)>1?(p>=l&&(p=l-1),1==(d=e(g=n(I,p,l),b,v=g.length,y=b.length))&&(p--,t(g,B<v?P:I,v,l))):(0==p&&(d=p=1),g=I.slice()),(v=g.length)<y&&g.unshift(0),t(b,g,y,l),-1==d&&(d=e(I,b,B,y=b.length))<1&&(p++,t(b,B<y?P:I,y,l)),y=b.length):0===d&&(p++,b=[0]),A[c++]=p,d&&b[0]?b[y++]=z[S]||0:(b=[z[S]],y=1)}while((S++<k||void 0!==b[0])&&x--);h=void 0!==b[0]}A[0]||A.shift()}if(1==f)m.e=u,iu=h;else{for(c=1,p=A[0];p>=10;p/=10)c++;m.e=c+u*f-1,Hu(m,s?i+m.e+1:i,a,h)}return m}}();function Hu(n,e,t,o){var r,i,a,s,l,d,u,c,p,f=n.constructor;n:if(null!=e){if(!(c=n.d))return n;for(r=1,s=c[0];s>=10;s/=10)r++;if((i=e-r)<0)i+=7,a=e,l=(u=c[p=0])/yu(10,r-a-1)%10|0;else if((p=Math.ceil((i+1)/7))>=(s=c.length)){if(!o)break n;for(;s++<=p;)c.push(0);u=l=0,r=1,a=(i%=7)-7+1}else{for(u=s=c[p],r=1;s>=10;s/=10)r++;l=(a=(i%=7)-7+r)<0?0:u/yu(10,r-a-1)%10|0}if(o=o||e<0||void 0!==c[p+1]||(a<0?u:u%yu(10,r-a-1)),d=t<4?(l||o)&&(0==t||t==(n.s<0?3:2)):l>5||5==l&&(4==t||o||6==t&&(i>0?a>0?u/yu(10,r-a):0:c[p-1])%10&1||t==(n.s<0?8:7)),e<1||!c[0])return c.length=0,d?(e-=n.e+1,c[0]=yu(10,(7-e%7)%7),n.e=-e||0):c[0]=n.e=0,n;if(0==i?(c.length=p,s=1,p--):(c.length=p+1,s=yu(10,7-i),c[p]=a>0?(u/yu(10,r-a)%yu(10,a)|0)*s:0),d)for(;;){if(0==p){for(i=1,a=c[0];a>=10;a/=10)i++;for(a=c[0]+=s,s=1;a>=10;a/=10)s++;i!=s&&(n.e++,c[0]==ku&&(c[0]=1));break}if(c[p]+=s,c[p]!=ku)break;c[p--]=0,s=1}for(i=c.length;0===c[--i];)c.pop()}return fu&&(n.e>f.maxE?(n.d=null,n.e=NaN):n.e<f.minE&&(n.e=0,n.d=[0])),n}function Nu(n,e,t){if(!n.isFinite())return Uu(n);var o,r=n.e,i=Tu(n.d),a=i.length;return e?(t&&(o=t-a)>0?i=i.charAt(0)+"."+i.slice(1)+Du(o):a>1&&(i=i.charAt(0)+"."+i.slice(1)),i=i+(n.e<0?"e":"e+")+n.e):r<0?(i="0."+Du(-r-1)+i,t&&(o=t-a)>0&&(i+=Du(o))):r>=a?(i+=Du(r+1-a),t&&(o=t-r-1)>0&&(i=i+"."+Du(o))):((o=r+1)<a&&(i=i.slice(0,o)+"."+i.slice(o)),t&&(o=t-a)>0&&(r+1===a&&(i+="."),i+=Du(o))),i}function $u(n,e){var t=n[0];for(e*=7;t>=10;t/=10)e++;return e}function Wu(n,e,t){if(e>_u)throw fu=!0,t&&(n.precision=t),Error(vu);return Hu(new n(uu),e,1,!0)}function Mu(n,e,t){if(e>Bu)throw Error(vu);return Hu(new n(cu),e,t,!0)}function Lu(n){var e=n.length-1,t=7*e+1;if(e=n[e]){for(;e%10==0;e/=10)t--;for(e=n[0];e>=10;e/=10)t++}return t}function Du(n){for(var e="";n--;)e+="0";return e}function Ru(n,e,t,o){var r,i=new n(1),a=Math.ceil(o/7+4);for(fu=!1;;){if(t%2&&Ku((i=i.times(e)).d,a)&&(r=!0),0===(t=bu(t/2))){t=i.d.length-1,r&&0===i.d[t]&&++i.d[t];break}Ku((e=e.times(e)).d,a)}return fu=!0,i}function ju(n){return 1&n.d[n.d.length-1]}function Ou(n,e,t){for(var o,r,i=new n(e[0]),a=0;++a<e.length;){if(!(r=new n(e[a])).s){i=r;break}((o=i.cmp(r))===t||0===o&&i.s===t)&&(i=r)}return i}function Vu(n,e){var t,o,r,i,a,s,l,d=0,u=0,c=0,p=n.constructor,f=p.rounding,h=p.precision;if(!n.d||!n.d[0]||n.e>17)return new p(n.d?n.d[0]?n.s<0?0:1/0:1:n.s?n.s<0?0:n:NaN);for(null==e?(fu=!1,l=h):l=e,s=new p(.03125);n.e>-2;)n=n.times(s),c+=5;for(l+=o=Math.log(yu(2,c))/Math.LN10*2+5|0,t=i=a=new p(1),p.precision=l;;){if(i=Hu(i.times(n),l,1),t=t.times(++u),Tu((s=a.plus(Fu(i,t,l,1))).d).slice(0,l)===Tu(a.d).slice(0,l)){for(r=c;r--;)a=Hu(a.times(a),l,1);if(null!=e)return p.precision=h,a;if(!(d<3&&zu(a.d,l-o,f,d)))return Hu(a,p.precision=h,f,fu=!0);p.precision=l+=10,t=i=s=new p(1),u=0,d++}a=s}}function Yu(n,e){var t,o,r,i,a,s,l,d,u,c,p,f=1,h=n,g=h.d,v=h.constructor,m=v.rounding,A=v.precision;if(h.s<0||!g||!g[0]||!h.e&&1==g[0]&&1==g.length)return new v(g&&!g[0]?-1/0:1!=h.s?NaN:g?0:h);if(null==e?(fu=!1,u=A):u=e,v.precision=u+=10,o=(t=Tu(g)).charAt(0),!(Math.abs(i=h.e)<15e14))return d=Wu(v,u+2,A).times(i+""),h=Yu(new v(o+"."+t.slice(1)),u-10).plus(d),v.precision=A,null==e?Hu(h,A,m,fu=!0):h;for(;o<7&&1!=o||1==o&&t.charAt(1)>3;)o=(t=Tu((h=h.times(n)).d)).charAt(0),f++;for(i=h.e,o>1?(h=new v("0."+t),i++):h=new v(o+"."+t.slice(1)),c=h,l=a=h=Fu(h.minus(1),h.plus(1),u,1),p=Hu(h.times(h),u,1),r=3;;){if(a=Hu(a.times(p),u,1),Tu((d=l.plus(Fu(a,new v(r),u,1))).d).slice(0,u)===Tu(l.d).slice(0,u)){if(l=l.times(2),0!==i&&(l=l.plus(Wu(v,u+2,A).times(i+""))),l=Fu(l,new v(f),u,1),null!=e)return v.precision=A,l;if(!zu(l.d,u-10,m,s))return Hu(l,v.precision=A,m,fu=!0);v.precision=u+=10,d=a=h=Fu(c.minus(1),c.plus(1),u,1),p=Hu(h.times(h),u,1),r=s=1}l=d,r+=2}}function Uu(n){return String(n.s*n.s/0)}function Xu(n,e){var t,o,r;for((t=e.indexOf("."))>-1&&(e=e.replace(".","")),(o=e.search(/e/i))>0?(t<0&&(t=o),t+=+e.slice(o+1),e=e.substring(0,o)):t<0&&(t=e.length),o=0;48===e.charCodeAt(o);o++);for(r=e.length;48===e.charCodeAt(r-1);--r);if(e=e.slice(o,r)){if(r-=o,n.e=t=t-o-1,n.d=[],o=(t+1)%7,t<0&&(o+=7),o<r){for(o&&n.d.push(+e.slice(0,o)),r-=7;o<r;)n.d.push(+e.slice(o,o+=7));o=7-(e=e.slice(o)).length}else o-=r;for(;o--;)e+="0";n.d.push(+e),fu&&(n.e>n.constructor.maxE?(n.d=null,n.e=NaN):n.e<n.constructor.minE&&(n.e=0,n.d=[0]))}else n.e=0,n.d=[0];return n}function Gu(n,e){var t,o,r,i,a,s,l,d,u;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),Su.test(e))return Xu(n,e)}else if("Infinity"===e||"NaN"===e)return+e||(n.s=NaN),n.e=NaN,n.d=null,n;if(xu.test(e))t=16,e=e.toLowerCase();else if(Cu.test(e))t=2;else{if(!wu.test(e))throw Error(gu+e);t=8}for((i=e.search(/p/i))>0?(l=+e.slice(i+1),e=e.substring(2,i)):e=e.slice(2),a=(i=e.indexOf("."))>=0,o=n.constructor,a&&(i=(s=(e=e.replace(".","")).length)-i,r=Ru(o,new o(t),i,2*i)),i=u=(d=Iu(e,t,ku)).length-1;0===d[i];--i)d.pop();return i<0?new o(0*n.s):(n.e=$u(d,u),n.d=d,fu=!1,a&&(n=Fu(n,r,4*s)),l&&(n=n.times(Math.abs(l)<54?yu(2,l):Dc.pow(2,l))),fu=!0,n)}function Zu(n,e,t,o,r){var i,a,s,l,d=n.precision,u=Math.ceil(d/7);for(fu=!1,l=t.times(t),s=new n(o);;){if(a=Fu(s.times(l),new n(e++*e++),d,1),s=r?o.plus(a):o.minus(a),o=Fu(a.times(l),new n(e++*e++),d,1),void 0!==(a=s.plus(o)).d[u]){for(i=u;a.d[i]===s.d[i]&&i--;);if(-1==i)break}i=s,s=o,o=a,a=i}return fu=!0,a.d.length=u+1,a}function qu(n,e){for(var t=n;--e;)t*=n;return t}function Ju(n,e){var t,o=e.s<0,r=Mu(n,n.precision,1),i=r.times(.5);if((e=e.abs()).lte(i))return au=o?4:1,e;if((t=e.divToInt(r)).isZero())au=o?3:2;else{if((e=e.minus(t.times(r))).lte(i))return au=ju(t)?o?2:3:o?4:1,e;au=ju(t)?o?1:4:o?3:2}return e.minus(r).abs()}function Qu(n,e,t,o){var r,i,a,s,l,d,u,c,p,f=n.constructor,h=void 0!==t;if(h?(Eu(t,1,lu),void 0===o?o=f.rounding:Eu(o,0,8)):(t=f.precision,o=f.rounding),n.isFinite()){for(h?(r=2,16==e?t=4*t-3:8==e&&(t=3*t-2)):r=e,(a=(u=Nu(n)).indexOf("."))>=0&&(u=u.replace(".",""),(p=new f(1)).e=u.length-a,p.d=Iu(Nu(p),10,r),p.e=p.d.length),i=l=(c=Iu(u,10,r)).length;0==c[--l];)c.pop();if(c[0]){if(a<0?i--:((n=new f(n)).d=c,n.e=i,c=(n=Fu(n,p,t,o,0,r)).d,i=n.e,d=iu),a=c[t],s=r/2,d=d||void 0!==c[t+1],d=o<4?(void 0!==a||d)&&(0===o||o===(n.s<0?3:2)):a>s||a===s&&(4===o||d||6===o&&1&c[t-1]||o===(n.s<0?8:7)),c.length=t,d)for(;++c[--t]>r-1;)c[t]=0,t||(++i,c.unshift(1));for(l=c.length;!c[l-1];--l);for(a=0,u="";a<l;a++)u+=du.charAt(c[a]);if(h){if(l>1)if(16==e||8==e){for(a=16==e?4:3,--l;l%a;l++)u+="0";for(l=(c=Iu(u,r,e)).length;!c[l-1];--l);for(a=1,u="1.";a<l;a++)u+=du.charAt(c[a])}else u=u.charAt(0)+"."+u.slice(1);u=u+(i<0?"p":"p+")+i}else if(i<0){for(;++i;)u="0"+u;u="0."+u}else if(++i>l)for(i-=l;i--;)u+="0";else i<l&&(u=u.slice(0,i)+"."+u.slice(i))}else u=h?"0p+0":"0";u=(16==e?"0x":2==e?"0b":8==e?"0o":"")+u}else u=Uu(n);return n.s<0?"-"+u:u}function Ku(n,e){if(n.length>e)return n.length=e,!0}function nc(n){return new this(n).abs()}function ec(n){return new this(n).acos()}function tc(n){return new this(n).acosh()}function oc(n,e){return new this(n).plus(e)}function rc(n){return new this(n).asin()}function ic(n){return new this(n).asinh()}function ac(n){return new this(n).atan()}function sc(n){return new this(n).atanh()}function lc(n,e){n=new this(n),e=new this(e);var t,o=this.precision,r=this.rounding,i=o+4;return n.s&&e.s?n.d||e.d?!e.d||n.isZero()?(t=e.s<0?Mu(this,o,r):new this(0)).s=n.s:!n.d||e.isZero()?(t=Mu(this,i,1).times(.5)).s=n.s:e.s<0?(this.precision=i,this.rounding=1,t=this.atan(Fu(n,e,i,1)),e=Mu(this,i,1),this.precision=o,this.rounding=r,t=n.s<0?t.minus(e):t.plus(e)):t=this.atan(Fu(n,e,i,1)):(t=Mu(this,i,1).times(e.s>0?.25:.75)).s=n.s:t=new this(NaN),t}function dc(n){return new this(n).cbrt()}function uc(n){return Hu(n=new this(n),n.e+1,2)}function cc(n,e,t){return new this(n).clamp(e,t)}function pc(n){if(!n||"object"!=typeof n)throw Error(hu+"Object expected");var e,t,o,r=!0===n.defaults,i=["precision",1,lu,"rounding",0,8,"toExpNeg",-su,0,"toExpPos",0,su,"maxE",0,su,"minE",-su,0,"modulo",0,9];for(e=0;e<i.length;e+=3)if(t=i[e],r&&(this[t]=pu[t]),void 0!==(o=n[t])){if(!(bu(o)===o&&o>=i[e+1]&&o<=i[e+2]))throw Error(gu+t+": "+o);this[t]=o}if(t="crypto",r&&(this[t]=pu[t]),void 0!==(o=n[t])){if(!0!==o&&!1!==o&&0!==o&&1!==o)throw Error(gu+t+": "+o);if(o){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(mu);this[t]=!0}else this[t]=!1}return this}function fc(n){return new this(n).cos()}function hc(n){return new this(n).cosh()}function gc(n,e){return new this(n).div(e)}function vc(n){return new this(n).exp()}function mc(n){return Hu(n=new this(n),n.e+1,3)}function Ac(){var n,e,t=new this(0);for(fu=!1,n=0;n<arguments.length;)if((e=new this(arguments[n++])).d)t.d&&(t=t.plus(e.times(e)));else{if(e.s)return fu=!0,new this(1/0);t=e}return fu=!0,t.sqrt()}function bc(n){return n instanceof Dc||n&&n.toStringTag===Au||!1}function yc(n){return new this(n).ln()}function Cc(n,e){return new this(n).log(e)}function xc(n){return new this(n).log(2)}function wc(n){return new this(n).log(10)}function Sc(){return Ou(this,arguments,-1)}function kc(){return Ou(this,arguments,1)}function _c(n,e){return new this(n).mod(e)}function Bc(n,e){return new this(n).mul(e)}function Pc(n,e){return new this(n).pow(e)}function Tc(n){var e,t,o,r,i=0,a=new this(1),s=[];if(void 0===n?n=this.precision:Eu(n,1,lu),o=Math.ceil(n/7),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(o));i<o;)(r=e[i])>=429e7?e[i]=crypto.getRandomValues(new Uint32Array(1))[0]:s[i++]=r%1e7;else{if(!crypto.randomBytes)throw Error(mu);for(e=crypto.randomBytes(o*=4);i<o;)(r=e[i]+(e[i+1]<<8)+(e[i+2]<<16)+((127&e[i+3])<<24))>=214e7?crypto.randomBytes(4).copy(e,i):(s.push(r%1e7),i+=4);i=o/4}else for(;i<o;)s[i++]=1e7*Math.random()|0;for(n%=7,(o=s[--i])&&n&&(r=yu(10,7-n),s[i]=(o/r|0)*r);0===s[i];i--)s.pop();if(i<0)t=0,s=[0];else{for(t=-1;0===s[0];t-=7)s.shift();for(o=1,r=s[0];r>=10;r/=10)o++;o<7&&(t-=7-o)}return a.e=t,a.d=s,a}function Ec(n){return Hu(n=new this(n),n.e+1,this.rounding)}function zc(n){return(n=new this(n)).d?n.d[0]?n.s:0*n.s:n.s||NaN}function Ic(n){return new this(n).sin()}function Fc(n){return new this(n).sinh()}function Hc(n){return new this(n).sqrt()}function Nc(n,e){return new this(n).sub(e)}function $c(){var n=0,e=arguments,t=new this(e[n]);for(fu=!1;t.s&&++n<e.length;)t=t.plus(e[n]);return fu=!0,Hu(t,this.precision,this.rounding)}function Wc(n){return new this(n).tan()}function Mc(n){return new this(n).tanh()}function Lc(n){return Hu(n=new this(n),n.e+1,1)}Pu[Symbol.for("nodejs.util.inspect.custom")]=Pu.toString,Pu[Symbol.toStringTag]="Decimal";var Dc=Pu.constructor=function n(e){var t,o,r;function i(n){var e,t,o,r=this;if(!(r instanceof i))return new i(n);if(r.constructor=i,bc(n))return r.s=n.s,void(fu?!n.d||n.e>i.maxE?(r.e=NaN,r.d=null):n.e<i.minE?(r.e=0,r.d=[0]):(r.e=n.e,r.d=n.d.slice()):(r.e=n.e,r.d=n.d?n.d.slice():n.d));if("number"===(o=typeof n)){if(0===n)return r.s=1/n<0?-1:1,r.e=0,void(r.d=[0]);if(n<0?(n=-n,r.s=-1):r.s=1,n===~~n&&n<1e7){for(e=0,t=n;t>=10;t/=10)e++;return void(fu?e>i.maxE?(r.e=NaN,r.d=null):e<i.minE?(r.e=0,r.d=[0]):(r.e=e,r.d=[n]):(r.e=e,r.d=[n]))}return 0*n!=0?(n||(r.s=NaN),r.e=NaN,void(r.d=null)):Xu(r,n.toString())}if("string"===o)return 45===(t=n.charCodeAt(0))?(n=n.slice(1),r.s=-1):(43===t&&(n=n.slice(1)),r.s=1),Su.test(n)?Xu(r,n):Gu(r,n);if("bigint"===o)return n<0?(n=-n,r.s=-1):r.s=1,Xu(r,n.toString());throw Error(gu+n)}if(i.prototype=Pu,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.EUCLID=9,i.config=i.set=pc,i.clone=n,i.isDecimal=bc,i.abs=nc,i.acos=ec,i.acosh=tc,i.add=oc,i.asin=rc,i.asinh=ic,i.atan=ac,i.atanh=sc,i.atan2=lc,i.cbrt=dc,i.ceil=uc,i.clamp=cc,i.cos=fc,i.cosh=hc,i.div=gc,i.exp=vc,i.floor=mc,i.hypot=Ac,i.ln=yc,i.log=Cc,i.log10=wc,i.log2=xc,i.max=Sc,i.min=kc,i.mod=_c,i.mul=Bc,i.pow=Pc,i.random=Tc,i.round=Ec,i.sign=zc,i.sin=Ic,i.sinh=Fc,i.sqrt=Hc,i.sub=Nc,i.sum=$c,i.tan=Wc,i.tanh=Mc,i.trunc=Lc,void 0===e&&(e={}),e&&!0!==e.defaults)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],t=0;t<r.length;)e.hasOwnProperty(o=r[t++])||(e[o]=this[o]);return i.config(e),i}(pu);uu=new Dc(uu),cu=new Dc(cu);var Rc={name:"arrow",enabled:!0,phase:"main",fn:function(n){var e,t=n.state,o=n.name,r=n.options,i=t.elements.arrow,a=t.modifiersData.popperOffsets,s=Va(t.placement),l=Ua(s),d=[Ta,Pa].indexOf(s)>=0?"height":"width";if(i&&a){var u=function(n,e){return Ga("number"!=typeof(n="function"==typeof n?n(Object.assign({},e.rects,{placement:e.placement})):n)?n:Za(n,za))}(r.padding,t),c=ba(i),p="y"===l?_a:Ta,f="y"===l?Ba:Pa,h=t.rects.reference[d]+t.rects.reference[l]-a[l]-t.rects.popper[d],g=a[l]-t.rects.reference[l],v=ka(i),m=v?"y"===l?v.clientHeight||0:v.clientWidth||0:0,A=h/2-g/2,b=u[p],y=m-c[d]-u[f],C=m/2-c[d]/2+A,x=vs(b,C,y),w=l;t.modifiersData[o]=((e={})[w]=x,e.centerOffset=x-C,e)}},effect:function(n){var e=n.state,t=n.options.element,o=void 0===t?"[data-popper-arrow]":t;null!=o&&("string"!=typeof o||(o=e.elements.popper.querySelector(o)))&&Da(e.elements.popper,o)&&(e.elements.arrow=o)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};const jc={directives:{domresize:Vo()},components:{},props:{value:{type:Number,default:0},valueMin:{type:Number,default:0},valueMax:{type:Number,default:100},valueStep:{type:Number,default:1},valueDecimal:{type:Number,default:0},progBorderRadius:{type:Number,default:5},progHeight:{type:Number,default:4},progColor:{type:String,default:"#74a4d9"},progColorDisabled:{type:String,default:"#c5c5c5"},progBackgroundColor:{type:String,default:"#eee"},progBackgroundColorDisabled:{type:String,default:"#f2f2f2"},sliderSize:{type:Number,default:20},sliderBackgroundColor:{type:String,default:"blue darken-3"},sliderBackgroundColorHover:{type:String,default:"blue darken-2"},sliderBackgroundColorDisabled:{type:String,default:"#aaa"},cmpZIndex:{type:Number,default:3e3},tooltipPlacementDist:{type:Number,default:5},tooltipBorderRadius:{type:Number,default:4},tooltipTextFontSize:{type:String,default:"0.85rem"},tooltipTextColor:{type:String,default:"white"},tooltipBackgroundColor:{type:String,default:"#666"},editable:{type:Boolean,default:!0}},data:function(){return{panelWidth:0,panelHeight:0,das:null,hoverTrans:!1,dragTrans:!1,popperInstance:null,popperShow:!1,r:null,rt:null}},mounted:function(){let n=this,e=function(n,e,t={}){let o=null,r=null,i=null,a=null,s=null,l=null,d=null,u=null,c=null,p=null,f=null,h=null,g=null,v=null,m=null,b=!1,y=an(t,"getHeighRatio",null);A(y)||(y=()=>1);let C=an(t,"getWidthRatio",null);A(C)||(C=()=>1);let x=an(t,"stopScrollPropagationForPanel",null);Dr(x)||(x=!1);let w=an(t,"stopTouchDragPropagationForPanel",null);Dr(w)||(w=!1);let S=an(t,"useTouchDragForPanel",null);Dr(S)||(S=!0);let k=n,_=e,B=jo();return o=n=>{let e=n.deltaY/Math.abs(n.deltaY),t=n.deltaX/Math.abs(n.deltaX);B.emit("scrollPanel",{ratioY:e,ratioX:t}),x&&zd(n)},k.addEventListener("wheel",o),r=n=>{if(S){let e=an(n,"touches.0.clientY",0),t=an(n,"touches.0.clientX",0),o=-e*y(),r=-t*C();b=!0,B.emit("pressBar",{clientY:o,clientX:r}),w&&zd(n)}},k.addEventListener("touchstart",r),i=n=>{if(S&&b){let e=an(n,"touches.0.clientY",0),t=an(n,"touches.0.clientX",0),o=-e*y(),r=-t*C();B.emit("dragBar",{clientY:o,clientX:r}),w&&zd(n)}},k.addEventListener("touchmove",i,{passive:!1}),a=n=>{S&&b&&(b=!1,B.emit("freeBar"),w&&zd(n))},k.addEventListener("touchend",a),s=n=>{b=!0,B.emit("pressBar",{clientY:n.clientY,clientX:n.clientX})},_.addEventListener("mousedown",s),l=n=>{b&&(b=!1,B.emit("freeBar"))},_.addEventListener("mouseup",l),d=n=>{b=!0,B.emit("pressBar",{clientY:n.touches[0].clientY,clientX:n.touches[0].clientX})},_.addEventListener("touchstart",d),u=n=>{b&&(B.emit("dragBar",{clientY:n.touches[0].clientY,clientX:n.touches[0].clientX}),zd(n))},_.addEventListener("touchmove",u,{passive:!1}),c=n=>{b&&(b=!1,B.emit("freeBar"))},_.addEventListener("touchend",c),p=n=>{b&&B.emit("dragBar",{clientY:n.clientY,clientX:n.clientX})},window.addEventListener("mousemove",p),f=n=>{b&&(b=!1,B.emit("freeBar"),x&&zd(n))},window.addEventListener("mouseup",f),h=n=>{},window.addEventListener("scroll",h,{passive:!1}),g=n=>{},window.addEventListener("wheel",g,{passive:!1}),v=n=>{},document.addEventListener("scroll",v,{passive:!1}),m=n=>{},document.addEventListener("wheel",m,{passive:!1}),B.clear=function(){k.removeEventListener("wheel",o),k.removeEventListener("touchstart",r),k.removeEventListener("touchmove",i),k.removeEventListener("touchend",a),_.removeEventListener("mousedown",s),_.removeEventListener("mouseup",l),_.removeEventListener("touchstart",d),_.removeEventListener("touchmove",u),_.removeEventListener("touchend",c),window.removeEventListener("mousemove",p),window.removeEventListener("mouseup",f),window.removeEventListener("scroll",h),window.removeEventListener("wheel",g),document.removeEventListener("scroll",v),document.removeEventListener("wheel",m)},B}(n.$refs.divPanel,n.$refs.divBar,{useTouchDragForPanel:!1});e.on("dragBar",n.dragBar),e.on("pressBar",n.pressBar),e.on("freeBar",n.freeBar),n.das=e},beforeDestroy:function(){let n=this;n.das&&n.das.clear()},computed:{changeParam:function(){let n=this,e=0;try{e=(n.value-n.valueMin)/(n.valueMax-n.valueMin)}catch(n){}e=n.limitRatio(e);let t=n.tickRatio(e);return n.r=e,n.rt=t,""},heightCir:function(){return this.sliderSize},widthCir:function(){return this.heightCir},effecting:function(){let n=this;if(!n.editable)return;let e=n.hoverTrans||n.dragTrans;return e?n.showPopper():(n.hidePopper(),n.r=n.rt),e},progWidth:function(){return this.panelWidth-this.sliderSize},useProgBorderRadius:function(){return`border-radius:${this.progBorderRadius}px;`},effProgColor:function(){return Br(this.progColor)},effProgColorDisabled:function(){return Br(this.progColorDisabled)},useProgColor:function(){let n=this;return n.editable?n.effProgColor:n.effProgColorDisabled},effProgBackgroundColor:function(){return Br(this.progBackgroundColor)},effProgBackgroundColorDisabled:function(){return Br(this.progBackgroundColorDisabled)},useProgBackgroundColor:function(){let n=this;return n.editable?n.effProgBackgroundColor:n.effProgBackgroundColorDisabled},effSliderBackgroundColor:function(){return Br(this.sliderBackgroundColor)},effSliderBackgroundColorHover:function(){return Br(this.sliderBackgroundColorHover)},effSliderBackgroundColorDisabled:function(){return Br(this.sliderBackgroundColorDisabled)},useSliderBackgroundColor:function(){let n=this;return n.editable?n.effecting?n.effSliderBackgroundColorHover:n.effSliderBackgroundColor:n.effSliderBackgroundColorDisabled},useTooltipBorderRadius:function(){let n=this;return jr(n.tooltipBorderRadius)?`border-radius:${n.tooltipBorderRadius}px;`:""},useTooltipTextFontSize:function(){let n=this.tooltipTextFontSize;return n=Pr(n,";",""),`font-size:${n};`},useTooltipTextColor:function(){return Br(this.tooltipTextColor)},useTooltipBackgroundColor:function(){return Br(this.tooltipBackgroundColor)},valueDig:function(){let n=this;return function(n,e=0){return Ut(n)&&Ms(e)?(n=Xt(n),Qt(n,e).toFixed(e)):""}(n.rt*(n.valueMax-n.valueMin)+n.valueMin,n.valueDecimal)}},methods:{resizePanel:function(n){this.panelWidth=n.snew.offsetWidth,this.panelHeight=n.snew.offsetHeight},limitRatio:function(n){return n=Math.min(n,1),n=Math.max(n,0)},tickRatio:function(n){let e=this,t=0;try{let o=e.valueMax-e.valueMin,r=e.valueStep/o;t=function(n,e=0,t={}){Ms(e)||(e=0),e=Kt(e);let o=an(t,"rounding","");return"ROUND_HALF_UP"!==o&&"ROUND_HALF_EVEN"!==o&&(o="ROUND_HALF_UP"),Ut(n)?new Dc(n).toDecimalPlaces(e,Dc[o]).toNumber():""}(n/r)*r}catch(n){}return t},dragBar:function(n){let e=this;if(!e.editable)return;let t=e.$el.getBoundingClientRect(),o=n.clientX-e.sliderSize/2,r=e.progWidth,i=0;r>0&&(i=(o-t.left)/r),i=e.limitRatio(i);let a=e.tickRatio(i);e.r=i,e.rt=a;let s=Xt(e.valueDig);e.updatePopper(),e.$emit("input",s)},pressBar:function(){this.dragTrans=!0},freeBar:function(){this.dragTrans=!1},showPopper:function(n){let e=this;if(!e.editable)return;let t=an(e,"$refs.divTrigger",null);if(null===t)return;let o=an(e,"$refs.divContent",null);if(null===o)return;let r={strategy:"fixed",placement:"top",modifiers:[Rc,{name:"arrow",options:{padding:5}},cs,{name:"flip",options:{fallbackPlacements:["top","top-start","top-end","bottom","bottom-start","bottom-end"]}},ps,{name:"offset",options:{offset:({placement:n,reference:t,popper:o})=>[0,e.tooltipPlacementDist]}},gs]};e.popperInstance=is(t,o,r)},updatePopper:function(n){let e=this;e.editable&&e.popperInstance&&e.popperInstance.update()},hidePopper:function(n){let e=this;e.popperInstance&&(e.popperInstance.destroy(),e.popperInstance=null)}}};var Oc=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{directives:[{name:"domresize",rawName:"v-domresize"}],style:"user-select:none;",attrs:{changeParam:n.changeParam},on:{domresize:n.resizePanel}},[t("div",{style:"position:relative; width:100%; height:"+n.sliderSize+"px;"},[t("div",{style:"position:absolute; top:"+(n.sliderSize/2-n.progHeight/2)+"px; left:"+n.sliderSize/2+"px; width:"+n.progWidth+"px;"},[t("div",{ref:"divPanel",style:"position:relative; width:"+n.progWidth+"px;",attrs:{_click:"clickProg"}},[t("div",{style:n.useProgBorderRadius+" overflow:hidden; width:"+n.progWidth+"px; height:"+n.progHeight+"px;"},[t("div",{style:"background:"+n.useProgBackgroundColor+"; height:"+n.progHeight+"px;"},[t("div",{style:"background:"+n.useProgColor+"; width:"+n.rt*n.progWidth+"px; height:"+n.progHeight+"px;"})])]),n._v(" "),t("div",{style:"position:absolute; left:"+(n.rt*n.progWidth-n.widthCir/2)+"px; top:"+(n.progHeight/2-n.heightCir/2)+"px; z-index:1; "+(n.editable?"cursor:pointer;":"")},[t("div",{ref:"divTrigger",staticClass:"ts bs",style:"width:"+n.widthCir+"px; height:"+n.heightCir+"px; border-radius:50%; background:"+n.useSliderBackgroundColor+"; outline:none;"})]),n._v(" "),t("div",{ref:"divBar",style:"position:absolute; left:"+(n.r*n.progWidth-n.widthCir/2)+"px; top:"+(n.progHeight/2-n.heightCir/2)+"px; z-index:2; "+(n.editable?"cursor:pointer;":"")},[t("div",{style:"width:"+n.widthCir+"px; height:"+n.heightCir+"px; border-radius:50%; opacity:0; outline:none;",on:{mouseenter:function(e){n.hoverTrans=!0},mouseleave:function(e){n.hoverTrans=!1}}})])])])]),n._v(" "),t("div",{directives:[{name:"show",rawName:"v-show",value:n.effecting,expression:"effecting"},{name:"domresize",rawName:"v-domresize"}],ref:"divContent",staticClass:"WPopperFix",style:"z-index:"+n.cmpZIndex+";",on:{domresize:n.updatePopper}},[t("div",{style:"padding:2px 5px; font-size:0.8rem; "+n.useTooltipTextFontSize+" color:"+n.useTooltipTextColor+"; background:"+n.useTooltipBackgroundColor+"; "+n.useTooltipBorderRadius},[n._v("\n "+n._s(n.valueDig)+"\n "),t("div",{staticClass:"arrow",attrs:{"data-popper-arrow":""}})])])])};Oc._withStripped=!0;const Vc={components:{WGroupChipRadio:Od,WPanelLabelItem:Ud,WText:ru,WSlider:Xr({render:Oc,staticRenderFns:[]},function(n){n&&n("data-v-062a5ce9_0",{source:"\n.ts[data-v-062a5ce9] {\r\n transition:all 0.3s;\n}\n.bs[data-v-062a5ce9] {\r\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\n}\n.WPopperFix[data-popper-reference-hidden][data-v-062a5ce9] {\r\n visibility: hidden;\r\n pointer-events: none;\n}\n.arrow[data-v-062a5ce9],\r\n.arrow[data-v-062a5ce9]::before {\r\n position: absolute;\r\n width: 5px;\r\n height: 5px;\r\n background: inherit;\n}\n.arrow[data-v-062a5ce9] {\r\n visibility: hidden;\n}\n.arrow[data-v-062a5ce9]::before {\r\n visibility: visible;\r\n content: '';\r\n transform: rotate(45deg);\n}\r\n/* .arrow::after {\r\n content: \"\";\r\n position: absolute;\r\n top: 100%;\r\n left: 50%;\r\n margin-left: -5px;\r\n border-width: 5px;\r\n border-style: solid;\r\n border-color: black transparent transparent transparent;\r\n} */\r\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\node_modules\\w-component-vue\\src\\components\\WSlider.vue"],names:[],mappings:";AA6qBA;IACA,mBAAA;AACA;AACA;IACA,kHAAA;AACA;AACA;IACA,kBAAA;IACA,oBAAA;AACA;AACA;;IAEA,kBAAA;IACA,UAAA;IACA,WAAA;IACA,mBAAA;AACA;AACA;IACA,kBAAA;AACA;AACA;IACA,mBAAA;IACA,WAAA;IACA,wBAAA;AACA;AACA;;;;;;;;;GASA",file:"WSlider.vue",sourcesContent:["<template>\r\n <div\r\n :style=\"`user-select:none;`\"\r\n :changeParam=\"changeParam\"\r\n v-domresize\r\n @domresize=\"resizePanel\"\r\n >\r\n\r\n <div\r\n :style=\"`position:relative; width:100%; height:${sliderSize}px;`\"\r\n >\r\n\r\n <div :style=\"`position:absolute; top:${sliderSize/2-progHeight/2}px; left:${sliderSize/2}px; width:${progWidth}px;`\">\r\n\r\n <div\r\n ref=\"divPanel\"\r\n :style=\"`position:relative; width:${progWidth}px;`\"\r\n _click=\"clickProg\"\r\n >\r\n\r\n <div :style=\"`${useProgBorderRadius} overflow:hidden; width:${progWidth}px; height:${progHeight}px;`\">\r\n <div :style=\"`background:${useProgBackgroundColor}; height:${progHeight}px;`\">\r\n <div :style=\"`background:${useProgColor}; width:${(rt)*progWidth}px; height:${progHeight}px;`\"></div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n :style=\"`position:absolute; left:${(rt)*progWidth-widthCir/2}px; top:${progHeight/2-heightCir/2}px; z-index:1; ${editable?'cursor:pointer;':''}`\"\r\n >\r\n\r\n <div\r\n ref=\"divTrigger\"\r\n class=\"ts bs\"\r\n :style=\"`width:${widthCir}px; height:${heightCir}px; border-radius:50%; background:${useSliderBackgroundColor}; outline:none;`\"\r\n ></div>\r\n\r\n </div>\r\n\r\n <div\r\n ref=\"divBar\"\r\n :style=\"`position:absolute; left:${(r)*progWidth-widthCir/2}px; top:${progHeight/2-heightCir/2}px; z-index:2; ${editable?'cursor:pointer;':''}`\"\r\n >\r\n\r\n <div\r\n :style=\"`width:${widthCir}px; height:${heightCir}px; border-radius:50%; opacity:0; outline:none;`\"\r\n @mouseenter=\"hoverTrans=true\"\r\n @mouseleave=\"hoverTrans=false\"\r\n ></div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n \x3c!-- 不能給予position因會被popupjs洗掉, 但可給z-index, 且popupjs會改用transform:translate定位 --\x3e\r\n \x3c!-- 若使用minWidth, 會使popupjs重算給予minWidth用以自動撐開彈窗寬度失效, 若於其內slot外添加div給予minWidth, 亦會使popupjs給予minWidth機制失效, 待研究 --\x3e\r\n <div\r\n ref=\"divContent\"\r\n class=\"WPopperFix\"\r\n :style=\"`z-index:${cmpZIndex};`\"\r\n v-show=\"effecting\"\r\n v-domresize\r\n @domresize=\"updatePopper\"\r\n >\r\n \x3c!-- 不使用v-if來重產dom, 因開啟arrow會有顯示後來不及定位問題 --\x3e\r\n <div\r\n :style=\"`padding:2px 5px; font-size:0.8rem; ${useTooltipTextFontSize} color:${useTooltipTextColor}; background:${useTooltipBackgroundColor}; ${useTooltipBorderRadius}`\"\r\n >\r\n {{valueDig}}\r\n <div class=\"arrow\" data-popper-arrow></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport get from 'lodash-es/get.js'\r\nimport isNumber from 'lodash-es/isNumber.js'\r\nimport dig from 'wsemi/src/dig.mjs'\r\nimport round from 'wsemi/src/round.mjs'\r\nimport cdbl from 'wsemi/src/cdbl.mjs'\r\nimport replace from 'wsemi/src/replace.mjs'\r\nimport domDragBarAndScroll from 'wsemi/src/domDragBarAndScroll.mjs'\r\nimport domResize from '../js/domResize.mjs'\r\nimport convertColor from '../js/convertColor.mjs'\r\nimport { createPopper } from '@popperjs/core/lib/popper-lite.js' //不用安裝@popperjs/core, 因wsemi安裝tippy.js內有依賴@popperjs/core\r\nimport flip from '@popperjs/core/lib/modifiers/flip.js'\r\nimport offset from '@popperjs/core/lib/modifiers/offset.js'\r\nimport arrow from '@popperjs/core/lib/modifiers/arrow.js'\r\nimport hide from '@popperjs/core/lib/modifiers/hide.js'\r\n//import preventOverflow from '@popperjs/core/lib/modifiers/preventOverflow.js'\r\n//import computeStyles from '@popperjs/core/lib/modifiers/computeStyles'\r\n\r\n\r\n/**\r\n * @vue-prop {Number} [value=0] 輸入值數字,介於valueMin與valueMax之間,預設0\r\n * @vue-prop {Number} [valueMin=0] 輸入最小值數字,預設0\r\n * @vue-prop {Number} [valueMax=100] 輸入最大值數字,預設100\r\n * @vue-prop {Number} [valueStep=1] 輸入間隔數字,預設1\r\n * @vue-prop {Number} [valueDecimal=0] 輸入值取小數位數字,用於可拖選值具有小數時,預設0\r\n * @vue-prop {Number} [progBorderRadius=5] 輸入值域條框圓角度數字,單位為px,預設5\r\n * @vue-prop {Number} [progHeight=4] 輸入值域條高度數字,單位為px,預設4\r\n * @vue-prop {String} [progColor='#74a4d9'] 輸入值域條顏色字串,預設'#74a4d9'\r\n * @vue-prop {String} [progColorDisabled='#c5c5c5'] 輸入不可編輯時值域條顏色字串,預設'#c5c5c5'\r\n * @vue-prop {String} [progBackgroundColor='#eee'] 輸入值域條背景顏色字串,預設'#eee'\r\n * @vue-prop {String} [progBackgroundColorDisabled='#f2f2f2'] 輸入不可編輯時值域條背景顏色字串,預設'#f2f2f2'\r\n * @vue-prop {Number} [sliderSize=20] 輸入拖曳球尺寸數字,單位為px,預設20\r\n * @vue-prop {String} [sliderBackgroundColor='blue darken-3'] 輸入拖曳球背景顏色字串,預設'blue darken-3'\r\n * @vue-prop {String} [sliderBackgroundColorHover='blue darken-2'] 輸入滑鼠移入時拖曳球背景顏色字串,預設'blue darken-2'\r\n * @vue-prop {String} [sliderBackgroundColorDisabled='#aaa'] 輸入不可編輯時拖曳球背景顏色字串,預設'#aaa'\r\n * @vue-prop {Number} [cmpZIndex=3000] 輸入提示窗使用z-index數字,預設3000\r\n * @vue-prop {Number} [tooltipPlacementDist=5] 輸入提示窗距離觸發元素距離數字,單位為px,預設5\r\n * @vue-prop {Number} [tooltipBorderRadius=5] 輸入提示窗框圓角度數字,單位為px,預設4\r\n * @vue-prop {String} [tooltipTextFontSize='0.85rem'] 輸入提示窗框文字字型大小字串,預設'0.85rem'\r\n * @vue-prop {String} [tooltipTextColor='white'] 輸入提示窗框文字顏色字串,預設'white'\r\n * @vue-prop {String} [tooltipBackgroundColor='#666'] 輸入值域條背景顏色字串,預設'#666'\r\n * @vue-prop {Boolean} [editable=true] 輸入是否為編輯模式布林值,預設true\r\n */\r\nexport default {\r\n directives: {\r\n domresize: domResize(),\r\n },\r\n components: {\r\n },\r\n props: {\r\n value: {\r\n type: Number,\r\n default: 0,\r\n },\r\n valueMin: {\r\n type: Number,\r\n default: 0,\r\n },\r\n valueMax: {\r\n type: Number,\r\n default: 100,\r\n },\r\n valueStep: {\r\n type: Number,\r\n default: 1,\r\n },\r\n valueDecimal: {\r\n type: Number,\r\n default: 0,\r\n },\r\n progBorderRadius: {\r\n type: Number,\r\n default: 5,\r\n },\r\n progHeight: {\r\n type: Number,\r\n default: 4,\r\n },\r\n progColor: {\r\n type: String,\r\n default: '#74a4d9',\r\n },\r\n progColorDisabled: {\r\n type: String,\r\n default: '#c5c5c5',\r\n },\r\n progBackgroundColor: {\r\n type: String,\r\n default: '#eee',\r\n },\r\n progBackgroundColorDisabled: {\r\n type: String,\r\n default: '#f2f2f2',\r\n },\r\n sliderSize: {\r\n type: Number,\r\n default: 20,\r\n },\r\n sliderBackgroundColor: {\r\n type: String,\r\n default: 'blue darken-3',\r\n },\r\n sliderBackgroundColorHover: {\r\n type: String,\r\n default: 'blue darken-2',\r\n },\r\n sliderBackgroundColorDisabled: {\r\n type: String,\r\n default: '#aaa',\r\n },\r\n cmpZIndex: {\r\n type: Number,\r\n default: 3000,\r\n },\r\n tooltipPlacementDist: {\r\n type: Number,\r\n default: 5,\r\n },\r\n tooltipBorderRadius: {\r\n type: Number,\r\n default: 4,\r\n },\r\n tooltipTextFontSize: {\r\n type: String,\r\n default: '0.85rem',\r\n },\r\n tooltipTextColor: {\r\n type: String,\r\n default: 'white',\r\n },\r\n tooltipBackgroundColor: {\r\n type: String,\r\n default: '#666', //rgba(60,60,60,0.75) //因arrow是通過div與旋轉成菱形來繪製, 因此可支援外部指定背景色, 但若有透明就會出現arrow的菱形問題\r\n },\r\n editable: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n },\r\n data: function() {\r\n return {\r\n\r\n panelWidth: 0,\r\n panelHeight: 0,\r\n\r\n das: null,\r\n\r\n hoverTrans: false,\r\n dragTrans: false,\r\n\r\n popperInstance: null,\r\n popperShow: false,\r\n\r\n r: null,\r\n rt: null,\r\n\r\n }\r\n },\r\n mounted: function() {\r\n //console.log('mounted')\r\n\r\n let vo = this\r\n\r\n //das\r\n let das = domDragBarAndScroll(vo.$refs.divPanel, vo.$refs.divBar, { useTouchDragForPanel: false })\r\n das.on('dragBar', vo.dragBar)\r\n das.on('pressBar', vo.pressBar)\r\n das.on('freeBar', vo.freeBar)\r\n\r\n //save\r\n vo.das = das\r\n\r\n },\r\n beforeDestroy: function() {\r\n //console.log('beforeDestroy')\r\n\r\n let vo = this\r\n\r\n //clear\r\n if (vo.das) {\r\n vo.das.clear()\r\n }\r\n\r\n },\r\n computed: {\r\n\r\n changeParam: function() {\r\n // console.log('computed changeParam')\r\n\r\n let vo = this\r\n\r\n //ratio\r\n let r = 0\r\n try {\r\n r = (vo.value - vo.valueMin) / (vo.valueMax - vo.valueMin)\r\n }\r\n catch (err) {}\r\n\r\n //limitRatio\r\n r = vo.limitRatio(r)\r\n\r\n //rt\r\n let rt = vo.tickRatio(r)\r\n\r\n //save\r\n vo.r = r\r\n vo.rt = rt\r\n\r\n return ''\r\n },\r\n\r\n heightCir: function() {\r\n let vo = this\r\n return vo.sliderSize\r\n },\r\n\r\n widthCir: function() {\r\n let vo = this\r\n return vo.heightCir\r\n },\r\n\r\n effecting: function() {\r\n //console.log('computed effecting')\r\n\r\n let vo = this\r\n\r\n //check\r\n if (!vo.editable) {\r\n return\r\n }\r\n\r\n //b\r\n let b = vo.hoverTrans || vo.dragTrans\r\n\r\n if (b) {\r\n\r\n //showPopper\r\n vo.showPopper()\r\n\r\n }\r\n else {\r\n\r\n //hidePopper\r\n vo.hidePopper()\r\n\r\n //同步\r\n vo.r = vo.rt\r\n\r\n }\r\n\r\n return b\r\n },\r\n\r\n progWidth: function() {\r\n let vo = this\r\n return vo.panelWidth - vo.sliderSize\r\n },\r\n\r\n useProgBorderRadius: function() {\r\n let vo = this\r\n return `border-radius:${vo.progBorderRadius}px;`\r\n },\r\n\r\n effProgColor: function() {\r\n let vo = this\r\n return convertColor(vo.progColor)\r\n },\r\n\r\n effProgColorDisabled: function() {\r\n let vo = this\r\n return convertColor(vo.progColorDisabled)\r\n },\r\n\r\n useProgColor: function() {\r\n let vo = this\r\n if (!vo.editable) {\r\n return vo.effProgColorDisabled\r\n }\r\n return vo.effProgColor\r\n },\r\n\r\n effProgBackgroundColor: function() {\r\n let vo = this\r\n return convertColor(vo.progBackgroundColor)\r\n },\r\n\r\n effProgBackgroundColorDisabled: function() {\r\n let vo = this\r\n return convertColor(vo.progBackgroundColorDisabled)\r\n },\r\n\r\n useProgBackgroundColor: function() {\r\n let vo = this\r\n if (!vo.editable) {\r\n return vo.effProgBackgroundColorDisabled\r\n }\r\n return vo.effProgBackgroundColor\r\n },\r\n\r\n effSliderBackgroundColor: function() {\r\n let vo = this\r\n return convertColor(vo.sliderBackgroundColor)\r\n },\r\n\r\n effSliderBackgroundColorHover: function() {\r\n let vo = this\r\n return convertColor(vo.sliderBackgroundColorHover)\r\n },\r\n\r\n effSliderBackgroundColorDisabled: function() {\r\n let vo = this\r\n return convertColor(vo.sliderBackgroundColorDisabled)\r\n },\r\n\r\n useSliderBackgroundColor: function() {\r\n let vo = this\r\n if (!vo.editable) {\r\n return vo.effSliderBackgroundColorDisabled\r\n }\r\n if (vo.effecting) {\r\n return vo.effSliderBackgroundColorHover\r\n }\r\n return vo.effSliderBackgroundColor\r\n },\r\n\r\n useTooltipBorderRadius: function() {\r\n //console.log('computed useTooltipBorderRadius')\r\n\r\n let vo = this\r\n\r\n if (isNumber(vo.tooltipBorderRadius)) {\r\n return `border-radius:${vo.tooltipBorderRadius}px;`\r\n }\r\n return ''\r\n },\r\n\r\n useTooltipTextFontSize: function() {\r\n let vo = this\r\n let s = vo.tooltipTextFontSize\r\n s = replace(s, ';', '')\r\n return `font-size:${s};`\r\n },\r\n\r\n useTooltipTextColor: function() {\r\n //console.log('computed useTooltipTextColor')\r\n\r\n let vo = this\r\n\r\n return convertColor(vo.tooltipTextColor)\r\n },\r\n\r\n useTooltipBackgroundColor: function() {\r\n //console.log('computed useTooltipBackgroundColor')\r\n\r\n let vo = this\r\n\r\n return convertColor(vo.tooltipBackgroundColor)\r\n },\r\n\r\n valueDig: function() {\r\n // console.log('computed valueDig')\r\n\r\n let vo = this\r\n\r\n //t\r\n let t = (vo.rt) * (vo.valueMax - vo.valueMin) + vo.valueMin\r\n\r\n //dig\r\n let c = dig(t, vo.valueDecimal)\r\n\r\n return c\r\n },\r\n\r\n },\r\n methods: {\r\n\r\n resizePanel: function(msg) {\r\n //console.log('methods resizePanel', msg)\r\n\r\n let vo = this\r\n\r\n //update\r\n vo.panelWidth = msg.snew.offsetWidth\r\n vo.panelHeight = msg.snew.offsetHeight\r\n\r\n // //emit\r\n // vo.$emit('resize', msg)\r\n\r\n },\r\n\r\n limitRatio: function(r) {\r\n // console.log('methods limitRatio', r)\r\n\r\n // let vo = this\r\n\r\n r = Math.min(r, 1)\r\n r = Math.max(r, 0)\r\n\r\n return r\r\n },\r\n\r\n tickRatio: function(r) {\r\n // console.log('methods tickRatio', r)\r\n\r\n let vo = this\r\n\r\n //rt\r\n let rt = 0\r\n try {\r\n\r\n //rtk\r\n let rng = vo.valueMax - vo.valueMin\r\n let rtk = vo.valueStep / rng\r\n\r\n //round\r\n let i = round(r / rtk)\r\n\r\n //rt\r\n rt = i * rtk\r\n // console.log('r', r, 'rt', rt)\r\n\r\n }\r\n catch (err) { }\r\n\r\n\r\n return rt\r\n },\r\n\r\n dragBar: function(msg) {\r\n // console.log('methods dragBar', msg)\r\n\r\n let vo = this\r\n\r\n //check\r\n if (!vo.editable) {\r\n return\r\n }\r\n\r\n //r\r\n let bd = vo.$el.getBoundingClientRect()\r\n let x = msg.clientX - vo.sliderSize / 2\r\n let w = vo.progWidth //vo.$el.offsetWidth\r\n let r = 0\r\n if (w > 0) {\r\n r = (x - bd.left) / w //clientX需扣除元件的left位置\r\n }\r\n\r\n //limitRatio\r\n r = vo.limitRatio(r)\r\n // console.log(vo.r, 'r', r)\r\n\r\n //rt\r\n let rt = vo.tickRatio(r)\r\n\r\n //save\r\n vo.r = r\r\n vo.rt = rt\r\n\r\n //v\r\n let v = cdbl(vo.valueDig)\r\n\r\n //updatePopper\r\n vo.updatePopper()\r\n\r\n //emit\r\n vo.$emit('input', v)\r\n\r\n },\r\n\r\n pressBar: function() {\r\n let vo = this\r\n vo.dragTrans = true\r\n },\r\n\r\n freeBar: function() {\r\n let vo = this\r\n vo.dragTrans = false\r\n },\r\n\r\n showPopper: function(from) {\r\n // console.log('methods showPopper', from)\r\n\r\n let vo = this\r\n\r\n //check\r\n if (!vo.editable) {\r\n return\r\n }\r\n\r\n //divTrigger\r\n let divTrigger = get(vo, '$refs.divTrigger', null)\r\n if (divTrigger === null) {\r\n return //console.log('無法找到點擊區元素')\r\n }\r\n\r\n //divContent\r\n let divContent = get(vo, '$refs.divContent', null)\r\n\r\n //check\r\n if (divContent === null) {\r\n return //console.log('無法找到顯示元素')\r\n }\r\n\r\n //@popperjs/core 2.x\r\n let opt = {\r\n strategy: 'fixed', //盡量使用'fixed'而不用'absolute', 否則位於多層dialog或多層drawer內popup顯示會異常\r\n placement: 'top', //預設top, 因arrow不好給故僅提供top\r\n modifiers: [\r\n // preventOverflow,\r\n // computeStyles,\r\n // {\r\n // name: 'computeStyles',\r\n // options: {\r\n // gpuAcceleration: false, //預設true, 可關閉GPU加速\r\n // },\r\n // },\r\n arrow,\r\n {\r\n name: 'arrow',\r\n options: {\r\n padding: 5,\r\n },\r\n },\r\n flip,\r\n {\r\n name: 'flip',\r\n options: {\r\n fallbackPlacements: ['top', 'top-start', 'top-end', 'bottom', 'bottom-start', 'bottom-end'],\r\n },\r\n },\r\n offset,\r\n {\r\n name: 'offset',\r\n options: {\r\n // offset: [0, vo.tooltipPlacementDist], //[Skidding, Distance]\r\n // offset: [0, 5], //因popperjs會自動調位置, 故得通過callback函數處理指定位置時的偏移量\r\n offset: ({ placement, reference, popper }) => {\r\n // console.log('offset', placement, reference, popper, vo.tooltipPlacementDist)\r\n // if (placement === 'bottom-start' || placement === 'bottom' || placement === 'bottom-end') {\r\n // return [0, vo.tooltipPlacementDist]\r\n // }\r\n // else if (placement === 'top-start' || placement === 'top' || placement === 'top-end') {\r\n // return [0, vo.tooltipPlacementDist]\r\n // }\r\n // else if (placement === 'left-start' || placement === 'left' || placement === 'left-end') {\r\n // return [0, vo.tooltipPlacementDist]\r\n // }\r\n // else if (placement === 'right-start' || placement === 'right' || placement === 'right-end') {\r\n // return [0, vo.tooltipPlacementDist]\r\n // }\r\n // else {\r\n // return []\r\n // }\r\n return [0, vo.tooltipPlacementDist] //[Skidding, Distance]\r\n },\r\n },\r\n },\r\n hide,\r\n ],\r\n }\r\n vo.popperInstance = createPopper(divTrigger, divContent, opt)\r\n // console.log('popperInstance', vo.popperInstance)\r\n\r\n },\r\n\r\n updatePopper: function(msg) {\r\n //console.log('methods updatePopper', msg)\r\n\r\n let vo = this\r\n\r\n //check\r\n if (!vo.editable) {\r\n return\r\n }\r\n\r\n //update\r\n if (vo.popperInstance) {\r\n vo.popperInstance.update()\r\n }\r\n\r\n // //emit\r\n // vo.$emit('resize', msg)\r\n\r\n },\r\n\r\n hidePopper: function(from) {\r\n // console.log('methods hidePopper', from, this.mmkey)\r\n\r\n let vo = this\r\n\r\n //check\r\n if (vo.popperInstance) {\r\n\r\n //destroy\r\n vo.popperInstance.destroy()\r\n vo.popperInstance = null\r\n\r\n }\r\n\r\n },\r\n\r\n },\r\n}\r\n<\/script>\r\n\r\n<style scoped>\r\n.ts {\r\n transition:all 0.3s;\r\n}\r\n.bs {\r\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\r\n}\r\n.WPopperFix[data-popper-reference-hidden] {\r\n visibility: hidden;\r\n pointer-events: none;\r\n}\r\n.arrow,\r\n.arrow::before {\r\n position: absolute;\r\n width: 5px;\r\n height: 5px;\r\n background: inherit;\r\n}\r\n.arrow {\r\n visibility: hidden;\r\n}\r\n.arrow::before {\r\n visibility: visible;\r\n content: '';\r\n transform: rotate(45deg);\r\n}\r\n/* .arrow::after {\r\n content: \"\";\r\n position: absolute;\r\n top: 100%;\r\n left: 50%;\r\n margin-left: -5px;\r\n border-width: 5px;\r\n border-style: solid;\r\n border-color: black transparent transparent transparent;\r\n} */\r\n</style>\r\n"]},media:void 0})},jc,"data-v-062a5ce9",false,void 0,!1,Zr,void 0,void 0)},props:{value:{type:String,default:"#FFFFFF"},size:{type:Number,default:200},borderColor:{type:String,default:"#ddd"},borderColorHover:{type:String,default:"#ccc"},borderColorActive:{type:String,default:"#777"},backgroundColor:{type:String,default:"transparent"},menuBorderRadius:{type:Number,default:4},menuBackgroundColor:{type:String,default:"#fff"},menuBackgroundColorHover:{type:String,default:"#f9f9f9"},menuBackgroundColorActive:{type:String,default:"#f2f2f2"},menuTextColor:{type:String,default:"#444"},menuTextColorHover:{type:String,default:"#222"},menuTextColorActive:{type:String,default:"#000"},menuTextFontSize:{type:String,default:"0.8rem"},inputBorderRadius:{type:Number,default:4},inputBorderColor:{type:String,default:"#ccc"},inputBorderColorHover:{type:String,default:"#b5b5b5"},inputBorderColorActive:{type:String,default:"#aaa"},inputBackgroundColor:{type:String,default:"#fff"},inputBackgroundColorHover:{type:String,default:"#fafafa"},inputBackgroundColorActive:{type:String,default:"#f2f2f2"},inputTextColor:{type:String,default:"#000"},inputTextFontSize:{type:String,default:"0.8rem"},inputTextWidth:{type:Number,default:38},inputTextHeight:{type:Number,default:18},inputLabelWidth:{type:Number,default:12},inputLabelColor:{type:String,default:"#666"},inputLabelFontSize:{type:String,default:"0.8rem"},barProgHeight:{type:Number,default:4},barProgColor:{type:String,default:"#74a4d9"},barProgBackgroundColor:{type:String,default:"#eee"},barSliderSize:{type:Number,default:10},barSliderBackgroundColor:{type:String,default:"#1565C0"},barSliderBackgroundColorHover:{type:String,default:"#1976D2"}},data:function(){return{methods:[{text:"RGBA"},{text:"HSVA"}],methodSelect:{text:"RGBA"},lock:!1,valueTrans:null,r:255,g:255,b:255,h:360,s:1,v:1,a:1,rt:255,gt:255,bt:255,ht:360,st:1,vt:1,at:1}},computed:{changeValue:function(){let n=this;n.valueTrans=Br(n.value);let e=Ul.toRgba(n.valueTrans),t=Ul.toHsva(n.valueTrans);return n.r=e.r,n.rt=e.r,n.g=e.g,n.gt=e.g,n.b=e.b,n.bt=e.b,n.a=e.a,n.at=e.a,n.h=t.h,n.ht=t.h,n.s=t.s,n.st=t.s,n.v=t.v,n.vt=t.v,""},sliderWidth:function(){let n=this,e=n.size-n.inputTextWidth-n.inputLabelWidth-13;return e=Math.max(e,0),e},useBorderColor:function(){return Br(this.borderColor)},useBackgroundColor:function(){return Br(this.backgroundColor)}},methods:{cki255:function(n){if(!Ms(n))return 0;let e=n;return(n=Kt(n))<0?n=0:n>255&&(n=255),n===Kt(e)?e:n},cki360:function(n){if(!Ms(n))return 0;let e=n;return(n=Kt(n))<0?n=0:n>360&&(n=360),n===Kt(e)?e:n},ckd1:function(n){if(!Td(n))return 0;let e=n;return(n=Xt(n))<0?n=0:n>1&&(n=1),n===Xt(e)?e:n},updateColorCore:function(){let n=this,e=!1,t=!1;{let t=Kt(n.rt);n.r!==t&&(n.r=t,e=!0)}{let t=Kt(n.gt);n.g!==t&&(n.g=t,e=!0)}{let t=Kt(n.bt);n.b!==t&&(n.b=t,e=!0)}{let t=Xt(n.at);n.a!==t&&(n.a=t,e=!0)}{let e=Kt(n.ht);n.h!==e&&(n.h=e,t=!0)}{let e=Xt(n.st);n.s!==e&&(n.s=e,t=!0)}{let e=Xt(n.vt);n.v!==e&&(n.v=e,t=!0)}let o=null;e?o={r:n.r,g:n.g,b:n.b,a:n.a}:t&&(o={h:n.h,s:n.s,v:n.v,a:n.a}),Tr(o)&&(o=Ul.toRgbaString(o),n.valueTrans=o,n.$emit("input",o))},updateColor:function(n,e,t){let o=this;setTimeout(()=>{o.updateColorCore()},1)}}};var Yc=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:"display:inline-block;",attrs:{changeValue:n.changeValue}},[t("div",{style:"padding-left:10px; margin-bottom:-1px;"},[t("WGroupChipRadio",{attrs:{items:n.methods,paddingStyle:{v:1,h:6},group:!0,groupBorderRadiusStyle:{top:!0},groupShift:0,borderRadius:n.menuBorderRadius,borderColor:n.borderColor,borderColorHover:n.borderColorHover,borderColorActive:n.borderColorActive,backgroundColor:n.menuBackgroundColor,backgroundColorHover:n.menuBackgroundColorHover,backgroundColorActive:n.menuBackgroundColorActive,textColor:n.menuTextColor,textColorHover:n.menuTextColorHover,textColorActive:n.menuTextColorActive,textFontSize:n.menuTextFontSize,marginStyle:{},shadowActive:!1},model:{value:n.methodSelect,callback:function(e){n.methodSelect=e},expression:"methodSelect"}})],1),n._v(" "),t("div",{style:"padding:10px; border:1px solid "+n.useBorderColor+"; background:"+n.useBackgroundColor+";"},[t("div",{directives:[{name:"show",rawName:"v-show",value:"RGBA"===n.methodSelect.text,expression:"methodSelect.text==='RGBA'"}]},[t("WPanelLabelItem",{attrs:{label:"R",labelFontSize:n.inputLabelFontSize,labelWidth:n.inputLabelWidth,labelColor:n.inputLabelColor},scopedSlots:n._u([{key:"item",fn:function(){return[t("div",{staticStyle:{display:"flex","align-items":"center"}},[t("WText",{style:"width:"+n.inputTextWidth+"px;",attrs:{funVerify:n.cki255,shadow:!1,bottomLineBorderColor:"transparent",bottomLineBorderColorHover:"transparent",bottomLineBorderColorFocus:"transparent",paddingStyle:{v:0,h:5},iconShiftOuter:-10,borderRadius:n.inputBorderRadius,borderColor:n.inputBorderColor,borderColorHover:n.inputBorderColorHover,borderColorFocus:n.inputBorderColorActive,backgroundColor:n.inputBackgroundColor,backgroundColorHover:n.inputBackgroundColorHover,backgroundColorFocus:n.inputBackgroundColorActive,textColor:n.inputTextColor,textFontSize:n.inputTextFontSize,height:n.inputTextHeight},on:{input:function(e,t){n.updateColor(e,t,"r")}},model:{value:n.rt,callback:function(e){n.rt=e},expression:"rt"}}),n._v(" "),t("div",{staticStyle:{"padding-left":"5px"}}),n._v(" "),t("WSlider",{style:"width:"+n.sliderWidth+"px;",attrs:{progHeight:n.barProgHeight,progColor:n.barProgColor,progBackgroundColor:n.barProgBackgroundColor,sliderSize:n.barSliderSize,sliderBackgroundColor:n.barSliderBackgroundColor,sliderBackgroundColorHover:n.barSliderBackgroundColorHover,valueMin:0,valueMax:255,valueStep:1,valueDecimal:0,value:n.r},on:{input:function(e){n.rt=e,n.updateColor(e,"","rs")}}})],1)]},proxy:!0}])}),n._v(" "),t("div",{staticStyle:{height:"10px"}}),n._v(" "),t("WPanelLabelItem",{attrs:{label:"G",labelFontSize:n.inputLabelFontSize,labelWidth:n.inputLabelWidth,labelColor:n.inputLabelColor},scopedSlots:n._u([{key:"item",fn:function(){return[t("div",{staticStyle:{display:"flex","align-items":"center"}},[t("WText",{style:"width:"+n.inputTextWidth+"px;",attrs:{funVerify:n.cki255,shadow:!1,bottomLineBorderColor:"transparent",bottomLineBorderColorHover:"transparent",bottomLineBorderColorFocus:"transparent",paddingStyle:{v:0,h:5},iconShiftOuter:-10,borderRadius:n.inputBorderRadius,borderColor:n.inputBorderColor,borderColorHover:n.inputBorderColorHover,borderColorFocus:n.inputBorderColorActive,backgroundColor:n.inputBackgroundColor,backgroundColorHover:n.inputBackgroundColorHover,backgroundColorFocus:n.inputBackgroundColorActive,textColor:n.inputTextColor,textFontSize:n.inputTextFontSize,height:n.inputTextHeight},on:{input:function(e,t){n.updateColor(e,t,"g")}},model:{value:n.gt,callback:function(e){n.gt=e},expression:"gt"}}),n._v(" "),t("div",{staticStyle:{"padding-left":"5px"}}),n._v(" "),t("WSlider",{style:"width:"+n.sliderWidth+"px;",attrs:{progHeight:n.barProgHeight,progColor:n.barProgColor,progBackgroundColor:n.barProgBackgroundColor,sliderSize:n.barSliderSize,sliderBackgroundColor:n.barSliderBackgroundColor,sliderBackgroundColorHover:n.barSliderBackgroundColorHover,valueMin:0,valueMax:255,valueStep:1,valueDecimal:0,value:n.g},on:{input:function(e){n.gt=e,n.updateColor(e,"","gs")}}})],1)]},proxy:!0}])}),n._v(" "),t("div",{staticStyle:{height:"10px"}}),n._v(" "),t("WPanelLabelItem",{attrs:{label:"B",labelFontSize:n.inputLabelFontSize,labelWidth:n.inputLabelWidth,labelColor:n.inputLabelColor},scopedSlots:n._u([{key:"item",fn:function(){return[t("div",{staticStyle:{display:"flex","align-items":"center"}},[t("WText",{style:"width:"+n.inputTextWidth+"px;",attrs:{funVerify:n.cki255,shadow:!1,bottomLineBorderColor:"transparent",bottomLineBorderColorHover:"transparent",bottomLineBorderColorFocus:"transparent",paddingStyle:{v:0,h:5},iconShiftOuter:-10,borderRadius:n.inputBorderRadius,borderColor:n.inputBorderColor,borderColorHover:n.inputBorderColorHover,borderColorFocus:n.inputBorderColorActive,backgroundColor:n.inputBackgroundColor,backgroundColorHover:n.inputBackgroundColorHover,backgroundColorFocus:n.inputBackgroundColorActive,textColor:n.inputTextColor,textFontSize:n.inputTextFontSize,height:n.inputTextHeight},on:{input:function(e,t){n.updateColor(e,t,"b")}},model:{value:n.bt,callback:function(e){n.bt=e},expression:"bt"}}),n._v(" "),t("div",{staticStyle:{"padding-left":"5px"}}),n._v(" "),t("WSlider",{style:"width:"+n.sliderWidth+"px;",attrs:{progHeight:n.barProgHeight,progColor:n.barProgColor,progBackgroundColor:n.barProgBackgroundColor,sliderSize:n.barSliderSize,sliderBackgroundColor:n.barSliderBackgroundColor,sliderBackgroundColorHover:n.barSliderBackgroundColorHover,valueMin:0,valueMax:255,valueStep:1,valueDecimal:0,value:n.b},on:{input:function(e){n.bt=e,n.updateColor(e,"","bs")}}})],1)]},proxy:!0}])}),n._v(" "),t("div",{staticStyle:{height:"10px"}}),n._v(" "),t("WPanelLabelItem",{attrs:{label:"A",labelFontSize:n.inputLabelFontSize,labelWidth:n.inputLabelWidth,labelColor:n.inputLabelColor},scopedSlots:n._u([{key:"item",fn:function(){return[t("div",{staticStyle:{display:"flex","align-items":"center"}},[t("WText",{style:"width:"+n.inputTextWidth+"px;",attrs:{funVerify:n.ckd1,shadow:!1,bottomLineBorderColor:"transparent",bottomLineBorderColorHover:"transparent",bottomLineBorderColorFocus:"transparent",paddingStyle:{v:0,h:5},iconShiftOuter:-10,borderRadius:n.inputBorderRadius,borderColor:n.inputBorderColor,borderColorHover:n.inputBorderColorHover,borderColorFocus:n.inputBorderColorActive,backgroundColor:n.inputBackgroundColor,backgroundColorHover:n.inputBackgroundColorHover,backgroundColorFocus:n.inputBackgroundColorActive,textColor:n.inputTextColor,textFontSize:n.inputTextFontSize,height:n.inputTextHeight},on:{input:function(e,t){n.updateColor(e,t,"a")}},model:{value:n.at,callback:function(e){n.at=e},expression:"at"}}),n._v(" "),t("div",{staticStyle:{"padding-left":"5px"}}),n._v(" "),t("WSlider",{style:"width:"+n.sliderWidth+"px;",attrs:{progHeight:n.barProgHeight,progColor:n.barProgColor,progBackgroundColor:n.barProgBackgroundColor,sliderSize:n.barSliderSize,sliderBackgroundColor:n.barSliderBackgroundColor,sliderBackgroundColorHover:n.barSliderBackgroundColorHover,valueMin:0,valueMax:1,valueStep:.01,valueDecimal:2,value:n.a},on:{input:function(e){n.at=e,n.updateColor(e,"","as")}}})],1)]},proxy:!0}])})],1),n._v(" "),t("div",{directives:[{name:"show",rawName:"v-show",value:"HSVA"===n.methodSelect.text,expression:"methodSelect.text==='HSVA'"}]},[t("WPanelLabelItem",{attrs:{label:"H",labelFontSize:n.inputLabelFontSize,labelWidth:n.inputLabelWidth,labelColor:n.inputLabelColor},scopedSlots:n._u([{key:"item",fn:function(){return[t("div",{staticStyle:{display:"flex","align-items":"center"}},[t("WText",{style:"width:"+n.inputTextWidth+"px;",attrs:{funVerify:n.cki360,shadow:!1,bottomLineBorderColor:"transparent",bottomLineBorderColorHover:"transparent",bottomLineBorderColorFocus:"transparent",paddingStyle:{v:0,h:5},iconShiftOuter:-10,borderRadius:n.inputBorderRadius,borderColor:n.inputBorderColor,borderColorHover:n.inputBorderColorHover,borderColorFocus:n.inputBorderColorActive,backgroundColor:n.inputBackgroundColor,backgroundColorHover:n.inputBackgroundColorHover,backgroundColorFocus:n.inputBackgroundColorActive,textColor:n.inputTextColor,textFontSize:n.inputTextFontSize,height:n.inputTextHeight},on:{input:function(e,t){n.updateColor(e,t,"h")}},model:{value:n.ht,callback:function(e){n.ht=e},expression:"ht"}}),n._v(" "),t("div",{staticStyle:{"padding-left":"5px"}}),n._v(" "),t("WSlider",{style:"width:"+n.sliderWidth+"px;",attrs:{progHeight:n.barProgHeight,progColor:n.barProgColor,progBackgroundColor:n.barProgBackgroundColor,sliderSize:n.barSliderSize,sliderBackgroundColor:n.barSliderBackgroundColor,sliderBackgroundColorHover:n.barSliderBackgroundColorHover,valueMin:0,valueMax:360,valueStep:1,valueDecimal:0,value:n.h},on:{input:function(e){n.ht=e,n.updateColor(e,"","hs")}}})],1)]},proxy:!0}])}),n._v(" "),t("div",{staticStyle:{height:"10px"}}),n._v(" "),t("WPanelLabelItem",{attrs:{label:"S",labelFontSize:n.inputLabelFontSize,labelWidth:n.inputLabelWidth,labelColor:n.inputLabelColor},scopedSlots:n._u([{key:"item",fn:function(){return[t("div",{staticStyle:{display:"flex","align-items":"center"}},[t("WText",{style:"width:"+n.inputTextWidth+"px;",attrs:{funVerify:n.ckd1,shadow:!1,bottomLineBorderColor:"transparent",bottomLineBorderColorHover:"transparent",bottomLineBorderColorFocus:"transparent",paddingStyle:{v:0,h:5},iconShiftOuter:-10,borderRadius:n.inputBorderRadius,borderColor:n.inputBorderColor,borderColorHover:n.inputBorderColorHover,borderColorFocus:n.inputBorderColorActive,backgroundColor:n.inputBackgroundColor,backgroundColorHover:n.inputBackgroundColorHover,backgroundColorFocus:n.inputBackgroundColorActive,textColor:n.inputTextColor,textFontSize:n.inputTextFontSize,height:n.inputTextHeight},on:{input:function(e,t){n.updateColor(e,t,"s")}},model:{value:n.st,callback:function(e){n.st=e},expression:"st"}}),n._v(" "),t("div",{staticStyle:{"padding-left":"5px"}}),n._v(" "),t("WSlider",{style:"width:"+n.sliderWidth+"px;",attrs:{progHeight:n.barProgHeight,progColor:n.barProgColor,progBackgroundColor:n.barProgBackgroundColor,sliderSize:n.barSliderSize,sliderBackgroundColor:n.barSliderBackgroundColor,sliderBackgroundColorHover:n.barSliderBackgroundColorHover,valueMin:0,valueMax:1,valueStep:.01,valueDecimal:2,value:n.s},on:{input:function(e){n.st=e,n.updateColor(e,"","ss")}}})],1)]},proxy:!0}])}),n._v(" "),t("div",{staticStyle:{height:"10px"}}),n._v(" "),t("WPanelLabelItem",{attrs:{label:"V",labelFontSize:n.inputLabelFontSize,labelWidth:n.inputLabelWidth,labelColor:n.inputLabelColor},scopedSlots:n._u([{key:"item",fn:function(){return[t("div",{staticStyle:{display:"flex","align-items":"center"}},[t("WText",{style:"width:"+n.inputTextWidth+"px;",attrs:{funVerify:n.ckd1,shadow:!1,bottomLineBorderColor:"transparent",bottomLineBorderColorHover:"transparent",bottomLineBorderColorFocus:"transparent",paddingStyle:{v:0,h:5},iconShiftOuter:-10,borderRadius:n.inputBorderRadius,borderColor:n.inputBorderColor,borderColorHover:n.inputBorderColorHover,borderColorFocus:n.inputBorderColorActive,backgroundColor:n.inputBackgroundColor,backgroundColorHover:n.inputBackgroundColorHover,backgroundColorFocus:n.inputBackgroundColorActive,textColor:n.inputTextColor,textFontSize:n.inputTextFontSize,height:n.inputTextHeight},on:{input:function(e,t){n.updateColor(e,t,"v")}},model:{value:n.vt,callback:function(e){n.vt=e},expression:"vt"}}),n._v(" "),t("div",{staticStyle:{"padding-left":"5px"}}),n._v(" "),t("WSlider",{style:"width:"+n.sliderWidth+"px;",attrs:{progHeight:n.barProgHeight,progColor:n.barProgColor,progBackgroundColor:n.barProgBackgroundColor,sliderSize:n.barSliderSize,sliderBackgroundColor:n.barSliderBackgroundColor,sliderBackgroundColorHover:n.barSliderBackgroundColorHover,valueMin:0,valueMax:1,valueStep:.01,valueDecimal:2,value:n.v},on:{input:function(e){n.vt=e,n.updateColor(e,"","bs")}}})],1)]},proxy:!0}])}),n._v(" "),t("div",{staticStyle:{height:"10px"}}),n._v(" "),t("WPanelLabelItem",{attrs:{label:"A",labelFontSize:n.inputLabelFontSize,labelWidth:n.inputLabelWidth,labelColor:n.inputLabelColor},scopedSlots:n._u([{key:"item",fn:function(){return[t("div",{staticStyle:{display:"flex","align-items":"center"}},[t("WText",{style:"width:"+n.inputTextWidth+"px;",attrs:{funVerify:n.ckd1,shadow:!1,bottomLineBorderColor:"transparent",bottomLineBorderColorHover:"transparent",bottomLineBorderColorFocus:"transparent",paddingStyle:{v:0,h:5},iconShiftOuter:-10,borderRadius:n.inputBorderRadius,borderColor:n.inputBorderColor,borderColorHover:n.inputBorderColorHover,borderColorFocus:n.inputBorderColorActive,backgroundColor:n.inputBackgroundColor,backgroundColorHover:n.inputBackgroundColorHover,backgroundColorFocus:n.inputBackgroundColorActive,textColor:n.inputTextColor,textFontSize:n.inputTextFontSize,height:n.inputTextHeight},on:{input:function(e,t){n.updateColor(e,t,"a")}},model:{value:n.at,callback:function(e){n.at=e},expression:"at"}}),n._v(" "),t("div",{staticStyle:{"padding-left":"5px"}}),n._v(" "),t("WSlider",{style:"width:"+n.sliderWidth+"px;",attrs:{progHeight:n.barProgHeight,progColor:n.barProgColor,progBackgroundColor:n.barProgBackgroundColor,sliderSize:n.barSliderSize,sliderBackgroundColor:n.barSliderBackgroundColor,sliderBackgroundColorHover:n.barSliderBackgroundColorHover,valueMin:0,valueMax:1,valueStep:.01,valueDecimal:2,value:n.a},on:{input:function(e){n.at=e,n.updateColor(e,"","as")}}})],1)]},proxy:!0}])})],1)])])};Yc._withStripped=!0;const Uc=Xr({render:Yc,staticRenderFns:[]},function(n){n&&n("data-v-05ab930f_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WColorSelectInput.vue"},media:void 0})},Vc,"data-v-05ab930f",false,void 0,!1,Zr,void 0,void 0);const Xc={directives:{domresize:Vo()},components:{WPopup:Ps,WColorSelectPanel:Pd,WColorSelectInput:Uc,WButtonChip:Md,WIcon:ni},props:{value:{type:String,default:"#FFFFFF"},type:{type:String,default:"HSVA"},size:{type:Number,default:200},space:{type:Number,default:10},colorBlockSize:{type:Number,default:20},colorBlockBorderWidth:{type:Number,default:1},colorBlockBorderColor:{type:String,default:"#ddd"},showColorText:{type:Boolean,default:!0},colorTextColor:{type:String,default:"#000"},colorTextFontSize:{type:String,default:"0.8rem"},panelBackgroundColor:{type:String,default:"#fff"},toolBackgroundColor:{type:String,default:"#f5f5f5"},menuIconLump:{type:String,default:"M12,5.32L18,8.69V15.31L12,18.68L6,15.31V8.69L12,5.32M21,16.5C21,16.88 20.79,17.21 20.47,17.38L12.57,21.82C12.41,21.94 12.21,22 12,22C11.79,22 11.59,21.94 11.43,21.82L3.53,17.38C3.21,17.21 3,16.88 3,16.5V7.5C3,7.12 3.21,6.79 3.53,6.62L11.43,2.18C11.59,2.06 11.79,2 12,2C12.21,2 12.41,2.06 12.57,2.18L20.47,6.62C20.79,6.79 21,7.12 21,7.5V16.5M12,4.15L5,8.09V15.91L12,19.85L19,15.91V8.09L12,4.15Z"},menuIconHsva:{type:String,default:"M19 3V21H15V3H19M14 3V21H10V3H14M9 3V21H5V3H9Z"},menuIconEyeDropper:{type:String,default:"M19.35,11.72L17.22,13.85L15.81,12.43L8.1,20.14L3.5,22L2,20.5L3.86,15.9L11.57,8.19L10.15,6.78L12.28,4.65L19.35,11.72M16.76,3C17.93,1.83 19.83,1.83 21,3C22.17,4.17 22.17,6.07 21,7.24L19.08,9.16L14.84,4.92L16.76,3M5.56,17.03L4.5,19.5L6.97,18.44L14.4,11L13,9.6L5.56,17.03Z"},menuIconColor:{type:String,default:"#aaa"},menuIconColorHover:{type:String,default:"#999"},menuIconColorActive:{type:String,default:"#666"},menuIconSize:{type:Number,default:20},borderColor:{type:String,default:"#ddd"},borderColorHover:{type:String,default:"#ccc"},borderColorActive:{type:String,default:"#777"},menuBorderRadius:{type:Number,default:4},menuTextColor:{type:String,default:"#444"},menuTextColorHover:{type:String,default:"#222"},menuTextColorActive:{type:String,default:"#000"},menuTextFontSize:{type:String,default:"0.8rem"},menuBackgroundColor:{type:String,default:"#fff"},menuBackgroundColorHover:{type:String,default:"#f9f9f9"},menuBackgroundColorActive:{type:String,default:"#f2f2f2"},inputBorderRadius:{type:Number,default:4},inputBorderColor:{type:String,default:"#ccc"},inputBorderColorHover:{type:String,default:"#b5b5b5"},inputBorderColorActive:{type:String,default:"#aaa"},inputBackgroundColor:{type:String,default:"#fff"},inputBackgroundColorHover:{type:String,default:"#fafafa"},inputBackgroundColorActive:{type:String,default:"#f2f2f2"},inputTextColor:{type:String,default:"#000"},inputTextFontSize:{type:String,default:"0.8rem"},inputTextWidth:{type:Number,default:38},inputTextHeight:{type:Number,default:18},inputLabelWidth:{type:Number,default:12},inputLabelColor:{type:String,default:"#666"},inputLabelFontSize:{type:String,default:"0.8rem"},barProgHeight:{type:Number,default:4},barProgColor:{type:String,default:"#74a4d9"},barProgBackgroundColor:{type:String,default:"#eee"},barSliderSize:{type:Number,default:10},barSliderBackgroundColor:{type:String,default:"#1565C0"},barSliderBackgroundColorHover:{type:String,default:"#1976D2"},popupPlacementDist:{type:Number,default:5},btnText:{type:String,default:"Confirm"},btnRippleColor:{type:String,default:"rgba(255,255,255,0.4)"},btnPaddingStyle:{type:Object,default:()=>({v:1,h:5})},btnTextColor:{type:String,default:"#000"},btnTextColorHover:{type:String,default:"#222"},btnTextColorActive:{type:String,default:"#222"},btnTextFontSize:{type:String,default:"0.8rem"},btnBorderRadius:{type:Number,default:4},btnBackgroundColor:{type:String,default:"rgb(241,241,241)"},btnBackgroundColorHover:{type:String,default:"rgb(236,236,236)"},btnBackgroundColorActive:{type:String,default:"rgb(236,236,236)"},btnShadow:{type:Boolean,default:!0},labelContent:{type:String,default:null},cmpZIndex:{type:Number,default:3e3},editable:{type:Boolean,default:!0}},data:function(){return{mdiLoading:"M12,4V2A10,10 0 0,0 2,12H4A8,8 0 0,1 12,4Z",show:!1,typeTrans:"HSVA",loadingEyeDropper:!1,layoutType:"horizontal",layoutShowScrollY:!1,layoutMinHeight:300,layoutMaxHeight:300,selectPanelHeight:0,selectInputHeight:0,valueOri:null,valueNew:null,popperPlacement:null}},watch:{show:function(n){let e=this;n&&(e.popperPlacement=null,e.layoutShowScrollY=!0,e.layoutMaxHeight=e.layoutMinHeight,e.$nextTick(()=>{e.$nextTick(()=>{e.adjustMaxHeight()})}))}},computed:{changeValue:function(){let n=this;return n.valueOri=Br(n.value),n.valueNew=n.valueOri,""},changeType:function(){return this.typeTrans=this.type,""},hasEyeDropper:function(){return Oo(window.EyeDropper)},useColorBlockBorderColor:function(){return Br(this.colorBlockBorderColor)},useColorTextColor:function(){return Br(this.colorTextColor)},usePanelBackgroundColor:function(){return Br(this.panelBackgroundColor)},useToolBackgroundColor:function(){return Br(this.toolBackgroundColor)},useBorderColor:function(){return Br(this.borderColor)},usePanelOverflowAndHeight:function(){let n=this,e=`overflow-y:auto; min-height:${n.layoutMinHeight}px;`;return n.layoutShowScrollY&&(e+=`max-height:${n.layoutMaxHeight}px;`),e}},methods:{resize:function(n){let e=this;if(!e.show)return;let t=an(n,"snew.windowWidth",0)>=2*(e.size+20)+3*e.space;e.layoutType=t?"horizontal":"vertical"},resizeContent:function(n){this.show&&this.adjustMaxHeight()},onPlacementChange:function(n){this.popperPlacement=n,this.adjustMaxHeight()},adjustMaxHeight:function(){let n=this;if(n.show)try{let e=n.$refs.ct;if(!e)return;let t=window.innerHeight,o=n.popperPlacement;if(!o)return;let r,i=function(n){if(!$r(n))return null;try{return n.getBoundingClientRect()}catch(n){}return null}(e),a=e.scrollHeight,s=30;r=o.startsWith("top")?i.bottom-s:t-i.top-s;let l=a>r,d=Math.max(r,n.layoutMinHeight);if(l===n.layoutShowScrollY&&Math.abs(d-n.layoutMaxHeight)<2)return;n.layoutShowScrollY=l,n.layoutMaxHeight=d}catch(n){}},resizeSelectPanel:function(n){if(!this.show)return;let e=an(n,"snew.clientHeight",0);this.selectPanelHeight=e},resizeSelectInput:function(n){if(!this.show)return;let e=an(n,"snew.clientHeight",0);this.selectInputHeight=e},openEyeDropper:function(){let n=this;n.hasEyeDropper&&(n.loadingEyeDropper=!0,(new window.EyeDropper).open().then(e=>{let t=an(e,"sRGBHex","#fff");n.valueNew=t}).catch(n=>{console.log(n)}).finally(()=>{n.loadingEyeDropper=!1}))},clickColor:function(){let n=this;n.editable&&(n.$emit("input",n.valueNew),n.show=!1)}}};var Gc=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("WPopup",{directives:[{name:"domresize",rawName:"v-domresize"}],attrs:{minWidth:null,maxWidth:null,autoFitMinWidth:!1,autoFitMaxWidth:!1,placementDistY:n.popupPlacementDist,editable:n.editable,labelContent:n.labelContent,cmpZIndex:n.cmpZIndex,changeValue:n.changeValue,changeType:n.changeType},on:{domresize:n.resize,"placement-change":n.onPlacementChange},scopedSlots:n._u([{key:"trigger",fn:function(){return[t("div",{},[t("div",{staticStyle:{display:"flex","align-items":"center",cursor:"pointer",outline:"none"},on:{click:n.clickColor}},[t("div",{style:"border:"+n.colorBlockBorderWidth+"px solid "+n.useColorBlockBorderColor+"; width:"+n.colorBlockSize+"px; height:"+n.colorBlockSize+"px; box-sizing:border-box; background:"+n.valueOri+";"}),n._v(" "),n.showColorText?[t("div",{style:"padding-left:5px;"}),n._v(" "),t("div",{style:"font-size:"+n.colorTextFontSize+"; color:"+n.useColorTextColor+";"},[n._v("\n "+n._s(n.valueOri)+"\n ")])]:n._e()],2)])]},proxy:!0},{key:"content",fn:function(){return[t("div",{directives:[{name:"domresize",rawName:"v-domresize"}],ref:"ct",style:"background:"+n.usePanelBackgroundColor+"; "+n.usePanelOverflowAndHeight,on:{domresize:n.resizeContent}},[t("div",{style:"display:flex; padding:"+n.space+"px; border-bottom:1px solid "+n.useBorderColor+"; background:"+n.useToolBackgroundColor+";"},[t("div",{},[t("WIcon",{staticStyle:{cursor:"pointer"},attrs:{icon:n.menuIconHsva,color:"HSVA"===n.typeTrans?n.menuIconColorActive:n.menuIconColor,colorHover:"HSVA"===n.typeTrans?n.menuIconColorActive:n.menuIconColorHover,size:n.menuIconSize},on:{click:function(e){n.typeTrans="HSVA",n.$emit("update:type","HSVA")}}})],1),n._v(" "),t("div",{},[t("WIcon",{staticStyle:{cursor:"pointer"},attrs:{icon:n.menuIconLump,color:"LUMP"===n.typeTrans?n.menuIconColorActive:n.menuIconColor,colorHover:"LUMP"===n.typeTrans?n.menuIconColorActive:n.menuIconColorHover,size:n.menuIconSize},on:{click:function(e){n.typeTrans="LUMP",n.$emit("update:type","LUMP")}}})],1),n._v(" "),n.hasEyeDropper?t("div",{},[t("WIcon",{class:{"icon-spinner":n.loadingEyeDropper},staticStyle:{cursor:"pointer"},attrs:{icon:n.loadingEyeDropper?n.mdiLoading:n.menuIconEyeDropper,color:n.loadingEyeDropper?n.menuIconColor:n.menuIconColorActive,colorHover:n.loadingEyeDropper?n.menuIconColor:n.menuIconColorActive,size:n.menuIconSize},on:{click:n.openEyeDropper}})],1):n._e(),n._v(" "),t("div",{style:"width:100%;"}),n._v(" "),t("div",{ref:"mtb",style:"display:flex; align-items:center;"},[t("div",{style:"display:flex; align-items:center; border:"+n.colorBlockBorderWidth+"px solid "+n.useColorBlockBorderColor+";"},[t("div",{style:"width:"+n.colorBlockSize+"px; min-width:"+n.colorBlockSize+"px; height:"+n.colorBlockSize+"px; background:"+n.valueOri+";"}),n._v(" "),t("div",{style:"width:"+n.colorBlockSize+"px; min-width:"+n.colorBlockSize+"px; height:"+n.colorBlockSize+"px; background:"+n.valueNew+";"})])])]),n._v(" "),t("div",{style:"padding:"+n.space+"px;"},[t("div",{directives:[{name:"domresize",rawName:"v-domresize"}],staticStyle:{display:"flex"},on:{domresize:n.resizeSelectPanel}},[t("WColorSelectPanel",{attrs:{type:n.typeTrans,size:n.size,space:0,backgroundColor:"transparent",menuIconLump:n.menuIconLump,menuIconHsva:n.menuIconHsva,menuIconColor:n.menuIconColor,menuIconColorHover:n.menuIconColorHover,menuIconColorActive:n.menuIconColorActive,menuIconSize:n.menuIconSize},model:{value:n.valueNew,callback:function(e){n.valueNew=e},expression:"valueNew"}})],1),n._v(" "),t("div",{style:"height:"+n.space+"px;"}),n._v(" "),t("div",{directives:[{name:"domresize",rawName:"v-domresize"}],staticStyle:{display:"flex"},on:{domresize:n.resizeSelectInput}},[t("WColorSelectInput",{attrs:{size:Math.max(n.size-22,0),backgroundColor:"transparent",borderColor:n.borderColor,borderColorHover:n.borderColorHover,borderColorActive:n.borderColorActive,menuBorderRadius:n.menuBorderRadius,menuBackgroundColor:n.menuBackgroundColor,menuBackgroundColorHover:n.menuBackgroundColorHover,menuBackgroundColorActive:n.menuBackgroundColorActive,menuTextColor:n.menuTextColor,menuTextColorHover:n.menuTextColorHover,menuTextColorActive:n.menuTextColorActive,menuTextFontSize:n.menuTextFontSize,inputBorderRadius:n.inputBorderRadius,inputBorderColor:n.inputBorderColor,inputBorderColorHover:n.inputBorderColorHover,inputBorderColorActive:n.inputBorderColorActive,inputBackgroundColor:n.inputBackgroundColor,inputBackgroundColorHover:n.inputBackgroundColorHover,inputBackgroundColorActive:n.inputBackgroundColorActive,inputTextColor:n.inputTextColor,inputTextFontSize:n.inputTextFontSize,inputTextWidth:n.inputTextWidth,inputTextHeight:n.inputTextHeight,inputLabelWidth:n.inputLabelWidth,inputLabelColor:n.inputLabelColor,inputLabelFontSize:n.inputLabelFontSize,barProgHeight:n.barProgHeight,barProgColor:n.barProgColor,barProgBackgroundColor:n.barProgBackgroundColor,barSliderSize:n.barSliderSize,barSliderBackgroundColor:n.barSliderBackgroundColor,barSliderBackgroundColorHover:n.barSliderBackgroundColorHover},model:{value:n.valueNew,callback:function(e){n.valueNew=e},expression:"valueNew"}})],1),n._v(" "),t("div",{style:"height:"+n.space+"px;"}),n._v(" "),t("div",{staticStyle:{"text-align":"right"}},[t("WButtonChip",{attrs:{text:n.btnText,rippleColor:n.btnRippleColor,paddingStyle:n.btnPaddingStyle,textColor:n.btnTextColor,textColorHover:n.btnTextColorHover,textColorActive:n.btnTextColorActive,textFontSize:n.btnTextFontSize,borderRadius:n.btnBorderRadius,_borderColor:"btnBorderColor",_borderColorHover:"btnBorderColorHover",_borderColorActive:"btnBorderColorActive",backgroundColor:n.btnBackgroundColor,backgroundColorHover:n.btnBackgroundColorHover,backgroundColorActive:n.btnBackgroundColorActive,shadow:n.btnShadow},on:{click:n.clickColor}})],1)])])]},proxy:!0}]),model:{value:n.show,callback:function(e){n.show=e},expression:"show"}})};Gc._withStripped=!0;const Zc=Xr({render:Gc,staticRenderFns:[]},function(n){n&&n("data-v-4462e481_0",{source:"\n.icon-spinner[data-v-4462e481] {\r\n animation: spin-animation-data-v-4462e481 1.5s infinite;\r\n display: inline-block;\n}\n@keyframes spin-animation-data-v-4462e481 {\n0% {\r\n transform: rotate(0deg);\n}\n100% {\r\n transform: rotate(359deg);\n}\n}\r\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\node_modules\\w-component-vue\\src\\components\\WColorSelect.vue"],names:[],mappings:";AA42BA;IACA,uDAAA;IACA,qBAAA;AACA;AACA;AACA;QACA,uBAAA;AACA;AACA;QACA,yBAAA;AACA;AACA",file:"WColorSelect.vue",sourcesContent:["<template>\r\n <WPopup\r\n :minWidth=\"null\"\r\n :maxWidth=\"null\"\r\n :autoFitMinWidth=\"false\"\r\n :autoFitMaxWidth=\"false\"\r\n :placementDistY=\"popupPlacementDist\"\r\n :editable=\"editable\"\r\n :labelContent=\"labelContent\"\r\n :cmpZIndex=\"cmpZIndex\"\r\n v-model=\"show\"\r\n :changeValue=\"changeValue\"\r\n :changeType=\"changeType\"\r\n v-domresize\r\n @domresize=\"resize\"\r\n @placement-change=\"onPlacementChange\"\r\n >\r\n\r\n <template v-slot:trigger>\r\n\r\n <div style=\"\">\r\n \x3c!-- 盡量不要讓display:flex暴露至外層 --\x3e\r\n <div\r\n style=\"display:flex; align-items:center; cursor:pointer; outline:none;\"\r\n @click=\"clickColor\"\r\n >\r\n\r\n <div :style=\"`border:${colorBlockBorderWidth}px solid ${useColorBlockBorderColor}; width:${colorBlockSize}px; height:${colorBlockSize}px; box-sizing:border-box; background:${valueOri};`\"></div>\r\n\r\n <template v-if=\"showColorText\">\r\n\r\n <div :style=\"`padding-left:5px;`\"></div>\r\n\r\n <div :style=\"`font-size:${colorTextFontSize}; color:${useColorTextColor};`\">\r\n {{valueOri}}\r\n </div>\r\n\r\n </template>\r\n\r\n </div>\r\n </div>\r\n\r\n </template>\r\n\r\n <template v-slot:content>\r\n\r\n <div\r\n ref=\"ct\"\r\n :style=\"`background:${usePanelBackgroundColor}; ${usePanelOverflowAndHeight}`\"\r\n v-domresize\r\n @domresize=\"resizeContent\"\r\n >\r\n\r\n \x3c!-- 上方選單區 --\x3e\r\n <div :style=\"`display:flex; padding:${space}px; border-bottom:1px solid ${useBorderColor}; background:${useToolBackgroundColor};`\">\r\n\r\n <div style=\"\">\r\n <WIcon\r\n style=\"cursor:pointer;\"\r\n :icon=\"menuIconHsva\"\r\n :color=\"typeTrans==='HSVA'?menuIconColorActive:menuIconColor\"\r\n :colorHover=\"typeTrans==='HSVA'?menuIconColorActive:menuIconColorHover\"\r\n :size=\"menuIconSize\"\r\n @click=\"typeTrans='HSVA';$emit('update:type','HSVA')\"\r\n ></WIcon>\r\n </div>\r\n\r\n <div style=\"\">\r\n <WIcon\r\n style=\"cursor:pointer;\"\r\n :icon=\"menuIconLump\"\r\n :color=\"typeTrans==='LUMP'?menuIconColorActive:menuIconColor\"\r\n :colorHover=\"typeTrans==='LUMP'?menuIconColorActive:menuIconColorHover\"\r\n :size=\"menuIconSize\"\r\n @click=\"typeTrans='LUMP';$emit('update:type','LUMP')\"\r\n ></WIcon>\r\n </div>\r\n\r\n <div style=\"\" v-if=\"hasEyeDropper\">\r\n <WIcon\r\n :class=\"{'icon-spinner':loadingEyeDropper}\"\r\n style=\"cursor:pointer;\"\r\n :icon=\"loadingEyeDropper?mdiLoading:menuIconEyeDropper\"\r\n :color=\"loadingEyeDropper?menuIconColor:menuIconColorActive\"\r\n :colorHover=\"loadingEyeDropper?menuIconColor:menuIconColorActive\"\r\n :size=\"menuIconSize\"\r\n @click=\"openEyeDropper\"\r\n ></WIcon>\r\n </div>\r\n\r\n <div :style=\"`width:100%;`\"></div>\r\n\r\n <div\r\n ref=\"mtb\"\r\n :style=\"`display:flex; align-items:center;`\"\r\n >\r\n\r\n <div :style=\"`display:flex; align-items:center; border:${colorBlockBorderWidth}px solid ${useColorBlockBorderColor};`\">\r\n\r\n <div :style=\"`width:${colorBlockSize}px; min-width:${colorBlockSize}px; height:${colorBlockSize}px; background:${valueOri};`\"></div>\r\n\r\n <div :style=\"`width:${colorBlockSize}px; min-width:${colorBlockSize}px; height:${colorBlockSize}px; background:${valueNew};`\"></div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div :style=\"`padding:${space}px;`\">\r\n\r\n \x3c!-- 顏色選擇區 --\x3e\r\n <div\r\n style=\"display:flex;\"\r\n v-domresize\r\n @domresize=\"resizeSelectPanel\"\r\n >\r\n <WColorSelectPanel\r\n :type=\"typeTrans\"\r\n :size=\"size\"\r\n :space=\"0\"\r\n :backgroundColor=\"'transparent'\"\r\n :menuIconLump=\"menuIconLump\"\r\n :menuIconHsva=\"menuIconHsva\"\r\n :menuIconColor=\"menuIconColor\"\r\n :menuIconColorHover=\"menuIconColorHover\"\r\n :menuIconColorActive=\"menuIconColorActive\"\r\n :menuIconSize=\"menuIconSize\"\r\n v-model=\"valueNew\"\r\n ></WColorSelectPanel>\r\n </div>\r\n\r\n <div :style=\"`height:${space}px;`\"></div>\r\n\r\n \x3c!-- 顏色數值區 --\x3e\r\n <div\r\n style=\"display:flex;\"\r\n v-domresize\r\n @domresize=\"resizeSelectInput\"\r\n >\r\n <WColorSelectInput\r\n :size=\"Math.max(size-22,0)\"\r\n :backgroundColor=\"'transparent'\"\r\n :borderColor=\"borderColor\"\r\n :borderColorHover=\"borderColorHover\"\r\n :borderColorActive=\"borderColorActive\"\r\n :menuBorderRadius=\"menuBorderRadius\"\r\n :menuBackgroundColor=\"menuBackgroundColor\"\r\n :menuBackgroundColorHover=\"menuBackgroundColorHover\"\r\n :menuBackgroundColorActive=\"menuBackgroundColorActive\"\r\n :menuTextColor=\"menuTextColor\"\r\n :menuTextColorHover=\"menuTextColorHover\"\r\n :menuTextColorActive=\"menuTextColorActive\"\r\n :menuTextFontSize=\"menuTextFontSize\"\r\n :inputBorderRadius=\"inputBorderRadius\"\r\n :inputBorderColor=\"inputBorderColor\"\r\n :inputBorderColorHover=\"inputBorderColorHover\"\r\n :inputBorderColorActive=\"inputBorderColorActive\"\r\n :inputBackgroundColor=\"inputBackgroundColor\"\r\n :inputBackgroundColorHover=\"inputBackgroundColorHover\"\r\n :inputBackgroundColorActive=\"inputBackgroundColorActive\"\r\n :inputTextColor=\"inputTextColor\"\r\n :inputTextFontSize=\"inputTextFontSize\"\r\n :inputTextWidth=\"inputTextWidth\"\r\n :inputTextHeight=\"inputTextHeight\"\r\n :inputLabelWidth=\"inputLabelWidth\"\r\n :inputLabelColor=\"inputLabelColor\"\r\n :inputLabelFontSize=\"inputLabelFontSize\"\r\n :barProgHeight=\"barProgHeight\"\r\n :barProgColor=\"barProgColor\"\r\n :barProgBackgroundColor=\"barProgBackgroundColor\"\r\n :barSliderSize=\"barSliderSize\"\r\n :barSliderBackgroundColor=\"barSliderBackgroundColor\"\r\n :barSliderBackgroundColorHover=\"barSliderBackgroundColorHover\"\r\n v-model=\"valueNew\"\r\n ></WColorSelectInput>\r\n </div>\r\n\r\n <div :style=\"`height:${space}px;`\"></div>\r\n\r\n \x3c!-- 確認按鈕區 --\x3e\r\n <div style=\"text-align:right;\">\r\n\r\n <WButtonChip\r\n :text=\"btnText\"\r\n :rippleColor=\"btnRippleColor\"\r\n :paddingStyle=\"btnPaddingStyle\"\r\n :textColor=\"btnTextColor\"\r\n :textColorHover=\"btnTextColorHover\"\r\n :textColorActive=\"btnTextColorActive\"\r\n :textFontSize=\"btnTextFontSize\"\r\n :borderRadius=\"btnBorderRadius\"\r\n _borderColor=\"btnBorderColor\"\r\n _borderColorHover=\"btnBorderColorHover\"\r\n _borderColorActive=\"btnBorderColorActive\"\r\n :backgroundColor=\"btnBackgroundColor\"\r\n :backgroundColorHover=\"btnBackgroundColorHover\"\r\n :backgroundColorActive=\"btnBackgroundColorActive\"\r\n :shadow=\"btnShadow\"\r\n @click=\"clickColor\"\r\n ></WButtonChip>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </template>\r\n\r\n </WPopup>\r\n</template>\r\n\r\n<script>\r\nimport { mdiHexagonSlice6, mdiViewParallel, mdiEyedropper, mdiLoading } from '@mdi/js'\r\nimport get from 'lodash-es/get.js'\r\nimport isfun from 'wsemi/src/isfun.mjs'\r\nimport domGetBoudRect from 'wsemi/src/domGetBoudRect.mjs'\r\nimport convertColor from '../js/convertColor.mjs'\r\nimport domResize from '../js/domResize.mjs'\r\nimport WPopup from './WPopup.vue'\r\nimport WColorSelectPanel from './WColorSelectPanel.vue'\r\nimport WColorSelectInput from './WColorSelectInput.vue'\r\nimport WButtonChip from './WButtonChip.vue'\r\nimport WIcon from './WIcon.vue'\r\n\r\n\r\n/**\r\n * @vue-prop {String} [value='#FFFFFF'] 輸入顏色字串,預設'#FFFFFF'\r\n * @vue-prop {String} [type='HSVA'] 輸入選擇顏色方式字串,可選'LUMP'、'HSVA',預設'HSVA'\r\n * @vue-prop {Number} [size=200] 輸入尺寸數字,代表組件基礎寬度與將自動計算高度,單位px,預設200\r\n * @vue-prop {Number} [space=10] 輸入子組件間距數字,單位px,預設10\r\n * @vue-prop {Number} [colorBlockSize=20] 輸入色塊長與寬度數字,單位px,預設20\r\n * @vue-prop {Number} [colorBlockBorderWidth=1] 輸入色塊框線寬度數字,單位px,預設1\r\n * @vue-prop {String} [colorBlockBorderColor='#ddd'] 輸入色塊框線顏色字串,預設'#ddd'\r\n * @vue-prop {Boolean} [showColorText=true] 輸入是否顯示當前RGBA顏色文字布林值,預設true\r\n * @vue-prop {String} [colorTextColor='#000'] 輸入當前RGBA顏色文字顏色字串,預設'#000'\r\n * @vue-prop {String} [colorTextFontSize='0.8rem'] 輸入當前RGBA顏色文字字型大小字串,預設'0.8rem'\r\n * @vue-prop {String} [panelBackgroundColor='#fff'] 輸入彈窗背景顏色字串,預設'#fff'\r\n * @vue-prop {String} [toolBackgroundColor='#f5f5f5'] 輸入彈窗背景顏色字串,預設'#f5f5f5'\r\n * @vue-prop {String} [menuIconLump=mdiHexagonSlice6] 輸入選單LUMP模式圖標字串,預設mdiHexagonSlice6\r\n * @vue-prop {String} [menuIconHsva=mdiViewParallel] mdiViewParallel\r\n * @vue-prop {String} [menuIconEyeDropper=mdiEyedropper] 輸入取色滴管圖標字串,可為mdi,md,fa代號或mdi/js路徑,預設使用mdi的圖標(mdiEyedropper)\r\n * @vue-prop {String} [menuIconColor='#aaa'] 輸入選單圖標顏色字串,預設'#aaa'\r\n * @vue-prop {String} [menuIconColorHover='#999'] 輸入滑鼠移入時選單圖標顏色字串,預設'#999'\r\n * @vue-prop {String} [menuIconColorActive='#666'] 輸入主動模式時選單圖標顏色字串,預設'#666'\r\n * @vue-prop {Number} [menuIconSize=20] 輸入選單圖標尺寸數字,單位為px,預設20\r\n * @vue-prop {String} [borderColor='#ddd'] 輸入邊框顏色字串,預設'#ddd'\r\n * @vue-prop {String} [borderColorHover='#ccc'] 輸入滑鼠移入時邊框顏色字串,預設'#ccc'\r\n * @vue-prop {String} [borderColorActive='#777'] 輸入主動模式時邊框顏色字串,預設'#777'\r\n * @vue-prop {Number} [menuBorderRadius=4] 輸入框圓角度數字,單位為px,預設4\r\n * @vue-prop {String} [menuTextColor='#444'] 輸入選單文字顏色字串,預設'#444'\r\n * @vue-prop {String} [menuTextColorHover='#222'] 輸入滑鼠移入時選單文字顏色字串,預設'#222'\r\n * @vue-prop {String} [menuTextColorActive='#000'] 輸入主動模式時選單文字顏色字串,預設'#000'\r\n * @vue-prop {String} [menuTextFontSize='0.8rem'] 輸入選單文字字型大小字串,預設'0.8rem'\r\n * @vue-prop {String} [menuBackgroundColor='#fff'] 輸入選單背景顏色字串,預設'#fff'\r\n * @vue-prop {String} [menuBackgroundColorHover='#f9f9f9'] 輸入滑鼠移入時選單背景顏色字串,預設'#f9f9f9'\r\n * @vue-prop {String} [menuBackgroundColorActive='#f2f2f2'] 輸入主動模式時選單背景顏色字串,預設'#f2f2f2'\r\n * @vue-prop {Number} [inputBorderRadius=4] 輸入顏色數字輸入區邊框圓角度數字,單位為px,預設4\r\n * @vue-prop {String} [inputBorderColor='#ccc'] 輸入顏色數字輸入區邊框顏色字串,預設'#ccc'\r\n * @vue-prop {String} [inputBorderColorHover='#b5b5b5'] 輸入滑鼠移入時顏色數字輸入區邊框顏色字串,預設'#b5b5b5'\r\n * @vue-prop {String} [inputBorderColorActive='#aaa'] 輸入主動模式時顏色數字輸入區邊框顏色字串,預設'#aaa'\r\n * @vue-prop {String} [inputBackgroundColor='#fff'] 輸入顏色數字輸入區背景顏色字串,預設'#fff'\r\n * @vue-prop {String} [inputBackgroundColorHover='#fafafa'] 輸入滑鼠移入時顏色數字輸入區背景顏色字串,預設'#fafafa'\r\n * @vue-prop {String} [inputBackgroundColorActive='#f2f2f2'] 輸入主動模式時顏色數字輸入區背景顏色字串,預設'#f2f2f2'\r\n * @vue-prop {String} [inputTextColor='#000'] 輸入顏色數字輸入區文字顏色字串,預設'#000'\r\n * @vue-prop {String} [inputTextFontSize='0.8rem'] 輸入顏色數字輸入區文字字型大小字串,預設'0.8rem'\r\n * @vue-prop {Number} [inputTextWidth=38] 輸入顏色數字輸入區寬度數字,單位為px,預設38\r\n * @vue-prop {Number} [inputTextHeight=18] 輸入顏色數字輸入區高度數字,單位為px,預設18\r\n * @vue-prop {Number} [inputLabelWidth=12] 輸入顏色數字輸入區標題寬度數字,單位為px,預設12\r\n * @vue-prop {String} [inputLabelColor='#666'] 輸入文字顏色字串,預設'#666'\r\n * @vue-prop {String} [inputLabelFontSize='0.8rem'] 輸入文字字型大小字串,預設'0.8rem'\r\n * @vue-prop {Number} [barProgHeight=4] 輸入值域條高度數字,單位為px,預設4\r\n * @vue-prop {String} [barProgColor='#74a4d9'] 輸入值域條顏色字串,預設'#74a4d9'\r\n * @vue-prop {String} [barProgBackgroundColor='#eee'] 輸入值域條背景顏色字串,預設'#eee'\r\n * @vue-prop {Number} [barSliderSize=10] 輸入拖曳球尺寸數字,單位為px,預設10\r\n * @vue-prop {String} [barSliderBackgroundColor='#1565C0'] 輸入拖曳球背景顏色字串,預設'#1565C0'\r\n * @vue-prop {String} [barSliderBackgroundColorHover='#1976D2'] 輸入滑鼠移入時拖曳球背景顏色字串,預設'#1976D2'\r\n * @vue-prop {Number} [popupPlacementDist=5] 輸入彈窗距離觸發元素距離數字,單位為px,預設5\r\n * @vue-prop {String} [btnText='Confirm'] 輸入確認按鈕之文字字串,預設'Confirm'\r\n * @vue-prop {String} [btnRippleColor='rgba(255,255,255,0.4)'] 輸入確認按鈕之ripple效果顏色字串,預設'rgba(255,255,255,0.4)'\r\n * @vue-prop {Object} [btnPaddingStyle={v:1,h:5}] 輸入確認按鈕之內寬距離設定物件,可用鍵值為v、h、left、right、top、bottom,v代表同時設定top與bottom,h代表設定left與right,若有重複設定時後面鍵值會覆蓋前面,各鍵值為寬度數字,單位為px,預設{v:1,h:5}\r\n * @vue-prop {String} [btnTextColor='#000'] 輸入確認按鈕之文字顏色字串,預設'#000'\r\n * @vue-prop {String} [btnTextColorHover='#222'] 輸入滑鼠移入時確認按鈕之文字顏色字串,預設'#222'\r\n * @vue-prop {String} [btnTextColorActive='#222'] 輸入主動模式時確認按鈕之文字顏色字串,預設'#222'\r\n * @vue-prop {String} [btnTextFontSize='0.8rem'] 輸入確認按鈕之文字字型大小字串,預設'0.8rem'\r\n * @vue-prop {Number} [btnBorderRadius=4] 輸入確認按鈕之框圓角度數字,單位為px,預設4\r\n * @vue-prop {String} [btnBackgroundColor='rgb(241,241,241)'] 輸入確認按鈕之背景顏色字串,預設'rgb(241,241,241)'\r\n * @vue-prop {String} [btnBackgroundColorHover='rgb(236,236,236)'] 輸入滑鼠移入時確認按鈕之背景顏色字串,預設'rgb(236,236,236)'\r\n * @vue-prop {String} [btnBackgroundColorActive='rgb(236,236,236)'] 輸入主動模式時確認按鈕之背景顏色字串,預設'rgb(236,236,236)'\r\n * @vue-prop {Boolean} [btnShadow=true] 輸入確認按鈕之是否顯示陰影布林值,預設true\r\n * @vue-prop {String} [labelContent=null] 輸入針對teleport至body內之內容div所給予之wtlp屬性值字串,供查找使用,預設null\r\n * @vue-prop {Number} [cmpZIndex=3000] 輸入彈窗使用z-index數字,供嵌於高z-index彈窗內時提高層級,預設3000\r\n * @vue-prop {Boolean} [editable=true] 輸入是否為編輯模式布林值,預設true\r\n */\r\nexport default {\r\n directives: {\r\n domresize: domResize(),\r\n },\r\n components: {\r\n WPopup,\r\n WColorSelectPanel,\r\n WColorSelectInput,\r\n WButtonChip,\r\n WIcon,\r\n },\r\n props: {\r\n value: {\r\n type: String,\r\n default: '#FFFFFF',\r\n },\r\n type: {\r\n type: String,\r\n default: 'HSVA',\r\n },\r\n size: {\r\n type: Number,\r\n default: 200,\r\n },\r\n space: {\r\n type: Number,\r\n default: 10,\r\n },\r\n colorBlockSize: {\r\n type: Number,\r\n default: 20,\r\n },\r\n colorBlockBorderWidth: {\r\n type: Number,\r\n default: 1,\r\n },\r\n colorBlockBorderColor: {\r\n type: String,\r\n default: '#ddd',\r\n },\r\n showColorText: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n colorTextColor: {\r\n type: String,\r\n default: '#000',\r\n },\r\n colorTextFontSize: {\r\n type: String,\r\n default: '0.8rem',\r\n },\r\n panelBackgroundColor: {\r\n type: String,\r\n default: '#fff',\r\n },\r\n toolBackgroundColor: {\r\n type: String,\r\n default: '#f5f5f5',\r\n },\r\n menuIconLump: {\r\n type: String,\r\n default: mdiHexagonSlice6,\r\n },\r\n menuIconHsva: {\r\n type: String,\r\n default: mdiViewParallel,\r\n },\r\n menuIconEyeDropper: {\r\n type: String,\r\n default: mdiEyedropper,\r\n },\r\n menuIconColor: {\r\n type: String,\r\n default: '#aaa',\r\n },\r\n menuIconColorHover: {\r\n type: String,\r\n default: '#999',\r\n },\r\n menuIconColorActive: {\r\n type: String,\r\n default: '#666',\r\n },\r\n menuIconSize: {\r\n type: Number,\r\n default: 20,\r\n },\r\n borderColor: {\r\n type: String,\r\n default: '#ddd',\r\n },\r\n borderColorHover: {\r\n type: String,\r\n default: '#ccc',\r\n },\r\n borderColorActive: {\r\n type: String,\r\n default: '#777',\r\n },\r\n menuBorderRadius: {\r\n type: Number,\r\n default: 4,\r\n },\r\n menuTextColor: {\r\n type: String,\r\n default: '#444',\r\n },\r\n menuTextColorHover: {\r\n type: String,\r\n default: '#222',\r\n },\r\n menuTextColorActive: {\r\n type: String,\r\n default: '#000',\r\n },\r\n menuTextFontSize: {\r\n type: String,\r\n default: '0.8rem',\r\n },\r\n menuBackgroundColor: {\r\n type: String,\r\n default: '#fff',\r\n },\r\n menuBackgroundColorHover: {\r\n type: String,\r\n default: '#f9f9f9',\r\n },\r\n menuBackgroundColorActive: {\r\n type: String,\r\n default: '#f2f2f2',\r\n },\r\n inputBorderRadius: {\r\n type: Number,\r\n default: 4,\r\n },\r\n inputBorderColor: {\r\n type: String,\r\n default: '#ccc',\r\n },\r\n inputBorderColorHover: {\r\n type: String,\r\n default: '#b5b5b5',\r\n },\r\n inputBorderColorActive: {\r\n type: String,\r\n default: '#aaa',\r\n },\r\n inputBackgroundColor: {\r\n type: String,\r\n default: '#fff',\r\n },\r\n inputBackgroundColorHover: {\r\n type: String,\r\n default: '#fafafa',\r\n },\r\n inputBackgroundColorActive: {\r\n type: String,\r\n default: '#f2f2f2',\r\n },\r\n inputTextColor: {\r\n type: String,\r\n default: '#000',\r\n },\r\n inputTextFontSize: {\r\n type: String,\r\n default: '0.8rem',\r\n },\r\n inputTextWidth: {\r\n type: Number,\r\n default: 38,\r\n },\r\n inputTextHeight: {\r\n type: Number,\r\n default: 18,\r\n },\r\n inputLabelWidth: {\r\n type: Number,\r\n default: 12,\r\n },\r\n inputLabelColor: {\r\n type: String,\r\n default: '#666',\r\n },\r\n inputLabelFontSize: {\r\n type: String,\r\n default: '0.8rem',\r\n },\r\n barProgHeight: {\r\n type: Number,\r\n default: 4,\r\n },\r\n barProgColor: {\r\n type: String,\r\n default: '#74a4d9',\r\n },\r\n barProgBackgroundColor: {\r\n type: String,\r\n default: '#eee',\r\n },\r\n barSliderSize: {\r\n type: Number,\r\n default: 10,\r\n },\r\n barSliderBackgroundColor: {\r\n type: String,\r\n default: '#1565C0',\r\n },\r\n barSliderBackgroundColorHover: {\r\n type: String,\r\n default: '#1976D2',\r\n },\r\n popupPlacementDist: {\r\n type: Number,\r\n default: 5,\r\n },\r\n btnText: {\r\n type: String,\r\n default: 'Confirm',\r\n },\r\n btnRippleColor: {\r\n type: String,\r\n default: 'rgba(255,255,255,0.4)',\r\n },\r\n btnPaddingStyle: {\r\n type: Object,\r\n default: () => {\r\n return {\r\n v: 1,\r\n h: 5,\r\n }\r\n },\r\n },\r\n btnTextColor: {\r\n type: String,\r\n default: '#000',\r\n },\r\n btnTextColorHover: {\r\n type: String,\r\n default: '#222',\r\n },\r\n btnTextColorActive: {\r\n type: String,\r\n default: '#222',\r\n },\r\n btnTextFontSize: {\r\n type: String,\r\n default: '0.8rem',\r\n },\r\n btnBorderRadius: {\r\n type: Number,\r\n default: 4,\r\n },\r\n btnBackgroundColor: {\r\n type: String,\r\n default: 'rgb(241,241,241)',\r\n },\r\n btnBackgroundColorHover: {\r\n type: String,\r\n default: 'rgb(236,236,236)',\r\n },\r\n btnBackgroundColorActive: {\r\n type: String,\r\n default: 'rgb(236,236,236)',\r\n },\r\n btnShadow: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n labelContent: {\r\n type: String,\r\n default: null,\r\n },\r\n cmpZIndex: {\r\n type: Number,\r\n default: 3000,\r\n },\r\n editable: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n },\r\n data: function() {\r\n return {\r\n mdiLoading,\r\n\r\n show: false,\r\n\r\n typeTrans: 'HSVA',\r\n\r\n loadingEyeDropper: false,\r\n\r\n layoutType: 'horizontal',\r\n layoutShowScrollY: false,\r\n layoutMinHeight: 300,\r\n layoutMaxHeight: 300,\r\n\r\n selectPanelHeight: 0,\r\n selectInputHeight: 0,\r\n\r\n valueOri: null,\r\n valueNew: null,\r\n popperPlacement: null,\r\n\r\n }\r\n },\r\n watch: {\r\n\r\n show: function(b) {\r\n let vo = this\r\n if (b) {\r\n //以最小高度顯示時, 讓Popper.js先決定方向\r\n vo.popperPlacement = null\r\n vo.layoutShowScrollY = true\r\n vo.layoutMaxHeight = vo.layoutMinHeight\r\n // 等 Popper.js 定位完成後重算可用空間\r\n vo.$nextTick(() => {\r\n vo.$nextTick(() => {\r\n vo.adjustMaxHeight()\r\n })\r\n })\r\n }\r\n },\r\n\r\n },\r\n computed: {\r\n\r\n changeValue: function() {\r\n let vo = this\r\n vo.valueOri = convertColor(vo.value)\r\n vo.valueNew = vo.valueOri\r\n return ''\r\n },\r\n\r\n changeType: function() {\r\n let vo = this\r\n vo.typeTrans = vo.type\r\n return ''\r\n },\r\n\r\n hasEyeDropper: function() {\r\n // let vo = this\r\n let b = isfun(window.EyeDropper)\r\n // console.log('window.EyeDropper', window.EyeDropper)\r\n return b\r\n },\r\n\r\n useColorBlockBorderColor: function() {\r\n let vo = this\r\n return convertColor(vo.colorBlockBorderColor)\r\n },\r\n\r\n useColorTextColor: function() {\r\n let vo = this\r\n return convertColor(vo.colorTextColor)\r\n },\r\n\r\n usePanelBackgroundColor: function() {\r\n let vo = this\r\n return convertColor(vo.panelBackgroundColor)\r\n },\r\n\r\n useToolBackgroundColor: function() {\r\n let vo = this\r\n return convertColor(vo.toolBackgroundColor)\r\n },\r\n\r\n useBorderColor: function() {\r\n let vo = this\r\n return convertColor(vo.borderColor)\r\n },\r\n\r\n usePanelOverflowAndHeight: function() {\r\n let vo = this\r\n let of = `overflow-y:auto; min-height:${vo.layoutMinHeight}px;`\r\n if (vo.layoutShowScrollY) {\r\n of += `max-height:${vo.layoutMaxHeight}px;`\r\n }\r\n return of\r\n },\r\n\r\n },\r\n methods: {\r\n\r\n resize: function(msg) {\r\n // console.log('methods resize', msg)\r\n\r\n let vo = this\r\n\r\n //check\r\n if (!vo.show) {\r\n return\r\n }\r\n\r\n let w = get(msg, 'snew.windowWidth', 0)\r\n // let h = get(msg, 'snew.windowHeight', 0)\r\n // console.log('w', w, 'h', h, b)\r\n\r\n //layoutType\r\n let b = w >= 2 * (vo.size + 20) + 3 * vo.space //20為組件設定, 不提供外部更改故可直接給\r\n vo.layoutType = b ? 'horizontal' : 'vertical'\r\n // console.log('layoutType', vo.layoutType)\r\n\r\n },\r\n\r\n resizeContent: function(msg) {\r\n // console.log('methods resizeContent', msg)\r\n\r\n let vo = this\r\n\r\n //check\r\n if (!vo.show) {\r\n return\r\n }\r\n\r\n //adjustMaxHeight\r\n vo.adjustMaxHeight()\r\n\r\n },\r\n\r\n onPlacementChange: function(placement) {\r\n let vo = this\r\n vo.popperPlacement = placement\r\n vo.adjustMaxHeight()\r\n },\r\n\r\n adjustMaxHeight: function() {\r\n let vo = this\r\n\r\n //check\r\n if (!vo.show) {\r\n return\r\n }\r\n\r\n try {\r\n\r\n //ct\r\n let ct = vo.$refs.ct\r\n if (!ct) {\r\n return\r\n }\r\n\r\n //windowHeight\r\n let h = window.innerHeight\r\n\r\n //placement\r\n let placement = vo.popperPlacement\r\n\r\n //Popper.js尚未定位完成, 保持初始限制高度\r\n if (!placement) {\r\n return\r\n }\r\n\r\n //rt\r\n let rt = domGetBoudRect(ct)\r\n\r\n //hc, 實際內容高度\r\n let hc = ct.scrollHeight\r\n\r\n //根據方向計算可用空間\r\n let margin = 30\r\n let hca\r\n if (placement.startsWith('top')) {\r\n //彈窗在上方, 底部對齊觸發元素往上延伸\r\n hca = rt.bottom - margin\r\n }\r\n else {\r\n //預設彈窗在下方, 頂部對齊觸發元素下方往下延伸\r\n hca = h - rt.top - margin\r\n }\r\n\r\n //layoutShowScrollYNew\r\n let layoutShowScrollYNew = hc > hca\r\n\r\n //layoutMaxHeightNew\r\n let layoutMaxHeightNew = Math.max(hca, vo.layoutMinHeight)\r\n\r\n //check, 避免微小的數值抖動導致迴圈\r\n if (layoutShowScrollYNew === vo.layoutShowScrollY && Math.abs(layoutMaxHeightNew - vo.layoutMaxHeight) < 2) {\r\n return\r\n }\r\n\r\n //layoutShowScrollY\r\n vo.layoutShowScrollY = layoutShowScrollYNew\r\n // console.log('layoutShowScrollY', vo.layoutShowScrollY)\r\n\r\n //layoutMaxHeight\r\n vo.layoutMaxHeight = layoutMaxHeightNew\r\n // console.log('layoutMaxHeight', vo.layoutMaxHeight)\r\n\r\n }\r\n catch (err) {}\r\n\r\n },\r\n\r\n resizeSelectPanel: function(msg) {\r\n // console.log('methods resizeSelectPanel', msg)\r\n\r\n let vo = this\r\n\r\n //check\r\n if (!vo.show) {\r\n return\r\n }\r\n\r\n let h = get(msg, 'snew.clientHeight', 0)\r\n\r\n //save\r\n vo.selectPanelHeight = h\r\n\r\n },\r\n\r\n resizeSelectInput: function(msg) {\r\n // console.log('methods resizeSelectInput', msg)\r\n\r\n let vo = this\r\n\r\n //check\r\n if (!vo.show) {\r\n return\r\n }\r\n\r\n let h = get(msg, 'snew.clientHeight', 0)\r\n\r\n //save\r\n vo.selectInputHeight = h\r\n\r\n },\r\n\r\n openEyeDropper: function() {\r\n // console.log('methods openEyeDropper')\r\n\r\n let vo = this\r\n\r\n //check\r\n if (!vo.hasEyeDropper) {\r\n return\r\n }\r\n\r\n vo.loadingEyeDropper = true\r\n\r\n let eyeDropper = new window.EyeDropper()\r\n eyeDropper\r\n .open()\r\n .then((res) => {\r\n // console.log('res', res)\r\n let hex = get(res, 'sRGBHex', '#fff')\r\n vo.valueNew = hex\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n .finally(() => {\r\n vo.loadingEyeDropper = false\r\n })\r\n\r\n },\r\n\r\n clickColor: function() {\r\n // console.log('methods clickColor')\r\n\r\n let vo = this\r\n\r\n //check, 不可編輯時跳出\r\n if (!vo.editable) {\r\n return\r\n }\r\n\r\n //emit\r\n vo.$emit('input', vo.valueNew)\r\n\r\n //hide\r\n vo.show = false\r\n\r\n },\r\n\r\n },\r\n}\r\n<\/script>\r\n\r\n<style scoped>\r\n.icon-spinner {\r\n animation: spin-animation 1.5s infinite;\r\n display: inline-block;\r\n}\r\n@keyframes spin-animation {\r\n 0% {\r\n transform: rotate(0deg);\r\n }\r\n 100% {\r\n transform: rotate(359deg);\r\n }\r\n}\r\n</style>\r\n"]},media:void 0})},Xc,"data-v-4462e481",false,void 0,!1,Zr,void 0,void 0);const qc={components:{WColorSelect:Zc},props:{node:{type:Object,required:!0},defNode:{type:Object,required:!0},textFontSize:{type:String,default:""},excludes:{type:Array,default:()=>[]}},data:()=>({confirmDelete:!1}),computed:{formStyle(){let n={};return this.textFontSize&&(n.fontSize=this.textFontSize),n}},methods:{isEx(n){return this.excludes.indexOf(n)>=0},onFontSizeInput(n){let e=Number(n),t=this.defNode;!n||isNaN(e)||e<t.fontSizeMin||(e>t.fontSizeMax&&(e=t.fontSizeMax),this.$emit("update","fontSize",e))},onEdgeWidthInput(n){let e=Number(n);!n||isNaN(e)||e<1||(e>24&&(e=24),this.$emit("update","edgeWidth",e))}}};var Jc=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{staticClass:"vue-flow__settings-form",style:n.formStyle},[n.isEx("name")?n._e():t("label",[n._v("Name\n "),t("input",{attrs:{type:"text"},domProps:{value:n.node.name||""},on:{input:function(e){return n.$emit("update","name",e.target.value)}}})]),n._v(" "),n.isEx("description")?n._e():t("label",[n._v("Description\n "),t("input",{attrs:{type:"text"},domProps:{value:n.node.description||""},on:{input:function(e){return n.$emit("update","description",e.target.value)}}})]),n._v(" "),n.isEx("type")?n._e():t("label",[n._v("Type\n "),t("select",{domProps:{value:n.node.type||n.defNode.type},on:{input:function(e){return n.$emit("update","type",e.target.value)}}},[t("option",{attrs:{value:"input"}},[n._v("Input")]),n._v(" "),t("option",{attrs:{value:"basic"}},[n._v("Basic")]),n._v(" "),t("option",{attrs:{value:"output"}},[n._v("Output")])])]),n._v(" "),n.isEx("shape")?n._e():t("label",[n._v("Shape\n "),t("select",{domProps:{value:n.node.shape||n.defNode.shape},on:{input:function(e){return n.$emit("update","shape",e.target.value)}}},[t("option",{attrs:{value:"rectangle"}},[n._v("Rectangle")]),n._v(" "),t("option",{attrs:{value:"diamond"}},[n._v("Diamond")]),n._v(" "),t("option",{attrs:{value:"ellipse"}},[n._v("Ellipse")]),n._v(" "),t("option",{attrs:{value:"triangle"}},[n._v("Triangle ▲")]),n._v(" "),t("option",{attrs:{value:"triangle-right"}},[n._v("Triangle ▶")]),n._v(" "),t("option",{attrs:{value:"triangle-down"}},[n._v("Triangle ▼")]),n._v(" "),t("option",{attrs:{value:"triangle-left"}},[n._v("Triangle ◀")])])]),n._v(" "),n.isEx("popupDirection")?n._e():t("label",[n._v("Popup Direction\n "),t("select",{domProps:{value:n.node.popupDirection||n.defNode.popupDirection},on:{input:function(e){return n.$emit("update","popupDirection",e.target.value)}}},[t("option",{attrs:{value:"top"}},[n._v("Top")]),n._v(" "),t("option",{attrs:{value:"right"}},[n._v("Right")]),n._v(" "),t("option",{attrs:{value:"bottom"}},[n._v("Bottom")]),n._v(" "),t("option",{attrs:{value:"left"}},[n._v("Left")])])]),n._v(" "),n.isEx("fontSize")?n._e():t("label",[n._v("Font Size\n "),t("input",{attrs:{type:"number",min:n.defNode.fontSizeMin,max:n.defNode.fontSizeMax},domProps:{value:n.node.fontSize||n.defNode.fontSize},on:{input:function(e){return n.onFontSizeInput(e.target.value)}}})]),n._v(" "),n.isEx("fontColor")?n._e():t("label",[n._v("Font Color\n "),t("WColorSelect",{attrs:{value:n.node.fontColor||n.defNode.fontColor,size:160,colorBlockSize:16,showColorText:!1},on:{input:function(e){return n.$emit("update","fontColor",e)}}})],1),n._v(" "),n.isEx("faceColor")?n._e():t("label",[n._v("Face Color\n "),t("WColorSelect",{attrs:{value:n.node.faceColor||n.defNode.faceColor,size:160,colorBlockSize:16,showColorText:!1},on:{input:function(e){return n.$emit("update","faceColor",e)}}})],1),n._v(" "),n.isEx("edgeColor")?n._e():t("label",[n._v("Edge Color\n "),t("WColorSelect",{attrs:{value:n.node.edgeColor||n.defNode.edgeColor,size:160,colorBlockSize:16,showColorText:!1},on:{input:function(e){return n.$emit("update","edgeColor",e)}}})],1),n._v(" "),n.isEx("edgeWidth")?n._e():t("label",[n._v("Edge Width\n "),t("input",{attrs:{type:"number",min:"1",max:"24"},domProps:{value:void 0!==n.node.edgeWidth?n.node.edgeWidth:n.defNode.edgeWidth},on:{input:function(e){return n.onEdgeWidthInput(e.target.value)}}})]),n._v(" "),n.isEx("fromPosition")||"output"!==n.node.type&&"basic"!==n.node.type?n._e():t("label",[n._v("From Handle\n "),t("select",{domProps:{value:n.node.fromPosition||n.defNode.fromPosition},on:{input:function(e){return n.$emit("update","fromPosition",e.target.value)}}},[t("option",{attrs:{value:"top"}},[n._v("Top")]),n._v(" "),t("option",{attrs:{value:"right"}},[n._v("Right")]),n._v(" "),t("option",{attrs:{value:"bottom"}},[n._v("Bottom")]),n._v(" "),t("option",{attrs:{value:"left"}},[n._v("Left")])])]),n._v(" "),n.isEx("toPosition")||"input"!==n.node.type&&"basic"!==n.node.type?n._e():t("label",[n._v("To Handle\n "),t("select",{domProps:{value:n.node.toPosition||n.defNode.toPosition},on:{input:function(e){return n.$emit("update","toPosition",e.target.value)}}},[t("option",{attrs:{value:"top"}},[n._v("Top")]),n._v(" "),t("option",{attrs:{value:"right"}},[n._v("Right")]),n._v(" "),t("option",{attrs:{value:"bottom"}},[n._v("Bottom")]),n._v(" "),t("option",{attrs:{value:"left"}},[n._v("Left")])])]),n._v(" "),t("div",{staticClass:"vue-flow__delete-area"},[n.confirmDelete?[t("span",{staticClass:"vue-flow__delete-warn"},[n._v("確定刪除?相關連線也會一併刪除")]),n._v(" "),t("div",{staticClass:"vue-flow__delete-confirm-row"},[t("button",{staticClass:"vue-flow__delete-btn",on:{click:function(e){return n.$emit("delete")}}},[n._v("確認刪除")]),n._v(" "),t("button",{staticClass:"vue-flow__delete-btn vue-flow__delete-btn--cancel",on:{click:function(e){n.confirmDelete=!1}}},[n._v("取消")])])]:t("button",{staticClass:"vue-flow__delete-btn",on:{click:function(e){n.confirmDelete=!0}}},[n._v("刪除節點")])],2)])};Jc._withStripped=!0;var Qc={name:"NodeWrapper",components:{NodeBody:Mi,NodeSettingsForm:Xr({render:Jc,staticRenderFns:[]},function(n){n&&n("data-v-e6c99e84_0",{source:'\n.vue-flow__settings-form {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 8px;\r\n min-width: 180px;\n}\n.vue-flow__settings-form label {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n gap: 8px;\r\n font-size: 12px;\n}\n.vue-flow__settings-form select,\r\n.vue-flow__settings-form input[type="number"],\r\n.vue-flow__settings-form input[type="text"] {\r\n width: 100px;\r\n font-size: 12px;\r\n padding: 1px 4px;\r\n border: 1px solid #ccc;\r\n border-radius: 3px;\n}\n.vue-flow__settings-form input[type="color"] {\r\n width: 32px;\r\n height: 24px;\r\n padding: 0;\r\n border: 1px solid #ccc;\r\n cursor: pointer;\r\n flex-shrink: 0;\n}\n.vue-flow__delete-area {\r\n margin-top: 4px;\r\n padding-top: 8px;\r\n border-top: 1px solid #eee;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-end;\n}\n.vue-flow__delete-warn {\r\n display: block;\r\n font-size: 11px;\r\n color: #c00;\r\n margin-bottom: 4px;\r\n text-align: right;\n}\n.vue-flow__delete-confirm-row {\r\n display: flex;\r\n gap: 6px;\n}\n.vue-flow__delete-btn {\r\n padding: 3px 10px;\r\n font-size: 11px;\r\n border: 1px solid #dc2626;\r\n border-radius: 3px;\r\n color: #fff;\r\n background: #dc2626;\r\n cursor: pointer;\n}\n.vue-flow__delete-btn:hover {\r\n background: #b91c1c;\r\n border-color: #b91c1c;\n}\n.vue-flow__delete-btn--cancel {\r\n color: #666;\r\n background: #fff;\r\n border-color: #ccc;\n}\n.vue-flow__delete-btn--cancel:hover {\r\n background: #f5f5f5;\r\n border-color: #ccc;\n}\r\n',map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\ui\\NodeSettingsForm.vue"],names:[],mappings:";AAyHA;EACA,aAAA;EACA,sBAAA;EACA,QAAA;EACA,gBAAA;AACA;AACA;EACA,aAAA;EACA,8BAAA;EACA,mBAAA;EACA,QAAA;EACA,eAAA;AACA;AACA;;;EAGA,YAAA;EACA,eAAA;EACA,gBAAA;EACA,sBAAA;EACA,kBAAA;AACA;AACA;EACA,WAAA;EACA,YAAA;EACA,UAAA;EACA,sBAAA;EACA,eAAA;EACA,cAAA;AACA;AACA;EACA,eAAA;EACA,gBAAA;EACA,0BAAA;EACA,aAAA;EACA,sBAAA;EACA,qBAAA;AACA;AACA;EACA,cAAA;EACA,eAAA;EACA,WAAA;EACA,kBAAA;EACA,iBAAA;AACA;AACA;EACA,aAAA;EACA,QAAA;AACA;AACA;EACA,iBAAA;EACA,eAAA;EACA,yBAAA;EACA,kBAAA;EACA,WAAA;EACA,mBAAA;EACA,eAAA;AACA;AACA;EACA,mBAAA;EACA,qBAAA;AACA;AACA;EACA,WAAA;EACA,gBAAA;EACA,kBAAA;AACA;AACA;EACA,mBAAA;EACA,kBAAA;AACA",file:"NodeSettingsForm.vue",sourcesContent:['<template>\r\n <div class="vue-flow__settings-form" :style="formStyle">\r\n <label v-if="!isEx(\'name\')">Name\r\n <input type="text" :value="node.name || \'\'" @input="$emit(\'update\', \'name\', $event.target.value)">\r\n </label>\r\n <label v-if="!isEx(\'description\')">Description\r\n <input type="text" :value="node.description || \'\'" @input="$emit(\'update\', \'description\', $event.target.value)">\r\n </label>\r\n <label v-if="!isEx(\'type\')">Type\r\n <select :value="node.type || defNode.type" @input="$emit(\'update\', \'type\', $event.target.value)">\r\n <option value="input">Input</option>\r\n <option value="basic">Basic</option>\r\n <option value="output">Output</option>\r\n </select>\r\n </label>\r\n <label v-if="!isEx(\'shape\')">Shape\r\n <select :value="node.shape || defNode.shape" @input="$emit(\'update\', \'shape\', $event.target.value)">\r\n <option value="rectangle">Rectangle</option>\r\n <option value="diamond">Diamond</option>\r\n <option value="ellipse">Ellipse</option>\r\n <option value="triangle">Triangle ▲</option>\r\n <option value="triangle-right">Triangle ▶</option>\r\n <option value="triangle-down">Triangle ▼</option>\r\n <option value="triangle-left">Triangle ◀</option>\r\n </select>\r\n </label>\r\n <label v-if="!isEx(\'popupDirection\')">Popup Direction\r\n <select :value="node.popupDirection || defNode.popupDirection" @input="$emit(\'update\', \'popupDirection\', $event.target.value)">\r\n <option value="top">Top</option>\r\n <option value="right">Right</option>\r\n <option value="bottom">Bottom</option>\r\n <option value="left">Left</option>\r\n </select>\r\n </label>\r\n <label v-if="!isEx(\'fontSize\')">Font Size\r\n <input type="number" :value="node.fontSize || defNode.fontSize" :min="defNode.fontSizeMin" :max="defNode.fontSizeMax" @input="onFontSizeInput($event.target.value)">\r\n </label>\r\n <label v-if="!isEx(\'fontColor\')">Font Color\r\n <WColorSelect :value="node.fontColor || defNode.fontColor" :size="160" :colorBlockSize="16" :showColorText="false" @input="$emit(\'update\', \'fontColor\', $event)" />\r\n </label>\r\n <label v-if="!isEx(\'faceColor\')">Face Color\r\n <WColorSelect :value="node.faceColor || defNode.faceColor" :size="160" :colorBlockSize="16" :showColorText="false" @input="$emit(\'update\', \'faceColor\', $event)" />\r\n </label>\r\n <label v-if="!isEx(\'edgeColor\')">Edge Color\r\n <WColorSelect :value="node.edgeColor || defNode.edgeColor" :size="160" :colorBlockSize="16" :showColorText="false" @input="$emit(\'update\', \'edgeColor\', $event)" />\r\n </label>\r\n <label v-if="!isEx(\'edgeWidth\')">Edge Width\r\n <input type="number" :value="node.edgeWidth !== undefined ? node.edgeWidth : defNode.edgeWidth" min="1" max="24" @input="onEdgeWidthInput($event.target.value)">\r\n </label>\r\n <label v-if="!isEx(\'fromPosition\') && (node.type === \'output\' || node.type === \'basic\')">From Handle\r\n <select :value="node.fromPosition || defNode.fromPosition" @input="$emit(\'update\', \'fromPosition\', $event.target.value)">\r\n <option value="top">Top</option>\r\n <option value="right">Right</option>\r\n <option value="bottom">Bottom</option>\r\n <option value="left">Left</option>\r\n </select>\r\n </label>\r\n <label v-if="!isEx(\'toPosition\') && (node.type === \'input\' || node.type === \'basic\')">To Handle\r\n <select :value="node.toPosition || defNode.toPosition" @input="$emit(\'update\', \'toPosition\', $event.target.value)">\r\n <option value="top">Top</option>\r\n <option value="right">Right</option>\r\n <option value="bottom">Bottom</option>\r\n <option value="left">Left</option>\r\n </select>\r\n </label>\r\n <div class="vue-flow__delete-area">\r\n <button v-if="!confirmDelete" class="vue-flow__delete-btn" @click="confirmDelete = true">刪除節點</button>\r\n <template v-else>\r\n <span class="vue-flow__delete-warn">確定刪除?相關連線也會一併刪除</span>\r\n <div class="vue-flow__delete-confirm-row">\r\n <button class="vue-flow__delete-btn" @click="$emit(\'delete\')">確認刪除</button>\r\n <button class="vue-flow__delete-btn vue-flow__delete-btn--cancel" @click="confirmDelete = false">取消</button>\r\n </div>\r\n </template>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport WColorSelect from \'w-component-vue/src/components/WColorSelect.vue\'\r\n\r\nexport default {\r\n components: { WColorSelect },\r\n props: {\r\n node: { type: Object, required: true },\r\n defNode: { type: Object, required: true },\r\n textFontSize: { type: String, default: \'\' },\r\n excludes: { type: Array, default: () => [] },\r\n },\r\n data() {\r\n return { confirmDelete: false }\r\n },\r\n computed: {\r\n formStyle() {\r\n let s = {}\r\n if (this.textFontSize) s.fontSize = this.textFontSize\r\n return s\r\n },\r\n },\r\n methods: {\r\n isEx(key) {\r\n return this.excludes.indexOf(key) >= 0\r\n },\r\n onFontSizeInput(val) {\r\n let n = Number(val)\r\n let d = this.defNode\r\n if (!val || isNaN(n) || n < d.fontSizeMin) return\r\n if (n > d.fontSizeMax) n = d.fontSizeMax\r\n this.$emit(\'update\', \'fontSize\', n)\r\n },\r\n onEdgeWidthInput(val) {\r\n let n = Number(val)\r\n if (!val || isNaN(n) || n < 1) return\r\n if (n > 24) n = 24\r\n this.$emit(\'update\', \'edgeWidth\', n)\r\n },\r\n },\r\n}\r\n<\/script>\r\n\r\n<style>\r\n.vue-flow__settings-form {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 8px;\r\n min-width: 180px;\r\n}\r\n.vue-flow__settings-form label {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n gap: 8px;\r\n font-size: 12px;\r\n}\r\n.vue-flow__settings-form select,\r\n.vue-flow__settings-form input[type="number"],\r\n.vue-flow__settings-form input[type="text"] {\r\n width: 100px;\r\n font-size: 12px;\r\n padding: 1px 4px;\r\n border: 1px solid #ccc;\r\n border-radius: 3px;\r\n}\r\n.vue-flow__settings-form input[type="color"] {\r\n width: 32px;\r\n height: 24px;\r\n padding: 0;\r\n border: 1px solid #ccc;\r\n cursor: pointer;\r\n flex-shrink: 0;\r\n}\r\n.vue-flow__delete-area {\r\n margin-top: 4px;\r\n padding-top: 8px;\r\n border-top: 1px solid #eee;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-end;\r\n}\r\n.vue-flow__delete-warn {\r\n display: block;\r\n font-size: 11px;\r\n color: #c00;\r\n margin-bottom: 4px;\r\n text-align: right;\r\n}\r\n.vue-flow__delete-confirm-row {\r\n display: flex;\r\n gap: 6px;\r\n}\r\n.vue-flow__delete-btn {\r\n padding: 3px 10px;\r\n font-size: 11px;\r\n border: 1px solid #dc2626;\r\n border-radius: 3px;\r\n color: #fff;\r\n background: #dc2626;\r\n cursor: pointer;\r\n}\r\n.vue-flow__delete-btn:hover {\r\n background: #b91c1c;\r\n border-color: #b91c1c;\r\n}\r\n.vue-flow__delete-btn--cancel {\r\n color: #666;\r\n background: #fff;\r\n border-color: #ccc;\r\n}\r\n.vue-flow__delete-btn--cancel:hover {\r\n background: #f5f5f5;\r\n border-color: #ccc;\r\n}\r\n</style>\r\n']},media:void 0})},qc,void 0,false,void 0,!1,Zr,void 0,void 0),WPopup:Ps},inject:{getDefNode:{default:()=>()=>({})},getDragGhost:{default:()=>()=>null}},props:{node:{type:Object,required:!0},selected:{type:Boolean,default:!1},draggable:{type:Boolean,default:!0},connectable:{type:Boolean,default:!0},resizable:{type:Boolean,default:!0},locked:{type:Boolean,default:!1},settingsPopupBackgroundColor:{type:String,default:"#fff"},settingsPopupTextColor:{type:String,default:"#333"},settingsPopupTextFontSize:{type:String,default:"12px"},inforPopupBackgroundColor:{type:String,default:"#fff"},inforPopupTitleTextColor:{type:String,default:"#333"},inforPopupTitleTextFontSize:{type:String,default:"12px"},inforPopupDescriptionTextColor:{type:String,default:"#888"},inforPopupDescriptionTextFontSize:{type:String,default:"10px"},snapGridSize:{type:Number,default:null},settingsEnabled:{type:Boolean,default:!0},settingsExcludes:{type:Array,default:()=>[]}},computed:{dn(){return this.getDefNode()},isDiamond(){return"diamond"===this.node.shape},isEllipse(){return"ellipse"===this.node.shape},isTriangle(){let n=this.node.shape;return"triangle"===n||"triangle-right"===n||"triangle-down"===n||"triangle-left"===n},isSvgShape(){return this.isDiamond||this.isEllipse||this.isTriangle},classes(){const n=this.node.class?Array.isArray(this.node.class)?this.node.class:[this.node.class]:[];return["vue-flow__node",`vue-flow__node-${this.node.type||"basic"}`,...n,{"vue-flow__node--selected":this.selected,"vue-flow__node--dragging":this.isDragging,"vue-flow__node--locked":this.locked,"vue-flow__node--diamond":this.isDiamond,"vue-flow__node--ellipse":this.isEllipse,"vue-flow__node--triangle":this.isTriangle}]},wrapperStyle(){const n=this.dn,e=this.node,t=this.getDragGhost(e.id),o=t?t.x:e.position.x,r=t?t.y:e.position.y,i=t&&void 0!==t.width?t.width:e.width,a=t&&void 0!==t.height?t.height:e.height,s={transform:`translate(${o}px, ${r}px)`,zIndex:e.zIndex||0,...i?{whiteSpace:"pre-line"}:{},...e.style||{}};if(i&&(s.width="number"==typeof i?`${i}px`:i),a&&(s.height="number"==typeof a?`${a}px`:a),!this.isSvgShape){let t=e.faceColor||n.faceColor;t&&(s.background=t);let o=e.edgeColor||n.edgeColor;o&&(s.borderColor=o);let r=void 0!==e.edgeWidth?e.edgeWidth:n.edgeWidth;void 0!==r&&(s.borderWidth=r+"px")}let l=e.fontSize||n.fontSize;l&&(s.fontSize=l+"px");let d=e.fontColor||n.fontColor;return d&&(s.color=d),s}},data:()=>({isDragging:!1,hovered:!1,infoPopupShow:!1,infoPopupEditable:!0,settingsPopupShow:!1,cachedW:0,cachedH:0}),watch:{settingsPopupShow(n){n&&(this.infoPopupShow=!1)},infoPopupShow(n){n&&(this.settingsPopupShow=!1)}},mounted(){this.$nextTick(()=>this.reportDimensions())},updated(){this.reportDimensions()},methods:{reportDimensions(){if(!this.$el)return;const n=this.$el.offsetWidth,e=this.$el.offsetHeight;n===this.cachedW&&e===this.cachedH||(this.cachedW=n,this.cachedH=e,this.$emit("dimensions",{nodeId:this.node.id,width:n,height:e}))},onMouseDown(n){if(n.target.closest&&n.target.closest(".vue-flow__node-settings-anchor"))return void(this._mouseDownPos=null);if(this._mouseDownPos={x:n.clientX,y:n.clientY},!this.draggable)return;if(this.node.dragHandle){if(!n.target.closest(this.node.dragHandle))return}this.infoPopupShow=!1,this.$emit("drag-start",{node:this.node,event:n});const e=n.clientX,t=n.clientY,o=n=>{(Math.abs(n.clientX-e)>2||Math.abs(n.clientY-t)>2)&&(this.infoPopupEditable=!1,document.removeEventListener("mousemove",o))},r=()=>{document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",r),this.infoPopupEditable||setTimeout(()=>{this.infoPopupEditable=!0},0)};document.addEventListener("mousemove",o),document.addEventListener("mouseup",r)},onMouseUp(n){if(!this._mouseDownPos)return;const e=n.clientX-this._mouseDownPos.x,t=n.clientY-this._mouseDownPos.y;this._mouseDownPos=null,Math.abs(e)<3&&Math.abs(t)<3&&this.$emit("node-click",{node:this.node,event:n})},onDoubleClick(n){this.$emit("node-double-click",{node:this.node,event:n})},openInfoPopup(){this.infoPopupShow=!0},onContextMenu(n){this.$emit("node-context-menu",{node:this.node,event:n})},onConnectStart(n){this.$emit("connect-start",{...n,nodeId:this.node.id})},onMouseEnter(n){this.hovered=!0,this.$emit("node-mouseenter",{node:this.node,event:n})},onMouseLeave(n){this.hovered=!1,this.$emit("node-mouseleave",{node:this.node,event:n})},onSettingsUpdate(n,e){this.$emit("node-settings-update",{node:this.node,key:n,value:e})},onSettingsDelete(){this.$emit("node-settings-delete",{node:this.node})},onResizeStart(n,e){this.infoPopupShow=!1,this.$nextTick(()=>{this.infoPopupEditable=!1}),n.preventDefault();const t={"top-left":"nwse-resize","bottom-right":"nwse-resize","top-right":"nesw-resize","bottom-left":"nesw-resize"}[e]||"default",o=document.createElement("style");o.textContent="* { cursor: "+t+" !important; }",document.head.appendChild(o);const r=n.clientX,i=n.clientY,a=this.node.width||this.$el.offsetWidth,s=this.node.height||this.$el.offsetHeight,l=this.node.position.x,d=this.node.position.y,u=this.snapGridSize,c=u||10,p=this.$el.closest(".vue-flow__viewport"),f=p?parseFloat(p.style.transform.match(/scale\(([^)]+)\)/)?.[1]||1):1,h=n=>u?Math.max(u,Math.round(n/u)*u):Math.max(c,Math.round(n)),g=n=>h(a+n),v=n=>{const e=h(a-n);return{w:e,x:l+(a-e)}},m=n=>h(s+n),A=n=>{const e=h(s-n);return{h:e,y:d+(s-e)}},b=n=>{const t=(n.clientX-r)/f,o=(n.clientY-i)/f;let u=a,c=s,p=l,h=d;if("top-left"===e){let n=v(t);u=n.w,p=n.x;let e=A(o);c=e.h,h=e.y}else if("top-right"===e){u=g(t);let n=A(o);c=n.h,h=n.y}else if("bottom-left"===e){let n=v(t);u=n.w,p=n.x,c=m(o)}else"bottom-right"===e&&(u=g(t),c=m(o));y=u,C=c,x=p,w=h,this.$emit("node-resize",{nodeId:this.node.id,width:u,height:c,x:p,y:h})};let y=a,C=s,x=l,w=d;const S=()=>{document.removeEventListener("mousemove",b),document.removeEventListener("mouseup",S),document.head.removeChild(o),setTimeout(()=>{this.infoPopupEditable=!0},0),this.$emit("node-resize-end",{nodeId:this.node.id,width:y,height:C,x:x,y:w})};document.addEventListener("mousemove",b),document.addEventListener("mouseup",S)}}};const Kc=Qc;var np=function(){var n=this,e=n.$createElement,t=n._self._c||e;return n.node.hidden?n._e():t("div",{class:n.classes,style:n.wrapperStyle,attrs:{"data-id":n.node.id},on:{mousedown:n.onMouseDown,mouseup:n.onMouseUp,mouseenter:n.onMouseEnter,mouseleave:n.onMouseLeave,dblclick:function(e){return e.stopPropagation(),n.onDoubleClick.apply(null,arguments)},contextmenu:function(e){return e.stopPropagation(),n.onContextMenu.apply(null,arguments)}}},[t("WPopup",{attrs:{placement:"bottom",modeHide:"mousedown",editable:n.infoPopupEditable,minWidth:null,maxWidth:null,autoFitMinWidth:!1,autoFitMaxWidth:!1,backgroundColor:n.inforPopupBackgroundColor,textFontSize:n.inforPopupTitleTextFontSize,paddingStyle:{v:8,h:12}},scopedSlots:n._u([{key:"trigger",fn:function(){return[t("NodeBody",{attrs:{node:n.node,connectable:n.connectable,selected:n.selected,resizable:n.resizable,locked:n.locked,hovered:n.hovered,lastW:n.cachedW,lastH:n.cachedH},on:{"resize-start":function(e){return n.onResizeStart(e.event,e.edge)},"connect-start":n.onConnectStart}})]},proxy:!0},{key:"content",fn:function(){return[n._t("node-popup",function(){return[n.node.name||n.node.description?t("div",{staticStyle:{"min-width":"120px"}},[n.node.name?t("div",{style:{fontSize:n.inforPopupTitleTextFontSize,color:n.inforPopupTitleTextColor,fontWeight:500}},[n._v(n._s(n.node.name))]):n._e(),n._v(" "),n.node.description?t("div",{style:{fontSize:n.inforPopupDescriptionTextFontSize,color:n.inforPopupDescriptionTextColor,marginTop:"4px"}},[n._v(n._s(n.node.description))]):n._e()]):n._e()]},{node:n.node})]},proxy:!0}],null,!0),model:{value:n.infoPopupShow,callback:function(e){n.infoPopupShow=e},expression:"infoPopupShow"}}),n._v(" "),t("transition",{attrs:{name:"vue-flow__fade"}},[(n.hovered||n.settingsPopupShow)&&n.draggable&&!n.locked&&n.settingsEnabled?t("div",{staticClass:"vue-flow__node-settings-anchor"},[t("WPopup",{attrs:{placement:"right-start",modeHide:"mousedown",minWidth:null,maxWidth:null,autoFitMinWidth:!1,autoFitMaxWidth:!1,backgroundColor:n.settingsPopupBackgroundColor,textColor:n.settingsPopupTextColor,paddingStyle:{v:8,h:8}},on:{show:function(e){return n.$emit("node-settings-click",{node:n.node})}},scopedSlots:n._u([{key:"trigger",fn:function(){return[t("div",{staticClass:"vue-flow__node-settings"},[t("svg",{attrs:{viewBox:"0 0 20 20",width:"14",height:"14",fill:"currentColor"}},[t("path",{attrs:{d:"M11.078 0l.294 1.833a7.587 7.587 0 0 1 2.174 1.25l1.725-.618 1.078 1.87-1.43 1.217a7.508 7.508 0 0 1 0 2.498l1.43 1.217-1.078 1.87-1.725-.618a7.587 7.587 0 0 1-2.174 1.25L11.078 14H8.922l-.294-1.833a7.587 7.587 0 0 1-2.174-1.25l-1.725.618-1.078-1.87 1.43-1.217a7.508 7.508 0 0 1 0-2.498L3.65 4.733l1.078-1.87 1.725.618a7.587 7.587 0 0 1 2.174-1.25L8.922 0h2.156zM10 4.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5z",transform:"translate(0 3)"}})])])]},proxy:!0},{key:"content",fn:function(){return[t("NodeSettingsForm",{attrs:{node:n.node,"def-node":n.dn,"text-font-size":n.settingsPopupTextFontSize,excludes:n.settingsExcludes},on:{update:n.onSettingsUpdate,delete:n.onSettingsDelete}})]},proxy:!0}],null,!1,4123440218),model:{value:n.settingsPopupShow,callback:function(e){n.settingsPopupShow=e},expression:"settingsPopupShow"}})],1):n._e()])],1)};np._withStripped=!0;const ep={name:"NodeRenderer",components:{NodeWrapper:Xr({render:np,staticRenderFns:[]},function(n){n&&n("data-v-088e6a01_0",{source:"\n.vue-flow__node[data-v-088e6a01] {\r\n position: absolute;\r\n cursor: grab;\r\n user-select: none;\r\n pointer-events: all;\r\n box-sizing: border-box;\r\n border: 1px solid #bbb;\r\n border-radius: 3px;\r\n background: #fff;\r\n font-family: 'Microsoft JhengHei', '微軟正黑體', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\r\n font-size: 12px;\r\n text-align: center;\r\n white-space: nowrap;\r\n transition: border-color 0.2s ease, box-shadow 0.3s ease;\n}\n.vue-flow__node[data-v-088e6a01]:hover {\r\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);\n}\n.vue-flow__node--selected[data-v-088e6a01] {\r\n box-shadow: 0 0 8px 2px rgba(220, 38, 38, 0.5);\n}\n.vue-flow__node--selected[data-v-088e6a01]:hover {\r\n box-shadow: 0 0 8px 2px rgba(220, 38, 38, 0.5);\n}\n.vue-flow__node--dragging[data-v-088e6a01] {\r\n cursor: grabbing;\r\n z-index: 1000 !important;\n}\r\n\r\n/* Settings icon anchor (positioning only) */\n.vue-flow__node-settings-anchor[data-v-088e6a01] {\r\n position: absolute;\r\n top: -8px;\r\n right: -8px;\r\n z-index: 2;\r\n pointer-events: all;\n}\r\n/* Settings icon (appearance only) */\n.vue-flow__node-settings[data-v-088e6a01] {\r\n width: 20px;\r\n height: 20px;\r\n border-radius: 50%;\r\n background: #fff;\r\n border: 1px solid #ccc;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n transition: border-color 0.15s ease, background 0.15s ease;\r\n color: #888;\n}\n.vue-flow__node-settings[data-v-088e6a01]:hover {\r\n border-color: #666;\r\n background: #f0f0f0;\r\n color: #333;\n}\r\n\r\n\r\n/* Shared SVG shape base styles */\n.vue-flow__node--diamond[data-v-088e6a01],\r\n.vue-flow__node--ellipse[data-v-088e6a01],\r\n.vue-flow__node--triangle[data-v-088e6a01] {\r\n background: transparent !important;\r\n border-color: transparent !important;\r\n border-radius: 0 !important;\n}\n.vue-flow__node--diamond[data-v-088e6a01]:hover,\r\n.vue-flow__node--ellipse[data-v-088e6a01]:hover,\r\n.vue-flow__node--triangle[data-v-088e6a01]:hover {\r\n box-shadow: none !important;\n}\n.vue-flow__node--diamond.vue-flow__node--selected[data-v-088e6a01],\r\n.vue-flow__node--ellipse.vue-flow__node--selected[data-v-088e6a01],\r\n.vue-flow__node--triangle.vue-flow__node--selected[data-v-088e6a01] {\r\n border-color: transparent !important;\r\n box-shadow: none !important;\n}\n.vue-flow__node--diamond.vue-flow__node--selected[data-v-088e6a01]:hover,\r\n.vue-flow__node--ellipse.vue-flow__node--selected[data-v-088e6a01]:hover,\r\n.vue-flow__node--triangle.vue-flow__node--selected[data-v-088e6a01]:hover {\r\n border-color: transparent !important;\r\n box-shadow: none !important;\n}\r\n/* SVG shape hover */\r\n/* polygon/ellipse live inside the NodeFace child component, so ::v-deep is\r\n required — a plain scoped selector would pin this component's data-v\r\n attribute onto the child's inner elements and never match. */\n.vue-flow__node--diamond[data-v-088e6a01]:hover .vue-flow__shape-svg polygon,\r\n.vue-flow__node--triangle[data-v-088e6a01]:hover .vue-flow__shape-svg polygon,\r\n.vue-flow__node--ellipse[data-v-088e6a01]:hover .vue-flow__shape-svg ellipse {\r\n filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.15));\n}\r\n/* SVG shape selected: red shadow */\n.vue-flow__node--diamond.vue-flow__node--selected[data-v-088e6a01] .vue-flow__shape-svg polygon,\r\n.vue-flow__node--triangle.vue-flow__node--selected[data-v-088e6a01] .vue-flow__shape-svg polygon,\r\n.vue-flow__node--ellipse.vue-flow__node--selected[data-v-088e6a01] .vue-flow__shape-svg ellipse {\r\n filter: drop-shadow(0 0 6px rgba(220, 38, 38, 0.6));\n}\r\n/* Fade transition for settings icon and resize handles */\n.vue-flow__fade-enter-active[data-v-088e6a01],\r\n.vue-flow__fade-leave-active[data-v-088e6a01] {\r\n transition: opacity 0.15s ease;\n}\n.vue-flow__fade-enter[data-v-088e6a01],\r\n.vue-flow__fade-leave-to[data-v-088e6a01] {\r\n opacity: 0;\n}\r\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\nodes\\NodeWrapper.vue"],names:[],mappings:";AAiZA;EACA,kBAAA;EACA,YAAA;EACA,iBAAA;EACA,mBAAA;EACA,sBAAA;EACA,sBAAA;EACA,kBAAA;EACA,gBAAA;EACA,6GAAA;EACA,eAAA;EACA,kBAAA;EACA,mBAAA;EACA,wDAAA;AACA;AACA;EACA,yCAAA;AACA;AACA;EACA,8CAAA;AACA;AACA;EACA,8CAAA;AACA;AACA;EACA,gBAAA;EACA,wBAAA;AACA;;AAEA,4CAAA;AACA;EACA,kBAAA;EACA,SAAA;EACA,WAAA;EACA,UAAA;EACA,mBAAA;AACA;AACA,oCAAA;AACA;EACA,WAAA;EACA,YAAA;EACA,kBAAA;EACA,gBAAA;EACA,sBAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,eAAA;EACA,0DAAA;EACA,WAAA;AACA;AACA;EACA,kBAAA;EACA,mBAAA;EACA,WAAA;AACA;;;AAGA,iCAAA;AACA;;;EAGA,kCAAA;EACA,oCAAA;EACA,2BAAA;AACA;AACA;;;EAGA,2BAAA;AACA;AACA;;;EAGA,oCAAA;EACA,2BAAA;AACA;AACA;;;EAGA,oCAAA;EACA,2BAAA;AACA;AACA,oBAAA;AACA;;+DAEA;AACA;;;EAGA,kDAAA;AACA;AACA,mCAAA;AACA;;;EAGA,mDAAA;AACA;AACA,yDAAA;AACA;;EAEA,8BAAA;AACA;AACA;;EAEA,UAAA;AACA",file:"NodeWrapper.vue",sourcesContent:["<template>\r\n <div\r\n v-if=\"!node.hidden\"\r\n :class=\"classes\"\r\n :style=\"wrapperStyle\"\r\n :data-id=\"node.id\"\r\n @mousedown=\"onMouseDown\"\r\n @mouseup=\"onMouseUp\"\r\n @mouseenter=\"onMouseEnter\"\r\n @mouseleave=\"onMouseLeave\"\r\n @dblclick.stop=\"onDoubleClick\"\r\n @contextmenu.stop=\"onContextMenu\"\r\n >\r\n <WPopup\r\n v-model=\"infoPopupShow\"\r\n placement=\"bottom\"\r\n modeHide=\"mousedown\"\r\n :editable=\"infoPopupEditable\"\r\n :minWidth=\"null\"\r\n :maxWidth=\"null\"\r\n :autoFitMinWidth=\"false\"\r\n :autoFitMaxWidth=\"false\"\r\n :backgroundColor=\"inforPopupBackgroundColor\"\r\n :textFontSize=\"inforPopupTitleTextFontSize\"\r\n :paddingStyle=\"{v:8,h:12}\"\r\n >\r\n <template v-slot:trigger>\r\n <NodeBody\r\n :node=\"node\"\r\n :connectable=\"connectable\"\r\n :selected=\"selected\"\r\n :resizable=\"resizable\"\r\n :locked=\"locked\"\r\n :hovered=\"hovered\"\r\n :lastW=\"cachedW\"\r\n :lastH=\"cachedH\"\r\n @resize-start=\"onResizeStart($event.event, $event.edge)\"\r\n @connect-start=\"onConnectStart\"\r\n />\r\n </template>\r\n <template v-slot:content>\r\n <slot name=\"node-popup\" :node=\"node\">\r\n <div v-if=\"node.name || node.description\" style=\"min-width:120px\">\r\n <div v-if=\"node.name\" :style=\"{ fontSize: inforPopupTitleTextFontSize, color: inforPopupTitleTextColor, fontWeight: 500 }\">{{ node.name }}</div>\r\n <div v-if=\"node.description\" :style=\"{ fontSize: inforPopupDescriptionTextFontSize, color: inforPopupDescriptionTextColor, marginTop: '4px' }\">{{ node.description }}</div>\r\n </div>\r\n </slot>\r\n </template>\r\n </WPopup>\r\n \x3c!-- Settings popup --\x3e\r\n <transition name=\"vue-flow__fade\">\r\n <div v-if=\"(hovered || settingsPopupShow) && draggable && !locked && settingsEnabled\" class=\"vue-flow__node-settings-anchor\">\r\n <WPopup\r\n v-model=\"settingsPopupShow\"\r\n placement=\"right-start\"\r\n modeHide=\"mousedown\"\r\n :minWidth=\"null\"\r\n :maxWidth=\"null\"\r\n :autoFitMinWidth=\"false\"\r\n :autoFitMaxWidth=\"false\"\r\n :backgroundColor=\"settingsPopupBackgroundColor\"\r\n :textColor=\"settingsPopupTextColor\"\r\n :paddingStyle=\"{v:8,h:8}\"\r\n @show=\"$emit('node-settings-click', { node: node })\"\r\n >\r\n <template v-slot:trigger>\r\n <div class=\"vue-flow__node-settings\">\r\n <svg viewBox=\"0 0 20 20\" width=\"14\" height=\"14\" fill=\"currentColor\">\r\n <path d=\"M11.078 0l.294 1.833a7.587 7.587 0 0 1 2.174 1.25l1.725-.618 1.078 1.87-1.43 1.217a7.508 7.508 0 0 1 0 2.498l1.43 1.217-1.078 1.87-1.725-.618a7.587 7.587 0 0 1-2.174 1.25L11.078 14H8.922l-.294-1.833a7.587 7.587 0 0 1-2.174-1.25l-1.725.618-1.078-1.87 1.43-1.217a7.508 7.508 0 0 1 0-2.498L3.65 4.733l1.078-1.87 1.725.618a7.587 7.587 0 0 1 2.174-1.25L8.922 0h2.156zM10 4.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5z\" transform=\"translate(0 3)\"/>\r\n </svg>\r\n </div>\r\n </template>\r\n <template v-slot:content>\r\n <NodeSettingsForm\r\n :node=\"node\"\r\n :def-node=\"dn\"\r\n :text-font-size=\"settingsPopupTextFontSize\"\r\n :excludes=\"settingsExcludes\"\r\n @update=\"onSettingsUpdate\"\r\n @delete=\"onSettingsDelete\"\r\n />\r\n </template>\r\n </WPopup>\r\n </div>\r\n </transition>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport NodeBody from './NodeBody.vue'\r\nimport NodeSettingsForm from '../ui/NodeSettingsForm.vue'\r\nimport WPopup from 'w-component-vue/src/components/WPopup.vue'\r\n\r\nexport default {\r\n name: 'NodeWrapper',\r\n components: { NodeBody, NodeSettingsForm, WPopup },\r\n inject: { getDefNode: { default: () => () => ({}) }, getDragGhost: { default: () => () => null } },\r\n props: {\r\n node: { type: Object, required: true },\r\n selected: { type: Boolean, default: false },\r\n draggable: { type: Boolean, default: true },\r\n connectable: { type: Boolean, default: true },\r\n resizable: { type: Boolean, default: true },\r\n locked: { type: Boolean, default: false },\r\n settingsPopupBackgroundColor: { type: String, default: '#fff' },\r\n settingsPopupTextColor: { type: String, default: '#333' },\r\n settingsPopupTextFontSize: { type: String, default: '12px' },\r\n inforPopupBackgroundColor: { type: String, default: '#fff' },\r\n inforPopupTitleTextColor: { type: String, default: '#333' },\r\n inforPopupTitleTextFontSize: { type: String, default: '12px' },\r\n inforPopupDescriptionTextColor: { type: String, default: '#888' },\r\n inforPopupDescriptionTextFontSize: { type: String, default: '10px' },\r\n snapGridSize: { type: Number, default: null },\r\n settingsEnabled: { type: Boolean, default: true },\r\n settingsExcludes: { type: Array, default: () => [] },\r\n },\r\n computed: {\r\n dn() {\r\n return this.getDefNode()\r\n },\r\n isDiamond() {\r\n return this.node.shape === 'diamond'\r\n },\r\n isEllipse() {\r\n return this.node.shape === 'ellipse'\r\n },\r\n isTriangle() {\r\n let s = this.node.shape\r\n return s === 'triangle' || s === 'triangle-right' || s === 'triangle-down' || s === 'triangle-left'\r\n },\r\n isSvgShape() {\r\n return this.isDiamond || this.isEllipse || this.isTriangle\r\n },\r\n classes() {\r\n const nodeClasses = this.node.class\r\n ? (Array.isArray(this.node.class) ? this.node.class : [this.node.class])\r\n : []\r\n return [\r\n 'vue-flow__node',\r\n `vue-flow__node-${this.node.type || 'basic'}`,\r\n ...nodeClasses,\r\n {\r\n 'vue-flow__node--selected': this.selected,\r\n 'vue-flow__node--dragging': this.isDragging,\r\n 'vue-flow__node--locked': this.locked,\r\n 'vue-flow__node--diamond': this.isDiamond,\r\n 'vue-flow__node--ellipse': this.isEllipse,\r\n 'vue-flow__node--triangle': this.isTriangle,\r\n },\r\n ]\r\n },\r\n wrapperStyle() {\r\n const d = this.dn\r\n const n = this.node\r\n //拖曳/縮放ghost(細粒度): 進行中之暫時幾何優先(per-key反應式, 只有本節點被拖/縮放時才觸發重渲染)\r\n const g = this.getDragGhost(n.id)\r\n const px = g ? g.x : n.position.x\r\n const py = g ? g.y : n.position.y\r\n const w = (g && g.width !== undefined) ? g.width : n.width\r\n const h = (g && g.height !== undefined) ? g.height : n.height\r\n const style = {\r\n transform: `translate(${px}px, ${py}px)`,\r\n zIndex: n.zIndex || 0,\r\n // Nodes with an explicit width wrap long names instead of\r\n // overflowing (base CSS is nowrap); per-node style can override.\r\n ...(w ? { whiteSpace: 'pre-line' } : {}),\r\n ...(n.style || {}),\r\n }\r\n if (w) style.width = typeof w === 'number' ? `${w}px` : w\r\n if (h) style.height = typeof h === 'number' ? `${h}px` : h\r\n if (!this.isSvgShape) {\r\n let fColor = n.faceColor || d.faceColor\r\n if (fColor) style.background = fColor\r\n let eColor = n.edgeColor || d.edgeColor\r\n if (eColor) style.borderColor = eColor\r\n let eWidth = n.edgeWidth !== undefined ? n.edgeWidth : d.edgeWidth\r\n if (eWidth !== undefined) style.borderWidth = eWidth + 'px'\r\n }\r\n let fs = n.fontSize || d.fontSize\r\n if (fs) style.fontSize = fs + 'px'\r\n let fc = n.fontColor || d.fontColor\r\n if (fc) style.color = fc\r\n return style\r\n },\r\n },\r\n data() {\r\n return {\r\n isDragging: false,\r\n hovered: false,\r\n infoPopupShow: false,\r\n infoPopupEditable: true,\r\n settingsPopupShow: false,\r\n cachedW: 0,\r\n cachedH: 0,\r\n }\r\n },\r\n watch: {\r\n settingsPopupShow(val) {\r\n if (val) this.infoPopupShow = false\r\n },\r\n infoPopupShow(val) {\r\n if (val) this.settingsPopupShow = false\r\n },\r\n },\r\n mounted() {\r\n this.$nextTick(() => this.reportDimensions())\r\n },\r\n updated() {\r\n this.reportDimensions()\r\n },\r\n methods: {\r\n reportDimensions() {\r\n if (!this.$el) return\r\n const w = this.$el.offsetWidth\r\n const h = this.$el.offsetHeight\r\n if (w === this.cachedW && h === this.cachedH) return\r\n this.cachedW = w\r\n this.cachedH = h\r\n this.$emit('dimensions', { nodeId: this.node.id, width: w, height: h })\r\n },\r\n onMouseDown(event) {\r\n //點設定齒輪(及其popup錨區)不啟動節點拖曳/點擊: 齒輪刻意不用@mousedown.stop(stopPropagation會擋掉window層WPopup互斥協調),\r\n //故於此明確排除, 使點齒輪只開設定popup、不移動節點座標(避免尚未變更設定就先改到座標→誤觸發變更儲存)\r\n if (event.target.closest && event.target.closest('.vue-flow__node-settings-anchor')) {\r\n this._mouseDownPos = null\r\n return\r\n }\r\n this._mouseDownPos = { x: event.clientX, y: event.clientY }\r\n if (!this.draggable) return\r\n if (this.node.dragHandle) {\r\n const handle = event.target.closest(this.node.dragHandle)\r\n if (!handle) return\r\n }\r\n this.infoPopupShow = false\r\n this.$emit('drag-start', { node: this.node, event })\r\n const startX = event.clientX\r\n const startY = event.clientY\r\n const onDragMove = (e) => {\r\n if (Math.abs(e.clientX - startX) > 2 || Math.abs(e.clientY - startY) > 2) {\r\n this.infoPopupEditable = false\r\n document.removeEventListener('mousemove', onDragMove)\r\n }\r\n }\r\n const onDragEnd = () => {\r\n document.removeEventListener('mousemove', onDragMove)\r\n document.removeEventListener('mouseup', onDragEnd)\r\n if (!this.infoPopupEditable) {\r\n setTimeout(() => {\r\n this.infoPopupEditable = true\r\n }, 0)\r\n }\r\n }\r\n document.addEventListener('mousemove', onDragMove)\r\n document.addEventListener('mouseup', onDragEnd)\r\n },\r\n onMouseUp(event) {\r\n if (!this._mouseDownPos) return\r\n const dx = event.clientX - this._mouseDownPos.x\r\n const dy = event.clientY - this._mouseDownPos.y\r\n this._mouseDownPos = null\r\n if (Math.abs(dx) < 3 && Math.abs(dy) < 3) {\r\n this.$emit('node-click', { node: this.node, event })\r\n }\r\n },\r\n onDoubleClick(event) {\r\n this.$emit('node-double-click', { node: this.node, event })\r\n },\r\n openInfoPopup() {\r\n this.infoPopupShow = true\r\n },\r\n onContextMenu(event) {\r\n this.$emit('node-context-menu', { node: this.node, event })\r\n },\r\n onConnectStart(payload) {\r\n this.$emit('connect-start', { ...payload, nodeId: this.node.id })\r\n },\r\n onMouseEnter(event) {\r\n this.hovered = true\r\n this.$emit('node-mouseenter', { node: this.node, event })\r\n },\r\n onMouseLeave(event) {\r\n this.hovered = false\r\n this.$emit('node-mouseleave', { node: this.node, event })\r\n },\r\n onSettingsUpdate(key, value) {\r\n this.$emit('node-settings-update', { node: this.node, key, value })\r\n },\r\n onSettingsDelete() {\r\n this.$emit('node-settings-delete', { node: this.node })\r\n },\r\n onResizeStart(event, edge) {\r\n this.infoPopupShow = false\r\n this.$nextTick(() => {\r\n this.infoPopupEditable = false\r\n })\r\n event.preventDefault()\r\n\r\n // Lock cursor for the entire drag duration\r\n const cursorMap = {\r\n 'top-left': 'nwse-resize',\r\n 'bottom-right': 'nwse-resize',\r\n 'top-right': 'nesw-resize',\r\n 'bottom-left': 'nesw-resize',\r\n }\r\n const lockedCursor = cursorMap[edge] || 'default'\r\n const cursorStyle = document.createElement('style')\r\n cursorStyle.textContent = '* { cursor: ' + lockedCursor + ' !important; }'\r\n document.head.appendChild(cursorStyle)\r\n\r\n const startX = event.clientX\r\n const startY = event.clientY\r\n const startW = this.node.width || this.$el.offsetWidth\r\n const startH = this.node.height || this.$el.offsetHeight\r\n const startPosX = this.node.position.x\r\n const startPosY = this.node.position.y\r\n const snap = this.snapGridSize\r\n const minSize = snap || 10\r\n // Get zoom from the viewport transform\r\n const viewport = this.$el.closest('.vue-flow__viewport')\r\n const zoom = viewport ? parseFloat(viewport.style.transform.match(/scale\\(([^)]+)\\)/)?.[1] || 1) : 1\r\n\r\n const snapVal = (v) => snap ? Math.max(snap, Math.round(v / snap) * snap) : Math.max(minSize, Math.round(v))\r\n\r\n const resizeRight = (dx) => snapVal(startW + dx)\r\n const resizeLeft = (dx) => {\r\n const newW = snapVal(startW - dx)\r\n return { w: newW, x: startPosX + (startW - newW) }\r\n }\r\n const resizeBottom = (dy) => snapVal(startH + dy)\r\n const resizeTop = (dy) => {\r\n const newH = snapVal(startH - dy)\r\n return { h: newH, y: startPosY + (startH - newH) }\r\n }\r\n\r\n const onMouseMove = (e) => {\r\n const dx = (e.clientX - startX) / zoom\r\n const dy = (e.clientY - startY) / zoom\r\n let newW = startW; let newH = startH; let newX = startPosX; let newY = startPosY\r\n\r\n if (edge === 'top-left') {\r\n let rl2 = resizeLeft(dx); newW = rl2.w; newX = rl2.x\r\n let rt2 = resizeTop(dy); newH = rt2.h; newY = rt2.y\r\n }\r\n else if (edge === 'top-right') {\r\n newW = resizeRight(dx)\r\n let rt3 = resizeTop(dy); newH = rt3.h; newY = rt3.y\r\n }\r\n else if (edge === 'bottom-left') {\r\n let rl3 = resizeLeft(dx); newW = rl3.w; newX = rl3.x\r\n newH = resizeBottom(dy)\r\n }\r\n else if (edge === 'bottom-right') {\r\n newW = resizeRight(dx)\r\n newH = resizeBottom(dy)\r\n }\r\n\r\n //closure追蹤縮放最終值供resize-end發送\r\n //why: 縮放中node本體不變動(ghost僅作用於視覺), this.node.*是原值, 不可作為結果\r\n lastW = newW\r\n lastH = newH\r\n lastX = newX\r\n lastY = newY\r\n\r\n this.$emit('node-resize', {\r\n nodeId: this.node.id,\r\n width: newW,\r\n height: newH,\r\n x: newX,\r\n y: newY,\r\n })\r\n }\r\n\r\n let lastW = startW\r\n let lastH = startH\r\n let lastX = startPosX\r\n let lastY = startPosY\r\n\r\n const onMouseUp = () => {\r\n document.removeEventListener('mousemove', onMouseMove)\r\n document.removeEventListener('mouseup', onMouseUp)\r\n document.head.removeChild(cursorStyle)\r\n setTimeout(() => {\r\n this.infoPopupEditable = true\r\n }, 0)\r\n this.$emit('node-resize-end', {\r\n nodeId: this.node.id,\r\n width: lastW,\r\n height: lastH,\r\n x: lastX,\r\n y: lastY,\r\n })\r\n }\r\n\r\n document.addEventListener('mousemove', onMouseMove)\r\n document.addEventListener('mouseup', onMouseUp)\r\n },\r\n },\r\n}\r\n<\/script>\r\n\r\n<style scoped>\r\n.vue-flow__node {\r\n position: absolute;\r\n cursor: grab;\r\n user-select: none;\r\n pointer-events: all;\r\n box-sizing: border-box;\r\n border: 1px solid #bbb;\r\n border-radius: 3px;\r\n background: #fff;\r\n font-family: 'Microsoft JhengHei', '微軟正黑體', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\r\n font-size: 12px;\r\n text-align: center;\r\n white-space: nowrap;\r\n transition: border-color 0.2s ease, box-shadow 0.3s ease;\r\n}\r\n.vue-flow__node:hover {\r\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);\r\n}\r\n.vue-flow__node--selected {\r\n box-shadow: 0 0 8px 2px rgba(220, 38, 38, 0.5);\r\n}\r\n.vue-flow__node--selected:hover {\r\n box-shadow: 0 0 8px 2px rgba(220, 38, 38, 0.5);\r\n}\r\n.vue-flow__node--dragging {\r\n cursor: grabbing;\r\n z-index: 1000 !important;\r\n}\r\n\r\n/* Settings icon anchor (positioning only) */\r\n.vue-flow__node-settings-anchor {\r\n position: absolute;\r\n top: -8px;\r\n right: -8px;\r\n z-index: 2;\r\n pointer-events: all;\r\n}\r\n/* Settings icon (appearance only) */\r\n.vue-flow__node-settings {\r\n width: 20px;\r\n height: 20px;\r\n border-radius: 50%;\r\n background: #fff;\r\n border: 1px solid #ccc;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n transition: border-color 0.15s ease, background 0.15s ease;\r\n color: #888;\r\n}\r\n.vue-flow__node-settings:hover {\r\n border-color: #666;\r\n background: #f0f0f0;\r\n color: #333;\r\n}\r\n\r\n\r\n/* Shared SVG shape base styles */\r\n.vue-flow__node--diamond,\r\n.vue-flow__node--ellipse,\r\n.vue-flow__node--triangle {\r\n background: transparent !important;\r\n border-color: transparent !important;\r\n border-radius: 0 !important;\r\n}\r\n.vue-flow__node--diamond:hover,\r\n.vue-flow__node--ellipse:hover,\r\n.vue-flow__node--triangle:hover {\r\n box-shadow: none !important;\r\n}\r\n.vue-flow__node--diamond.vue-flow__node--selected,\r\n.vue-flow__node--ellipse.vue-flow__node--selected,\r\n.vue-flow__node--triangle.vue-flow__node--selected {\r\n border-color: transparent !important;\r\n box-shadow: none !important;\r\n}\r\n.vue-flow__node--diamond.vue-flow__node--selected:hover,\r\n.vue-flow__node--ellipse.vue-flow__node--selected:hover,\r\n.vue-flow__node--triangle.vue-flow__node--selected:hover {\r\n border-color: transparent !important;\r\n box-shadow: none !important;\r\n}\r\n/* SVG shape hover */\r\n/* polygon/ellipse live inside the NodeFace child component, so ::v-deep is\r\n required — a plain scoped selector would pin this component's data-v\r\n attribute onto the child's inner elements and never match. */\r\n.vue-flow__node--diamond:hover ::v-deep .vue-flow__shape-svg polygon,\r\n.vue-flow__node--triangle:hover ::v-deep .vue-flow__shape-svg polygon,\r\n.vue-flow__node--ellipse:hover ::v-deep .vue-flow__shape-svg ellipse {\r\n filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.15));\r\n}\r\n/* SVG shape selected: red shadow */\r\n.vue-flow__node--diamond.vue-flow__node--selected ::v-deep .vue-flow__shape-svg polygon,\r\n.vue-flow__node--triangle.vue-flow__node--selected ::v-deep .vue-flow__shape-svg polygon,\r\n.vue-flow__node--ellipse.vue-flow__node--selected ::v-deep .vue-flow__shape-svg ellipse {\r\n filter: drop-shadow(0 0 6px rgba(220, 38, 38, 0.6));\r\n}\r\n/* Fade transition for settings icon and resize handles */\r\n.vue-flow__fade-enter-active,\r\n.vue-flow__fade-leave-active {\r\n transition: opacity 0.15s ease;\r\n}\r\n.vue-flow__fade-enter,\r\n.vue-flow__fade-leave-to {\r\n opacity: 0;\r\n}\r\n</style>\r\n"]},media:void 0})},Kc,"data-v-088e6a01",false,void 0,!1,Zr,void 0,void 0)},props:{nodes:{type:Array,default:()=>[]},selectedNodeIds:{type:Array,default:()=>[]},nodesDraggable:{type:Boolean,default:!0},nodesConnectable:{type:Boolean,default:!0},nodesResizable:{type:Boolean,default:!0},locked:{type:Boolean,default:!1},settingsPopupBackgroundColor:{type:String,default:"#fff"},settingsPopupTextColor:{type:String,default:"#333"},settingsPopupTextFontSize:{type:String,default:"12px"},inforPopupBackgroundColor:{type:String,default:"#fff"},inforPopupTitleTextColor:{type:String,default:"#333"},inforPopupTitleTextFontSize:{type:String,default:"12px"},inforPopupDescriptionTextColor:{type:String,default:"#888"},inforPopupDescriptionTextFontSize:{type:String,default:"10px"},snapGridSize:{type:Number,default:null},settingsEnabled:{type:Boolean,default:!0},settingsExcludes:{type:Array,default:()=>[]}},computed:{visibleNodes(){return this.nodes.filter(n=>!n.hidden)}},methods:{isSelected(n){return this.selectedNodeIds.includes(n)},isDraggable(n){return void 0!==n.draggable?n.draggable:this.nodesDraggable},isConnectable(n){return void 0!==n.connectable?n.connectable:this.nodesConnectable},isResizable(n){return void 0!==n.resizable?n.resizable:this.nodesResizable},openNodeInfoPopup(n){let e=(this.$refs.wrappers||[]).find(e=>e.node&&e.node.id===n);return!!e&&(e.openInfoPopup(),!0)}}};var tp=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{staticClass:"vue-flow__nodes"},n._l(n.visibleNodes,function(e){return t("NodeWrapper",{key:e.id,ref:"wrappers",refInFor:!0,attrs:{node:e,selected:n.isSelected(e.id),draggable:n.isDraggable(e),connectable:n.isConnectable(e),resizable:n.isResizable(e),locked:n.locked,"settings-popup-background-color":n.settingsPopupBackgroundColor,"settings-popup-text-color":n.settingsPopupTextColor,"settings-popup-text-font-size":n.settingsPopupTextFontSize,"infor-popup-background-color":n.inforPopupBackgroundColor,"infor-popup-title-text-color":n.inforPopupTitleTextColor,"infor-popup-title-text-font-size":n.inforPopupTitleTextFontSize,"infor-popup-description-text-color":n.inforPopupDescriptionTextColor,"infor-popup-description-text-font-size":n.inforPopupDescriptionTextFontSize,"snap-grid-size":n.snapGridSize,"settings-enabled":n.settingsEnabled,"settings-excludes":n.settingsExcludes},on:{"drag-start":function(e){return n.$emit("drag-start",e)},"node-click":function(e){return n.$emit("node-click",e)},"node-double-click":function(e){return n.$emit("node-double-click",e)},"node-context-menu":function(e){return n.$emit("node-context-menu",e)},"node-settings-click":function(e){return n.$emit("node-settings-click",e)},"node-settings-update":function(e){return n.$emit("node-settings-update",e)},"node-settings-delete":function(e){return n.$emit("node-settings-delete",e)},"node-mouseenter":function(e){return n.$emit("node-mouseenter",e)},"node-mouseleave":function(e){return n.$emit("node-mouseleave",e)},"connect-start":function(e){return n.$emit("connect-start",e)},dimensions:function(e){return n.$emit("dimensions",e)},"node-resize":function(e){return n.$emit("node-resize",e)},"node-resize-end":function(e){return n.$emit("node-resize-end",e)}},scopedSlots:n._u([n.$scopedSlots["node-popup"]?{key:"node-popup",fn:function(e){return[n._t("node-popup",null,null,e)]}}:null],null,!0)})}),1)};tp._withStripped=!0;const op=Xr({render:tp,staticRenderFns:[]},function(n){n&&n("data-v-ddb0e4d0_0",{source:"\n.vue-flow__nodes[data-v-ddb0e4d0] {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 0;\r\n height: 0;\n}\r\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\nodes\\NodeRenderer.vue"],names:[],mappings:";AAmGA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,QAAA;EACA,SAAA;AACA",file:"NodeRenderer.vue",sourcesContent:['<template>\r\n <div class="vue-flow__nodes">\r\n <NodeWrapper\r\n v-for="node in visibleNodes"\r\n ref="wrappers"\r\n :key="node.id"\r\n :node="node"\r\n :selected="isSelected(node.id)"\r\n :draggable="isDraggable(node)"\r\n :connectable="isConnectable(node)"\r\n :resizable="isResizable(node)"\r\n :locked="locked"\r\n :settings-popup-background-color="settingsPopupBackgroundColor"\r\n :settings-popup-text-color="settingsPopupTextColor"\r\n :settings-popup-text-font-size="settingsPopupTextFontSize"\r\n :infor-popup-background-color="inforPopupBackgroundColor"\r\n :infor-popup-title-text-color="inforPopupTitleTextColor"\r\n :infor-popup-title-text-font-size="inforPopupTitleTextFontSize"\r\n :infor-popup-description-text-color="inforPopupDescriptionTextColor"\r\n :infor-popup-description-text-font-size="inforPopupDescriptionTextFontSize"\r\n :snap-grid-size="snapGridSize"\r\n :settings-enabled="settingsEnabled"\r\n :settings-excludes="settingsExcludes"\r\n @drag-start="$emit(\'drag-start\', $event)"\r\n @node-click="$emit(\'node-click\', $event)"\r\n @node-double-click="$emit(\'node-double-click\', $event)"\r\n @node-context-menu="$emit(\'node-context-menu\', $event)"\r\n @node-settings-click="$emit(\'node-settings-click\', $event)"\r\n @node-settings-update="$emit(\'node-settings-update\', $event)"\r\n @node-settings-delete="$emit(\'node-settings-delete\', $event)"\r\n @node-mouseenter="$emit(\'node-mouseenter\', $event)"\r\n @node-mouseleave="$emit(\'node-mouseleave\', $event)"\r\n @connect-start="$emit(\'connect-start\', $event)"\r\n @dimensions="$emit(\'dimensions\', $event)"\r\n @node-resize="$emit(\'node-resize\', $event)"\r\n @node-resize-end="$emit(\'node-resize-end\', $event)"\r\n >\r\n <template v-if="$scopedSlots[\'node-popup\']" v-slot:node-popup="scope">\r\n <slot name="node-popup" v-bind="scope" />\r\n </template>\r\n </NodeWrapper>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport NodeWrapper from \'./NodeWrapper.vue\'\r\n\r\nexport default {\r\n name: \'NodeRenderer\',\r\n components: { NodeWrapper },\r\n props: {\r\n nodes: { type: Array, default: () => [] },\r\n selectedNodeIds: { type: Array, default: () => [] },\r\n nodesDraggable: { type: Boolean, default: true },\r\n nodesConnectable: { type: Boolean, default: true },\r\n nodesResizable: { type: Boolean, default: true },\r\n locked: { type: Boolean, default: false },\r\n settingsPopupBackgroundColor: { type: String, default: \'#fff\' },\r\n settingsPopupTextColor: { type: String, default: \'#333\' },\r\n settingsPopupTextFontSize: { type: String, default: \'12px\' },\r\n inforPopupBackgroundColor: { type: String, default: \'#fff\' },\r\n inforPopupTitleTextColor: { type: String, default: \'#333\' },\r\n inforPopupTitleTextFontSize: { type: String, default: \'12px\' },\r\n inforPopupDescriptionTextColor: { type: String, default: \'#888\' },\r\n inforPopupDescriptionTextFontSize: { type: String, default: \'10px\' },\r\n snapGridSize: { type: Number, default: null },\r\n settingsEnabled: { type: Boolean, default: true },\r\n settingsExcludes: { type: Array, default: () => [] },\r\n },\r\n computed: {\r\n visibleNodes() {\r\n return this.nodes.filter(n => !n.hidden)\r\n },\r\n },\r\n methods: {\r\n isSelected(id) {\r\n return this.selectedNodeIds.includes(id)\r\n },\r\n isDraggable(node) {\r\n return node.draggable !== undefined ? node.draggable : this.nodesDraggable\r\n },\r\n isConnectable(node) {\r\n return node.connectable !== undefined ? node.connectable : this.nodesConnectable\r\n },\r\n isResizable(node) {\r\n return node.resizable !== undefined ? node.resizable : this.nodesResizable\r\n },\r\n openNodeInfoPopup(nodeId) {\r\n let wrappers = this.$refs.wrappers || []\r\n let w = wrappers.find(c => c.node && c.node.id === nodeId)\r\n if (!w) return false\r\n w.openInfoPopup()\r\n return true\r\n },\r\n },\r\n}\r\n<\/script>\r\n\r\n<style scoped>\r\n.vue-flow__nodes {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 0;\r\n height: 0;\r\n}\r\n</style>\r\n']},media:void 0})},ep,"data-v-ddb0e4d0",false,void 0,!1,Zr,void 0,void 0);let rp=new Map,ip=-1;function ap(){rp.clear(),ip=-1}function sp(n,e,t,o,r,i,a,s,l,d,u){let c=Math.floor(Date.now()/16);c!==ip&&(rp.clear(),ip=c);let p=Math.round(n/10)+","+Math.round(e/10)+","+Math.round(o/10)+","+Math.round(r/10)+","+t+","+i,f=rp.get(p);if(f)return f;let h=[];if(s&&s.length>0){let n=l||{};for(let e=0;e<s.length;e++){let t=s[e];if(t.hidden)continue;let o=n[t.id]&&n[t.id].width||t.width||100,r=n[t.id]&&n[t.id].height||t.height||40;h.push({l:t.position.x,t:t.position.y,r:t.position.x+o,b:t.position.y+r})}}let g=lp(h,n,e),v=lp(h,o,r),m=function(n,e,t,o,r,i,a,s,l){if(!a||!s)return null;let d=bp(t),u=bp(i),c=[[a.l,a.t,a.r-a.l,a.b-a.t],[s.l,s.t,s.r-s.l,s.b-s.t]],p=n-o,f=e-r,h=2*l;if(p*p+f*f<h*h)return null;let g=[[],[]];for(let n=0;n<2;n++)g[n][1]=c[n][0]-l,g[n][2]=c[n][1]-l,g[n][4]=c[n][0]+c[n][2]+l,g[n][8]=c[n][1]+c[n][3]+l;let v=[[.5,.5],[.5,.5]],m=c[0][2]||1,A=c[0][3]||1,b=c[1][2]||1,y=c[1][3]||1;v[0][0]=(n-c[0][0])/m,v[0][1]=(e-c[0][1])/A,v[1][0]=(o-c[1][0])/b,v[1][1]=(r-c[1][1])/y;let C=c[0][0]+c[0][2]/2,x=c[0][1]+c[0][3]/2,w=c[1][0]+c[1][2]/2,S=c[1][1]+c[1][3]/2,k=C-w,_=x-S,B=0;k<0?B=_<0?2:1:_<=0&&(B=0===k?2:3);let P=[];P[1]=Math.max(c[0][0]-(c[1][0]+c[1][2])-h,0),P[2]=Math.max(c[0][1]-(c[1][1]+c[1][3])-h,0),P[3]=Math.max(c[1][0]-(c[0][0]+c[0][2])-h,0),P[4]=Math.max(c[1][1]-(c[0][1]+c[0][3])-h,0);let T=d===pp?3:d,E=u===pp?3:u;T-=B,E-=B,T<1&&(T+=4);E<1&&(E+=4);let z=Ap[T-1][E-1],I=[];for(let n=0;n<12;n++)I[n]=[0,0];switch(I[0][0]=c[0][0],I[0][1]=c[0][1],d){case dp:I[0][0]-=l,I[0][1]+=v[0][1]*c[0][3];break;case cp:I[0][0]+=v[0][0]*c[0][2],I[0][1]+=c[0][3]+l;break;case pp:I[0][0]+=c[0][2]+l,I[0][1]+=v[0][1]*c[0][3];break;case up:I[0][0]+=v[0][0]*c[0][2],I[0][1]-=l}let F=0,H=(d&(pp|dp))>0?0:1,N=H;for(let n=0;n<z.length;n++){let e=15&z[n],t=e===pp?3:e;t+=B,t>4&&(t-=4);let o=mp[t-1],r=t%2>0?0:1;r!==H&&(F++,I[F]=[I[F-1][0],I[F-1][1]]);let i=(z[n]&vp)>0,a=(z[n]&gp)>0,s=(z[n]&fp)>>5;s<<=B,s>15&&(s>>=4);let l=(z[n]&hp)>0;if((a||i)&&s<9){let n,e=a?0:1;if(n=l&&0===r?c[e][0]+v[e][0]*c[e][2]:l?c[e][1]+v[e][1]*c[e][3]:g[e][s],0===r){let e=(n-I[F][0])*o[0];e>0&&(I[F][0]+=o[0]*e)}else{let e=(n-I[F][1])*o[1];e>0&&(I[F][1]+=o[1]*e)}}else l&&(I[F][0]+=o[0]*Math.abs(P[t]/2),I[F][1]+=o[1]*Math.abs(P[t]/2));F>0&&I[F][r]===I[F-1][r]?F--:H=r}let $=[{x:n,y:e}],W=((u&(pp|dp))>0?0:1)===N?0:1;for(let n=0;n<=F&&(n!==F||W===(F+1)%2);n++)$.push({x:Math.round(10*I[n][0])/10,y:Math.round(10*I[n][1])/10});$.push({x:o,y:r});let M=[$[0]];for(let n=1;n<$.length;n++)(Math.abs($[n].x-M[M.length-1].x)>.5||Math.abs($[n].y-M[M.length-1].y)>.5)&&M.push($[n]);return M}(n,e,t,o,r,i,g,v,a||24);return m||(m=function(n,e,t,o,r,i){let a=[{x:n,y:e}];i&&t>=i.l&&t<=i.r&&e>=i.t&&e<=i.b?r&&n>=r.l&&n<=r.r&&o>=r.t&&o<=r.b||a.push({x:n,y:o}):n!==t&&e!==o&&a.push({x:t,y:e});return a.push({x:t,y:o}),a}(n,e,o,r,g,v)),rp.size>200&&rp.clear(),rp.set(p,m),m}function lp(n,e,t){for(let o=0;o<n.length;o++){let r=n[o];if(e>=r.l-5&&e<=r.r+5&&t>=r.t-5&&t<=r.b+5)return r}return null}let dp=1,up=2,cp=4,pp=8,fp=480,hp=512,gp=1024,vp=2048,mp=[[-1,0],[0,-1],[1,0],[0,1],[-1,0],[0,-1],[1,0]],Ap=[[[513,2308,2081,2562],[513,1090,514,2184,2114,2561],[513,1090,514,2564,2184,2562],[513,2308,2561,1090,514,2568,2308]],[[514,1057,513,2308,2081,2562],[514,2184,2114,2561],[514,2184,2562,1057,513,2564,2184],[514,1057,513,2568,2308,2561]],[[1090,514,1057,513,2308,2081,2562],[2114,2561],[1090,2562,1057,513,2564,2184],[1090,514,1057,513,2308,2561,2568]],[[2081,2562],[1057,513,1090,514,2184,2114,2561],[1057,513,1090,514,2184,2562,2564],[1057,2561,1090,514,2568,2308]]];function bp(n){switch(n){case"left":return dp;case"top":return up;case"right":return pp;default:return cp}}function yp(n){if(!Array.isArray(n)||0===n.length)return null;const e=[];for(const t of n){let n=null,o=null;if(Array.isArray(t)&&t.length>=2?(n=Number(t[0]),o=Number(t[1])):t&&"object"==typeof t&&(n=Number(t.x),o=Number(t.y)),!Number.isFinite(n)||!Number.isFinite(o))return null;e.push({x:n,y:o})}return e}function Cp(n,e,t,o,r,i,a){const s=[{x:n,y:e}],l=n=>{const e=s[s.length-1];(Math.abs(n.x-e.x)>.5||Math.abs(n.y-e.y)>.5)&&s.push({x:n.x,y:n.y})};let d="left"===t||"right"===t;for(let n=0;n<a.length;n++){const e=a[n],t=s[s.length-1],o=Math.abs(e.x-t.x),r=Math.abs(e.y-t.y);let i;o>.5&&r>.5?(l(d?{x:e.x,y:t.y}:{x:t.x,y:e.y}),i=!d):i=o>.5,l(e),d=!i}const u=s[s.length-1],c="left"===i||"right"===i;return Math.abs(o-u.x)>.5&&Math.abs(r-u.y)>.5&&l(c?{x:u.x,y:r}:{x:o,y:u.y}),l({x:o,y:r}),s}function xp(n,e){switch(e){case"top":return{x:0,y:-n};case"bottom":return{x:0,y:n};case"left":return{x:-n,y:0};case"right":return{x:n,y:0};default:return{x:0,y:0}}}function wp({sourceX:n,sourceY:e,sourcePosition:t="bottom",targetX:o,targetY:r,targetPosition:i="top",curvature:a=.25,points:s}){const l=yp(s);if(l){const t=[{x:n,y:e},...l,{x:o,y:r}];let i=`M ${t[0].x},${t[0].y}`;for(let n=0;n<t.length-1;n++){const e=t[n-1]||t[n],o=t[n],r=t[n+1],a=t[n+2]||r;i+=` C ${o.x+(r.x-e.x)/6},${o.y+(r.y-e.y)/6} ${r.x-(a.x-o.x)/6},${r.y-(a.y-o.y)/6} ${r.x},${r.y}`}const a=Bp(t);return{path:i,labelX:a.x,labelY:a.y}}const d=Math.sqrt(Math.pow(o-n,2)+Math.pow(r-e,2)),u=Math.max(d*a,25),c=xp(u,t),p=xp(u,i),f=n+c.x,h=e+c.y,g=o+p.x,v=r+p.y;return{path:`M ${n},${e} C ${f},${h} ${g},${v} ${o},${r}`,labelX:(n+f+g+o)/4,labelY:(e+h+v+r)/4}}function Sp({sourceX:n,sourceY:e,targetX:t,targetY:o,points:r}){const i=yp(r);if(i){const r=[{x:n,y:e},...i,{x:t,y:o}],a=r.map((n,e)=>`${0===e?"M":"L"} ${n.x},${n.y}`).join(" "),s=Bp(r);return{path:a,labelX:s.x,labelY:s.y}}return{path:`M ${n},${e} L ${t},${o}`,labelX:(n+t)/2,labelY:(e+o)/2}}function kp({sourceX:n,sourceY:e,sourcePosition:t="bottom",targetX:o,targetY:r,targetPosition:i="top",offset:a=20,allNodes:s,nodeInternals:l,connFromId:d,connToId:u,points:c}){const p=yp(c),f=p?Cp(n,e,t,o,r,i,p):sp(n,e,t,o,r,i,a,s,l),h=f.map((n,e)=>`${0===e?"M":"L"} ${n.x},${n.y}`).join(" "),g=Bp(f);return{path:h,labelX:g.x,labelY:g.y}}function _p({sourceX:n,sourceY:e,sourcePosition:t="bottom",targetX:o,targetY:r,targetPosition:i="top",borderRadius:a=5,offset:s=20,allNodes:l,nodeInternals:d,connFromId:u,connToId:c,points:p}){const f=yp(p);return function(n,e){if(n.length<=2)return{path:`M ${n[0].x},${n[0].y} L ${n[1].x},${n[1].y}`,labelX:(n[0].x+n[1].x)/2,labelY:(n[0].y+n[1].y)/2};let t=`M ${n[0].x},${n[0].y}`;for(let o=1;o<n.length-1;o++){const r=n[o-1],i=n[o],a=n[o+1],s=i.x-r.x,l=i.y-r.y,d=a.x-i.x,u=a.y-i.y,c=Math.sqrt(s*s+l*l),p=Math.sqrt(d*d+u*u);if(0===c||0===p){t+=` L ${i.x},${i.y}`;continue}const f=Math.min(e,c/2,p/2),h=i.x-s/c*f,g=i.y-l/c*f,v=i.x+d/p*f,m=i.y+u/p*f;t+=` L ${h},${g} Q ${i.x},${i.y} ${v},${m}`}t+=` L ${n[n.length-1].x},${n[n.length-1].y}`;const o=Bp(n);return{path:t,labelX:o.x,labelY:o.y}}(f?Cp(n,e,t,o,r,i,f):sp(n,e,t,o,r,i,s,l,d),a)}function Bp(n){if(n.length<2)return{x:n[0].x,y:n[0].y};let e=0;for(let t=0;t<n.length-1;t++)e+=Math.abs(n[t+1].x-n[t].x)+Math.abs(n[t+1].y-n[t].y);let t=e/2,o=0;for(let e=0;e<n.length-1;e++){let r=Math.abs(n[e+1].x-n[e].x)+Math.abs(n[e+1].y-n[e].y);if(o+r>=t){let i=r>0?(t-o)/r:0;return{x:n[e].x+(n[e+1].x-n[e].x)*i,y:n[e].y+(n[e+1].y-n[e].y)*i}}o+=r}return{x:n[n.length-1].x,y:n[n.length-1].y}}function Pp(n,e,t,o){const r=t||{},i=r.width||n.width||150,a=r.height||n.height||40,s=n.position.x,l=n.position.y,d="diamond"===n.shape,u="ellipse"===n.shape,c=n.shape,p="triangle"===c||"triangle-right"===c||"triangle-down"===c||"triangle-left"===c,f="basic"===n.type&&(n.toPosition||"bottom")===(n.fromPosition||"top");let h=.5;if(f&&"target"===o&&(h=.33),f&&"source"===o&&(h=.67),d&&f)return function(n,e,t,o,r,i){let a=t/2,s=o/2;switch(r){case"top":if(i<=.5){let t=2*i;return{x:n+t*a,y:e+s-t*s}}{let t=2*(i-.5);return{x:n+a+t*a,y:e+t*s}}case"bottom":if(i<=.5){let t=2*i;return{x:n+t*a,y:e+s+t*s}}{let t=2*(i-.5);return{x:n+a+t*a,y:e+o-t*s}}case"left":if(i<=.5){let t=2*i;return{x:n+a-t*a,y:e+t*s}}{let t=2*(i-.5);return{x:n+t*a,y:e+s+t*s}}case"right":if(i<=.5){let t=2*i;return{x:n+a+t*a,y:e+t*s}}{let o=2*(i-.5);return{x:n+t-o*a,y:e+s+o*s}}default:return{x:n+a,y:e+o}}}(s,l,i,a,e,h);if(u)return function(n,e,t,o,r,i){let a,s=n+t/2,l=e+o/2,d=t/2,u=o/2;switch(r){case"top":a=Math.PI*(1-i);break;case"bottom":a=Math.PI*(i-1);break;case"left":a=Math.PI*(.5+i);break;case"right":a=Math.PI*(.5-i);break;default:a=0}return{x:s+d*Math.cos(a),y:l-u*Math.sin(a)}}(s,l,i,a,e,h);if(p)return function(n,e,t,o,r,i,a){let s,l,d,u,c,p,f;"triangle-right"===a?(s={x:n+t,y:e+o/2},l={x:n,y:e},d={x:n,y:e+o},u="right",c="left",p="top",f="bottom"):"triangle-down"===a?(s={x:n+t/2,y:e+o},l={x:n,y:e},d={x:n+t,y:e},u="bottom",c="top",p="left",f="right"):"triangle-left"===a?(s={x:n,y:e+o/2},l={x:n+t,y:e},d={x:n+t,y:e+o},u="left",c="right",p="top",f="bottom"):(s={x:n+t/2,y:e},l={x:n,y:e+o},d={x:n+t,y:e+o},u="top",c="bottom",p="left",f="right");if(r===u){if(i<=.5){let n=2*i;return{x:l.x+(s.x-l.x)*n,y:l.y+(s.y-l.y)*n}}{let n=2*(i-.5);return{x:s.x+(d.x-s.x)*n,y:s.y+(d.y-s.y)*n}}}if(r===c)return{x:l.x+(d.x-l.x)*i,y:l.y+(d.y-l.y)*i};if(r===p)return{x:s.x+(l.x-s.x)*i,y:s.y+(l.y-s.y)*i};if(r===f)return{x:s.x+(d.x-s.x)*i,y:s.y+(d.y-s.y)*i};return{x:n+t/2,y:e+o/2}}(s,l,i,a,e,h,c);switch(e){case"top":return{x:s+i*h,y:l};case"bottom":return{x:s+i*h,y:l+a};case"left":return{x:s,y:l+a*h};case"right":return{x:s+i,y:l+a*h};default:return{x:s+i/2,y:l+a}}}function Tp(n,e){return e?{x:Math.round(n.x/e)*e,y:Math.round(n.y/e)*e}:n}var Ep={components:{WColorSelect:Zc},props:{conn:{type:Object,required:!0},defConn:{type:Object,required:!0},textFontSize:{type:String,default:""},excludes:{type:Array,default:()=>[]},defaultPoint:{type:Object,default:null},targetPoint:{type:Object,default:null}},data(){return{confirmDelete:!1,ptsLocal:this.normalizePoints(this.conn.points)}},computed:{formStyle(){let n={};return this.textFontSize&&(n.fontSize=this.textFontSize),n}},watch:{"conn.points":function(n){JSON.stringify(this.normalizePoints(n))!==JSON.stringify(this.ptsLocal)&&(this.ptsLocal=this.normalizePoints(n))}},methods:{isEx(n){return this.excludes.indexOf(n)>=0},normalizePoints(n){if(!Array.isArray(n))return[];const e=[];for(const t of n)Array.isArray(t)&&t.length>=2?e.push([Number(t[0])||0,Number(t[1])||0]):t&&"object"==typeof t&&e.push([Number(t.x)||0,Number(t.y)||0]);return e},emitWaypoints(){this.$emit("update","points",this.ptsLocal.length?this.ptsLocal.map(n=>[n[0],n[1]]):null)},addWaypoint(){const n=this.ptsLocal[this.ptsLocal.length-1];let e;e=n?this.targetPoint?[Math.round((n[0]+this.targetPoint.x)/2),Math.round((n[1]+this.targetPoint.y)/2)]:[n[0]+40,n[1]+40]:this.defaultPoint?[Math.round(this.defaultPoint.x),Math.round(this.defaultPoint.y)]:this.targetPoint?[Math.round(this.targetPoint.x)-40,Math.round(this.targetPoint.y)-40]:[0,0],this.ptsLocal.push(e),this.emitWaypoints()},removeWaypoint(n){this.ptsLocal.splice(n,1),this.emitWaypoints()},onWaypointInput(n,e,t){const o=Number(t);""===t||isNaN(o)||(this.$set(this.ptsLocal[n],e,o),this.emitWaypoints())},onFontSizeInput(n){let e=Number(n),t=this.defConn;!n||isNaN(e)||e<t.fontSizeMin||(e>t.fontSizeMax&&(e=t.fontSizeMax),this.$emit("update","fontSize",e))},onEdgeWidthInput(n){let e=Number(n);!n||isNaN(e)||e<1||(e>24&&(e=24),this.$emit("update","edgeWidth",e))}}};const zp=Ep;var Ip=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{staticClass:"vue-flow__settings-form",style:n.formStyle},[n.isEx("name")?n._e():t("label",[n._v("Name\n "),t("input",{attrs:{type:"text"},domProps:{value:n.conn.name||""},on:{input:function(e){return n.$emit("update","name",e.target.value)}}})]),n._v(" "),n.isEx("description")?n._e():t("label",[n._v("Description\n "),t("input",{attrs:{type:"text"},domProps:{value:n.conn.description||""},on:{input:function(e){return n.$emit("update","description",e.target.value)}}})]),n._v(" "),n.isEx("type")?n._e():t("label",[n._v("Type\n "),t("select",{domProps:{value:n.conn.type||n.defConn.type},on:{input:function(e){return n.$emit("update","type",e.target.value)}}},[t("option",{attrs:{value:"bezier"}},[n._v("Bezier")]),n._v(" "),t("option",{attrs:{value:"straight"}},[n._v("Straight")]),n._v(" "),t("option",{attrs:{value:"step"}},[n._v("Step")]),n._v(" "),t("option",{attrs:{value:"smoothstep"}},[n._v("Smooth Step")])])]),n._v(" "),n.isEx("fontSize")?n._e():t("label",[n._v("Font Size\n "),t("input",{attrs:{type:"number",min:n.defConn.fontSizeMin,max:n.defConn.fontSizeMax},domProps:{value:n.conn.fontSize||n.defConn.fontSize},on:{input:function(e){return n.onFontSizeInput(e.target.value)}}})]),n._v(" "),n.isEx("fontColor")?n._e():t("label",[n._v("Font Color\n "),t("WColorSelect",{attrs:{value:n.conn.fontColor||n.defConn.fontColor,size:160,colorBlockSize:16,showColorText:!1},on:{input:function(e){return n.$emit("update","fontColor",e)}}})],1),n._v(" "),n.isEx("animated")?n._e():t("label",[n._v("Animated\n "),t("input",{attrs:{type:"checkbox"},domProps:{checked:!!n.conn.animated},on:{change:function(e){return n.$emit("update","animated",e.target.checked)}}})]),n._v(" "),n.isEx("edgeColor")?n._e():t("label",[n._v("Edge Color\n "),t("WColorSelect",{attrs:{value:n.conn.edgeColor||n.defConn.edgeColor,size:160,colorBlockSize:16,showColorText:!1},on:{input:function(e){return n.$emit("update","edgeColor",e)}}})],1),n._v(" "),n.isEx("edgeWidth")?n._e():t("label",[n._v("Edge Width\n "),t("input",{attrs:{type:"number",min:"1",max:"24"},domProps:{value:void 0!==n.conn.edgeWidth?n.conn.edgeWidth:n.defConn.edgeWidth},on:{input:function(e){return n.onEdgeWidthInput(e.target.value)}}})]),n._v(" "),n.isEx("markerEnd")?n._e():t("label",[n._v("Marker End\n "),t("select",{domProps:{value:n.conn.markerEnd||n.defConn.markerEnd},on:{input:function(e){return n.$emit("update","markerEnd",e.target.value||void 0)}}},[t("option",{attrs:{value:""}},[n._v("None")]),n._v(" "),t("option",{attrs:{value:"arrow"}},[n._v("Arrow")]),n._v(" "),t("option",{attrs:{value:"arrowclosed"}},[n._v("Arrow Closed")])])]),n._v(" "),n.isEx("fromPosition")?n._e():t("label",[n._v("From Anchor\n "),t("select",{domProps:{value:n.conn.fromPosition||""},on:{input:function(e){return n.$emit("update","fromPosition",e.target.value||void 0)}}},[t("option",{attrs:{value:""}},[n._v("Auto")]),n._v(" "),t("option",{attrs:{value:"top"}},[n._v("Top")]),n._v(" "),t("option",{attrs:{value:"right"}},[n._v("Right")]),n._v(" "),t("option",{attrs:{value:"bottom"}},[n._v("Bottom")]),n._v(" "),t("option",{attrs:{value:"left"}},[n._v("Left")])])]),n._v(" "),n.isEx("toPosition")?n._e():t("label",[n._v("To Anchor\n "),t("select",{domProps:{value:n.conn.toPosition||""},on:{input:function(e){return n.$emit("update","toPosition",e.target.value||void 0)}}},[t("option",{attrs:{value:""}},[n._v("Auto")]),n._v(" "),t("option",{attrs:{value:"top"}},[n._v("Top")]),n._v(" "),t("option",{attrs:{value:"right"}},[n._v("Right")]),n._v(" "),t("option",{attrs:{value:"bottom"}},[n._v("Bottom")]),n._v(" "),t("option",{attrs:{value:"left"}},[n._v("Left")])])]),n._v(" "),n.isEx("points")?n._e():t("div",{staticClass:"vue-flow__waypoints"},[t("div",{staticClass:"vue-flow__waypoints-head"},[t("span",[n._v("Waypoints")]),n._v(" "),t("button",{staticClass:"vue-flow__waypoints-add",attrs:{title:"新增轉折點"},on:{click:n.addWaypoint}},[n._v("+")])]),n._v(" "),n._l(n.ptsLocal,function(e,o){return t("div",{key:"wp"+o,staticClass:"vue-flow__waypoints-row"},[t("span",{staticClass:"vue-flow__waypoints-idx"},[n._v(n._s(o+1))]),n._v(" "),t("input",{attrs:{type:"number",title:"X"},domProps:{value:e[0]},on:{input:function(e){return n.onWaypointInput(o,0,e.target.value)}}}),n._v(" "),t("input",{attrs:{type:"number",title:"Y"},domProps:{value:e[1]},on:{input:function(e){return n.onWaypointInput(o,1,e.target.value)}}}),n._v(" "),t("button",{staticClass:"vue-flow__waypoints-del",attrs:{title:"移除此轉折點"},on:{click:function(e){return n.removeWaypoint(o)}}},[n._v("×")])])}),n._v(" "),n.ptsLocal.length?n._e():t("div",{staticClass:"vue-flow__waypoints-empty"},[n._v("無(自動路由)")])],2),n._v(" "),t("div",{staticClass:"vue-flow__delete-area"},[n.confirmDelete?[t("span",{staticClass:"vue-flow__delete-warn"},[n._v("確定要刪除此連接線?")]),n._v(" "),t("div",{staticClass:"vue-flow__delete-confirm-row"},[t("button",{staticClass:"vue-flow__delete-btn",on:{click:function(e){return n.$emit("delete")}}},[n._v("確認刪除")]),n._v(" "),t("button",{staticClass:"vue-flow__delete-btn vue-flow__delete-btn--cancel",on:{click:function(e){n.confirmDelete=!1}}},[n._v("取消")])])]:t("button",{staticClass:"vue-flow__delete-btn",on:{click:function(e){n.confirmDelete=!0}}},[n._v("刪除連接線")])],2)])};Ip._withStripped=!0;const Fp=Xr({render:Ip,staticRenderFns:[]},function(n){n&&n("data-v-c733b55c_0",{source:'\n.vue-flow__settings-form {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 8px;\r\n min-width: 180px;\n}\n.vue-flow__settings-form label {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n gap: 8px;\r\n font-size: 12px;\n}\n.vue-flow__settings-form select,\r\n.vue-flow__settings-form input[type="number"],\r\n.vue-flow__settings-form input[type="text"] {\r\n width: 100px;\r\n font-size: 12px;\r\n padding: 1px 4px;\r\n border: 1px solid #ccc;\r\n border-radius: 3px;\n}\n.vue-flow__settings-form input[type="color"] {\r\n width: 32px;\r\n height: 24px;\r\n padding: 0;\r\n border: 1px solid #ccc;\r\n cursor: pointer;\r\n flex-shrink: 0;\n}\n.vue-flow__waypoints {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 4px;\r\n padding-top: 6px;\r\n border-top: 1px solid #eee;\r\n font-size: 12px;\n}\n.vue-flow__waypoints-head {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\n}\n.vue-flow__waypoints-add {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 20px;\r\n height: 20px;\r\n padding: 0;\r\n border: 1px solid #ccc;\r\n border-radius: 3px;\r\n background: #fff;\r\n color: #666;\r\n cursor: pointer;\r\n font-size: 12px;\r\n line-height: 1;\n}\n.vue-flow__waypoints-add:hover {\r\n border-color: #666;\r\n color: #333;\n}\n.vue-flow__waypoints-row {\r\n display: flex;\r\n align-items: center;\r\n gap: 4px;\n}\n.vue-flow__waypoints-idx {\r\n width: 14px;\r\n color: #999;\r\n font-size: 11px;\r\n text-align: right;\n}\n.vue-flow__waypoints-row input[type="number"] {\r\n width: 62px;\r\n font-size: 12px;\r\n padding: 1px 4px;\r\n border: 1px solid #ccc;\r\n border-radius: 3px;\n}\n.vue-flow__waypoints-del {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 18px;\r\n height: 18px;\r\n padding: 0;\r\n border: 1px solid #ccc;\r\n border-radius: 3px;\r\n background: #fff;\r\n color: #999;\r\n cursor: pointer;\r\n font-size: 13px;\r\n line-height: 1;\r\n flex-shrink: 0;\n}\n.vue-flow__waypoints-del:hover {\r\n border-color: #dc2626;\r\n color: #dc2626;\n}\n.vue-flow__waypoints-empty {\r\n color: #aaa;\r\n font-size: 11px;\n}\n.vue-flow__delete-area {\r\n margin-top: 4px;\r\n padding-top: 8px;\r\n border-top: 1px solid #eee;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-end;\n}\n.vue-flow__delete-warn {\r\n display: block;\r\n font-size: 11px;\r\n color: #c00;\r\n margin-bottom: 4px;\r\n text-align: right;\n}\n.vue-flow__delete-confirm-row {\r\n display: flex;\r\n gap: 6px;\n}\n.vue-flow__delete-btn {\r\n padding: 3px 10px;\r\n font-size: 11px;\r\n border: 1px solid #dc2626;\r\n border-radius: 3px;\r\n color: #fff;\r\n background: #dc2626;\r\n cursor: pointer;\n}\n.vue-flow__delete-btn:hover {\r\n background: #b91c1c;\r\n border-color: #b91c1c;\n}\n.vue-flow__delete-btn--cancel {\r\n color: #666;\r\n background: #fff;\r\n border-color: #ccc;\n}\n.vue-flow__delete-btn--cancel:hover {\r\n background: #f5f5f5;\r\n border-color: #ccc;\n}\r\n',map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\ui\\ConnSettingsForm.vue"],names:[],mappings:";AAsLA;EACA,aAAA;EACA,sBAAA;EACA,QAAA;EACA,gBAAA;AACA;AACA;EACA,aAAA;EACA,8BAAA;EACA,mBAAA;EACA,QAAA;EACA,eAAA;AACA;AACA;;;EAGA,YAAA;EACA,eAAA;EACA,gBAAA;EACA,sBAAA;EACA,kBAAA;AACA;AACA;EACA,WAAA;EACA,YAAA;EACA,UAAA;EACA,sBAAA;EACA,eAAA;EACA,cAAA;AACA;AACA;EACA,aAAA;EACA,sBAAA;EACA,QAAA;EACA,gBAAA;EACA,0BAAA;EACA,eAAA;AACA;AACA;EACA,aAAA;EACA,8BAAA;EACA,mBAAA;AACA;AACA;EACA,oBAAA;EACA,mBAAA;EACA,uBAAA;EACA,WAAA;EACA,YAAA;EACA,UAAA;EACA,sBAAA;EACA,kBAAA;EACA,gBAAA;EACA,WAAA;EACA,eAAA;EACA,eAAA;EACA,cAAA;AACA;AACA;EACA,kBAAA;EACA,WAAA;AACA;AACA;EACA,aAAA;EACA,mBAAA;EACA,QAAA;AACA;AACA;EACA,WAAA;EACA,WAAA;EACA,eAAA;EACA,iBAAA;AACA;AACA;EACA,WAAA;EACA,eAAA;EACA,gBAAA;EACA,sBAAA;EACA,kBAAA;AACA;AACA;EACA,oBAAA;EACA,mBAAA;EACA,uBAAA;EACA,WAAA;EACA,YAAA;EACA,UAAA;EACA,sBAAA;EACA,kBAAA;EACA,gBAAA;EACA,WAAA;EACA,eAAA;EACA,eAAA;EACA,cAAA;EACA,cAAA;AACA;AACA;EACA,qBAAA;EACA,cAAA;AACA;AACA;EACA,WAAA;EACA,eAAA;AACA;AACA;EACA,eAAA;EACA,gBAAA;EACA,0BAAA;EACA,aAAA;EACA,sBAAA;EACA,qBAAA;AACA;AACA;EACA,cAAA;EACA,eAAA;EACA,WAAA;EACA,kBAAA;EACA,iBAAA;AACA;AACA;EACA,aAAA;EACA,QAAA;AACA;AACA;EACA,iBAAA;EACA,eAAA;EACA,yBAAA;EACA,kBAAA;EACA,WAAA;EACA,mBAAA;EACA,eAAA;AACA;AACA;EACA,mBAAA;EACA,qBAAA;AACA;AACA;EACA,WAAA;EACA,gBAAA;EACA,kBAAA;AACA;AACA;EACA,mBAAA;EACA,kBAAA;AACA",file:"ConnSettingsForm.vue",sourcesContent:['<template>\r\n <div class="vue-flow__settings-form" :style="formStyle">\r\n <label v-if="!isEx(\'name\')">Name\r\n <input type="text" :value="conn.name || \'\'" @input="$emit(\'update\', \'name\', $event.target.value)">\r\n </label>\r\n <label v-if="!isEx(\'description\')">Description\r\n <input type="text" :value="conn.description || \'\'" @input="$emit(\'update\', \'description\', $event.target.value)">\r\n </label>\r\n <label v-if="!isEx(\'type\')">Type\r\n <select :value="conn.type || defConn.type" @input="$emit(\'update\', \'type\', $event.target.value)">\r\n <option value="bezier">Bezier</option>\r\n <option value="straight">Straight</option>\r\n <option value="step">Step</option>\r\n <option value="smoothstep">Smooth Step</option>\r\n </select>\r\n </label>\r\n <label v-if="!isEx(\'fontSize\')">Font Size\r\n <input type="number" :value="conn.fontSize || defConn.fontSize" :min="defConn.fontSizeMin" :max="defConn.fontSizeMax" @input="onFontSizeInput($event.target.value)">\r\n </label>\r\n <label v-if="!isEx(\'fontColor\')">Font Color\r\n <WColorSelect :value="conn.fontColor || defConn.fontColor" :size="160" :colorBlockSize="16" :showColorText="false" @input="$emit(\'update\', \'fontColor\', $event)" />\r\n </label>\r\n <label v-if="!isEx(\'animated\')">Animated\r\n <input type="checkbox" :checked="!!conn.animated" @change="$emit(\'update\', \'animated\', $event.target.checked)">\r\n </label>\r\n <label v-if="!isEx(\'edgeColor\')">Edge Color\r\n <WColorSelect :value="conn.edgeColor || defConn.edgeColor" :size="160" :colorBlockSize="16" :showColorText="false" @input="$emit(\'update\', \'edgeColor\', $event)" />\r\n </label>\r\n <label v-if="!isEx(\'edgeWidth\')">Edge Width\r\n <input type="number" :value="conn.edgeWidth !== undefined ? conn.edgeWidth : defConn.edgeWidth" min="1" max="24" @input="onEdgeWidthInput($event.target.value)">\r\n </label>\r\n <label v-if="!isEx(\'markerEnd\')">Marker End\r\n <select :value="conn.markerEnd || defConn.markerEnd" @input="$emit(\'update\', \'markerEnd\', $event.target.value || undefined)">\r\n <option value="">None</option>\r\n <option value="arrow">Arrow</option>\r\n <option value="arrowclosed">Arrow Closed</option>\r\n </select>\r\n </label>\r\n \x3c!-- 逐邊錨點方位: 此連線於起點節點之連出方位/迄點節點之連入方位; Auto=回退節點層級/預設 --\x3e\r\n <label v-if="!isEx(\'fromPosition\')">From Anchor\r\n <select :value="conn.fromPosition || \'\'" @input="$emit(\'update\', \'fromPosition\', $event.target.value || undefined)">\r\n <option value="">Auto</option>\r\n <option value="top">Top</option>\r\n <option value="right">Right</option>\r\n <option value="bottom">Bottom</option>\r\n <option value="left">Left</option>\r\n </select>\r\n </label>\r\n <label v-if="!isEx(\'toPosition\')">To Anchor\r\n <select :value="conn.toPosition || \'\'" @input="$emit(\'update\', \'toPosition\', $event.target.value || undefined)">\r\n <option value="">Auto</option>\r\n <option value="top">Top</option>\r\n <option value="right">Right</option>\r\n <option value="bottom">Bottom</option>\r\n <option value="left">Left</option>\r\n </select>\r\n </label>\r\n <div v-if="!isEx(\'points\')" class="vue-flow__waypoints">\r\n <div class="vue-flow__waypoints-head">\r\n <span>Waypoints</span>\r\n <button class="vue-flow__waypoints-add" title="新增轉折點" @click="addWaypoint">+</button>\r\n </div>\r\n <div v-for="(p, i) in ptsLocal" :key="\'wp\' + i" class="vue-flow__waypoints-row">\r\n <span class="vue-flow__waypoints-idx">{{ i + 1 }}</span>\r\n <input type="number" :value="p[0]" title="X" @input="onWaypointInput(i, 0, $event.target.value)">\r\n <input type="number" :value="p[1]" title="Y" @input="onWaypointInput(i, 1, $event.target.value)">\r\n <button class="vue-flow__waypoints-del" title="移除此轉折點" @click="removeWaypoint(i)">×</button>\r\n </div>\r\n <div v-if="!ptsLocal.length" class="vue-flow__waypoints-empty">無(自動路由)</div>\r\n </div>\r\n <div class="vue-flow__delete-area">\r\n <button v-if="!confirmDelete" class="vue-flow__delete-btn" @click="confirmDelete = true">刪除連接線</button>\r\n <template v-else>\r\n <span class="vue-flow__delete-warn">確定要刪除此連接線?</span>\r\n <div class="vue-flow__delete-confirm-row">\r\n <button class="vue-flow__delete-btn" @click="$emit(\'delete\')">確認刪除</button>\r\n <button class="vue-flow__delete-btn vue-flow__delete-btn--cancel" @click="confirmDelete = false">取消</button>\r\n </div>\r\n </template>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport WColorSelect from \'w-component-vue/src/components/WColorSelect.vue\'\r\n\r\nexport default {\r\n components: { WColorSelect },\r\n props: {\r\n conn: { type: Object, required: true },\r\n defConn: { type: Object, required: true },\r\n textFontSize: { type: String, default: \'\' },\r\n excludes: { type: Array, default: () => [] },\r\n defaultPoint: { type: Object, default: null }, //首個轉折點預設位置(建議傳路徑中點, 新點落於既有線上不跳動)\r\n targetPoint: { type: Object, default: null }, //迄點錨位置(後續新增以「末點與迄點中點」細分)\r\n },\r\n data() {\r\n return {\r\n confirmDelete: false,\r\n ptsLocal: this.normalizePoints(this.conn.points), //轉折點本地編輯態(打字中不被外部回寫干擾)\r\n }\r\n },\r\n computed: {\r\n formStyle() {\r\n let s = {}\r\n if (this.textFontSize) s.fontSize = this.textFontSize\r\n return s\r\n },\r\n },\r\n watch: {\r\n //外部(如存檔回寫)變更時重同步本地態; 與本地序列化相同則不動(避免打字被清)\r\n \'conn.points\': function(val) {\r\n const ext = JSON.stringify(this.normalizePoints(val))\r\n if (ext !== JSON.stringify(this.ptsLocal)) {\r\n this.ptsLocal = this.normalizePoints(val)\r\n }\r\n },\r\n },\r\n methods: {\r\n isEx(key) {\r\n return this.excludes.indexOf(key) >= 0\r\n },\r\n normalizePoints(pts) {\r\n if (!Array.isArray(pts)) return []\r\n const r = []\r\n for (const p of pts) {\r\n if (Array.isArray(p) && p.length >= 2) r.push([Number(p[0]) || 0, Number(p[1]) || 0])\r\n else if (p && typeof p === \'object\') r.push([Number(p.x) || 0, Number(p.y) || 0])\r\n }\r\n return r\r\n },\r\n emitWaypoints() {\r\n //空陣列送null表示移除轉折點(回歸自動路由)\r\n this.$emit(\'update\', \'points\', this.ptsLocal.length ? this.ptsLocal.map(p => [p[0], p[1]]) : null)\r\n },\r\n addWaypoint() {\r\n const last = this.ptsLocal[this.ptsLocal.length - 1]\r\n let p\r\n if (!last) {\r\n //首點=路徑中點(落於既有線上, 路徑不跳動); 無提示時退而取迄點附近, 再無則(0,0)\r\n if (this.defaultPoint) p = [Math.round(this.defaultPoint.x), Math.round(this.defaultPoint.y)]\r\n else if (this.targetPoint) p = [Math.round(this.targetPoint.x) - 40, Math.round(this.targetPoint.y) - 40]\r\n else p = [0, 0]\r\n }\r\n else if (this.targetPoint) {\r\n //後續新增=末點與迄點錨之中點(向迄點細分)\r\n p = [Math.round((last[0] + this.targetPoint.x) / 2), Math.round((last[1] + this.targetPoint.y) / 2)]\r\n }\r\n else {\r\n p = [last[0] + 40, last[1] + 40]\r\n }\r\n this.ptsLocal.push(p)\r\n this.emitWaypoints()\r\n },\r\n removeWaypoint(i) {\r\n this.ptsLocal.splice(i, 1)\r\n this.emitWaypoints()\r\n },\r\n onWaypointInput(i, axis, val) {\r\n const n = Number(val)\r\n if (val === \'\' || isNaN(n)) return\r\n this.$set(this.ptsLocal[i], axis, n)\r\n this.emitWaypoints()\r\n },\r\n onFontSizeInput(val) {\r\n let n = Number(val)\r\n let d = this.defConn\r\n if (!val || isNaN(n) || n < d.fontSizeMin) return\r\n if (n > d.fontSizeMax) n = d.fontSizeMax\r\n this.$emit(\'update\', \'fontSize\', n)\r\n },\r\n onEdgeWidthInput(val) {\r\n let n = Number(val)\r\n if (!val || isNaN(n) || n < 1) return\r\n if (n > 24) n = 24\r\n this.$emit(\'update\', \'edgeWidth\', n)\r\n },\r\n },\r\n}\r\n<\/script>\r\n\r\n<style>\r\n.vue-flow__settings-form {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 8px;\r\n min-width: 180px;\r\n}\r\n.vue-flow__settings-form label {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n gap: 8px;\r\n font-size: 12px;\r\n}\r\n.vue-flow__settings-form select,\r\n.vue-flow__settings-form input[type="number"],\r\n.vue-flow__settings-form input[type="text"] {\r\n width: 100px;\r\n font-size: 12px;\r\n padding: 1px 4px;\r\n border: 1px solid #ccc;\r\n border-radius: 3px;\r\n}\r\n.vue-flow__settings-form input[type="color"] {\r\n width: 32px;\r\n height: 24px;\r\n padding: 0;\r\n border: 1px solid #ccc;\r\n cursor: pointer;\r\n flex-shrink: 0;\r\n}\r\n.vue-flow__waypoints {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 4px;\r\n padding-top: 6px;\r\n border-top: 1px solid #eee;\r\n font-size: 12px;\r\n}\r\n.vue-flow__waypoints-head {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n.vue-flow__waypoints-add {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 20px;\r\n height: 20px;\r\n padding: 0;\r\n border: 1px solid #ccc;\r\n border-radius: 3px;\r\n background: #fff;\r\n color: #666;\r\n cursor: pointer;\r\n font-size: 12px;\r\n line-height: 1;\r\n}\r\n.vue-flow__waypoints-add:hover {\r\n border-color: #666;\r\n color: #333;\r\n}\r\n.vue-flow__waypoints-row {\r\n display: flex;\r\n align-items: center;\r\n gap: 4px;\r\n}\r\n.vue-flow__waypoints-idx {\r\n width: 14px;\r\n color: #999;\r\n font-size: 11px;\r\n text-align: right;\r\n}\r\n.vue-flow__waypoints-row input[type="number"] {\r\n width: 62px;\r\n font-size: 12px;\r\n padding: 1px 4px;\r\n border: 1px solid #ccc;\r\n border-radius: 3px;\r\n}\r\n.vue-flow__waypoints-del {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 18px;\r\n height: 18px;\r\n padding: 0;\r\n border: 1px solid #ccc;\r\n border-radius: 3px;\r\n background: #fff;\r\n color: #999;\r\n cursor: pointer;\r\n font-size: 13px;\r\n line-height: 1;\r\n flex-shrink: 0;\r\n}\r\n.vue-flow__waypoints-del:hover {\r\n border-color: #dc2626;\r\n color: #dc2626;\r\n}\r\n.vue-flow__waypoints-empty {\r\n color: #aaa;\r\n font-size: 11px;\r\n}\r\n.vue-flow__delete-area {\r\n margin-top: 4px;\r\n padding-top: 8px;\r\n border-top: 1px solid #eee;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-end;\r\n}\r\n.vue-flow__delete-warn {\r\n display: block;\r\n font-size: 11px;\r\n color: #c00;\r\n margin-bottom: 4px;\r\n text-align: right;\r\n}\r\n.vue-flow__delete-confirm-row {\r\n display: flex;\r\n gap: 6px;\r\n}\r\n.vue-flow__delete-btn {\r\n padding: 3px 10px;\r\n font-size: 11px;\r\n border: 1px solid #dc2626;\r\n border-radius: 3px;\r\n color: #fff;\r\n background: #dc2626;\r\n cursor: pointer;\r\n}\r\n.vue-flow__delete-btn:hover {\r\n background: #b91c1c;\r\n border-color: #b91c1c;\r\n}\r\n.vue-flow__delete-btn--cancel {\r\n color: #666;\r\n background: #fff;\r\n border-color: #ccc;\r\n}\r\n.vue-flow__delete-btn--cancel:hover {\r\n background: #f5f5f5;\r\n border-color: #ccc;\r\n}\r\n</style>\r\n']},media:void 0})},zp,void 0,false,void 0,!1,Zr,void 0,void 0),Hp={bezier:wp,straight:Sp,step:kp,smoothstep:_p};var Np={name:"EdgeWrapper",mixins:[{beforeCreate(){this.$vnode&&"svg"===this.$vnode.ns&&(this.$vnode.ns=void 0)},beforeMount(){this.$vnode&&"svg"===this.$vnode.ns&&(this.$vnode.ns=void 0)},beforeUpdate(){this.$vnode&&"svg"===this.$vnode.ns&&(this.$vnode.ns=void 0)}}],components:{ConnSettingsForm:Fp,WPopup:Ps},inject:{getDefConn:{default:()=>()=>({})},getDragGhost:{default:()=>()=>null}},props:{conn:{type:Object,required:!0},sourceNode:{type:Object,default:null},targetNode:{type:Object,default:null},selected:{type:Boolean,default:!1},interactive:{type:Boolean,default:!0},locked:{type:Boolean,default:!1},settingsPopupBackgroundColor:{type:String,default:"#fff"},settingsPopupTextColor:{type:String,default:"#333"},settingsPopupTextFontSize:{type:String,default:"12px"},inforPopupBackgroundColor:{type:String,default:"#fff"},inforPopupTitleTextColor:{type:String,default:"#333"},inforPopupTitleTextFontSize:{type:String,default:"12px"},inforPopupDescriptionTextColor:{type:String,default:"#888"},inforPopupDescriptionTextFontSize:{type:String,default:"10px"},allNodes:{type:Array,default:()=>[]},nodeInternals:{type:Object,default:()=>({})},settingsEnabled:{type:Boolean,default:!0},settingsExcludes:{type:Array,default:()=>[]}},data:()=>({hovered:!1,infoPopupShow:!1,infoPopupEditable:!0,settingsPopupShow:!1,dragPts:null}),watch:{settingsPopupShow(n){n&&(this.infoPopupShow=!1)},infoPopupShow(n){n&&(this.settingsPopupShow=!1)}},computed:{dc(){return this.getDefConn()},hasInfoPopup(){return!!(this.conn.name||this.conn.description||this.$scopedSlots["conn-popup"])},sourcePosition(){return this.conn.fromPosition||this.sourceNode&&this.sourceNode.toPosition||"bottom"},targetPosition(){return this.conn.toPosition||this.targetNode&&this.targetNode.fromPosition||"top"},effSourceNode(){return this.effNode(this.sourceNode)},effTargetNode(){return this.effNode(this.targetNode)},sourcePoint(){const n=this.effSourceNode;return n?Pp(n,this.sourcePosition,this.nodeInternals[n.id]||{},"source"):{x:0,y:0}},targetPoint(){const n=this.effTargetNode;return n?Pp(n,this.targetPosition,this.nodeInternals[n.id]||{},"target"):{x:0,y:0}},sourceX(){return this.sourcePoint.x},sourceY(){return this.sourcePoint.y},targetX(){return this.targetPoint.x},targetY(){return this.targetPoint.y},routingNodes(){const n=[];return this.effSourceNode&&n.push(this.effSourceNode),this.effTargetNode&&n.push(this.effTargetNode),n},effPoints(){return this.dragPts||this.conn.points},waypointPts(){const n=this.effPoints;if(!Array.isArray(n)||0===n.length)return[];const e=[];for(const t of n){let n=null,o=null;if(Array.isArray(t)&&t.length>=2?(n=Number(t[0]),o=Number(t[1])):t&&"object"==typeof t&&(n=Number(t.x),o=Number(t.y)),!Number.isFinite(n)||!Number.isFinite(o))return[];e.push({x:n,y:o})}return e},showWaypoints(){return this.settingsEnabled&&this.interactive&&!this.locked&&this.waypointPts.length>0},waypointDefaultPoint(){return{x:Math.round(this.pathData.labelX),y:Math.round(this.pathData.labelY)}},waypointTargetPoint(){return{x:Math.round(this.targetX),y:Math.round(this.targetY)}},classes(){const n=this.conn.class?Array.isArray(this.conn.class)?this.conn.class:[this.conn.class]:[];return["vue-flow__edge",`vue-flow__edge-${this.conn.type||this.dc.type||"bezier"}`,...n,{"vue-flow__edge--selected":this.selected,"vue-flow__edge--animated":this.conn.animated}]},pathData(){const n=this.conn.type||this.dc.type||"bezier";return(Hp[n]||Hp.bezier)({sourceX:this.sourceX,sourceY:this.sourceY,sourcePosition:this.sourcePosition,targetX:this.targetX,targetY:this.targetY,targetPosition:this.targetPosition,curvature:this.conn.curvature,points:this.effPoints,allNodes:this.routingNodes,nodeInternals:this.nodeInternals,connFromId:this.conn.from,connToId:this.conn.to,offset:this.dc.defOffset})},connStyle(){const n=this.dc,e=this.conn.style?{...this.conn.style}:{};e.stroke=this.conn.edgeColor||n.edgeColor||"#b1b1b7",void 0!==this.conn.edgeWidth?e.strokeWidth=this.conn.edgeWidth:void 0!==n.edgeWidth&&(e.strokeWidth=n.edgeWidth);let t=void 0!==this.conn.edgeDasharray?this.conn.edgeDasharray:n.edgeDasharray;return t&&(e.strokeDasharray=t),e},markerStartUrl(){return this.getMarkerUrl(this.conn.markerStart)},markerEndUrl(){return this.getMarkerUrl(this.conn.markerEnd||this.dc.markerEnd)},labelStyle(){const n=this.dc,e={},t=this.conn.fontSize||n.fontSize,o=this.conn.fontColor||n.fontColor;return t&&(e.fontSize=t+"px"),o&&(e.color=o),e}},methods:{effNode(n){if(!n)return null;const e=this.getDragGhost(n.id);return e?{...n,position:{x:e.x,y:e.y},width:void 0!==e.width?e.width:n.width,height:void 0!==e.height?e.height:n.height}:n},getMarkerUrl(n){if(!n)return null;const e="string"==typeof n?{type:n}:n,t=e.color||this.conn.edgeColor||this.dc.edgeColor||"#b1b1b7";return`url(#vue-flow__${e.type}_${t.replace("#","")})`},onGroupMouseEnter(n){this.hovered=!0,this.$emit("conn-mouseenter",{conn:this.conn,event:n})},onGroupMouseLeave(n){this.hovered=!1,this.$emit("conn-mouseleave",{conn:this.conn,event:n})},onClick(n){this.hasInfoPopup&&(this.infoPopupShow=!0),this.$emit("conn-click",{conn:this.conn,event:n})},openInfoPopup(){this.infoPopupShow=!0},onDoubleClick(n){this.$emit("conn-double-click",{conn:this.conn,event:n})},onContextMenu(n){this.$emit("conn-context-menu",{conn:this.conn,event:n})},onLabelMouseDown(n){this.infoPopupShow=!1;const e=n.clientX,t=n.clientY,o=n=>{(Math.abs(n.clientX-e)>2||Math.abs(n.clientY-t)>2)&&(this.infoPopupEditable=!1,document.removeEventListener("mousemove",o))},r=()=>{document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",r),this.infoPopupEditable||setTimeout(()=>{this.infoPopupEditable=!0},0)};document.addEventListener("mousemove",o),document.addEventListener("mouseup",r)},onSettingsUpdate(n,e){this.$emit("conn-settings-update",{conn:this.conn,key:n,value:e})},onWaypointMouseDown(n,e){if(!this.interactive||this.locked||!this.settingsEnabled)return;e.preventDefault();const t=document.createElement("style");t.textContent="* { cursor: move !important; }",document.head.appendChild(t);const o=e.clientX,r=e.clientY,i=this.waypointPts.map(n=>[n.x,n.y]),a=this.$el.closest(".vue-flow__viewport"),s=a?parseFloat(a.style.transform.match(/scale\(([^)]+)\)/)?.[1]||1):1,l=e=>{const t=(e.clientX-o)/s,a=(e.clientY-r)/s,l=i.map(n=>[n[0],n[1]]);l[n]=[Math.round(i[n][0]+t),Math.round(i[n][1]+a)],this.dragPts=l},d=()=>{document.removeEventListener("mousemove",l),document.removeEventListener("mouseup",d),document.head.removeChild(t);const n=this.waypointPts.map(n=>[n.x,n.y]);this.$emit("conn-settings-update",{conn:this.conn,key:"points",value:n}),this.dragPts=null};document.addEventListener("mousemove",l),document.addEventListener("mouseup",d)},onSettingsDelete(){this.$emit("conn-settings-delete",{conn:this.conn})}}};const $p=Np;var Wp=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("g",{class:n.classes,attrs:{"data-id":n.conn.id},on:{mouseenter:n.onGroupMouseEnter,mouseleave:n.onGroupMouseLeave}},[t("rect",{attrs:{x:n.pathData.labelX-60,y:n.pathData.labelY-18,width:"120",height:"36",fill:"transparent","pointer-events":"all"},on:{click:function(e){return e.stopPropagation(),n.onClick.apply(null,arguments)}}}),n._v(" "),t("path",{staticClass:"vue-flow__edge-interaction",attrs:{d:n.pathData.path},on:{click:function(e){return e.stopPropagation(),n.onClick.apply(null,arguments)},dblclick:function(e){return e.stopPropagation(),n.onDoubleClick.apply(null,arguments)},contextmenu:function(e){return e.stopPropagation(),n.onContextMenu.apply(null,arguments)}}}),n._v(" "),t("path",{style:n.connStyle,attrs:{d:n.pathData.path,"marker-start":n.markerStartUrl,"marker-end":n.markerEndUrl}}),n._v(" "),n.showWaypoints?n._l(n.waypointPts,function(e,o){return t("circle",{key:"wp"+o,staticClass:"vue-flow__edge-waypoint",attrs:{cx:e.x,cy:e.y,r:"4"},on:{mousedown:function(e){return n.onWaypointMouseDown(o,e)}}})}):n._e(),n._v(" "),t("foreignObject",{staticStyle:{overflow:"visible","pointer-events":"none"},attrs:{x:n.pathData.labelX-100,y:n.pathData.labelY-18,width:"200",height:"36"}},[t("div",{staticClass:"vue-flow__edge-label-area",attrs:{xmlns:"http://www.w3.org/1999/xhtml"}},[t("span",{staticClass:"vue-flow__edge-label-group"},[n.hasInfoPopup?t("WPopup",{attrs:{placement:"bottom",modeHide:"mousedown",editable:n.infoPopupEditable,minWidth:null,maxWidth:null,autoFitMinWidth:!1,autoFitMaxWidth:!1,backgroundColor:n.inforPopupBackgroundColor,textFontSize:n.inforPopupTitleTextFontSize,paddingStyle:{v:8,h:12}},scopedSlots:n._u([{key:"trigger",fn:function(){return[n.conn.name?t("span",{staticClass:"vue-flow__edge-label",style:n.labelStyle,on:{mousedown:n.onLabelMouseDown}},[n._v(n._s(n.conn.name))]):t("span",{staticClass:"vue-flow__edge-popup-anchor"})]},proxy:!0},{key:"content",fn:function(){return[n._t("conn-popup",function(){return[n.conn.name||n.conn.description?t("div",{staticStyle:{"min-width":"120px"}},[n.conn.name?t("div",{style:{fontSize:n.inforPopupTitleTextFontSize,color:n.inforPopupTitleTextColor,fontWeight:500}},[n._v(n._s(n.conn.name))]):n._e(),n._v(" "),n.conn.description?t("div",{style:{fontSize:n.inforPopupDescriptionTextFontSize,color:n.inforPopupDescriptionTextColor,marginTop:"4px"}},[n._v(n._s(n.conn.description))]):n._e()]):n._e()]},{conn:n.conn})]},proxy:!0}],null,!0),model:{value:n.infoPopupShow,callback:function(e){n.infoPopupShow=e},expression:"infoPopupShow"}}):n._e(),n._v(" "),t("transition",{attrs:{name:"vue-flow__fade"}},[(n.hovered||n.settingsPopupShow)&&n.interactive&&!n.locked&&n.settingsEnabled?t("span",{staticClass:"vue-flow__edge-settings-anchor"},[t("WPopup",{attrs:{placement:"right-start",modeHide:"mousedown",minWidth:null,maxWidth:null,autoFitMinWidth:!1,autoFitMaxWidth:!1,backgroundColor:n.settingsPopupBackgroundColor,textColor:n.settingsPopupTextColor,paddingStyle:{v:8,h:8}},on:{show:function(e){return n.$emit("conn-settings-click",{conn:n.conn})}},scopedSlots:n._u([{key:"trigger",fn:function(){return[t("span",{staticClass:"vue-flow__edge-settings"},[t("svg",{attrs:{viewBox:"0 0 20 20",width:"14",height:"14",fill:"currentColor"}},[t("path",{attrs:{d:"M11.078 0l.294 1.833a7.587 7.587 0 0 1 2.174 1.25l1.725-.618 1.078 1.87-1.43 1.217a7.508 7.508 0 0 1 0 2.498l1.43 1.217-1.078 1.87-1.725-.618a7.587 7.587 0 0 1-2.174 1.25L11.078 14H8.922l-.294-1.833a7.587 7.587 0 0 1-2.174-1.25l-1.725.618-1.078-1.87 1.43-1.217a7.508 7.508 0 0 1 0-2.498L3.65 4.733l1.078-1.87 1.725.618a7.587 7.587 0 0 1 2.174-1.25L8.922 0h2.156zM10 4.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5z",transform:"translate(0 3)"}})])])]},proxy:!0},{key:"content",fn:function(){return[t("ConnSettingsForm",{attrs:{conn:n.conn,"def-conn":n.dc,"text-font-size":n.settingsPopupTextFontSize,excludes:n.settingsExcludes,"default-point":n.waypointDefaultPoint,"target-point":n.waypointTargetPoint},on:{update:n.onSettingsUpdate,delete:n.onSettingsDelete}})]},proxy:!0}],null,!1,1928985475),model:{value:n.settingsPopupShow,callback:function(e){n.settingsPopupShow=e},expression:"settingsPopupShow"}})],1):n._e()])],1)])])],2)};Wp._withStripped=!0;const Mp=Xr({render:Wp,staticRenderFns:[]},function(n){n&&n("data-v-265c95c3_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n/* Only target direct-child paths (edge paths), not SVG paths inside settings icon */\n.vue-flow__edge > path[data-v-265c95c3] {\r\n stroke: #b1b1b7;\r\n stroke-width: 1;\r\n fill: none;\r\n pointer-events: none;\r\n transition: stroke 0.3s ease, filter 0.18s ease;\n}\n.vue-flow__edge-interaction[data-v-265c95c3] {\r\n stroke: transparent !important;\r\n stroke-width: 20 !important;\r\n fill: none;\r\n pointer-events: stroke !important;\r\n cursor: pointer;\n}\n.vue-flow__edge-waypoint[data-v-265c95c3] {\r\n fill: #9e9e9e;\r\n stroke: #fff;\r\n stroke-width: 1.5;\r\n pointer-events: all;\r\n cursor: grab;\n}\n.vue-flow__edge-waypoint[data-v-265c95c3]:hover {\r\n fill: #616161;\r\n stroke-width: 2;\n}\n.vue-flow__edge-waypoint[data-v-265c95c3]:active {\r\n cursor: grabbing;\n}\n.vue-flow__edge:hover > path[data-v-265c95c3] {\r\n stroke: #555;\n}\n.vue-flow__edge--selected > path[data-v-265c95c3],\r\n.vue-flow__edge--selected:hover > path[data-v-265c95c3] {\r\n filter: drop-shadow(0 0 2px rgba(220, 38, 38, 0.8)) drop-shadow(0 0 4px rgba(220, 38, 38, 0.5)) drop-shadow(0 0 6px rgba(220, 38, 38, 0.25));\n}\n.vue-flow__edge--animated > path[data-v-265c95c3]:not(.vue-flow__edge-interaction) {\r\n stroke-dasharray: 5;\r\n animation: vue-flow-dash-data-v-265c95c3 0.5s linear infinite;\n}\n@keyframes vue-flow-dash-data-v-265c95c3 {\nto { stroke-dashoffset: -10;\n}\n}\n.vue-flow__edge-label-area[data-v-265c95c3] {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n height: 100%;\r\n pointer-events: none;\n}\n.vue-flow__edge-label-group[data-v-265c95c3] {\r\n position: relative;\r\n display: inline-flex;\r\n align-items: center;\r\n pointer-events: all;\n}\n.vue-flow__edge-label[data-v-265c95c3] {\r\n pointer-events: all;\r\n cursor: pointer;\r\n font-family: 'Microsoft JhengHei', '微軟正黑體', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\r\n font-size: 10px;\r\n background: #fff;\r\n padding: 2px 4px;\r\n border-radius: 2px;\r\n white-space: nowrap;\r\n user-select: none;\r\n text-align: center;\r\n display: inline-block;\n}\n.vue-flow__edge-popup-anchor[data-v-265c95c3] {\r\n display: inline-block;\r\n width: 0;\r\n height: 0;\n}\n.vue-flow__edge-settings-anchor[data-v-265c95c3] {\r\n position: absolute;\r\n top: -8px;\r\n right: -8px;\r\n z-index: 2;\r\n pointer-events: all;\n}\n.vue-flow__edge-settings[data-v-265c95c3] {\r\n width: 20px;\r\n height: 20px;\r\n border-radius: 50%;\r\n background: #fff;\r\n border: 1px solid #ccc;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n color: #888;\r\n pointer-events: all;\r\n transition: border-color 0.15s ease, background 0.15s ease;\n}\n.vue-flow__edge-settings[data-v-265c95c3]:hover {\r\n border-color: #666;\r\n background: #f0f0f0;\r\n color: #333;\n}\r\n/* Fade transition for settings icon */\n.vue-flow__fade-enter-active[data-v-265c95c3],\r\n.vue-flow__fade-leave-active[data-v-265c95c3] {\r\n transition: opacity 0.15s ease;\n}\n.vue-flow__fade-enter[data-v-265c95c3],\r\n.vue-flow__fade-leave-to[data-v-265c95c3] {\r\n opacity: 0;\n}\r\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\edges\\EdgeWrapper.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2bA,oFAAA;AACA;EACA,eAAA;EACA,eAAA;EACA,UAAA;EACA,oBAAA;EACA,+CAAA;AACA;AACA;EACA,8BAAA;EACA,2BAAA;EACA,UAAA;EACA,iCAAA;EACA,eAAA;AACA;AACA;EACA,aAAA;EACA,YAAA;EACA,iBAAA;EACA,mBAAA;EACA,YAAA;AACA;AACA;EACA,aAAA;EACA,eAAA;AACA;AACA;EACA,gBAAA;AACA;AACA;EACA,YAAA;AACA;AACA;;EAEA,4IAAA;AACA;AACA;EACA,mBAAA;EACA,6DAAA;AACA;AACA;AACA,KAAA,sBAAA;AAAA;AACA;AACA;EACA,aAAA;EACA,uBAAA;EACA,mBAAA;EACA,WAAA;EACA,YAAA;EACA,oBAAA;AACA;AACA;EACA,kBAAA;EACA,oBAAA;EACA,mBAAA;EACA,mBAAA;AACA;AACA;EACA,mBAAA;EACA,eAAA;EACA,6GAAA;EACA,eAAA;EACA,gBAAA;EACA,gBAAA;EACA,kBAAA;EACA,mBAAA;EACA,iBAAA;EACA,kBAAA;EACA,qBAAA;AACA;AACA;EACA,qBAAA;EACA,QAAA;EACA,SAAA;AACA;AACA;EACA,kBAAA;EACA,SAAA;EACA,WAAA;EACA,UAAA;EACA,mBAAA;AACA;AACA;EACA,WAAA;EACA,YAAA;EACA,kBAAA;EACA,gBAAA;EACA,sBAAA;EACA,oBAAA;EACA,mBAAA;EACA,uBAAA;EACA,eAAA;EACA,WAAA;EACA,mBAAA;EACA,0DAAA;AACA;AACA;EACA,kBAAA;EACA,mBAAA;EACA,WAAA;AACA;AACA,sCAAA;AACA;;EAEA,8BAAA;AACA;AACA;;EAEA,UAAA;AACA",file:"EdgeWrapper.vue",sourcesContent:['<template>\r\n <g\r\n :class="classes"\r\n :data-id="conn.id"\r\n @mouseenter="onGroupMouseEnter"\r\n @mouseleave="onGroupMouseLeave"\r\n >\r\n \x3c!-- Hover zone around label + settings icon area (below interaction path in z-order) --\x3e\r\n <rect\r\n :x="pathData.labelX - 60"\r\n :y="pathData.labelY - 18"\r\n width="120"\r\n height="36"\r\n fill="transparent"\r\n pointer-events="all"\r\n @click.stop="onClick"\r\n />\r\n \x3c!-- Interaction path (wider, invisible) --\x3e\r\n <path\r\n :d="pathData.path"\r\n class="vue-flow__edge-interaction"\r\n @click.stop="onClick"\r\n @dblclick.stop="onDoubleClick"\r\n @contextmenu.stop="onContextMenu"\r\n />\r\n \x3c!-- Visible path --\x3e\r\n <path\r\n :d="pathData.path"\r\n :style="connStyle"\r\n :marker-start="markerStartUrl"\r\n :marker-end="markerEndUrl"\r\n />\r\n \x3c!-- 強制轉折點標記(編輯模式顯示, 可直接拖曳移動座標; 亦可經齒輪設定表單編修) --\x3e\r\n <template v-if="showWaypoints">\r\n \x3c!-- 不用@mousedown.stop: stopPropagation會擋掉window層WPopup互斥協調(致已開之node/conn資訊popup不關); 防canvas startPan改由onCanvasMouseDown排除.vue-flow__edge-waypoint處理 --\x3e\r\n <circle\r\n v-for="(p, i) in waypointPts"\r\n :key="\'wp\' + i"\r\n :cx="p.x"\r\n :cy="p.y"\r\n r="4"\r\n class="vue-flow__edge-waypoint"\r\n @mousedown="onWaypointMouseDown(i, $event)"\r\n />\r\n </template>\r\n \x3c!-- Label + Settings icon (merged into one foreignObject for correct relative positioning) --\x3e\r\n <foreignObject\r\n :x="pathData.labelX - 100"\r\n :y="pathData.labelY - 18"\r\n width="200"\r\n height="36"\r\n style="overflow: visible; pointer-events: none;"\r\n >\r\n <div class="vue-flow__edge-label-area" xmlns="http://www.w3.org/1999/xhtml">\r\n <span class="vue-flow__edge-label-group">\r\n <WPopup\r\n v-if="hasInfoPopup"\r\n v-model="infoPopupShow"\r\n placement="bottom"\r\n modeHide="mousedown"\r\n :editable="infoPopupEditable"\r\n :minWidth="null"\r\n :maxWidth="null"\r\n :autoFitMinWidth="false"\r\n :autoFitMaxWidth="false"\r\n :backgroundColor="inforPopupBackgroundColor"\r\n :textFontSize="inforPopupTitleTextFontSize"\r\n :paddingStyle="{v:8,h:12}"\r\n >\r\n <template v-slot:trigger>\r\n <span v-if="conn.name" class="vue-flow__edge-label" :style="labelStyle" @mousedown="onLabelMouseDown">{{ conn.name }}</span>\r\n \x3c!-- Zero-size anchor keeps the popup positioned at the label midpoint when the conn has no name --\x3e\r\n <span v-else class="vue-flow__edge-popup-anchor"></span>\r\n </template>\r\n <template v-slot:content>\r\n <slot name="conn-popup" :conn="conn">\r\n <div v-if="conn.name || conn.description" style="min-width:120px">\r\n <div v-if="conn.name" :style="{ fontSize: inforPopupTitleTextFontSize, color: inforPopupTitleTextColor, fontWeight: 500 }">{{ conn.name }}</div>\r\n <div v-if="conn.description" :style="{ fontSize: inforPopupDescriptionTextFontSize, color: inforPopupDescriptionTextColor, marginTop: \'4px\' }">{{ conn.description }}</div>\r\n </div>\r\n </slot>\r\n </template>\r\n </WPopup>\r\n <transition name="vue-flow__fade">\r\n <span v-if="(hovered || settingsPopupShow) && interactive && !locked && settingsEnabled" class="vue-flow__edge-settings-anchor">\r\n <WPopup\r\n v-model="settingsPopupShow"\r\n placement="right-start"\r\n modeHide="mousedown"\r\n :minWidth="null"\r\n :maxWidth="null"\r\n :autoFitMinWidth="false"\r\n :autoFitMaxWidth="false"\r\n :backgroundColor="settingsPopupBackgroundColor"\r\n :textColor="settingsPopupTextColor"\r\n :paddingStyle="{v:8,h:8}"\r\n @show="$emit(\'conn-settings-click\', { conn: conn })"\r\n >\r\n <template v-slot:trigger>\r\n \x3c!-- 不用@mousedown.stop: stopPropagation會連window層popup互斥協調一併擋掉(致其他popup無法關閉); 防canvas startPan改由onCanvasMouseDown排除.vue-flow__edge-settings處理 --\x3e\r\n <span class="vue-flow__edge-settings">\r\n <svg viewBox="0 0 20 20" width="14" height="14" fill="currentColor">\r\n <path d="M11.078 0l.294 1.833a7.587 7.587 0 0 1 2.174 1.25l1.725-.618 1.078 1.87-1.43 1.217a7.508 7.508 0 0 1 0 2.498l1.43 1.217-1.078 1.87-1.725-.618a7.587 7.587 0 0 1-2.174 1.25L11.078 14H8.922l-.294-1.833a7.587 7.587 0 0 1-2.174-1.25l-1.725.618-1.078-1.87 1.43-1.217a7.508 7.508 0 0 1 0-2.498L3.65 4.733l1.078-1.87 1.725.618a7.587 7.587 0 0 1 2.174-1.25L8.922 0h2.156zM10 4.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5z" transform="translate(0 3)"/>\r\n </svg>\r\n </span>\r\n </template>\r\n <template v-slot:content>\r\n <ConnSettingsForm\r\n :conn="conn"\r\n :def-conn="dc"\r\n :text-font-size="settingsPopupTextFontSize"\r\n :excludes="settingsExcludes"\r\n :default-point="waypointDefaultPoint"\r\n :target-point="waypointTargetPoint"\r\n @update="onSettingsUpdate"\r\n @delete="onSettingsDelete"\r\n />\r\n </template>\r\n </WPopup>\r\n </span>\r\n </transition>\r\n </span>\r\n </div>\r\n </foreignObject>\r\n </g>\r\n</template>\r\n\r\n<script>\r\nimport { getBezierPath, getStraightPath, getStepPath, getSmoothStepPath } from \'../../js/edgePath\'\r\nimport { getHandlePosition } from \'../../js/geometry\'\r\nimport ConnSettingsForm from \'../ui/ConnSettingsForm.vue\'\r\nimport WPopup from \'w-component-vue/src/components/WPopup.vue\'\r\nimport fixSvgNs from \'../../js/fixSvgNs.mjs\'\r\n\r\nconst pathFunctions = {\r\n bezier: getBezierPath,\r\n straight: getStraightPath,\r\n step: getStepPath,\r\n smoothstep: getSmoothStepPath,\r\n}\r\n\r\nexport default {\r\n name: \'EdgeWrapper\',\r\n //修Vue2 #7330: 本元件位於<svg>內且含foreignObject, 需清除$vnode.ns否則其內HTML元素(含WPopup之slot內容)被建為SVGElement而0x0不可見\r\n mixins: [fixSvgNs],\r\n components: { ConnSettingsForm, WPopup },\r\n inject: { getDefConn: { default: () => () => ({}) }, getDragGhost: { default: () => () => null } },\r\n props: {\r\n conn: { type: Object, required: true },\r\n sourceNode: { type: Object, default: null },\r\n targetNode: { type: Object, default: null },\r\n selected: { type: Boolean, default: false },\r\n interactive: { type: Boolean, default: true },\r\n locked: { type: Boolean, default: false },\r\n settingsPopupBackgroundColor: { type: String, default: \'#fff\' },\r\n settingsPopupTextColor: { type: String, default: \'#333\' },\r\n settingsPopupTextFontSize: { type: String, default: \'12px\' },\r\n inforPopupBackgroundColor: { type: String, default: \'#fff\' },\r\n inforPopupTitleTextColor: { type: String, default: \'#333\' },\r\n inforPopupTitleTextFontSize: { type: String, default: \'12px\' },\r\n inforPopupDescriptionTextColor: { type: String, default: \'#888\' },\r\n inforPopupDescriptionTextFontSize: { type: String, default: \'10px\' },\r\n allNodes: { type: Array, default: () => [] },\r\n nodeInternals: { type: Object, default: () => ({}) },\r\n settingsEnabled: { type: Boolean, default: true },\r\n settingsExcludes: { type: Array, default: () => [] },\r\n },\r\n data() {\r\n return {\r\n hovered: false,\r\n infoPopupShow: false,\r\n infoPopupEditable: true,\r\n settingsPopupShow: false,\r\n dragPts: null, //轉折點拖曳中之暫時座標([[x,y],...]), 比照節點拖曳之ghost: 不改conn.points(prop), 放開才emit由宿主寫回\r\n }\r\n },\r\n watch: {\r\n settingsPopupShow(val) {\r\n if (val) this.infoPopupShow = false\r\n },\r\n infoPopupShow(val) {\r\n if (val) this.settingsPopupShow = false\r\n },\r\n },\r\n computed: {\r\n dc() {\r\n return this.getDefConn()\r\n },\r\n hasInfoPopup() {\r\n return !!(this.conn.name || this.conn.description || this.$scopedSlots[\'conn-popup\'])\r\n },\r\n //(效能重構)錨點方位/座標自算(原由EdgeRenderer解析後以props傳入):\r\n // 含拖曳/縮放ghost(細粒度反應式), 僅本邊兩端節點變動時本元件才重渲染\r\n sourcePosition() {\r\n return this.conn.fromPosition || (this.sourceNode && this.sourceNode.toPosition) || \'bottom\' //conn層級覆寫優先\r\n },\r\n targetPosition() {\r\n return this.conn.toPosition || (this.targetNode && this.targetNode.fromPosition) || \'top\'\r\n },\r\n effSourceNode() {\r\n return this.effNode(this.sourceNode)\r\n },\r\n effTargetNode() {\r\n return this.effNode(this.targetNode)\r\n },\r\n sourcePoint() {\r\n const n = this.effSourceNode\r\n if (!n) return { x: 0, y: 0 }\r\n return getHandlePosition(n, this.sourcePosition, this.nodeInternals[n.id] || {}, \'source\')\r\n },\r\n targetPoint() {\r\n const n = this.effTargetNode\r\n if (!n) return { x: 0, y: 0 }\r\n return getHandlePosition(n, this.targetPosition, this.nodeInternals[n.id] || {}, \'target\')\r\n },\r\n sourceX() {\r\n return this.sourcePoint.x\r\n },\r\n sourceY() {\r\n return this.sourcePoint.y\r\n },\r\n targetX() {\r\n return this.targetPoint.x\r\n },\r\n targetY() {\r\n return this.targetPoint.y\r\n },\r\n //自動路由(step/smoothstep)用之節點矩形: 僅取起訖兩節點且套用拖曳/縮放ghost。\r\n //why: OrthConnector之calculateStepPoints僅以「起訖兩節點矩形」決定路徑(allNodes原僅供findObstacleAt依端點座標定位該兩矩形, 不做跨節點避讓);\r\n // 若沿用store之allNodes, 拖曳時端點已隨ghost移動、但矩形仍為舊位→findObstacleAt找不到起訖矩形→退化為fallback直角短線, 放開後allNodes更新才恢復正交繞行→路徑跳動。\r\n // 改用effSource/effTargetNode(含ghost)即拖曳中與放開後同一計算、路徑不跳; 靜止時eff=原節點, 與原本傳全部節點所得之起訖矩形一致(版面不重疊), 放開後路由不變。\r\n routingNodes() {\r\n const r = []\r\n if (this.effSourceNode) r.push(this.effSourceNode)\r\n if (this.effTargetNode) r.push(this.effTargetNode)\r\n return r\r\n },\r\n //拖曳中優先取暫時座標(ghost), 靜止時取conn.points\r\n effPoints() {\r\n return this.dragPts || this.conn.points\r\n },\r\n // 強制轉折點正規化([[x,y],...]或[{x,y},...]皆可), 無效回空陣列\r\n waypointPts() {\r\n const pts = this.effPoints\r\n if (!Array.isArray(pts) || pts.length === 0) return []\r\n const r = []\r\n for (const p of pts) {\r\n let x = null\r\n let y = null\r\n if (Array.isArray(p) && p.length >= 2) {\r\n x = Number(p[0]); y = Number(p[1])\r\n }\r\n else if (p && typeof p === \'object\') {\r\n x = Number(p.x); y = Number(p.y)\r\n }\r\n if (!Number.isFinite(x) || !Number.isFinite(y)) return []\r\n r.push({ x, y })\r\n }\r\n return r\r\n },\r\n showWaypoints() {\r\n return this.settingsEnabled && this.interactive && !this.locked && this.waypointPts.length > 0\r\n },\r\n //新增轉折點之預設位置=路徑中點(新點落於既有線上, 路徑幾乎不變不跳動)\r\n waypointDefaultPoint() {\r\n return { x: Math.round(this.pathData.labelX), y: Math.round(this.pathData.labelY) }\r\n },\r\n //後續新增以「末點與迄點錨中點」細分(供表單計算)\r\n waypointTargetPoint() {\r\n return { x: Math.round(this.targetX), y: Math.round(this.targetY) }\r\n },\r\n classes() {\r\n const connClasses = this.conn.class\r\n ? (Array.isArray(this.conn.class) ? this.conn.class : [this.conn.class])\r\n : []\r\n return [\r\n \'vue-flow__edge\',\r\n `vue-flow__edge-${this.conn.type || this.dc.type || \'bezier\'}`,\r\n ...connClasses,\r\n {\r\n \'vue-flow__edge--selected\': this.selected,\r\n \'vue-flow__edge--animated\': this.conn.animated,\r\n },\r\n ]\r\n },\r\n pathData() {\r\n const type = this.conn.type || this.dc.type || \'bezier\'\r\n const fn = pathFunctions[type] || pathFunctions.bezier\r\n return fn({\r\n sourceX: this.sourceX,\r\n sourceY: this.sourceY,\r\n sourcePosition: this.sourcePosition,\r\n targetX: this.targetX,\r\n targetY: this.targetY,\r\n targetPosition: this.targetPosition,\r\n curvature: this.conn.curvature,\r\n points: this.effPoints, //強制轉折點([[x,y],...]或[{x,y},...]), 有給即取代自動路由(兩端錨點方位仍生效); 拖曳中為ghost座標\r\n allNodes: this.routingNodes, //僅起訖兩節點且含ghost, 修拖曳中路徑與放開後不一致(見routingNodes說明)\r\n\r\n nodeInternals: this.nodeInternals,\r\n connFromId: this.conn.from,\r\n connToId: this.conn.to,\r\n offset: this.dc.defOffset,\r\n })\r\n },\r\n connStyle() {\r\n const d = this.dc\r\n const base = this.conn.style ? { ...this.conn.style } : {}\r\n base.stroke = this.conn.edgeColor || d.edgeColor || \'#b1b1b7\'\r\n if (this.conn.edgeWidth !== undefined) base.strokeWidth = this.conn.edgeWidth\r\n else if (d.edgeWidth !== undefined) base.strokeWidth = d.edgeWidth\r\n let dash = this.conn.edgeDasharray !== undefined ? this.conn.edgeDasharray : d.edgeDasharray\r\n if (dash) base.strokeDasharray = dash\r\n return base\r\n },\r\n markerStartUrl() {\r\n return this.getMarkerUrl(this.conn.markerStart)\r\n },\r\n markerEndUrl() {\r\n return this.getMarkerUrl(this.conn.markerEnd || this.dc.markerEnd)\r\n },\r\n labelStyle() {\r\n const d = this.dc\r\n const s = {}\r\n const fontSize = this.conn.fontSize || d.fontSize\r\n const fontColor = this.conn.fontColor || d.fontColor\r\n if (fontSize) s.fontSize = fontSize + \'px\'\r\n if (fontColor) s.color = fontColor\r\n return s\r\n },\r\n },\r\n methods: {\r\n //拖曳/縮放ghost套用: 有進行中之暫時幾何則以其構成有效節點(不改原節點物件)\r\n effNode(node) {\r\n if (!node) return null\r\n const g = this.getDragGhost(node.id)\r\n if (!g) return node\r\n return {\r\n ...node,\r\n position: { x: g.x, y: g.y },\r\n width: g.width !== undefined ? g.width : node.width,\r\n height: g.height !== undefined ? g.height : node.height,\r\n }\r\n },\r\n getMarkerUrl(marker) {\r\n if (!marker) return null\r\n const config = typeof marker === \'string\' ? { type: marker } : marker\r\n // Fallback chain must match EdgeMarkerDefs so the generated ids agree.\r\n const color = config.color || this.conn.edgeColor || this.dc.edgeColor || \'#b1b1b7\'\r\n return `url(#vue-flow__${config.type}_${color.replace(\'#\', \'\')})`\r\n },\r\n onGroupMouseEnter(event) {\r\n this.hovered = true\r\n this.$emit(\'conn-mouseenter\', { conn: this.conn, event })\r\n },\r\n onGroupMouseLeave(event) {\r\n this.hovered = false\r\n this.$emit(\'conn-mouseleave\', { conn: this.conn, event })\r\n },\r\n onClick(event) {\r\n if (this.hasInfoPopup) {\r\n this.infoPopupShow = true\r\n }\r\n this.$emit(\'conn-click\', { conn: this.conn, event })\r\n },\r\n openInfoPopup() {\r\n this.infoPopupShow = true\r\n },\r\n onDoubleClick(event) {\r\n this.$emit(\'conn-double-click\', { conn: this.conn, event })\r\n },\r\n onContextMenu(event) {\r\n this.$emit(\'conn-context-menu\', { conn: this.conn, event })\r\n },\r\n onLabelMouseDown(event) {\r\n this.infoPopupShow = false\r\n const startX = event.clientX\r\n const startY = event.clientY\r\n const onMove = (e) => {\r\n if (Math.abs(e.clientX - startX) > 2 || Math.abs(e.clientY - startY) > 2) {\r\n this.infoPopupEditable = false\r\n document.removeEventListener(\'mousemove\', onMove)\r\n }\r\n }\r\n const onUp = () => {\r\n document.removeEventListener(\'mousemove\', onMove)\r\n document.removeEventListener(\'mouseup\', onUp)\r\n if (!this.infoPopupEditable) {\r\n setTimeout(() => {\r\n this.infoPopupEditable = true\r\n }, 0)\r\n }\r\n }\r\n document.addEventListener(\'mousemove\', onMove)\r\n document.addEventListener(\'mouseup\', onUp)\r\n },\r\n onSettingsUpdate(key, value) {\r\n this.$emit(\'conn-settings-update\', { conn: this.conn, key, value })\r\n },\r\n onWaypointMouseDown(i, event) {\r\n if (!this.interactive || this.locked || !this.settingsEnabled) return\r\n event.preventDefault()\r\n\r\n // 鎖定拖曳游標\r\n const cursorStyle = document.createElement(\'style\')\r\n cursorStyle.textContent = \'* { cursor: move !important; }\'\r\n document.head.appendChild(cursorStyle)\r\n\r\n const startX = event.clientX\r\n const startY = event.clientY\r\n const pts0 = this.waypointPts.map(p => [p.x, p.y]) //拖曳起始快照\r\n // Get zoom from the viewport transform(同 NodeWrapper 拖曳之換算)\r\n const viewport = this.$el.closest(\'.vue-flow__viewport\')\r\n const zoom = viewport ? parseFloat(viewport.style.transform.match(/scale\\(([^)]+)\\)/)?.[1] || 1) : 1\r\n\r\n const onMouseMove = (e) => {\r\n const dx = (e.clientX - startX) / zoom\r\n const dy = (e.clientY - startY) / zoom\r\n const np = pts0.map(p => [p[0], p[1]])\r\n np[i] = [Math.round(pts0[i][0] + dx), Math.round(pts0[i][1] + dy)]\r\n //僅更新本元件之ghost, 路徑即時重繪; 不mutate conn.points(prop)以免波及宿主之deep watcher\r\n this.dragPts = np\r\n }\r\n const onMouseUp = () => {\r\n document.removeEventListener(\'mousemove\', onMouseMove)\r\n document.removeEventListener(\'mouseup\', onMouseUp)\r\n document.head.removeChild(cursorStyle)\r\n //放開才發更新事件(與齒輪表單同一事件流, 由宿主持久化); 事件流為同步, 回來時conn.points已更新故可安全清ghost\r\n const value = this.waypointPts.map(p => [p.x, p.y])\r\n this.$emit(\'conn-settings-update\', { conn: this.conn, key: \'points\', value })\r\n this.dragPts = null\r\n }\r\n document.addEventListener(\'mousemove\', onMouseMove)\r\n document.addEventListener(\'mouseup\', onMouseUp)\r\n },\r\n onSettingsDelete() {\r\n this.$emit(\'conn-settings-delete\', { conn: this.conn })\r\n },\r\n },\r\n}\r\n<\/script>\r\n\r\n<style scoped>\r\n/* Only target direct-child paths (edge paths), not SVG paths inside settings icon */\r\n.vue-flow__edge > path {\r\n stroke: #b1b1b7;\r\n stroke-width: 1;\r\n fill: none;\r\n pointer-events: none;\r\n transition: stroke 0.3s ease, filter 0.18s ease;\r\n}\r\n.vue-flow__edge-interaction {\r\n stroke: transparent !important;\r\n stroke-width: 20 !important;\r\n fill: none;\r\n pointer-events: stroke !important;\r\n cursor: pointer;\r\n}\r\n.vue-flow__edge-waypoint {\r\n fill: #9e9e9e;\r\n stroke: #fff;\r\n stroke-width: 1.5;\r\n pointer-events: all;\r\n cursor: grab;\r\n}\r\n.vue-flow__edge-waypoint:hover {\r\n fill: #616161;\r\n stroke-width: 2;\r\n}\r\n.vue-flow__edge-waypoint:active {\r\n cursor: grabbing;\r\n}\r\n.vue-flow__edge:hover > path {\r\n stroke: #555;\r\n}\r\n.vue-flow__edge--selected > path,\r\n.vue-flow__edge--selected:hover > path {\r\n filter: drop-shadow(0 0 2px rgba(220, 38, 38, 0.8)) drop-shadow(0 0 4px rgba(220, 38, 38, 0.5)) drop-shadow(0 0 6px rgba(220, 38, 38, 0.25));\r\n}\r\n.vue-flow__edge--animated > path:not(.vue-flow__edge-interaction) {\r\n stroke-dasharray: 5;\r\n animation: vue-flow-dash 0.5s linear infinite;\r\n}\r\n@keyframes vue-flow-dash {\r\n to { stroke-dashoffset: -10; }\r\n}\r\n.vue-flow__edge-label-area {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n height: 100%;\r\n pointer-events: none;\r\n}\r\n.vue-flow__edge-label-group {\r\n position: relative;\r\n display: inline-flex;\r\n align-items: center;\r\n pointer-events: all;\r\n}\r\n.vue-flow__edge-label {\r\n pointer-events: all;\r\n cursor: pointer;\r\n font-family: \'Microsoft JhengHei\', \'微軟正黑體\', -apple-system, BlinkMacSystemFont, \'Segoe UI\', Roboto, sans-serif;\r\n font-size: 10px;\r\n background: #fff;\r\n padding: 2px 4px;\r\n border-radius: 2px;\r\n white-space: nowrap;\r\n user-select: none;\r\n text-align: center;\r\n display: inline-block;\r\n}\r\n.vue-flow__edge-popup-anchor {\r\n display: inline-block;\r\n width: 0;\r\n height: 0;\r\n}\r\n.vue-flow__edge-settings-anchor {\r\n position: absolute;\r\n top: -8px;\r\n right: -8px;\r\n z-index: 2;\r\n pointer-events: all;\r\n}\r\n.vue-flow__edge-settings {\r\n width: 20px;\r\n height: 20px;\r\n border-radius: 50%;\r\n background: #fff;\r\n border: 1px solid #ccc;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n color: #888;\r\n pointer-events: all;\r\n transition: border-color 0.15s ease, background 0.15s ease;\r\n}\r\n.vue-flow__edge-settings:hover {\r\n border-color: #666;\r\n background: #f0f0f0;\r\n color: #333;\r\n}\r\n/* Fade transition for settings icon */\r\n.vue-flow__fade-enter-active,\r\n.vue-flow__fade-leave-active {\r\n transition: opacity 0.15s ease;\r\n}\r\n.vue-flow__fade-enter,\r\n.vue-flow__fade-leave-to {\r\n opacity: 0;\r\n}\r\n</style>\r\n']},media:void 0})},$p,"data-v-265c95c3",false,void 0,!1,Zr,void 0,void 0);var Lp={name:"EdgeMarkerDefs",inject:{getDefConn:{default:()=>()=>({})}},props:{conns:{type:Array,default:()=>[]}},computed:{markers(){const n=new Map,e=this.getDefConn();return this.conns.forEach(t=>{const o=t.edgeColor||e.edgeColor;this.collectMarker(t.markerStart,n,o),this.collectMarker(t.markerEnd||e.markerEnd,n,o)}),Array.from(n.values())}},methods:{collectMarker(n,e,t){if(!n)return;const o="string"==typeof n?{type:n}:n,r=o.color||t||"#b1b1b7",i=this.getMarkerId(o,r);e.has(i)||("arrowclosed"===o.type?e.set(i,{id:i,viewBox:"0 0 12.5 12.5",path:"M 0 0 L 10 5 L 0 10 z",fill:r,stroke:r}):e.set(i,{id:i,viewBox:"0 0 12.5 12.5",path:"M 0 0 L 10 5 L 0 10",fill:"none",stroke:r}))},getMarkerId:(n,e)=>`vue-flow__${"string"==typeof n?n:n.type}_${e.replace("#","")}`}};const Dp=Lp;var Rp=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("defs",n._l(n.markers,function(n){return t("marker",{key:n.id,attrs:{id:n.id,markerWidth:"12.5",markerHeight:"12.5",viewBox:n.viewBox,refX:"10",refY:"5",orient:"auto-start-reverse",markerUnits:"strokeWidth"}},[t("path",{attrs:{d:n.path,fill:n.fill,stroke:n.stroke,"stroke-width":"1"}})])}),0)};Rp._withStripped=!0;var jp={name:"EdgeRenderer",components:{EdgeWrapper:Mp,EdgeMarkerDefs:Xr({render:Rp,staticRenderFns:[]},void 0,Dp,void 0,false,void 0,!1,void 0,void 0,void 0)},props:{conns:{type:Array,default:()=>[]},nodes:{type:Array,default:()=>[]},nodeInternals:{type:Object,default:()=>({})},selectedConnIds:{type:Array,default:()=>[]},interactive:{type:Boolean,default:!0},locked:{type:Boolean,default:!1},settingsPopupBackgroundColor:{type:String,default:"#fff"},settingsPopupTextColor:{type:String,default:"#333"},settingsPopupTextFontSize:{type:String,default:"12px"},inforPopupBackgroundColor:{type:String,default:"#fff"},inforPopupTitleTextColor:{type:String,default:"#333"},inforPopupTitleTextFontSize:{type:String,default:"12px"},inforPopupDescriptionTextColor:{type:String,default:"#888"},inforPopupDescriptionTextFontSize:{type:String,default:"10px"},settingsEnabled:{type:Boolean,default:!0},settingsExcludes:{type:Array,default:()=>[]}},computed:{visibleConns(){const n=new Set(this.nodes.filter(n=>!n.hidden).map(n=>n.id)),e=this.conns.filter(e=>!e.hidden&&n.has(e.from)&&n.has(e.to)),t=this.selectedConnIds||[];return t.length?[...e.filter(n=>t.indexOf(n.id)<0),...e.filter(n=>t.indexOf(n.id)>=0)]:e},nodeMap(){const n={};return this.nodes.forEach(e=>{n[e.id]=e}),n}},methods:{isSelected(n){return this.selectedConnIds.includes(n)},openConnInfoPopup(n){let e=(this.$refs.wrappers||[]).find(e=>e.conn&&e.conn.id===n);return!!e&&(e.openInfoPopup(),!0)}}};const Op=jp;var Vp=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("svg",{staticClass:"vue-flow__edges"},[t("EdgeMarkerDefs",{attrs:{conns:n.conns}}),n._v(" "),n._l(n.visibleConns,function(e){return t("EdgeWrapper",{key:e.id,ref:"wrappers",refInFor:!0,attrs:{conn:e,"source-node":n.nodeMap[e.from],"target-node":n.nodeMap[e.to],selected:n.isSelected(e.id),"all-nodes":n.nodes,"node-internals":n.nodeInternals,interactive:n.interactive,locked:n.locked,"settings-popup-background-color":n.settingsPopupBackgroundColor,"settings-popup-text-color":n.settingsPopupTextColor,"settings-popup-text-font-size":n.settingsPopupTextFontSize,"infor-popup-background-color":n.inforPopupBackgroundColor,"infor-popup-title-text-color":n.inforPopupTitleTextColor,"infor-popup-title-text-font-size":n.inforPopupTitleTextFontSize,"infor-popup-description-text-color":n.inforPopupDescriptionTextColor,"infor-popup-description-text-font-size":n.inforPopupDescriptionTextFontSize,"settings-enabled":n.settingsEnabled,"settings-excludes":n.settingsExcludes},on:{"conn-click":function(e){return n.$emit("conn-click",e)},"conn-double-click":function(e){return n.$emit("conn-double-click",e)},"conn-context-menu":function(e){return n.$emit("conn-context-menu",e)},"conn-mouseenter":function(e){return n.$emit("conn-mouseenter",e)},"conn-mouseleave":function(e){return n.$emit("conn-mouseleave",e)},"conn-settings-click":function(e){return n.$emit("conn-settings-click",e)},"conn-settings-update":function(e){return n.$emit("conn-settings-update",e)},"conn-settings-delete":function(e){return n.$emit("conn-settings-delete",e)}},scopedSlots:n._u([n.$scopedSlots["conn-popup"]?{key:"conn-popup",fn:function(e){return[n._t("conn-popup",null,null,e)]}}:null],null,!0)})})],2)};Vp._withStripped=!0;const Yp=Xr({render:Vp,staticRenderFns:[]},function(n){n&&n("data-v-b3f9275a_0",{source:"\n.vue-flow__edges[data-v-b3f9275a] {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n overflow: visible;\r\n pointer-events: none;\n}\r\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\edges\\EdgeRenderer.vue"],names:[],mappings:";AAuGA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,iBAAA;EACA,oBAAA;AACA",file:"EdgeRenderer.vue",sourcesContent:['<template>\r\n <svg class="vue-flow__edges">\r\n <EdgeMarkerDefs :conns="conns" />\r\n <EdgeWrapper\r\n v-for="conn in visibleConns"\r\n ref="wrappers"\r\n :key="conn.id"\r\n :conn="conn"\r\n :source-node="nodeMap[conn.from]"\r\n :target-node="nodeMap[conn.to]"\r\n :selected="isSelected(conn.id)"\r\n :all-nodes="nodes"\r\n :node-internals="nodeInternals"\r\n :interactive="interactive"\r\n :locked="locked"\r\n :settings-popup-background-color="settingsPopupBackgroundColor"\r\n :settings-popup-text-color="settingsPopupTextColor"\r\n :settings-popup-text-font-size="settingsPopupTextFontSize"\r\n :infor-popup-background-color="inforPopupBackgroundColor"\r\n :infor-popup-title-text-color="inforPopupTitleTextColor"\r\n :infor-popup-title-text-font-size="inforPopupTitleTextFontSize"\r\n :infor-popup-description-text-color="inforPopupDescriptionTextColor"\r\n :infor-popup-description-text-font-size="inforPopupDescriptionTextFontSize"\r\n :settings-enabled="settingsEnabled"\r\n :settings-excludes="settingsExcludes"\r\n @conn-click="$emit(\'conn-click\', $event)"\r\n @conn-double-click="$emit(\'conn-double-click\', $event)"\r\n @conn-context-menu="$emit(\'conn-context-menu\', $event)"\r\n @conn-mouseenter="$emit(\'conn-mouseenter\', $event)"\r\n @conn-mouseleave="$emit(\'conn-mouseleave\', $event)"\r\n @conn-settings-click="$emit(\'conn-settings-click\', $event)"\r\n @conn-settings-update="$emit(\'conn-settings-update\', $event)"\r\n @conn-settings-delete="$emit(\'conn-settings-delete\', $event)"\r\n >\r\n <template v-if="$scopedSlots[\'conn-popup\']" v-slot:conn-popup="scope">\r\n <slot name="conn-popup" v-bind="scope" />\r\n </template>\r\n </EdgeWrapper>\r\n </svg>\r\n</template>\r\n\r\n<script>\r\nimport EdgeWrapper from \'./EdgeWrapper.vue\'\r\nimport EdgeMarkerDefs from \'./EdgeMarkerDefs.vue\'\r\n\r\nexport default {\r\n name: \'EdgeRenderer\', // lock support\r\n components: { EdgeWrapper, EdgeMarkerDefs },\r\n props: {\r\n conns: { type: Array, default: () => [] },\r\n nodes: { type: Array, default: () => [] },\r\n nodeInternals: { type: Object, default: () => ({}) },\r\n selectedConnIds: { type: Array, default: () => [] },\r\n interactive: { type: Boolean, default: true },\r\n locked: { type: Boolean, default: false },\r\n settingsPopupBackgroundColor: { type: String, default: \'#fff\' },\r\n settingsPopupTextColor: { type: String, default: \'#333\' },\r\n settingsPopupTextFontSize: { type: String, default: \'12px\' },\r\n inforPopupBackgroundColor: { type: String, default: \'#fff\' },\r\n inforPopupTitleTextColor: { type: String, default: \'#333\' },\r\n inforPopupTitleTextFontSize: { type: String, default: \'12px\' },\r\n inforPopupDescriptionTextColor: { type: String, default: \'#888\' },\r\n inforPopupDescriptionTextFontSize: { type: String, default: \'10px\' },\r\n settingsEnabled: { type: Boolean, default: true },\r\n settingsExcludes: { type: Array, default: () => [] },\r\n },\r\n computed: {\r\n visibleConns() {\r\n const visibleNodeIds = new Set(this.nodes.filter(n => !n.hidden).map(n => n.id))\r\n const list = this.conns.filter(\r\n e => !e.hidden && visibleNodeIds.has(e.from) && visibleNodeIds.has(e.to)\r\n )\r\n //選取之連線移至最後渲染(SVG疊序=文件順序即置頂): 該線與其轉折點不被其他線遮擋, 便於檢視與編修\r\n const sel = this.selectedConnIds || []\r\n if (!sel.length) return list\r\n return [...list.filter(c => sel.indexOf(c.id) < 0), ...list.filter(c => sel.indexOf(c.id) >= 0)]\r\n },\r\n nodeMap() {\r\n const map = {}\r\n this.nodes.forEach(n => {\r\n map[n.id] = n\r\n })\r\n return map\r\n },\r\n },\r\n methods: {\r\n //(效能重構)錨點座標/方位解析下沉至EdgeWrapper自算(含拖曳ghost):\r\n // 本層render不再讀取各節點position, 拖曳節點時EdgeRenderer不重渲染, 僅相連邊之EdgeWrapper更新\r\n isSelected(id) {\r\n return this.selectedConnIds.includes(id)\r\n },\r\n openConnInfoPopup(connId) {\r\n let wrappers = this.$refs.wrappers || []\r\n let w = wrappers.find(c => c.conn && c.conn.id === connId)\r\n if (!w) return false\r\n w.openInfoPopup()\r\n return true\r\n },\r\n },\r\n}\r\n<\/script>\r\n\r\n<style scoped>\r\n.vue-flow__edges {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n overflow: visible;\r\n pointer-events: none;\r\n}\r\n</style>\r\n']},media:void 0})},Op,"data-v-b3f9275a",false,void 0,!1,Zr,void 0,void 0),Up={bezier:wp,straight:Sp,step:kp,smoothstep:_p};const Xp={name:"ConnectionLine",props:{active:{type:Boolean,default:!1},sourceX:{type:Number,default:0},sourceY:{type:Number,default:0},sourcePosition:{type:String,default:"bottom"},targetX:{type:Number,default:0},targetY:{type:Number,default:0},type:{type:String,default:"bezier"},lineStyle:{type:Object,default:null}},computed:{pathD(){return(Up[this.type]||Up.bezier)({sourceX:this.sourceX,sourceY:this.sourceY,sourcePosition:this.sourcePosition,targetX:this.targetX,targetY:this.targetY,targetPosition:"top"}).path},computedLineStyle(){return this.lineStyle||{}}}};var Gp=function(){var n=this,e=n.$createElement,t=n._self._c||e;return n.active?t("svg",{staticClass:"vue-flow__connection-line"},[t("path",{staticClass:"vue-flow__connection-path",style:n.computedLineStyle,attrs:{d:n.pathD}})]):n._e()};Gp._withStripped=!0;const Zp=Xr({render:Gp,staticRenderFns:[]},function(n){n&&n("data-v-a322aa0e_0",{source:"\n.vue-flow__connection-line[data-v-a322aa0e] {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n overflow: visible;\n pointer-events: none;\n}\n.vue-flow__connection-path[data-v-a322aa0e] {\n stroke: #b1b1b7;\n stroke-width: 1;\n stroke-dasharray: 5 5;\n fill: none;\n}\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\edges\\ConnectionLine.vue"],names:[],mappings:";AAiDA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,iBAAA;EACA,oBAAA;AACA;AACA;EACA,eAAA;EACA,eAAA;EACA,qBAAA;EACA,UAAA;AACA",file:"ConnectionLine.vue",sourcesContent:["<template>\n <svg v-if=\"active\" class=\"vue-flow__connection-line\">\n <path class=\"vue-flow__connection-path\" :d=\"pathD\" :style=\"computedLineStyle\" />\n </svg>\n</template>\n\n<script>\nimport { getBezierPath, getStraightPath, getStepPath, getSmoothStepPath } from '../../js/edgePath'\n\nconst pathFunctions = {\n bezier: getBezierPath,\n straight: getStraightPath,\n step: getStepPath,\n smoothstep: getSmoothStepPath,\n}\n\nexport default {\n name: 'ConnectionLine',\n props: {\n active: { type: Boolean, default: false },\n sourceX: { type: Number, default: 0 },\n sourceY: { type: Number, default: 0 },\n sourcePosition: { type: String, default: 'bottom' },\n targetX: { type: Number, default: 0 },\n targetY: { type: Number, default: 0 },\n type: { type: String, default: 'bezier' },\n lineStyle: { type: Object, default: null },\n },\n computed: {\n pathD() {\n const fn = pathFunctions[this.type] || pathFunctions.bezier\n const result = fn({\n sourceX: this.sourceX,\n sourceY: this.sourceY,\n sourcePosition: this.sourcePosition,\n targetX: this.targetX,\n targetY: this.targetY,\n targetPosition: 'top',\n })\n return result.path\n },\n computedLineStyle() {\n return this.lineStyle || {}\n },\n },\n}\n<\/script>\n\n<style scoped>\n.vue-flow__connection-line {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n overflow: visible;\n pointer-events: none;\n}\n.vue-flow__connection-path {\n stroke: #b1b1b7;\n stroke-width: 1;\n stroke-dasharray: 5 5;\n fill: none;\n}\n</style>\n"]},media:void 0})},Xp,"data-v-a322aa0e",false,void 0,!1,Zr,void 0,void 0);var qp={components:{WIcon:ni,WIconLoading:Hd,WTooltip:ks},props:{tooltip:{type:String,default:""},icon:{type:String,default:""},iconSize:{type:Number,default:22},iconColor:{type:String,default:"grey darken-1"},iconColorHover:{type:String,default:"grey darken-2"},iconColorFocus:{type:String,default:"grey darken-3"},iconColorActive:{type:String,default:"grey darken-3"},borderRadius:{type:[Number,String],default:"50%"},borderRadiusStyle:{type:Object,default:()=>({left:!0,right:!0})},borderWidth:{type:Number,default:0},borderColor:{type:String,default:"transparent"},borderColorHover:{type:String,default:"transparent"},borderColorFocus:{type:String,default:"transparent"},borderColorActive:{type:String,default:"transparent"},backgroundColor:{type:String,default:"rgb(241,241,241)"},backgroundColorHover:{type:String,default:"rgb(236,236,236)"},backgroundColorFocus:{type:String,default:"rgb(230,230,230)"},backgroundColorActive:{type:String,default:"rgb(230,230,230)"},tooltipBorderRadius:{type:Number,default:4},tooltipPaddingStyle:{type:Object,default:()=>({v:5,h:8})},tooltipTextFontSize:{type:String,default:"0.85rem"},tooltipTextColor:{type:String,default:"white"},tooltipBackgroundColor:{type:String,default:"rgba(60,60,60,0.75)"},rippleColor:{type:String,default:"rgba(255, 255, 255, 0.5)"},paddingStyle:{type:Object,default:()=>({v:4,h:4})},shadow:{type:Boolean,default:!0},shadowStyle:{type:String,default:"0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12)"},active:{type:Boolean,default:!1},cursorPointer:{type:Boolean,default:!0},loading:{type:Boolean,default:!1},loadingColor:{type:String,default:"grey darken-2"},promiseUnlock:{type:Boolean,default:!1},role:{type:String,default:"button"},editable:{type:Boolean,default:!0},disabledColor:{type:String,default:"rgba(255,255,255,0.5)"}},data:function(){return{activeTrans:!1,hoverTrans:!1,focusTrans:!1,loadingTrans:!1}},mounted:function(){},computed:{changeActive:function(){return this.activeTrans=this.active,""},changeLoading:function(){return this.loadingTrans=this.loading,""},effIconColor:function(){return Br(this.iconColor)},effIconColorHover:function(){return Br(this.iconColorHover)},effIconColorFocus:function(){return Br(this.iconColorFocus)},effIconColorActive:function(){return Br(this.iconColorActive)},useIconColor:function(){let n,e=this;return e.loadingTrans?e.effIconColor:(n=e.activeTrans?e.effIconColorActive:e.focusTrans?e.effIconColorFocus:e.hoverTrans?e.effIconColorHover:e.effIconColor,e.editable||(n=e.activeTrans?e.effIconColorActive:e.effIconColor),n)},useBorderRadius:function(){let n=this,e="0px";if(Ut(n.borderRadius)){e=`${Xt(n.borderRadius)}px;`}else ft(n.borderRadius)&&(e=n.borderRadius);let t="0px",o="0px",r="0px",i="0px";return!0===an(n,"borderRadiusStyle.left")&&(t=e,r=e),!0===an(n,"borderRadiusStyle.right")&&(o=e,i=e),!0===an(n,"borderRadiusStyle.top")&&(t=e,o=e),!0===an(n,"borderRadiusStyle.bottom")&&(r=e,i=e),!0!==an(n,"borderRadiusStyle.topLeft")&&!0!==an(n,"borderRadiusStyle.top-left")||(t=e),!0!==an(n,"borderRadiusStyle.topRight")&&!0!==an(n,"borderRadiusStyle.top-right")||(o=e),!0!==an(n,"borderRadiusStyle.bottomLeft")&&!0!==an(n,"borderRadiusStyle.bottom-left")||(r=e),!0!==an(n,"borderRadiusStyle.bottomRight")&&!0!==an(n,"borderRadiusStyle.bottom-right")||(i=e),`border-top-left-radius:${t}; border-top-right-radius:${o}; border-bottom-left-radius:${r}; border-bottom-right-radius:${i};`},effBorderColor:function(){return Br(this.borderColor)},effBorderColorHover:function(){return Br(this.borderColorHover)},effBorderColorFocus:function(){return Br(this.borderColorFocus)},effBorderColorActive:function(){return Br(this.borderColorActive)},useBorderColor:function(){let n,e=this;return e.loadingTrans?e.effBorderColor:(n=e.activeTrans?e.effBorderColorActive:e.focusTrans?e.effBorderColorFocus:e.hoverTrans?e.effBorderColorHover:e.effBorderColor,e.editable||(n=e.activeTrans?e.effBorderColorActive:e.effBorderColor),n)},effBackgroundColor:function(){return Br(this.backgroundColor)},effBackgroundColorHover:function(){return Br(this.backgroundColorHover)},effBackgroundColorFocus:function(){return Br(this.backgroundColorFocus)},effBackgroundColorActive:function(){return Br(this.backgroundColorActive)},useBackgroundColor:function(){let n,e=this;return e.loadingTrans?e.effBackgroundColor:(n=e.activeTrans?e.effBackgroundColorActive:e.focusTrans?e.effBackgroundColorFocus:e.hoverTrans?e.effBackgroundColorHover:e.effBackgroundColor,e.editable||(n=e.activeTrans?e.effBackgroundColorActive:e.effBackgroundColor),n)},effRippleColor:function(){return Br(this.rippleColor)},effLoadingColor:function(){return Br(this.loadingColor)},effDisabledColor:function(){return Br(this.disabledColor)},usePadding:function(){return`padding:${Or(this.paddingStyle,{ext:{}})};`},useShadow:function(){let n=this;return n.shadow&&ft(n.shadowStyle)?"box-shadow:"+function(n,e,t){let o=ce(n=Pr(n,"}","{"),"{");return o=lt(o,n=>{if(n.indexOf(e)>=0){let e=Rs(n,"=")[1];return e=Ut(e)?Xt(e):.2,function(n,e){let t=Br(n),o=Ul.toRgba(t);return o.a=e,Ul.toRgbaString(o)}(t,e)}return n}),Kl(o,"")}(n.shadowStyle,"backgroundColorAlpha",n.backgroundColor):""},hasTooltop:function(){return ft(this.tooltip)}},methods:{ripple:function(n){let e=this;e.editable&&(e.loadingTrans||e.$nextTick(()=>{Mr(n.currentTarget,n,{color:e.effRippleColor,timeDuration:500})}))},clickBtn:function(n){let e=this;if(e.editable&&!e.loadingTrans)if(e.promiseUnlock){e.loadingTrans=!0,e.$nextTick(()=>{e.$emit("update:loading",e.loadingTrans)});let n=yd();e.$nextTick(()=>{e.$emit("click",{pm:n})}),n.catch().finally(()=>{e.loadingTrans=!1,e.$nextTick(()=>{e.$emit("update:loading",e.loadingTrans)})})}else e.$nextTick(()=>{e.$emit("click")})}}};const Jp=qp;var Qp=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{staticStyle:{display:"inline-block","vertical-align":"middle",outline:"none","user-select":"none"},attrs:{role:n.editable?n.role:"",changeActive:n.changeActive,changeLoading:n.changeLoading}},[t("WTooltip",{attrs:{displayType:"line",isolated:!0,borderRadius:n.tooltipBorderRadius,paddingStyle:n.tooltipPaddingStyle,textFontSize:n.tooltipTextFontSize,textColor:n.tooltipTextColor,backgroundColor:n.tooltipBackgroundColor,editable:n.hasTooltop},scopedSlots:n._u([{key:"trigger",fn:function(){return[t("div",{style:"position:relative; transition:all 0.3s; "+n.usePadding+" "+n.useBorderRadius+" border:"+n.borderWidth+"px solid "+n.useBorderColor+"; background:"+n.useBackgroundColor+"; "+(n.editable&&n.cursorPointer?"cursor:pointer;":"")+" "+n.useShadow+"; outline:none; user-select:none; overflow:hidden;",attrs:{tabindex:"0"},on:{mouseenter:function(e){n.hoverTrans=!0,n.$emit("mouseenter",e)},mouseleave:function(e){n.hoverTrans=!1,n.$emit("mouseleave",e)},focus:function(e){n.focusTrans=!0},blur:function(e){n.focusTrans=!1},keyup:function(e){return!e.type.indexOf("key")&&n._k(e.keyCode,"enter",13,e.key,"Enter")?null:n.clickBtn(e)},click:function(e){n.ripple(e),n.clickBtn(e)}}},[t("div",{staticStyle:{display:"flex","align-items":"center","justify-content":"center"}},[n.loadingTrans?n._e():t("WIcon",{attrs:{icon:n.icon,color:n.useIconColor,colorHover:n.useIconColor,size:n.iconSize}}),n._v(" "),n.loadingTrans?t("WIconLoading",{attrs:{name:"cir-rotate",color:n.effLoadingColor,size:n.iconSize}}):n._e()],1),n._v(" "),n.editable?n._e():t("div",{staticStyle:{position:"absolute",left:"0",right:"0",top:"0",bottom:"0"}},[t("div",{style:n.useBorderRadius+" overflow:hidden; width:100%; height:100%;"},[t("div",{style:"background:"+n.effDisabledColor+"; height:100%;"})])])])]},proxy:!0},{key:"content",fn:function(){return[n._v("\n "+n._s(n.tooltip)+"\n ")]},proxy:!0}])})],1)};Qp._withStripped=!0;var Kp={components:{WButtonCircle:Xr({render:Qp,staticRenderFns:[]},function(n){n&&n("data-v-b9ce631c_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WButtonCircle.vue"},media:void 0})},Jp,"data-v-b9ce631c",false,void 0,!1,Zr,void 0,void 0)},props:{multiCheck:{type:Boolean,default:!0},items:{type:Array,default:()=>[]},value:{type:[Array,Object],default:null},keyIcon:{type:String,default:"icon"},keyTooltip:{type:String,default:"tooltip"},dir:{type:String,default:"horizontal"},iconColor:{type:String,default:"#222"},iconColorHover:{type:String,default:"#444"},iconColorFocus:{type:String,default:"#666"},iconColorActive:{type:String,default:"#333"},iconSize:{type:Number,default:22},borderWidth:{type:Number,default:0},borderRadius:{type:Number,default:4},borderColor:{type:String,default:"transparent"},borderColorHover:{type:String,default:"transparent"},borderColorFocus:{type:String,default:"transparent"},borderColorActive:{type:String,default:"transparent"},backgroundColor:{type:String,default:"#f2f2f2"},backgroundColorHover:{type:String,default:"#eaeaea"},backgroundColorFocus:{type:String,default:"#e2e2e2"},backgroundColorActive:{type:String,default:"#cecece"},seplineWidth:{type:Number,default:1},seplineColor:{type:String,default:"#ddd"},tooltipBorderRadius:{type:Number,default:4},tooltipPaddingStyle:{type:Object,default:()=>({v:5,h:8})},tooltipTextFontSize:{type:String,default:"0.85rem"},tooltipTextColor:{type:String,default:"white"},tooltipBackgroundColor:{type:String,default:"rgba(60,60,60,0.75)"},rippleColor:{type:String,default:"rgba(255, 255, 255, 0.5)"},paddingStyle:{type:Object,default:()=>({v:4,h:4})},shadow:{type:Boolean,default:!1},shadowStyle:{type:String,default:"0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12)"},editable:{type:Boolean,default:!0}},data:function(){return{get:an,itemsTrans:[]}},mounted:function(){},computed:{changeItems:function(){let n=this;let e=Mo(n.items),t=lt(e,e=>{let t=function(e){let t;return t=n.multiCheck?Ed(n.value,e):It(e,n.value),t}(e);return{active:t,hover:!1}}),o=lt(e,(n,e)=>{let o={data:n},r=t[e];return o.ia=r,o.active=r.active,o.hover=!1,o});return n.itemsTrans=o,""},useFlexDirection:function(){return"horizontal"===this.dir?"row":"column"},useSeplineStype:function(){let n=this,e="";return e="horizontal"===n.dir?`height:100%; border-left:${n.seplineWidth}px solid ${n.useSeplineColor};`:`width:100%; border-top:${n.seplineWidth}px solid ${n.useSeplineColor};`,e},useSeplineColor:function(){return Br(this.seplineColor)},useShadow:function(){let n=this;return n.shadow&&ft(n.shadowStyle)?"box-shadow:"+function(n,e,t){let o=ce(n=Pr(n,"}","{"),"{");return o=lt(o,n=>{if(n.indexOf(e)>=0){let e=Rs(n,"=")[1];return e=Ut(e)?Xt(e):.2,function(n,e){let t=Br(n),o=Ul.toRgba(t);return o.a=e,Ul.toRgbaString(o)}(t,e)}return n}),Kl(o,"")}(n.shadowStyle,"backgroundColorAlpha",n.backgroundColor):""}},methods:{getBorderRadiusStyle:function(n){let e=Tt(this.itemsTrans)-1,t={};return"horizontal"===this.dir?(0===n&&(t={...t,topLeft:!0,bottomLeft:!0}),n===e&&(t={...t,topRight:!0,bottomRight:!0})):(0===n&&(t={...t,topLeft:!0,topRight:!0}),n===e&&(t={...t,bottomLeft:!0,bottomRight:!0})),t},toggleState:function(n){let e=this;if(!1!==e.editable)if(e.multiCheck){let t=Mo(e.value);if(n.active){let e=[];Yn(t,t=>{It(t,n.data)||e.push(t)}),t=e}else t.push(n.data);e.$nextTick(()=>{e.$emit("input",t),e.$emit("click",n.data,""+(n.active?"hide":"show"))})}else e.$nextTick(()=>{e.$emit("input",n.data),e.$emit("click",n.data)})}}};const nf=Kp;var ef=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{attrs:{changeItems:n.changeItems}},[t("div",{style:"display:inline-block; border-radius:"+n.borderRadius+"px; "+n.useShadow},[t("div",{style:"display:flex; flex-direction:"+n.useFlexDirection+";"},[n._l(n.itemsTrans,function(e,o){return[t("div",{key:"kitem-"+o,style:"display:flex; flex-direction:"+n.useFlexDirection+"; align-items:stretch;"},[o>0?t("div",{style:""+n.useSeplineStype}):n._e(),n._v(" "),t("WButtonCircle",{key:o,attrs:{tooltip:n.get(e,"data."+n.keyTooltip),icon:n.get(e,"data."+n.keyIcon),iconColor:n.iconColor,iconColorHover:n.iconColorHover,iconColorFocus:n.iconColorFocus,iconColorActive:n.iconColorActive,iconSize:n.iconSize,borderWidth:n.borderWidth,borderRadius:n.borderRadius,borderRadiusStyle:n.getBorderRadiusStyle(o),borderColor:n.borderColor,borderColorHover:n.borderColorHover,borderColorFocus:n.borderColorFocus,borderColorActive:n.borderColorActive,backgroundColor:n.backgroundColor,backgroundColorHover:n.backgroundColorHover,backgroundColorFocus:n.backgroundColorFocus,backgroundColorActive:n.backgroundColorActive,tooltipBorderRadius:n.tooltipBorderRadius,tooltipPaddingStyle:n.tooltipPaddingStyle,tooltipTextFontSize:n.tooltipTextFontSize,tooltipTextColor:n.tooltipTextColor,tooltipBackgroundColor:n.tooltipBackgroundColor,rippleColor:n.rippleColor,paddingStyle:n.paddingStyle,shadow:!1,_shadowStyle:"shadowStyle",editable:n.editable,disabledColor:"rgba(255,255,255,0.4)",active:e.active},on:{click:function(t){return n.toggleState(e)}}})],1)]})],2)])])};ef._withStripped=!0;let tf={useMenu:!0,menuPosition:"top-left",menuYShift:0,useSetting:!0,menuSettingIcon:"M12,8A4,4 0 0,1 16,12A4,4 0 0,1 12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10M10,22C9.75,22 9.54,21.82 9.5,21.58L9.13,18.93C8.5,18.68 7.96,18.34 7.44,17.94L4.95,18.95C4.73,19.03 4.46,18.95 4.34,18.73L2.34,15.27C2.21,15.05 2.27,14.78 2.46,14.63L4.57,12.97L4.5,12L4.57,11L2.46,9.37C2.27,9.22 2.21,8.95 2.34,8.73L4.34,5.27C4.46,5.05 4.73,4.96 4.95,5.05L7.44,6.05C7.96,5.66 8.5,5.32 9.13,5.07L9.5,2.42C9.54,2.18 9.75,2 10,2H14C14.25,2 14.46,2.18 14.5,2.42L14.87,5.07C15.5,5.32 16.04,5.66 16.56,6.05L19.05,5.05C19.27,4.96 19.54,5.05 19.66,5.27L21.66,8.73C21.79,8.95 21.73,9.22 21.54,9.37L19.43,11L19.5,12L19.43,13L21.54,14.63C21.73,14.78 21.79,15.05 21.66,15.27L19.66,18.73C19.54,18.95 19.27,19.04 19.05,18.95L16.56,17.95C16.04,18.34 15.5,18.68 14.87,18.93L14.5,21.58C14.46,21.82 14.25,22 14,22H10M11.25,4L10.88,6.61C9.68,6.86 8.62,7.5 7.85,8.39L5.44,7.35L4.69,8.65L6.8,10.2C6.4,11.37 6.4,12.64 6.8,13.8L4.68,15.36L5.43,16.66L7.86,15.62C8.63,16.5 9.68,17.14 10.87,17.38L11.24,20H12.76L13.13,17.39C14.32,17.14 15.37,16.5 16.14,15.62L18.57,16.66L19.32,15.36L17.2,13.81C17.6,12.64 17.6,11.37 17.2,10.2L19.31,8.65L18.56,7.35L16.15,8.39C15.38,7.5 14.32,6.86 13.12,6.62L12.75,4H11.25Z",menuSettingTooltip:"Settings",useMenuItemZoomIn:!0,menuZoomInIcon:"M15.5,14L20.5,19L19,20.5L14,15.5V14.71L13.73,14.43C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.43,13.73L14.71,14H15.5M9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14M12,10H10V12H9V10H7V9H9V7H10V9H12V10Z",menuZoomInTooltip:"Zoom In",useMenuItemZoomOut:!0,menuZoomOutIcon:"M15.5,14H14.71L14.43,13.73C15.41,12.59 16,11.11 16,9.5A6.5,6.5 0 0,0 9.5,3A6.5,6.5 0 0,0 3,9.5A6.5,6.5 0 0,0 9.5,16C11.11,16 12.59,15.41 13.73,14.43L14,14.71V15.5L19,20.5L20.5,19L15.5,14M9.5,14C7,14 5,12 5,9.5C5,7 7,5 9.5,5C12,5 14,7 14,9.5C14,12 12,14 9.5,14M7,9H12V10H7V9Z",menuZoomOutTooltip:"Zoom Out",useMenuItemFitView:!0,menuFitViewIcon:"M20,2H4C2.89,2 2,2.89 2,4V20C2,21.11 2.89,22 4,22H20C21.11,22 22,21.11 22,20V4C22,2.89 21.11,2 20,2M20,20H4V4H20M13,8V10H11V8H9L12,5L15,8M16,15V13H14V11H16V9L19,12M10,13H8V15L5,12L8,9V11H10M15,16L12,19L9,16H11V14H13V16",menuFitViewTooltip:"Fit View",useMenuItemLock:!0,menuLockIcon:"M10 13C11.1 13 12 13.89 12 15C12 16.11 11.11 17 10 17S8 16.11 8 15 8.9 13 10 13M18 1C15.24 1 13 3.24 13 6V8H4C2.9 8 2 8.9 2 10V20C2 21.1 2.9 22 4 22H16C17.1 22 18 21.1 18 20V10C18 8.9 17.1 8 16 8H15V6C15 4.34 16.34 3 18 3S21 4.34 21 6V8H23V6C23 3.24 20.76 1 18 1M16 10V20H4V10H16Z",menuLockTooltip:"Lock",menuLockIconLocked:"M12,17C10.89,17 10,16.1 10,15C10,13.89 10.89,13 12,13A2,2 0 0,1 14,15A2,2 0 0,1 12,17M18,20V10H6V20H18M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V10C4,8.89 4.89,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z",menuLockTooltipLocked:"Unlock",menuIconColor:"#555",menuIconColorHover:"#222",menuIconColorFocus:"#222",menuIconSize:22,menuBackgroundColor:"#fefefe",menuBackgroundColorHover:"#f0f0f0",menuBackgroundColorFocus:"#f0f0f0",menuSeparatorColor:"#e6e6e6",menuShadow:!0,menuTooltipTextColor:"white",menuTooltipTextFontSize:"0.7rem",menuTooltipBackgroundColor:"rgba(60,60,60,0.75)"},of=["top-left","top-right","bottom-left","bottom-right"];function rf(n,e){let t=tf[n];return"string"==typeof t?"string"==typeof e&&""!==e?e:t:"boolean"==typeof t?"boolean"==typeof e?e:t:"number"==typeof t&&"number"==typeof e&&isFinite(e)?e:t}const af={name:"FlowControls",components:{WGroupIconCheck:Xr({render:ef,staticRenderFns:[]},function(n){n&&n("data-v-4390c218_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WGroupIconCheck.vue"},media:void 0})},nf,"data-v-4390c218",false,void 0,!1,Zr,void 0,void 0)},props:{menu:{type:Object,default:()=>({})},locked:{type:Boolean,default:!1}},data(){return{useSetting:rf("useSetting",(this.menu||{}).useSetting)}},computed:{cfg(){let n=this.menu||{},e={};for(let t in tf)e[t]=rf(t,n[t]);return of.indexOf(e.menuPosition)<0&&(e.menuPosition=tf.menuPosition),e},allItems(){let n=this.cfg,e=[{id:"setting",icon:n.menuSettingIcon,tooltip:n.menuSettingTooltip}];return n.useMenuItemZoomIn&&e.push({id:"zoomIn",icon:n.menuZoomInIcon,tooltip:n.menuZoomInTooltip}),n.useMenuItemZoomOut&&e.push({id:"zoomOut",icon:n.menuZoomOutIcon,tooltip:n.menuZoomOutTooltip}),n.useMenuItemFitView&&e.push({id:"fitView",icon:n.menuFitViewIcon,tooltip:n.menuFitViewTooltip}),n.useMenuItemLock&&e.push({id:"interactive",icon:this.locked?n.menuLockIconLocked:n.menuLockIcon,tooltip:this.locked?n.menuLockTooltipLocked:n.menuLockTooltip}),e},useItems(){return this.useSetting?this.allItems:[this.allItems[0]]},panelStyle(){let n="z-index:5;";return this.cfg.menuPosition.indexOf("bottom")>=0?n+=`margin-bottom:${this.cfg.menuYShift}px;`:n+=`margin-top:${this.cfg.menuYShift}px;`,n}},methods:{onClickItem(n){let e=n&&n.id||"";"setting"===e?this.useSetting=!this.useSetting:"zoomIn"===e?this.$emit("zoom-in"):"zoomOut"===e?this.$emit("zoom-out"):"fitView"===e?this.$emit("fit-view"):"interactive"===e&&this.$emit("toggle-interactive")}}};var sf=function(){var n=this,e=n.$createElement,t=n._self._c||e;return n.cfg.useMenu?t("div",{class:["vue-flow__panel","vue-flow__panel--"+n.cfg.menuPosition],style:n.panelStyle},[t("WGroupIconCheck",{attrs:{items:n.useItems,dir:"vertical",iconColor:n.cfg.menuIconColor,iconColorHover:n.cfg.menuIconColorHover,iconColorFocus:n.cfg.menuIconColorFocus,iconSize:n.cfg.menuIconSize,backgroundColor:n.cfg.menuBackgroundColor,backgroundColorHover:n.cfg.menuBackgroundColorHover,backgroundColorFocus:n.cfg.menuBackgroundColorFocus,seplineColor:n.cfg.menuSeparatorColor,shadow:n.cfg.menuShadow,tooltipTextColor:n.cfg.menuTooltipTextColor,tooltipTextFontSize:n.cfg.menuTooltipTextFontSize,tooltipBackgroundColor:n.cfg.menuTooltipBackgroundColor,value:[]},on:{click:n.onClickItem}})],1):n._e()};sf._withStripped=!0;let lf=0;const df={type:"basic",shape:"rectangle",width:100,height:40,fontSize:12,fontSizeMin:1,fontSizeMax:72,fontColor:"#333333",faceColor:"#ffffff",edgeColor:"#bbbbbb",edgeWidth:1,toPosition:"bottom",fromPosition:"top",popupDirection:"right"},uf={type:"bezier",fontSize:10,fontSizeMin:1,fontSizeMax:72,fontColor:"#333333",edgeColor:"#b1b1b7",edgeWidth:1,markerEnd:"",animated:!1,defOffset:24};var cf={components:{FlowCanvas:ui,ViewportTransform:fi,BackgroundLayer:vi,SelectionBox:bi,NodeRenderer:op,EdgeRenderer:Yp,ConnectionLine:Zp,Controls:Xr({render:sf,staticRenderFns:[]},function(n){n&&n("data-v-78fc6f50_0",{source:"\n.vue-flow__panel[data-v-78fc6f50] {\r\n position: absolute;\r\n z-index: 5;\n}\n.vue-flow__panel--top-left[data-v-78fc6f50] { top: 10px; left: 10px;\n}\n.vue-flow__panel--top-right[data-v-78fc6f50] { top: 10px; right: 10px;\n}\n.vue-flow__panel--bottom-left[data-v-78fc6f50] { bottom: 10px; left: 10px;\n}\n.vue-flow__panel--bottom-right[data-v-78fc6f50] { bottom: 10px; right: 10px;\n}\r\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\ui\\Controls.vue"],names:[],mappings:";AAqMA;EACA,kBAAA;EACA,UAAA;AACA;AACA,8CAAA,SAAA,EAAA,UAAA;AAAA;AACA,+CAAA,SAAA,EAAA,WAAA;AAAA;AACA,iDAAA,YAAA,EAAA,UAAA;AAAA;AACA,kDAAA,YAAA,EAAA,WAAA;AAAA",file:"Controls.vue",sourcesContent:["<template>\r\n \x3c!-- 垂直選單: 改用w-threejs-vue同款組件WGroupIconCheck(:dir='vertical'), 最頂為設定鈕, 收合時僅顯示設定鈕, 展開才顯示其餘按鈕 --\x3e\r\n <div\r\n v-if=\"cfg.useMenu\"\r\n :class=\"['vue-flow__panel', `vue-flow__panel--${cfg.menuPosition}`]\"\r\n :style=\"panelStyle\"\r\n >\r\n \x3c!-- 淺色系配色(w-flow-vue圖台為白底, 沿用原Controls之#fefefe白底/深灰icon風格; iconSize預設22, 按鈕寬=22+左右padding8=30px與w-threejs-vue選單一致) --\x3e\r\n \x3c!-- 全數為一般動作鈕(不用active態): 鎖頭點擊即切換上鎖/解鎖並換icon(比照fitView等), 不留固定灰底; value恆空故無任一鈕呈active, 故不開放*ColorActive類選項 --\x3e\r\n <WGroupIconCheck\r\n :items=\"useItems\"\r\n :dir=\"'vertical'\"\r\n :iconColor=\"cfg.menuIconColor\"\r\n :iconColorHover=\"cfg.menuIconColorHover\"\r\n :iconColorFocus=\"cfg.menuIconColorFocus\"\r\n :iconSize=\"cfg.menuIconSize\"\r\n :backgroundColor=\"cfg.menuBackgroundColor\"\r\n :backgroundColorHover=\"cfg.menuBackgroundColorHover\"\r\n :backgroundColorFocus=\"cfg.menuBackgroundColorFocus\"\r\n :seplineColor=\"cfg.menuSeparatorColor\"\r\n :shadow=\"cfg.menuShadow\"\r\n :tooltipTextColor=\"cfg.menuTooltipTextColor\"\r\n :tooltipTextFontSize=\"cfg.menuTooltipTextFontSize\"\r\n :tooltipBackgroundColor=\"cfg.menuTooltipBackgroundColor\"\r\n :value=\"[]\"\r\n @click=\"onClickItem\"\r\n ></WGroupIconCheck>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport WGroupIconCheck from 'w-component-vue/src/components/WGroupIconCheck.vue'\r\nimport { mdiCogOutline, mdiMagnifyPlusOutline, mdiMagnifyMinusOutline, mdiFitToPageOutline, mdiLockOutline, mdiLockOpenVariantOutline } from '@mdi/js/mdi.js'\r\n\r\n//menuDef, 選單各項之預設值, 未被opt覆寫者沿用之\r\n//注意: menuIconSize, menuTooltipTextColor, menuTooltipBackgroundColor原為WGroupIconCheck之預設值,\r\n//因w-component-vue為浮動相依(^2.5.2), 子套件改預設會靜默改變本套件外觀, 故於此明寫鎖住現值\r\nlet menuDef = {\r\n\r\n //整體\r\n useMenu: true,\r\n menuPosition: 'top-left',\r\n menuYShift: 0,\r\n useSetting: true,\r\n\r\n //設定鈕(收合/展開)\r\n menuSettingIcon: mdiCogOutline,\r\n menuSettingTooltip: 'Settings',\r\n\r\n //放大\r\n useMenuItemZoomIn: true,\r\n menuZoomInIcon: mdiMagnifyPlusOutline,\r\n menuZoomInTooltip: 'Zoom In',\r\n\r\n //縮小\r\n useMenuItemZoomOut: true,\r\n menuZoomOutIcon: mdiMagnifyMinusOutline,\r\n menuZoomOutTooltip: 'Zoom Out',\r\n\r\n //全圖\r\n useMenuItemFitView: true,\r\n menuFitViewIcon: mdiFitToPageOutline,\r\n menuFitViewTooltip: 'Fit View',\r\n\r\n //鎖定(雙態: 無後綴為未鎖態, Locked後綴為已鎖態)\r\n useMenuItemLock: true,\r\n menuLockIcon: mdiLockOpenVariantOutline,\r\n menuLockTooltip: 'Lock',\r\n menuLockIconLocked: mdiLockOutline,\r\n menuLockTooltipLocked: 'Unlock',\r\n\r\n //樣式\r\n menuIconColor: '#555',\r\n menuIconColorHover: '#222',\r\n menuIconColorFocus: '#222',\r\n menuIconSize: 22,\r\n menuBackgroundColor: '#fefefe',\r\n menuBackgroundColorHover: '#f0f0f0',\r\n menuBackgroundColorFocus: '#f0f0f0',\r\n menuSeparatorColor: '#e6e6e6',\r\n menuShadow: true,\r\n menuTooltipTextColor: 'white',\r\n menuTooltipTextFontSize: '0.7rem',\r\n menuTooltipBackgroundColor: 'rgba(60,60,60,0.75)',\r\n\r\n}\r\n\r\n//menuPositions, menuPosition之允許值, 不在其中者回退預設\r\nlet menuPositions = ['top-left', 'top-right', 'bottom-left', 'bottom-right']\r\n\r\n/**\r\n * 取單項設定值, 型別與menuDef同型且有效才採用, 否則回退menuDef\r\n */\r\nfunction pickMenuValue(k, v) {\r\n let d = menuDef[k]\r\n if (typeof d === 'string') {\r\n return (typeof v === 'string' && v !== '') ? v : d\r\n }\r\n if (typeof d === 'boolean') {\r\n return (typeof v === 'boolean') ? v : d\r\n }\r\n if (typeof d === 'number') {\r\n return (typeof v === 'number' && isFinite(v)) ? v : d\r\n }\r\n return d\r\n}\r\n\r\nexport default {\r\n name: 'FlowControls',\r\n components: { WGroupIconCheck },\r\n props: {\r\n //選單設定物件, 鍵值同menuDef, 由WFlowVue自opt原樣取出後傳入; 各鍵未給或型別不符即回退menuDef\r\n menu: { type: Object, default: () => ({}) },\r\n locked: { type: Boolean, default: false },\r\n },\r\n data() {\r\n return {\r\n //設定鈕展開狀態(收合時僅顯示設定鈕, 展開才顯示其餘按鈕), 比照w-threejs-vue; 初值取menu.useSetting\r\n useSetting: pickMenuValue('useSetting', (this.menu || {}).useSetting),\r\n }\r\n },\r\n computed: {\r\n cfg() {\r\n let m = this.menu || {}\r\n let r = {}\r\n for (let k in menuDef) {\r\n r[k] = pickMenuValue(k, m[k])\r\n }\r\n //menuPosition另檢核列舉值\r\n if (menuPositions.indexOf(r.menuPosition) < 0) {\r\n r.menuPosition = menuDef.menuPosition\r\n }\r\n return r\r\n },\r\n allItems() {\r\n let c = this.cfg\r\n let rs = [\r\n { id: 'setting', icon: c.menuSettingIcon, tooltip: c.menuSettingTooltip },\r\n ]\r\n if (c.useMenuItemZoomIn) {\r\n rs.push({ id: 'zoomIn', icon: c.menuZoomInIcon, tooltip: c.menuZoomInTooltip })\r\n }\r\n if (c.useMenuItemZoomOut) {\r\n rs.push({ id: 'zoomOut', icon: c.menuZoomOutIcon, tooltip: c.menuZoomOutTooltip })\r\n }\r\n if (c.useMenuItemFitView) {\r\n rs.push({ id: 'fitView', icon: c.menuFitViewIcon, tooltip: c.menuFitViewTooltip })\r\n }\r\n if (c.useMenuItemLock) {\r\n rs.push({ id: 'interactive', icon: this.locked ? c.menuLockIconLocked : c.menuLockIcon, tooltip: this.locked ? c.menuLockTooltipLocked : c.menuLockTooltip })\r\n }\r\n return rs\r\n },\r\n useItems() {\r\n //設定鈕恆在最頂; 收合時僅顯示設定鈕\r\n if (this.useSetting) {\r\n return this.allItems\r\n }\r\n return [this.allItems[0]]\r\n },\r\n panelStyle() {\r\n //向下偏移: top-*位置加margin-top, bottom-*位置加margin-bottom(margin於絕對定位元素上等同再位移該側)\r\n //故menuYShift之語義為[正值使選單遠離其錨定邊]: top-*向下, bottom-*向上\r\n let s = 'z-index:5;'\r\n if (this.cfg.menuPosition.indexOf('bottom') >= 0) {\r\n s += `margin-bottom:${this.cfg.menuYShift}px;`\r\n }\r\n else {\r\n s += `margin-top:${this.cfg.menuYShift}px;`\r\n }\r\n return s\r\n },\r\n },\r\n methods: {\r\n onClickItem(item) {\r\n let id = (item && item.id) || ''\r\n if (id === 'setting') {\r\n this.useSetting = !this.useSetting\r\n }\r\n else if (id === 'zoomIn') {\r\n this.$emit('zoom-in')\r\n }\r\n else if (id === 'zoomOut') {\r\n this.$emit('zoom-out')\r\n }\r\n else if (id === 'fitView') {\r\n this.$emit('fit-view')\r\n }\r\n else if (id === 'interactive') {\r\n this.$emit('toggle-interactive')\r\n }\r\n },\r\n },\r\n}\r\n<\/script>\r\n\r\n<style scoped>\r\n.vue-flow__panel {\r\n position: absolute;\r\n z-index: 5;\r\n}\r\n.vue-flow__panel--top-left { top: 10px; left: 10px; }\r\n.vue-flow__panel--top-right { top: 10px; right: 10px; }\r\n.vue-flow__panel--bottom-left { bottom: 10px; left: 10px; }\r\n.vue-flow__panel--bottom-right { bottom: 10px; right: 10px; }\r\n</style>\r\n"]},media:void 0})},af,"data-v-78fc6f50",false,void 0,!1,Zr,void 0,void 0)},props:{opt:{type:Object,default:()=>({})}},provide(){return{getDefNode:()=>this.defNode,getDefConn:()=>this.defConn,getConns:()=>this.conns,getDragGhost:n=>this.dragPositions[n]||null}},data(){return{inited:!1,viewport:{x:0,y:0,zoom:1},selectedNodes:[],selectedConns:[],selectionBox:null,nodeInternals:{},locked:!0===this.opt.locked,isDraggingNode:!1,draggingNodeId:null,dragStartPos:null,dragNodeStartPositions:null,dragPositions:{},isPanning:!1,panStartPos:null,isConnecting:!1,connectingFrom:null,connLineFromX:0,connLineFromY:0,connLineFromPosition:"bottom",connLineToX:0,connLineToY:0,isSelecting:!1,selectionStartPos:null,keysPressed:{}}},watch:{nodes:{immediate:!0,handler(n){for(const e of n||[])e.id in this.dragPositions||this.$set(this.dragPositions,e.id,null)}},opt:{handler(){if(!this.inited){this.inited=!0;let n=this.center;n&&(this.viewport.x=n[0]||0,this.viewport.y=n[1]||0),this.viewport.zoom=this.zoom,this.$emit("init")}},immediate:!0}},mounted(){document.addEventListener("keydown",this.onKeyDown),document.addEventListener("keyup",this.onKeyUp),document.addEventListener("mousemove",this.onDocMouseMove),document.addEventListener("mouseup",this.onDocMouseUp)},beforeDestroy(){this._panAnimId&&(cancelAnimationFrame(this._panAnimId),this._panAnimId=null),document.removeEventListener("keydown",this.onKeyDown),document.removeEventListener("keyup",this.onKeyUp),document.removeEventListener("mousemove",this.onDocMouseMove),document.removeEventListener("mouseup",this.onDocMouseUp)},computed:{widthInp(){return this.opt.width||800},heightInp(){return this.opt.height||600},nodes(){return this.opt.nodes||[]},conns(){return this.opt.conns||[]},nodesDraggable(){return void 0===this.opt.nodesDraggable||this.opt.nodesDraggable},menuInp(){let n=this.opt;return{useMenu:n.useMenu,menuPosition:n.menuPosition,menuYShift:n.menuYShift,useSetting:n.useSetting,menuSettingIcon:n.menuSettingIcon,menuSettingTooltip:n.menuSettingTooltip,useMenuItemZoomIn:n.useMenuItemZoomIn,menuZoomInIcon:n.menuZoomInIcon,menuZoomInTooltip:n.menuZoomInTooltip,useMenuItemZoomOut:n.useMenuItemZoomOut,menuZoomOutIcon:n.menuZoomOutIcon,menuZoomOutTooltip:n.menuZoomOutTooltip,useMenuItemFitView:n.useMenuItemFitView,menuFitViewIcon:n.menuFitViewIcon,menuFitViewTooltip:n.menuFitViewTooltip,useMenuItemLock:n.useMenuItemLock,menuLockIcon:n.menuLockIcon,menuLockTooltip:n.menuLockTooltip,menuLockIconLocked:n.menuLockIconLocked,menuLockTooltipLocked:n.menuLockTooltipLocked,menuIconColor:n.menuIconColor,menuIconColorHover:n.menuIconColorHover,menuIconColorFocus:n.menuIconColorFocus,menuIconSize:n.menuIconSize,menuBackgroundColor:n.menuBackgroundColor,menuBackgroundColorHover:n.menuBackgroundColorHover,menuBackgroundColorFocus:n.menuBackgroundColorFocus,menuSeparatorColor:n.menuSeparatorColor,menuShadow:n.menuShadow,menuTooltipTextColor:n.menuTooltipTextColor,menuTooltipTextFontSize:n.menuTooltipTextFontSize,menuTooltipBackgroundColor:n.menuTooltipBackgroundColor}},nodesConnectable(){return void 0===this.opt.nodesConnectable||this.opt.nodesConnectable},nodesResizable(){return void 0===this.opt.nodesResizable||this.opt.nodesResizable},elementsSelectable(){return void 0===this.opt.elementsSelectable||this.opt.elementsSelectable},nodesSettingsEnabled(){return void 0===this.opt.nodesSettingsEnabled||this.opt.nodesSettingsEnabled},connsSettingsEnabled(){return void 0===this.opt.connsSettingsEnabled||this.opt.connsSettingsEnabled},nodesSettingsExcludes(){return this.opt.nodesSettingsExcludes||[]},connsSettingsExcludes(){return this.opt.connsSettingsExcludes||[]},selectNodesOnDrag(){return void 0===this.opt.selectNodesOnDrag||this.opt.selectNodesOnDrag},deleteKeyEnabled(){return void 0!==this.opt.deleteKeyEnabled&&this.opt.deleteKeyEnabled},deleteKeyCode(){return this.opt.deleteKeyCode||"Backspace"},defConnCreatingType(){return this.opt.defConnCreatingType||"bezier"},defConnCreatingEdgeColor(){return this.opt.defConnCreatingEdgeColor||"#b1b1b7"},defConnCreatingEdgeWidth(){return void 0!==this.opt.defConnCreatingEdgeWidth?this.opt.defConnCreatingEdgeWidth:1},defConnCreatingEdgeDasharray(){return this.opt.defConnCreatingEdgeDasharray||"5 5"},defConnCreatingStyle(){return{stroke:this.defConnCreatingEdgeColor,strokeWidth:this.defConnCreatingEdgeWidth,strokeDasharray:this.defConnCreatingEdgeDasharray}},zoomOnScroll(){return void 0===this.opt.zoomOnScroll||this.opt.zoomOnScroll},panOnDrag(){return void 0===this.opt.panOnDrag||this.opt.panOnDrag},zoomMin(){return void 0!==this.opt.zoomMin?this.opt.zoomMin:.5},zoomMax(){return void 0!==this.opt.zoomMax?this.opt.zoomMax:2},center(){return this.opt.center||[0,0]},zoom(){return void 0!==this.opt.zoom?this.opt.zoom:1},panLimits(){return this.opt.panLimits||null},multiSelectEnabled(){return void 0===this.opt.multiSelectEnabled||this.opt.multiSelectEnabled},boxSelectionKeyCode(){return this.opt.boxSelectionKeyCode||"Shift"},multiSelectionKeyCode(){return this.opt.multiSelectionKeyCode||"Shift"},snapToGrid(){return void 0!==this.opt.snapToGrid&&this.opt.snapToGrid},snapGridSize(){return this.opt.snapGridSize||20},platformBackgroundPatternType(){return this.opt.platformBackgroundPatternType||"dots"},platformBackgroundPatternGap(){return void 0!==this.opt.platformBackgroundPatternGap?this.opt.platformBackgroundPatternGap:20},platformBackgroundPatternSize(){return void 0!==this.opt.platformBackgroundPatternSize?this.opt.platformBackgroundPatternSize:1},platformBackgroundPatternColor(){return this.opt.platformBackgroundPatternColor||"#81818a"},platformBackgroundColor(){return this.opt.platformBackgroundColor||"#fff"},settingsPopupBackgroundColor(){return this.opt.settingsPopupBackgroundColor||"#fff"},settingsPopupTextColor(){return this.opt.settingsPopupTextColor||"#333"},settingsPopupTextFontSize(){return this.opt.settingsPopupTextFontSize||"12px"},inforPopupBackgroundColor(){return this.opt.inforPopupBackgroundColor||"#fff"},inforPopupTitleTextColor(){return this.opt.inforPopupTitleTextColor||"#333"},inforPopupTitleTextFontSize(){return this.opt.inforPopupTitleTextFontSize||"12px"},inforPopupDescriptionTextColor(){return this.opt.inforPopupDescriptionTextColor||"#888"},inforPopupDescriptionTextFontSize(){return this.opt.inforPopupDescriptionTextFontSize||"10px"},funValidConnCreating(){return this.opt.funValidConnCreating||null},defNode(){let n=this.opt,e=df;return{type:n.defNodeType||e.type,shape:n.defNodeShape||e.shape,width:n.defNodeWidth||e.width,height:n.defNodeHeight||e.height,fontSize:n.defNodeFontSize||e.fontSize,fontSizeMin:n.defNodeFontSizeMin||e.fontSizeMin,fontSizeMax:n.defNodeFontSizeMax||e.fontSizeMax,fontColor:n.defNodeFontColor||e.fontColor,faceColor:n.defNodeFaceColor||e.faceColor,edgeColor:n.defNodeEdgeColor||e.edgeColor,edgeWidth:void 0!==n.defNodeEdgeWidth?n.defNodeEdgeWidth:e.edgeWidth,toPosition:n.defNodeToPosition||e.toPosition,fromPosition:n.defNodeFromPosition||e.fromPosition,popupDirection:n.defNodePopupDirection||e.popupDirection}},defConn(){let n=this.opt,e=uf;return{type:n.defConnType||e.type,fontSize:n.defConnFontSize||e.fontSize,fontSizeMin:n.defConnFontSizeMin||e.fontSizeMin,fontSizeMax:n.defConnFontSizeMax||e.fontSizeMax,fontColor:n.defConnFontColor||e.fontColor,edgeColor:n.defConnEdgeColor||e.edgeColor,edgeWidth:void 0!==n.defConnEdgeWidth?n.defConnEdgeWidth:e.edgeWidth,edgeDasharray:n.defConnEdgeDasharray||"",markerEnd:n.defConnMarkerEnd||e.markerEnd,animated:void 0!==n.defConnAnimated?n.defConnAnimated:e.animated,defOffset:null!=n.defOffset?n.defOffset:e.defOffset}},isBoxSelectPressed(){return this.multiSelectEnabled&&!!this.keysPressed[this.boxSelectionKeyCode]},isMultiSelectPressed(){return this.multiSelectEnabled&&!!this.keysPressed[this.multiSelectionKeyCode]}},methods:{nodeById(n){return this.nodes.find(e=>e.id===n)||null},connById(n){return this.conns.find(e=>e.id===n)||null},setSelectedNodes(n){this.selectedNodes.splice(0,this.selectedNodes.length,...n)},setSelectedConns(n){this.selectedConns.splice(0,this.selectedConns.length,...n)},clearSelection(){this.selectedNodes.splice(0,this.selectedNodes.length),this.selectedConns.splice(0,this.selectedConns.length)},removeNode(n){let e=this.nodes,t=e.findIndex(e=>e.id===n);if(-1===t)return;e.splice(t,1);let o=this.conns;for(let e=o.length-1;e>=0;e--)o[e].from!==n&&o[e].to!==n||o.splice(e,1);let r=this.selectedNodes.indexOf(n);-1!==r&&this.selectedNodes.splice(r,1)},removeConn(n){let e=this.conns,t=e.findIndex(e=>e.id===n);if(-1===t)return;e.splice(t,1);let o=this.selectedConns.indexOf(n);-1!==o&&this.selectedConns.splice(o,1)},addConn(n){n.id&&n.from&&n.to&&(this.connById(n.id)||this.nodeById(n.from)&&this.nodeById(n.to)&&this.conns.push(n))},updateNodeInternals(n,e){let t=this.nodeInternals[n];t&&t.width===e.width&&t.height===e.height||this.$set(this.nodeInternals,n,e)},setViewport({x:n,y:e,zoom:t}){void 0!==n&&(this.viewport.x=n),void 0!==e&&(this.viewport.y=e),void 0!==t&&(this.viewport.zoom=t)},onKeyDown(n){this.keysPressed={...this.keysPressed,[n.key]:!0},this.locked||!this.deleteKeyEnabled||n.key!==this.deleteKeyCode&&"Delete"!==n.key||this.deleteSelectedElements()},onKeyUp(n){const e={...this.keysPressed};delete e[n.key],this.keysPressed=e},onCanvasClick(n){n.target.closest(".vue-flow__popup")||n.target.closest(".vue-flow__node")||n.target.closest(".vue-flow__edge")||(this.clearSelection(),this.$emit("pane-click",n))},onCanvasContextMenu(n){this.$emit("pane-context-menu",n)},onCanvasDblClick(n){const e=this.$refs.canvas.getContainerRect();if(!e)return;const t=this.viewport,o=(n.clientX-e.left-t.x)/t.zoom,r=(n.clientY-e.top-t.y)/t.zoom;this.$emit("canvas-dblclick",{event:n,flowX:o,flowY:r,clientX:n.clientX,clientY:n.clientY})},onCanvasMouseDown(n){if(!n.target.closest||!n.target.closest(".vue-flow__popup"))if(this.locked||!this.isBoxSelectPressed){if(this.panOnDrag&&0===n.button){const e=n.target,t=e.closest&&e.closest(".vue-flow__node"),o=e.closest&&e.closest(".vue-flow__handle"),r=e.closest&&e.closest(".vue-flow__node-settings, .vue-flow__edge-settings, .vue-flow__panel, .vue-flow__edge-waypoint");t||o||r||this.startPan(n)}}else this.startSelection(n)},onCanvasMouseMove(n){},onCanvasMouseUp(n){},onCanvasWheel(n){if(!this.zoomOnScroll)return;const e=.001*-n.deltaY,t=this.viewport.zoom,o=Math.min(this.zoomMin,t),r=Math.max(o,Math.min(this.zoomMax,t+e*t)),i=this.$refs.canvas.getContainerRect();if(!i)return;const a=n.clientX-i.left,s=n.clientY-i.top,l=this.viewport,d=r/t,u=a-(a-l.x)*d,c=s-(s-l.y)*d;this.setViewport({x:u,y:c,zoom:r}),this.emitViewportChange()},onDocMouseMove(n){this.isPanning?this.doPan(n):this.isDraggingNode?this.doDrag(n):this.isConnecting?this.doConnect(n):this.isSelecting&&this.doSelection(n)},onDocMouseUp(n){this.isPanning&&this.endPan(),this.isDraggingNode&&this.endDrag(n),this.isConnecting&&this.endConnect(n),this.isSelecting&&this.endSelection(n)},startPan(n){this.isPanning=!0,this.panStartPos={x:n.clientX,y:n.clientY}},doPan(n){const e=n.clientX-this.panStartPos.x,t=n.clientY-this.panStartPos.y;this.panStartPos={x:n.clientX,y:n.clientY};let o=this.viewport.x+e,r=this.viewport.y+t;if(this.panLimits){const n=(i={x:o,y:r},(a=this.panLimits)?{x:Math.max(a[0][0],Math.min(a[1][0],i.x)),y:Math.max(a[0][1],Math.min(a[1][1],i.y))}:i);o=n.x,r=n.y}var i,a;this.viewport.x=o,this.viewport.y=r},endPan(){this.isPanning=!1,this.panStartPos=null,this.emitViewportChange()},onNodeDragStart({node:n,event:e}){if(this.locked||!this.nodesDraggable)return;this.isDraggingNode=!0,this.draggingNodeId=n.id,this.dragStartPos={x:e.clientX,y:e.clientY},this.selectNodesOnDrag&&!this.isMultiSelectPressed&&(this.setSelectedNodes([n.id]),this.setSelectedConns([]));const t={};if(this.selectedNodes.forEach(n=>{const e=this.nodeById(n);e&&(t[n]={x:e.position.x,y:e.position.y})}),!t[n.id]){const e=this.nodeById(n.id);e&&(t[n.id]={x:e.position.x,y:e.position.y})}this.dragNodeStartPositions=t;for(let n in t)n in this.dragPositions||this.$set(this.dragPositions,n,null),this.dragPositions[n]={x:t[n].x,y:t[n].y};this.$emit("node-drag-start",{node:n,event:e})},doDrag(n){const e=this.viewport.zoom,t=(n.clientX-this.dragStartPos.x)/e,o=(n.clientY-this.dragStartPos.y)/e,r=this.snapToGrid;for(let n in this.dragNodeStartPositions){const e=this.dragNodeStartPositions[n];let i=e.x+t,a=e.y+o;if(r){const n=Tp({x:i,y:a},this.snapGridSize);i=n.x,a=n.y}const s=this.dragPositions&&this.dragPositions[n];s&&(s.x=i,s.y=a)}},endDrag(n){if(this.dragNodeStartPositions)for(let n in this.dragNodeStartPositions){let e=this.dragPositions[n],t=this.nodeById(n);t&&e&&(t.position.x=e.x,t.position.y=e.y),this.dragPositions[n]=null}const e=this.nodeById(this.draggingNodeId);this.isDraggingNode=!1,this.draggingNodeId=null,this.dragStartPos=null,this.dragNodeStartPositions=null,ap(),e&&this.$emit("node-drag-stop",{node:e,event:n}),this.emitNodesUpdate()},onConnectStart(n){if(this.locked||!this.nodesConnectable)return;if("source"!==n.handleType)return;this.isConnecting=!0,this.connectingFrom=n,this._connectCursorStyle=document.createElement("style"),this._connectCursorStyle.textContent="* { cursor: default !important; } .vue-flow__handle { cursor: crosshair !important; } .vue-flow__node-settings, .vue-flow__edge-settings, .vue-flow__resize { opacity: 0 !important; pointer-events: none !important; }",document.head.appendChild(this._connectCursorStyle);const e=this.nodeById(n.nodeId);if(!e)return;const t=Pp(e,n.handlePosition,this.nodeInternals[n.nodeId]||{});this.connLineFromX=t.x,this.connLineFromY=t.y,this.connLineFromPosition=n.handlePosition,this.connLineToX=t.x,this.connLineToY=t.y,this.$emit("connect-start",{nodeId:n.nodeId,handleId:n.handleId,handleType:n.handleType})},doConnect(n){const e=this.$refs.canvas.getContainerRect();if(!e)return;const t=this.viewport;this.connLineToX=(n.clientX-e.left-t.x)/t.zoom,this.connLineToY=(n.clientY-e.top-t.y)/t.zoom},endConnect(n){const e=document.elementFromPoint(n.clientX,n.clientY),t=e&&e.closest&&e.closest(".vue-flow__handle");if(t&&this.connectingFrom&&"target"===t.dataset.handleType){const n=t.closest(".vue-flow__node"),e=n?n.dataset.id:null;if(e){const n={from:this.connectingFrom.nodeId,to:e,...this.connectingFrom.handlePosition?{fromPosition:this.connectingFrom.handlePosition}:{},...t.dataset.handlePosition?{toPosition:t.dataset.handlePosition}:{}},o=function(n,e,t,o){if(!n.from||!n.to)return!1;if(n.from===n.to)return!1;const r=e.find(e=>e.id===n.from),i=e.find(e=>e.id===n.to);return(!r||"output"!==r.type)&&((!i||"input"!==i.type)&&!(t.find(e=>e.from===n.from&&e.to===n.to)||o&&!o(n)))}(n,this.nodes,this.conns,this.funValidConnCreating);if(o){const e=`e${n.from}-${n.to}`,t={id:this.connById(e)?(lf++,`${Date.now()}-${lf}-${Math.random().toString(36).slice(2,7)}`):e,...n};this.addConn(t),this.emitConnsUpdate(),this.$emit("connect",n)}}}this.$emit("connect-end",n),this.isConnecting=!1,this.connectingFrom=null,this._connectCursorStyle&&(document.head.removeChild(this._connectCursorStyle),this._connectCursorStyle=null)},onNodeClick({node:n,event:e}){if(this.elementsSelectable){if(this.isMultiSelectPressed){const e=this.selectedNodes.indexOf(n.id);-1===e?this.selectedNodes.push(n.id):this.selectedNodes.splice(e,1)}else this.setSelectedNodes([n.id]),this.setSelectedConns([]);this.emitSelectionChange(),this.$emit("node-click",{node:n,event:e})}},onNodeDoubleClick(n){this.$emit("node-double-click",n)},onNodeContextMenu(n){this.$emit("node-context-menu",n)},onNodeSettingsClick(n){this.$emit("node-settings-click",n)},onNodeSettingsUpdate({node:n,key:e,value:t}){let o=this.nodeById(n.id);if(!o)return;let r=o.type;if(this.$set(o,e,t),"type"===e&&r!==t){let n=o.id,e="input"===t||"basic"===t,r="output"===t||"basic"===t,i=this.conns;for(let t=i.length-1;t>=0;t--){let o=i[t];(!e&&o.from===n||!r&&o.to===n)&&i.splice(t,1)}}this.$emit("node-settings-update",{node:o,key:e,value:t})},onNodeSettingsDelete({node:n}){this.removeNode(n.id),ap(),this.emitNodesUpdate(),this.emitConnsUpdate(),this.$emit("node-settings-delete",{node:n})},onNodeMouseEnter({node:n,event:e}){this.$emit("node-mouseenter",{node:n,event:e})},onNodeMouseLeave({node:n,event:e}){this.$emit("node-mouseleave",{node:n,event:e})},onConnClick({conn:n,event:e}){if(this.elementsSelectable){if(this.isMultiSelectPressed){const e=this.selectedConns.indexOf(n.id);-1===e?this.selectedConns.push(n.id):this.selectedConns.splice(e,1)}else this.setSelectedConns([n.id]),this.setSelectedNodes([]);this.emitSelectionChange(),this.$emit("conn-click",{conn:n,event:e})}},onConnDoubleClick(n){this.$emit("conn-double-click",n)},onConnContextMenu(n){this.$emit("conn-context-menu",n)},onConnMouseEnter({conn:n,event:e}){this.$emit("conn-mouseenter",{conn:n,event:e})},onConnMouseLeave({conn:n,event:e}){this.$emit("conn-mouseleave",{conn:n,event:e})},onConnSettingsClick(n){this.$emit("conn-settings-click",n)},onConnSettingsUpdate({conn:n,key:e,value:t}){let o=this.connById(n.id);o&&(this.$set(o,e,t),this.$emit("conn-settings-update",{conn:o,key:e,value:t}))},onConnSettingsDelete({conn:n}){this.removeConn(n.id),ap(),this.emitConnsUpdate(),this.$emit("conn-settings-delete",{conn:n})},startSelection(n){this.isSelecting=!0;const e=this.$refs.canvas.getContainerRect();e&&(this.selectionStartPos={x:n.clientX-e.left,y:n.clientY-e.top},this.selectionBox={x:this.selectionStartPos.x,y:this.selectionStartPos.y,width:0,height:0})},doSelection(n){const e=this.$refs.canvas.getContainerRect();if(!e)return;const t=n.clientX-e.left,o=n.clientY-e.top,r=Math.min(this.selectionStartPos.x,t),i=Math.min(this.selectionStartPos.y,o),a=Math.abs(t-this.selectionStartPos.x),s=Math.abs(o-this.selectionStartPos.y);this.selectionBox={x:r,y:i,width:a,height:s}},endSelection(){if(this.selectionBox){const o=this.selectionBox,r=this.viewport,i={x:(o.x-r.x)/r.zoom,y:(o.y-r.y)/r.zoom,width:o.width/r.zoom,height:o.height/r.zoom},a=(n=i,e=this.nodes,t=this.nodeInternals,e.filter(e=>{const o=t&&t[e.id]||{},r=o.width||e.width||150,i=o.height||e.height||40;return s={x:e.position.x,y:e.position.y,width:r,height:i},(a=n).x<s.x+s.width&&a.x+a.width>s.x&&a.y<s.y+s.height&&a.y+a.height>s.y;var a,s})).map(n=>n.id);this.setSelectedNodes(a);let s=new Set(a),l=this.conns.filter(n=>s.has(n.from)&&s.has(n.to)).map(n=>n.id);this.setSelectedConns(l),this.emitSelectionChange()}var n,e,t;this.isSelecting=!1,this.selectionStartPos=null,this.selectionBox=null},deleteSelectedElements(){const{nodes:n,conns:e}=this.getSelectedElements();0===n.length&&0===e.length||(n.forEach(n=>{!1!==n.deletable&&this.removeNode(n.id)}),e.forEach(n=>{!1!==n.deletable&&this.removeConn(n.id)}),this.clearSelection(),this.$emit("delete",{nodes:n,conns:e}),this.emitNodesUpdate(),this.emitConnsUpdate())},onNodeDimensions({nodeId:n,width:e,height:t}){this.updateNodeInternals(n,{width:e,height:t})},onNodeResize({nodeId:n,width:e,height:t,x:o,y:r}){if(this.locked)return;n in this.dragPositions||this.$set(this.dragPositions,n,null);const i=this.dragPositions[n];i?(i.x=o,i.y=r,i.width=e,i.height=t):this.dragPositions[n]={x:o,y:r,width:e,height:t},this.updateNodeInternals(n,{width:e,height:t})},onNodeResizeEnd({nodeId:n,width:e,height:t,x:o,y:r}){let i=this.nodeById(n);i&&(i.width=e,i.height=t,i.position.x=o,i.position.y=r),this.dragPositions[n]=null,ap(),this.emitNodesUpdate()},updateNodePosition(n,e){let t=this.nodeById(n);t&&(t.position.x=e.x,t.position.y=e.y)},getSelectedElements(){return{nodes:this.nodes.filter(n=>this.selectedNodes.includes(n.id)),conns:this.conns.filter(n=>this.selectedConns.includes(n.id))}},emitNodesUpdate(){this.$emit("update:nodes",[...this.nodes])},emitConnsUpdate(){this.$emit("update:conns",[...this.conns])},emitViewportChange(){this.$emit("viewport-change",{...this.viewport})},emitSelectionChange(){this.$emit("selection-change",this.getSelectedElements())},fitView(n){n=n||50;let e=this.nodes.filter(n=>!n.hidden);if(0===e.length)return;let t=this.nodeInternals,o=1/0,r=1/0,i=-1/0,a=-1/0;e.forEach(n=>{let e=t[n.id]&&t[n.id].width||n.width||150,s=t[n.id]&&t[n.id].height||n.height||40;o=Math.min(o,n.position.x),r=Math.min(r,n.position.y),i=Math.max(i,n.position.x+e),a=Math.max(a,n.position.y+s)});let s=this.$refs.canvas?this.$refs.canvas.getContainerRect():null,l=s?s.width:this.widthInp,d=s?s.height:this.heightInp,u=i-o+2*n,c=a-r+2*n,p=Math.min(l/u,d/c,2);this.viewport.zoom=p,this.viewport.x=(l-(i+o)*p)/2,this.viewport.y=(d-(a+r)*p)/2,this.emitViewportChange()},zoomAtCenter(n){const e=this.viewport.zoom,t=Math.min(this.zoomMin,e),o=Math.max(t,Math.min(this.zoomMax,e*n)),r=this.$refs.canvas?this.$refs.canvas.getContainerRect():null,i=r?r.width/2:this.widthInp/2,a=r?r.height/2:this.heightInp/2,s=this.viewport,l=o/e;this.setViewport({x:i-(i-s.x)*l,y:a-(a-s.y)*l,zoom:o}),this.emitViewportChange()},zoomIn(){this.zoomAtCenter(1.2)},zoomOut(){this.zoomAtCenter(1/1.2)},toggleInteractive(){this.locked=!this.locked,this.$emit("toggle-interactive",this.locked)},panToNode(n,e){e=e||{};let t=this.nodeById(n);if(!t)return!1;let o=this.nodeInternals[n],r=o&&o.width||t.width||150,i=o&&o.height||t.height||40,a=t.position.x+r/2,s=t.position.y+i/2,l=this.$refs.canvas?this.$refs.canvas.getContainerRect():null,d=l&&l.width||this.widthInp,u=l&&l.height||this.heightInp,c=void 0!==e.zoom?e.zoom:this.viewport.zoom,p=void 0!==e.duration?e.duration:400,f={x:d/2-a*c,y:u/2-s*c,zoom:c};this._panAnimId&&(cancelAnimationFrame(this._panAnimId),this._panAnimId=null);let h=()=>{this.setViewport(f),this.emitViewportChange(),!0===e.openPopup&&this.$nextTick(()=>this.openNodeInfoPopup(n))};if(!(p>0))return h(),!0;let g=this.viewport.x,v=this.viewport.y,m=this.viewport.zoom,A=null,b=n=>{null===A&&(A=n);let e=Math.min((n-A)/p,1),t=(n=>n<.5?4*n*n*n:1-Math.pow(-2*n+2,3)/2)(e);this.setViewport({x:g+(f.x-g)*t,y:v+(f.y-v)*t,zoom:m+(f.zoom-m)*t}),e<1?this._panAnimId=requestAnimationFrame(b):(this._panAnimId=null,h())};return this._panAnimId=requestAnimationFrame(b),!0},openNodeInfoPopup(n){let e=this.$refs.nodeRenderer;return!!e&&e.openNodeInfoPopup(n)},openConnInfoPopup(n){let e=this.$refs.edgeRenderer;return!!e&&e.openConnInfoPopup(n)},getFlowData(){return{nodes:JSON.parse(JSON.stringify(this.nodes)),conns:JSON.parse(JSON.stringify(this.conns))}}}};const pf=cf;var ff=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:"width:"+n.widthInp+"px; height:"+n.heightInp+"px;"},[n.inited?t("FlowCanvas",{ref:"canvas",on:{"canvas-mousedown":n.onCanvasMouseDown,"canvas-mousemove":n.onCanvasMouseMove,"canvas-mouseup":n.onCanvasMouseUp,"canvas-wheel":n.onCanvasWheel,"canvas-dblclick":n.onCanvasDblClick,"canvas-click":n.onCanvasClick,"canvas-contextmenu":n.onCanvasContextMenu}},[t("BackgroundLayer",{attrs:{variant:n.platformBackgroundPatternType,gap:n.platformBackgroundPatternGap,size:n.platformBackgroundPatternSize,"pattern-color":n.platformBackgroundPatternColor,"bg-color":n.platformBackgroundColor,viewport:n.viewport}}),n._v(" "),t("ViewportTransform",{attrs:{viewport:n.viewport}},[t("EdgeRenderer",{ref:"edgeRenderer",attrs:{conns:n.conns,nodes:n.nodes,"node-internals":n.nodeInternals,"selected-conn-ids":n.selectedConns,interactive:n.elementsSelectable,locked:n.locked,"settings-popup-background-color":n.settingsPopupBackgroundColor,"settings-popup-text-color":n.settingsPopupTextColor,"settings-popup-text-font-size":n.settingsPopupTextFontSize,"infor-popup-background-color":n.inforPopupBackgroundColor,"infor-popup-title-text-color":n.inforPopupTitleTextColor,"infor-popup-title-text-font-size":n.inforPopupTitleTextFontSize,"infor-popup-description-text-color":n.inforPopupDescriptionTextColor,"infor-popup-description-text-font-size":n.inforPopupDescriptionTextFontSize,"settings-enabled":n.connsSettingsEnabled,"settings-excludes":n.connsSettingsExcludes},on:{"conn-click":n.onConnClick,"conn-double-click":n.onConnDoubleClick,"conn-context-menu":n.onConnContextMenu,"conn-mouseenter":n.onConnMouseEnter,"conn-mouseleave":n.onConnMouseLeave,"conn-settings-click":n.onConnSettingsClick,"conn-settings-update":n.onConnSettingsUpdate,"conn-settings-delete":n.onConnSettingsDelete},scopedSlots:n._u([n.$scopedSlots["conn-popup"]?{key:"conn-popup",fn:function(e){return[n._t("conn-popup",null,null,e)]}}:null],null,!0)}),n._v(" "),t("NodeRenderer",{ref:"nodeRenderer",attrs:{nodes:n.nodes,"selected-node-ids":n.selectedNodes,"nodes-draggable":n.nodesDraggable,"nodes-connectable":n.nodesConnectable,locked:n.locked,"nodes-resizable":n.nodesResizable,"settings-popup-background-color":n.settingsPopupBackgroundColor,"settings-popup-text-color":n.settingsPopupTextColor,"settings-popup-text-font-size":n.settingsPopupTextFontSize,"infor-popup-background-color":n.inforPopupBackgroundColor,"infor-popup-title-text-color":n.inforPopupTitleTextColor,"infor-popup-title-text-font-size":n.inforPopupTitleTextFontSize,"infor-popup-description-text-color":n.inforPopupDescriptionTextColor,"infor-popup-description-text-font-size":n.inforPopupDescriptionTextFontSize,"snap-grid-size":n.snapToGrid?n.snapGridSize:null,"settings-enabled":n.nodesSettingsEnabled,"settings-excludes":n.nodesSettingsExcludes},on:{"drag-start":n.onNodeDragStart,"node-click":n.onNodeClick,"node-double-click":n.onNodeDoubleClick,"node-context-menu":n.onNodeContextMenu,"node-settings-click":n.onNodeSettingsClick,"node-settings-update":n.onNodeSettingsUpdate,"node-settings-delete":n.onNodeSettingsDelete,"node-mouseenter":n.onNodeMouseEnter,"node-mouseleave":n.onNodeMouseLeave,"connect-start":n.onConnectStart,dimensions:n.onNodeDimensions,"node-resize":n.onNodeResize,"node-resize-end":n.onNodeResizeEnd},scopedSlots:n._u([n.$scopedSlots["node-popup"]?{key:"node-popup",fn:function(e){return[n._t("node-popup",null,null,e)]}}:null],null,!0)}),n._v(" "),t("ConnectionLine",{attrs:{active:n.isConnecting,"source-x":n.connLineFromX,"source-y":n.connLineFromY,"source-position":n.connLineFromPosition,"target-x":n.connLineToX,"target-y":n.connLineToY,type:n.defConnCreatingType,"line-style":n.defConnCreatingStyle}}),n._v(" "),n._t("viewport-overlay")],2),n._v(" "),t("SelectionBox",{attrs:{box:n.selectionBox}}),n._v(" "),t("Controls",{attrs:{locked:n.locked,menu:n.menuInp},on:{"zoom-in":n.zoomIn,"zoom-out":n.zoomOut,"fit-view":n.fitView,"toggle-interactive":n.toggleInteractive}})],1):n._e()],1)};ff._withStripped=!0;const hf=Xr({render:ff,staticRenderFns:[]},function(n){n&&n("data-v-db4421a4_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WFlowVue.vue"},media:void 0})},pf,"data-v-db4421a4",false,void 0,!1,Zr,void 0,void 0);var gf={exports:{}};
14
+ var iu,au,su=9e15,lu=1e9,du="0123456789abcdef",uu="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",cu="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",pu={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-su,maxE:su,crypto:!1},fu=!0,hu="[DecimalError] ",gu=hu+"Invalid argument: ",vu=hu+"Precision limit exceeded",mu=hu+"crypto unavailable",Au="[object Decimal]",bu=Math.floor,yu=Math.pow,Cu=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,xu=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,wu=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Su=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,ku=1e7,_u=uu.length-1,Bu=cu.length-1,Pu={toStringTag:Au};function Tu(n){var e,t,o,r=n.length-1,i="",a=n[0];if(r>0){for(i+=a,e=1;e<r;e++)(t=7-(o=n[e]+"").length)&&(i+=Du(t)),i+=o;(t=7-(o=(a=n[e])+"").length)&&(i+=Du(t))}else if(0===a)return"0";for(;a%10==0;)a/=10;return i+a}function Eu(n,e,t){if(n!==~~n||n<e||n>t)throw Error(gu+n)}function zu(n,e,t,o){var r,i,a,s;for(i=n[0];i>=10;i/=10)--e;return--e<0?(e+=7,r=0):(r=Math.ceil((e+1)/7),e%=7),i=yu(10,7-e),s=n[r]%i|0,null==o?e<3?(0==e?s=s/100|0:1==e&&(s=s/10|0),a=t<4&&99999==s||t>3&&49999==s||5e4==s||0==s):a=(t<4&&s+1==i||t>3&&s+1==i/2)&&(n[r+1]/i/100|0)==yu(10,e-2)-1||(s==i/2||0==s)&&!(n[r+1]/i/100|0):e<4?(0==e?s=s/1e3|0:1==e?s=s/100|0:2==e&&(s=s/10|0),a=(o||t<4)&&9999==s||!o&&t>3&&4999==s):a=((o||t<4)&&s+1==i||!o&&t>3&&s+1==i/2)&&(n[r+1]/i/1e3|0)==yu(10,e-3)-1,a}function Iu(n,e,t){for(var o,r,i=[0],a=0,s=n.length;a<s;){for(r=i.length;r--;)i[r]*=e;for(i[0]+=du.indexOf(n.charAt(a++)),o=0;o<i.length;o++)i[o]>t-1&&(void 0===i[o+1]&&(i[o+1]=0),i[o+1]+=i[o]/t|0,i[o]%=t)}return i.reverse()}Pu.absoluteValue=Pu.abs=function(){var n=new this.constructor(this);return n.s<0&&(n.s=1),Hu(n)},Pu.ceil=function(){return Hu(new this.constructor(this),this.e+1,2)},Pu.clampedTo=Pu.clamp=function(n,e){var t=this,o=t.constructor;if(n=new o(n),e=new o(e),!n.s||!e.s)return new o(NaN);if(n.gt(e))throw Error(gu+e);return t.cmp(n)<0?n:t.cmp(e)>0?e:new o(t)},Pu.comparedTo=Pu.cmp=function(n){var e,t,o,r,i=this,a=i.d,s=(n=new i.constructor(n)).d,l=i.s,d=n.s;if(!a||!s)return l&&d?l!==d?l:a===s?0:!a^l<0?1:-1:NaN;if(!a[0]||!s[0])return a[0]?l:s[0]?-d:0;if(l!==d)return l;if(i.e!==n.e)return i.e>n.e^l<0?1:-1;for(e=0,t=(o=a.length)<(r=s.length)?o:r;e<t;++e)if(a[e]!==s[e])return a[e]>s[e]^l<0?1:-1;return o===r?0:o>r^l<0?1:-1},Pu.cosine=Pu.cos=function(){var n,e,t=this,o=t.constructor;return t.d?t.d[0]?(n=o.precision,e=o.rounding,o.precision=n+Math.max(t.e,t.sd())+7,o.rounding=1,t=function(n,e){var t,o,r;if(e.isZero())return e;o=e.d.length,o<32?r=(1/qu(4,t=Math.ceil(o/3))).toString():(t=16,r="2.3283064365386962890625e-10");n.precision+=t,e=Zu(n,1,e.times(r),new n(1));for(var i=t;i--;){var a=e.times(e);e=a.times(a).minus(a).times(8).plus(1)}return n.precision-=t,e}(o,Ju(o,t)),o.precision=n,o.rounding=e,Hu(2==au||3==au?t.neg():t,n,e,!0)):new o(1):new o(NaN)},Pu.cubeRoot=Pu.cbrt=function(){var n,e,t,o,r,i,a,s,l,d,u=this,c=u.constructor;if(!u.isFinite()||u.isZero())return new c(u);for(fu=!1,(i=u.s*yu(u.s*u,1/3))&&Math.abs(i)!=1/0?o=new c(i.toString()):(t=Tu(u.d),(i=((n=u.e)-t.length+1)%3)&&(t+=1==i||-2==i?"0":"00"),i=yu(t,1/3),n=bu((n+1)/3)-(n%3==(n<0?-1:2)),(o=new c(t=i==1/0?"5e"+n:(t=i.toExponential()).slice(0,t.indexOf("e")+1)+n)).s=u.s),a=(n=c.precision)+3;;)if(d=(l=(s=o).times(s).times(s)).plus(u),o=Fu(d.plus(u).times(s),d.plus(l),a+2,1),Tu(s.d).slice(0,a)===(t=Tu(o.d)).slice(0,a)){if("9999"!=(t=t.slice(a-3,a+1))&&(r||"4999"!=t)){+t&&(+t.slice(1)||"5"!=t.charAt(0))||(Hu(o,n+1,1),e=!o.times(o).times(o).eq(u));break}if(!r&&(Hu(s,n+1,0),s.times(s).times(s).eq(u))){o=s;break}a+=4,r=1}return fu=!0,Hu(o,n,c.rounding,e)},Pu.decimalPlaces=Pu.dp=function(){var n,e=this.d,t=NaN;if(e){if(t=7*((n=e.length-1)-bu(this.e/7)),n=e[n])for(;n%10==0;n/=10)t--;t<0&&(t=0)}return t},Pu.dividedBy=Pu.div=function(n){return Fu(this,new this.constructor(n))},Pu.dividedToIntegerBy=Pu.divToInt=function(n){var e=this.constructor;return Hu(Fu(this,new e(n),0,1,1),e.precision,e.rounding)},Pu.equals=Pu.eq=function(n){return 0===this.cmp(n)},Pu.floor=function(){return Hu(new this.constructor(this),this.e+1,3)},Pu.greaterThan=Pu.gt=function(n){return this.cmp(n)>0},Pu.greaterThanOrEqualTo=Pu.gte=function(n){var e=this.cmp(n);return 1==e||0===e},Pu.hyperbolicCosine=Pu.cosh=function(){var n,e,t,o,r,i=this,a=i.constructor,s=new a(1);if(!i.isFinite())return new a(i.s?1/0:NaN);if(i.isZero())return s;t=a.precision,o=a.rounding,a.precision=t+Math.max(i.e,i.sd())+4,a.rounding=1,(r=i.d.length)<32?e=(1/qu(4,n=Math.ceil(r/3))).toString():(n=16,e="2.3283064365386962890625e-10"),i=Zu(a,1,i.times(e),new a(1),!0);for(var l,d=n,u=new a(8);d--;)l=i.times(i),i=s.minus(l.times(u.minus(l.times(u))));return Hu(i,a.precision=t,a.rounding=o,!0)},Pu.hyperbolicSine=Pu.sinh=function(){var n,e,t,o,r=this,i=r.constructor;if(!r.isFinite()||r.isZero())return new i(r);if(e=i.precision,t=i.rounding,i.precision=e+Math.max(r.e,r.sd())+4,i.rounding=1,(o=r.d.length)<3)r=Zu(i,2,r,r,!0);else{n=(n=1.4*Math.sqrt(o))>16?16:0|n,r=Zu(i,2,r=r.times(1/qu(5,n)),r,!0);for(var a,s=new i(5),l=new i(16),d=new i(20);n--;)a=r.times(r),r=r.times(s.plus(a.times(l.times(a).plus(d))))}return i.precision=e,i.rounding=t,Hu(r,e,t,!0)},Pu.hyperbolicTangent=Pu.tanh=function(){var n,e,t=this,o=t.constructor;return t.isFinite()?t.isZero()?new o(t):(n=o.precision,e=o.rounding,o.precision=n+7,o.rounding=1,Fu(t.sinh(),t.cosh(),o.precision=n,o.rounding=e)):new o(t.s)},Pu.inverseCosine=Pu.acos=function(){var n=this,e=n.constructor,t=n.abs().cmp(1),o=e.precision,r=e.rounding;return-1!==t?0===t?n.isNeg()?Mu(e,o,r):new e(0):new e(NaN):n.isZero()?Mu(e,o+4,r).times(.5):(e.precision=o+6,e.rounding=1,n=new e(1).minus(n).div(n.plus(1)).sqrt().atan(),e.precision=o,e.rounding=r,n.times(2))},Pu.inverseHyperbolicCosine=Pu.acosh=function(){var n,e,t=this,o=t.constructor;return t.lte(1)?new o(t.eq(1)?0:NaN):t.isFinite()?(n=o.precision,e=o.rounding,o.precision=n+Math.max(Math.abs(t.e),t.sd())+4,o.rounding=1,fu=!1,t=t.times(t).minus(1).sqrt().plus(t),fu=!0,o.precision=n,o.rounding=e,t.ln()):new o(t)},Pu.inverseHyperbolicSine=Pu.asinh=function(){var n,e,t=this,o=t.constructor;return!t.isFinite()||t.isZero()?new o(t):(n=o.precision,e=o.rounding,o.precision=n+2*Math.max(Math.abs(t.e),t.sd())+6,o.rounding=1,fu=!1,t=t.times(t).plus(1).sqrt().plus(t),fu=!0,o.precision=n,o.rounding=e,t.ln())},Pu.inverseHyperbolicTangent=Pu.atanh=function(){var n,e,t,o,r=this,i=r.constructor;return r.isFinite()?r.e>=0?new i(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(n=i.precision,e=i.rounding,o=r.sd(),Math.max(o,n)<2*-r.e-1?Hu(new i(r),n,e,!0):(i.precision=t=o-r.e,r=Fu(r.plus(1),new i(1).minus(r),t+n,1),i.precision=n+4,i.rounding=1,r=r.ln(),i.precision=n,i.rounding=e,r.times(.5))):new i(NaN)},Pu.inverseSine=Pu.asin=function(){var n,e,t,o,r=this,i=r.constructor;return r.isZero()?new i(r):(e=r.abs().cmp(1),t=i.precision,o=i.rounding,-1!==e?0===e?((n=Mu(i,t+4,o).times(.5)).s=r.s,n):new i(NaN):(i.precision=t+6,i.rounding=1,r=r.div(new i(1).minus(r.times(r)).sqrt().plus(1)).atan(),i.precision=t,i.rounding=o,r.times(2)))},Pu.inverseTangent=Pu.atan=function(){var n,e,t,o,r,i,a,s,l,d=this,u=d.constructor,c=u.precision,p=u.rounding;if(d.isFinite()){if(d.isZero())return new u(d);if(d.abs().eq(1)&&c+4<=Bu)return(a=Mu(u,c+4,p).times(.25)).s=d.s,a}else{if(!d.s)return new u(NaN);if(c+4<=Bu)return(a=Mu(u,c+4,p).times(.5)).s=d.s,a}for(u.precision=s=c+10,u.rounding=1,n=t=Math.min(28,s/7+2|0);n;--n)d=d.div(d.times(d).plus(1).sqrt().plus(1));for(fu=!1,e=Math.ceil(s/7),o=1,l=d.times(d),a=new u(d),r=d;-1!==n;)if(r=r.times(l),i=a.minus(r.div(o+=2)),r=r.times(l),void 0!==(a=i.plus(r.div(o+=2))).d[e])for(n=e;a.d[n]===i.d[n]&&n--;);return t&&(a=a.times(2<<t-1)),fu=!0,Hu(a,u.precision=c,u.rounding=p,!0)},Pu.isFinite=function(){return!!this.d},Pu.isInteger=Pu.isInt=function(){return!!this.d&&bu(this.e/7)>this.d.length-2},Pu.isNaN=function(){return!this.s},Pu.isNegative=Pu.isNeg=function(){return this.s<0},Pu.isPositive=Pu.isPos=function(){return this.s>0},Pu.isZero=function(){return!!this.d&&0===this.d[0]},Pu.lessThan=Pu.lt=function(n){return this.cmp(n)<0},Pu.lessThanOrEqualTo=Pu.lte=function(n){return this.cmp(n)<1},Pu.logarithm=Pu.log=function(n){var e,t,o,r,i,a,s,l,d=this,u=d.constructor,c=u.precision,p=u.rounding;if(null==n)n=new u(10),e=!0;else{if(t=(n=new u(n)).d,n.s<0||!t||!t[0]||n.eq(1))return new u(NaN);e=n.eq(10)}if(t=d.d,d.s<0||!t||!t[0]||d.eq(1))return new u(t&&!t[0]?-1/0:1!=d.s?NaN:t?0:1/0);if(e)if(t.length>1)i=!0;else{for(r=t[0];r%10==0;)r/=10;i=1!==r}if(fu=!1,a=Yu(d,s=c+5),o=e?$u(u,s+10):Yu(n,s),zu((l=Fu(a,o,s,1)).d,r=c,p))do{if(a=Yu(d,s+=10),o=e?$u(u,s+10):Yu(n,s),l=Fu(a,o,s,1),!i){+Tu(l.d).slice(r+1,r+15)+1==1e14&&(l=Hu(l,c+1,0));break}}while(zu(l.d,r+=10,p));return fu=!0,Hu(l,c,p)},Pu.minus=Pu.sub=function(n){var e,t,o,r,i,a,s,l,d,u,c,p,f=this,h=f.constructor;if(n=new h(n),!f.d||!n.d)return f.s&&n.s?f.d?n.s=-n.s:n=new h(n.d||f.s!==n.s?f:NaN):n=new h(NaN),n;if(f.s!=n.s)return n.s=-n.s,f.plus(n);if(d=f.d,p=n.d,s=h.precision,l=h.rounding,!d[0]||!p[0]){if(p[0])n.s=-n.s;else{if(!d[0])return new h(3===l?-0:0);n=new h(f)}return fu?Hu(n,s,l):n}if(t=bu(n.e/7),u=bu(f.e/7),d=d.slice(),i=u-t){for((c=i<0)?(e=d,i=-i,a=p.length):(e=p,t=u,a=d.length),i>(o=Math.max(Math.ceil(s/7),a)+2)&&(i=o,e.length=1),e.reverse(),o=i;o--;)e.push(0);e.reverse()}else{for((c=(o=d.length)<(a=p.length))&&(a=o),o=0;o<a;o++)if(d[o]!=p[o]){c=d[o]<p[o];break}i=0}for(c&&(e=d,d=p,p=e,n.s=-n.s),a=d.length,o=p.length-a;o>0;--o)d[a++]=0;for(o=p.length;o>i;){if(d[--o]<p[o]){for(r=o;r&&0===d[--r];)d[r]=ku-1;--d[r],d[o]+=ku}d[o]-=p[o]}for(;0===d[--a];)d.pop();for(;0===d[0];d.shift())--t;return d[0]?(n.d=d,n.e=Wu(d,t),fu?Hu(n,s,l):n):new h(3===l?-0:0)},Pu.modulo=Pu.mod=function(n){var e,t=this,o=t.constructor;return n=new o(n),!t.d||!n.s||n.d&&!n.d[0]?new o(NaN):!n.d||t.d&&!t.d[0]?Hu(new o(t),o.precision,o.rounding):(fu=!1,9==o.modulo?(e=Fu(t,n.abs(),0,3,1)).s*=n.s:e=Fu(t,n,0,o.modulo,1),e=e.times(n),fu=!0,t.minus(e))},Pu.naturalExponential=Pu.exp=function(){return Vu(this)},Pu.naturalLogarithm=Pu.ln=function(){return Yu(this)},Pu.negated=Pu.neg=function(){var n=new this.constructor(this);return n.s=-n.s,Hu(n)},Pu.plus=Pu.add=function(n){var e,t,o,r,i,a,s,l,d,u,c=this,p=c.constructor;if(n=new p(n),!c.d||!n.d)return c.s&&n.s?c.d||(n=new p(n.d||c.s===n.s?c:NaN)):n=new p(NaN),n;if(c.s!=n.s)return n.s=-n.s,c.minus(n);if(d=c.d,u=n.d,s=p.precision,l=p.rounding,!d[0]||!u[0])return u[0]||(n=new p(c)),fu?Hu(n,s,l):n;if(i=bu(c.e/7),o=bu(n.e/7),d=d.slice(),r=i-o){for(r<0?(t=d,r=-r,a=u.length):(t=u,o=i,a=d.length),r>(a=(i=Math.ceil(s/7))>a?i+1:a+1)&&(r=a,t.length=1),t.reverse();r--;)t.push(0);t.reverse()}for((a=d.length)-(r=u.length)<0&&(r=a,t=u,u=d,d=t),e=0;r;)e=(d[--r]=d[r]+u[r]+e)/ku|0,d[r]%=ku;for(e&&(d.unshift(e),++o),a=d.length;0==d[--a];)d.pop();return n.d=d,n.e=Wu(d,o),fu?Hu(n,s,l):n},Pu.precision=Pu.sd=function(n){var e,t=this;if(void 0!==n&&n!==!!n&&1!==n&&0!==n)throw Error(gu+n);return t.d?(e=Lu(t.d),n&&t.e+1>e&&(e=t.e+1)):e=NaN,e},Pu.round=function(){var n=this,e=n.constructor;return Hu(new e(n),n.e+1,e.rounding)},Pu.sine=Pu.sin=function(){var n,e,t=this,o=t.constructor;return t.isFinite()?t.isZero()?new o(t):(n=o.precision,e=o.rounding,o.precision=n+Math.max(t.e,t.sd())+7,o.rounding=1,t=function(n,e){var t,o=e.d.length;if(o<3)return e.isZero()?e:Zu(n,2,e,e);t=(t=1.4*Math.sqrt(o))>16?16:0|t,e=e.times(1/qu(5,t)),e=Zu(n,2,e,e);for(var r,i=new n(5),a=new n(16),s=new n(20);t--;)r=e.times(e),e=e.times(i.plus(r.times(a.times(r).minus(s))));return e}(o,Ju(o,t)),o.precision=n,o.rounding=e,Hu(au>2?t.neg():t,n,e,!0)):new o(NaN)},Pu.squareRoot=Pu.sqrt=function(){var n,e,t,o,r,i,a=this,s=a.d,l=a.e,d=a.s,u=a.constructor;if(1!==d||!s||!s[0])return new u(!d||d<0&&(!s||s[0])?NaN:s?a:1/0);for(fu=!1,0==(d=Math.sqrt(+a))||d==1/0?(((e=Tu(s)).length+l)%2==0&&(e+="0"),d=Math.sqrt(e),l=bu((l+1)/2)-(l<0||l%2),o=new u(e=d==1/0?"5e"+l:(e=d.toExponential()).slice(0,e.indexOf("e")+1)+l)):o=new u(d.toString()),t=(l=u.precision)+3;;)if(o=(i=o).plus(Fu(a,i,t+2,1)).times(.5),Tu(i.d).slice(0,t)===(e=Tu(o.d)).slice(0,t)){if("9999"!=(e=e.slice(t-3,t+1))&&(r||"4999"!=e)){+e&&(+e.slice(1)||"5"!=e.charAt(0))||(Hu(o,l+1,1),n=!o.times(o).eq(a));break}if(!r&&(Hu(i,l+1,0),i.times(i).eq(a))){o=i;break}t+=4,r=1}return fu=!0,Hu(o,l,u.rounding,n)},Pu.tangent=Pu.tan=function(){var n,e,t=this,o=t.constructor;return t.isFinite()?t.isZero()?new o(t):(n=o.precision,e=o.rounding,o.precision=n+10,o.rounding=1,(t=t.sin()).s=1,t=Fu(t,new o(1).minus(t.times(t)).sqrt(),n+10,0),o.precision=n,o.rounding=e,Hu(2==au||4==au?t.neg():t,n,e,!0)):new o(NaN)},Pu.times=Pu.mul=function(n){var e,t,o,r,i,a,s,l,d,u=this,c=u.constructor,p=u.d,f=(n=new c(n)).d;if(n.s*=u.s,!(p&&p[0]&&f&&f[0]))return new c(!n.s||p&&!p[0]&&!f||f&&!f[0]&&!p?NaN:p&&f?0*n.s:n.s/0);for(t=bu(u.e/7)+bu(n.e/7),(l=p.length)<(d=f.length)&&(i=p,p=f,f=i,a=l,l=d,d=a),i=[],o=a=l+d;o--;)i.push(0);for(o=d;--o>=0;){for(e=0,r=l+o;r>o;)s=i[r]+f[o]*p[r-o-1]+e,i[r--]=s%ku|0,e=s/ku|0;i[r]=(i[r]+e)%ku|0}for(;!i[--a];)i.pop();return e?++t:i.shift(),n.d=i,n.e=Wu(i,t),fu?Hu(n,c.precision,c.rounding):n},Pu.toBinary=function(n,e){return Qu(this,2,n,e)},Pu.toDecimalPlaces=Pu.toDP=function(n,e){var t=this,o=t.constructor;return t=new o(t),void 0===n?t:(Eu(n,0,lu),void 0===e?e=o.rounding:Eu(e,0,8),Hu(t,n+t.e+1,e))},Pu.toExponential=function(n,e){var t,o=this,r=o.constructor;return void 0===n?t=Nu(o,!0):(Eu(n,0,lu),void 0===e?e=r.rounding:Eu(e,0,8),t=Nu(o=Hu(new r(o),n+1,e),!0,n+1)),o.isNeg()&&!o.isZero()?"-"+t:t},Pu.toFixed=function(n,e){var t,o,r=this,i=r.constructor;return void 0===n?t=Nu(r):(Eu(n,0,lu),void 0===e?e=i.rounding:Eu(e,0,8),t=Nu(o=Hu(new i(r),n+r.e+1,e),!1,n+o.e+1)),r.isNeg()&&!r.isZero()?"-"+t:t},Pu.toFraction=function(n){var e,t,o,r,i,a,s,l,d,u,c,p,f=this,h=f.d,g=f.constructor;if(!h)return new g(f);if(d=t=new g(1),o=l=new g(0),a=(i=(e=new g(o)).e=Lu(h)-f.e-1)%7,e.d[0]=yu(10,a<0?7+a:a),null==n)n=i>0?e:d;else{if(!(s=new g(n)).isInt()||s.lt(d))throw Error(gu+s);n=s.gt(e)?i>0?e:d:s}for(fu=!1,s=new g(Tu(h)),u=g.precision,g.precision=i=7*h.length*2;c=Fu(s,e,0,1,1),1!=(r=t.plus(c.times(o))).cmp(n);)t=o,o=r,r=d,d=l.plus(c.times(r)),l=r,r=e,e=s.minus(c.times(r)),s=r;return r=Fu(n.minus(t),o,0,1,1),l=l.plus(r.times(d)),t=t.plus(r.times(o)),l.s=d.s=f.s,p=Fu(d,o,i,1).minus(f).abs().cmp(Fu(l,t,i,1).minus(f).abs())<1?[d,o]:[l,t],g.precision=u,fu=!0,p},Pu.toHexadecimal=Pu.toHex=function(n,e){return Qu(this,16,n,e)},Pu.toNearest=function(n,e){var t=this,o=t.constructor;if(t=new o(t),null==n){if(!t.d)return t;n=new o(1),e=o.rounding}else{if(n=new o(n),void 0===e?e=o.rounding:Eu(e,0,8),!t.d)return n.s?t:n;if(!n.d)return n.s&&(n.s=t.s),n}return n.d[0]?(fu=!1,t=Fu(t,n,0,e,1).times(n),fu=!0,Hu(t)):(n.s=t.s,t=n),t},Pu.toNumber=function(){return+this},Pu.toOctal=function(n,e){return Qu(this,8,n,e)},Pu.toPower=Pu.pow=function(n){var e,t,o,r,i,a,s=this,l=s.constructor,d=+(n=new l(n));if(!(s.d&&n.d&&s.d[0]&&n.d[0]))return new l(yu(+s,d));if((s=new l(s)).eq(1))return s;if(o=l.precision,i=l.rounding,n.eq(1))return Hu(s,o,i);if((e=bu(n.e/7))>=n.d.length-1&&(t=d<0?-d:d)<=9007199254740991)return r=Ru(l,s,t,o),n.s<0?new l(1).div(r):Hu(r,o,i);if((a=s.s)<0){if(e<n.d.length-1)return new l(NaN);if(1&n.d[e]||(a=1),0==s.e&&1==s.d[0]&&1==s.d.length)return s.s=a,s}return(e=0!=(t=yu(+s,d))&&isFinite(t)?new l(t+"").e:bu(d*(Math.log("0."+Tu(s.d))/Math.LN10+s.e+1)))>l.maxE+1||e<l.minE-1?new l(e>0?a/0:0):(fu=!1,l.rounding=s.s=1,t=Math.min(12,(e+"").length),(r=Vu(n.times(Yu(s,o+t)),o)).d&&zu((r=Hu(r,o+5,1)).d,o,i)&&(e=o+10,+Tu((r=Hu(Vu(n.times(Yu(s,e+t)),e),e+5,1)).d).slice(o+1,o+15)+1==1e14&&(r=Hu(r,o+1,0))),r.s=a,fu=!0,l.rounding=i,Hu(r,o,i))},Pu.toPrecision=function(n,e){var t,o=this,r=o.constructor;return void 0===n?t=Nu(o,o.e<=r.toExpNeg||o.e>=r.toExpPos):(Eu(n,1,lu),void 0===e?e=r.rounding:Eu(e,0,8),t=Nu(o=Hu(new r(o),n,e),n<=o.e||o.e<=r.toExpNeg,n)),o.isNeg()&&!o.isZero()?"-"+t:t},Pu.toSignificantDigits=Pu.toSD=function(n,e){var t=this.constructor;return void 0===n?(n=t.precision,e=t.rounding):(Eu(n,1,lu),void 0===e?e=t.rounding:Eu(e,0,8)),Hu(new t(this),n,e)},Pu.toString=function(){var n=this,e=n.constructor,t=Nu(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()&&!n.isZero()?"-"+t:t},Pu.truncated=Pu.trunc=function(){return Hu(new this.constructor(this),this.e+1,1)},Pu.valueOf=Pu.toJSON=function(){var n=this,e=n.constructor,t=Nu(n,n.e<=e.toExpNeg||n.e>=e.toExpPos);return n.isNeg()?"-"+t:t};var Fu=function(){function n(n,e,t){var o,r=0,i=n.length;for(n=n.slice();i--;)o=n[i]*e+r,n[i]=o%t|0,r=o/t|0;return r&&n.unshift(r),n}function e(n,e,t,o){var r,i;if(t!=o)i=t>o?1:-1;else for(r=i=0;r<t;r++)if(n[r]!=e[r]){i=n[r]>e[r]?1:-1;break}return i}function t(n,e,t,o){for(var r=0;t--;)n[t]-=r,r=n[t]<e[t]?1:0,n[t]=r*o+n[t]-e[t];for(;!n[0]&&n.length>1;)n.shift()}return function(o,r,i,a,s,l){var d,u,c,p,f,h,g,v,m,A,b,y,C,x,w,S,k,_,B,P,T=o.constructor,E=o.s==r.s?1:-1,z=o.d,I=r.d;if(!(z&&z[0]&&I&&I[0]))return new T(o.s&&r.s&&(z?!I||z[0]!=I[0]:I)?z&&0==z[0]||!I?0*E:E/0:NaN);for(l?(f=1,u=o.e-r.e):(l=ku,f=7,u=bu(o.e/f)-bu(r.e/f)),B=I.length,k=z.length,A=(m=new T(E)).d=[],c=0;I[c]==(z[c]||0);c++);if(I[c]>(z[c]||0)&&u--,null==i?(x=i=T.precision,a=T.rounding):x=s?i+(o.e-r.e)+1:i,x<0)A.push(1),h=!0;else{if(x=x/f+2|0,c=0,1==B){for(p=0,I=I[0],x++;(c<k||p)&&x--;c++)w=p*l+(z[c]||0),A[c]=w/I|0,p=w%I|0;h=p||c<k}else{for((p=l/(I[0]+1)|0)>1&&(I=n(I,p,l),z=n(z,p,l),B=I.length,k=z.length),S=B,y=(b=z.slice(0,B)).length;y<B;)b[y++]=0;(P=I.slice()).unshift(0),_=I[0],I[1]>=l/2&&++_;do{p=0,(d=e(I,b,B,y))<0?(C=b[0],B!=y&&(C=C*l+(b[1]||0)),(p=C/_|0)>1?(p>=l&&(p=l-1),1==(d=e(g=n(I,p,l),b,v=g.length,y=b.length))&&(p--,t(g,B<v?P:I,v,l))):(0==p&&(d=p=1),g=I.slice()),(v=g.length)<y&&g.unshift(0),t(b,g,y,l),-1==d&&(d=e(I,b,B,y=b.length))<1&&(p++,t(b,B<y?P:I,y,l)),y=b.length):0===d&&(p++,b=[0]),A[c++]=p,d&&b[0]?b[y++]=z[S]||0:(b=[z[S]],y=1)}while((S++<k||void 0!==b[0])&&x--);h=void 0!==b[0]}A[0]||A.shift()}if(1==f)m.e=u,iu=h;else{for(c=1,p=A[0];p>=10;p/=10)c++;m.e=c+u*f-1,Hu(m,s?i+m.e+1:i,a,h)}return m}}();function Hu(n,e,t,o){var r,i,a,s,l,d,u,c,p,f=n.constructor;n:if(null!=e){if(!(c=n.d))return n;for(r=1,s=c[0];s>=10;s/=10)r++;if((i=e-r)<0)i+=7,a=e,l=(u=c[p=0])/yu(10,r-a-1)%10|0;else if((p=Math.ceil((i+1)/7))>=(s=c.length)){if(!o)break n;for(;s++<=p;)c.push(0);u=l=0,r=1,a=(i%=7)-7+1}else{for(u=s=c[p],r=1;s>=10;s/=10)r++;l=(a=(i%=7)-7+r)<0?0:u/yu(10,r-a-1)%10|0}if(o=o||e<0||void 0!==c[p+1]||(a<0?u:u%yu(10,r-a-1)),d=t<4?(l||o)&&(0==t||t==(n.s<0?3:2)):l>5||5==l&&(4==t||o||6==t&&(i>0?a>0?u/yu(10,r-a):0:c[p-1])%10&1||t==(n.s<0?8:7)),e<1||!c[0])return c.length=0,d?(e-=n.e+1,c[0]=yu(10,(7-e%7)%7),n.e=-e||0):c[0]=n.e=0,n;if(0==i?(c.length=p,s=1,p--):(c.length=p+1,s=yu(10,7-i),c[p]=a>0?(u/yu(10,r-a)%yu(10,a)|0)*s:0),d)for(;;){if(0==p){for(i=1,a=c[0];a>=10;a/=10)i++;for(a=c[0]+=s,s=1;a>=10;a/=10)s++;i!=s&&(n.e++,c[0]==ku&&(c[0]=1));break}if(c[p]+=s,c[p]!=ku)break;c[p--]=0,s=1}for(i=c.length;0===c[--i];)c.pop()}return fu&&(n.e>f.maxE?(n.d=null,n.e=NaN):n.e<f.minE&&(n.e=0,n.d=[0])),n}function Nu(n,e,t){if(!n.isFinite())return Uu(n);var o,r=n.e,i=Tu(n.d),a=i.length;return e?(t&&(o=t-a)>0?i=i.charAt(0)+"."+i.slice(1)+Du(o):a>1&&(i=i.charAt(0)+"."+i.slice(1)),i=i+(n.e<0?"e":"e+")+n.e):r<0?(i="0."+Du(-r-1)+i,t&&(o=t-a)>0&&(i+=Du(o))):r>=a?(i+=Du(r+1-a),t&&(o=t-r-1)>0&&(i=i+"."+Du(o))):((o=r+1)<a&&(i=i.slice(0,o)+"."+i.slice(o)),t&&(o=t-a)>0&&(r+1===a&&(i+="."),i+=Du(o))),i}function Wu(n,e){var t=n[0];for(e*=7;t>=10;t/=10)e++;return e}function $u(n,e,t){if(e>_u)throw fu=!0,t&&(n.precision=t),Error(vu);return Hu(new n(uu),e,1,!0)}function Mu(n,e,t){if(e>Bu)throw Error(vu);return Hu(new n(cu),e,t,!0)}function Lu(n){var e=n.length-1,t=7*e+1;if(e=n[e]){for(;e%10==0;e/=10)t--;for(e=n[0];e>=10;e/=10)t++}return t}function Du(n){for(var e="";n--;)e+="0";return e}function Ru(n,e,t,o){var r,i=new n(1),a=Math.ceil(o/7+4);for(fu=!1;;){if(t%2&&Ku((i=i.times(e)).d,a)&&(r=!0),0===(t=bu(t/2))){t=i.d.length-1,r&&0===i.d[t]&&++i.d[t];break}Ku((e=e.times(e)).d,a)}return fu=!0,i}function ju(n){return 1&n.d[n.d.length-1]}function Ou(n,e,t){for(var o,r,i=new n(e[0]),a=0;++a<e.length;){if(!(r=new n(e[a])).s){i=r;break}((o=i.cmp(r))===t||0===o&&i.s===t)&&(i=r)}return i}function Vu(n,e){var t,o,r,i,a,s,l,d=0,u=0,c=0,p=n.constructor,f=p.rounding,h=p.precision;if(!n.d||!n.d[0]||n.e>17)return new p(n.d?n.d[0]?n.s<0?0:1/0:1:n.s?n.s<0?0:n:NaN);for(null==e?(fu=!1,l=h):l=e,s=new p(.03125);n.e>-2;)n=n.times(s),c+=5;for(l+=o=Math.log(yu(2,c))/Math.LN10*2+5|0,t=i=a=new p(1),p.precision=l;;){if(i=Hu(i.times(n),l,1),t=t.times(++u),Tu((s=a.plus(Fu(i,t,l,1))).d).slice(0,l)===Tu(a.d).slice(0,l)){for(r=c;r--;)a=Hu(a.times(a),l,1);if(null!=e)return p.precision=h,a;if(!(d<3&&zu(a.d,l-o,f,d)))return Hu(a,p.precision=h,f,fu=!0);p.precision=l+=10,t=i=s=new p(1),u=0,d++}a=s}}function Yu(n,e){var t,o,r,i,a,s,l,d,u,c,p,f=1,h=n,g=h.d,v=h.constructor,m=v.rounding,A=v.precision;if(h.s<0||!g||!g[0]||!h.e&&1==g[0]&&1==g.length)return new v(g&&!g[0]?-1/0:1!=h.s?NaN:g?0:h);if(null==e?(fu=!1,u=A):u=e,v.precision=u+=10,o=(t=Tu(g)).charAt(0),!(Math.abs(i=h.e)<15e14))return d=$u(v,u+2,A).times(i+""),h=Yu(new v(o+"."+t.slice(1)),u-10).plus(d),v.precision=A,null==e?Hu(h,A,m,fu=!0):h;for(;o<7&&1!=o||1==o&&t.charAt(1)>3;)o=(t=Tu((h=h.times(n)).d)).charAt(0),f++;for(i=h.e,o>1?(h=new v("0."+t),i++):h=new v(o+"."+t.slice(1)),c=h,l=a=h=Fu(h.minus(1),h.plus(1),u,1),p=Hu(h.times(h),u,1),r=3;;){if(a=Hu(a.times(p),u,1),Tu((d=l.plus(Fu(a,new v(r),u,1))).d).slice(0,u)===Tu(l.d).slice(0,u)){if(l=l.times(2),0!==i&&(l=l.plus($u(v,u+2,A).times(i+""))),l=Fu(l,new v(f),u,1),null!=e)return v.precision=A,l;if(!zu(l.d,u-10,m,s))return Hu(l,v.precision=A,m,fu=!0);v.precision=u+=10,d=a=h=Fu(c.minus(1),c.plus(1),u,1),p=Hu(h.times(h),u,1),r=s=1}l=d,r+=2}}function Uu(n){return String(n.s*n.s/0)}function Xu(n,e){var t,o,r;for((t=e.indexOf("."))>-1&&(e=e.replace(".","")),(o=e.search(/e/i))>0?(t<0&&(t=o),t+=+e.slice(o+1),e=e.substring(0,o)):t<0&&(t=e.length),o=0;48===e.charCodeAt(o);o++);for(r=e.length;48===e.charCodeAt(r-1);--r);if(e=e.slice(o,r)){if(r-=o,n.e=t=t-o-1,n.d=[],o=(t+1)%7,t<0&&(o+=7),o<r){for(o&&n.d.push(+e.slice(0,o)),r-=7;o<r;)n.d.push(+e.slice(o,o+=7));o=7-(e=e.slice(o)).length}else o-=r;for(;o--;)e+="0";n.d.push(+e),fu&&(n.e>n.constructor.maxE?(n.d=null,n.e=NaN):n.e<n.constructor.minE&&(n.e=0,n.d=[0]))}else n.e=0,n.d=[0];return n}function Gu(n,e){var t,o,r,i,a,s,l,d,u;if(e.indexOf("_")>-1){if(e=e.replace(/(\d)_(?=\d)/g,"$1"),Su.test(e))return Xu(n,e)}else if("Infinity"===e||"NaN"===e)return+e||(n.s=NaN),n.e=NaN,n.d=null,n;if(xu.test(e))t=16,e=e.toLowerCase();else if(Cu.test(e))t=2;else{if(!wu.test(e))throw Error(gu+e);t=8}for((i=e.search(/p/i))>0?(l=+e.slice(i+1),e=e.substring(2,i)):e=e.slice(2),a=(i=e.indexOf("."))>=0,o=n.constructor,a&&(i=(s=(e=e.replace(".","")).length)-i,r=Ru(o,new o(t),i,2*i)),i=u=(d=Iu(e,t,ku)).length-1;0===d[i];--i)d.pop();return i<0?new o(0*n.s):(n.e=Wu(d,u),n.d=d,fu=!1,a&&(n=Fu(n,r,4*s)),l&&(n=n.times(Math.abs(l)<54?yu(2,l):Dc.pow(2,l))),fu=!0,n)}function Zu(n,e,t,o,r){var i,a,s,l,d=n.precision,u=Math.ceil(d/7);for(fu=!1,l=t.times(t),s=new n(o);;){if(a=Fu(s.times(l),new n(e++*e++),d,1),s=r?o.plus(a):o.minus(a),o=Fu(a.times(l),new n(e++*e++),d,1),void 0!==(a=s.plus(o)).d[u]){for(i=u;a.d[i]===s.d[i]&&i--;);if(-1==i)break}i=s,s=o,o=a,a=i}return fu=!0,a.d.length=u+1,a}function qu(n,e){for(var t=n;--e;)t*=n;return t}function Ju(n,e){var t,o=e.s<0,r=Mu(n,n.precision,1),i=r.times(.5);if((e=e.abs()).lte(i))return au=o?4:1,e;if((t=e.divToInt(r)).isZero())au=o?3:2;else{if((e=e.minus(t.times(r))).lte(i))return au=ju(t)?o?2:3:o?4:1,e;au=ju(t)?o?1:4:o?3:2}return e.minus(r).abs()}function Qu(n,e,t,o){var r,i,a,s,l,d,u,c,p,f=n.constructor,h=void 0!==t;if(h?(Eu(t,1,lu),void 0===o?o=f.rounding:Eu(o,0,8)):(t=f.precision,o=f.rounding),n.isFinite()){for(h?(r=2,16==e?t=4*t-3:8==e&&(t=3*t-2)):r=e,(a=(u=Nu(n)).indexOf("."))>=0&&(u=u.replace(".",""),(p=new f(1)).e=u.length-a,p.d=Iu(Nu(p),10,r),p.e=p.d.length),i=l=(c=Iu(u,10,r)).length;0==c[--l];)c.pop();if(c[0]){if(a<0?i--:((n=new f(n)).d=c,n.e=i,c=(n=Fu(n,p,t,o,0,r)).d,i=n.e,d=iu),a=c[t],s=r/2,d=d||void 0!==c[t+1],d=o<4?(void 0!==a||d)&&(0===o||o===(n.s<0?3:2)):a>s||a===s&&(4===o||d||6===o&&1&c[t-1]||o===(n.s<0?8:7)),c.length=t,d)for(;++c[--t]>r-1;)c[t]=0,t||(++i,c.unshift(1));for(l=c.length;!c[l-1];--l);for(a=0,u="";a<l;a++)u+=du.charAt(c[a]);if(h){if(l>1)if(16==e||8==e){for(a=16==e?4:3,--l;l%a;l++)u+="0";for(l=(c=Iu(u,r,e)).length;!c[l-1];--l);for(a=1,u="1.";a<l;a++)u+=du.charAt(c[a])}else u=u.charAt(0)+"."+u.slice(1);u=u+(i<0?"p":"p+")+i}else if(i<0){for(;++i;)u="0"+u;u="0."+u}else if(++i>l)for(i-=l;i--;)u+="0";else i<l&&(u=u.slice(0,i)+"."+u.slice(i))}else u=h?"0p+0":"0";u=(16==e?"0x":2==e?"0b":8==e?"0o":"")+u}else u=Uu(n);return n.s<0?"-"+u:u}function Ku(n,e){if(n.length>e)return n.length=e,!0}function nc(n){return new this(n).abs()}function ec(n){return new this(n).acos()}function tc(n){return new this(n).acosh()}function oc(n,e){return new this(n).plus(e)}function rc(n){return new this(n).asin()}function ic(n){return new this(n).asinh()}function ac(n){return new this(n).atan()}function sc(n){return new this(n).atanh()}function lc(n,e){n=new this(n),e=new this(e);var t,o=this.precision,r=this.rounding,i=o+4;return n.s&&e.s?n.d||e.d?!e.d||n.isZero()?(t=e.s<0?Mu(this,o,r):new this(0)).s=n.s:!n.d||e.isZero()?(t=Mu(this,i,1).times(.5)).s=n.s:e.s<0?(this.precision=i,this.rounding=1,t=this.atan(Fu(n,e,i,1)),e=Mu(this,i,1),this.precision=o,this.rounding=r,t=n.s<0?t.minus(e):t.plus(e)):t=this.atan(Fu(n,e,i,1)):(t=Mu(this,i,1).times(e.s>0?.25:.75)).s=n.s:t=new this(NaN),t}function dc(n){return new this(n).cbrt()}function uc(n){return Hu(n=new this(n),n.e+1,2)}function cc(n,e,t){return new this(n).clamp(e,t)}function pc(n){if(!n||"object"!=typeof n)throw Error(hu+"Object expected");var e,t,o,r=!0===n.defaults,i=["precision",1,lu,"rounding",0,8,"toExpNeg",-su,0,"toExpPos",0,su,"maxE",0,su,"minE",-su,0,"modulo",0,9];for(e=0;e<i.length;e+=3)if(t=i[e],r&&(this[t]=pu[t]),void 0!==(o=n[t])){if(!(bu(o)===o&&o>=i[e+1]&&o<=i[e+2]))throw Error(gu+t+": "+o);this[t]=o}if(t="crypto",r&&(this[t]=pu[t]),void 0!==(o=n[t])){if(!0!==o&&!1!==o&&0!==o&&1!==o)throw Error(gu+t+": "+o);if(o){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(mu);this[t]=!0}else this[t]=!1}return this}function fc(n){return new this(n).cos()}function hc(n){return new this(n).cosh()}function gc(n,e){return new this(n).div(e)}function vc(n){return new this(n).exp()}function mc(n){return Hu(n=new this(n),n.e+1,3)}function Ac(){var n,e,t=new this(0);for(fu=!1,n=0;n<arguments.length;)if((e=new this(arguments[n++])).d)t.d&&(t=t.plus(e.times(e)));else{if(e.s)return fu=!0,new this(1/0);t=e}return fu=!0,t.sqrt()}function bc(n){return n instanceof Dc||n&&n.toStringTag===Au||!1}function yc(n){return new this(n).ln()}function Cc(n,e){return new this(n).log(e)}function xc(n){return new this(n).log(2)}function wc(n){return new this(n).log(10)}function Sc(){return Ou(this,arguments,-1)}function kc(){return Ou(this,arguments,1)}function _c(n,e){return new this(n).mod(e)}function Bc(n,e){return new this(n).mul(e)}function Pc(n,e){return new this(n).pow(e)}function Tc(n){var e,t,o,r,i=0,a=new this(1),s=[];if(void 0===n?n=this.precision:Eu(n,1,lu),o=Math.ceil(n/7),this.crypto)if(crypto.getRandomValues)for(e=crypto.getRandomValues(new Uint32Array(o));i<o;)(r=e[i])>=429e7?e[i]=crypto.getRandomValues(new Uint32Array(1))[0]:s[i++]=r%1e7;else{if(!crypto.randomBytes)throw Error(mu);for(e=crypto.randomBytes(o*=4);i<o;)(r=e[i]+(e[i+1]<<8)+(e[i+2]<<16)+((127&e[i+3])<<24))>=214e7?crypto.randomBytes(4).copy(e,i):(s.push(r%1e7),i+=4);i=o/4}else for(;i<o;)s[i++]=1e7*Math.random()|0;for(n%=7,(o=s[--i])&&n&&(r=yu(10,7-n),s[i]=(o/r|0)*r);0===s[i];i--)s.pop();if(i<0)t=0,s=[0];else{for(t=-1;0===s[0];t-=7)s.shift();for(o=1,r=s[0];r>=10;r/=10)o++;o<7&&(t-=7-o)}return a.e=t,a.d=s,a}function Ec(n){return Hu(n=new this(n),n.e+1,this.rounding)}function zc(n){return(n=new this(n)).d?n.d[0]?n.s:0*n.s:n.s||NaN}function Ic(n){return new this(n).sin()}function Fc(n){return new this(n).sinh()}function Hc(n){return new this(n).sqrt()}function Nc(n,e){return new this(n).sub(e)}function Wc(){var n=0,e=arguments,t=new this(e[n]);for(fu=!1;t.s&&++n<e.length;)t=t.plus(e[n]);return fu=!0,Hu(t,this.precision,this.rounding)}function $c(n){return new this(n).tan()}function Mc(n){return new this(n).tanh()}function Lc(n){return Hu(n=new this(n),n.e+1,1)}Pu[Symbol.for("nodejs.util.inspect.custom")]=Pu.toString,Pu[Symbol.toStringTag]="Decimal";var Dc=Pu.constructor=function n(e){var t,o,r;function i(n){var e,t,o,r=this;if(!(r instanceof i))return new i(n);if(r.constructor=i,bc(n))return r.s=n.s,void(fu?!n.d||n.e>i.maxE?(r.e=NaN,r.d=null):n.e<i.minE?(r.e=0,r.d=[0]):(r.e=n.e,r.d=n.d.slice()):(r.e=n.e,r.d=n.d?n.d.slice():n.d));if("number"===(o=typeof n)){if(0===n)return r.s=1/n<0?-1:1,r.e=0,void(r.d=[0]);if(n<0?(n=-n,r.s=-1):r.s=1,n===~~n&&n<1e7){for(e=0,t=n;t>=10;t/=10)e++;return void(fu?e>i.maxE?(r.e=NaN,r.d=null):e<i.minE?(r.e=0,r.d=[0]):(r.e=e,r.d=[n]):(r.e=e,r.d=[n]))}return 0*n!=0?(n||(r.s=NaN),r.e=NaN,void(r.d=null)):Xu(r,n.toString())}if("string"===o)return 45===(t=n.charCodeAt(0))?(n=n.slice(1),r.s=-1):(43===t&&(n=n.slice(1)),r.s=1),Su.test(n)?Xu(r,n):Gu(r,n);if("bigint"===o)return n<0?(n=-n,r.s=-1):r.s=1,Xu(r,n.toString());throw Error(gu+n)}if(i.prototype=Pu,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.EUCLID=9,i.config=i.set=pc,i.clone=n,i.isDecimal=bc,i.abs=nc,i.acos=ec,i.acosh=tc,i.add=oc,i.asin=rc,i.asinh=ic,i.atan=ac,i.atanh=sc,i.atan2=lc,i.cbrt=dc,i.ceil=uc,i.clamp=cc,i.cos=fc,i.cosh=hc,i.div=gc,i.exp=vc,i.floor=mc,i.hypot=Ac,i.ln=yc,i.log=Cc,i.log10=wc,i.log2=xc,i.max=Sc,i.min=kc,i.mod=_c,i.mul=Bc,i.pow=Pc,i.random=Tc,i.round=Ec,i.sign=zc,i.sin=Ic,i.sinh=Fc,i.sqrt=Hc,i.sub=Nc,i.sum=Wc,i.tan=$c,i.tanh=Mc,i.trunc=Lc,void 0===e&&(e={}),e&&!0!==e.defaults)for(r=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],t=0;t<r.length;)e.hasOwnProperty(o=r[t++])||(e[o]=this[o]);return i.config(e),i}(pu);uu=new Dc(uu),cu=new Dc(cu);var Rc={name:"arrow",enabled:!0,phase:"main",fn:function(n){var e,t=n.state,o=n.name,r=n.options,i=t.elements.arrow,a=t.modifiersData.popperOffsets,s=Va(t.placement),l=Ua(s),d=[Ta,Pa].indexOf(s)>=0?"height":"width";if(i&&a){var u=function(n,e){return Ga("number"!=typeof(n="function"==typeof n?n(Object.assign({},e.rects,{placement:e.placement})):n)?n:Za(n,za))}(r.padding,t),c=ba(i),p="y"===l?_a:Ta,f="y"===l?Ba:Pa,h=t.rects.reference[d]+t.rects.reference[l]-a[l]-t.rects.popper[d],g=a[l]-t.rects.reference[l],v=ka(i),m=v?"y"===l?v.clientHeight||0:v.clientWidth||0:0,A=h/2-g/2,b=u[p],y=m-c[d]-u[f],C=m/2-c[d]/2+A,x=vs(b,C,y),w=l;t.modifiersData[o]=((e={})[w]=x,e.centerOffset=x-C,e)}},effect:function(n){var e=n.state,t=n.options.element,o=void 0===t?"[data-popper-arrow]":t;null!=o&&("string"!=typeof o||(o=e.elements.popper.querySelector(o)))&&Da(e.elements.popper,o)&&(e.elements.arrow=o)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};const jc={directives:{domresize:Vo()},components:{},props:{value:{type:Number,default:0},valueMin:{type:Number,default:0},valueMax:{type:Number,default:100},valueStep:{type:Number,default:1},valueDecimal:{type:Number,default:0},progBorderRadius:{type:Number,default:5},progHeight:{type:Number,default:4},progColor:{type:String,default:"#74a4d9"},progColorDisabled:{type:String,default:"#c5c5c5"},progBackgroundColor:{type:String,default:"#eee"},progBackgroundColorDisabled:{type:String,default:"#f2f2f2"},sliderSize:{type:Number,default:20},sliderBackgroundColor:{type:String,default:"blue darken-3"},sliderBackgroundColorHover:{type:String,default:"blue darken-2"},sliderBackgroundColorDisabled:{type:String,default:"#aaa"},cmpZIndex:{type:Number,default:3e3},tooltipPlacementDist:{type:Number,default:5},tooltipBorderRadius:{type:Number,default:4},tooltipTextFontSize:{type:String,default:"0.85rem"},tooltipTextColor:{type:String,default:"white"},tooltipBackgroundColor:{type:String,default:"#666"},editable:{type:Boolean,default:!0}},data:function(){return{panelWidth:0,panelHeight:0,das:null,hoverTrans:!1,dragTrans:!1,popperInstance:null,popperShow:!1,r:null,rt:null}},mounted:function(){let n=this,e=function(n,e,t={}){let o=null,r=null,i=null,a=null,s=null,l=null,d=null,u=null,c=null,p=null,f=null,h=null,g=null,v=null,m=null,b=!1,y=an(t,"getHeighRatio",null);A(y)||(y=()=>1);let C=an(t,"getWidthRatio",null);A(C)||(C=()=>1);let x=an(t,"stopScrollPropagationForPanel",null);Dr(x)||(x=!1);let w=an(t,"stopTouchDragPropagationForPanel",null);Dr(w)||(w=!1);let S=an(t,"useTouchDragForPanel",null);Dr(S)||(S=!0);let k=n,_=e,B=jo();return o=n=>{let e=n.deltaY/Math.abs(n.deltaY),t=n.deltaX/Math.abs(n.deltaX);B.emit("scrollPanel",{ratioY:e,ratioX:t}),x&&zd(n)},k.addEventListener("wheel",o),r=n=>{if(S){let e=an(n,"touches.0.clientY",0),t=an(n,"touches.0.clientX",0),o=-e*y(),r=-t*C();b=!0,B.emit("pressBar",{clientY:o,clientX:r}),w&&zd(n)}},k.addEventListener("touchstart",r),i=n=>{if(S&&b){let e=an(n,"touches.0.clientY",0),t=an(n,"touches.0.clientX",0),o=-e*y(),r=-t*C();B.emit("dragBar",{clientY:o,clientX:r}),w&&zd(n)}},k.addEventListener("touchmove",i,{passive:!1}),a=n=>{S&&b&&(b=!1,B.emit("freeBar"),w&&zd(n))},k.addEventListener("touchend",a),s=n=>{b=!0,B.emit("pressBar",{clientY:n.clientY,clientX:n.clientX})},_.addEventListener("mousedown",s),l=n=>{b&&(b=!1,B.emit("freeBar"))},_.addEventListener("mouseup",l),d=n=>{b=!0,B.emit("pressBar",{clientY:n.touches[0].clientY,clientX:n.touches[0].clientX})},_.addEventListener("touchstart",d),u=n=>{b&&(B.emit("dragBar",{clientY:n.touches[0].clientY,clientX:n.touches[0].clientX}),zd(n))},_.addEventListener("touchmove",u,{passive:!1}),c=n=>{b&&(b=!1,B.emit("freeBar"))},_.addEventListener("touchend",c),p=n=>{b&&B.emit("dragBar",{clientY:n.clientY,clientX:n.clientX})},window.addEventListener("mousemove",p),f=n=>{b&&(b=!1,B.emit("freeBar"),x&&zd(n))},window.addEventListener("mouseup",f),h=n=>{},window.addEventListener("scroll",h,{passive:!1}),g=n=>{},window.addEventListener("wheel",g,{passive:!1}),v=n=>{},document.addEventListener("scroll",v,{passive:!1}),m=n=>{},document.addEventListener("wheel",m,{passive:!1}),B.clear=function(){k.removeEventListener("wheel",o),k.removeEventListener("touchstart",r),k.removeEventListener("touchmove",i),k.removeEventListener("touchend",a),_.removeEventListener("mousedown",s),_.removeEventListener("mouseup",l),_.removeEventListener("touchstart",d),_.removeEventListener("touchmove",u),_.removeEventListener("touchend",c),window.removeEventListener("mousemove",p),window.removeEventListener("mouseup",f),window.removeEventListener("scroll",h),window.removeEventListener("wheel",g),document.removeEventListener("scroll",v),document.removeEventListener("wheel",m)},B}(n.$refs.divPanel,n.$refs.divBar,{useTouchDragForPanel:!1});e.on("dragBar",n.dragBar),e.on("pressBar",n.pressBar),e.on("freeBar",n.freeBar),n.das=e},beforeDestroy:function(){let n=this;n.das&&n.das.clear()},computed:{changeParam:function(){let n=this,e=0;try{e=(n.value-n.valueMin)/(n.valueMax-n.valueMin)}catch(n){}e=n.limitRatio(e);let t=n.tickRatio(e);return n.r=e,n.rt=t,""},heightCir:function(){return this.sliderSize},widthCir:function(){return this.heightCir},effecting:function(){let n=this;if(!n.editable)return;let e=n.hoverTrans||n.dragTrans;return e?n.showPopper():(n.hidePopper(),n.r=n.rt),e},progWidth:function(){return this.panelWidth-this.sliderSize},useProgBorderRadius:function(){return`border-radius:${this.progBorderRadius}px;`},effProgColor:function(){return Br(this.progColor)},effProgColorDisabled:function(){return Br(this.progColorDisabled)},useProgColor:function(){let n=this;return n.editable?n.effProgColor:n.effProgColorDisabled},effProgBackgroundColor:function(){return Br(this.progBackgroundColor)},effProgBackgroundColorDisabled:function(){return Br(this.progBackgroundColorDisabled)},useProgBackgroundColor:function(){let n=this;return n.editable?n.effProgBackgroundColor:n.effProgBackgroundColorDisabled},effSliderBackgroundColor:function(){return Br(this.sliderBackgroundColor)},effSliderBackgroundColorHover:function(){return Br(this.sliderBackgroundColorHover)},effSliderBackgroundColorDisabled:function(){return Br(this.sliderBackgroundColorDisabled)},useSliderBackgroundColor:function(){let n=this;return n.editable?n.effecting?n.effSliderBackgroundColorHover:n.effSliderBackgroundColor:n.effSliderBackgroundColorDisabled},useTooltipBorderRadius:function(){let n=this;return jr(n.tooltipBorderRadius)?`border-radius:${n.tooltipBorderRadius}px;`:""},useTooltipTextFontSize:function(){let n=this.tooltipTextFontSize;return n=Pr(n,";",""),`font-size:${n};`},useTooltipTextColor:function(){return Br(this.tooltipTextColor)},useTooltipBackgroundColor:function(){return Br(this.tooltipBackgroundColor)},valueDig:function(){let n=this;return function(n,e=0){return Ut(n)&&Ms(e)?(n=Xt(n),Qt(n,e).toFixed(e)):""}(n.rt*(n.valueMax-n.valueMin)+n.valueMin,n.valueDecimal)}},methods:{resizePanel:function(n){this.panelWidth=n.snew.offsetWidth,this.panelHeight=n.snew.offsetHeight},limitRatio:function(n){return n=Math.min(n,1),n=Math.max(n,0)},tickRatio:function(n){let e=this,t=0;try{let o=e.valueMax-e.valueMin,r=e.valueStep/o;t=function(n,e=0,t={}){Ms(e)||(e=0),e=Kt(e);let o=an(t,"rounding","");return"ROUND_HALF_UP"!==o&&"ROUND_HALF_EVEN"!==o&&(o="ROUND_HALF_UP"),Ut(n)?new Dc(n).toDecimalPlaces(e,Dc[o]).toNumber():""}(n/r)*r}catch(n){}return t},dragBar:function(n){let e=this;if(!e.editable)return;let t=e.$el.getBoundingClientRect(),o=n.clientX-e.sliderSize/2,r=e.progWidth,i=0;r>0&&(i=(o-t.left)/r),i=e.limitRatio(i);let a=e.tickRatio(i);e.r=i,e.rt=a;let s=Xt(e.valueDig);e.updatePopper(),e.$emit("input",s)},pressBar:function(){this.dragTrans=!0},freeBar:function(){this.dragTrans=!1},showPopper:function(n){let e=this;if(!e.editable)return;let t=an(e,"$refs.divTrigger",null);if(null===t)return;let o=an(e,"$refs.divContent",null);if(null===o)return;let r={strategy:"fixed",placement:"top",modifiers:[Rc,{name:"arrow",options:{padding:5}},cs,{name:"flip",options:{fallbackPlacements:["top","top-start","top-end","bottom","bottom-start","bottom-end"]}},ps,{name:"offset",options:{offset:({placement:n,reference:t,popper:o})=>[0,e.tooltipPlacementDist]}},gs]};e.popperInstance=is(t,o,r)},updatePopper:function(n){let e=this;e.editable&&e.popperInstance&&e.popperInstance.update()},hidePopper:function(n){let e=this;e.popperInstance&&(e.popperInstance.destroy(),e.popperInstance=null)}}};var Oc=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{directives:[{name:"domresize",rawName:"v-domresize"}],style:"user-select:none;",attrs:{changeParam:n.changeParam},on:{domresize:n.resizePanel}},[t("div",{style:"position:relative; width:100%; height:"+n.sliderSize+"px;"},[t("div",{style:"position:absolute; top:"+(n.sliderSize/2-n.progHeight/2)+"px; left:"+n.sliderSize/2+"px; width:"+n.progWidth+"px;"},[t("div",{ref:"divPanel",style:"position:relative; width:"+n.progWidth+"px;",attrs:{_click:"clickProg"}},[t("div",{style:n.useProgBorderRadius+" overflow:hidden; width:"+n.progWidth+"px; height:"+n.progHeight+"px;"},[t("div",{style:"background:"+n.useProgBackgroundColor+"; height:"+n.progHeight+"px;"},[t("div",{style:"background:"+n.useProgColor+"; width:"+n.rt*n.progWidth+"px; height:"+n.progHeight+"px;"})])]),n._v(" "),t("div",{style:"position:absolute; left:"+(n.rt*n.progWidth-n.widthCir/2)+"px; top:"+(n.progHeight/2-n.heightCir/2)+"px; z-index:1; "+(n.editable?"cursor:pointer;":"")},[t("div",{ref:"divTrigger",staticClass:"ts bs",style:"width:"+n.widthCir+"px; height:"+n.heightCir+"px; border-radius:50%; background:"+n.useSliderBackgroundColor+"; outline:none;"})]),n._v(" "),t("div",{ref:"divBar",style:"position:absolute; left:"+(n.r*n.progWidth-n.widthCir/2)+"px; top:"+(n.progHeight/2-n.heightCir/2)+"px; z-index:2; "+(n.editable?"cursor:pointer;":"")},[t("div",{style:"width:"+n.widthCir+"px; height:"+n.heightCir+"px; border-radius:50%; opacity:0; outline:none;",on:{mouseenter:function(e){n.hoverTrans=!0},mouseleave:function(e){n.hoverTrans=!1}}})])])])]),n._v(" "),t("div",{directives:[{name:"show",rawName:"v-show",value:n.effecting,expression:"effecting"},{name:"domresize",rawName:"v-domresize"}],ref:"divContent",staticClass:"WPopperFix",style:"z-index:"+n.cmpZIndex+";",on:{domresize:n.updatePopper}},[t("div",{style:"padding:2px 5px; font-size:0.8rem; "+n.useTooltipTextFontSize+" color:"+n.useTooltipTextColor+"; background:"+n.useTooltipBackgroundColor+"; "+n.useTooltipBorderRadius},[n._v("\n "+n._s(n.valueDig)+"\n "),t("div",{staticClass:"arrow",attrs:{"data-popper-arrow":""}})])])])};Oc._withStripped=!0;const Vc={components:{WGroupChipRadio:Od,WPanelLabelItem:Ud,WText:ru,WSlider:Xr({render:Oc,staticRenderFns:[]},function(n){n&&n("data-v-062a5ce9_0",{source:"\n.ts[data-v-062a5ce9] {\r\n transition:all 0.3s;\n}\n.bs[data-v-062a5ce9] {\r\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\n}\n.WPopperFix[data-popper-reference-hidden][data-v-062a5ce9] {\r\n visibility: hidden;\r\n pointer-events: none;\n}\n.arrow[data-v-062a5ce9],\r\n.arrow[data-v-062a5ce9]::before {\r\n position: absolute;\r\n width: 5px;\r\n height: 5px;\r\n background: inherit;\n}\n.arrow[data-v-062a5ce9] {\r\n visibility: hidden;\n}\n.arrow[data-v-062a5ce9]::before {\r\n visibility: visible;\r\n content: '';\r\n transform: rotate(45deg);\n}\r\n/* .arrow::after {\r\n content: \"\";\r\n position: absolute;\r\n top: 100%;\r\n left: 50%;\r\n margin-left: -5px;\r\n border-width: 5px;\r\n border-style: solid;\r\n border-color: black transparent transparent transparent;\r\n} */\r\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\node_modules\\w-component-vue\\src\\components\\WSlider.vue"],names:[],mappings:";AA6qBA;IACA,mBAAA;AACA;AACA;IACA,kHAAA;AACA;AACA;IACA,kBAAA;IACA,oBAAA;AACA;AACA;;IAEA,kBAAA;IACA,UAAA;IACA,WAAA;IACA,mBAAA;AACA;AACA;IACA,kBAAA;AACA;AACA;IACA,mBAAA;IACA,WAAA;IACA,wBAAA;AACA;AACA;;;;;;;;;GASA",file:"WSlider.vue",sourcesContent:["<template>\r\n <div\r\n :style=\"`user-select:none;`\"\r\n :changeParam=\"changeParam\"\r\n v-domresize\r\n @domresize=\"resizePanel\"\r\n >\r\n\r\n <div\r\n :style=\"`position:relative; width:100%; height:${sliderSize}px;`\"\r\n >\r\n\r\n <div :style=\"`position:absolute; top:${sliderSize/2-progHeight/2}px; left:${sliderSize/2}px; width:${progWidth}px;`\">\r\n\r\n <div\r\n ref=\"divPanel\"\r\n :style=\"`position:relative; width:${progWidth}px;`\"\r\n _click=\"clickProg\"\r\n >\r\n\r\n <div :style=\"`${useProgBorderRadius} overflow:hidden; width:${progWidth}px; height:${progHeight}px;`\">\r\n <div :style=\"`background:${useProgBackgroundColor}; height:${progHeight}px;`\">\r\n <div :style=\"`background:${useProgColor}; width:${(rt)*progWidth}px; height:${progHeight}px;`\"></div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n :style=\"`position:absolute; left:${(rt)*progWidth-widthCir/2}px; top:${progHeight/2-heightCir/2}px; z-index:1; ${editable?'cursor:pointer;':''}`\"\r\n >\r\n\r\n <div\r\n ref=\"divTrigger\"\r\n class=\"ts bs\"\r\n :style=\"`width:${widthCir}px; height:${heightCir}px; border-radius:50%; background:${useSliderBackgroundColor}; outline:none;`\"\r\n ></div>\r\n\r\n </div>\r\n\r\n <div\r\n ref=\"divBar\"\r\n :style=\"`position:absolute; left:${(r)*progWidth-widthCir/2}px; top:${progHeight/2-heightCir/2}px; z-index:2; ${editable?'cursor:pointer;':''}`\"\r\n >\r\n\r\n <div\r\n :style=\"`width:${widthCir}px; height:${heightCir}px; border-radius:50%; opacity:0; outline:none;`\"\r\n @mouseenter=\"hoverTrans=true\"\r\n @mouseleave=\"hoverTrans=false\"\r\n ></div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n \x3c!-- 不能給予position因會被popupjs洗掉, 但可給z-index, 且popupjs會改用transform:translate定位 --\x3e\r\n \x3c!-- 若使用minWidth, 會使popupjs重算給予minWidth用以自動撐開彈窗寬度失效, 若於其內slot外添加div給予minWidth, 亦會使popupjs給予minWidth機制失效, 待研究 --\x3e\r\n <div\r\n ref=\"divContent\"\r\n class=\"WPopperFix\"\r\n :style=\"`z-index:${cmpZIndex};`\"\r\n v-show=\"effecting\"\r\n v-domresize\r\n @domresize=\"updatePopper\"\r\n >\r\n \x3c!-- 不使用v-if來重產dom, 因開啟arrow會有顯示後來不及定位問題 --\x3e\r\n <div\r\n :style=\"`padding:2px 5px; font-size:0.8rem; ${useTooltipTextFontSize} color:${useTooltipTextColor}; background:${useTooltipBackgroundColor}; ${useTooltipBorderRadius}`\"\r\n >\r\n {{valueDig}}\r\n <div class=\"arrow\" data-popper-arrow></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport get from 'lodash-es/get.js'\r\nimport isNumber from 'lodash-es/isNumber.js'\r\nimport dig from 'wsemi/src/dig.mjs'\r\nimport round from 'wsemi/src/round.mjs'\r\nimport cdbl from 'wsemi/src/cdbl.mjs'\r\nimport replace from 'wsemi/src/replace.mjs'\r\nimport domDragBarAndScroll from 'wsemi/src/domDragBarAndScroll.mjs'\r\nimport domResize from '../js/domResize.mjs'\r\nimport convertColor from '../js/convertColor.mjs'\r\nimport { createPopper } from '@popperjs/core/lib/popper-lite.js' //不用安裝@popperjs/core, 因wsemi安裝tippy.js內有依賴@popperjs/core\r\nimport flip from '@popperjs/core/lib/modifiers/flip.js'\r\nimport offset from '@popperjs/core/lib/modifiers/offset.js'\r\nimport arrow from '@popperjs/core/lib/modifiers/arrow.js'\r\nimport hide from '@popperjs/core/lib/modifiers/hide.js'\r\n//import preventOverflow from '@popperjs/core/lib/modifiers/preventOverflow.js'\r\n//import computeStyles from '@popperjs/core/lib/modifiers/computeStyles'\r\n\r\n\r\n/**\r\n * @vue-prop {Number} [value=0] 輸入值數字,介於valueMin與valueMax之間,預設0\r\n * @vue-prop {Number} [valueMin=0] 輸入最小值數字,預設0\r\n * @vue-prop {Number} [valueMax=100] 輸入最大值數字,預設100\r\n * @vue-prop {Number} [valueStep=1] 輸入間隔數字,預設1\r\n * @vue-prop {Number} [valueDecimal=0] 輸入值取小數位數字,用於可拖選值具有小數時,預設0\r\n * @vue-prop {Number} [progBorderRadius=5] 輸入值域條框圓角度數字,單位為px,預設5\r\n * @vue-prop {Number} [progHeight=4] 輸入值域條高度數字,單位為px,預設4\r\n * @vue-prop {String} [progColor='#74a4d9'] 輸入值域條顏色字串,預設'#74a4d9'\r\n * @vue-prop {String} [progColorDisabled='#c5c5c5'] 輸入不可編輯時值域條顏色字串,預設'#c5c5c5'\r\n * @vue-prop {String} [progBackgroundColor='#eee'] 輸入值域條背景顏色字串,預設'#eee'\r\n * @vue-prop {String} [progBackgroundColorDisabled='#f2f2f2'] 輸入不可編輯時值域條背景顏色字串,預設'#f2f2f2'\r\n * @vue-prop {Number} [sliderSize=20] 輸入拖曳球尺寸數字,單位為px,預設20\r\n * @vue-prop {String} [sliderBackgroundColor='blue darken-3'] 輸入拖曳球背景顏色字串,預設'blue darken-3'\r\n * @vue-prop {String} [sliderBackgroundColorHover='blue darken-2'] 輸入滑鼠移入時拖曳球背景顏色字串,預設'blue darken-2'\r\n * @vue-prop {String} [sliderBackgroundColorDisabled='#aaa'] 輸入不可編輯時拖曳球背景顏色字串,預設'#aaa'\r\n * @vue-prop {Number} [cmpZIndex=3000] 輸入提示窗使用z-index數字,預設3000\r\n * @vue-prop {Number} [tooltipPlacementDist=5] 輸入提示窗距離觸發元素距離數字,單位為px,預設5\r\n * @vue-prop {Number} [tooltipBorderRadius=5] 輸入提示窗框圓角度數字,單位為px,預設4\r\n * @vue-prop {String} [tooltipTextFontSize='0.85rem'] 輸入提示窗框文字字型大小字串,預設'0.85rem'\r\n * @vue-prop {String} [tooltipTextColor='white'] 輸入提示窗框文字顏色字串,預設'white'\r\n * @vue-prop {String} [tooltipBackgroundColor='#666'] 輸入值域條背景顏色字串,預設'#666'\r\n * @vue-prop {Boolean} [editable=true] 輸入是否為編輯模式布林值,預設true\r\n */\r\nexport default {\r\n directives: {\r\n domresize: domResize(),\r\n },\r\n components: {\r\n },\r\n props: {\r\n value: {\r\n type: Number,\r\n default: 0,\r\n },\r\n valueMin: {\r\n type: Number,\r\n default: 0,\r\n },\r\n valueMax: {\r\n type: Number,\r\n default: 100,\r\n },\r\n valueStep: {\r\n type: Number,\r\n default: 1,\r\n },\r\n valueDecimal: {\r\n type: Number,\r\n default: 0,\r\n },\r\n progBorderRadius: {\r\n type: Number,\r\n default: 5,\r\n },\r\n progHeight: {\r\n type: Number,\r\n default: 4,\r\n },\r\n progColor: {\r\n type: String,\r\n default: '#74a4d9',\r\n },\r\n progColorDisabled: {\r\n type: String,\r\n default: '#c5c5c5',\r\n },\r\n progBackgroundColor: {\r\n type: String,\r\n default: '#eee',\r\n },\r\n progBackgroundColorDisabled: {\r\n type: String,\r\n default: '#f2f2f2',\r\n },\r\n sliderSize: {\r\n type: Number,\r\n default: 20,\r\n },\r\n sliderBackgroundColor: {\r\n type: String,\r\n default: 'blue darken-3',\r\n },\r\n sliderBackgroundColorHover: {\r\n type: String,\r\n default: 'blue darken-2',\r\n },\r\n sliderBackgroundColorDisabled: {\r\n type: String,\r\n default: '#aaa',\r\n },\r\n cmpZIndex: {\r\n type: Number,\r\n default: 3000,\r\n },\r\n tooltipPlacementDist: {\r\n type: Number,\r\n default: 5,\r\n },\r\n tooltipBorderRadius: {\r\n type: Number,\r\n default: 4,\r\n },\r\n tooltipTextFontSize: {\r\n type: String,\r\n default: '0.85rem',\r\n },\r\n tooltipTextColor: {\r\n type: String,\r\n default: 'white',\r\n },\r\n tooltipBackgroundColor: {\r\n type: String,\r\n default: '#666', //rgba(60,60,60,0.75) //因arrow是通過div與旋轉成菱形來繪製, 因此可支援外部指定背景色, 但若有透明就會出現arrow的菱形問題\r\n },\r\n editable: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n },\r\n data: function() {\r\n return {\r\n\r\n panelWidth: 0,\r\n panelHeight: 0,\r\n\r\n das: null,\r\n\r\n hoverTrans: false,\r\n dragTrans: false,\r\n\r\n popperInstance: null,\r\n popperShow: false,\r\n\r\n r: null,\r\n rt: null,\r\n\r\n }\r\n },\r\n mounted: function() {\r\n //console.log('mounted')\r\n\r\n let vo = this\r\n\r\n //das\r\n let das = domDragBarAndScroll(vo.$refs.divPanel, vo.$refs.divBar, { useTouchDragForPanel: false })\r\n das.on('dragBar', vo.dragBar)\r\n das.on('pressBar', vo.pressBar)\r\n das.on('freeBar', vo.freeBar)\r\n\r\n //save\r\n vo.das = das\r\n\r\n },\r\n beforeDestroy: function() {\r\n //console.log('beforeDestroy')\r\n\r\n let vo = this\r\n\r\n //clear\r\n if (vo.das) {\r\n vo.das.clear()\r\n }\r\n\r\n },\r\n computed: {\r\n\r\n changeParam: function() {\r\n // console.log('computed changeParam')\r\n\r\n let vo = this\r\n\r\n //ratio\r\n let r = 0\r\n try {\r\n r = (vo.value - vo.valueMin) / (vo.valueMax - vo.valueMin)\r\n }\r\n catch (err) {}\r\n\r\n //limitRatio\r\n r = vo.limitRatio(r)\r\n\r\n //rt\r\n let rt = vo.tickRatio(r)\r\n\r\n //save\r\n vo.r = r\r\n vo.rt = rt\r\n\r\n return ''\r\n },\r\n\r\n heightCir: function() {\r\n let vo = this\r\n return vo.sliderSize\r\n },\r\n\r\n widthCir: function() {\r\n let vo = this\r\n return vo.heightCir\r\n },\r\n\r\n effecting: function() {\r\n //console.log('computed effecting')\r\n\r\n let vo = this\r\n\r\n //check\r\n if (!vo.editable) {\r\n return\r\n }\r\n\r\n //b\r\n let b = vo.hoverTrans || vo.dragTrans\r\n\r\n if (b) {\r\n\r\n //showPopper\r\n vo.showPopper()\r\n\r\n }\r\n else {\r\n\r\n //hidePopper\r\n vo.hidePopper()\r\n\r\n //同步\r\n vo.r = vo.rt\r\n\r\n }\r\n\r\n return b\r\n },\r\n\r\n progWidth: function() {\r\n let vo = this\r\n return vo.panelWidth - vo.sliderSize\r\n },\r\n\r\n useProgBorderRadius: function() {\r\n let vo = this\r\n return `border-radius:${vo.progBorderRadius}px;`\r\n },\r\n\r\n effProgColor: function() {\r\n let vo = this\r\n return convertColor(vo.progColor)\r\n },\r\n\r\n effProgColorDisabled: function() {\r\n let vo = this\r\n return convertColor(vo.progColorDisabled)\r\n },\r\n\r\n useProgColor: function() {\r\n let vo = this\r\n if (!vo.editable) {\r\n return vo.effProgColorDisabled\r\n }\r\n return vo.effProgColor\r\n },\r\n\r\n effProgBackgroundColor: function() {\r\n let vo = this\r\n return convertColor(vo.progBackgroundColor)\r\n },\r\n\r\n effProgBackgroundColorDisabled: function() {\r\n let vo = this\r\n return convertColor(vo.progBackgroundColorDisabled)\r\n },\r\n\r\n useProgBackgroundColor: function() {\r\n let vo = this\r\n if (!vo.editable) {\r\n return vo.effProgBackgroundColorDisabled\r\n }\r\n return vo.effProgBackgroundColor\r\n },\r\n\r\n effSliderBackgroundColor: function() {\r\n let vo = this\r\n return convertColor(vo.sliderBackgroundColor)\r\n },\r\n\r\n effSliderBackgroundColorHover: function() {\r\n let vo = this\r\n return convertColor(vo.sliderBackgroundColorHover)\r\n },\r\n\r\n effSliderBackgroundColorDisabled: function() {\r\n let vo = this\r\n return convertColor(vo.sliderBackgroundColorDisabled)\r\n },\r\n\r\n useSliderBackgroundColor: function() {\r\n let vo = this\r\n if (!vo.editable) {\r\n return vo.effSliderBackgroundColorDisabled\r\n }\r\n if (vo.effecting) {\r\n return vo.effSliderBackgroundColorHover\r\n }\r\n return vo.effSliderBackgroundColor\r\n },\r\n\r\n useTooltipBorderRadius: function() {\r\n //console.log('computed useTooltipBorderRadius')\r\n\r\n let vo = this\r\n\r\n if (isNumber(vo.tooltipBorderRadius)) {\r\n return `border-radius:${vo.tooltipBorderRadius}px;`\r\n }\r\n return ''\r\n },\r\n\r\n useTooltipTextFontSize: function() {\r\n let vo = this\r\n let s = vo.tooltipTextFontSize\r\n s = replace(s, ';', '')\r\n return `font-size:${s};`\r\n },\r\n\r\n useTooltipTextColor: function() {\r\n //console.log('computed useTooltipTextColor')\r\n\r\n let vo = this\r\n\r\n return convertColor(vo.tooltipTextColor)\r\n },\r\n\r\n useTooltipBackgroundColor: function() {\r\n //console.log('computed useTooltipBackgroundColor')\r\n\r\n let vo = this\r\n\r\n return convertColor(vo.tooltipBackgroundColor)\r\n },\r\n\r\n valueDig: function() {\r\n // console.log('computed valueDig')\r\n\r\n let vo = this\r\n\r\n //t\r\n let t = (vo.rt) * (vo.valueMax - vo.valueMin) + vo.valueMin\r\n\r\n //dig\r\n let c = dig(t, vo.valueDecimal)\r\n\r\n return c\r\n },\r\n\r\n },\r\n methods: {\r\n\r\n resizePanel: function(msg) {\r\n //console.log('methods resizePanel', msg)\r\n\r\n let vo = this\r\n\r\n //update\r\n vo.panelWidth = msg.snew.offsetWidth\r\n vo.panelHeight = msg.snew.offsetHeight\r\n\r\n // //emit\r\n // vo.$emit('resize', msg)\r\n\r\n },\r\n\r\n limitRatio: function(r) {\r\n // console.log('methods limitRatio', r)\r\n\r\n // let vo = this\r\n\r\n r = Math.min(r, 1)\r\n r = Math.max(r, 0)\r\n\r\n return r\r\n },\r\n\r\n tickRatio: function(r) {\r\n // console.log('methods tickRatio', r)\r\n\r\n let vo = this\r\n\r\n //rt\r\n let rt = 0\r\n try {\r\n\r\n //rtk\r\n let rng = vo.valueMax - vo.valueMin\r\n let rtk = vo.valueStep / rng\r\n\r\n //round\r\n let i = round(r / rtk)\r\n\r\n //rt\r\n rt = i * rtk\r\n // console.log('r', r, 'rt', rt)\r\n\r\n }\r\n catch (err) { }\r\n\r\n\r\n return rt\r\n },\r\n\r\n dragBar: function(msg) {\r\n // console.log('methods dragBar', msg)\r\n\r\n let vo = this\r\n\r\n //check\r\n if (!vo.editable) {\r\n return\r\n }\r\n\r\n //r\r\n let bd = vo.$el.getBoundingClientRect()\r\n let x = msg.clientX - vo.sliderSize / 2\r\n let w = vo.progWidth //vo.$el.offsetWidth\r\n let r = 0\r\n if (w > 0) {\r\n r = (x - bd.left) / w //clientX需扣除元件的left位置\r\n }\r\n\r\n //limitRatio\r\n r = vo.limitRatio(r)\r\n // console.log(vo.r, 'r', r)\r\n\r\n //rt\r\n let rt = vo.tickRatio(r)\r\n\r\n //save\r\n vo.r = r\r\n vo.rt = rt\r\n\r\n //v\r\n let v = cdbl(vo.valueDig)\r\n\r\n //updatePopper\r\n vo.updatePopper()\r\n\r\n //emit\r\n vo.$emit('input', v)\r\n\r\n },\r\n\r\n pressBar: function() {\r\n let vo = this\r\n vo.dragTrans = true\r\n },\r\n\r\n freeBar: function() {\r\n let vo = this\r\n vo.dragTrans = false\r\n },\r\n\r\n showPopper: function(from) {\r\n // console.log('methods showPopper', from)\r\n\r\n let vo = this\r\n\r\n //check\r\n if (!vo.editable) {\r\n return\r\n }\r\n\r\n //divTrigger\r\n let divTrigger = get(vo, '$refs.divTrigger', null)\r\n if (divTrigger === null) {\r\n return //console.log('無法找到點擊區元素')\r\n }\r\n\r\n //divContent\r\n let divContent = get(vo, '$refs.divContent', null)\r\n\r\n //check\r\n if (divContent === null) {\r\n return //console.log('無法找到顯示元素')\r\n }\r\n\r\n //@popperjs/core 2.x\r\n let opt = {\r\n strategy: 'fixed', //盡量使用'fixed'而不用'absolute', 否則位於多層dialog或多層drawer內popup顯示會異常\r\n placement: 'top', //預設top, 因arrow不好給故僅提供top\r\n modifiers: [\r\n // preventOverflow,\r\n // computeStyles,\r\n // {\r\n // name: 'computeStyles',\r\n // options: {\r\n // gpuAcceleration: false, //預設true, 可關閉GPU加速\r\n // },\r\n // },\r\n arrow,\r\n {\r\n name: 'arrow',\r\n options: {\r\n padding: 5,\r\n },\r\n },\r\n flip,\r\n {\r\n name: 'flip',\r\n options: {\r\n fallbackPlacements: ['top', 'top-start', 'top-end', 'bottom', 'bottom-start', 'bottom-end'],\r\n },\r\n },\r\n offset,\r\n {\r\n name: 'offset',\r\n options: {\r\n // offset: [0, vo.tooltipPlacementDist], //[Skidding, Distance]\r\n // offset: [0, 5], //因popperjs會自動調位置, 故得通過callback函數處理指定位置時的偏移量\r\n offset: ({ placement, reference, popper }) => {\r\n // console.log('offset', placement, reference, popper, vo.tooltipPlacementDist)\r\n // if (placement === 'bottom-start' || placement === 'bottom' || placement === 'bottom-end') {\r\n // return [0, vo.tooltipPlacementDist]\r\n // }\r\n // else if (placement === 'top-start' || placement === 'top' || placement === 'top-end') {\r\n // return [0, vo.tooltipPlacementDist]\r\n // }\r\n // else if (placement === 'left-start' || placement === 'left' || placement === 'left-end') {\r\n // return [0, vo.tooltipPlacementDist]\r\n // }\r\n // else if (placement === 'right-start' || placement === 'right' || placement === 'right-end') {\r\n // return [0, vo.tooltipPlacementDist]\r\n // }\r\n // else {\r\n // return []\r\n // }\r\n return [0, vo.tooltipPlacementDist] //[Skidding, Distance]\r\n },\r\n },\r\n },\r\n hide,\r\n ],\r\n }\r\n vo.popperInstance = createPopper(divTrigger, divContent, opt)\r\n // console.log('popperInstance', vo.popperInstance)\r\n\r\n },\r\n\r\n updatePopper: function(msg) {\r\n //console.log('methods updatePopper', msg)\r\n\r\n let vo = this\r\n\r\n //check\r\n if (!vo.editable) {\r\n return\r\n }\r\n\r\n //update\r\n if (vo.popperInstance) {\r\n vo.popperInstance.update()\r\n }\r\n\r\n // //emit\r\n // vo.$emit('resize', msg)\r\n\r\n },\r\n\r\n hidePopper: function(from) {\r\n // console.log('methods hidePopper', from, this.mmkey)\r\n\r\n let vo = this\r\n\r\n //check\r\n if (vo.popperInstance) {\r\n\r\n //destroy\r\n vo.popperInstance.destroy()\r\n vo.popperInstance = null\r\n\r\n }\r\n\r\n },\r\n\r\n },\r\n}\r\n<\/script>\r\n\r\n<style scoped>\r\n.ts {\r\n transition:all 0.3s;\r\n}\r\n.bs {\r\n box-shadow: 0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%);\r\n}\r\n.WPopperFix[data-popper-reference-hidden] {\r\n visibility: hidden;\r\n pointer-events: none;\r\n}\r\n.arrow,\r\n.arrow::before {\r\n position: absolute;\r\n width: 5px;\r\n height: 5px;\r\n background: inherit;\r\n}\r\n.arrow {\r\n visibility: hidden;\r\n}\r\n.arrow::before {\r\n visibility: visible;\r\n content: '';\r\n transform: rotate(45deg);\r\n}\r\n/* .arrow::after {\r\n content: \"\";\r\n position: absolute;\r\n top: 100%;\r\n left: 50%;\r\n margin-left: -5px;\r\n border-width: 5px;\r\n border-style: solid;\r\n border-color: black transparent transparent transparent;\r\n} */\r\n</style>\r\n"]},media:void 0})},jc,"data-v-062a5ce9",false,void 0,!1,Zr,void 0,void 0)},props:{value:{type:String,default:"#FFFFFF"},size:{type:Number,default:200},borderColor:{type:String,default:"#ddd"},borderColorHover:{type:String,default:"#ccc"},borderColorActive:{type:String,default:"#777"},backgroundColor:{type:String,default:"transparent"},menuBorderRadius:{type:Number,default:4},menuBackgroundColor:{type:String,default:"#fff"},menuBackgroundColorHover:{type:String,default:"#f9f9f9"},menuBackgroundColorActive:{type:String,default:"#f2f2f2"},menuTextColor:{type:String,default:"#444"},menuTextColorHover:{type:String,default:"#222"},menuTextColorActive:{type:String,default:"#000"},menuTextFontSize:{type:String,default:"0.8rem"},inputBorderRadius:{type:Number,default:4},inputBorderColor:{type:String,default:"#ccc"},inputBorderColorHover:{type:String,default:"#b5b5b5"},inputBorderColorActive:{type:String,default:"#aaa"},inputBackgroundColor:{type:String,default:"#fff"},inputBackgroundColorHover:{type:String,default:"#fafafa"},inputBackgroundColorActive:{type:String,default:"#f2f2f2"},inputTextColor:{type:String,default:"#000"},inputTextFontSize:{type:String,default:"0.8rem"},inputTextWidth:{type:Number,default:38},inputTextHeight:{type:Number,default:18},inputLabelWidth:{type:Number,default:12},inputLabelColor:{type:String,default:"#666"},inputLabelFontSize:{type:String,default:"0.8rem"},barProgHeight:{type:Number,default:4},barProgColor:{type:String,default:"#74a4d9"},barProgBackgroundColor:{type:String,default:"#eee"},barSliderSize:{type:Number,default:10},barSliderBackgroundColor:{type:String,default:"#1565C0"},barSliderBackgroundColorHover:{type:String,default:"#1976D2"}},data:function(){return{methods:[{text:"RGBA"},{text:"HSVA"}],methodSelect:{text:"RGBA"},lock:!1,valueTrans:null,r:255,g:255,b:255,h:360,s:1,v:1,a:1,rt:255,gt:255,bt:255,ht:360,st:1,vt:1,at:1}},computed:{changeValue:function(){let n=this;n.valueTrans=Br(n.value);let e=Ul.toRgba(n.valueTrans),t=Ul.toHsva(n.valueTrans);return n.r=e.r,n.rt=e.r,n.g=e.g,n.gt=e.g,n.b=e.b,n.bt=e.b,n.a=e.a,n.at=e.a,n.h=t.h,n.ht=t.h,n.s=t.s,n.st=t.s,n.v=t.v,n.vt=t.v,""},sliderWidth:function(){let n=this,e=n.size-n.inputTextWidth-n.inputLabelWidth-13;return e=Math.max(e,0),e},useBorderColor:function(){return Br(this.borderColor)},useBackgroundColor:function(){return Br(this.backgroundColor)}},methods:{cki255:function(n){if(!Ms(n))return 0;let e=n;return(n=Kt(n))<0?n=0:n>255&&(n=255),n===Kt(e)?e:n},cki360:function(n){if(!Ms(n))return 0;let e=n;return(n=Kt(n))<0?n=0:n>360&&(n=360),n===Kt(e)?e:n},ckd1:function(n){if(!Td(n))return 0;let e=n;return(n=Xt(n))<0?n=0:n>1&&(n=1),n===Xt(e)?e:n},updateColorCore:function(){let n=this,e=!1,t=!1;{let t=Kt(n.rt);n.r!==t&&(n.r=t,e=!0)}{let t=Kt(n.gt);n.g!==t&&(n.g=t,e=!0)}{let t=Kt(n.bt);n.b!==t&&(n.b=t,e=!0)}{let t=Xt(n.at);n.a!==t&&(n.a=t,e=!0)}{let e=Kt(n.ht);n.h!==e&&(n.h=e,t=!0)}{let e=Xt(n.st);n.s!==e&&(n.s=e,t=!0)}{let e=Xt(n.vt);n.v!==e&&(n.v=e,t=!0)}let o=null;e?o={r:n.r,g:n.g,b:n.b,a:n.a}:t&&(o={h:n.h,s:n.s,v:n.v,a:n.a}),Tr(o)&&(o=Ul.toRgbaString(o),n.valueTrans=o,n.$emit("input",o))},updateColor:function(n,e,t){let o=this;setTimeout(()=>{o.updateColorCore()},1)}}};var Yc=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:"display:inline-block;",attrs:{changeValue:n.changeValue}},[t("div",{style:"padding-left:10px; margin-bottom:-1px;"},[t("WGroupChipRadio",{attrs:{items:n.methods,paddingStyle:{v:1,h:6},group:!0,groupBorderRadiusStyle:{top:!0},groupShift:0,borderRadius:n.menuBorderRadius,borderColor:n.borderColor,borderColorHover:n.borderColorHover,borderColorActive:n.borderColorActive,backgroundColor:n.menuBackgroundColor,backgroundColorHover:n.menuBackgroundColorHover,backgroundColorActive:n.menuBackgroundColorActive,textColor:n.menuTextColor,textColorHover:n.menuTextColorHover,textColorActive:n.menuTextColorActive,textFontSize:n.menuTextFontSize,marginStyle:{},shadowActive:!1},model:{value:n.methodSelect,callback:function(e){n.methodSelect=e},expression:"methodSelect"}})],1),n._v(" "),t("div",{style:"padding:10px; border:1px solid "+n.useBorderColor+"; background:"+n.useBackgroundColor+";"},[t("div",{directives:[{name:"show",rawName:"v-show",value:"RGBA"===n.methodSelect.text,expression:"methodSelect.text==='RGBA'"}]},[t("WPanelLabelItem",{attrs:{label:"R",labelFontSize:n.inputLabelFontSize,labelWidth:n.inputLabelWidth,labelColor:n.inputLabelColor},scopedSlots:n._u([{key:"item",fn:function(){return[t("div",{staticStyle:{display:"flex","align-items":"center"}},[t("WText",{style:"width:"+n.inputTextWidth+"px;",attrs:{funVerify:n.cki255,shadow:!1,bottomLineBorderColor:"transparent",bottomLineBorderColorHover:"transparent",bottomLineBorderColorFocus:"transparent",paddingStyle:{v:0,h:5},iconShiftOuter:-10,borderRadius:n.inputBorderRadius,borderColor:n.inputBorderColor,borderColorHover:n.inputBorderColorHover,borderColorFocus:n.inputBorderColorActive,backgroundColor:n.inputBackgroundColor,backgroundColorHover:n.inputBackgroundColorHover,backgroundColorFocus:n.inputBackgroundColorActive,textColor:n.inputTextColor,textFontSize:n.inputTextFontSize,height:n.inputTextHeight},on:{input:function(e,t){n.updateColor(e,t,"r")}},model:{value:n.rt,callback:function(e){n.rt=e},expression:"rt"}}),n._v(" "),t("div",{staticStyle:{"padding-left":"5px"}}),n._v(" "),t("WSlider",{style:"width:"+n.sliderWidth+"px;",attrs:{progHeight:n.barProgHeight,progColor:n.barProgColor,progBackgroundColor:n.barProgBackgroundColor,sliderSize:n.barSliderSize,sliderBackgroundColor:n.barSliderBackgroundColor,sliderBackgroundColorHover:n.barSliderBackgroundColorHover,valueMin:0,valueMax:255,valueStep:1,valueDecimal:0,value:n.r},on:{input:function(e){n.rt=e,n.updateColor(e,"","rs")}}})],1)]},proxy:!0}])}),n._v(" "),t("div",{staticStyle:{height:"10px"}}),n._v(" "),t("WPanelLabelItem",{attrs:{label:"G",labelFontSize:n.inputLabelFontSize,labelWidth:n.inputLabelWidth,labelColor:n.inputLabelColor},scopedSlots:n._u([{key:"item",fn:function(){return[t("div",{staticStyle:{display:"flex","align-items":"center"}},[t("WText",{style:"width:"+n.inputTextWidth+"px;",attrs:{funVerify:n.cki255,shadow:!1,bottomLineBorderColor:"transparent",bottomLineBorderColorHover:"transparent",bottomLineBorderColorFocus:"transparent",paddingStyle:{v:0,h:5},iconShiftOuter:-10,borderRadius:n.inputBorderRadius,borderColor:n.inputBorderColor,borderColorHover:n.inputBorderColorHover,borderColorFocus:n.inputBorderColorActive,backgroundColor:n.inputBackgroundColor,backgroundColorHover:n.inputBackgroundColorHover,backgroundColorFocus:n.inputBackgroundColorActive,textColor:n.inputTextColor,textFontSize:n.inputTextFontSize,height:n.inputTextHeight},on:{input:function(e,t){n.updateColor(e,t,"g")}},model:{value:n.gt,callback:function(e){n.gt=e},expression:"gt"}}),n._v(" "),t("div",{staticStyle:{"padding-left":"5px"}}),n._v(" "),t("WSlider",{style:"width:"+n.sliderWidth+"px;",attrs:{progHeight:n.barProgHeight,progColor:n.barProgColor,progBackgroundColor:n.barProgBackgroundColor,sliderSize:n.barSliderSize,sliderBackgroundColor:n.barSliderBackgroundColor,sliderBackgroundColorHover:n.barSliderBackgroundColorHover,valueMin:0,valueMax:255,valueStep:1,valueDecimal:0,value:n.g},on:{input:function(e){n.gt=e,n.updateColor(e,"","gs")}}})],1)]},proxy:!0}])}),n._v(" "),t("div",{staticStyle:{height:"10px"}}),n._v(" "),t("WPanelLabelItem",{attrs:{label:"B",labelFontSize:n.inputLabelFontSize,labelWidth:n.inputLabelWidth,labelColor:n.inputLabelColor},scopedSlots:n._u([{key:"item",fn:function(){return[t("div",{staticStyle:{display:"flex","align-items":"center"}},[t("WText",{style:"width:"+n.inputTextWidth+"px;",attrs:{funVerify:n.cki255,shadow:!1,bottomLineBorderColor:"transparent",bottomLineBorderColorHover:"transparent",bottomLineBorderColorFocus:"transparent",paddingStyle:{v:0,h:5},iconShiftOuter:-10,borderRadius:n.inputBorderRadius,borderColor:n.inputBorderColor,borderColorHover:n.inputBorderColorHover,borderColorFocus:n.inputBorderColorActive,backgroundColor:n.inputBackgroundColor,backgroundColorHover:n.inputBackgroundColorHover,backgroundColorFocus:n.inputBackgroundColorActive,textColor:n.inputTextColor,textFontSize:n.inputTextFontSize,height:n.inputTextHeight},on:{input:function(e,t){n.updateColor(e,t,"b")}},model:{value:n.bt,callback:function(e){n.bt=e},expression:"bt"}}),n._v(" "),t("div",{staticStyle:{"padding-left":"5px"}}),n._v(" "),t("WSlider",{style:"width:"+n.sliderWidth+"px;",attrs:{progHeight:n.barProgHeight,progColor:n.barProgColor,progBackgroundColor:n.barProgBackgroundColor,sliderSize:n.barSliderSize,sliderBackgroundColor:n.barSliderBackgroundColor,sliderBackgroundColorHover:n.barSliderBackgroundColorHover,valueMin:0,valueMax:255,valueStep:1,valueDecimal:0,value:n.b},on:{input:function(e){n.bt=e,n.updateColor(e,"","bs")}}})],1)]},proxy:!0}])}),n._v(" "),t("div",{staticStyle:{height:"10px"}}),n._v(" "),t("WPanelLabelItem",{attrs:{label:"A",labelFontSize:n.inputLabelFontSize,labelWidth:n.inputLabelWidth,labelColor:n.inputLabelColor},scopedSlots:n._u([{key:"item",fn:function(){return[t("div",{staticStyle:{display:"flex","align-items":"center"}},[t("WText",{style:"width:"+n.inputTextWidth+"px;",attrs:{funVerify:n.ckd1,shadow:!1,bottomLineBorderColor:"transparent",bottomLineBorderColorHover:"transparent",bottomLineBorderColorFocus:"transparent",paddingStyle:{v:0,h:5},iconShiftOuter:-10,borderRadius:n.inputBorderRadius,borderColor:n.inputBorderColor,borderColorHover:n.inputBorderColorHover,borderColorFocus:n.inputBorderColorActive,backgroundColor:n.inputBackgroundColor,backgroundColorHover:n.inputBackgroundColorHover,backgroundColorFocus:n.inputBackgroundColorActive,textColor:n.inputTextColor,textFontSize:n.inputTextFontSize,height:n.inputTextHeight},on:{input:function(e,t){n.updateColor(e,t,"a")}},model:{value:n.at,callback:function(e){n.at=e},expression:"at"}}),n._v(" "),t("div",{staticStyle:{"padding-left":"5px"}}),n._v(" "),t("WSlider",{style:"width:"+n.sliderWidth+"px;",attrs:{progHeight:n.barProgHeight,progColor:n.barProgColor,progBackgroundColor:n.barProgBackgroundColor,sliderSize:n.barSliderSize,sliderBackgroundColor:n.barSliderBackgroundColor,sliderBackgroundColorHover:n.barSliderBackgroundColorHover,valueMin:0,valueMax:1,valueStep:.01,valueDecimal:2,value:n.a},on:{input:function(e){n.at=e,n.updateColor(e,"","as")}}})],1)]},proxy:!0}])})],1),n._v(" "),t("div",{directives:[{name:"show",rawName:"v-show",value:"HSVA"===n.methodSelect.text,expression:"methodSelect.text==='HSVA'"}]},[t("WPanelLabelItem",{attrs:{label:"H",labelFontSize:n.inputLabelFontSize,labelWidth:n.inputLabelWidth,labelColor:n.inputLabelColor},scopedSlots:n._u([{key:"item",fn:function(){return[t("div",{staticStyle:{display:"flex","align-items":"center"}},[t("WText",{style:"width:"+n.inputTextWidth+"px;",attrs:{funVerify:n.cki360,shadow:!1,bottomLineBorderColor:"transparent",bottomLineBorderColorHover:"transparent",bottomLineBorderColorFocus:"transparent",paddingStyle:{v:0,h:5},iconShiftOuter:-10,borderRadius:n.inputBorderRadius,borderColor:n.inputBorderColor,borderColorHover:n.inputBorderColorHover,borderColorFocus:n.inputBorderColorActive,backgroundColor:n.inputBackgroundColor,backgroundColorHover:n.inputBackgroundColorHover,backgroundColorFocus:n.inputBackgroundColorActive,textColor:n.inputTextColor,textFontSize:n.inputTextFontSize,height:n.inputTextHeight},on:{input:function(e,t){n.updateColor(e,t,"h")}},model:{value:n.ht,callback:function(e){n.ht=e},expression:"ht"}}),n._v(" "),t("div",{staticStyle:{"padding-left":"5px"}}),n._v(" "),t("WSlider",{style:"width:"+n.sliderWidth+"px;",attrs:{progHeight:n.barProgHeight,progColor:n.barProgColor,progBackgroundColor:n.barProgBackgroundColor,sliderSize:n.barSliderSize,sliderBackgroundColor:n.barSliderBackgroundColor,sliderBackgroundColorHover:n.barSliderBackgroundColorHover,valueMin:0,valueMax:360,valueStep:1,valueDecimal:0,value:n.h},on:{input:function(e){n.ht=e,n.updateColor(e,"","hs")}}})],1)]},proxy:!0}])}),n._v(" "),t("div",{staticStyle:{height:"10px"}}),n._v(" "),t("WPanelLabelItem",{attrs:{label:"S",labelFontSize:n.inputLabelFontSize,labelWidth:n.inputLabelWidth,labelColor:n.inputLabelColor},scopedSlots:n._u([{key:"item",fn:function(){return[t("div",{staticStyle:{display:"flex","align-items":"center"}},[t("WText",{style:"width:"+n.inputTextWidth+"px;",attrs:{funVerify:n.ckd1,shadow:!1,bottomLineBorderColor:"transparent",bottomLineBorderColorHover:"transparent",bottomLineBorderColorFocus:"transparent",paddingStyle:{v:0,h:5},iconShiftOuter:-10,borderRadius:n.inputBorderRadius,borderColor:n.inputBorderColor,borderColorHover:n.inputBorderColorHover,borderColorFocus:n.inputBorderColorActive,backgroundColor:n.inputBackgroundColor,backgroundColorHover:n.inputBackgroundColorHover,backgroundColorFocus:n.inputBackgroundColorActive,textColor:n.inputTextColor,textFontSize:n.inputTextFontSize,height:n.inputTextHeight},on:{input:function(e,t){n.updateColor(e,t,"s")}},model:{value:n.st,callback:function(e){n.st=e},expression:"st"}}),n._v(" "),t("div",{staticStyle:{"padding-left":"5px"}}),n._v(" "),t("WSlider",{style:"width:"+n.sliderWidth+"px;",attrs:{progHeight:n.barProgHeight,progColor:n.barProgColor,progBackgroundColor:n.barProgBackgroundColor,sliderSize:n.barSliderSize,sliderBackgroundColor:n.barSliderBackgroundColor,sliderBackgroundColorHover:n.barSliderBackgroundColorHover,valueMin:0,valueMax:1,valueStep:.01,valueDecimal:2,value:n.s},on:{input:function(e){n.st=e,n.updateColor(e,"","ss")}}})],1)]},proxy:!0}])}),n._v(" "),t("div",{staticStyle:{height:"10px"}}),n._v(" "),t("WPanelLabelItem",{attrs:{label:"V",labelFontSize:n.inputLabelFontSize,labelWidth:n.inputLabelWidth,labelColor:n.inputLabelColor},scopedSlots:n._u([{key:"item",fn:function(){return[t("div",{staticStyle:{display:"flex","align-items":"center"}},[t("WText",{style:"width:"+n.inputTextWidth+"px;",attrs:{funVerify:n.ckd1,shadow:!1,bottomLineBorderColor:"transparent",bottomLineBorderColorHover:"transparent",bottomLineBorderColorFocus:"transparent",paddingStyle:{v:0,h:5},iconShiftOuter:-10,borderRadius:n.inputBorderRadius,borderColor:n.inputBorderColor,borderColorHover:n.inputBorderColorHover,borderColorFocus:n.inputBorderColorActive,backgroundColor:n.inputBackgroundColor,backgroundColorHover:n.inputBackgroundColorHover,backgroundColorFocus:n.inputBackgroundColorActive,textColor:n.inputTextColor,textFontSize:n.inputTextFontSize,height:n.inputTextHeight},on:{input:function(e,t){n.updateColor(e,t,"v")}},model:{value:n.vt,callback:function(e){n.vt=e},expression:"vt"}}),n._v(" "),t("div",{staticStyle:{"padding-left":"5px"}}),n._v(" "),t("WSlider",{style:"width:"+n.sliderWidth+"px;",attrs:{progHeight:n.barProgHeight,progColor:n.barProgColor,progBackgroundColor:n.barProgBackgroundColor,sliderSize:n.barSliderSize,sliderBackgroundColor:n.barSliderBackgroundColor,sliderBackgroundColorHover:n.barSliderBackgroundColorHover,valueMin:0,valueMax:1,valueStep:.01,valueDecimal:2,value:n.v},on:{input:function(e){n.vt=e,n.updateColor(e,"","bs")}}})],1)]},proxy:!0}])}),n._v(" "),t("div",{staticStyle:{height:"10px"}}),n._v(" "),t("WPanelLabelItem",{attrs:{label:"A",labelFontSize:n.inputLabelFontSize,labelWidth:n.inputLabelWidth,labelColor:n.inputLabelColor},scopedSlots:n._u([{key:"item",fn:function(){return[t("div",{staticStyle:{display:"flex","align-items":"center"}},[t("WText",{style:"width:"+n.inputTextWidth+"px;",attrs:{funVerify:n.ckd1,shadow:!1,bottomLineBorderColor:"transparent",bottomLineBorderColorHover:"transparent",bottomLineBorderColorFocus:"transparent",paddingStyle:{v:0,h:5},iconShiftOuter:-10,borderRadius:n.inputBorderRadius,borderColor:n.inputBorderColor,borderColorHover:n.inputBorderColorHover,borderColorFocus:n.inputBorderColorActive,backgroundColor:n.inputBackgroundColor,backgroundColorHover:n.inputBackgroundColorHover,backgroundColorFocus:n.inputBackgroundColorActive,textColor:n.inputTextColor,textFontSize:n.inputTextFontSize,height:n.inputTextHeight},on:{input:function(e,t){n.updateColor(e,t,"a")}},model:{value:n.at,callback:function(e){n.at=e},expression:"at"}}),n._v(" "),t("div",{staticStyle:{"padding-left":"5px"}}),n._v(" "),t("WSlider",{style:"width:"+n.sliderWidth+"px;",attrs:{progHeight:n.barProgHeight,progColor:n.barProgColor,progBackgroundColor:n.barProgBackgroundColor,sliderSize:n.barSliderSize,sliderBackgroundColor:n.barSliderBackgroundColor,sliderBackgroundColorHover:n.barSliderBackgroundColorHover,valueMin:0,valueMax:1,valueStep:.01,valueDecimal:2,value:n.a},on:{input:function(e){n.at=e,n.updateColor(e,"","as")}}})],1)]},proxy:!0}])})],1)])])};Yc._withStripped=!0;const Uc=Xr({render:Yc,staticRenderFns:[]},function(n){n&&n("data-v-05ab930f_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WColorSelectInput.vue"},media:void 0})},Vc,"data-v-05ab930f",false,void 0,!1,Zr,void 0,void 0);const Xc={directives:{domresize:Vo()},components:{WPopup:Ps,WColorSelectPanel:Pd,WColorSelectInput:Uc,WButtonChip:Md,WIcon:ni},props:{value:{type:String,default:"#FFFFFF"},type:{type:String,default:"HSVA"},size:{type:Number,default:200},space:{type:Number,default:10},colorBlockSize:{type:Number,default:20},colorBlockBorderWidth:{type:Number,default:1},colorBlockBorderColor:{type:String,default:"#ddd"},showColorText:{type:Boolean,default:!0},colorTextColor:{type:String,default:"#000"},colorTextFontSize:{type:String,default:"0.8rem"},panelBackgroundColor:{type:String,default:"#fff"},toolBackgroundColor:{type:String,default:"#f5f5f5"},menuIconLump:{type:String,default:"M12,5.32L18,8.69V15.31L12,18.68L6,15.31V8.69L12,5.32M21,16.5C21,16.88 20.79,17.21 20.47,17.38L12.57,21.82C12.41,21.94 12.21,22 12,22C11.79,22 11.59,21.94 11.43,21.82L3.53,17.38C3.21,17.21 3,16.88 3,16.5V7.5C3,7.12 3.21,6.79 3.53,6.62L11.43,2.18C11.59,2.06 11.79,2 12,2C12.21,2 12.41,2.06 12.57,2.18L20.47,6.62C20.79,6.79 21,7.12 21,7.5V16.5M12,4.15L5,8.09V15.91L12,19.85L19,15.91V8.09L12,4.15Z"},menuIconHsva:{type:String,default:"M19 3V21H15V3H19M14 3V21H10V3H14M9 3V21H5V3H9Z"},menuIconEyeDropper:{type:String,default:"M19.35,11.72L17.22,13.85L15.81,12.43L8.1,20.14L3.5,22L2,20.5L3.86,15.9L11.57,8.19L10.15,6.78L12.28,4.65L19.35,11.72M16.76,3C17.93,1.83 19.83,1.83 21,3C22.17,4.17 22.17,6.07 21,7.24L19.08,9.16L14.84,4.92L16.76,3M5.56,17.03L4.5,19.5L6.97,18.44L14.4,11L13,9.6L5.56,17.03Z"},menuIconColor:{type:String,default:"#aaa"},menuIconColorHover:{type:String,default:"#999"},menuIconColorActive:{type:String,default:"#666"},menuIconSize:{type:Number,default:20},borderColor:{type:String,default:"#ddd"},borderColorHover:{type:String,default:"#ccc"},borderColorActive:{type:String,default:"#777"},menuBorderRadius:{type:Number,default:4},menuTextColor:{type:String,default:"#444"},menuTextColorHover:{type:String,default:"#222"},menuTextColorActive:{type:String,default:"#000"},menuTextFontSize:{type:String,default:"0.8rem"},menuBackgroundColor:{type:String,default:"#fff"},menuBackgroundColorHover:{type:String,default:"#f9f9f9"},menuBackgroundColorActive:{type:String,default:"#f2f2f2"},inputBorderRadius:{type:Number,default:4},inputBorderColor:{type:String,default:"#ccc"},inputBorderColorHover:{type:String,default:"#b5b5b5"},inputBorderColorActive:{type:String,default:"#aaa"},inputBackgroundColor:{type:String,default:"#fff"},inputBackgroundColorHover:{type:String,default:"#fafafa"},inputBackgroundColorActive:{type:String,default:"#f2f2f2"},inputTextColor:{type:String,default:"#000"},inputTextFontSize:{type:String,default:"0.8rem"},inputTextWidth:{type:Number,default:38},inputTextHeight:{type:Number,default:18},inputLabelWidth:{type:Number,default:12},inputLabelColor:{type:String,default:"#666"},inputLabelFontSize:{type:String,default:"0.8rem"},barProgHeight:{type:Number,default:4},barProgColor:{type:String,default:"#74a4d9"},barProgBackgroundColor:{type:String,default:"#eee"},barSliderSize:{type:Number,default:10},barSliderBackgroundColor:{type:String,default:"#1565C0"},barSliderBackgroundColorHover:{type:String,default:"#1976D2"},popupPlacementDist:{type:Number,default:5},btnText:{type:String,default:"Confirm"},btnRippleColor:{type:String,default:"rgba(255,255,255,0.4)"},btnPaddingStyle:{type:Object,default:()=>({v:1,h:5})},btnTextColor:{type:String,default:"#000"},btnTextColorHover:{type:String,default:"#222"},btnTextColorActive:{type:String,default:"#222"},btnTextFontSize:{type:String,default:"0.8rem"},btnBorderRadius:{type:Number,default:4},btnBackgroundColor:{type:String,default:"rgb(241,241,241)"},btnBackgroundColorHover:{type:String,default:"rgb(236,236,236)"},btnBackgroundColorActive:{type:String,default:"rgb(236,236,236)"},btnShadow:{type:Boolean,default:!0},labelContent:{type:String,default:null},cmpZIndex:{type:Number,default:3e3},editable:{type:Boolean,default:!0}},data:function(){return{mdiLoading:"M12,4V2A10,10 0 0,0 2,12H4A8,8 0 0,1 12,4Z",show:!1,typeTrans:"HSVA",loadingEyeDropper:!1,layoutType:"horizontal",layoutShowScrollY:!1,layoutMinHeight:300,layoutMaxHeight:300,selectPanelHeight:0,selectInputHeight:0,valueOri:null,valueNew:null,popperPlacement:null}},watch:{show:function(n){let e=this;n&&(e.popperPlacement=null,e.layoutShowScrollY=!0,e.layoutMaxHeight=e.layoutMinHeight,e.$nextTick(()=>{e.$nextTick(()=>{e.adjustMaxHeight()})}))}},computed:{changeValue:function(){let n=this;return n.valueOri=Br(n.value),n.valueNew=n.valueOri,""},changeType:function(){return this.typeTrans=this.type,""},hasEyeDropper:function(){return Oo(window.EyeDropper)},useColorBlockBorderColor:function(){return Br(this.colorBlockBorderColor)},useColorTextColor:function(){return Br(this.colorTextColor)},usePanelBackgroundColor:function(){return Br(this.panelBackgroundColor)},useToolBackgroundColor:function(){return Br(this.toolBackgroundColor)},useBorderColor:function(){return Br(this.borderColor)},usePanelOverflowAndHeight:function(){let n=this,e=`overflow-y:auto; min-height:${n.layoutMinHeight}px;`;return n.layoutShowScrollY&&(e+=`max-height:${n.layoutMaxHeight}px;`),e}},methods:{resize:function(n){let e=this;if(!e.show)return;let t=an(n,"snew.windowWidth",0)>=2*(e.size+20)+3*e.space;e.layoutType=t?"horizontal":"vertical"},resizeContent:function(n){this.show&&this.adjustMaxHeight()},onPlacementChange:function(n){this.popperPlacement=n,this.adjustMaxHeight()},adjustMaxHeight:function(){let n=this;if(n.show)try{let e=n.$refs.ct;if(!e)return;let t=window.innerHeight,o=n.popperPlacement;if(!o)return;let r,i=function(n){if(!Wr(n))return null;try{return n.getBoundingClientRect()}catch(n){}return null}(e),a=e.scrollHeight,s=30;r=o.startsWith("top")?i.bottom-s:t-i.top-s;let l=a>r,d=Math.max(r,n.layoutMinHeight);if(l===n.layoutShowScrollY&&Math.abs(d-n.layoutMaxHeight)<2)return;n.layoutShowScrollY=l,n.layoutMaxHeight=d}catch(n){}},resizeSelectPanel:function(n){if(!this.show)return;let e=an(n,"snew.clientHeight",0);this.selectPanelHeight=e},resizeSelectInput:function(n){if(!this.show)return;let e=an(n,"snew.clientHeight",0);this.selectInputHeight=e},openEyeDropper:function(){let n=this;n.hasEyeDropper&&(n.loadingEyeDropper=!0,(new window.EyeDropper).open().then(e=>{let t=an(e,"sRGBHex","#fff");n.valueNew=t}).catch(n=>{console.log(n)}).finally(()=>{n.loadingEyeDropper=!1}))},clickColor:function(){let n=this;n.editable&&(n.$emit("input",n.valueNew),n.show=!1)}}};var Gc=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("WPopup",{directives:[{name:"domresize",rawName:"v-domresize"}],attrs:{minWidth:null,maxWidth:null,autoFitMinWidth:!1,autoFitMaxWidth:!1,placementDistY:n.popupPlacementDist,editable:n.editable,labelContent:n.labelContent,cmpZIndex:n.cmpZIndex,changeValue:n.changeValue,changeType:n.changeType},on:{domresize:n.resize,"placement-change":n.onPlacementChange},scopedSlots:n._u([{key:"trigger",fn:function(){return[t("div",{},[t("div",{staticStyle:{display:"flex","align-items":"center",cursor:"pointer",outline:"none"},on:{click:n.clickColor}},[t("div",{style:"border:"+n.colorBlockBorderWidth+"px solid "+n.useColorBlockBorderColor+"; width:"+n.colorBlockSize+"px; height:"+n.colorBlockSize+"px; box-sizing:border-box; background:"+n.valueOri+";"}),n._v(" "),n.showColorText?[t("div",{style:"padding-left:5px;"}),n._v(" "),t("div",{style:"font-size:"+n.colorTextFontSize+"; color:"+n.useColorTextColor+";"},[n._v("\n "+n._s(n.valueOri)+"\n ")])]:n._e()],2)])]},proxy:!0},{key:"content",fn:function(){return[t("div",{directives:[{name:"domresize",rawName:"v-domresize"}],ref:"ct",style:"background:"+n.usePanelBackgroundColor+"; "+n.usePanelOverflowAndHeight,on:{domresize:n.resizeContent}},[t("div",{style:"display:flex; padding:"+n.space+"px; border-bottom:1px solid "+n.useBorderColor+"; background:"+n.useToolBackgroundColor+";"},[t("div",{},[t("WIcon",{staticStyle:{cursor:"pointer"},attrs:{icon:n.menuIconHsva,color:"HSVA"===n.typeTrans?n.menuIconColorActive:n.menuIconColor,colorHover:"HSVA"===n.typeTrans?n.menuIconColorActive:n.menuIconColorHover,size:n.menuIconSize},on:{click:function(e){n.typeTrans="HSVA",n.$emit("update:type","HSVA")}}})],1),n._v(" "),t("div",{},[t("WIcon",{staticStyle:{cursor:"pointer"},attrs:{icon:n.menuIconLump,color:"LUMP"===n.typeTrans?n.menuIconColorActive:n.menuIconColor,colorHover:"LUMP"===n.typeTrans?n.menuIconColorActive:n.menuIconColorHover,size:n.menuIconSize},on:{click:function(e){n.typeTrans="LUMP",n.$emit("update:type","LUMP")}}})],1),n._v(" "),n.hasEyeDropper?t("div",{},[t("WIcon",{class:{"icon-spinner":n.loadingEyeDropper},staticStyle:{cursor:"pointer"},attrs:{icon:n.loadingEyeDropper?n.mdiLoading:n.menuIconEyeDropper,color:n.loadingEyeDropper?n.menuIconColor:n.menuIconColorActive,colorHover:n.loadingEyeDropper?n.menuIconColor:n.menuIconColorActive,size:n.menuIconSize},on:{click:n.openEyeDropper}})],1):n._e(),n._v(" "),t("div",{style:"width:100%;"}),n._v(" "),t("div",{ref:"mtb",style:"display:flex; align-items:center;"},[t("div",{style:"display:flex; align-items:center; border:"+n.colorBlockBorderWidth+"px solid "+n.useColorBlockBorderColor+";"},[t("div",{style:"width:"+n.colorBlockSize+"px; min-width:"+n.colorBlockSize+"px; height:"+n.colorBlockSize+"px; background:"+n.valueOri+";"}),n._v(" "),t("div",{style:"width:"+n.colorBlockSize+"px; min-width:"+n.colorBlockSize+"px; height:"+n.colorBlockSize+"px; background:"+n.valueNew+";"})])])]),n._v(" "),t("div",{style:"padding:"+n.space+"px;"},[t("div",{directives:[{name:"domresize",rawName:"v-domresize"}],staticStyle:{display:"flex"},on:{domresize:n.resizeSelectPanel}},[t("WColorSelectPanel",{attrs:{type:n.typeTrans,size:n.size,space:0,backgroundColor:"transparent",menuIconLump:n.menuIconLump,menuIconHsva:n.menuIconHsva,menuIconColor:n.menuIconColor,menuIconColorHover:n.menuIconColorHover,menuIconColorActive:n.menuIconColorActive,menuIconSize:n.menuIconSize},model:{value:n.valueNew,callback:function(e){n.valueNew=e},expression:"valueNew"}})],1),n._v(" "),t("div",{style:"height:"+n.space+"px;"}),n._v(" "),t("div",{directives:[{name:"domresize",rawName:"v-domresize"}],staticStyle:{display:"flex"},on:{domresize:n.resizeSelectInput}},[t("WColorSelectInput",{attrs:{size:Math.max(n.size-22,0),backgroundColor:"transparent",borderColor:n.borderColor,borderColorHover:n.borderColorHover,borderColorActive:n.borderColorActive,menuBorderRadius:n.menuBorderRadius,menuBackgroundColor:n.menuBackgroundColor,menuBackgroundColorHover:n.menuBackgroundColorHover,menuBackgroundColorActive:n.menuBackgroundColorActive,menuTextColor:n.menuTextColor,menuTextColorHover:n.menuTextColorHover,menuTextColorActive:n.menuTextColorActive,menuTextFontSize:n.menuTextFontSize,inputBorderRadius:n.inputBorderRadius,inputBorderColor:n.inputBorderColor,inputBorderColorHover:n.inputBorderColorHover,inputBorderColorActive:n.inputBorderColorActive,inputBackgroundColor:n.inputBackgroundColor,inputBackgroundColorHover:n.inputBackgroundColorHover,inputBackgroundColorActive:n.inputBackgroundColorActive,inputTextColor:n.inputTextColor,inputTextFontSize:n.inputTextFontSize,inputTextWidth:n.inputTextWidth,inputTextHeight:n.inputTextHeight,inputLabelWidth:n.inputLabelWidth,inputLabelColor:n.inputLabelColor,inputLabelFontSize:n.inputLabelFontSize,barProgHeight:n.barProgHeight,barProgColor:n.barProgColor,barProgBackgroundColor:n.barProgBackgroundColor,barSliderSize:n.barSliderSize,barSliderBackgroundColor:n.barSliderBackgroundColor,barSliderBackgroundColorHover:n.barSliderBackgroundColorHover},model:{value:n.valueNew,callback:function(e){n.valueNew=e},expression:"valueNew"}})],1),n._v(" "),t("div",{style:"height:"+n.space+"px;"}),n._v(" "),t("div",{staticStyle:{"text-align":"right"}},[t("WButtonChip",{attrs:{text:n.btnText,rippleColor:n.btnRippleColor,paddingStyle:n.btnPaddingStyle,textColor:n.btnTextColor,textColorHover:n.btnTextColorHover,textColorActive:n.btnTextColorActive,textFontSize:n.btnTextFontSize,borderRadius:n.btnBorderRadius,_borderColor:"btnBorderColor",_borderColorHover:"btnBorderColorHover",_borderColorActive:"btnBorderColorActive",backgroundColor:n.btnBackgroundColor,backgroundColorHover:n.btnBackgroundColorHover,backgroundColorActive:n.btnBackgroundColorActive,shadow:n.btnShadow},on:{click:n.clickColor}})],1)])])]},proxy:!0}]),model:{value:n.show,callback:function(e){n.show=e},expression:"show"}})};Gc._withStripped=!0;const Zc=Xr({render:Gc,staticRenderFns:[]},function(n){n&&n("data-v-4462e481_0",{source:"\n.icon-spinner[data-v-4462e481] {\r\n animation: spin-animation-data-v-4462e481 1.5s infinite;\r\n display: inline-block;\n}\n@keyframes spin-animation-data-v-4462e481 {\n0% {\r\n transform: rotate(0deg);\n}\n100% {\r\n transform: rotate(359deg);\n}\n}\r\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\node_modules\\w-component-vue\\src\\components\\WColorSelect.vue"],names:[],mappings:";AA42BA;IACA,uDAAA;IACA,qBAAA;AACA;AACA;AACA;QACA,uBAAA;AACA;AACA;QACA,yBAAA;AACA;AACA",file:"WColorSelect.vue",sourcesContent:["<template>\r\n <WPopup\r\n :minWidth=\"null\"\r\n :maxWidth=\"null\"\r\n :autoFitMinWidth=\"false\"\r\n :autoFitMaxWidth=\"false\"\r\n :placementDistY=\"popupPlacementDist\"\r\n :editable=\"editable\"\r\n :labelContent=\"labelContent\"\r\n :cmpZIndex=\"cmpZIndex\"\r\n v-model=\"show\"\r\n :changeValue=\"changeValue\"\r\n :changeType=\"changeType\"\r\n v-domresize\r\n @domresize=\"resize\"\r\n @placement-change=\"onPlacementChange\"\r\n >\r\n\r\n <template v-slot:trigger>\r\n\r\n <div style=\"\">\r\n \x3c!-- 盡量不要讓display:flex暴露至外層 --\x3e\r\n <div\r\n style=\"display:flex; align-items:center; cursor:pointer; outline:none;\"\r\n @click=\"clickColor\"\r\n >\r\n\r\n <div :style=\"`border:${colorBlockBorderWidth}px solid ${useColorBlockBorderColor}; width:${colorBlockSize}px; height:${colorBlockSize}px; box-sizing:border-box; background:${valueOri};`\"></div>\r\n\r\n <template v-if=\"showColorText\">\r\n\r\n <div :style=\"`padding-left:5px;`\"></div>\r\n\r\n <div :style=\"`font-size:${colorTextFontSize}; color:${useColorTextColor};`\">\r\n {{valueOri}}\r\n </div>\r\n\r\n </template>\r\n\r\n </div>\r\n </div>\r\n\r\n </template>\r\n\r\n <template v-slot:content>\r\n\r\n <div\r\n ref=\"ct\"\r\n :style=\"`background:${usePanelBackgroundColor}; ${usePanelOverflowAndHeight}`\"\r\n v-domresize\r\n @domresize=\"resizeContent\"\r\n >\r\n\r\n \x3c!-- 上方選單區 --\x3e\r\n <div :style=\"`display:flex; padding:${space}px; border-bottom:1px solid ${useBorderColor}; background:${useToolBackgroundColor};`\">\r\n\r\n <div style=\"\">\r\n <WIcon\r\n style=\"cursor:pointer;\"\r\n :icon=\"menuIconHsva\"\r\n :color=\"typeTrans==='HSVA'?menuIconColorActive:menuIconColor\"\r\n :colorHover=\"typeTrans==='HSVA'?menuIconColorActive:menuIconColorHover\"\r\n :size=\"menuIconSize\"\r\n @click=\"typeTrans='HSVA';$emit('update:type','HSVA')\"\r\n ></WIcon>\r\n </div>\r\n\r\n <div style=\"\">\r\n <WIcon\r\n style=\"cursor:pointer;\"\r\n :icon=\"menuIconLump\"\r\n :color=\"typeTrans==='LUMP'?menuIconColorActive:menuIconColor\"\r\n :colorHover=\"typeTrans==='LUMP'?menuIconColorActive:menuIconColorHover\"\r\n :size=\"menuIconSize\"\r\n @click=\"typeTrans='LUMP';$emit('update:type','LUMP')\"\r\n ></WIcon>\r\n </div>\r\n\r\n <div style=\"\" v-if=\"hasEyeDropper\">\r\n <WIcon\r\n :class=\"{'icon-spinner':loadingEyeDropper}\"\r\n style=\"cursor:pointer;\"\r\n :icon=\"loadingEyeDropper?mdiLoading:menuIconEyeDropper\"\r\n :color=\"loadingEyeDropper?menuIconColor:menuIconColorActive\"\r\n :colorHover=\"loadingEyeDropper?menuIconColor:menuIconColorActive\"\r\n :size=\"menuIconSize\"\r\n @click=\"openEyeDropper\"\r\n ></WIcon>\r\n </div>\r\n\r\n <div :style=\"`width:100%;`\"></div>\r\n\r\n <div\r\n ref=\"mtb\"\r\n :style=\"`display:flex; align-items:center;`\"\r\n >\r\n\r\n <div :style=\"`display:flex; align-items:center; border:${colorBlockBorderWidth}px solid ${useColorBlockBorderColor};`\">\r\n\r\n <div :style=\"`width:${colorBlockSize}px; min-width:${colorBlockSize}px; height:${colorBlockSize}px; background:${valueOri};`\"></div>\r\n\r\n <div :style=\"`width:${colorBlockSize}px; min-width:${colorBlockSize}px; height:${colorBlockSize}px; background:${valueNew};`\"></div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div :style=\"`padding:${space}px;`\">\r\n\r\n \x3c!-- 顏色選擇區 --\x3e\r\n <div\r\n style=\"display:flex;\"\r\n v-domresize\r\n @domresize=\"resizeSelectPanel\"\r\n >\r\n <WColorSelectPanel\r\n :type=\"typeTrans\"\r\n :size=\"size\"\r\n :space=\"0\"\r\n :backgroundColor=\"'transparent'\"\r\n :menuIconLump=\"menuIconLump\"\r\n :menuIconHsva=\"menuIconHsva\"\r\n :menuIconColor=\"menuIconColor\"\r\n :menuIconColorHover=\"menuIconColorHover\"\r\n :menuIconColorActive=\"menuIconColorActive\"\r\n :menuIconSize=\"menuIconSize\"\r\n v-model=\"valueNew\"\r\n ></WColorSelectPanel>\r\n </div>\r\n\r\n <div :style=\"`height:${space}px;`\"></div>\r\n\r\n \x3c!-- 顏色數值區 --\x3e\r\n <div\r\n style=\"display:flex;\"\r\n v-domresize\r\n @domresize=\"resizeSelectInput\"\r\n >\r\n <WColorSelectInput\r\n :size=\"Math.max(size-22,0)\"\r\n :backgroundColor=\"'transparent'\"\r\n :borderColor=\"borderColor\"\r\n :borderColorHover=\"borderColorHover\"\r\n :borderColorActive=\"borderColorActive\"\r\n :menuBorderRadius=\"menuBorderRadius\"\r\n :menuBackgroundColor=\"menuBackgroundColor\"\r\n :menuBackgroundColorHover=\"menuBackgroundColorHover\"\r\n :menuBackgroundColorActive=\"menuBackgroundColorActive\"\r\n :menuTextColor=\"menuTextColor\"\r\n :menuTextColorHover=\"menuTextColorHover\"\r\n :menuTextColorActive=\"menuTextColorActive\"\r\n :menuTextFontSize=\"menuTextFontSize\"\r\n :inputBorderRadius=\"inputBorderRadius\"\r\n :inputBorderColor=\"inputBorderColor\"\r\n :inputBorderColorHover=\"inputBorderColorHover\"\r\n :inputBorderColorActive=\"inputBorderColorActive\"\r\n :inputBackgroundColor=\"inputBackgroundColor\"\r\n :inputBackgroundColorHover=\"inputBackgroundColorHover\"\r\n :inputBackgroundColorActive=\"inputBackgroundColorActive\"\r\n :inputTextColor=\"inputTextColor\"\r\n :inputTextFontSize=\"inputTextFontSize\"\r\n :inputTextWidth=\"inputTextWidth\"\r\n :inputTextHeight=\"inputTextHeight\"\r\n :inputLabelWidth=\"inputLabelWidth\"\r\n :inputLabelColor=\"inputLabelColor\"\r\n :inputLabelFontSize=\"inputLabelFontSize\"\r\n :barProgHeight=\"barProgHeight\"\r\n :barProgColor=\"barProgColor\"\r\n :barProgBackgroundColor=\"barProgBackgroundColor\"\r\n :barSliderSize=\"barSliderSize\"\r\n :barSliderBackgroundColor=\"barSliderBackgroundColor\"\r\n :barSliderBackgroundColorHover=\"barSliderBackgroundColorHover\"\r\n v-model=\"valueNew\"\r\n ></WColorSelectInput>\r\n </div>\r\n\r\n <div :style=\"`height:${space}px;`\"></div>\r\n\r\n \x3c!-- 確認按鈕區 --\x3e\r\n <div style=\"text-align:right;\">\r\n\r\n <WButtonChip\r\n :text=\"btnText\"\r\n :rippleColor=\"btnRippleColor\"\r\n :paddingStyle=\"btnPaddingStyle\"\r\n :textColor=\"btnTextColor\"\r\n :textColorHover=\"btnTextColorHover\"\r\n :textColorActive=\"btnTextColorActive\"\r\n :textFontSize=\"btnTextFontSize\"\r\n :borderRadius=\"btnBorderRadius\"\r\n _borderColor=\"btnBorderColor\"\r\n _borderColorHover=\"btnBorderColorHover\"\r\n _borderColorActive=\"btnBorderColorActive\"\r\n :backgroundColor=\"btnBackgroundColor\"\r\n :backgroundColorHover=\"btnBackgroundColorHover\"\r\n :backgroundColorActive=\"btnBackgroundColorActive\"\r\n :shadow=\"btnShadow\"\r\n @click=\"clickColor\"\r\n ></WButtonChip>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </template>\r\n\r\n </WPopup>\r\n</template>\r\n\r\n<script>\r\nimport { mdiHexagonSlice6, mdiViewParallel, mdiEyedropper, mdiLoading } from '@mdi/js'\r\nimport get from 'lodash-es/get.js'\r\nimport isfun from 'wsemi/src/isfun.mjs'\r\nimport domGetBoudRect from 'wsemi/src/domGetBoudRect.mjs'\r\nimport convertColor from '../js/convertColor.mjs'\r\nimport domResize from '../js/domResize.mjs'\r\nimport WPopup from './WPopup.vue'\r\nimport WColorSelectPanel from './WColorSelectPanel.vue'\r\nimport WColorSelectInput from './WColorSelectInput.vue'\r\nimport WButtonChip from './WButtonChip.vue'\r\nimport WIcon from './WIcon.vue'\r\n\r\n\r\n/**\r\n * @vue-prop {String} [value='#FFFFFF'] 輸入顏色字串,預設'#FFFFFF'\r\n * @vue-prop {String} [type='HSVA'] 輸入選擇顏色方式字串,可選'LUMP'、'HSVA',預設'HSVA'\r\n * @vue-prop {Number} [size=200] 輸入尺寸數字,代表組件基礎寬度與將自動計算高度,單位px,預設200\r\n * @vue-prop {Number} [space=10] 輸入子組件間距數字,單位px,預設10\r\n * @vue-prop {Number} [colorBlockSize=20] 輸入色塊長與寬度數字,單位px,預設20\r\n * @vue-prop {Number} [colorBlockBorderWidth=1] 輸入色塊框線寬度數字,單位px,預設1\r\n * @vue-prop {String} [colorBlockBorderColor='#ddd'] 輸入色塊框線顏色字串,預設'#ddd'\r\n * @vue-prop {Boolean} [showColorText=true] 輸入是否顯示當前RGBA顏色文字布林值,預設true\r\n * @vue-prop {String} [colorTextColor='#000'] 輸入當前RGBA顏色文字顏色字串,預設'#000'\r\n * @vue-prop {String} [colorTextFontSize='0.8rem'] 輸入當前RGBA顏色文字字型大小字串,預設'0.8rem'\r\n * @vue-prop {String} [panelBackgroundColor='#fff'] 輸入彈窗背景顏色字串,預設'#fff'\r\n * @vue-prop {String} [toolBackgroundColor='#f5f5f5'] 輸入彈窗背景顏色字串,預設'#f5f5f5'\r\n * @vue-prop {String} [menuIconLump=mdiHexagonSlice6] 輸入選單LUMP模式圖標字串,預設mdiHexagonSlice6\r\n * @vue-prop {String} [menuIconHsva=mdiViewParallel] mdiViewParallel\r\n * @vue-prop {String} [menuIconEyeDropper=mdiEyedropper] 輸入取色滴管圖標字串,可為mdi,md,fa代號或mdi/js路徑,預設使用mdi的圖標(mdiEyedropper)\r\n * @vue-prop {String} [menuIconColor='#aaa'] 輸入選單圖標顏色字串,預設'#aaa'\r\n * @vue-prop {String} [menuIconColorHover='#999'] 輸入滑鼠移入時選單圖標顏色字串,預設'#999'\r\n * @vue-prop {String} [menuIconColorActive='#666'] 輸入主動模式時選單圖標顏色字串,預設'#666'\r\n * @vue-prop {Number} [menuIconSize=20] 輸入選單圖標尺寸數字,單位為px,預設20\r\n * @vue-prop {String} [borderColor='#ddd'] 輸入邊框顏色字串,預設'#ddd'\r\n * @vue-prop {String} [borderColorHover='#ccc'] 輸入滑鼠移入時邊框顏色字串,預設'#ccc'\r\n * @vue-prop {String} [borderColorActive='#777'] 輸入主動模式時邊框顏色字串,預設'#777'\r\n * @vue-prop {Number} [menuBorderRadius=4] 輸入框圓角度數字,單位為px,預設4\r\n * @vue-prop {String} [menuTextColor='#444'] 輸入選單文字顏色字串,預設'#444'\r\n * @vue-prop {String} [menuTextColorHover='#222'] 輸入滑鼠移入時選單文字顏色字串,預設'#222'\r\n * @vue-prop {String} [menuTextColorActive='#000'] 輸入主動模式時選單文字顏色字串,預設'#000'\r\n * @vue-prop {String} [menuTextFontSize='0.8rem'] 輸入選單文字字型大小字串,預設'0.8rem'\r\n * @vue-prop {String} [menuBackgroundColor='#fff'] 輸入選單背景顏色字串,預設'#fff'\r\n * @vue-prop {String} [menuBackgroundColorHover='#f9f9f9'] 輸入滑鼠移入時選單背景顏色字串,預設'#f9f9f9'\r\n * @vue-prop {String} [menuBackgroundColorActive='#f2f2f2'] 輸入主動模式時選單背景顏色字串,預設'#f2f2f2'\r\n * @vue-prop {Number} [inputBorderRadius=4] 輸入顏色數字輸入區邊框圓角度數字,單位為px,預設4\r\n * @vue-prop {String} [inputBorderColor='#ccc'] 輸入顏色數字輸入區邊框顏色字串,預設'#ccc'\r\n * @vue-prop {String} [inputBorderColorHover='#b5b5b5'] 輸入滑鼠移入時顏色數字輸入區邊框顏色字串,預設'#b5b5b5'\r\n * @vue-prop {String} [inputBorderColorActive='#aaa'] 輸入主動模式時顏色數字輸入區邊框顏色字串,預設'#aaa'\r\n * @vue-prop {String} [inputBackgroundColor='#fff'] 輸入顏色數字輸入區背景顏色字串,預設'#fff'\r\n * @vue-prop {String} [inputBackgroundColorHover='#fafafa'] 輸入滑鼠移入時顏色數字輸入區背景顏色字串,預設'#fafafa'\r\n * @vue-prop {String} [inputBackgroundColorActive='#f2f2f2'] 輸入主動模式時顏色數字輸入區背景顏色字串,預設'#f2f2f2'\r\n * @vue-prop {String} [inputTextColor='#000'] 輸入顏色數字輸入區文字顏色字串,預設'#000'\r\n * @vue-prop {String} [inputTextFontSize='0.8rem'] 輸入顏色數字輸入區文字字型大小字串,預設'0.8rem'\r\n * @vue-prop {Number} [inputTextWidth=38] 輸入顏色數字輸入區寬度數字,單位為px,預設38\r\n * @vue-prop {Number} [inputTextHeight=18] 輸入顏色數字輸入區高度數字,單位為px,預設18\r\n * @vue-prop {Number} [inputLabelWidth=12] 輸入顏色數字輸入區標題寬度數字,單位為px,預設12\r\n * @vue-prop {String} [inputLabelColor='#666'] 輸入文字顏色字串,預設'#666'\r\n * @vue-prop {String} [inputLabelFontSize='0.8rem'] 輸入文字字型大小字串,預設'0.8rem'\r\n * @vue-prop {Number} [barProgHeight=4] 輸入值域條高度數字,單位為px,預設4\r\n * @vue-prop {String} [barProgColor='#74a4d9'] 輸入值域條顏色字串,預設'#74a4d9'\r\n * @vue-prop {String} [barProgBackgroundColor='#eee'] 輸入值域條背景顏色字串,預設'#eee'\r\n * @vue-prop {Number} [barSliderSize=10] 輸入拖曳球尺寸數字,單位為px,預設10\r\n * @vue-prop {String} [barSliderBackgroundColor='#1565C0'] 輸入拖曳球背景顏色字串,預設'#1565C0'\r\n * @vue-prop {String} [barSliderBackgroundColorHover='#1976D2'] 輸入滑鼠移入時拖曳球背景顏色字串,預設'#1976D2'\r\n * @vue-prop {Number} [popupPlacementDist=5] 輸入彈窗距離觸發元素距離數字,單位為px,預設5\r\n * @vue-prop {String} [btnText='Confirm'] 輸入確認按鈕之文字字串,預設'Confirm'\r\n * @vue-prop {String} [btnRippleColor='rgba(255,255,255,0.4)'] 輸入確認按鈕之ripple效果顏色字串,預設'rgba(255,255,255,0.4)'\r\n * @vue-prop {Object} [btnPaddingStyle={v:1,h:5}] 輸入確認按鈕之內寬距離設定物件,可用鍵值為v、h、left、right、top、bottom,v代表同時設定top與bottom,h代表設定left與right,若有重複設定時後面鍵值會覆蓋前面,各鍵值為寬度數字,單位為px,預設{v:1,h:5}\r\n * @vue-prop {String} [btnTextColor='#000'] 輸入確認按鈕之文字顏色字串,預設'#000'\r\n * @vue-prop {String} [btnTextColorHover='#222'] 輸入滑鼠移入時確認按鈕之文字顏色字串,預設'#222'\r\n * @vue-prop {String} [btnTextColorActive='#222'] 輸入主動模式時確認按鈕之文字顏色字串,預設'#222'\r\n * @vue-prop {String} [btnTextFontSize='0.8rem'] 輸入確認按鈕之文字字型大小字串,預設'0.8rem'\r\n * @vue-prop {Number} [btnBorderRadius=4] 輸入確認按鈕之框圓角度數字,單位為px,預設4\r\n * @vue-prop {String} [btnBackgroundColor='rgb(241,241,241)'] 輸入確認按鈕之背景顏色字串,預設'rgb(241,241,241)'\r\n * @vue-prop {String} [btnBackgroundColorHover='rgb(236,236,236)'] 輸入滑鼠移入時確認按鈕之背景顏色字串,預設'rgb(236,236,236)'\r\n * @vue-prop {String} [btnBackgroundColorActive='rgb(236,236,236)'] 輸入主動模式時確認按鈕之背景顏色字串,預設'rgb(236,236,236)'\r\n * @vue-prop {Boolean} [btnShadow=true] 輸入確認按鈕之是否顯示陰影布林值,預設true\r\n * @vue-prop {String} [labelContent=null] 輸入針對teleport至body內之內容div所給予之wtlp屬性值字串,供查找使用,預設null\r\n * @vue-prop {Number} [cmpZIndex=3000] 輸入彈窗使用z-index數字,供嵌於高z-index彈窗內時提高層級,預設3000\r\n * @vue-prop {Boolean} [editable=true] 輸入是否為編輯模式布林值,預設true\r\n */\r\nexport default {\r\n directives: {\r\n domresize: domResize(),\r\n },\r\n components: {\r\n WPopup,\r\n WColorSelectPanel,\r\n WColorSelectInput,\r\n WButtonChip,\r\n WIcon,\r\n },\r\n props: {\r\n value: {\r\n type: String,\r\n default: '#FFFFFF',\r\n },\r\n type: {\r\n type: String,\r\n default: 'HSVA',\r\n },\r\n size: {\r\n type: Number,\r\n default: 200,\r\n },\r\n space: {\r\n type: Number,\r\n default: 10,\r\n },\r\n colorBlockSize: {\r\n type: Number,\r\n default: 20,\r\n },\r\n colorBlockBorderWidth: {\r\n type: Number,\r\n default: 1,\r\n },\r\n colorBlockBorderColor: {\r\n type: String,\r\n default: '#ddd',\r\n },\r\n showColorText: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n colorTextColor: {\r\n type: String,\r\n default: '#000',\r\n },\r\n colorTextFontSize: {\r\n type: String,\r\n default: '0.8rem',\r\n },\r\n panelBackgroundColor: {\r\n type: String,\r\n default: '#fff',\r\n },\r\n toolBackgroundColor: {\r\n type: String,\r\n default: '#f5f5f5',\r\n },\r\n menuIconLump: {\r\n type: String,\r\n default: mdiHexagonSlice6,\r\n },\r\n menuIconHsva: {\r\n type: String,\r\n default: mdiViewParallel,\r\n },\r\n menuIconEyeDropper: {\r\n type: String,\r\n default: mdiEyedropper,\r\n },\r\n menuIconColor: {\r\n type: String,\r\n default: '#aaa',\r\n },\r\n menuIconColorHover: {\r\n type: String,\r\n default: '#999',\r\n },\r\n menuIconColorActive: {\r\n type: String,\r\n default: '#666',\r\n },\r\n menuIconSize: {\r\n type: Number,\r\n default: 20,\r\n },\r\n borderColor: {\r\n type: String,\r\n default: '#ddd',\r\n },\r\n borderColorHover: {\r\n type: String,\r\n default: '#ccc',\r\n },\r\n borderColorActive: {\r\n type: String,\r\n default: '#777',\r\n },\r\n menuBorderRadius: {\r\n type: Number,\r\n default: 4,\r\n },\r\n menuTextColor: {\r\n type: String,\r\n default: '#444',\r\n },\r\n menuTextColorHover: {\r\n type: String,\r\n default: '#222',\r\n },\r\n menuTextColorActive: {\r\n type: String,\r\n default: '#000',\r\n },\r\n menuTextFontSize: {\r\n type: String,\r\n default: '0.8rem',\r\n },\r\n menuBackgroundColor: {\r\n type: String,\r\n default: '#fff',\r\n },\r\n menuBackgroundColorHover: {\r\n type: String,\r\n default: '#f9f9f9',\r\n },\r\n menuBackgroundColorActive: {\r\n type: String,\r\n default: '#f2f2f2',\r\n },\r\n inputBorderRadius: {\r\n type: Number,\r\n default: 4,\r\n },\r\n inputBorderColor: {\r\n type: String,\r\n default: '#ccc',\r\n },\r\n inputBorderColorHover: {\r\n type: String,\r\n default: '#b5b5b5',\r\n },\r\n inputBorderColorActive: {\r\n type: String,\r\n default: '#aaa',\r\n },\r\n inputBackgroundColor: {\r\n type: String,\r\n default: '#fff',\r\n },\r\n inputBackgroundColorHover: {\r\n type: String,\r\n default: '#fafafa',\r\n },\r\n inputBackgroundColorActive: {\r\n type: String,\r\n default: '#f2f2f2',\r\n },\r\n inputTextColor: {\r\n type: String,\r\n default: '#000',\r\n },\r\n inputTextFontSize: {\r\n type: String,\r\n default: '0.8rem',\r\n },\r\n inputTextWidth: {\r\n type: Number,\r\n default: 38,\r\n },\r\n inputTextHeight: {\r\n type: Number,\r\n default: 18,\r\n },\r\n inputLabelWidth: {\r\n type: Number,\r\n default: 12,\r\n },\r\n inputLabelColor: {\r\n type: String,\r\n default: '#666',\r\n },\r\n inputLabelFontSize: {\r\n type: String,\r\n default: '0.8rem',\r\n },\r\n barProgHeight: {\r\n type: Number,\r\n default: 4,\r\n },\r\n barProgColor: {\r\n type: String,\r\n default: '#74a4d9',\r\n },\r\n barProgBackgroundColor: {\r\n type: String,\r\n default: '#eee',\r\n },\r\n barSliderSize: {\r\n type: Number,\r\n default: 10,\r\n },\r\n barSliderBackgroundColor: {\r\n type: String,\r\n default: '#1565C0',\r\n },\r\n barSliderBackgroundColorHover: {\r\n type: String,\r\n default: '#1976D2',\r\n },\r\n popupPlacementDist: {\r\n type: Number,\r\n default: 5,\r\n },\r\n btnText: {\r\n type: String,\r\n default: 'Confirm',\r\n },\r\n btnRippleColor: {\r\n type: String,\r\n default: 'rgba(255,255,255,0.4)',\r\n },\r\n btnPaddingStyle: {\r\n type: Object,\r\n default: () => {\r\n return {\r\n v: 1,\r\n h: 5,\r\n }\r\n },\r\n },\r\n btnTextColor: {\r\n type: String,\r\n default: '#000',\r\n },\r\n btnTextColorHover: {\r\n type: String,\r\n default: '#222',\r\n },\r\n btnTextColorActive: {\r\n type: String,\r\n default: '#222',\r\n },\r\n btnTextFontSize: {\r\n type: String,\r\n default: '0.8rem',\r\n },\r\n btnBorderRadius: {\r\n type: Number,\r\n default: 4,\r\n },\r\n btnBackgroundColor: {\r\n type: String,\r\n default: 'rgb(241,241,241)',\r\n },\r\n btnBackgroundColorHover: {\r\n type: String,\r\n default: 'rgb(236,236,236)',\r\n },\r\n btnBackgroundColorActive: {\r\n type: String,\r\n default: 'rgb(236,236,236)',\r\n },\r\n btnShadow: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n labelContent: {\r\n type: String,\r\n default: null,\r\n },\r\n cmpZIndex: {\r\n type: Number,\r\n default: 3000,\r\n },\r\n editable: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n },\r\n data: function() {\r\n return {\r\n mdiLoading,\r\n\r\n show: false,\r\n\r\n typeTrans: 'HSVA',\r\n\r\n loadingEyeDropper: false,\r\n\r\n layoutType: 'horizontal',\r\n layoutShowScrollY: false,\r\n layoutMinHeight: 300,\r\n layoutMaxHeight: 300,\r\n\r\n selectPanelHeight: 0,\r\n selectInputHeight: 0,\r\n\r\n valueOri: null,\r\n valueNew: null,\r\n popperPlacement: null,\r\n\r\n }\r\n },\r\n watch: {\r\n\r\n show: function(b) {\r\n let vo = this\r\n if (b) {\r\n //以最小高度顯示時, 讓Popper.js先決定方向\r\n vo.popperPlacement = null\r\n vo.layoutShowScrollY = true\r\n vo.layoutMaxHeight = vo.layoutMinHeight\r\n // 等 Popper.js 定位完成後重算可用空間\r\n vo.$nextTick(() => {\r\n vo.$nextTick(() => {\r\n vo.adjustMaxHeight()\r\n })\r\n })\r\n }\r\n },\r\n\r\n },\r\n computed: {\r\n\r\n changeValue: function() {\r\n let vo = this\r\n vo.valueOri = convertColor(vo.value)\r\n vo.valueNew = vo.valueOri\r\n return ''\r\n },\r\n\r\n changeType: function() {\r\n let vo = this\r\n vo.typeTrans = vo.type\r\n return ''\r\n },\r\n\r\n hasEyeDropper: function() {\r\n // let vo = this\r\n let b = isfun(window.EyeDropper)\r\n // console.log('window.EyeDropper', window.EyeDropper)\r\n return b\r\n },\r\n\r\n useColorBlockBorderColor: function() {\r\n let vo = this\r\n return convertColor(vo.colorBlockBorderColor)\r\n },\r\n\r\n useColorTextColor: function() {\r\n let vo = this\r\n return convertColor(vo.colorTextColor)\r\n },\r\n\r\n usePanelBackgroundColor: function() {\r\n let vo = this\r\n return convertColor(vo.panelBackgroundColor)\r\n },\r\n\r\n useToolBackgroundColor: function() {\r\n let vo = this\r\n return convertColor(vo.toolBackgroundColor)\r\n },\r\n\r\n useBorderColor: function() {\r\n let vo = this\r\n return convertColor(vo.borderColor)\r\n },\r\n\r\n usePanelOverflowAndHeight: function() {\r\n let vo = this\r\n let of = `overflow-y:auto; min-height:${vo.layoutMinHeight}px;`\r\n if (vo.layoutShowScrollY) {\r\n of += `max-height:${vo.layoutMaxHeight}px;`\r\n }\r\n return of\r\n },\r\n\r\n },\r\n methods: {\r\n\r\n resize: function(msg) {\r\n // console.log('methods resize', msg)\r\n\r\n let vo = this\r\n\r\n //check\r\n if (!vo.show) {\r\n return\r\n }\r\n\r\n let w = get(msg, 'snew.windowWidth', 0)\r\n // let h = get(msg, 'snew.windowHeight', 0)\r\n // console.log('w', w, 'h', h, b)\r\n\r\n //layoutType\r\n let b = w >= 2 * (vo.size + 20) + 3 * vo.space //20為組件設定, 不提供外部更改故可直接給\r\n vo.layoutType = b ? 'horizontal' : 'vertical'\r\n // console.log('layoutType', vo.layoutType)\r\n\r\n },\r\n\r\n resizeContent: function(msg) {\r\n // console.log('methods resizeContent', msg)\r\n\r\n let vo = this\r\n\r\n //check\r\n if (!vo.show) {\r\n return\r\n }\r\n\r\n //adjustMaxHeight\r\n vo.adjustMaxHeight()\r\n\r\n },\r\n\r\n onPlacementChange: function(placement) {\r\n let vo = this\r\n vo.popperPlacement = placement\r\n vo.adjustMaxHeight()\r\n },\r\n\r\n adjustMaxHeight: function() {\r\n let vo = this\r\n\r\n //check\r\n if (!vo.show) {\r\n return\r\n }\r\n\r\n try {\r\n\r\n //ct\r\n let ct = vo.$refs.ct\r\n if (!ct) {\r\n return\r\n }\r\n\r\n //windowHeight\r\n let h = window.innerHeight\r\n\r\n //placement\r\n let placement = vo.popperPlacement\r\n\r\n //Popper.js尚未定位完成, 保持初始限制高度\r\n if (!placement) {\r\n return\r\n }\r\n\r\n //rt\r\n let rt = domGetBoudRect(ct)\r\n\r\n //hc, 實際內容高度\r\n let hc = ct.scrollHeight\r\n\r\n //根據方向計算可用空間\r\n let margin = 30\r\n let hca\r\n if (placement.startsWith('top')) {\r\n //彈窗在上方, 底部對齊觸發元素往上延伸\r\n hca = rt.bottom - margin\r\n }\r\n else {\r\n //預設彈窗在下方, 頂部對齊觸發元素下方往下延伸\r\n hca = h - rt.top - margin\r\n }\r\n\r\n //layoutShowScrollYNew\r\n let layoutShowScrollYNew = hc > hca\r\n\r\n //layoutMaxHeightNew\r\n let layoutMaxHeightNew = Math.max(hca, vo.layoutMinHeight)\r\n\r\n //check, 避免微小的數值抖動導致迴圈\r\n if (layoutShowScrollYNew === vo.layoutShowScrollY && Math.abs(layoutMaxHeightNew - vo.layoutMaxHeight) < 2) {\r\n return\r\n }\r\n\r\n //layoutShowScrollY\r\n vo.layoutShowScrollY = layoutShowScrollYNew\r\n // console.log('layoutShowScrollY', vo.layoutShowScrollY)\r\n\r\n //layoutMaxHeight\r\n vo.layoutMaxHeight = layoutMaxHeightNew\r\n // console.log('layoutMaxHeight', vo.layoutMaxHeight)\r\n\r\n }\r\n catch (err) {}\r\n\r\n },\r\n\r\n resizeSelectPanel: function(msg) {\r\n // console.log('methods resizeSelectPanel', msg)\r\n\r\n let vo = this\r\n\r\n //check\r\n if (!vo.show) {\r\n return\r\n }\r\n\r\n let h = get(msg, 'snew.clientHeight', 0)\r\n\r\n //save\r\n vo.selectPanelHeight = h\r\n\r\n },\r\n\r\n resizeSelectInput: function(msg) {\r\n // console.log('methods resizeSelectInput', msg)\r\n\r\n let vo = this\r\n\r\n //check\r\n if (!vo.show) {\r\n return\r\n }\r\n\r\n let h = get(msg, 'snew.clientHeight', 0)\r\n\r\n //save\r\n vo.selectInputHeight = h\r\n\r\n },\r\n\r\n openEyeDropper: function() {\r\n // console.log('methods openEyeDropper')\r\n\r\n let vo = this\r\n\r\n //check\r\n if (!vo.hasEyeDropper) {\r\n return\r\n }\r\n\r\n vo.loadingEyeDropper = true\r\n\r\n let eyeDropper = new window.EyeDropper()\r\n eyeDropper\r\n .open()\r\n .then((res) => {\r\n // console.log('res', res)\r\n let hex = get(res, 'sRGBHex', '#fff')\r\n vo.valueNew = hex\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n .finally(() => {\r\n vo.loadingEyeDropper = false\r\n })\r\n\r\n },\r\n\r\n clickColor: function() {\r\n // console.log('methods clickColor')\r\n\r\n let vo = this\r\n\r\n //check, 不可編輯時跳出\r\n if (!vo.editable) {\r\n return\r\n }\r\n\r\n //emit\r\n vo.$emit('input', vo.valueNew)\r\n\r\n //hide\r\n vo.show = false\r\n\r\n },\r\n\r\n },\r\n}\r\n<\/script>\r\n\r\n<style scoped>\r\n.icon-spinner {\r\n animation: spin-animation 1.5s infinite;\r\n display: inline-block;\r\n}\r\n@keyframes spin-animation {\r\n 0% {\r\n transform: rotate(0deg);\r\n }\r\n 100% {\r\n transform: rotate(359deg);\r\n }\r\n}\r\n</style>\r\n"]},media:void 0})},Xc,"data-v-4462e481",false,void 0,!1,Zr,void 0,void 0);const qc={components:{WColorSelect:Zc},props:{node:{type:Object,required:!0},defNode:{type:Object,required:!0},textFontSize:{type:String,default:""},excludes:{type:Array,default:()=>[]}},data:()=>({confirmDelete:!1}),computed:{formStyle(){let n={};return this.textFontSize&&(n.fontSize=this.textFontSize),n}},methods:{isEx(n){return this.excludes.indexOf(n)>=0},onFontSizeInput(n){let e=Number(n),t=this.defNode;!n||isNaN(e)||e<t.fontSizeMin||(e>t.fontSizeMax&&(e=t.fontSizeMax),this.$emit("update","fontSize",e))},onEdgeWidthInput(n){let e=Number(n);!n||isNaN(e)||e<1||(e>24&&(e=24),this.$emit("update","edgeWidth",e))}}};var Jc=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{staticClass:"vue-flow__settings-form",style:n.formStyle},[n.isEx("name")?n._e():t("label",[n._v("Name\n "),t("input",{attrs:{type:"text"},domProps:{value:n.node.name||""},on:{input:function(e){return n.$emit("update","name",e.target.value)}}})]),n._v(" "),n.isEx("description")?n._e():t("label",[n._v("Description\n "),t("input",{attrs:{type:"text"},domProps:{value:n.node.description||""},on:{input:function(e){return n.$emit("update","description",e.target.value)}}})]),n._v(" "),n.isEx("type")?n._e():t("label",[n._v("Type\n "),t("select",{domProps:{value:n.node.type||n.defNode.type},on:{input:function(e){return n.$emit("update","type",e.target.value)}}},[t("option",{attrs:{value:"input"}},[n._v("Input")]),n._v(" "),t("option",{attrs:{value:"basic"}},[n._v("Basic")]),n._v(" "),t("option",{attrs:{value:"output"}},[n._v("Output")])])]),n._v(" "),n.isEx("shape")?n._e():t("label",[n._v("Shape\n "),t("select",{domProps:{value:n.node.shape||n.defNode.shape},on:{input:function(e){return n.$emit("update","shape",e.target.value)}}},[t("option",{attrs:{value:"rectangle"}},[n._v("Rectangle")]),n._v(" "),t("option",{attrs:{value:"diamond"}},[n._v("Diamond")]),n._v(" "),t("option",{attrs:{value:"ellipse"}},[n._v("Ellipse")]),n._v(" "),t("option",{attrs:{value:"triangle"}},[n._v("Triangle ▲")]),n._v(" "),t("option",{attrs:{value:"triangle-right"}},[n._v("Triangle ▶")]),n._v(" "),t("option",{attrs:{value:"triangle-down"}},[n._v("Triangle ▼")]),n._v(" "),t("option",{attrs:{value:"triangle-left"}},[n._v("Triangle ◀")])])]),n._v(" "),n.isEx("popupDirection")?n._e():t("label",[n._v("Popup Direction\n "),t("select",{domProps:{value:n.node.popupDirection||n.defNode.popupDirection},on:{input:function(e){return n.$emit("update","popupDirection",e.target.value)}}},[t("option",{attrs:{value:"top"}},[n._v("Top")]),n._v(" "),t("option",{attrs:{value:"right"}},[n._v("Right")]),n._v(" "),t("option",{attrs:{value:"bottom"}},[n._v("Bottom")]),n._v(" "),t("option",{attrs:{value:"left"}},[n._v("Left")])])]),n._v(" "),n.isEx("fontSize")?n._e():t("label",[n._v("Font Size\n "),t("input",{attrs:{type:"number",min:n.defNode.fontSizeMin,max:n.defNode.fontSizeMax},domProps:{value:n.node.fontSize||n.defNode.fontSize},on:{input:function(e){return n.onFontSizeInput(e.target.value)}}})]),n._v(" "),n.isEx("fontColor")?n._e():t("label",[n._v("Font Color\n "),t("WColorSelect",{attrs:{value:n.node.fontColor||n.defNode.fontColor,size:160,colorBlockSize:16,showColorText:!1},on:{input:function(e){return n.$emit("update","fontColor",e)}}})],1),n._v(" "),n.isEx("faceColor")?n._e():t("label",[n._v("Face Color\n "),t("WColorSelect",{attrs:{value:n.node.faceColor||n.defNode.faceColor,size:160,colorBlockSize:16,showColorText:!1},on:{input:function(e){return n.$emit("update","faceColor",e)}}})],1),n._v(" "),n.isEx("edgeColor")?n._e():t("label",[n._v("Edge Color\n "),t("WColorSelect",{attrs:{value:n.node.edgeColor||n.defNode.edgeColor,size:160,colorBlockSize:16,showColorText:!1},on:{input:function(e){return n.$emit("update","edgeColor",e)}}})],1),n._v(" "),n.isEx("edgeWidth")?n._e():t("label",[n._v("Edge Width\n "),t("input",{attrs:{type:"number",min:"1",max:"24"},domProps:{value:void 0!==n.node.edgeWidth?n.node.edgeWidth:n.defNode.edgeWidth},on:{input:function(e){return n.onEdgeWidthInput(e.target.value)}}})]),n._v(" "),n.isEx("fromPosition")||"output"!==n.node.type&&"basic"!==n.node.type?n._e():t("label",[n._v("From Handle\n "),t("select",{domProps:{value:n.node.fromPosition||n.defNode.fromPosition},on:{input:function(e){return n.$emit("update","fromPosition",e.target.value)}}},[t("option",{attrs:{value:"top"}},[n._v("Top")]),n._v(" "),t("option",{attrs:{value:"right"}},[n._v("Right")]),n._v(" "),t("option",{attrs:{value:"bottom"}},[n._v("Bottom")]),n._v(" "),t("option",{attrs:{value:"left"}},[n._v("Left")])])]),n._v(" "),n.isEx("toPosition")||"input"!==n.node.type&&"basic"!==n.node.type?n._e():t("label",[n._v("To Handle\n "),t("select",{domProps:{value:n.node.toPosition||n.defNode.toPosition},on:{input:function(e){return n.$emit("update","toPosition",e.target.value)}}},[t("option",{attrs:{value:"top"}},[n._v("Top")]),n._v(" "),t("option",{attrs:{value:"right"}},[n._v("Right")]),n._v(" "),t("option",{attrs:{value:"bottom"}},[n._v("Bottom")]),n._v(" "),t("option",{attrs:{value:"left"}},[n._v("Left")])])]),n._v(" "),t("div",{staticClass:"vue-flow__delete-area"},[n.confirmDelete?[t("span",{staticClass:"vue-flow__delete-warn"},[n._v("確定刪除?相關連線也會一併刪除")]),n._v(" "),t("div",{staticClass:"vue-flow__delete-confirm-row"},[t("button",{staticClass:"vue-flow__delete-btn",on:{click:function(e){return n.$emit("delete")}}},[n._v("確認刪除")]),n._v(" "),t("button",{staticClass:"vue-flow__delete-btn vue-flow__delete-btn--cancel",on:{click:function(e){n.confirmDelete=!1}}},[n._v("取消")])])]:t("button",{staticClass:"vue-flow__delete-btn",on:{click:function(e){n.confirmDelete=!0}}},[n._v("刪除節點")])],2)])};Jc._withStripped=!0;var Qc={name:"NodeWrapper",components:{NodeBody:Mi,NodeSettingsForm:Xr({render:Jc,staticRenderFns:[]},function(n){n&&n("data-v-e6c99e84_0",{source:'\n.vue-flow__settings-form {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 8px;\r\n min-width: 180px;\n}\n.vue-flow__settings-form label {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n gap: 8px;\r\n font-size: 12px;\n}\n.vue-flow__settings-form select,\r\n.vue-flow__settings-form input[type="number"],\r\n.vue-flow__settings-form input[type="text"] {\r\n width: 100px;\r\n font-size: 12px;\r\n padding: 1px 4px;\r\n border: 1px solid #ccc;\r\n border-radius: 3px;\n}\n.vue-flow__settings-form input[type="color"] {\r\n width: 32px;\r\n height: 24px;\r\n padding: 0;\r\n border: 1px solid #ccc;\r\n cursor: pointer;\r\n flex-shrink: 0;\n}\n.vue-flow__delete-area {\r\n margin-top: 4px;\r\n padding-top: 8px;\r\n border-top: 1px solid #eee;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-end;\n}\n.vue-flow__delete-warn {\r\n display: block;\r\n font-size: 11px;\r\n color: #c00;\r\n margin-bottom: 4px;\r\n text-align: right;\n}\n.vue-flow__delete-confirm-row {\r\n display: flex;\r\n gap: 6px;\n}\n.vue-flow__delete-btn {\r\n padding: 3px 10px;\r\n font-size: 11px;\r\n border: 1px solid #dc2626;\r\n border-radius: 3px;\r\n color: #fff;\r\n background: #dc2626;\r\n cursor: pointer;\n}\n.vue-flow__delete-btn:hover {\r\n background: #b91c1c;\r\n border-color: #b91c1c;\n}\n.vue-flow__delete-btn--cancel {\r\n color: #666;\r\n background: #fff;\r\n border-color: #ccc;\n}\n.vue-flow__delete-btn--cancel:hover {\r\n background: #f5f5f5;\r\n border-color: #ccc;\n}\r\n',map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\ui\\NodeSettingsForm.vue"],names:[],mappings:";AAyHA;EACA,aAAA;EACA,sBAAA;EACA,QAAA;EACA,gBAAA;AACA;AACA;EACA,aAAA;EACA,8BAAA;EACA,mBAAA;EACA,QAAA;EACA,eAAA;AACA;AACA;;;EAGA,YAAA;EACA,eAAA;EACA,gBAAA;EACA,sBAAA;EACA,kBAAA;AACA;AACA;EACA,WAAA;EACA,YAAA;EACA,UAAA;EACA,sBAAA;EACA,eAAA;EACA,cAAA;AACA;AACA;EACA,eAAA;EACA,gBAAA;EACA,0BAAA;EACA,aAAA;EACA,sBAAA;EACA,qBAAA;AACA;AACA;EACA,cAAA;EACA,eAAA;EACA,WAAA;EACA,kBAAA;EACA,iBAAA;AACA;AACA;EACA,aAAA;EACA,QAAA;AACA;AACA;EACA,iBAAA;EACA,eAAA;EACA,yBAAA;EACA,kBAAA;EACA,WAAA;EACA,mBAAA;EACA,eAAA;AACA;AACA;EACA,mBAAA;EACA,qBAAA;AACA;AACA;EACA,WAAA;EACA,gBAAA;EACA,kBAAA;AACA;AACA;EACA,mBAAA;EACA,kBAAA;AACA",file:"NodeSettingsForm.vue",sourcesContent:['<template>\r\n <div class="vue-flow__settings-form" :style="formStyle">\r\n <label v-if="!isEx(\'name\')">Name\r\n <input type="text" :value="node.name || \'\'" @input="$emit(\'update\', \'name\', $event.target.value)">\r\n </label>\r\n <label v-if="!isEx(\'description\')">Description\r\n <input type="text" :value="node.description || \'\'" @input="$emit(\'update\', \'description\', $event.target.value)">\r\n </label>\r\n <label v-if="!isEx(\'type\')">Type\r\n <select :value="node.type || defNode.type" @input="$emit(\'update\', \'type\', $event.target.value)">\r\n <option value="input">Input</option>\r\n <option value="basic">Basic</option>\r\n <option value="output">Output</option>\r\n </select>\r\n </label>\r\n <label v-if="!isEx(\'shape\')">Shape\r\n <select :value="node.shape || defNode.shape" @input="$emit(\'update\', \'shape\', $event.target.value)">\r\n <option value="rectangle">Rectangle</option>\r\n <option value="diamond">Diamond</option>\r\n <option value="ellipse">Ellipse</option>\r\n <option value="triangle">Triangle ▲</option>\r\n <option value="triangle-right">Triangle ▶</option>\r\n <option value="triangle-down">Triangle ▼</option>\r\n <option value="triangle-left">Triangle ◀</option>\r\n </select>\r\n </label>\r\n <label v-if="!isEx(\'popupDirection\')">Popup Direction\r\n <select :value="node.popupDirection || defNode.popupDirection" @input="$emit(\'update\', \'popupDirection\', $event.target.value)">\r\n <option value="top">Top</option>\r\n <option value="right">Right</option>\r\n <option value="bottom">Bottom</option>\r\n <option value="left">Left</option>\r\n </select>\r\n </label>\r\n <label v-if="!isEx(\'fontSize\')">Font Size\r\n <input type="number" :value="node.fontSize || defNode.fontSize" :min="defNode.fontSizeMin" :max="defNode.fontSizeMax" @input="onFontSizeInput($event.target.value)">\r\n </label>\r\n <label v-if="!isEx(\'fontColor\')">Font Color\r\n <WColorSelect :value="node.fontColor || defNode.fontColor" :size="160" :colorBlockSize="16" :showColorText="false" @input="$emit(\'update\', \'fontColor\', $event)" />\r\n </label>\r\n <label v-if="!isEx(\'faceColor\')">Face Color\r\n <WColorSelect :value="node.faceColor || defNode.faceColor" :size="160" :colorBlockSize="16" :showColorText="false" @input="$emit(\'update\', \'faceColor\', $event)" />\r\n </label>\r\n <label v-if="!isEx(\'edgeColor\')">Edge Color\r\n <WColorSelect :value="node.edgeColor || defNode.edgeColor" :size="160" :colorBlockSize="16" :showColorText="false" @input="$emit(\'update\', \'edgeColor\', $event)" />\r\n </label>\r\n <label v-if="!isEx(\'edgeWidth\')">Edge Width\r\n <input type="number" :value="node.edgeWidth !== undefined ? node.edgeWidth : defNode.edgeWidth" min="1" max="24" @input="onEdgeWidthInput($event.target.value)">\r\n </label>\r\n <label v-if="!isEx(\'fromPosition\') && (node.type === \'output\' || node.type === \'basic\')">From Handle\r\n <select :value="node.fromPosition || defNode.fromPosition" @input="$emit(\'update\', \'fromPosition\', $event.target.value)">\r\n <option value="top">Top</option>\r\n <option value="right">Right</option>\r\n <option value="bottom">Bottom</option>\r\n <option value="left">Left</option>\r\n </select>\r\n </label>\r\n <label v-if="!isEx(\'toPosition\') && (node.type === \'input\' || node.type === \'basic\')">To Handle\r\n <select :value="node.toPosition || defNode.toPosition" @input="$emit(\'update\', \'toPosition\', $event.target.value)">\r\n <option value="top">Top</option>\r\n <option value="right">Right</option>\r\n <option value="bottom">Bottom</option>\r\n <option value="left">Left</option>\r\n </select>\r\n </label>\r\n <div class="vue-flow__delete-area">\r\n <button v-if="!confirmDelete" class="vue-flow__delete-btn" @click="confirmDelete = true">刪除節點</button>\r\n <template v-else>\r\n <span class="vue-flow__delete-warn">確定刪除?相關連線也會一併刪除</span>\r\n <div class="vue-flow__delete-confirm-row">\r\n <button class="vue-flow__delete-btn" @click="$emit(\'delete\')">確認刪除</button>\r\n <button class="vue-flow__delete-btn vue-flow__delete-btn--cancel" @click="confirmDelete = false">取消</button>\r\n </div>\r\n </template>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport WColorSelect from \'w-component-vue/src/components/WColorSelect.vue\'\r\n\r\nexport default {\r\n components: { WColorSelect },\r\n props: {\r\n node: { type: Object, required: true },\r\n defNode: { type: Object, required: true },\r\n textFontSize: { type: String, default: \'\' },\r\n excludes: { type: Array, default: () => [] },\r\n },\r\n data() {\r\n return { confirmDelete: false }\r\n },\r\n computed: {\r\n formStyle() {\r\n let s = {}\r\n if (this.textFontSize) s.fontSize = this.textFontSize\r\n return s\r\n },\r\n },\r\n methods: {\r\n isEx(key) {\r\n return this.excludes.indexOf(key) >= 0\r\n },\r\n onFontSizeInput(val) {\r\n let n = Number(val)\r\n let d = this.defNode\r\n if (!val || isNaN(n) || n < d.fontSizeMin) return\r\n if (n > d.fontSizeMax) n = d.fontSizeMax\r\n this.$emit(\'update\', \'fontSize\', n)\r\n },\r\n onEdgeWidthInput(val) {\r\n let n = Number(val)\r\n if (!val || isNaN(n) || n < 1) return\r\n if (n > 24) n = 24\r\n this.$emit(\'update\', \'edgeWidth\', n)\r\n },\r\n },\r\n}\r\n<\/script>\r\n\r\n<style>\r\n.vue-flow__settings-form {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 8px;\r\n min-width: 180px;\r\n}\r\n.vue-flow__settings-form label {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n gap: 8px;\r\n font-size: 12px;\r\n}\r\n.vue-flow__settings-form select,\r\n.vue-flow__settings-form input[type="number"],\r\n.vue-flow__settings-form input[type="text"] {\r\n width: 100px;\r\n font-size: 12px;\r\n padding: 1px 4px;\r\n border: 1px solid #ccc;\r\n border-radius: 3px;\r\n}\r\n.vue-flow__settings-form input[type="color"] {\r\n width: 32px;\r\n height: 24px;\r\n padding: 0;\r\n border: 1px solid #ccc;\r\n cursor: pointer;\r\n flex-shrink: 0;\r\n}\r\n.vue-flow__delete-area {\r\n margin-top: 4px;\r\n padding-top: 8px;\r\n border-top: 1px solid #eee;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-end;\r\n}\r\n.vue-flow__delete-warn {\r\n display: block;\r\n font-size: 11px;\r\n color: #c00;\r\n margin-bottom: 4px;\r\n text-align: right;\r\n}\r\n.vue-flow__delete-confirm-row {\r\n display: flex;\r\n gap: 6px;\r\n}\r\n.vue-flow__delete-btn {\r\n padding: 3px 10px;\r\n font-size: 11px;\r\n border: 1px solid #dc2626;\r\n border-radius: 3px;\r\n color: #fff;\r\n background: #dc2626;\r\n cursor: pointer;\r\n}\r\n.vue-flow__delete-btn:hover {\r\n background: #b91c1c;\r\n border-color: #b91c1c;\r\n}\r\n.vue-flow__delete-btn--cancel {\r\n color: #666;\r\n background: #fff;\r\n border-color: #ccc;\r\n}\r\n.vue-flow__delete-btn--cancel:hover {\r\n background: #f5f5f5;\r\n border-color: #ccc;\r\n}\r\n</style>\r\n']},media:void 0})},qc,void 0,false,void 0,!1,Zr,void 0,void 0),WPopup:Ps},inject:{getDefNode:{default:()=>()=>({})},getDragGhost:{default:()=>()=>null}},props:{node:{type:Object,required:!0},selected:{type:Boolean,default:!1},draggable:{type:Boolean,default:!0},connectable:{type:Boolean,default:!0},resizable:{type:Boolean,default:!0},locked:{type:Boolean,default:!1},settingsPopupBackgroundColor:{type:String,default:"#fff"},settingsPopupTextColor:{type:String,default:"#333"},settingsPopupTextFontSize:{type:String,default:"12px"},inforPopupBackgroundColor:{type:String,default:"#fff"},inforPopupTitleTextColor:{type:String,default:"#333"},inforPopupTitleTextFontSize:{type:String,default:"12px"},inforPopupDescriptionTextColor:{type:String,default:"#888"},inforPopupDescriptionTextFontSize:{type:String,default:"10px"},snapGridSize:{type:Number,default:null},settingsEnabled:{type:Boolean,default:!0},settingsExcludes:{type:Array,default:()=>[]}},computed:{dn(){return this.getDefNode()},isDiamond(){return"diamond"===this.node.shape},isEllipse(){return"ellipse"===this.node.shape},isTriangle(){let n=this.node.shape;return"triangle"===n||"triangle-right"===n||"triangle-down"===n||"triangle-left"===n},isSvgShape(){return this.isDiamond||this.isEllipse||this.isTriangle},classes(){const n=this.node.class?Array.isArray(this.node.class)?this.node.class:[this.node.class]:[];return["vue-flow__node",`vue-flow__node-${this.node.type||"basic"}`,...n,{"vue-flow__node--selected":this.selected,"vue-flow__node--dragging":this.isDragging,"vue-flow__node--locked":this.locked,"vue-flow__node--diamond":this.isDiamond,"vue-flow__node--ellipse":this.isEllipse,"vue-flow__node--triangle":this.isTriangle}]},wrapperStyle(){const n=this.dn,e=this.node,t=this.getDragGhost(e.id),o=t?t.x:e.position.x,r=t?t.y:e.position.y,i=t&&void 0!==t.width?t.width:e.width,a=t&&void 0!==t.height?t.height:e.height,s={transform:`translate(${o}px, ${r}px)`,zIndex:e.zIndex||0,...i?{whiteSpace:"pre-line"}:{},...e.style||{}};if(i&&(s.width="number"==typeof i?`${i}px`:i),a&&(s.height="number"==typeof a?`${a}px`:a),!this.isSvgShape){let t=e.faceColor||n.faceColor;t&&(s.background=t);let o=e.edgeColor||n.edgeColor;o&&(s.borderColor=o);let r=void 0!==e.edgeWidth?e.edgeWidth:n.edgeWidth;void 0!==r&&(s.borderWidth=r+"px")}let l=e.fontSize||n.fontSize;l&&(s.fontSize=l+"px");let d=e.fontColor||n.fontColor;return d&&(s.color=d),s}},data:()=>({isDragging:!1,hovered:!1,infoPopupShow:!1,infoPopupEditable:!0,settingsPopupShow:!1,cachedW:0,cachedH:0}),watch:{settingsPopupShow(n){n&&(this.infoPopupShow=!1)},infoPopupShow(n){n&&(this.settingsPopupShow=!1)}},mounted(){this.$nextTick(()=>this.reportDimensions())},updated(){this.reportDimensions()},methods:{reportDimensions(){if(!this.$el)return;const n=this.$el.offsetWidth,e=this.$el.offsetHeight;n===this.cachedW&&e===this.cachedH||(this.cachedW=n,this.cachedH=e,this.$emit("dimensions",{nodeId:this.node.id,width:n,height:e}))},onMouseDown(n){if(n.target.closest&&n.target.closest(".vue-flow__node-settings-anchor"))return void(this._mouseDownPos=null);if(this._mouseDownPos={x:n.clientX,y:n.clientY},!this.draggable)return;if(this.node.dragHandle){if(!n.target.closest(this.node.dragHandle))return}this.infoPopupShow=!1,this.$emit("drag-start",{node:this.node,event:n});const e=n.clientX,t=n.clientY,o=n=>{(Math.abs(n.clientX-e)>2||Math.abs(n.clientY-t)>2)&&(this.infoPopupEditable=!1,document.removeEventListener("mousemove",o))},r=()=>{document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",r),this.infoPopupEditable||setTimeout(()=>{this.infoPopupEditable=!0},0)};document.addEventListener("mousemove",o),document.addEventListener("mouseup",r)},onMouseUp(n){if(!this._mouseDownPos)return;const e=n.clientX-this._mouseDownPos.x,t=n.clientY-this._mouseDownPos.y;this._mouseDownPos=null,Math.abs(e)<3&&Math.abs(t)<3&&this.$emit("node-click",{node:this.node,event:n})},onDoubleClick(n){this.$emit("node-double-click",{node:this.node,event:n})},openInfoPopup(){this.infoPopupShow=!0},onContextMenu(n){this.$emit("node-context-menu",{node:this.node,event:n})},onConnectStart(n){this.$emit("connect-start",{...n,nodeId:this.node.id})},onMouseEnter(n){this.hovered=!0,this.$emit("node-mouseenter",{node:this.node,event:n})},onMouseLeave(n){this.hovered=!1,this.$emit("node-mouseleave",{node:this.node,event:n})},onSettingsUpdate(n,e){this.$emit("node-settings-update",{node:this.node,key:n,value:e})},onSettingsDelete(){this.$emit("node-settings-delete",{node:this.node})},onResizeStart(n,e){this.infoPopupShow=!1,this.$nextTick(()=>{this.infoPopupEditable=!1}),n.preventDefault();const t={"top-left":"nwse-resize","bottom-right":"nwse-resize","top-right":"nesw-resize","bottom-left":"nesw-resize"}[e]||"default",o=document.createElement("style");o.textContent="* { cursor: "+t+" !important; }",document.head.appendChild(o);const r=n.clientX,i=n.clientY,a=this.node.width||this.$el.offsetWidth,s=this.node.height||this.$el.offsetHeight,l=this.node.position.x,d=this.node.position.y,u=this.snapGridSize,c=u||10,p=this.$el.closest(".vue-flow__viewport"),f=p?parseFloat(p.style.transform.match(/scale\(([^)]+)\)/)?.[1]||1):1,h=n=>u?Math.max(u,Math.round(n/u)*u):Math.max(c,Math.round(n)),g=n=>h(a+n),v=n=>{const e=h(a-n);return{w:e,x:l+(a-e)}},m=n=>h(s+n),A=n=>{const e=h(s-n);return{h:e,y:d+(s-e)}},b=n=>{const t=(n.clientX-r)/f,o=(n.clientY-i)/f;let u=a,c=s,p=l,h=d;if("top-left"===e){let n=v(t);u=n.w,p=n.x;let e=A(o);c=e.h,h=e.y}else if("top-right"===e){u=g(t);let n=A(o);c=n.h,h=n.y}else if("bottom-left"===e){let n=v(t);u=n.w,p=n.x,c=m(o)}else"bottom-right"===e&&(u=g(t),c=m(o));y=u,C=c,x=p,w=h,this.$emit("node-resize",{nodeId:this.node.id,width:u,height:c,x:p,y:h})};let y=a,C=s,x=l,w=d;const S=()=>{document.removeEventListener("mousemove",b),document.removeEventListener("mouseup",S),document.head.removeChild(o),setTimeout(()=>{this.infoPopupEditable=!0},0),this.$emit("node-resize-end",{nodeId:this.node.id,width:y,height:C,x:x,y:w})};document.addEventListener("mousemove",b),document.addEventListener("mouseup",S)}}};const Kc=Qc;var np=function(){var n=this,e=n.$createElement,t=n._self._c||e;return n.node.hidden?n._e():t("div",{class:n.classes,style:n.wrapperStyle,attrs:{"data-id":n.node.id},on:{mousedown:n.onMouseDown,mouseup:n.onMouseUp,mouseenter:n.onMouseEnter,mouseleave:n.onMouseLeave,dblclick:function(e){return e.stopPropagation(),n.onDoubleClick.apply(null,arguments)},contextmenu:function(e){return e.stopPropagation(),n.onContextMenu.apply(null,arguments)}}},[t("WPopup",{attrs:{placement:"bottom",modeHide:"mousedown",editable:n.infoPopupEditable,minWidth:null,maxWidth:null,autoFitMinWidth:!1,autoFitMaxWidth:!1,backgroundColor:n.inforPopupBackgroundColor,textFontSize:n.inforPopupTitleTextFontSize,paddingStyle:{v:8,h:12}},scopedSlots:n._u([{key:"trigger",fn:function(){return[t("NodeBody",{attrs:{node:n.node,connectable:n.connectable,selected:n.selected,resizable:n.resizable,locked:n.locked,hovered:n.hovered,lastW:n.cachedW,lastH:n.cachedH},on:{"resize-start":function(e){return n.onResizeStart(e.event,e.edge)},"connect-start":n.onConnectStart}})]},proxy:!0},{key:"content",fn:function(){return[n._t("node-popup",function(){return[n.node.name||n.node.description?t("div",{staticStyle:{"min-width":"120px"}},[n.node.name?t("div",{style:{fontSize:n.inforPopupTitleTextFontSize,color:n.inforPopupTitleTextColor,fontWeight:500}},[n._v(n._s(n.node.name))]):n._e(),n._v(" "),n.node.description?t("div",{style:{fontSize:n.inforPopupDescriptionTextFontSize,color:n.inforPopupDescriptionTextColor,marginTop:"4px"}},[n._v(n._s(n.node.description))]):n._e()]):n._e()]},{node:n.node})]},proxy:!0}],null,!0),model:{value:n.infoPopupShow,callback:function(e){n.infoPopupShow=e},expression:"infoPopupShow"}}),n._v(" "),t("transition",{attrs:{name:"vue-flow__fade"}},[(n.hovered||n.settingsPopupShow)&&n.draggable&&!n.locked&&n.settingsEnabled?t("div",{staticClass:"vue-flow__node-settings-anchor"},[t("WPopup",{attrs:{placement:"right-start",modeHide:"mousedown",minWidth:null,maxWidth:null,autoFitMinWidth:!1,autoFitMaxWidth:!1,backgroundColor:n.settingsPopupBackgroundColor,textColor:n.settingsPopupTextColor,paddingStyle:{v:8,h:8}},on:{show:function(e){return n.$emit("node-settings-click",{node:n.node})}},scopedSlots:n._u([{key:"trigger",fn:function(){return[t("div",{staticClass:"vue-flow__node-settings"},[t("svg",{attrs:{viewBox:"0 0 20 20",width:"14",height:"14",fill:"currentColor"}},[t("path",{attrs:{d:"M11.078 0l.294 1.833a7.587 7.587 0 0 1 2.174 1.25l1.725-.618 1.078 1.87-1.43 1.217a7.508 7.508 0 0 1 0 2.498l1.43 1.217-1.078 1.87-1.725-.618a7.587 7.587 0 0 1-2.174 1.25L11.078 14H8.922l-.294-1.833a7.587 7.587 0 0 1-2.174-1.25l-1.725.618-1.078-1.87 1.43-1.217a7.508 7.508 0 0 1 0-2.498L3.65 4.733l1.078-1.87 1.725.618a7.587 7.587 0 0 1 2.174-1.25L8.922 0h2.156zM10 4.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5z",transform:"translate(0 3)"}})])])]},proxy:!0},{key:"content",fn:function(){return[t("NodeSettingsForm",{attrs:{node:n.node,"def-node":n.dn,"text-font-size":n.settingsPopupTextFontSize,excludes:n.settingsExcludes},on:{update:n.onSettingsUpdate,delete:n.onSettingsDelete}})]},proxy:!0}],null,!1,4123440218),model:{value:n.settingsPopupShow,callback:function(e){n.settingsPopupShow=e},expression:"settingsPopupShow"}})],1):n._e()])],1)};np._withStripped=!0;const ep={name:"NodeRenderer",components:{NodeWrapper:Xr({render:np,staticRenderFns:[]},function(n){n&&n("data-v-088e6a01_0",{source:"\n.vue-flow__node[data-v-088e6a01] {\r\n position: absolute;\r\n cursor: grab;\r\n user-select: none;\r\n pointer-events: all;\r\n box-sizing: border-box;\r\n border: 1px solid #bbb;\r\n border-radius: 3px;\r\n background: #fff;\r\n font-family: 'Microsoft JhengHei', '微軟正黑體', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\r\n font-size: 12px;\r\n text-align: center;\r\n white-space: nowrap;\r\n transition: border-color 0.2s ease, box-shadow 0.3s ease;\n}\n.vue-flow__node[data-v-088e6a01]:hover {\r\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);\n}\n.vue-flow__node--selected[data-v-088e6a01] {\r\n box-shadow: 0 0 8px 2px rgba(220, 38, 38, 0.5);\n}\n.vue-flow__node--selected[data-v-088e6a01]:hover {\r\n box-shadow: 0 0 8px 2px rgba(220, 38, 38, 0.5);\n}\n.vue-flow__node--dragging[data-v-088e6a01] {\r\n cursor: grabbing;\r\n z-index: 1000 !important;\n}\r\n\r\n/* Settings icon anchor (positioning only) */\n.vue-flow__node-settings-anchor[data-v-088e6a01] {\r\n position: absolute;\r\n top: -8px;\r\n right: -8px;\r\n z-index: 2;\r\n pointer-events: all;\n}\r\n/* Settings icon (appearance only) */\n.vue-flow__node-settings[data-v-088e6a01] {\r\n width: 20px;\r\n height: 20px;\r\n border-radius: 50%;\r\n background: #fff;\r\n border: 1px solid #ccc;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n transition: border-color 0.15s ease, background 0.15s ease;\r\n color: #888;\n}\n.vue-flow__node-settings[data-v-088e6a01]:hover {\r\n border-color: #666;\r\n background: #f0f0f0;\r\n color: #333;\n}\r\n\r\n\r\n/* Shared SVG shape base styles */\n.vue-flow__node--diamond[data-v-088e6a01],\r\n.vue-flow__node--ellipse[data-v-088e6a01],\r\n.vue-flow__node--triangle[data-v-088e6a01] {\r\n background: transparent !important;\r\n border-color: transparent !important;\r\n border-radius: 0 !important;\n}\n.vue-flow__node--diamond[data-v-088e6a01]:hover,\r\n.vue-flow__node--ellipse[data-v-088e6a01]:hover,\r\n.vue-flow__node--triangle[data-v-088e6a01]:hover {\r\n box-shadow: none !important;\n}\n.vue-flow__node--diamond.vue-flow__node--selected[data-v-088e6a01],\r\n.vue-flow__node--ellipse.vue-flow__node--selected[data-v-088e6a01],\r\n.vue-flow__node--triangle.vue-flow__node--selected[data-v-088e6a01] {\r\n border-color: transparent !important;\r\n box-shadow: none !important;\n}\n.vue-flow__node--diamond.vue-flow__node--selected[data-v-088e6a01]:hover,\r\n.vue-flow__node--ellipse.vue-flow__node--selected[data-v-088e6a01]:hover,\r\n.vue-flow__node--triangle.vue-flow__node--selected[data-v-088e6a01]:hover {\r\n border-color: transparent !important;\r\n box-shadow: none !important;\n}\r\n/* SVG shape hover */\r\n/* polygon/ellipse live inside the NodeFace child component, so ::v-deep is\r\n required — a plain scoped selector would pin this component's data-v\r\n attribute onto the child's inner elements and never match. */\n.vue-flow__node--diamond[data-v-088e6a01]:hover .vue-flow__shape-svg polygon,\r\n.vue-flow__node--triangle[data-v-088e6a01]:hover .vue-flow__shape-svg polygon,\r\n.vue-flow__node--ellipse[data-v-088e6a01]:hover .vue-flow__shape-svg ellipse {\r\n filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.15));\n}\r\n/* SVG shape selected: red shadow */\n.vue-flow__node--diamond.vue-flow__node--selected[data-v-088e6a01] .vue-flow__shape-svg polygon,\r\n.vue-flow__node--triangle.vue-flow__node--selected[data-v-088e6a01] .vue-flow__shape-svg polygon,\r\n.vue-flow__node--ellipse.vue-flow__node--selected[data-v-088e6a01] .vue-flow__shape-svg ellipse {\r\n filter: drop-shadow(0 0 6px rgba(220, 38, 38, 0.6));\n}\r\n/* Fade transition for settings icon and resize handles */\n.vue-flow__fade-enter-active[data-v-088e6a01],\r\n.vue-flow__fade-leave-active[data-v-088e6a01] {\r\n transition: opacity 0.15s ease;\n}\n.vue-flow__fade-enter[data-v-088e6a01],\r\n.vue-flow__fade-leave-to[data-v-088e6a01] {\r\n opacity: 0;\n}\r\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\nodes\\NodeWrapper.vue"],names:[],mappings:";AAiZA;EACA,kBAAA;EACA,YAAA;EACA,iBAAA;EACA,mBAAA;EACA,sBAAA;EACA,sBAAA;EACA,kBAAA;EACA,gBAAA;EACA,6GAAA;EACA,eAAA;EACA,kBAAA;EACA,mBAAA;EACA,wDAAA;AACA;AACA;EACA,yCAAA;AACA;AACA;EACA,8CAAA;AACA;AACA;EACA,8CAAA;AACA;AACA;EACA,gBAAA;EACA,wBAAA;AACA;;AAEA,4CAAA;AACA;EACA,kBAAA;EACA,SAAA;EACA,WAAA;EACA,UAAA;EACA,mBAAA;AACA;AACA,oCAAA;AACA;EACA,WAAA;EACA,YAAA;EACA,kBAAA;EACA,gBAAA;EACA,sBAAA;EACA,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,eAAA;EACA,0DAAA;EACA,WAAA;AACA;AACA;EACA,kBAAA;EACA,mBAAA;EACA,WAAA;AACA;;;AAGA,iCAAA;AACA;;;EAGA,kCAAA;EACA,oCAAA;EACA,2BAAA;AACA;AACA;;;EAGA,2BAAA;AACA;AACA;;;EAGA,oCAAA;EACA,2BAAA;AACA;AACA;;;EAGA,oCAAA;EACA,2BAAA;AACA;AACA,oBAAA;AACA;;+DAEA;AACA;;;EAGA,kDAAA;AACA;AACA,mCAAA;AACA;;;EAGA,mDAAA;AACA;AACA,yDAAA;AACA;;EAEA,8BAAA;AACA;AACA;;EAEA,UAAA;AACA",file:"NodeWrapper.vue",sourcesContent:["<template>\r\n <div\r\n v-if=\"!node.hidden\"\r\n :class=\"classes\"\r\n :style=\"wrapperStyle\"\r\n :data-id=\"node.id\"\r\n @mousedown=\"onMouseDown\"\r\n @mouseup=\"onMouseUp\"\r\n @mouseenter=\"onMouseEnter\"\r\n @mouseleave=\"onMouseLeave\"\r\n @dblclick.stop=\"onDoubleClick\"\r\n @contextmenu.stop=\"onContextMenu\"\r\n >\r\n <WPopup\r\n v-model=\"infoPopupShow\"\r\n placement=\"bottom\"\r\n modeHide=\"mousedown\"\r\n :editable=\"infoPopupEditable\"\r\n :minWidth=\"null\"\r\n :maxWidth=\"null\"\r\n :autoFitMinWidth=\"false\"\r\n :autoFitMaxWidth=\"false\"\r\n :backgroundColor=\"inforPopupBackgroundColor\"\r\n :textFontSize=\"inforPopupTitleTextFontSize\"\r\n :paddingStyle=\"{v:8,h:12}\"\r\n >\r\n <template v-slot:trigger>\r\n <NodeBody\r\n :node=\"node\"\r\n :connectable=\"connectable\"\r\n :selected=\"selected\"\r\n :resizable=\"resizable\"\r\n :locked=\"locked\"\r\n :hovered=\"hovered\"\r\n :lastW=\"cachedW\"\r\n :lastH=\"cachedH\"\r\n @resize-start=\"onResizeStart($event.event, $event.edge)\"\r\n @connect-start=\"onConnectStart\"\r\n />\r\n </template>\r\n <template v-slot:content>\r\n <slot name=\"node-popup\" :node=\"node\">\r\n <div v-if=\"node.name || node.description\" style=\"min-width:120px\">\r\n <div v-if=\"node.name\" :style=\"{ fontSize: inforPopupTitleTextFontSize, color: inforPopupTitleTextColor, fontWeight: 500 }\">{{ node.name }}</div>\r\n <div v-if=\"node.description\" :style=\"{ fontSize: inforPopupDescriptionTextFontSize, color: inforPopupDescriptionTextColor, marginTop: '4px' }\">{{ node.description }}</div>\r\n </div>\r\n </slot>\r\n </template>\r\n </WPopup>\r\n \x3c!-- Settings popup --\x3e\r\n <transition name=\"vue-flow__fade\">\r\n <div v-if=\"(hovered || settingsPopupShow) && draggable && !locked && settingsEnabled\" class=\"vue-flow__node-settings-anchor\">\r\n <WPopup\r\n v-model=\"settingsPopupShow\"\r\n placement=\"right-start\"\r\n modeHide=\"mousedown\"\r\n :minWidth=\"null\"\r\n :maxWidth=\"null\"\r\n :autoFitMinWidth=\"false\"\r\n :autoFitMaxWidth=\"false\"\r\n :backgroundColor=\"settingsPopupBackgroundColor\"\r\n :textColor=\"settingsPopupTextColor\"\r\n :paddingStyle=\"{v:8,h:8}\"\r\n @show=\"$emit('node-settings-click', { node: node })\"\r\n >\r\n <template v-slot:trigger>\r\n <div class=\"vue-flow__node-settings\">\r\n <svg viewBox=\"0 0 20 20\" width=\"14\" height=\"14\" fill=\"currentColor\">\r\n <path d=\"M11.078 0l.294 1.833a7.587 7.587 0 0 1 2.174 1.25l1.725-.618 1.078 1.87-1.43 1.217a7.508 7.508 0 0 1 0 2.498l1.43 1.217-1.078 1.87-1.725-.618a7.587 7.587 0 0 1-2.174 1.25L11.078 14H8.922l-.294-1.833a7.587 7.587 0 0 1-2.174-1.25l-1.725.618-1.078-1.87 1.43-1.217a7.508 7.508 0 0 1 0-2.498L3.65 4.733l1.078-1.87 1.725.618a7.587 7.587 0 0 1 2.174-1.25L8.922 0h2.156zM10 4.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5z\" transform=\"translate(0 3)\"/>\r\n </svg>\r\n </div>\r\n </template>\r\n <template v-slot:content>\r\n <NodeSettingsForm\r\n :node=\"node\"\r\n :def-node=\"dn\"\r\n :text-font-size=\"settingsPopupTextFontSize\"\r\n :excludes=\"settingsExcludes\"\r\n @update=\"onSettingsUpdate\"\r\n @delete=\"onSettingsDelete\"\r\n />\r\n </template>\r\n </WPopup>\r\n </div>\r\n </transition>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport NodeBody from './NodeBody.vue'\r\nimport NodeSettingsForm from '../ui/NodeSettingsForm.vue'\r\nimport WPopup from 'w-component-vue/src/components/WPopup.vue'\r\n\r\nexport default {\r\n name: 'NodeWrapper',\r\n components: { NodeBody, NodeSettingsForm, WPopup },\r\n inject: { getDefNode: { default: () => () => ({}) }, getDragGhost: { default: () => () => null } },\r\n props: {\r\n node: { type: Object, required: true },\r\n selected: { type: Boolean, default: false },\r\n draggable: { type: Boolean, default: true },\r\n connectable: { type: Boolean, default: true },\r\n resizable: { type: Boolean, default: true },\r\n locked: { type: Boolean, default: false },\r\n settingsPopupBackgroundColor: { type: String, default: '#fff' },\r\n settingsPopupTextColor: { type: String, default: '#333' },\r\n settingsPopupTextFontSize: { type: String, default: '12px' },\r\n inforPopupBackgroundColor: { type: String, default: '#fff' },\r\n inforPopupTitleTextColor: { type: String, default: '#333' },\r\n inforPopupTitleTextFontSize: { type: String, default: '12px' },\r\n inforPopupDescriptionTextColor: { type: String, default: '#888' },\r\n inforPopupDescriptionTextFontSize: { type: String, default: '10px' },\r\n snapGridSize: { type: Number, default: null },\r\n settingsEnabled: { type: Boolean, default: true },\r\n settingsExcludes: { type: Array, default: () => [] },\r\n },\r\n computed: {\r\n dn() {\r\n return this.getDefNode()\r\n },\r\n isDiamond() {\r\n return this.node.shape === 'diamond'\r\n },\r\n isEllipse() {\r\n return this.node.shape === 'ellipse'\r\n },\r\n isTriangle() {\r\n let s = this.node.shape\r\n return s === 'triangle' || s === 'triangle-right' || s === 'triangle-down' || s === 'triangle-left'\r\n },\r\n isSvgShape() {\r\n return this.isDiamond || this.isEllipse || this.isTriangle\r\n },\r\n classes() {\r\n const nodeClasses = this.node.class\r\n ? (Array.isArray(this.node.class) ? this.node.class : [this.node.class])\r\n : []\r\n return [\r\n 'vue-flow__node',\r\n `vue-flow__node-${this.node.type || 'basic'}`,\r\n ...nodeClasses,\r\n {\r\n 'vue-flow__node--selected': this.selected,\r\n 'vue-flow__node--dragging': this.isDragging,\r\n 'vue-flow__node--locked': this.locked,\r\n 'vue-flow__node--diamond': this.isDiamond,\r\n 'vue-flow__node--ellipse': this.isEllipse,\r\n 'vue-flow__node--triangle': this.isTriangle,\r\n },\r\n ]\r\n },\r\n wrapperStyle() {\r\n const d = this.dn\r\n const n = this.node\r\n //拖曳/縮放ghost(細粒度): 進行中之暫時幾何優先(per-key反應式, 只有本節點被拖/縮放時才觸發重渲染)\r\n const g = this.getDragGhost(n.id)\r\n const px = g ? g.x : n.position.x\r\n const py = g ? g.y : n.position.y\r\n const w = (g && g.width !== undefined) ? g.width : n.width\r\n const h = (g && g.height !== undefined) ? g.height : n.height\r\n const style = {\r\n transform: `translate(${px}px, ${py}px)`,\r\n zIndex: n.zIndex || 0,\r\n // Nodes with an explicit width wrap long names instead of\r\n // overflowing (base CSS is nowrap); per-node style can override.\r\n ...(w ? { whiteSpace: 'pre-line' } : {}),\r\n ...(n.style || {}),\r\n }\r\n if (w) style.width = typeof w === 'number' ? `${w}px` : w\r\n if (h) style.height = typeof h === 'number' ? `${h}px` : h\r\n if (!this.isSvgShape) {\r\n let fColor = n.faceColor || d.faceColor\r\n if (fColor) style.background = fColor\r\n let eColor = n.edgeColor || d.edgeColor\r\n if (eColor) style.borderColor = eColor\r\n let eWidth = n.edgeWidth !== undefined ? n.edgeWidth : d.edgeWidth\r\n if (eWidth !== undefined) style.borderWidth = eWidth + 'px'\r\n }\r\n let fs = n.fontSize || d.fontSize\r\n if (fs) style.fontSize = fs + 'px'\r\n let fc = n.fontColor || d.fontColor\r\n if (fc) style.color = fc\r\n return style\r\n },\r\n },\r\n data() {\r\n return {\r\n isDragging: false,\r\n hovered: false,\r\n infoPopupShow: false,\r\n infoPopupEditable: true,\r\n settingsPopupShow: false,\r\n cachedW: 0,\r\n cachedH: 0,\r\n }\r\n },\r\n watch: {\r\n settingsPopupShow(val) {\r\n if (val) this.infoPopupShow = false\r\n },\r\n infoPopupShow(val) {\r\n if (val) this.settingsPopupShow = false\r\n },\r\n },\r\n mounted() {\r\n this.$nextTick(() => this.reportDimensions())\r\n },\r\n updated() {\r\n this.reportDimensions()\r\n },\r\n methods: {\r\n reportDimensions() {\r\n if (!this.$el) return\r\n const w = this.$el.offsetWidth\r\n const h = this.$el.offsetHeight\r\n if (w === this.cachedW && h === this.cachedH) return\r\n this.cachedW = w\r\n this.cachedH = h\r\n this.$emit('dimensions', { nodeId: this.node.id, width: w, height: h })\r\n },\r\n onMouseDown(event) {\r\n //點設定齒輪(及其popup錨區)不啟動節點拖曳/點擊: 齒輪刻意不用@mousedown.stop(stopPropagation會擋掉window層WPopup互斥協調),\r\n //故於此明確排除, 使點齒輪只開設定popup、不移動節點座標(避免尚未變更設定就先改到座標→誤觸發變更儲存)\r\n if (event.target.closest && event.target.closest('.vue-flow__node-settings-anchor')) {\r\n this._mouseDownPos = null\r\n return\r\n }\r\n this._mouseDownPos = { x: event.clientX, y: event.clientY }\r\n if (!this.draggable) return\r\n if (this.node.dragHandle) {\r\n const handle = event.target.closest(this.node.dragHandle)\r\n if (!handle) return\r\n }\r\n this.infoPopupShow = false\r\n this.$emit('drag-start', { node: this.node, event })\r\n const startX = event.clientX\r\n const startY = event.clientY\r\n const onDragMove = (e) => {\r\n if (Math.abs(e.clientX - startX) > 2 || Math.abs(e.clientY - startY) > 2) {\r\n this.infoPopupEditable = false\r\n document.removeEventListener('mousemove', onDragMove)\r\n }\r\n }\r\n const onDragEnd = () => {\r\n document.removeEventListener('mousemove', onDragMove)\r\n document.removeEventListener('mouseup', onDragEnd)\r\n if (!this.infoPopupEditable) {\r\n setTimeout(() => {\r\n this.infoPopupEditable = true\r\n }, 0)\r\n }\r\n }\r\n document.addEventListener('mousemove', onDragMove)\r\n document.addEventListener('mouseup', onDragEnd)\r\n },\r\n onMouseUp(event) {\r\n if (!this._mouseDownPos) return\r\n const dx = event.clientX - this._mouseDownPos.x\r\n const dy = event.clientY - this._mouseDownPos.y\r\n this._mouseDownPos = null\r\n if (Math.abs(dx) < 3 && Math.abs(dy) < 3) {\r\n this.$emit('node-click', { node: this.node, event })\r\n }\r\n },\r\n onDoubleClick(event) {\r\n this.$emit('node-double-click', { node: this.node, event })\r\n },\r\n openInfoPopup() {\r\n this.infoPopupShow = true\r\n },\r\n onContextMenu(event) {\r\n this.$emit('node-context-menu', { node: this.node, event })\r\n },\r\n onConnectStart(payload) {\r\n this.$emit('connect-start', { ...payload, nodeId: this.node.id })\r\n },\r\n onMouseEnter(event) {\r\n this.hovered = true\r\n this.$emit('node-mouseenter', { node: this.node, event })\r\n },\r\n onMouseLeave(event) {\r\n this.hovered = false\r\n this.$emit('node-mouseleave', { node: this.node, event })\r\n },\r\n onSettingsUpdate(key, value) {\r\n this.$emit('node-settings-update', { node: this.node, key, value })\r\n },\r\n onSettingsDelete() {\r\n this.$emit('node-settings-delete', { node: this.node })\r\n },\r\n onResizeStart(event, edge) {\r\n this.infoPopupShow = false\r\n this.$nextTick(() => {\r\n this.infoPopupEditable = false\r\n })\r\n event.preventDefault()\r\n\r\n // Lock cursor for the entire drag duration\r\n const cursorMap = {\r\n 'top-left': 'nwse-resize',\r\n 'bottom-right': 'nwse-resize',\r\n 'top-right': 'nesw-resize',\r\n 'bottom-left': 'nesw-resize',\r\n }\r\n const lockedCursor = cursorMap[edge] || 'default'\r\n const cursorStyle = document.createElement('style')\r\n cursorStyle.textContent = '* { cursor: ' + lockedCursor + ' !important; }'\r\n document.head.appendChild(cursorStyle)\r\n\r\n const startX = event.clientX\r\n const startY = event.clientY\r\n const startW = this.node.width || this.$el.offsetWidth\r\n const startH = this.node.height || this.$el.offsetHeight\r\n const startPosX = this.node.position.x\r\n const startPosY = this.node.position.y\r\n const snap = this.snapGridSize\r\n const minSize = snap || 10\r\n // Get zoom from the viewport transform\r\n const viewport = this.$el.closest('.vue-flow__viewport')\r\n const zoom = viewport ? parseFloat(viewport.style.transform.match(/scale\\(([^)]+)\\)/)?.[1] || 1) : 1\r\n\r\n const snapVal = (v) => snap ? Math.max(snap, Math.round(v / snap) * snap) : Math.max(minSize, Math.round(v))\r\n\r\n const resizeRight = (dx) => snapVal(startW + dx)\r\n const resizeLeft = (dx) => {\r\n const newW = snapVal(startW - dx)\r\n return { w: newW, x: startPosX + (startW - newW) }\r\n }\r\n const resizeBottom = (dy) => snapVal(startH + dy)\r\n const resizeTop = (dy) => {\r\n const newH = snapVal(startH - dy)\r\n return { h: newH, y: startPosY + (startH - newH) }\r\n }\r\n\r\n const onMouseMove = (e) => {\r\n const dx = (e.clientX - startX) / zoom\r\n const dy = (e.clientY - startY) / zoom\r\n let newW = startW; let newH = startH; let newX = startPosX; let newY = startPosY\r\n\r\n if (edge === 'top-left') {\r\n let rl2 = resizeLeft(dx); newW = rl2.w; newX = rl2.x\r\n let rt2 = resizeTop(dy); newH = rt2.h; newY = rt2.y\r\n }\r\n else if (edge === 'top-right') {\r\n newW = resizeRight(dx)\r\n let rt3 = resizeTop(dy); newH = rt3.h; newY = rt3.y\r\n }\r\n else if (edge === 'bottom-left') {\r\n let rl3 = resizeLeft(dx); newW = rl3.w; newX = rl3.x\r\n newH = resizeBottom(dy)\r\n }\r\n else if (edge === 'bottom-right') {\r\n newW = resizeRight(dx)\r\n newH = resizeBottom(dy)\r\n }\r\n\r\n //closure追蹤縮放最終值供resize-end發送\r\n //why: 縮放中node本體不變動(ghost僅作用於視覺), this.node.*是原值, 不可作為結果\r\n lastW = newW\r\n lastH = newH\r\n lastX = newX\r\n lastY = newY\r\n\r\n this.$emit('node-resize', {\r\n nodeId: this.node.id,\r\n width: newW,\r\n height: newH,\r\n x: newX,\r\n y: newY,\r\n })\r\n }\r\n\r\n let lastW = startW\r\n let lastH = startH\r\n let lastX = startPosX\r\n let lastY = startPosY\r\n\r\n const onMouseUp = () => {\r\n document.removeEventListener('mousemove', onMouseMove)\r\n document.removeEventListener('mouseup', onMouseUp)\r\n document.head.removeChild(cursorStyle)\r\n setTimeout(() => {\r\n this.infoPopupEditable = true\r\n }, 0)\r\n this.$emit('node-resize-end', {\r\n nodeId: this.node.id,\r\n width: lastW,\r\n height: lastH,\r\n x: lastX,\r\n y: lastY,\r\n })\r\n }\r\n\r\n document.addEventListener('mousemove', onMouseMove)\r\n document.addEventListener('mouseup', onMouseUp)\r\n },\r\n },\r\n}\r\n<\/script>\r\n\r\n<style scoped>\r\n.vue-flow__node {\r\n position: absolute;\r\n cursor: grab;\r\n user-select: none;\r\n pointer-events: all;\r\n box-sizing: border-box;\r\n border: 1px solid #bbb;\r\n border-radius: 3px;\r\n background: #fff;\r\n font-family: 'Microsoft JhengHei', '微軟正黑體', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\r\n font-size: 12px;\r\n text-align: center;\r\n white-space: nowrap;\r\n transition: border-color 0.2s ease, box-shadow 0.3s ease;\r\n}\r\n.vue-flow__node:hover {\r\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);\r\n}\r\n.vue-flow__node--selected {\r\n box-shadow: 0 0 8px 2px rgba(220, 38, 38, 0.5);\r\n}\r\n.vue-flow__node--selected:hover {\r\n box-shadow: 0 0 8px 2px rgba(220, 38, 38, 0.5);\r\n}\r\n.vue-flow__node--dragging {\r\n cursor: grabbing;\r\n z-index: 1000 !important;\r\n}\r\n\r\n/* Settings icon anchor (positioning only) */\r\n.vue-flow__node-settings-anchor {\r\n position: absolute;\r\n top: -8px;\r\n right: -8px;\r\n z-index: 2;\r\n pointer-events: all;\r\n}\r\n/* Settings icon (appearance only) */\r\n.vue-flow__node-settings {\r\n width: 20px;\r\n height: 20px;\r\n border-radius: 50%;\r\n background: #fff;\r\n border: 1px solid #ccc;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n transition: border-color 0.15s ease, background 0.15s ease;\r\n color: #888;\r\n}\r\n.vue-flow__node-settings:hover {\r\n border-color: #666;\r\n background: #f0f0f0;\r\n color: #333;\r\n}\r\n\r\n\r\n/* Shared SVG shape base styles */\r\n.vue-flow__node--diamond,\r\n.vue-flow__node--ellipse,\r\n.vue-flow__node--triangle {\r\n background: transparent !important;\r\n border-color: transparent !important;\r\n border-radius: 0 !important;\r\n}\r\n.vue-flow__node--diamond:hover,\r\n.vue-flow__node--ellipse:hover,\r\n.vue-flow__node--triangle:hover {\r\n box-shadow: none !important;\r\n}\r\n.vue-flow__node--diamond.vue-flow__node--selected,\r\n.vue-flow__node--ellipse.vue-flow__node--selected,\r\n.vue-flow__node--triangle.vue-flow__node--selected {\r\n border-color: transparent !important;\r\n box-shadow: none !important;\r\n}\r\n.vue-flow__node--diamond.vue-flow__node--selected:hover,\r\n.vue-flow__node--ellipse.vue-flow__node--selected:hover,\r\n.vue-flow__node--triangle.vue-flow__node--selected:hover {\r\n border-color: transparent !important;\r\n box-shadow: none !important;\r\n}\r\n/* SVG shape hover */\r\n/* polygon/ellipse live inside the NodeFace child component, so ::v-deep is\r\n required — a plain scoped selector would pin this component's data-v\r\n attribute onto the child's inner elements and never match. */\r\n.vue-flow__node--diamond:hover ::v-deep .vue-flow__shape-svg polygon,\r\n.vue-flow__node--triangle:hover ::v-deep .vue-flow__shape-svg polygon,\r\n.vue-flow__node--ellipse:hover ::v-deep .vue-flow__shape-svg ellipse {\r\n filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.15));\r\n}\r\n/* SVG shape selected: red shadow */\r\n.vue-flow__node--diamond.vue-flow__node--selected ::v-deep .vue-flow__shape-svg polygon,\r\n.vue-flow__node--triangle.vue-flow__node--selected ::v-deep .vue-flow__shape-svg polygon,\r\n.vue-flow__node--ellipse.vue-flow__node--selected ::v-deep .vue-flow__shape-svg ellipse {\r\n filter: drop-shadow(0 0 6px rgba(220, 38, 38, 0.6));\r\n}\r\n/* Fade transition for settings icon and resize handles */\r\n.vue-flow__fade-enter-active,\r\n.vue-flow__fade-leave-active {\r\n transition: opacity 0.15s ease;\r\n}\r\n.vue-flow__fade-enter,\r\n.vue-flow__fade-leave-to {\r\n opacity: 0;\r\n}\r\n</style>\r\n"]},media:void 0})},Kc,"data-v-088e6a01",false,void 0,!1,Zr,void 0,void 0)},props:{nodes:{type:Array,default:()=>[]},selectedNodeIds:{type:Array,default:()=>[]},nodesDraggable:{type:Boolean,default:!0},nodesConnectable:{type:Boolean,default:!0},nodesResizable:{type:Boolean,default:!0},locked:{type:Boolean,default:!1},settingsPopupBackgroundColor:{type:String,default:"#fff"},settingsPopupTextColor:{type:String,default:"#333"},settingsPopupTextFontSize:{type:String,default:"12px"},inforPopupBackgroundColor:{type:String,default:"#fff"},inforPopupTitleTextColor:{type:String,default:"#333"},inforPopupTitleTextFontSize:{type:String,default:"12px"},inforPopupDescriptionTextColor:{type:String,default:"#888"},inforPopupDescriptionTextFontSize:{type:String,default:"10px"},snapGridSize:{type:Number,default:null},settingsEnabled:{type:Boolean,default:!0},settingsExcludes:{type:Array,default:()=>[]}},computed:{visibleNodes(){return this.nodes.filter(n=>!n.hidden)}},methods:{isSelected(n){return this.selectedNodeIds.includes(n)},isDraggable(n){return void 0!==n.draggable?n.draggable:this.nodesDraggable},isConnectable(n){return void 0!==n.connectable?n.connectable:this.nodesConnectable},isResizable(n){return void 0!==n.resizable?n.resizable:this.nodesResizable},openNodeInfoPopup(n){let e=(this.$refs.wrappers||[]).find(e=>e.node&&e.node.id===n);return!!e&&(e.openInfoPopup(),!0)}}};var tp=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{staticClass:"vue-flow__nodes"},n._l(n.visibleNodes,function(e){return t("NodeWrapper",{key:e.id,ref:"wrappers",refInFor:!0,attrs:{node:e,selected:n.isSelected(e.id),draggable:n.isDraggable(e),connectable:n.isConnectable(e),resizable:n.isResizable(e),locked:n.locked,"settings-popup-background-color":n.settingsPopupBackgroundColor,"settings-popup-text-color":n.settingsPopupTextColor,"settings-popup-text-font-size":n.settingsPopupTextFontSize,"infor-popup-background-color":n.inforPopupBackgroundColor,"infor-popup-title-text-color":n.inforPopupTitleTextColor,"infor-popup-title-text-font-size":n.inforPopupTitleTextFontSize,"infor-popup-description-text-color":n.inforPopupDescriptionTextColor,"infor-popup-description-text-font-size":n.inforPopupDescriptionTextFontSize,"snap-grid-size":n.snapGridSize,"settings-enabled":n.settingsEnabled,"settings-excludes":n.settingsExcludes},on:{"drag-start":function(e){return n.$emit("drag-start",e)},"node-click":function(e){return n.$emit("node-click",e)},"node-double-click":function(e){return n.$emit("node-double-click",e)},"node-context-menu":function(e){return n.$emit("node-context-menu",e)},"node-settings-click":function(e){return n.$emit("node-settings-click",e)},"node-settings-update":function(e){return n.$emit("node-settings-update",e)},"node-settings-delete":function(e){return n.$emit("node-settings-delete",e)},"node-mouseenter":function(e){return n.$emit("node-mouseenter",e)},"node-mouseleave":function(e){return n.$emit("node-mouseleave",e)},"connect-start":function(e){return n.$emit("connect-start",e)},dimensions:function(e){return n.$emit("dimensions",e)},"node-resize":function(e){return n.$emit("node-resize",e)},"node-resize-end":function(e){return n.$emit("node-resize-end",e)}},scopedSlots:n._u([n.$scopedSlots["node-popup"]?{key:"node-popup",fn:function(e){return[n._t("node-popup",null,null,e)]}}:null],null,!0)})}),1)};tp._withStripped=!0;const op=Xr({render:tp,staticRenderFns:[]},function(n){n&&n("data-v-ddb0e4d0_0",{source:"\n.vue-flow__nodes[data-v-ddb0e4d0] {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 0;\r\n height: 0;\n}\r\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\nodes\\NodeRenderer.vue"],names:[],mappings:";AAmGA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,QAAA;EACA,SAAA;AACA",file:"NodeRenderer.vue",sourcesContent:['<template>\r\n <div class="vue-flow__nodes">\r\n <NodeWrapper\r\n v-for="node in visibleNodes"\r\n ref="wrappers"\r\n :key="node.id"\r\n :node="node"\r\n :selected="isSelected(node.id)"\r\n :draggable="isDraggable(node)"\r\n :connectable="isConnectable(node)"\r\n :resizable="isResizable(node)"\r\n :locked="locked"\r\n :settings-popup-background-color="settingsPopupBackgroundColor"\r\n :settings-popup-text-color="settingsPopupTextColor"\r\n :settings-popup-text-font-size="settingsPopupTextFontSize"\r\n :infor-popup-background-color="inforPopupBackgroundColor"\r\n :infor-popup-title-text-color="inforPopupTitleTextColor"\r\n :infor-popup-title-text-font-size="inforPopupTitleTextFontSize"\r\n :infor-popup-description-text-color="inforPopupDescriptionTextColor"\r\n :infor-popup-description-text-font-size="inforPopupDescriptionTextFontSize"\r\n :snap-grid-size="snapGridSize"\r\n :settings-enabled="settingsEnabled"\r\n :settings-excludes="settingsExcludes"\r\n @drag-start="$emit(\'drag-start\', $event)"\r\n @node-click="$emit(\'node-click\', $event)"\r\n @node-double-click="$emit(\'node-double-click\', $event)"\r\n @node-context-menu="$emit(\'node-context-menu\', $event)"\r\n @node-settings-click="$emit(\'node-settings-click\', $event)"\r\n @node-settings-update="$emit(\'node-settings-update\', $event)"\r\n @node-settings-delete="$emit(\'node-settings-delete\', $event)"\r\n @node-mouseenter="$emit(\'node-mouseenter\', $event)"\r\n @node-mouseleave="$emit(\'node-mouseleave\', $event)"\r\n @connect-start="$emit(\'connect-start\', $event)"\r\n @dimensions="$emit(\'dimensions\', $event)"\r\n @node-resize="$emit(\'node-resize\', $event)"\r\n @node-resize-end="$emit(\'node-resize-end\', $event)"\r\n >\r\n <template v-if="$scopedSlots[\'node-popup\']" v-slot:node-popup="scope">\r\n <slot name="node-popup" v-bind="scope" />\r\n </template>\r\n </NodeWrapper>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport NodeWrapper from \'./NodeWrapper.vue\'\r\n\r\nexport default {\r\n name: \'NodeRenderer\',\r\n components: { NodeWrapper },\r\n props: {\r\n nodes: { type: Array, default: () => [] },\r\n selectedNodeIds: { type: Array, default: () => [] },\r\n nodesDraggable: { type: Boolean, default: true },\r\n nodesConnectable: { type: Boolean, default: true },\r\n nodesResizable: { type: Boolean, default: true },\r\n locked: { type: Boolean, default: false },\r\n settingsPopupBackgroundColor: { type: String, default: \'#fff\' },\r\n settingsPopupTextColor: { type: String, default: \'#333\' },\r\n settingsPopupTextFontSize: { type: String, default: \'12px\' },\r\n inforPopupBackgroundColor: { type: String, default: \'#fff\' },\r\n inforPopupTitleTextColor: { type: String, default: \'#333\' },\r\n inforPopupTitleTextFontSize: { type: String, default: \'12px\' },\r\n inforPopupDescriptionTextColor: { type: String, default: \'#888\' },\r\n inforPopupDescriptionTextFontSize: { type: String, default: \'10px\' },\r\n snapGridSize: { type: Number, default: null },\r\n settingsEnabled: { type: Boolean, default: true },\r\n settingsExcludes: { type: Array, default: () => [] },\r\n },\r\n computed: {\r\n visibleNodes() {\r\n return this.nodes.filter(n => !n.hidden)\r\n },\r\n },\r\n methods: {\r\n isSelected(id) {\r\n return this.selectedNodeIds.includes(id)\r\n },\r\n isDraggable(node) {\r\n return node.draggable !== undefined ? node.draggable : this.nodesDraggable\r\n },\r\n isConnectable(node) {\r\n return node.connectable !== undefined ? node.connectable : this.nodesConnectable\r\n },\r\n isResizable(node) {\r\n return node.resizable !== undefined ? node.resizable : this.nodesResizable\r\n },\r\n openNodeInfoPopup(nodeId) {\r\n let wrappers = this.$refs.wrappers || []\r\n let w = wrappers.find(c => c.node && c.node.id === nodeId)\r\n if (!w) return false\r\n w.openInfoPopup()\r\n return true\r\n },\r\n },\r\n}\r\n<\/script>\r\n\r\n<style scoped>\r\n.vue-flow__nodes {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 0;\r\n height: 0;\r\n}\r\n</style>\r\n']},media:void 0})},ep,"data-v-ddb0e4d0",false,void 0,!1,Zr,void 0,void 0);let rp=new Map,ip=-1;function ap(){rp.clear(),ip=-1}function sp(n,e,t,o,r,i,a,s,l,d,u){let c=Math.floor(Date.now()/16);c!==ip&&(rp.clear(),ip=c);let p=Math.round(n/10)+","+Math.round(e/10)+","+Math.round(o/10)+","+Math.round(r/10)+","+t+","+i,f=rp.get(p);if(f)return f;let h=[];if(s&&s.length>0){let n=l||{};for(let e=0;e<s.length;e++){let t=s[e];if(t.hidden)continue;let o=n[t.id]&&n[t.id].width||t.width||100,r=n[t.id]&&n[t.id].height||t.height||40;h.push({l:t.position.x,t:t.position.y,r:t.position.x+o,b:t.position.y+r})}}let g=lp(h,n,e),v=lp(h,o,r),m=function(n,e,t,o,r,i,a,s,l){if(!a||!s)return null;let d=bp(t),u=bp(i),c=[[a.l,a.t,a.r-a.l,a.b-a.t],[s.l,s.t,s.r-s.l,s.b-s.t]],p=n-o,f=e-r,h=2*l;if(p*p+f*f<h*h)return null;let g=[[],[]];for(let n=0;n<2;n++)g[n][1]=c[n][0]-l,g[n][2]=c[n][1]-l,g[n][4]=c[n][0]+c[n][2]+l,g[n][8]=c[n][1]+c[n][3]+l;let v=[[.5,.5],[.5,.5]],m=c[0][2]||1,A=c[0][3]||1,b=c[1][2]||1,y=c[1][3]||1;v[0][0]=(n-c[0][0])/m,v[0][1]=(e-c[0][1])/A,v[1][0]=(o-c[1][0])/b,v[1][1]=(r-c[1][1])/y;let C=c[0][0]+c[0][2]/2,x=c[0][1]+c[0][3]/2,w=c[1][0]+c[1][2]/2,S=c[1][1]+c[1][3]/2,k=C-w,_=x-S,B=0;k<0?B=_<0?2:1:_<=0&&(B=0===k?2:3);let P=[];P[1]=Math.max(c[0][0]-(c[1][0]+c[1][2])-h,0),P[2]=Math.max(c[0][1]-(c[1][1]+c[1][3])-h,0),P[3]=Math.max(c[1][0]-(c[0][0]+c[0][2])-h,0),P[4]=Math.max(c[1][1]-(c[0][1]+c[0][3])-h,0);let T=d===pp?3:d,E=u===pp?3:u;T-=B,E-=B,T<1&&(T+=4);E<1&&(E+=4);let z=Ap[T-1][E-1],I=[];for(let n=0;n<12;n++)I[n]=[0,0];switch(I[0][0]=c[0][0],I[0][1]=c[0][1],d){case dp:I[0][0]-=l,I[0][1]+=v[0][1]*c[0][3];break;case cp:I[0][0]+=v[0][0]*c[0][2],I[0][1]+=c[0][3]+l;break;case pp:I[0][0]+=c[0][2]+l,I[0][1]+=v[0][1]*c[0][3];break;case up:I[0][0]+=v[0][0]*c[0][2],I[0][1]-=l}let F=0,H=(d&(pp|dp))>0?0:1,N=H;for(let n=0;n<z.length;n++){let e=15&z[n],t=e===pp?3:e;t+=B,t>4&&(t-=4);let o=mp[t-1],r=t%2>0?0:1;r!==H&&(F++,I[F]=[I[F-1][0],I[F-1][1]]);let i=(z[n]&vp)>0,a=(z[n]&gp)>0,s=(z[n]&fp)>>5;s<<=B,s>15&&(s>>=4);let l=(z[n]&hp)>0;if((a||i)&&s<9){let n,e=a?0:1;if(n=l&&0===r?c[e][0]+v[e][0]*c[e][2]:l?c[e][1]+v[e][1]*c[e][3]:g[e][s],0===r){let e=(n-I[F][0])*o[0];e>0&&(I[F][0]+=o[0]*e)}else{let e=(n-I[F][1])*o[1];e>0&&(I[F][1]+=o[1]*e)}}else l&&(I[F][0]+=o[0]*Math.abs(P[t]/2),I[F][1]+=o[1]*Math.abs(P[t]/2));F>0&&I[F][r]===I[F-1][r]?F--:H=r}let W=[{x:n,y:e}],$=((u&(pp|dp))>0?0:1)===N?0:1;for(let n=0;n<=F&&(n!==F||$===(F+1)%2);n++)W.push({x:Math.round(10*I[n][0])/10,y:Math.round(10*I[n][1])/10});W.push({x:o,y:r});let M=[W[0]];for(let n=1;n<W.length;n++)(Math.abs(W[n].x-M[M.length-1].x)>.5||Math.abs(W[n].y-M[M.length-1].y)>.5)&&M.push(W[n]);return M}(n,e,t,o,r,i,g,v,a||24);return m||(m=function(n,e,t,o,r,i){let a=[{x:n,y:e}];i&&t>=i.l&&t<=i.r&&e>=i.t&&e<=i.b?r&&n>=r.l&&n<=r.r&&o>=r.t&&o<=r.b||a.push({x:n,y:o}):n!==t&&e!==o&&a.push({x:t,y:e});return a.push({x:t,y:o}),a}(n,e,o,r,g,v)),rp.size>200&&rp.clear(),rp.set(p,m),m}function lp(n,e,t){for(let o=0;o<n.length;o++){let r=n[o];if(e>=r.l-5&&e<=r.r+5&&t>=r.t-5&&t<=r.b+5)return r}return null}let dp=1,up=2,cp=4,pp=8,fp=480,hp=512,gp=1024,vp=2048,mp=[[-1,0],[0,-1],[1,0],[0,1],[-1,0],[0,-1],[1,0]],Ap=[[[513,2308,2081,2562],[513,1090,514,2184,2114,2561],[513,1090,514,2564,2184,2562],[513,2308,2561,1090,514,2568,2308]],[[514,1057,513,2308,2081,2562],[514,2184,2114,2561],[514,2184,2562,1057,513,2564,2184],[514,1057,513,2568,2308,2561]],[[1090,514,1057,513,2308,2081,2562],[2114,2561],[1090,2562,1057,513,2564,2184],[1090,514,1057,513,2308,2561,2568]],[[2081,2562],[1057,513,1090,514,2184,2114,2561],[1057,513,1090,514,2184,2562,2564],[1057,2561,1090,514,2568,2308]]];function bp(n){switch(n){case"left":return dp;case"top":return up;case"right":return pp;default:return cp}}function yp(n){if(!Array.isArray(n)||0===n.length)return null;const e=[];for(const t of n){let n=null,o=null;if(Array.isArray(t)&&t.length>=2?(n=Number(t[0]),o=Number(t[1])):t&&"object"==typeof t&&(n=Number(t.x),o=Number(t.y)),!Number.isFinite(n)||!Number.isFinite(o))return null;e.push({x:n,y:o})}return e}function Cp(n,e,t,o,r,i,a){const s=[{x:n,y:e}],l=n=>{const e=s[s.length-1];(Math.abs(n.x-e.x)>.5||Math.abs(n.y-e.y)>.5)&&s.push({x:n.x,y:n.y})};let d="left"===t||"right"===t;for(let n=0;n<a.length;n++){const e=a[n],t=s[s.length-1],o=Math.abs(e.x-t.x),r=Math.abs(e.y-t.y);let i;o>.5&&r>.5?(l(d?{x:e.x,y:t.y}:{x:t.x,y:e.y}),i=!d):i=o>.5,l(e),d=!i}const u=s[s.length-1],c="left"===i||"right"===i;return Math.abs(o-u.x)>.5&&Math.abs(r-u.y)>.5&&l(c?{x:u.x,y:r}:{x:o,y:u.y}),l({x:o,y:r}),s}function xp(n,e){switch(e){case"top":return{x:0,y:-n};case"bottom":return{x:0,y:n};case"left":return{x:-n,y:0};case"right":return{x:n,y:0};default:return{x:0,y:0}}}function wp({sourceX:n,sourceY:e,sourcePosition:t="bottom",targetX:o,targetY:r,targetPosition:i="top",curvature:a=.25,points:s}){const l=yp(s);if(l){const t=[{x:n,y:e},...l,{x:o,y:r}];let i=`M ${t[0].x},${t[0].y}`;for(let n=0;n<t.length-1;n++){const e=t[n-1]||t[n],o=t[n],r=t[n+1],a=t[n+2]||r;i+=` C ${o.x+(r.x-e.x)/6},${o.y+(r.y-e.y)/6} ${r.x-(a.x-o.x)/6},${r.y-(a.y-o.y)/6} ${r.x},${r.y}`}const a=Bp(t);return{path:i,labelX:a.x,labelY:a.y}}const d=Math.sqrt(Math.pow(o-n,2)+Math.pow(r-e,2)),u=Math.max(d*a,25),c=xp(u,t),p=xp(u,i),f=n+c.x,h=e+c.y,g=o+p.x,v=r+p.y;return{path:`M ${n},${e} C ${f},${h} ${g},${v} ${o},${r}`,labelX:(n+f+g+o)/4,labelY:(e+h+v+r)/4}}function Sp({sourceX:n,sourceY:e,targetX:t,targetY:o,points:r}){const i=yp(r);if(i){const r=[{x:n,y:e},...i,{x:t,y:o}],a=r.map((n,e)=>`${0===e?"M":"L"} ${n.x},${n.y}`).join(" "),s=Bp(r);return{path:a,labelX:s.x,labelY:s.y}}return{path:`M ${n},${e} L ${t},${o}`,labelX:(n+t)/2,labelY:(e+o)/2}}function kp({sourceX:n,sourceY:e,sourcePosition:t="bottom",targetX:o,targetY:r,targetPosition:i="top",offset:a=20,allNodes:s,nodeInternals:l,connFromId:d,connToId:u,points:c}){const p=yp(c),f=p?Cp(n,e,t,o,r,i,p):sp(n,e,t,o,r,i,a,s,l),h=f.map((n,e)=>`${0===e?"M":"L"} ${n.x},${n.y}`).join(" "),g=Bp(f);return{path:h,labelX:g.x,labelY:g.y}}function _p({sourceX:n,sourceY:e,sourcePosition:t="bottom",targetX:o,targetY:r,targetPosition:i="top",borderRadius:a=5,offset:s=20,allNodes:l,nodeInternals:d,connFromId:u,connToId:c,points:p}){const f=yp(p);return function(n,e){if(n.length<=2)return{path:`M ${n[0].x},${n[0].y} L ${n[1].x},${n[1].y}`,labelX:(n[0].x+n[1].x)/2,labelY:(n[0].y+n[1].y)/2};let t=`M ${n[0].x},${n[0].y}`;for(let o=1;o<n.length-1;o++){const r=n[o-1],i=n[o],a=n[o+1],s=i.x-r.x,l=i.y-r.y,d=a.x-i.x,u=a.y-i.y,c=Math.sqrt(s*s+l*l),p=Math.sqrt(d*d+u*u);if(0===c||0===p){t+=` L ${i.x},${i.y}`;continue}const f=Math.min(e,c/2,p/2),h=i.x-s/c*f,g=i.y-l/c*f,v=i.x+d/p*f,m=i.y+u/p*f;t+=` L ${h},${g} Q ${i.x},${i.y} ${v},${m}`}t+=` L ${n[n.length-1].x},${n[n.length-1].y}`;const o=Bp(n);return{path:t,labelX:o.x,labelY:o.y}}(f?Cp(n,e,t,o,r,i,f):sp(n,e,t,o,r,i,s,l,d),a)}function Bp(n){if(n.length<2)return{x:n[0].x,y:n[0].y};let e=0;for(let t=0;t<n.length-1;t++)e+=Math.abs(n[t+1].x-n[t].x)+Math.abs(n[t+1].y-n[t].y);let t=e/2,o=0;for(let e=0;e<n.length-1;e++){let r=Math.abs(n[e+1].x-n[e].x)+Math.abs(n[e+1].y-n[e].y);if(o+r>=t){let i=r>0?(t-o)/r:0;return{x:n[e].x+(n[e+1].x-n[e].x)*i,y:n[e].y+(n[e+1].y-n[e].y)*i}}o+=r}return{x:n[n.length-1].x,y:n[n.length-1].y}}function Pp(n,e,t,o){const r=t||{},i=r.width||n.width||150,a=r.height||n.height||40,s=n.position.x,l=n.position.y,d="diamond"===n.shape,u="ellipse"===n.shape,c=n.shape,p="triangle"===c||"triangle-right"===c||"triangle-down"===c||"triangle-left"===c,f="basic"===n.type&&(n.toPosition||"bottom")===(n.fromPosition||"top");let h=.5;if(f&&"target"===o&&(h=.33),f&&"source"===o&&(h=.67),d&&f)return function(n,e,t,o,r,i){let a=t/2,s=o/2;switch(r){case"top":if(i<=.5){let t=2*i;return{x:n+t*a,y:e+s-t*s}}{let t=2*(i-.5);return{x:n+a+t*a,y:e+t*s}}case"bottom":if(i<=.5){let t=2*i;return{x:n+t*a,y:e+s+t*s}}{let t=2*(i-.5);return{x:n+a+t*a,y:e+o-t*s}}case"left":if(i<=.5){let t=2*i;return{x:n+a-t*a,y:e+t*s}}{let t=2*(i-.5);return{x:n+t*a,y:e+s+t*s}}case"right":if(i<=.5){let t=2*i;return{x:n+a+t*a,y:e+t*s}}{let o=2*(i-.5);return{x:n+t-o*a,y:e+s+o*s}}default:return{x:n+a,y:e+o}}}(s,l,i,a,e,h);if(u)return function(n,e,t,o,r,i){let a,s=n+t/2,l=e+o/2,d=t/2,u=o/2;switch(r){case"top":a=Math.PI*(1-i);break;case"bottom":a=Math.PI*(i-1);break;case"left":a=Math.PI*(.5+i);break;case"right":a=Math.PI*(.5-i);break;default:a=0}return{x:s+d*Math.cos(a),y:l-u*Math.sin(a)}}(s,l,i,a,e,h);if(p)return function(n,e,t,o,r,i,a){let s,l,d,u,c,p,f;"triangle-right"===a?(s={x:n+t,y:e+o/2},l={x:n,y:e},d={x:n,y:e+o},u="right",c="left",p="top",f="bottom"):"triangle-down"===a?(s={x:n+t/2,y:e+o},l={x:n,y:e},d={x:n+t,y:e},u="bottom",c="top",p="left",f="right"):"triangle-left"===a?(s={x:n,y:e+o/2},l={x:n+t,y:e},d={x:n+t,y:e+o},u="left",c="right",p="top",f="bottom"):(s={x:n+t/2,y:e},l={x:n,y:e+o},d={x:n+t,y:e+o},u="top",c="bottom",p="left",f="right");if(r===u){if(i<=.5){let n=2*i;return{x:l.x+(s.x-l.x)*n,y:l.y+(s.y-l.y)*n}}{let n=2*(i-.5);return{x:s.x+(d.x-s.x)*n,y:s.y+(d.y-s.y)*n}}}if(r===c)return{x:l.x+(d.x-l.x)*i,y:l.y+(d.y-l.y)*i};if(r===p)return{x:s.x+(l.x-s.x)*i,y:s.y+(l.y-s.y)*i};if(r===f)return{x:s.x+(d.x-s.x)*i,y:s.y+(d.y-s.y)*i};return{x:n+t/2,y:e+o/2}}(s,l,i,a,e,h,c);switch(e){case"top":return{x:s+i*h,y:l};case"bottom":return{x:s+i*h,y:l+a};case"left":return{x:s,y:l+a*h};case"right":return{x:s+i,y:l+a*h};default:return{x:s+i/2,y:l+a}}}function Tp(n,e){return e?{x:Math.round(n.x/e)*e,y:Math.round(n.y/e)*e}:n}var Ep={components:{WColorSelect:Zc},props:{conn:{type:Object,required:!0},defConn:{type:Object,required:!0},textFontSize:{type:String,default:""},excludes:{type:Array,default:()=>[]},defaultPoint:{type:Object,default:null},targetPoint:{type:Object,default:null}},data(){return{confirmDelete:!1,ptsLocal:this.normalizePoints(this.conn.points)}},computed:{formStyle(){let n={};return this.textFontSize&&(n.fontSize=this.textFontSize),n}},watch:{"conn.points":function(n){JSON.stringify(this.normalizePoints(n))!==JSON.stringify(this.ptsLocal)&&(this.ptsLocal=this.normalizePoints(n))}},methods:{isEx(n){return this.excludes.indexOf(n)>=0},normalizePoints(n){if(!Array.isArray(n))return[];const e=[];for(const t of n)Array.isArray(t)&&t.length>=2?e.push([Number(t[0])||0,Number(t[1])||0]):t&&"object"==typeof t&&e.push([Number(t.x)||0,Number(t.y)||0]);return e},emitWaypoints(){this.$emit("update","points",this.ptsLocal.length?this.ptsLocal.map(n=>[n[0],n[1]]):null)},addWaypoint(){const n=this.ptsLocal[this.ptsLocal.length-1];let e;e=n?this.targetPoint?[Math.round((n[0]+this.targetPoint.x)/2),Math.round((n[1]+this.targetPoint.y)/2)]:[n[0]+40,n[1]+40]:this.defaultPoint?[Math.round(this.defaultPoint.x),Math.round(this.defaultPoint.y)]:this.targetPoint?[Math.round(this.targetPoint.x)-40,Math.round(this.targetPoint.y)-40]:[0,0],this.ptsLocal.push(e),this.emitWaypoints()},removeWaypoint(n){this.ptsLocal.splice(n,1),this.emitWaypoints()},onWaypointInput(n,e,t){const o=Number(t);""===t||isNaN(o)||(this.$set(this.ptsLocal[n],e,o),this.emitWaypoints())},onFontSizeInput(n){let e=Number(n),t=this.defConn;!n||isNaN(e)||e<t.fontSizeMin||(e>t.fontSizeMax&&(e=t.fontSizeMax),this.$emit("update","fontSize",e))},onEdgeWidthInput(n){let e=Number(n);!n||isNaN(e)||e<1||(e>24&&(e=24),this.$emit("update","edgeWidth",e))}}};const zp=Ep;var Ip=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{staticClass:"vue-flow__settings-form",style:n.formStyle},[n.isEx("name")?n._e():t("label",[n._v("Name\n "),t("input",{attrs:{type:"text"},domProps:{value:n.conn.name||""},on:{input:function(e){return n.$emit("update","name",e.target.value)}}})]),n._v(" "),n.isEx("description")?n._e():t("label",[n._v("Description\n "),t("input",{attrs:{type:"text"},domProps:{value:n.conn.description||""},on:{input:function(e){return n.$emit("update","description",e.target.value)}}})]),n._v(" "),n.isEx("type")?n._e():t("label",[n._v("Type\n "),t("select",{domProps:{value:n.conn.type||n.defConn.type},on:{input:function(e){return n.$emit("update","type",e.target.value)}}},[t("option",{attrs:{value:"bezier"}},[n._v("Bezier")]),n._v(" "),t("option",{attrs:{value:"straight"}},[n._v("Straight")]),n._v(" "),t("option",{attrs:{value:"step"}},[n._v("Step")]),n._v(" "),t("option",{attrs:{value:"smoothstep"}},[n._v("Smooth Step")])])]),n._v(" "),n.isEx("fontSize")?n._e():t("label",[n._v("Font Size\n "),t("input",{attrs:{type:"number",min:n.defConn.fontSizeMin,max:n.defConn.fontSizeMax},domProps:{value:n.conn.fontSize||n.defConn.fontSize},on:{input:function(e){return n.onFontSizeInput(e.target.value)}}})]),n._v(" "),n.isEx("fontColor")?n._e():t("label",[n._v("Font Color\n "),t("WColorSelect",{attrs:{value:n.conn.fontColor||n.defConn.fontColor,size:160,colorBlockSize:16,showColorText:!1},on:{input:function(e){return n.$emit("update","fontColor",e)}}})],1),n._v(" "),n.isEx("animated")?n._e():t("label",[n._v("Animated\n "),t("input",{attrs:{type:"checkbox"},domProps:{checked:!!n.conn.animated},on:{change:function(e){return n.$emit("update","animated",e.target.checked)}}})]),n._v(" "),n.isEx("edgeColor")?n._e():t("label",[n._v("Edge Color\n "),t("WColorSelect",{attrs:{value:n.conn.edgeColor||n.defConn.edgeColor,size:160,colorBlockSize:16,showColorText:!1},on:{input:function(e){return n.$emit("update","edgeColor",e)}}})],1),n._v(" "),n.isEx("edgeWidth")?n._e():t("label",[n._v("Edge Width\n "),t("input",{attrs:{type:"number",min:"1",max:"24"},domProps:{value:void 0!==n.conn.edgeWidth?n.conn.edgeWidth:n.defConn.edgeWidth},on:{input:function(e){return n.onEdgeWidthInput(e.target.value)}}})]),n._v(" "),n.isEx("markerEnd")?n._e():t("label",[n._v("Marker End\n "),t("select",{domProps:{value:n.conn.markerEnd||n.defConn.markerEnd},on:{input:function(e){return n.$emit("update","markerEnd",e.target.value||void 0)}}},[t("option",{attrs:{value:""}},[n._v("None")]),n._v(" "),t("option",{attrs:{value:"arrow"}},[n._v("Arrow")]),n._v(" "),t("option",{attrs:{value:"arrowclosed"}},[n._v("Arrow Closed")])])]),n._v(" "),n.isEx("fromPosition")?n._e():t("label",[n._v("From Anchor\n "),t("select",{domProps:{value:n.conn.fromPosition||""},on:{input:function(e){return n.$emit("update","fromPosition",e.target.value||void 0)}}},[t("option",{attrs:{value:""}},[n._v("Auto")]),n._v(" "),t("option",{attrs:{value:"top"}},[n._v("Top")]),n._v(" "),t("option",{attrs:{value:"right"}},[n._v("Right")]),n._v(" "),t("option",{attrs:{value:"bottom"}},[n._v("Bottom")]),n._v(" "),t("option",{attrs:{value:"left"}},[n._v("Left")])])]),n._v(" "),n.isEx("toPosition")?n._e():t("label",[n._v("To Anchor\n "),t("select",{domProps:{value:n.conn.toPosition||""},on:{input:function(e){return n.$emit("update","toPosition",e.target.value||void 0)}}},[t("option",{attrs:{value:""}},[n._v("Auto")]),n._v(" "),t("option",{attrs:{value:"top"}},[n._v("Top")]),n._v(" "),t("option",{attrs:{value:"right"}},[n._v("Right")]),n._v(" "),t("option",{attrs:{value:"bottom"}},[n._v("Bottom")]),n._v(" "),t("option",{attrs:{value:"left"}},[n._v("Left")])])]),n._v(" "),n.isEx("points")?n._e():t("div",{staticClass:"vue-flow__waypoints"},[t("div",{staticClass:"vue-flow__waypoints-head"},[t("span",[n._v("Waypoints")]),n._v(" "),t("button",{staticClass:"vue-flow__waypoints-add",attrs:{title:"新增轉折點"},on:{click:n.addWaypoint}},[n._v("+")])]),n._v(" "),n._l(n.ptsLocal,function(e,o){return t("div",{key:"wp"+o,staticClass:"vue-flow__waypoints-row"},[t("span",{staticClass:"vue-flow__waypoints-idx"},[n._v(n._s(o+1))]),n._v(" "),t("input",{attrs:{type:"number",title:"X"},domProps:{value:e[0]},on:{input:function(e){return n.onWaypointInput(o,0,e.target.value)}}}),n._v(" "),t("input",{attrs:{type:"number",title:"Y"},domProps:{value:e[1]},on:{input:function(e){return n.onWaypointInput(o,1,e.target.value)}}}),n._v(" "),t("button",{staticClass:"vue-flow__waypoints-del",attrs:{title:"移除此轉折點"},on:{click:function(e){return n.removeWaypoint(o)}}},[n._v("×")])])}),n._v(" "),n.ptsLocal.length?n._e():t("div",{staticClass:"vue-flow__waypoints-empty"},[n._v("無(自動路由)")])],2),n._v(" "),t("div",{staticClass:"vue-flow__delete-area"},[n.confirmDelete?[t("span",{staticClass:"vue-flow__delete-warn"},[n._v("確定要刪除此連接線?")]),n._v(" "),t("div",{staticClass:"vue-flow__delete-confirm-row"},[t("button",{staticClass:"vue-flow__delete-btn",on:{click:function(e){return n.$emit("delete")}}},[n._v("確認刪除")]),n._v(" "),t("button",{staticClass:"vue-flow__delete-btn vue-flow__delete-btn--cancel",on:{click:function(e){n.confirmDelete=!1}}},[n._v("取消")])])]:t("button",{staticClass:"vue-flow__delete-btn",on:{click:function(e){n.confirmDelete=!0}}},[n._v("刪除連接線")])],2)])};Ip._withStripped=!0;const Fp=Xr({render:Ip,staticRenderFns:[]},function(n){n&&n("data-v-c733b55c_0",{source:'\n.vue-flow__settings-form {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 8px;\r\n min-width: 180px;\n}\n.vue-flow__settings-form label {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n gap: 8px;\r\n font-size: 12px;\n}\n.vue-flow__settings-form select,\r\n.vue-flow__settings-form input[type="number"],\r\n.vue-flow__settings-form input[type="text"] {\r\n width: 100px;\r\n font-size: 12px;\r\n padding: 1px 4px;\r\n border: 1px solid #ccc;\r\n border-radius: 3px;\n}\n.vue-flow__settings-form input[type="color"] {\r\n width: 32px;\r\n height: 24px;\r\n padding: 0;\r\n border: 1px solid #ccc;\r\n cursor: pointer;\r\n flex-shrink: 0;\n}\n.vue-flow__waypoints {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 4px;\r\n padding-top: 6px;\r\n border-top: 1px solid #eee;\r\n font-size: 12px;\n}\n.vue-flow__waypoints-head {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\n}\n.vue-flow__waypoints-add {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 20px;\r\n height: 20px;\r\n padding: 0;\r\n border: 1px solid #ccc;\r\n border-radius: 3px;\r\n background: #fff;\r\n color: #666;\r\n cursor: pointer;\r\n font-size: 12px;\r\n line-height: 1;\n}\n.vue-flow__waypoints-add:hover {\r\n border-color: #666;\r\n color: #333;\n}\n.vue-flow__waypoints-row {\r\n display: flex;\r\n align-items: center;\r\n gap: 4px;\n}\n.vue-flow__waypoints-idx {\r\n width: 14px;\r\n color: #999;\r\n font-size: 11px;\r\n text-align: right;\n}\n.vue-flow__waypoints-row input[type="number"] {\r\n width: 62px;\r\n font-size: 12px;\r\n padding: 1px 4px;\r\n border: 1px solid #ccc;\r\n border-radius: 3px;\n}\n.vue-flow__waypoints-del {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 18px;\r\n height: 18px;\r\n padding: 0;\r\n border: 1px solid #ccc;\r\n border-radius: 3px;\r\n background: #fff;\r\n color: #999;\r\n cursor: pointer;\r\n font-size: 13px;\r\n line-height: 1;\r\n flex-shrink: 0;\n}\n.vue-flow__waypoints-del:hover {\r\n border-color: #dc2626;\r\n color: #dc2626;\n}\n.vue-flow__waypoints-empty {\r\n color: #aaa;\r\n font-size: 11px;\n}\n.vue-flow__delete-area {\r\n margin-top: 4px;\r\n padding-top: 8px;\r\n border-top: 1px solid #eee;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-end;\n}\n.vue-flow__delete-warn {\r\n display: block;\r\n font-size: 11px;\r\n color: #c00;\r\n margin-bottom: 4px;\r\n text-align: right;\n}\n.vue-flow__delete-confirm-row {\r\n display: flex;\r\n gap: 6px;\n}\n.vue-flow__delete-btn {\r\n padding: 3px 10px;\r\n font-size: 11px;\r\n border: 1px solid #dc2626;\r\n border-radius: 3px;\r\n color: #fff;\r\n background: #dc2626;\r\n cursor: pointer;\n}\n.vue-flow__delete-btn:hover {\r\n background: #b91c1c;\r\n border-color: #b91c1c;\n}\n.vue-flow__delete-btn--cancel {\r\n color: #666;\r\n background: #fff;\r\n border-color: #ccc;\n}\n.vue-flow__delete-btn--cancel:hover {\r\n background: #f5f5f5;\r\n border-color: #ccc;\n}\r\n',map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\ui\\ConnSettingsForm.vue"],names:[],mappings:";AAsLA;EACA,aAAA;EACA,sBAAA;EACA,QAAA;EACA,gBAAA;AACA;AACA;EACA,aAAA;EACA,8BAAA;EACA,mBAAA;EACA,QAAA;EACA,eAAA;AACA;AACA;;;EAGA,YAAA;EACA,eAAA;EACA,gBAAA;EACA,sBAAA;EACA,kBAAA;AACA;AACA;EACA,WAAA;EACA,YAAA;EACA,UAAA;EACA,sBAAA;EACA,eAAA;EACA,cAAA;AACA;AACA;EACA,aAAA;EACA,sBAAA;EACA,QAAA;EACA,gBAAA;EACA,0BAAA;EACA,eAAA;AACA;AACA;EACA,aAAA;EACA,8BAAA;EACA,mBAAA;AACA;AACA;EACA,oBAAA;EACA,mBAAA;EACA,uBAAA;EACA,WAAA;EACA,YAAA;EACA,UAAA;EACA,sBAAA;EACA,kBAAA;EACA,gBAAA;EACA,WAAA;EACA,eAAA;EACA,eAAA;EACA,cAAA;AACA;AACA;EACA,kBAAA;EACA,WAAA;AACA;AACA;EACA,aAAA;EACA,mBAAA;EACA,QAAA;AACA;AACA;EACA,WAAA;EACA,WAAA;EACA,eAAA;EACA,iBAAA;AACA;AACA;EACA,WAAA;EACA,eAAA;EACA,gBAAA;EACA,sBAAA;EACA,kBAAA;AACA;AACA;EACA,oBAAA;EACA,mBAAA;EACA,uBAAA;EACA,WAAA;EACA,YAAA;EACA,UAAA;EACA,sBAAA;EACA,kBAAA;EACA,gBAAA;EACA,WAAA;EACA,eAAA;EACA,eAAA;EACA,cAAA;EACA,cAAA;AACA;AACA;EACA,qBAAA;EACA,cAAA;AACA;AACA;EACA,WAAA;EACA,eAAA;AACA;AACA;EACA,eAAA;EACA,gBAAA;EACA,0BAAA;EACA,aAAA;EACA,sBAAA;EACA,qBAAA;AACA;AACA;EACA,cAAA;EACA,eAAA;EACA,WAAA;EACA,kBAAA;EACA,iBAAA;AACA;AACA;EACA,aAAA;EACA,QAAA;AACA;AACA;EACA,iBAAA;EACA,eAAA;EACA,yBAAA;EACA,kBAAA;EACA,WAAA;EACA,mBAAA;EACA,eAAA;AACA;AACA;EACA,mBAAA;EACA,qBAAA;AACA;AACA;EACA,WAAA;EACA,gBAAA;EACA,kBAAA;AACA;AACA;EACA,mBAAA;EACA,kBAAA;AACA",file:"ConnSettingsForm.vue",sourcesContent:['<template>\r\n <div class="vue-flow__settings-form" :style="formStyle">\r\n <label v-if="!isEx(\'name\')">Name\r\n <input type="text" :value="conn.name || \'\'" @input="$emit(\'update\', \'name\', $event.target.value)">\r\n </label>\r\n <label v-if="!isEx(\'description\')">Description\r\n <input type="text" :value="conn.description || \'\'" @input="$emit(\'update\', \'description\', $event.target.value)">\r\n </label>\r\n <label v-if="!isEx(\'type\')">Type\r\n <select :value="conn.type || defConn.type" @input="$emit(\'update\', \'type\', $event.target.value)">\r\n <option value="bezier">Bezier</option>\r\n <option value="straight">Straight</option>\r\n <option value="step">Step</option>\r\n <option value="smoothstep">Smooth Step</option>\r\n </select>\r\n </label>\r\n <label v-if="!isEx(\'fontSize\')">Font Size\r\n <input type="number" :value="conn.fontSize || defConn.fontSize" :min="defConn.fontSizeMin" :max="defConn.fontSizeMax" @input="onFontSizeInput($event.target.value)">\r\n </label>\r\n <label v-if="!isEx(\'fontColor\')">Font Color\r\n <WColorSelect :value="conn.fontColor || defConn.fontColor" :size="160" :colorBlockSize="16" :showColorText="false" @input="$emit(\'update\', \'fontColor\', $event)" />\r\n </label>\r\n <label v-if="!isEx(\'animated\')">Animated\r\n <input type="checkbox" :checked="!!conn.animated" @change="$emit(\'update\', \'animated\', $event.target.checked)">\r\n </label>\r\n <label v-if="!isEx(\'edgeColor\')">Edge Color\r\n <WColorSelect :value="conn.edgeColor || defConn.edgeColor" :size="160" :colorBlockSize="16" :showColorText="false" @input="$emit(\'update\', \'edgeColor\', $event)" />\r\n </label>\r\n <label v-if="!isEx(\'edgeWidth\')">Edge Width\r\n <input type="number" :value="conn.edgeWidth !== undefined ? conn.edgeWidth : defConn.edgeWidth" min="1" max="24" @input="onEdgeWidthInput($event.target.value)">\r\n </label>\r\n <label v-if="!isEx(\'markerEnd\')">Marker End\r\n <select :value="conn.markerEnd || defConn.markerEnd" @input="$emit(\'update\', \'markerEnd\', $event.target.value || undefined)">\r\n <option value="">None</option>\r\n <option value="arrow">Arrow</option>\r\n <option value="arrowclosed">Arrow Closed</option>\r\n </select>\r\n </label>\r\n \x3c!-- 逐邊錨點方位: 此連線於起點節點之連出方位/迄點節點之連入方位; Auto=回退節點層級/預設 --\x3e\r\n <label v-if="!isEx(\'fromPosition\')">From Anchor\r\n <select :value="conn.fromPosition || \'\'" @input="$emit(\'update\', \'fromPosition\', $event.target.value || undefined)">\r\n <option value="">Auto</option>\r\n <option value="top">Top</option>\r\n <option value="right">Right</option>\r\n <option value="bottom">Bottom</option>\r\n <option value="left">Left</option>\r\n </select>\r\n </label>\r\n <label v-if="!isEx(\'toPosition\')">To Anchor\r\n <select :value="conn.toPosition || \'\'" @input="$emit(\'update\', \'toPosition\', $event.target.value || undefined)">\r\n <option value="">Auto</option>\r\n <option value="top">Top</option>\r\n <option value="right">Right</option>\r\n <option value="bottom">Bottom</option>\r\n <option value="left">Left</option>\r\n </select>\r\n </label>\r\n <div v-if="!isEx(\'points\')" class="vue-flow__waypoints">\r\n <div class="vue-flow__waypoints-head">\r\n <span>Waypoints</span>\r\n <button class="vue-flow__waypoints-add" title="新增轉折點" @click="addWaypoint">+</button>\r\n </div>\r\n <div v-for="(p, i) in ptsLocal" :key="\'wp\' + i" class="vue-flow__waypoints-row">\r\n <span class="vue-flow__waypoints-idx">{{ i + 1 }}</span>\r\n <input type="number" :value="p[0]" title="X" @input="onWaypointInput(i, 0, $event.target.value)">\r\n <input type="number" :value="p[1]" title="Y" @input="onWaypointInput(i, 1, $event.target.value)">\r\n <button class="vue-flow__waypoints-del" title="移除此轉折點" @click="removeWaypoint(i)">×</button>\r\n </div>\r\n <div v-if="!ptsLocal.length" class="vue-flow__waypoints-empty">無(自動路由)</div>\r\n </div>\r\n <div class="vue-flow__delete-area">\r\n <button v-if="!confirmDelete" class="vue-flow__delete-btn" @click="confirmDelete = true">刪除連接線</button>\r\n <template v-else>\r\n <span class="vue-flow__delete-warn">確定要刪除此連接線?</span>\r\n <div class="vue-flow__delete-confirm-row">\r\n <button class="vue-flow__delete-btn" @click="$emit(\'delete\')">確認刪除</button>\r\n <button class="vue-flow__delete-btn vue-flow__delete-btn--cancel" @click="confirmDelete = false">取消</button>\r\n </div>\r\n </template>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport WColorSelect from \'w-component-vue/src/components/WColorSelect.vue\'\r\n\r\nexport default {\r\n components: { WColorSelect },\r\n props: {\r\n conn: { type: Object, required: true },\r\n defConn: { type: Object, required: true },\r\n textFontSize: { type: String, default: \'\' },\r\n excludes: { type: Array, default: () => [] },\r\n defaultPoint: { type: Object, default: null }, //首個轉折點預設位置(建議傳路徑中點, 新點落於既有線上不跳動)\r\n targetPoint: { type: Object, default: null }, //迄點錨位置(後續新增以「末點與迄點中點」細分)\r\n },\r\n data() {\r\n return {\r\n confirmDelete: false,\r\n ptsLocal: this.normalizePoints(this.conn.points), //轉折點本地編輯態(打字中不被外部回寫干擾)\r\n }\r\n },\r\n computed: {\r\n formStyle() {\r\n let s = {}\r\n if (this.textFontSize) s.fontSize = this.textFontSize\r\n return s\r\n },\r\n },\r\n watch: {\r\n //外部(如存檔回寫)變更時重同步本地態; 與本地序列化相同則不動(避免打字被清)\r\n \'conn.points\': function(val) {\r\n const ext = JSON.stringify(this.normalizePoints(val))\r\n if (ext !== JSON.stringify(this.ptsLocal)) {\r\n this.ptsLocal = this.normalizePoints(val)\r\n }\r\n },\r\n },\r\n methods: {\r\n isEx(key) {\r\n return this.excludes.indexOf(key) >= 0\r\n },\r\n normalizePoints(pts) {\r\n if (!Array.isArray(pts)) return []\r\n const r = []\r\n for (const p of pts) {\r\n if (Array.isArray(p) && p.length >= 2) r.push([Number(p[0]) || 0, Number(p[1]) || 0])\r\n else if (p && typeof p === \'object\') r.push([Number(p.x) || 0, Number(p.y) || 0])\r\n }\r\n return r\r\n },\r\n emitWaypoints() {\r\n //空陣列送null表示移除轉折點(回歸自動路由)\r\n this.$emit(\'update\', \'points\', this.ptsLocal.length ? this.ptsLocal.map(p => [p[0], p[1]]) : null)\r\n },\r\n addWaypoint() {\r\n const last = this.ptsLocal[this.ptsLocal.length - 1]\r\n let p\r\n if (!last) {\r\n //首點=路徑中點(落於既有線上, 路徑不跳動); 無提示時退而取迄點附近, 再無則(0,0)\r\n if (this.defaultPoint) p = [Math.round(this.defaultPoint.x), Math.round(this.defaultPoint.y)]\r\n else if (this.targetPoint) p = [Math.round(this.targetPoint.x) - 40, Math.round(this.targetPoint.y) - 40]\r\n else p = [0, 0]\r\n }\r\n else if (this.targetPoint) {\r\n //後續新增=末點與迄點錨之中點(向迄點細分)\r\n p = [Math.round((last[0] + this.targetPoint.x) / 2), Math.round((last[1] + this.targetPoint.y) / 2)]\r\n }\r\n else {\r\n p = [last[0] + 40, last[1] + 40]\r\n }\r\n this.ptsLocal.push(p)\r\n this.emitWaypoints()\r\n },\r\n removeWaypoint(i) {\r\n this.ptsLocal.splice(i, 1)\r\n this.emitWaypoints()\r\n },\r\n onWaypointInput(i, axis, val) {\r\n const n = Number(val)\r\n if (val === \'\' || isNaN(n)) return\r\n this.$set(this.ptsLocal[i], axis, n)\r\n this.emitWaypoints()\r\n },\r\n onFontSizeInput(val) {\r\n let n = Number(val)\r\n let d = this.defConn\r\n if (!val || isNaN(n) || n < d.fontSizeMin) return\r\n if (n > d.fontSizeMax) n = d.fontSizeMax\r\n this.$emit(\'update\', \'fontSize\', n)\r\n },\r\n onEdgeWidthInput(val) {\r\n let n = Number(val)\r\n if (!val || isNaN(n) || n < 1) return\r\n if (n > 24) n = 24\r\n this.$emit(\'update\', \'edgeWidth\', n)\r\n },\r\n },\r\n}\r\n<\/script>\r\n\r\n<style>\r\n.vue-flow__settings-form {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 8px;\r\n min-width: 180px;\r\n}\r\n.vue-flow__settings-form label {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n gap: 8px;\r\n font-size: 12px;\r\n}\r\n.vue-flow__settings-form select,\r\n.vue-flow__settings-form input[type="number"],\r\n.vue-flow__settings-form input[type="text"] {\r\n width: 100px;\r\n font-size: 12px;\r\n padding: 1px 4px;\r\n border: 1px solid #ccc;\r\n border-radius: 3px;\r\n}\r\n.vue-flow__settings-form input[type="color"] {\r\n width: 32px;\r\n height: 24px;\r\n padding: 0;\r\n border: 1px solid #ccc;\r\n cursor: pointer;\r\n flex-shrink: 0;\r\n}\r\n.vue-flow__waypoints {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 4px;\r\n padding-top: 6px;\r\n border-top: 1px solid #eee;\r\n font-size: 12px;\r\n}\r\n.vue-flow__waypoints-head {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n.vue-flow__waypoints-add {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 20px;\r\n height: 20px;\r\n padding: 0;\r\n border: 1px solid #ccc;\r\n border-radius: 3px;\r\n background: #fff;\r\n color: #666;\r\n cursor: pointer;\r\n font-size: 12px;\r\n line-height: 1;\r\n}\r\n.vue-flow__waypoints-add:hover {\r\n border-color: #666;\r\n color: #333;\r\n}\r\n.vue-flow__waypoints-row {\r\n display: flex;\r\n align-items: center;\r\n gap: 4px;\r\n}\r\n.vue-flow__waypoints-idx {\r\n width: 14px;\r\n color: #999;\r\n font-size: 11px;\r\n text-align: right;\r\n}\r\n.vue-flow__waypoints-row input[type="number"] {\r\n width: 62px;\r\n font-size: 12px;\r\n padding: 1px 4px;\r\n border: 1px solid #ccc;\r\n border-radius: 3px;\r\n}\r\n.vue-flow__waypoints-del {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 18px;\r\n height: 18px;\r\n padding: 0;\r\n border: 1px solid #ccc;\r\n border-radius: 3px;\r\n background: #fff;\r\n color: #999;\r\n cursor: pointer;\r\n font-size: 13px;\r\n line-height: 1;\r\n flex-shrink: 0;\r\n}\r\n.vue-flow__waypoints-del:hover {\r\n border-color: #dc2626;\r\n color: #dc2626;\r\n}\r\n.vue-flow__waypoints-empty {\r\n color: #aaa;\r\n font-size: 11px;\r\n}\r\n.vue-flow__delete-area {\r\n margin-top: 4px;\r\n padding-top: 8px;\r\n border-top: 1px solid #eee;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-end;\r\n}\r\n.vue-flow__delete-warn {\r\n display: block;\r\n font-size: 11px;\r\n color: #c00;\r\n margin-bottom: 4px;\r\n text-align: right;\r\n}\r\n.vue-flow__delete-confirm-row {\r\n display: flex;\r\n gap: 6px;\r\n}\r\n.vue-flow__delete-btn {\r\n padding: 3px 10px;\r\n font-size: 11px;\r\n border: 1px solid #dc2626;\r\n border-radius: 3px;\r\n color: #fff;\r\n background: #dc2626;\r\n cursor: pointer;\r\n}\r\n.vue-flow__delete-btn:hover {\r\n background: #b91c1c;\r\n border-color: #b91c1c;\r\n}\r\n.vue-flow__delete-btn--cancel {\r\n color: #666;\r\n background: #fff;\r\n border-color: #ccc;\r\n}\r\n.vue-flow__delete-btn--cancel:hover {\r\n background: #f5f5f5;\r\n border-color: #ccc;\r\n}\r\n</style>\r\n']},media:void 0})},zp,void 0,false,void 0,!1,Zr,void 0,void 0),Hp={bezier:wp,straight:Sp,step:kp,smoothstep:_p};var Np={name:"EdgeWrapper",mixins:[{beforeCreate(){this.$vnode&&"svg"===this.$vnode.ns&&(this.$vnode.ns=void 0)},beforeMount(){this.$vnode&&"svg"===this.$vnode.ns&&(this.$vnode.ns=void 0)},beforeUpdate(){this.$vnode&&"svg"===this.$vnode.ns&&(this.$vnode.ns=void 0)}}],components:{ConnSettingsForm:Fp,WPopup:Ps},inject:{getDefConn:{default:()=>()=>({})},getDragGhost:{default:()=>()=>null}},props:{conn:{type:Object,required:!0},sourceNode:{type:Object,default:null},targetNode:{type:Object,default:null},selected:{type:Boolean,default:!1},interactive:{type:Boolean,default:!0},locked:{type:Boolean,default:!1},settingsPopupBackgroundColor:{type:String,default:"#fff"},settingsPopupTextColor:{type:String,default:"#333"},settingsPopupTextFontSize:{type:String,default:"12px"},inforPopupBackgroundColor:{type:String,default:"#fff"},inforPopupTitleTextColor:{type:String,default:"#333"},inforPopupTitleTextFontSize:{type:String,default:"12px"},inforPopupDescriptionTextColor:{type:String,default:"#888"},inforPopupDescriptionTextFontSize:{type:String,default:"10px"},allNodes:{type:Array,default:()=>[]},nodeInternals:{type:Object,default:()=>({})},settingsEnabled:{type:Boolean,default:!0},settingsExcludes:{type:Array,default:()=>[]}},data:()=>({hovered:!1,infoPopupShow:!1,infoPopupEditable:!0,settingsPopupShow:!1,dragPts:null}),watch:{settingsPopupShow(n){n&&(this.infoPopupShow=!1)},infoPopupShow(n){n&&(this.settingsPopupShow=!1)}},computed:{dc(){return this.getDefConn()},hasInfoPopup(){return!!(this.conn.name||this.conn.description||this.$scopedSlots["conn-popup"])},sourcePosition(){return this.conn.fromPosition||this.sourceNode&&this.sourceNode.toPosition||"bottom"},targetPosition(){return this.conn.toPosition||this.targetNode&&this.targetNode.fromPosition||"top"},effSourceNode(){return this.effNode(this.sourceNode)},effTargetNode(){return this.effNode(this.targetNode)},sourcePoint(){const n=this.effSourceNode;return n?Pp(n,this.sourcePosition,this.nodeInternals[n.id]||{},"source"):{x:0,y:0}},targetPoint(){const n=this.effTargetNode;return n?Pp(n,this.targetPosition,this.nodeInternals[n.id]||{},"target"):{x:0,y:0}},sourceX(){return this.sourcePoint.x},sourceY(){return this.sourcePoint.y},targetX(){return this.targetPoint.x},targetY(){return this.targetPoint.y},routingNodes(){const n=[];return this.effSourceNode&&n.push(this.effSourceNode),this.effTargetNode&&n.push(this.effTargetNode),n},effPoints(){return this.dragPts||this.conn.points},waypointPts(){const n=this.effPoints;if(!Array.isArray(n)||0===n.length)return[];const e=[];for(const t of n){let n=null,o=null;if(Array.isArray(t)&&t.length>=2?(n=Number(t[0]),o=Number(t[1])):t&&"object"==typeof t&&(n=Number(t.x),o=Number(t.y)),!Number.isFinite(n)||!Number.isFinite(o))return[];e.push({x:n,y:o})}return e},showWaypoints(){return this.settingsEnabled&&this.interactive&&!this.locked&&this.waypointPts.length>0},waypointDefaultPoint(){return{x:Math.round(this.pathData.labelX),y:Math.round(this.pathData.labelY)}},waypointTargetPoint(){return{x:Math.round(this.targetX),y:Math.round(this.targetY)}},classes(){const n=this.conn.class?Array.isArray(this.conn.class)?this.conn.class:[this.conn.class]:[];return["vue-flow__edge",`vue-flow__edge-${this.conn.type||this.dc.type||"bezier"}`,...n,{"vue-flow__edge--selected":this.selected,"vue-flow__edge--animated":this.conn.animated}]},pathData(){const n=this.conn.type||this.dc.type||"bezier";return(Hp[n]||Hp.bezier)({sourceX:this.sourceX,sourceY:this.sourceY,sourcePosition:this.sourcePosition,targetX:this.targetX,targetY:this.targetY,targetPosition:this.targetPosition,curvature:this.conn.curvature,points:this.effPoints,allNodes:this.routingNodes,nodeInternals:this.nodeInternals,connFromId:this.conn.from,connToId:this.conn.to,offset:this.dc.defOffset})},connStyle(){const n=this.dc,e=this.conn.style?{...this.conn.style}:{};e.stroke=this.conn.edgeColor||n.edgeColor||"#b1b1b7",void 0!==this.conn.edgeWidth?e.strokeWidth=this.conn.edgeWidth:void 0!==n.edgeWidth&&(e.strokeWidth=n.edgeWidth);let t=void 0!==this.conn.edgeDasharray?this.conn.edgeDasharray:n.edgeDasharray;return t&&(e.strokeDasharray=t),e},markerStartUrl(){return this.getMarkerUrl(this.conn.markerStart)},markerEndUrl(){return this.getMarkerUrl(this.conn.markerEnd||this.dc.markerEnd)},labelStyle(){const n=this.dc,e={},t=this.conn.fontSize||n.fontSize,o=this.conn.fontColor||n.fontColor;return t&&(e.fontSize=t+"px"),o&&(e.color=o),e}},methods:{effNode(n){if(!n)return null;const e=this.getDragGhost(n.id);return e?{...n,position:{x:e.x,y:e.y},width:void 0!==e.width?e.width:n.width,height:void 0!==e.height?e.height:n.height}:n},getMarkerUrl(n){if(!n)return null;const e="string"==typeof n?{type:n}:n,t=e.color||this.conn.edgeColor||this.dc.edgeColor||"#b1b1b7";return`url(#vue-flow__${e.type}_${t.replace("#","")})`},onGroupMouseEnter(n){this.hovered=!0,this.$emit("conn-mouseenter",{conn:this.conn,event:n})},onGroupMouseLeave(n){this.hovered=!1,this.$emit("conn-mouseleave",{conn:this.conn,event:n})},onClick(n){this.hasInfoPopup&&(this.infoPopupShow=!0),this.$emit("conn-click",{conn:this.conn,event:n})},openInfoPopup(){this.infoPopupShow=!0},onDoubleClick(n){this.$emit("conn-double-click",{conn:this.conn,event:n})},onContextMenu(n){this.$emit("conn-context-menu",{conn:this.conn,event:n})},onLabelMouseDown(n){this.infoPopupShow=!1;const e=n.clientX,t=n.clientY,o=n=>{(Math.abs(n.clientX-e)>2||Math.abs(n.clientY-t)>2)&&(this.infoPopupEditable=!1,document.removeEventListener("mousemove",o))},r=()=>{document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",r),this.infoPopupEditable||setTimeout(()=>{this.infoPopupEditable=!0},0)};document.addEventListener("mousemove",o),document.addEventListener("mouseup",r)},onSettingsUpdate(n,e){this.$emit("conn-settings-update",{conn:this.conn,key:n,value:e})},onWaypointMouseDown(n,e){if(!this.interactive||this.locked||!this.settingsEnabled)return;e.preventDefault();const t=document.createElement("style");t.textContent="* { cursor: move !important; }",document.head.appendChild(t);const o=e.clientX,r=e.clientY,i=this.waypointPts.map(n=>[n.x,n.y]),a=this.$el.closest(".vue-flow__viewport"),s=a?parseFloat(a.style.transform.match(/scale\(([^)]+)\)/)?.[1]||1):1,l=e=>{const t=(e.clientX-o)/s,a=(e.clientY-r)/s,l=i.map(n=>[n[0],n[1]]);l[n]=[Math.round(i[n][0]+t),Math.round(i[n][1]+a)],this.dragPts=l},d=()=>{document.removeEventListener("mousemove",l),document.removeEventListener("mouseup",d),document.head.removeChild(t);const n=this.waypointPts.map(n=>[n.x,n.y]);this.$emit("conn-settings-update",{conn:this.conn,key:"points",value:n}),this.dragPts=null};document.addEventListener("mousemove",l),document.addEventListener("mouseup",d)},onSettingsDelete(){this.$emit("conn-settings-delete",{conn:this.conn})}}};const Wp=Np;var $p=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("g",{class:n.classes,attrs:{"data-id":n.conn.id},on:{mouseenter:n.onGroupMouseEnter,mouseleave:n.onGroupMouseLeave}},[t("rect",{attrs:{x:n.pathData.labelX-60,y:n.pathData.labelY-18,width:"120",height:"36",fill:"transparent","pointer-events":"all"},on:{click:function(e){return e.stopPropagation(),n.onClick.apply(null,arguments)}}}),n._v(" "),t("path",{staticClass:"vue-flow__edge-interaction",attrs:{d:n.pathData.path},on:{click:function(e){return e.stopPropagation(),n.onClick.apply(null,arguments)},dblclick:function(e){return e.stopPropagation(),n.onDoubleClick.apply(null,arguments)},contextmenu:function(e){return e.stopPropagation(),n.onContextMenu.apply(null,arguments)}}}),n._v(" "),t("path",{style:n.connStyle,attrs:{d:n.pathData.path,"marker-start":n.markerStartUrl,"marker-end":n.markerEndUrl}}),n._v(" "),n.showWaypoints?n._l(n.waypointPts,function(e,o){return t("circle",{key:"wp"+o,staticClass:"vue-flow__edge-waypoint",attrs:{cx:e.x,cy:e.y,r:"4"},on:{mousedown:function(e){return n.onWaypointMouseDown(o,e)}}})}):n._e(),n._v(" "),t("foreignObject",{staticStyle:{overflow:"visible","pointer-events":"none"},attrs:{x:n.pathData.labelX-100,y:n.pathData.labelY-18,width:"200",height:"36"}},[t("div",{staticClass:"vue-flow__edge-label-area",attrs:{xmlns:"http://www.w3.org/1999/xhtml"}},[t("span",{staticClass:"vue-flow__edge-label-group"},[n.hasInfoPopup?t("WPopup",{attrs:{placement:"bottom",modeHide:"mousedown",editable:n.infoPopupEditable,minWidth:null,maxWidth:null,autoFitMinWidth:!1,autoFitMaxWidth:!1,backgroundColor:n.inforPopupBackgroundColor,textFontSize:n.inforPopupTitleTextFontSize,paddingStyle:{v:8,h:12}},scopedSlots:n._u([{key:"trigger",fn:function(){return[n.conn.name?t("span",{staticClass:"vue-flow__edge-label",style:n.labelStyle,on:{mousedown:n.onLabelMouseDown}},[n._v(n._s(n.conn.name))]):t("span",{staticClass:"vue-flow__edge-popup-anchor"})]},proxy:!0},{key:"content",fn:function(){return[n._t("conn-popup",function(){return[n.conn.name||n.conn.description?t("div",{staticStyle:{"min-width":"120px"}},[n.conn.name?t("div",{style:{fontSize:n.inforPopupTitleTextFontSize,color:n.inforPopupTitleTextColor,fontWeight:500}},[n._v(n._s(n.conn.name))]):n._e(),n._v(" "),n.conn.description?t("div",{style:{fontSize:n.inforPopupDescriptionTextFontSize,color:n.inforPopupDescriptionTextColor,marginTop:"4px"}},[n._v(n._s(n.conn.description))]):n._e()]):n._e()]},{conn:n.conn})]},proxy:!0}],null,!0),model:{value:n.infoPopupShow,callback:function(e){n.infoPopupShow=e},expression:"infoPopupShow"}}):n._e(),n._v(" "),t("transition",{attrs:{name:"vue-flow__fade"}},[(n.hovered||n.settingsPopupShow)&&n.interactive&&!n.locked&&n.settingsEnabled?t("span",{staticClass:"vue-flow__edge-settings-anchor"},[t("WPopup",{attrs:{placement:"right-start",modeHide:"mousedown",minWidth:null,maxWidth:null,autoFitMinWidth:!1,autoFitMaxWidth:!1,backgroundColor:n.settingsPopupBackgroundColor,textColor:n.settingsPopupTextColor,paddingStyle:{v:8,h:8}},on:{show:function(e){return n.$emit("conn-settings-click",{conn:n.conn})}},scopedSlots:n._u([{key:"trigger",fn:function(){return[t("span",{staticClass:"vue-flow__edge-settings"},[t("svg",{attrs:{viewBox:"0 0 20 20",width:"14",height:"14",fill:"currentColor"}},[t("path",{attrs:{d:"M11.078 0l.294 1.833a7.587 7.587 0 0 1 2.174 1.25l1.725-.618 1.078 1.87-1.43 1.217a7.508 7.508 0 0 1 0 2.498l1.43 1.217-1.078 1.87-1.725-.618a7.587 7.587 0 0 1-2.174 1.25L11.078 14H8.922l-.294-1.833a7.587 7.587 0 0 1-2.174-1.25l-1.725.618-1.078-1.87 1.43-1.217a7.508 7.508 0 0 1 0-2.498L3.65 4.733l1.078-1.87 1.725.618a7.587 7.587 0 0 1 2.174-1.25L8.922 0h2.156zM10 4.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5z",transform:"translate(0 3)"}})])])]},proxy:!0},{key:"content",fn:function(){return[t("ConnSettingsForm",{attrs:{conn:n.conn,"def-conn":n.dc,"text-font-size":n.settingsPopupTextFontSize,excludes:n.settingsExcludes,"default-point":n.waypointDefaultPoint,"target-point":n.waypointTargetPoint},on:{update:n.onSettingsUpdate,delete:n.onSettingsDelete}})]},proxy:!0}],null,!1,1928985475),model:{value:n.settingsPopupShow,callback:function(e){n.settingsPopupShow=e},expression:"settingsPopupShow"}})],1):n._e()])],1)])])],2)};$p._withStripped=!0;const Mp=Xr({render:$p,staticRenderFns:[]},function(n){n&&n("data-v-265c95c3_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n/* Only target direct-child paths (edge paths), not SVG paths inside settings icon */\n.vue-flow__edge > path[data-v-265c95c3] {\r\n stroke: #b1b1b7;\r\n stroke-width: 1;\r\n fill: none;\r\n pointer-events: none;\r\n transition: stroke 0.3s ease, filter 0.18s ease;\n}\n.vue-flow__edge-interaction[data-v-265c95c3] {\r\n stroke: transparent !important;\r\n stroke-width: 20 !important;\r\n fill: none;\r\n pointer-events: stroke !important;\r\n cursor: pointer;\n}\n.vue-flow__edge-waypoint[data-v-265c95c3] {\r\n fill: #9e9e9e;\r\n stroke: #fff;\r\n stroke-width: 1.5;\r\n pointer-events: all;\r\n cursor: grab;\n}\n.vue-flow__edge-waypoint[data-v-265c95c3]:hover {\r\n fill: #616161;\r\n stroke-width: 2;\n}\n.vue-flow__edge-waypoint[data-v-265c95c3]:active {\r\n cursor: grabbing;\n}\n.vue-flow__edge:hover > path[data-v-265c95c3] {\r\n stroke: #555;\n}\n.vue-flow__edge--selected > path[data-v-265c95c3],\r\n.vue-flow__edge--selected:hover > path[data-v-265c95c3] {\r\n filter: drop-shadow(0 0 2px rgba(220, 38, 38, 0.8)) drop-shadow(0 0 4px rgba(220, 38, 38, 0.5)) drop-shadow(0 0 6px rgba(220, 38, 38, 0.25));\n}\n.vue-flow__edge--animated > path[data-v-265c95c3]:not(.vue-flow__edge-interaction) {\r\n stroke-dasharray: 5;\r\n animation: vue-flow-dash-data-v-265c95c3 0.5s linear infinite;\n}\n@keyframes vue-flow-dash-data-v-265c95c3 {\nto { stroke-dashoffset: -10;\n}\n}\n.vue-flow__edge-label-area[data-v-265c95c3] {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n height: 100%;\r\n pointer-events: none;\n}\n.vue-flow__edge-label-group[data-v-265c95c3] {\r\n position: relative;\r\n display: inline-flex;\r\n align-items: center;\r\n pointer-events: all;\n}\n.vue-flow__edge-label[data-v-265c95c3] {\r\n pointer-events: all;\r\n cursor: pointer;\r\n font-family: 'Microsoft JhengHei', '微軟正黑體', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\r\n font-size: 10px;\r\n background: #fff;\r\n padding: 2px 4px;\r\n border-radius: 2px;\r\n white-space: nowrap;\r\n user-select: none;\r\n text-align: center;\r\n display: inline-block;\n}\n.vue-flow__edge-popup-anchor[data-v-265c95c3] {\r\n display: inline-block;\r\n width: 0;\r\n height: 0;\n}\n.vue-flow__edge-settings-anchor[data-v-265c95c3] {\r\n position: absolute;\r\n top: -8px;\r\n right: -8px;\r\n z-index: 2;\r\n pointer-events: all;\n}\n.vue-flow__edge-settings[data-v-265c95c3] {\r\n width: 20px;\r\n height: 20px;\r\n border-radius: 50%;\r\n background: #fff;\r\n border: 1px solid #ccc;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n color: #888;\r\n pointer-events: all;\r\n transition: border-color 0.15s ease, background 0.15s ease;\n}\n.vue-flow__edge-settings[data-v-265c95c3]:hover {\r\n border-color: #666;\r\n background: #f0f0f0;\r\n color: #333;\n}\r\n/* Fade transition for settings icon */\n.vue-flow__fade-enter-active[data-v-265c95c3],\r\n.vue-flow__fade-leave-active[data-v-265c95c3] {\r\n transition: opacity 0.15s ease;\n}\n.vue-flow__fade-enter[data-v-265c95c3],\r\n.vue-flow__fade-leave-to[data-v-265c95c3] {\r\n opacity: 0;\n}\r\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\edges\\EdgeWrapper.vue"],names:[],mappings:";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2bA,oFAAA;AACA;EACA,eAAA;EACA,eAAA;EACA,UAAA;EACA,oBAAA;EACA,+CAAA;AACA;AACA;EACA,8BAAA;EACA,2BAAA;EACA,UAAA;EACA,iCAAA;EACA,eAAA;AACA;AACA;EACA,aAAA;EACA,YAAA;EACA,iBAAA;EACA,mBAAA;EACA,YAAA;AACA;AACA;EACA,aAAA;EACA,eAAA;AACA;AACA;EACA,gBAAA;AACA;AACA;EACA,YAAA;AACA;AACA;;EAEA,4IAAA;AACA;AACA;EACA,mBAAA;EACA,6DAAA;AACA;AACA;AACA,KAAA,sBAAA;AAAA;AACA;AACA;EACA,aAAA;EACA,uBAAA;EACA,mBAAA;EACA,WAAA;EACA,YAAA;EACA,oBAAA;AACA;AACA;EACA,kBAAA;EACA,oBAAA;EACA,mBAAA;EACA,mBAAA;AACA;AACA;EACA,mBAAA;EACA,eAAA;EACA,6GAAA;EACA,eAAA;EACA,gBAAA;EACA,gBAAA;EACA,kBAAA;EACA,mBAAA;EACA,iBAAA;EACA,kBAAA;EACA,qBAAA;AACA;AACA;EACA,qBAAA;EACA,QAAA;EACA,SAAA;AACA;AACA;EACA,kBAAA;EACA,SAAA;EACA,WAAA;EACA,UAAA;EACA,mBAAA;AACA;AACA;EACA,WAAA;EACA,YAAA;EACA,kBAAA;EACA,gBAAA;EACA,sBAAA;EACA,oBAAA;EACA,mBAAA;EACA,uBAAA;EACA,eAAA;EACA,WAAA;EACA,mBAAA;EACA,0DAAA;AACA;AACA;EACA,kBAAA;EACA,mBAAA;EACA,WAAA;AACA;AACA,sCAAA;AACA;;EAEA,8BAAA;AACA;AACA;;EAEA,UAAA;AACA",file:"EdgeWrapper.vue",sourcesContent:['<template>\r\n <g\r\n :class="classes"\r\n :data-id="conn.id"\r\n @mouseenter="onGroupMouseEnter"\r\n @mouseleave="onGroupMouseLeave"\r\n >\r\n \x3c!-- Hover zone around label + settings icon area (below interaction path in z-order) --\x3e\r\n <rect\r\n :x="pathData.labelX - 60"\r\n :y="pathData.labelY - 18"\r\n width="120"\r\n height="36"\r\n fill="transparent"\r\n pointer-events="all"\r\n @click.stop="onClick"\r\n />\r\n \x3c!-- Interaction path (wider, invisible) --\x3e\r\n <path\r\n :d="pathData.path"\r\n class="vue-flow__edge-interaction"\r\n @click.stop="onClick"\r\n @dblclick.stop="onDoubleClick"\r\n @contextmenu.stop="onContextMenu"\r\n />\r\n \x3c!-- Visible path --\x3e\r\n <path\r\n :d="pathData.path"\r\n :style="connStyle"\r\n :marker-start="markerStartUrl"\r\n :marker-end="markerEndUrl"\r\n />\r\n \x3c!-- 強制轉折點標記(編輯模式顯示, 可直接拖曳移動座標; 亦可經齒輪設定表單編修) --\x3e\r\n <template v-if="showWaypoints">\r\n \x3c!-- 不用@mousedown.stop: stopPropagation會擋掉window層WPopup互斥協調(致已開之node/conn資訊popup不關); 防canvas startPan改由onCanvasMouseDown排除.vue-flow__edge-waypoint處理 --\x3e\r\n <circle\r\n v-for="(p, i) in waypointPts"\r\n :key="\'wp\' + i"\r\n :cx="p.x"\r\n :cy="p.y"\r\n r="4"\r\n class="vue-flow__edge-waypoint"\r\n @mousedown="onWaypointMouseDown(i, $event)"\r\n />\r\n </template>\r\n \x3c!-- Label + Settings icon (merged into one foreignObject for correct relative positioning) --\x3e\r\n <foreignObject\r\n :x="pathData.labelX - 100"\r\n :y="pathData.labelY - 18"\r\n width="200"\r\n height="36"\r\n style="overflow: visible; pointer-events: none;"\r\n >\r\n <div class="vue-flow__edge-label-area" xmlns="http://www.w3.org/1999/xhtml">\r\n <span class="vue-flow__edge-label-group">\r\n <WPopup\r\n v-if="hasInfoPopup"\r\n v-model="infoPopupShow"\r\n placement="bottom"\r\n modeHide="mousedown"\r\n :editable="infoPopupEditable"\r\n :minWidth="null"\r\n :maxWidth="null"\r\n :autoFitMinWidth="false"\r\n :autoFitMaxWidth="false"\r\n :backgroundColor="inforPopupBackgroundColor"\r\n :textFontSize="inforPopupTitleTextFontSize"\r\n :paddingStyle="{v:8,h:12}"\r\n >\r\n <template v-slot:trigger>\r\n <span v-if="conn.name" class="vue-flow__edge-label" :style="labelStyle" @mousedown="onLabelMouseDown">{{ conn.name }}</span>\r\n \x3c!-- Zero-size anchor keeps the popup positioned at the label midpoint when the conn has no name --\x3e\r\n <span v-else class="vue-flow__edge-popup-anchor"></span>\r\n </template>\r\n <template v-slot:content>\r\n <slot name="conn-popup" :conn="conn">\r\n <div v-if="conn.name || conn.description" style="min-width:120px">\r\n <div v-if="conn.name" :style="{ fontSize: inforPopupTitleTextFontSize, color: inforPopupTitleTextColor, fontWeight: 500 }">{{ conn.name }}</div>\r\n <div v-if="conn.description" :style="{ fontSize: inforPopupDescriptionTextFontSize, color: inforPopupDescriptionTextColor, marginTop: \'4px\' }">{{ conn.description }}</div>\r\n </div>\r\n </slot>\r\n </template>\r\n </WPopup>\r\n <transition name="vue-flow__fade">\r\n <span v-if="(hovered || settingsPopupShow) && interactive && !locked && settingsEnabled" class="vue-flow__edge-settings-anchor">\r\n <WPopup\r\n v-model="settingsPopupShow"\r\n placement="right-start"\r\n modeHide="mousedown"\r\n :minWidth="null"\r\n :maxWidth="null"\r\n :autoFitMinWidth="false"\r\n :autoFitMaxWidth="false"\r\n :backgroundColor="settingsPopupBackgroundColor"\r\n :textColor="settingsPopupTextColor"\r\n :paddingStyle="{v:8,h:8}"\r\n @show="$emit(\'conn-settings-click\', { conn: conn })"\r\n >\r\n <template v-slot:trigger>\r\n \x3c!-- 不用@mousedown.stop: stopPropagation會連window層popup互斥協調一併擋掉(致其他popup無法關閉); 防canvas startPan改由onCanvasMouseDown排除.vue-flow__edge-settings處理 --\x3e\r\n <span class="vue-flow__edge-settings">\r\n <svg viewBox="0 0 20 20" width="14" height="14" fill="currentColor">\r\n <path d="M11.078 0l.294 1.833a7.587 7.587 0 0 1 2.174 1.25l1.725-.618 1.078 1.87-1.43 1.217a7.508 7.508 0 0 1 0 2.498l1.43 1.217-1.078 1.87-1.725-.618a7.587 7.587 0 0 1-2.174 1.25L11.078 14H8.922l-.294-1.833a7.587 7.587 0 0 1-2.174-1.25l-1.725.618-1.078-1.87 1.43-1.217a7.508 7.508 0 0 1 0-2.498L3.65 4.733l1.078-1.87 1.725.618a7.587 7.587 0 0 1 2.174-1.25L8.922 0h2.156zM10 4.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5z" transform="translate(0 3)"/>\r\n </svg>\r\n </span>\r\n </template>\r\n <template v-slot:content>\r\n <ConnSettingsForm\r\n :conn="conn"\r\n :def-conn="dc"\r\n :text-font-size="settingsPopupTextFontSize"\r\n :excludes="settingsExcludes"\r\n :default-point="waypointDefaultPoint"\r\n :target-point="waypointTargetPoint"\r\n @update="onSettingsUpdate"\r\n @delete="onSettingsDelete"\r\n />\r\n </template>\r\n </WPopup>\r\n </span>\r\n </transition>\r\n </span>\r\n </div>\r\n </foreignObject>\r\n </g>\r\n</template>\r\n\r\n<script>\r\nimport { getBezierPath, getStraightPath, getStepPath, getSmoothStepPath } from \'../../js/edgePath\'\r\nimport { getHandlePosition } from \'../../js/geometry\'\r\nimport ConnSettingsForm from \'../ui/ConnSettingsForm.vue\'\r\nimport WPopup from \'w-component-vue/src/components/WPopup.vue\'\r\nimport fixSvgNs from \'../../js/fixSvgNs.mjs\'\r\n\r\nconst pathFunctions = {\r\n bezier: getBezierPath,\r\n straight: getStraightPath,\r\n step: getStepPath,\r\n smoothstep: getSmoothStepPath,\r\n}\r\n\r\nexport default {\r\n name: \'EdgeWrapper\',\r\n //修Vue2 #7330: 本元件位於<svg>內且含foreignObject, 需清除$vnode.ns否則其內HTML元素(含WPopup之slot內容)被建為SVGElement而0x0不可見\r\n mixins: [fixSvgNs],\r\n components: { ConnSettingsForm, WPopup },\r\n inject: { getDefConn: { default: () => () => ({}) }, getDragGhost: { default: () => () => null } },\r\n props: {\r\n conn: { type: Object, required: true },\r\n sourceNode: { type: Object, default: null },\r\n targetNode: { type: Object, default: null },\r\n selected: { type: Boolean, default: false },\r\n interactive: { type: Boolean, default: true },\r\n locked: { type: Boolean, default: false },\r\n settingsPopupBackgroundColor: { type: String, default: \'#fff\' },\r\n settingsPopupTextColor: { type: String, default: \'#333\' },\r\n settingsPopupTextFontSize: { type: String, default: \'12px\' },\r\n inforPopupBackgroundColor: { type: String, default: \'#fff\' },\r\n inforPopupTitleTextColor: { type: String, default: \'#333\' },\r\n inforPopupTitleTextFontSize: { type: String, default: \'12px\' },\r\n inforPopupDescriptionTextColor: { type: String, default: \'#888\' },\r\n inforPopupDescriptionTextFontSize: { type: String, default: \'10px\' },\r\n allNodes: { type: Array, default: () => [] },\r\n nodeInternals: { type: Object, default: () => ({}) },\r\n settingsEnabled: { type: Boolean, default: true },\r\n settingsExcludes: { type: Array, default: () => [] },\r\n },\r\n data() {\r\n return {\r\n hovered: false,\r\n infoPopupShow: false,\r\n infoPopupEditable: true,\r\n settingsPopupShow: false,\r\n dragPts: null, //轉折點拖曳中之暫時座標([[x,y],...]), 比照節點拖曳之ghost: 不改conn.points(prop), 放開才emit由宿主寫回\r\n }\r\n },\r\n watch: {\r\n settingsPopupShow(val) {\r\n if (val) this.infoPopupShow = false\r\n },\r\n infoPopupShow(val) {\r\n if (val) this.settingsPopupShow = false\r\n },\r\n },\r\n computed: {\r\n dc() {\r\n return this.getDefConn()\r\n },\r\n hasInfoPopup() {\r\n return !!(this.conn.name || this.conn.description || this.$scopedSlots[\'conn-popup\'])\r\n },\r\n //(效能重構)錨點方位/座標自算(原由EdgeRenderer解析後以props傳入):\r\n // 含拖曳/縮放ghost(細粒度反應式), 僅本邊兩端節點變動時本元件才重渲染\r\n sourcePosition() {\r\n return this.conn.fromPosition || (this.sourceNode && this.sourceNode.toPosition) || \'bottom\' //conn層級覆寫優先\r\n },\r\n targetPosition() {\r\n return this.conn.toPosition || (this.targetNode && this.targetNode.fromPosition) || \'top\'\r\n },\r\n effSourceNode() {\r\n return this.effNode(this.sourceNode)\r\n },\r\n effTargetNode() {\r\n return this.effNode(this.targetNode)\r\n },\r\n sourcePoint() {\r\n const n = this.effSourceNode\r\n if (!n) return { x: 0, y: 0 }\r\n return getHandlePosition(n, this.sourcePosition, this.nodeInternals[n.id] || {}, \'source\')\r\n },\r\n targetPoint() {\r\n const n = this.effTargetNode\r\n if (!n) return { x: 0, y: 0 }\r\n return getHandlePosition(n, this.targetPosition, this.nodeInternals[n.id] || {}, \'target\')\r\n },\r\n sourceX() {\r\n return this.sourcePoint.x\r\n },\r\n sourceY() {\r\n return this.sourcePoint.y\r\n },\r\n targetX() {\r\n return this.targetPoint.x\r\n },\r\n targetY() {\r\n return this.targetPoint.y\r\n },\r\n //自動路由(step/smoothstep)用之節點矩形: 僅取起訖兩節點且套用拖曳/縮放ghost。\r\n //why: OrthConnector之calculateStepPoints僅以「起訖兩節點矩形」決定路徑(allNodes原僅供findObstacleAt依端點座標定位該兩矩形, 不做跨節點避讓);\r\n // 若沿用store之allNodes, 拖曳時端點已隨ghost移動、但矩形仍為舊位→findObstacleAt找不到起訖矩形→退化為fallback直角短線, 放開後allNodes更新才恢復正交繞行→路徑跳動。\r\n // 改用effSource/effTargetNode(含ghost)即拖曳中與放開後同一計算、路徑不跳; 靜止時eff=原節點, 與原本傳全部節點所得之起訖矩形一致(版面不重疊), 放開後路由不變。\r\n routingNodes() {\r\n const r = []\r\n if (this.effSourceNode) r.push(this.effSourceNode)\r\n if (this.effTargetNode) r.push(this.effTargetNode)\r\n return r\r\n },\r\n //拖曳中優先取暫時座標(ghost), 靜止時取conn.points\r\n effPoints() {\r\n return this.dragPts || this.conn.points\r\n },\r\n // 強制轉折點正規化([[x,y],...]或[{x,y},...]皆可), 無效回空陣列\r\n waypointPts() {\r\n const pts = this.effPoints\r\n if (!Array.isArray(pts) || pts.length === 0) return []\r\n const r = []\r\n for (const p of pts) {\r\n let x = null\r\n let y = null\r\n if (Array.isArray(p) && p.length >= 2) {\r\n x = Number(p[0]); y = Number(p[1])\r\n }\r\n else if (p && typeof p === \'object\') {\r\n x = Number(p.x); y = Number(p.y)\r\n }\r\n if (!Number.isFinite(x) || !Number.isFinite(y)) return []\r\n r.push({ x, y })\r\n }\r\n return r\r\n },\r\n showWaypoints() {\r\n return this.settingsEnabled && this.interactive && !this.locked && this.waypointPts.length > 0\r\n },\r\n //新增轉折點之預設位置=路徑中點(新點落於既有線上, 路徑幾乎不變不跳動)\r\n waypointDefaultPoint() {\r\n return { x: Math.round(this.pathData.labelX), y: Math.round(this.pathData.labelY) }\r\n },\r\n //後續新增以「末點與迄點錨中點」細分(供表單計算)\r\n waypointTargetPoint() {\r\n return { x: Math.round(this.targetX), y: Math.round(this.targetY) }\r\n },\r\n classes() {\r\n const connClasses = this.conn.class\r\n ? (Array.isArray(this.conn.class) ? this.conn.class : [this.conn.class])\r\n : []\r\n return [\r\n \'vue-flow__edge\',\r\n `vue-flow__edge-${this.conn.type || this.dc.type || \'bezier\'}`,\r\n ...connClasses,\r\n {\r\n \'vue-flow__edge--selected\': this.selected,\r\n \'vue-flow__edge--animated\': this.conn.animated,\r\n },\r\n ]\r\n },\r\n pathData() {\r\n const type = this.conn.type || this.dc.type || \'bezier\'\r\n const fn = pathFunctions[type] || pathFunctions.bezier\r\n return fn({\r\n sourceX: this.sourceX,\r\n sourceY: this.sourceY,\r\n sourcePosition: this.sourcePosition,\r\n targetX: this.targetX,\r\n targetY: this.targetY,\r\n targetPosition: this.targetPosition,\r\n curvature: this.conn.curvature,\r\n points: this.effPoints, //強制轉折點([[x,y],...]或[{x,y},...]), 有給即取代自動路由(兩端錨點方位仍生效); 拖曳中為ghost座標\r\n allNodes: this.routingNodes, //僅起訖兩節點且含ghost, 修拖曳中路徑與放開後不一致(見routingNodes說明)\r\n\r\n nodeInternals: this.nodeInternals,\r\n connFromId: this.conn.from,\r\n connToId: this.conn.to,\r\n offset: this.dc.defOffset,\r\n })\r\n },\r\n connStyle() {\r\n const d = this.dc\r\n const base = this.conn.style ? { ...this.conn.style } : {}\r\n base.stroke = this.conn.edgeColor || d.edgeColor || \'#b1b1b7\'\r\n if (this.conn.edgeWidth !== undefined) base.strokeWidth = this.conn.edgeWidth\r\n else if (d.edgeWidth !== undefined) base.strokeWidth = d.edgeWidth\r\n let dash = this.conn.edgeDasharray !== undefined ? this.conn.edgeDasharray : d.edgeDasharray\r\n if (dash) base.strokeDasharray = dash\r\n return base\r\n },\r\n markerStartUrl() {\r\n return this.getMarkerUrl(this.conn.markerStart)\r\n },\r\n markerEndUrl() {\r\n return this.getMarkerUrl(this.conn.markerEnd || this.dc.markerEnd)\r\n },\r\n labelStyle() {\r\n const d = this.dc\r\n const s = {}\r\n const fontSize = this.conn.fontSize || d.fontSize\r\n const fontColor = this.conn.fontColor || d.fontColor\r\n if (fontSize) s.fontSize = fontSize + \'px\'\r\n if (fontColor) s.color = fontColor\r\n return s\r\n },\r\n },\r\n methods: {\r\n //拖曳/縮放ghost套用: 有進行中之暫時幾何則以其構成有效節點(不改原節點物件)\r\n effNode(node) {\r\n if (!node) return null\r\n const g = this.getDragGhost(node.id)\r\n if (!g) return node\r\n return {\r\n ...node,\r\n position: { x: g.x, y: g.y },\r\n width: g.width !== undefined ? g.width : node.width,\r\n height: g.height !== undefined ? g.height : node.height,\r\n }\r\n },\r\n getMarkerUrl(marker) {\r\n if (!marker) return null\r\n const config = typeof marker === \'string\' ? { type: marker } : marker\r\n // Fallback chain must match EdgeMarkerDefs so the generated ids agree.\r\n const color = config.color || this.conn.edgeColor || this.dc.edgeColor || \'#b1b1b7\'\r\n return `url(#vue-flow__${config.type}_${color.replace(\'#\', \'\')})`\r\n },\r\n onGroupMouseEnter(event) {\r\n this.hovered = true\r\n this.$emit(\'conn-mouseenter\', { conn: this.conn, event })\r\n },\r\n onGroupMouseLeave(event) {\r\n this.hovered = false\r\n this.$emit(\'conn-mouseleave\', { conn: this.conn, event })\r\n },\r\n onClick(event) {\r\n if (this.hasInfoPopup) {\r\n this.infoPopupShow = true\r\n }\r\n this.$emit(\'conn-click\', { conn: this.conn, event })\r\n },\r\n openInfoPopup() {\r\n this.infoPopupShow = true\r\n },\r\n onDoubleClick(event) {\r\n this.$emit(\'conn-double-click\', { conn: this.conn, event })\r\n },\r\n onContextMenu(event) {\r\n this.$emit(\'conn-context-menu\', { conn: this.conn, event })\r\n },\r\n onLabelMouseDown(event) {\r\n this.infoPopupShow = false\r\n const startX = event.clientX\r\n const startY = event.clientY\r\n const onMove = (e) => {\r\n if (Math.abs(e.clientX - startX) > 2 || Math.abs(e.clientY - startY) > 2) {\r\n this.infoPopupEditable = false\r\n document.removeEventListener(\'mousemove\', onMove)\r\n }\r\n }\r\n const onUp = () => {\r\n document.removeEventListener(\'mousemove\', onMove)\r\n document.removeEventListener(\'mouseup\', onUp)\r\n if (!this.infoPopupEditable) {\r\n setTimeout(() => {\r\n this.infoPopupEditable = true\r\n }, 0)\r\n }\r\n }\r\n document.addEventListener(\'mousemove\', onMove)\r\n document.addEventListener(\'mouseup\', onUp)\r\n },\r\n onSettingsUpdate(key, value) {\r\n this.$emit(\'conn-settings-update\', { conn: this.conn, key, value })\r\n },\r\n onWaypointMouseDown(i, event) {\r\n if (!this.interactive || this.locked || !this.settingsEnabled) return\r\n event.preventDefault()\r\n\r\n // 鎖定拖曳游標\r\n const cursorStyle = document.createElement(\'style\')\r\n cursorStyle.textContent = \'* { cursor: move !important; }\'\r\n document.head.appendChild(cursorStyle)\r\n\r\n const startX = event.clientX\r\n const startY = event.clientY\r\n const pts0 = this.waypointPts.map(p => [p.x, p.y]) //拖曳起始快照\r\n // Get zoom from the viewport transform(同 NodeWrapper 拖曳之換算)\r\n const viewport = this.$el.closest(\'.vue-flow__viewport\')\r\n const zoom = viewport ? parseFloat(viewport.style.transform.match(/scale\\(([^)]+)\\)/)?.[1] || 1) : 1\r\n\r\n const onMouseMove = (e) => {\r\n const dx = (e.clientX - startX) / zoom\r\n const dy = (e.clientY - startY) / zoom\r\n const np = pts0.map(p => [p[0], p[1]])\r\n np[i] = [Math.round(pts0[i][0] + dx), Math.round(pts0[i][1] + dy)]\r\n //僅更新本元件之ghost, 路徑即時重繪; 不mutate conn.points(prop)以免波及宿主之deep watcher\r\n this.dragPts = np\r\n }\r\n const onMouseUp = () => {\r\n document.removeEventListener(\'mousemove\', onMouseMove)\r\n document.removeEventListener(\'mouseup\', onMouseUp)\r\n document.head.removeChild(cursorStyle)\r\n //放開才發更新事件(與齒輪表單同一事件流, 由宿主持久化); 事件流為同步, 回來時conn.points已更新故可安全清ghost\r\n const value = this.waypointPts.map(p => [p.x, p.y])\r\n this.$emit(\'conn-settings-update\', { conn: this.conn, key: \'points\', value })\r\n this.dragPts = null\r\n }\r\n document.addEventListener(\'mousemove\', onMouseMove)\r\n document.addEventListener(\'mouseup\', onMouseUp)\r\n },\r\n onSettingsDelete() {\r\n this.$emit(\'conn-settings-delete\', { conn: this.conn })\r\n },\r\n },\r\n}\r\n<\/script>\r\n\r\n<style scoped>\r\n/* Only target direct-child paths (edge paths), not SVG paths inside settings icon */\r\n.vue-flow__edge > path {\r\n stroke: #b1b1b7;\r\n stroke-width: 1;\r\n fill: none;\r\n pointer-events: none;\r\n transition: stroke 0.3s ease, filter 0.18s ease;\r\n}\r\n.vue-flow__edge-interaction {\r\n stroke: transparent !important;\r\n stroke-width: 20 !important;\r\n fill: none;\r\n pointer-events: stroke !important;\r\n cursor: pointer;\r\n}\r\n.vue-flow__edge-waypoint {\r\n fill: #9e9e9e;\r\n stroke: #fff;\r\n stroke-width: 1.5;\r\n pointer-events: all;\r\n cursor: grab;\r\n}\r\n.vue-flow__edge-waypoint:hover {\r\n fill: #616161;\r\n stroke-width: 2;\r\n}\r\n.vue-flow__edge-waypoint:active {\r\n cursor: grabbing;\r\n}\r\n.vue-flow__edge:hover > path {\r\n stroke: #555;\r\n}\r\n.vue-flow__edge--selected > path,\r\n.vue-flow__edge--selected:hover > path {\r\n filter: drop-shadow(0 0 2px rgba(220, 38, 38, 0.8)) drop-shadow(0 0 4px rgba(220, 38, 38, 0.5)) drop-shadow(0 0 6px rgba(220, 38, 38, 0.25));\r\n}\r\n.vue-flow__edge--animated > path:not(.vue-flow__edge-interaction) {\r\n stroke-dasharray: 5;\r\n animation: vue-flow-dash 0.5s linear infinite;\r\n}\r\n@keyframes vue-flow-dash {\r\n to { stroke-dashoffset: -10; }\r\n}\r\n.vue-flow__edge-label-area {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n height: 100%;\r\n pointer-events: none;\r\n}\r\n.vue-flow__edge-label-group {\r\n position: relative;\r\n display: inline-flex;\r\n align-items: center;\r\n pointer-events: all;\r\n}\r\n.vue-flow__edge-label {\r\n pointer-events: all;\r\n cursor: pointer;\r\n font-family: \'Microsoft JhengHei\', \'微軟正黑體\', -apple-system, BlinkMacSystemFont, \'Segoe UI\', Roboto, sans-serif;\r\n font-size: 10px;\r\n background: #fff;\r\n padding: 2px 4px;\r\n border-radius: 2px;\r\n white-space: nowrap;\r\n user-select: none;\r\n text-align: center;\r\n display: inline-block;\r\n}\r\n.vue-flow__edge-popup-anchor {\r\n display: inline-block;\r\n width: 0;\r\n height: 0;\r\n}\r\n.vue-flow__edge-settings-anchor {\r\n position: absolute;\r\n top: -8px;\r\n right: -8px;\r\n z-index: 2;\r\n pointer-events: all;\r\n}\r\n.vue-flow__edge-settings {\r\n width: 20px;\r\n height: 20px;\r\n border-radius: 50%;\r\n background: #fff;\r\n border: 1px solid #ccc;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n color: #888;\r\n pointer-events: all;\r\n transition: border-color 0.15s ease, background 0.15s ease;\r\n}\r\n.vue-flow__edge-settings:hover {\r\n border-color: #666;\r\n background: #f0f0f0;\r\n color: #333;\r\n}\r\n/* Fade transition for settings icon */\r\n.vue-flow__fade-enter-active,\r\n.vue-flow__fade-leave-active {\r\n transition: opacity 0.15s ease;\r\n}\r\n.vue-flow__fade-enter,\r\n.vue-flow__fade-leave-to {\r\n opacity: 0;\r\n}\r\n</style>\r\n']},media:void 0})},Wp,"data-v-265c95c3",false,void 0,!1,Zr,void 0,void 0);var Lp={name:"EdgeMarkerDefs",inject:{getDefConn:{default:()=>()=>({})}},props:{conns:{type:Array,default:()=>[]}},computed:{markers(){const n=new Map,e=this.getDefConn();return this.conns.forEach(t=>{const o=t.edgeColor||e.edgeColor;this.collectMarker(t.markerStart,n,o),this.collectMarker(t.markerEnd||e.markerEnd,n,o)}),Array.from(n.values())}},methods:{collectMarker(n,e,t){if(!n)return;const o="string"==typeof n?{type:n}:n,r=o.color||t||"#b1b1b7",i=this.getMarkerId(o,r);e.has(i)||("arrowclosed"===o.type?e.set(i,{id:i,viewBox:"0 0 12.5 12.5",path:"M 0 0 L 10 5 L 0 10 z",fill:r,stroke:r}):e.set(i,{id:i,viewBox:"0 0 12.5 12.5",path:"M 0 0 L 10 5 L 0 10",fill:"none",stroke:r}))},getMarkerId:(n,e)=>`vue-flow__${"string"==typeof n?n:n.type}_${e.replace("#","")}`}};const Dp=Lp;var Rp=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("defs",n._l(n.markers,function(n){return t("marker",{key:n.id,attrs:{id:n.id,markerWidth:"12.5",markerHeight:"12.5",viewBox:n.viewBox,refX:"10",refY:"5",orient:"auto-start-reverse",markerUnits:"strokeWidth"}},[t("path",{attrs:{d:n.path,fill:n.fill,stroke:n.stroke,"stroke-width":"1"}})])}),0)};Rp._withStripped=!0;var jp={name:"EdgeRenderer",components:{EdgeWrapper:Mp,EdgeMarkerDefs:Xr({render:Rp,staticRenderFns:[]},void 0,Dp,void 0,false,void 0,!1,void 0,void 0,void 0)},props:{conns:{type:Array,default:()=>[]},nodes:{type:Array,default:()=>[]},nodeInternals:{type:Object,default:()=>({})},selectedConnIds:{type:Array,default:()=>[]},interactive:{type:Boolean,default:!0},locked:{type:Boolean,default:!1},settingsPopupBackgroundColor:{type:String,default:"#fff"},settingsPopupTextColor:{type:String,default:"#333"},settingsPopupTextFontSize:{type:String,default:"12px"},inforPopupBackgroundColor:{type:String,default:"#fff"},inforPopupTitleTextColor:{type:String,default:"#333"},inforPopupTitleTextFontSize:{type:String,default:"12px"},inforPopupDescriptionTextColor:{type:String,default:"#888"},inforPopupDescriptionTextFontSize:{type:String,default:"10px"},settingsEnabled:{type:Boolean,default:!0},settingsExcludes:{type:Array,default:()=>[]}},computed:{visibleConns(){const n=new Set(this.nodes.filter(n=>!n.hidden).map(n=>n.id)),e=this.conns.filter(e=>!e.hidden&&n.has(e.from)&&n.has(e.to)),t=this.selectedConnIds||[];return t.length?[...e.filter(n=>t.indexOf(n.id)<0),...e.filter(n=>t.indexOf(n.id)>=0)]:e},nodeMap(){const n={};return this.nodes.forEach(e=>{n[e.id]=e}),n}},methods:{isSelected(n){return this.selectedConnIds.includes(n)},openConnInfoPopup(n){let e=(this.$refs.wrappers||[]).find(e=>e.conn&&e.conn.id===n);return!!e&&(e.openInfoPopup(),!0)}}};const Op=jp;var Vp=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("svg",{staticClass:"vue-flow__edges"},[t("EdgeMarkerDefs",{attrs:{conns:n.conns}}),n._v(" "),n._l(n.visibleConns,function(e){return t("EdgeWrapper",{key:e.id,ref:"wrappers",refInFor:!0,attrs:{conn:e,"source-node":n.nodeMap[e.from],"target-node":n.nodeMap[e.to],selected:n.isSelected(e.id),"all-nodes":n.nodes,"node-internals":n.nodeInternals,interactive:n.interactive,locked:n.locked,"settings-popup-background-color":n.settingsPopupBackgroundColor,"settings-popup-text-color":n.settingsPopupTextColor,"settings-popup-text-font-size":n.settingsPopupTextFontSize,"infor-popup-background-color":n.inforPopupBackgroundColor,"infor-popup-title-text-color":n.inforPopupTitleTextColor,"infor-popup-title-text-font-size":n.inforPopupTitleTextFontSize,"infor-popup-description-text-color":n.inforPopupDescriptionTextColor,"infor-popup-description-text-font-size":n.inforPopupDescriptionTextFontSize,"settings-enabled":n.settingsEnabled,"settings-excludes":n.settingsExcludes},on:{"conn-click":function(e){return n.$emit("conn-click",e)},"conn-double-click":function(e){return n.$emit("conn-double-click",e)},"conn-context-menu":function(e){return n.$emit("conn-context-menu",e)},"conn-mouseenter":function(e){return n.$emit("conn-mouseenter",e)},"conn-mouseleave":function(e){return n.$emit("conn-mouseleave",e)},"conn-settings-click":function(e){return n.$emit("conn-settings-click",e)},"conn-settings-update":function(e){return n.$emit("conn-settings-update",e)},"conn-settings-delete":function(e){return n.$emit("conn-settings-delete",e)}},scopedSlots:n._u([n.$scopedSlots["conn-popup"]?{key:"conn-popup",fn:function(e){return[n._t("conn-popup",null,null,e)]}}:null],null,!0)})})],2)};Vp._withStripped=!0;const Yp=Xr({render:Vp,staticRenderFns:[]},function(n){n&&n("data-v-b3f9275a_0",{source:"\n.vue-flow__edges[data-v-b3f9275a] {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n overflow: visible;\r\n pointer-events: none;\n}\r\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\edges\\EdgeRenderer.vue"],names:[],mappings:";AAuGA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,iBAAA;EACA,oBAAA;AACA",file:"EdgeRenderer.vue",sourcesContent:['<template>\r\n <svg class="vue-flow__edges">\r\n <EdgeMarkerDefs :conns="conns" />\r\n <EdgeWrapper\r\n v-for="conn in visibleConns"\r\n ref="wrappers"\r\n :key="conn.id"\r\n :conn="conn"\r\n :source-node="nodeMap[conn.from]"\r\n :target-node="nodeMap[conn.to]"\r\n :selected="isSelected(conn.id)"\r\n :all-nodes="nodes"\r\n :node-internals="nodeInternals"\r\n :interactive="interactive"\r\n :locked="locked"\r\n :settings-popup-background-color="settingsPopupBackgroundColor"\r\n :settings-popup-text-color="settingsPopupTextColor"\r\n :settings-popup-text-font-size="settingsPopupTextFontSize"\r\n :infor-popup-background-color="inforPopupBackgroundColor"\r\n :infor-popup-title-text-color="inforPopupTitleTextColor"\r\n :infor-popup-title-text-font-size="inforPopupTitleTextFontSize"\r\n :infor-popup-description-text-color="inforPopupDescriptionTextColor"\r\n :infor-popup-description-text-font-size="inforPopupDescriptionTextFontSize"\r\n :settings-enabled="settingsEnabled"\r\n :settings-excludes="settingsExcludes"\r\n @conn-click="$emit(\'conn-click\', $event)"\r\n @conn-double-click="$emit(\'conn-double-click\', $event)"\r\n @conn-context-menu="$emit(\'conn-context-menu\', $event)"\r\n @conn-mouseenter="$emit(\'conn-mouseenter\', $event)"\r\n @conn-mouseleave="$emit(\'conn-mouseleave\', $event)"\r\n @conn-settings-click="$emit(\'conn-settings-click\', $event)"\r\n @conn-settings-update="$emit(\'conn-settings-update\', $event)"\r\n @conn-settings-delete="$emit(\'conn-settings-delete\', $event)"\r\n >\r\n <template v-if="$scopedSlots[\'conn-popup\']" v-slot:conn-popup="scope">\r\n <slot name="conn-popup" v-bind="scope" />\r\n </template>\r\n </EdgeWrapper>\r\n </svg>\r\n</template>\r\n\r\n<script>\r\nimport EdgeWrapper from \'./EdgeWrapper.vue\'\r\nimport EdgeMarkerDefs from \'./EdgeMarkerDefs.vue\'\r\n\r\nexport default {\r\n name: \'EdgeRenderer\', // lock support\r\n components: { EdgeWrapper, EdgeMarkerDefs },\r\n props: {\r\n conns: { type: Array, default: () => [] },\r\n nodes: { type: Array, default: () => [] },\r\n nodeInternals: { type: Object, default: () => ({}) },\r\n selectedConnIds: { type: Array, default: () => [] },\r\n interactive: { type: Boolean, default: true },\r\n locked: { type: Boolean, default: false },\r\n settingsPopupBackgroundColor: { type: String, default: \'#fff\' },\r\n settingsPopupTextColor: { type: String, default: \'#333\' },\r\n settingsPopupTextFontSize: { type: String, default: \'12px\' },\r\n inforPopupBackgroundColor: { type: String, default: \'#fff\' },\r\n inforPopupTitleTextColor: { type: String, default: \'#333\' },\r\n inforPopupTitleTextFontSize: { type: String, default: \'12px\' },\r\n inforPopupDescriptionTextColor: { type: String, default: \'#888\' },\r\n inforPopupDescriptionTextFontSize: { type: String, default: \'10px\' },\r\n settingsEnabled: { type: Boolean, default: true },\r\n settingsExcludes: { type: Array, default: () => [] },\r\n },\r\n computed: {\r\n visibleConns() {\r\n const visibleNodeIds = new Set(this.nodes.filter(n => !n.hidden).map(n => n.id))\r\n const list = this.conns.filter(\r\n e => !e.hidden && visibleNodeIds.has(e.from) && visibleNodeIds.has(e.to)\r\n )\r\n //選取之連線移至最後渲染(SVG疊序=文件順序即置頂): 該線與其轉折點不被其他線遮擋, 便於檢視與編修\r\n const sel = this.selectedConnIds || []\r\n if (!sel.length) return list\r\n return [...list.filter(c => sel.indexOf(c.id) < 0), ...list.filter(c => sel.indexOf(c.id) >= 0)]\r\n },\r\n nodeMap() {\r\n const map = {}\r\n this.nodes.forEach(n => {\r\n map[n.id] = n\r\n })\r\n return map\r\n },\r\n },\r\n methods: {\r\n //(效能重構)錨點座標/方位解析下沉至EdgeWrapper自算(含拖曳ghost):\r\n // 本層render不再讀取各節點position, 拖曳節點時EdgeRenderer不重渲染, 僅相連邊之EdgeWrapper更新\r\n isSelected(id) {\r\n return this.selectedConnIds.includes(id)\r\n },\r\n openConnInfoPopup(connId) {\r\n let wrappers = this.$refs.wrappers || []\r\n let w = wrappers.find(c => c.conn && c.conn.id === connId)\r\n if (!w) return false\r\n w.openInfoPopup()\r\n return true\r\n },\r\n },\r\n}\r\n<\/script>\r\n\r\n<style scoped>\r\n.vue-flow__edges {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n overflow: visible;\r\n pointer-events: none;\r\n}\r\n</style>\r\n']},media:void 0})},Op,"data-v-b3f9275a",false,void 0,!1,Zr,void 0,void 0),Up={bezier:wp,straight:Sp,step:kp,smoothstep:_p};const Xp={name:"ConnectionLine",props:{active:{type:Boolean,default:!1},sourceX:{type:Number,default:0},sourceY:{type:Number,default:0},sourcePosition:{type:String,default:"bottom"},targetX:{type:Number,default:0},targetY:{type:Number,default:0},type:{type:String,default:"bezier"},lineStyle:{type:Object,default:null}},computed:{pathD(){return(Up[this.type]||Up.bezier)({sourceX:this.sourceX,sourceY:this.sourceY,sourcePosition:this.sourcePosition,targetX:this.targetX,targetY:this.targetY,targetPosition:"top"}).path},computedLineStyle(){return this.lineStyle||{}}}};var Gp=function(){var n=this,e=n.$createElement,t=n._self._c||e;return n.active?t("svg",{staticClass:"vue-flow__connection-line"},[t("path",{staticClass:"vue-flow__connection-path",style:n.computedLineStyle,attrs:{d:n.pathD}})]):n._e()};Gp._withStripped=!0;const Zp=Xr({render:Gp,staticRenderFns:[]},function(n){n&&n("data-v-a322aa0e_0",{source:"\n.vue-flow__connection-line[data-v-a322aa0e] {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n overflow: visible;\n pointer-events: none;\n}\n.vue-flow__connection-path[data-v-a322aa0e] {\n stroke: #b1b1b7;\n stroke-width: 1;\n stroke-dasharray: 5 5;\n fill: none;\n}\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\edges\\ConnectionLine.vue"],names:[],mappings:";AAiDA;EACA,kBAAA;EACA,MAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,iBAAA;EACA,oBAAA;AACA;AACA;EACA,eAAA;EACA,eAAA;EACA,qBAAA;EACA,UAAA;AACA",file:"ConnectionLine.vue",sourcesContent:["<template>\n <svg v-if=\"active\" class=\"vue-flow__connection-line\">\n <path class=\"vue-flow__connection-path\" :d=\"pathD\" :style=\"computedLineStyle\" />\n </svg>\n</template>\n\n<script>\nimport { getBezierPath, getStraightPath, getStepPath, getSmoothStepPath } from '../../js/edgePath'\n\nconst pathFunctions = {\n bezier: getBezierPath,\n straight: getStraightPath,\n step: getStepPath,\n smoothstep: getSmoothStepPath,\n}\n\nexport default {\n name: 'ConnectionLine',\n props: {\n active: { type: Boolean, default: false },\n sourceX: { type: Number, default: 0 },\n sourceY: { type: Number, default: 0 },\n sourcePosition: { type: String, default: 'bottom' },\n targetX: { type: Number, default: 0 },\n targetY: { type: Number, default: 0 },\n type: { type: String, default: 'bezier' },\n lineStyle: { type: Object, default: null },\n },\n computed: {\n pathD() {\n const fn = pathFunctions[this.type] || pathFunctions.bezier\n const result = fn({\n sourceX: this.sourceX,\n sourceY: this.sourceY,\n sourcePosition: this.sourcePosition,\n targetX: this.targetX,\n targetY: this.targetY,\n targetPosition: 'top',\n })\n return result.path\n },\n computedLineStyle() {\n return this.lineStyle || {}\n },\n },\n}\n<\/script>\n\n<style scoped>\n.vue-flow__connection-line {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n overflow: visible;\n pointer-events: none;\n}\n.vue-flow__connection-path {\n stroke: #b1b1b7;\n stroke-width: 1;\n stroke-dasharray: 5 5;\n fill: none;\n}\n</style>\n"]},media:void 0})},Xp,"data-v-a322aa0e",false,void 0,!1,Zr,void 0,void 0);var qp={components:{WIcon:ni,WIconLoading:Hd,WTooltip:ks},props:{tooltip:{type:String,default:""},icon:{type:String,default:""},iconSize:{type:Number,default:22},iconColor:{type:String,default:"grey darken-1"},iconColorHover:{type:String,default:"grey darken-2"},iconColorFocus:{type:String,default:"grey darken-3"},iconColorActive:{type:String,default:"grey darken-3"},borderRadius:{type:[Number,String],default:"50%"},borderRadiusStyle:{type:Object,default:()=>({left:!0,right:!0})},borderWidth:{type:Number,default:0},borderColor:{type:String,default:"transparent"},borderColorHover:{type:String,default:"transparent"},borderColorFocus:{type:String,default:"transparent"},borderColorActive:{type:String,default:"transparent"},backgroundColor:{type:String,default:"rgb(241,241,241)"},backgroundColorHover:{type:String,default:"rgb(236,236,236)"},backgroundColorFocus:{type:String,default:"rgb(230,230,230)"},backgroundColorActive:{type:String,default:"rgb(230,230,230)"},tooltipBorderRadius:{type:Number,default:4},tooltipPaddingStyle:{type:Object,default:()=>({v:5,h:8})},tooltipTextFontSize:{type:String,default:"0.85rem"},tooltipTextColor:{type:String,default:"white"},tooltipBackgroundColor:{type:String,default:"rgba(60,60,60,0.75)"},rippleColor:{type:String,default:"rgba(255, 255, 255, 0.5)"},paddingStyle:{type:Object,default:()=>({v:4,h:4})},shadow:{type:Boolean,default:!0},shadowStyle:{type:String,default:"0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12)"},active:{type:Boolean,default:!1},cursorPointer:{type:Boolean,default:!0},loading:{type:Boolean,default:!1},loadingColor:{type:String,default:"grey darken-2"},promiseUnlock:{type:Boolean,default:!1},role:{type:String,default:"button"},editable:{type:Boolean,default:!0},disabledColor:{type:String,default:"rgba(255,255,255,0.5)"}},data:function(){return{activeTrans:!1,hoverTrans:!1,focusTrans:!1,loadingTrans:!1}},mounted:function(){},computed:{changeActive:function(){return this.activeTrans=this.active,""},changeLoading:function(){return this.loadingTrans=this.loading,""},effIconColor:function(){return Br(this.iconColor)},effIconColorHover:function(){return Br(this.iconColorHover)},effIconColorFocus:function(){return Br(this.iconColorFocus)},effIconColorActive:function(){return Br(this.iconColorActive)},useIconColor:function(){let n,e=this;return e.loadingTrans?e.effIconColor:(n=e.activeTrans?e.effIconColorActive:e.focusTrans?e.effIconColorFocus:e.hoverTrans?e.effIconColorHover:e.effIconColor,e.editable||(n=e.activeTrans?e.effIconColorActive:e.effIconColor),n)},useBorderRadius:function(){let n=this,e="0px";if(Ut(n.borderRadius)){e=`${Xt(n.borderRadius)}px;`}else ft(n.borderRadius)&&(e=n.borderRadius);let t="0px",o="0px",r="0px",i="0px";return!0===an(n,"borderRadiusStyle.left")&&(t=e,r=e),!0===an(n,"borderRadiusStyle.right")&&(o=e,i=e),!0===an(n,"borderRadiusStyle.top")&&(t=e,o=e),!0===an(n,"borderRadiusStyle.bottom")&&(r=e,i=e),!0!==an(n,"borderRadiusStyle.topLeft")&&!0!==an(n,"borderRadiusStyle.top-left")||(t=e),!0!==an(n,"borderRadiusStyle.topRight")&&!0!==an(n,"borderRadiusStyle.top-right")||(o=e),!0!==an(n,"borderRadiusStyle.bottomLeft")&&!0!==an(n,"borderRadiusStyle.bottom-left")||(r=e),!0!==an(n,"borderRadiusStyle.bottomRight")&&!0!==an(n,"borderRadiusStyle.bottom-right")||(i=e),`border-top-left-radius:${t}; border-top-right-radius:${o}; border-bottom-left-radius:${r}; border-bottom-right-radius:${i};`},effBorderColor:function(){return Br(this.borderColor)},effBorderColorHover:function(){return Br(this.borderColorHover)},effBorderColorFocus:function(){return Br(this.borderColorFocus)},effBorderColorActive:function(){return Br(this.borderColorActive)},useBorderColor:function(){let n,e=this;return e.loadingTrans?e.effBorderColor:(n=e.activeTrans?e.effBorderColorActive:e.focusTrans?e.effBorderColorFocus:e.hoverTrans?e.effBorderColorHover:e.effBorderColor,e.editable||(n=e.activeTrans?e.effBorderColorActive:e.effBorderColor),n)},effBackgroundColor:function(){return Br(this.backgroundColor)},effBackgroundColorHover:function(){return Br(this.backgroundColorHover)},effBackgroundColorFocus:function(){return Br(this.backgroundColorFocus)},effBackgroundColorActive:function(){return Br(this.backgroundColorActive)},useBackgroundColor:function(){let n,e=this;return e.loadingTrans?e.effBackgroundColor:(n=e.activeTrans?e.effBackgroundColorActive:e.focusTrans?e.effBackgroundColorFocus:e.hoverTrans?e.effBackgroundColorHover:e.effBackgroundColor,e.editable||(n=e.activeTrans?e.effBackgroundColorActive:e.effBackgroundColor),n)},effRippleColor:function(){return Br(this.rippleColor)},effLoadingColor:function(){return Br(this.loadingColor)},effDisabledColor:function(){return Br(this.disabledColor)},usePadding:function(){return`padding:${Or(this.paddingStyle,{ext:{}})};`},useShadow:function(){let n=this;return n.shadow&&ft(n.shadowStyle)?"box-shadow:"+function(n,e,t){let o=ce(n=Pr(n,"}","{"),"{");return o=lt(o,n=>{if(n.indexOf(e)>=0){let e=Rs(n,"=")[1];return e=Ut(e)?Xt(e):.2,function(n,e){let t=Br(n),o=Ul.toRgba(t);return o.a=e,Ul.toRgbaString(o)}(t,e)}return n}),Kl(o,"")}(n.shadowStyle,"backgroundColorAlpha",n.backgroundColor):""},hasTooltop:function(){return ft(this.tooltip)}},methods:{ripple:function(n){let e=this;e.editable&&(e.loadingTrans||e.$nextTick(()=>{Mr(n.currentTarget,n,{color:e.effRippleColor,timeDuration:500})}))},clickBtn:function(n){let e=this;if(e.editable&&!e.loadingTrans)if(e.promiseUnlock){e.loadingTrans=!0,e.$nextTick(()=>{e.$emit("update:loading",e.loadingTrans)});let n=yd();e.$nextTick(()=>{e.$emit("click",{pm:n})}),n.catch().finally(()=>{e.loadingTrans=!1,e.$nextTick(()=>{e.$emit("update:loading",e.loadingTrans)})})}else e.$nextTick(()=>{e.$emit("click")})}}};const Jp=qp;var Qp=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{staticStyle:{display:"inline-block","vertical-align":"middle",outline:"none","user-select":"none"},attrs:{role:n.editable?n.role:"",changeActive:n.changeActive,changeLoading:n.changeLoading}},[t("WTooltip",{attrs:{displayType:"line",isolated:!0,borderRadius:n.tooltipBorderRadius,paddingStyle:n.tooltipPaddingStyle,textFontSize:n.tooltipTextFontSize,textColor:n.tooltipTextColor,backgroundColor:n.tooltipBackgroundColor,editable:n.hasTooltop},scopedSlots:n._u([{key:"trigger",fn:function(){return[t("div",{style:"position:relative; transition:all 0.3s; "+n.usePadding+" "+n.useBorderRadius+" border:"+n.borderWidth+"px solid "+n.useBorderColor+"; background:"+n.useBackgroundColor+"; "+(n.editable&&n.cursorPointer?"cursor:pointer;":"")+" "+n.useShadow+"; outline:none; user-select:none; overflow:hidden;",attrs:{tabindex:"0"},on:{mouseenter:function(e){n.hoverTrans=!0,n.$emit("mouseenter",e)},mouseleave:function(e){n.hoverTrans=!1,n.$emit("mouseleave",e)},focus:function(e){n.focusTrans=!0},blur:function(e){n.focusTrans=!1},keyup:function(e){return!e.type.indexOf("key")&&n._k(e.keyCode,"enter",13,e.key,"Enter")?null:n.clickBtn(e)},click:function(e){n.ripple(e),n.clickBtn(e)}}},[t("div",{staticStyle:{display:"flex","align-items":"center","justify-content":"center"}},[n.loadingTrans?n._e():t("WIcon",{attrs:{icon:n.icon,color:n.useIconColor,colorHover:n.useIconColor,size:n.iconSize}}),n._v(" "),n.loadingTrans?t("WIconLoading",{attrs:{name:"cir-rotate",color:n.effLoadingColor,size:n.iconSize}}):n._e()],1),n._v(" "),n.editable?n._e():t("div",{staticStyle:{position:"absolute",left:"0",right:"0",top:"0",bottom:"0"}},[t("div",{style:n.useBorderRadius+" overflow:hidden; width:100%; height:100%;"},[t("div",{style:"background:"+n.effDisabledColor+"; height:100%;"})])])])]},proxy:!0},{key:"content",fn:function(){return[n._v("\n "+n._s(n.tooltip)+"\n ")]},proxy:!0}])})],1)};Qp._withStripped=!0;var Kp={components:{WButtonCircle:Xr({render:Qp,staticRenderFns:[]},function(n){n&&n("data-v-b9ce631c_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WButtonCircle.vue"},media:void 0})},Jp,"data-v-b9ce631c",false,void 0,!1,Zr,void 0,void 0)},props:{multiCheck:{type:Boolean,default:!0},items:{type:Array,default:()=>[]},value:{type:[Array,Object],default:null},keyIcon:{type:String,default:"icon"},keyTooltip:{type:String,default:"tooltip"},dir:{type:String,default:"horizontal"},iconColor:{type:String,default:"#222"},iconColorHover:{type:String,default:"#444"},iconColorFocus:{type:String,default:"#666"},iconColorActive:{type:String,default:"#333"},iconSize:{type:Number,default:22},borderWidth:{type:Number,default:0},borderRadius:{type:Number,default:4},borderColor:{type:String,default:"transparent"},borderColorHover:{type:String,default:"transparent"},borderColorFocus:{type:String,default:"transparent"},borderColorActive:{type:String,default:"transparent"},backgroundColor:{type:String,default:"#f2f2f2"},backgroundColorHover:{type:String,default:"#eaeaea"},backgroundColorFocus:{type:String,default:"#e2e2e2"},backgroundColorActive:{type:String,default:"#cecece"},seplineWidth:{type:Number,default:1},seplineColor:{type:String,default:"#ddd"},tooltipBorderRadius:{type:Number,default:4},tooltipPaddingStyle:{type:Object,default:()=>({v:5,h:8})},tooltipTextFontSize:{type:String,default:"0.85rem"},tooltipTextColor:{type:String,default:"white"},tooltipBackgroundColor:{type:String,default:"rgba(60,60,60,0.75)"},rippleColor:{type:String,default:"rgba(255, 255, 255, 0.5)"},paddingStyle:{type:Object,default:()=>({v:4,h:4})},shadow:{type:Boolean,default:!1},shadowStyle:{type:String,default:"0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12)"},editable:{type:Boolean,default:!0}},data:function(){return{get:an,itemsTrans:[]}},mounted:function(){},computed:{changeItems:function(){let n=this;let e=Mo(n.items),t=lt(e,e=>{let t=function(e){let t;return t=n.multiCheck?Ed(n.value,e):It(e,n.value),t}(e);return{active:t,hover:!1}}),o=lt(e,(n,e)=>{let o={data:n},r=t[e];return o.ia=r,o.active=r.active,o.hover=!1,o});return n.itemsTrans=o,""},useFlexDirection:function(){return"horizontal"===this.dir?"row":"column"},useSeplineStype:function(){let n=this,e="";return e="horizontal"===n.dir?`height:100%; border-left:${n.seplineWidth}px solid ${n.useSeplineColor};`:`width:100%; border-top:${n.seplineWidth}px solid ${n.useSeplineColor};`,e},useSeplineColor:function(){return Br(this.seplineColor)},useShadow:function(){let n=this;return n.shadow&&ft(n.shadowStyle)?"box-shadow:"+function(n,e,t){let o=ce(n=Pr(n,"}","{"),"{");return o=lt(o,n=>{if(n.indexOf(e)>=0){let e=Rs(n,"=")[1];return e=Ut(e)?Xt(e):.2,function(n,e){let t=Br(n),o=Ul.toRgba(t);return o.a=e,Ul.toRgbaString(o)}(t,e)}return n}),Kl(o,"")}(n.shadowStyle,"backgroundColorAlpha",n.backgroundColor):""}},methods:{getBorderRadiusStyle:function(n){let e=Tt(this.itemsTrans)-1,t={};return"horizontal"===this.dir?(0===n&&(t={...t,topLeft:!0,bottomLeft:!0}),n===e&&(t={...t,topRight:!0,bottomRight:!0})):(0===n&&(t={...t,topLeft:!0,topRight:!0}),n===e&&(t={...t,bottomLeft:!0,bottomRight:!0})),t},toggleState:function(n){let e=this;if(!1!==e.editable)if(e.multiCheck){let t=Mo(e.value);if(n.active){let e=[];Yn(t,t=>{It(t,n.data)||e.push(t)}),t=e}else t.push(n.data);e.$nextTick(()=>{e.$emit("input",t),e.$emit("click",n.data,""+(n.active?"hide":"show"))})}else e.$nextTick(()=>{e.$emit("input",n.data),e.$emit("click",n.data)})}}};const nf=Kp;var ef=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{attrs:{changeItems:n.changeItems}},[t("div",{style:"display:inline-block; border-radius:"+n.borderRadius+"px; "+n.useShadow},[t("div",{style:"display:flex; flex-direction:"+n.useFlexDirection+";"},[n._l(n.itemsTrans,function(e,o){return[t("div",{key:"kitem-"+o,style:"display:flex; flex-direction:"+n.useFlexDirection+"; align-items:stretch;"},[o>0?t("div",{style:""+n.useSeplineStype}):n._e(),n._v(" "),t("WButtonCircle",{key:o,attrs:{tooltip:n.get(e,"data."+n.keyTooltip),icon:n.get(e,"data."+n.keyIcon),iconColor:n.iconColor,iconColorHover:n.iconColorHover,iconColorFocus:n.iconColorFocus,iconColorActive:n.iconColorActive,iconSize:n.iconSize,borderWidth:n.borderWidth,borderRadius:n.borderRadius,borderRadiusStyle:n.getBorderRadiusStyle(o),borderColor:n.borderColor,borderColorHover:n.borderColorHover,borderColorFocus:n.borderColorFocus,borderColorActive:n.borderColorActive,backgroundColor:n.backgroundColor,backgroundColorHover:n.backgroundColorHover,backgroundColorFocus:n.backgroundColorFocus,backgroundColorActive:n.backgroundColorActive,tooltipBorderRadius:n.tooltipBorderRadius,tooltipPaddingStyle:n.tooltipPaddingStyle,tooltipTextFontSize:n.tooltipTextFontSize,tooltipTextColor:n.tooltipTextColor,tooltipBackgroundColor:n.tooltipBackgroundColor,rippleColor:n.rippleColor,paddingStyle:n.paddingStyle,shadow:!1,_shadowStyle:"shadowStyle",editable:n.editable,disabledColor:"rgba(255,255,255,0.4)",active:e.active},on:{click:function(t){return n.toggleState(e)}}})],1)]})],2)])])};ef._withStripped=!0;let tf={useMenu:!0,menuPosition:"top-left",menuYShift:0,useSetting:!0,menuSettingIcon:"M12,8A4,4 0 0,1 16,12A4,4 0 0,1 12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10M10,22C9.75,22 9.54,21.82 9.5,21.58L9.13,18.93C8.5,18.68 7.96,18.34 7.44,17.94L4.95,18.95C4.73,19.03 4.46,18.95 4.34,18.73L2.34,15.27C2.21,15.05 2.27,14.78 2.46,14.63L4.57,12.97L4.5,12L4.57,11L2.46,9.37C2.27,9.22 2.21,8.95 2.34,8.73L4.34,5.27C4.46,5.05 4.73,4.96 4.95,5.05L7.44,6.05C7.96,5.66 8.5,5.32 9.13,5.07L9.5,2.42C9.54,2.18 9.75,2 10,2H14C14.25,2 14.46,2.18 14.5,2.42L14.87,5.07C15.5,5.32 16.04,5.66 16.56,6.05L19.05,5.05C19.27,4.96 19.54,5.05 19.66,5.27L21.66,8.73C21.79,8.95 21.73,9.22 21.54,9.37L19.43,11L19.5,12L19.43,13L21.54,14.63C21.73,14.78 21.79,15.05 21.66,15.27L19.66,18.73C19.54,18.95 19.27,19.04 19.05,18.95L16.56,17.95C16.04,18.34 15.5,18.68 14.87,18.93L14.5,21.58C14.46,21.82 14.25,22 14,22H10M11.25,4L10.88,6.61C9.68,6.86 8.62,7.5 7.85,8.39L5.44,7.35L4.69,8.65L6.8,10.2C6.4,11.37 6.4,12.64 6.8,13.8L4.68,15.36L5.43,16.66L7.86,15.62C8.63,16.5 9.68,17.14 10.87,17.38L11.24,20H12.76L13.13,17.39C14.32,17.14 15.37,16.5 16.14,15.62L18.57,16.66L19.32,15.36L17.2,13.81C17.6,12.64 17.6,11.37 17.2,10.2L19.31,8.65L18.56,7.35L16.15,8.39C15.38,7.5 14.32,6.86 13.12,6.62L12.75,4H11.25Z",menuSettingTooltip:"Settings",useMenuItemZoomIn:!0,menuZoomInIcon:"M15.5,14L20.5,19L19,20.5L14,15.5V14.71L13.73,14.43C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.43,13.73L14.71,14H15.5M9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14M12,10H10V12H9V10H7V9H9V7H10V9H12V10Z",menuZoomInTooltip:"Zoom In",useMenuItemZoomOut:!0,menuZoomOutIcon:"M15.5,14H14.71L14.43,13.73C15.41,12.59 16,11.11 16,9.5A6.5,6.5 0 0,0 9.5,3A6.5,6.5 0 0,0 3,9.5A6.5,6.5 0 0,0 9.5,16C11.11,16 12.59,15.41 13.73,14.43L14,14.71V15.5L19,20.5L20.5,19L15.5,14M9.5,14C7,14 5,12 5,9.5C5,7 7,5 9.5,5C12,5 14,7 14,9.5C14,12 12,14 9.5,14M7,9H12V10H7V9Z",menuZoomOutTooltip:"Zoom Out",useMenuItemFitView:!0,menuFitViewIcon:"M20,2H4C2.89,2 2,2.89 2,4V20C2,21.11 2.89,22 4,22H20C21.11,22 22,21.11 22,20V4C22,2.89 21.11,2 20,2M20,20H4V4H20M13,8V10H11V8H9L12,5L15,8M16,15V13H14V11H16V9L19,12M10,13H8V15L5,12L8,9V11H10M15,16L12,19L9,16H11V14H13V16",menuFitViewTooltip:"Fit View",useMenuItemLock:!0,menuLockIcon:"M10 13C11.1 13 12 13.89 12 15C12 16.11 11.11 17 10 17S8 16.11 8 15 8.9 13 10 13M18 1C15.24 1 13 3.24 13 6V8H4C2.9 8 2 8.9 2 10V20C2 21.1 2.9 22 4 22H16C17.1 22 18 21.1 18 20V10C18 8.9 17.1 8 16 8H15V6C15 4.34 16.34 3 18 3S21 4.34 21 6V8H23V6C23 3.24 20.76 1 18 1M16 10V20H4V10H16Z",menuLockTooltip:"Lock",menuLockIconLocked:"M12,17C10.89,17 10,16.1 10,15C10,13.89 10.89,13 12,13A2,2 0 0,1 14,15A2,2 0 0,1 12,17M18,20V10H6V20H18M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V10C4,8.89 4.89,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z",menuLockTooltipLocked:"Unlock",menuIconColor:"#555",menuIconColorHover:"#222",menuIconColorFocus:"#222",menuIconSize:22,menuBackgroundColor:"#fefefe",menuBackgroundColorHover:"#f0f0f0",menuBackgroundColorFocus:"#f0f0f0",menuSeparatorColor:"#e6e6e6",menuShadow:!0,menuTooltipTextColor:"white",menuTooltipTextFontSize:"0.7rem",menuTooltipBackgroundColor:"rgba(60,60,60,0.75)"},of=["top-left","top-right","bottom-left","bottom-right"];function rf(n,e){let t=tf[n];return"string"==typeof t?"string"==typeof e&&""!==e?e:t:"boolean"==typeof t?"boolean"==typeof e?e:t:"number"==typeof t&&"number"==typeof e&&isFinite(e)?e:t}const af={name:"FlowControls",components:{WGroupIconCheck:Xr({render:ef,staticRenderFns:[]},function(n){n&&n("data-v-4390c218_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WGroupIconCheck.vue"},media:void 0})},nf,"data-v-4390c218",false,void 0,!1,Zr,void 0,void 0)},props:{menu:{type:Object,default:()=>({})},locked:{type:Boolean,default:!1}},data(){return{useSetting:rf("useSetting",(this.menu||{}).useSetting)}},computed:{cfg(){let n=this.menu||{},e={};for(let t in tf)e[t]=rf(t,n[t]);return of.indexOf(e.menuPosition)<0&&(e.menuPosition=tf.menuPosition),e},allItems(){let n=this.cfg,e=[{id:"setting",icon:n.menuSettingIcon,tooltip:n.menuSettingTooltip}];return n.useMenuItemZoomIn&&e.push({id:"zoomIn",icon:n.menuZoomInIcon,tooltip:n.menuZoomInTooltip}),n.useMenuItemZoomOut&&e.push({id:"zoomOut",icon:n.menuZoomOutIcon,tooltip:n.menuZoomOutTooltip}),n.useMenuItemFitView&&e.push({id:"fitView",icon:n.menuFitViewIcon,tooltip:n.menuFitViewTooltip}),n.useMenuItemLock&&e.push({id:"interactive",icon:this.locked?n.menuLockIconLocked:n.menuLockIcon,tooltip:this.locked?n.menuLockTooltipLocked:n.menuLockTooltip}),e},useItems(){return this.useSetting?this.allItems:[this.allItems[0]]},panelStyle(){let n="z-index:5;";return this.cfg.menuPosition.indexOf("bottom")>=0?n+=`margin-bottom:${this.cfg.menuYShift}px;`:n+=`margin-top:${this.cfg.menuYShift}px;`,n}},methods:{onClickItem(n){let e=n&&n.id||"";"setting"===e?this.useSetting=!this.useSetting:"zoomIn"===e?this.$emit("zoom-in"):"zoomOut"===e?this.$emit("zoom-out"):"fitView"===e?this.$emit("fit-view"):"interactive"===e&&this.$emit("toggle-interactive")}}};var sf=function(){var n=this,e=n.$createElement,t=n._self._c||e;return n.cfg.useMenu?t("div",{class:["vue-flow__panel","vue-flow__panel--"+n.cfg.menuPosition],style:n.panelStyle},[t("WGroupIconCheck",{attrs:{items:n.useItems,dir:"vertical",iconColor:n.cfg.menuIconColor,iconColorHover:n.cfg.menuIconColorHover,iconColorFocus:n.cfg.menuIconColorFocus,iconSize:n.cfg.menuIconSize,backgroundColor:n.cfg.menuBackgroundColor,backgroundColorHover:n.cfg.menuBackgroundColorHover,backgroundColorFocus:n.cfg.menuBackgroundColorFocus,seplineColor:n.cfg.menuSeparatorColor,shadow:n.cfg.menuShadow,tooltipTextColor:n.cfg.menuTooltipTextColor,tooltipTextFontSize:n.cfg.menuTooltipTextFontSize,tooltipBackgroundColor:n.cfg.menuTooltipBackgroundColor,value:[]},on:{click:n.onClickItem}})],1):n._e()};sf._withStripped=!0;let lf=0;const df={type:"basic",shape:"rectangle",width:100,height:40,fontSize:12,fontSizeMin:1,fontSizeMax:72,fontColor:"#333333",faceColor:"#ffffff",edgeColor:"#bbbbbb",edgeWidth:1,toPosition:"bottom",fromPosition:"top",popupDirection:"right"},uf={type:"bezier",fontSize:10,fontSizeMin:1,fontSizeMax:72,fontColor:"#333333",edgeColor:"#b1b1b7",edgeWidth:1,markerEnd:"",animated:!1,defOffset:24};var cf={components:{FlowCanvas:ui,ViewportTransform:fi,BackgroundLayer:vi,SelectionBox:bi,NodeRenderer:op,EdgeRenderer:Yp,ConnectionLine:Zp,Controls:Xr({render:sf,staticRenderFns:[]},function(n){n&&n("data-v-78fc6f50_0",{source:"\n.vue-flow__panel[data-v-78fc6f50] {\r\n position: absolute;\r\n z-index: 5;\n}\n.vue-flow__panel--top-left[data-v-78fc6f50] { top: 10px; left: 10px;\n}\n.vue-flow__panel--top-right[data-v-78fc6f50] { top: 10px; right: 10px;\n}\n.vue-flow__panel--bottom-left[data-v-78fc6f50] { bottom: 10px; left: 10px;\n}\n.vue-flow__panel--bottom-right[data-v-78fc6f50] { bottom: 10px; right: 10px;\n}\r\n",map:{version:3,sources:["C:\\opensrc\\開源-JS-409-7-w-flow-vue\\w-flow-vue\\src\\components\\ui\\Controls.vue"],names:[],mappings:";AAqMA;EACA,kBAAA;EACA,UAAA;AACA;AACA,8CAAA,SAAA,EAAA,UAAA;AAAA;AACA,+CAAA,SAAA,EAAA,WAAA;AAAA;AACA,iDAAA,YAAA,EAAA,UAAA;AAAA;AACA,kDAAA,YAAA,EAAA,WAAA;AAAA",file:"Controls.vue",sourcesContent:["<template>\r\n \x3c!-- 垂直選單: 改用w-threejs-vue同款組件WGroupIconCheck(:dir='vertical'), 最頂為設定鈕, 收合時僅顯示設定鈕, 展開才顯示其餘按鈕 --\x3e\r\n <div\r\n v-if=\"cfg.useMenu\"\r\n :class=\"['vue-flow__panel', `vue-flow__panel--${cfg.menuPosition}`]\"\r\n :style=\"panelStyle\"\r\n >\r\n \x3c!-- 淺色系配色(w-flow-vue圖台為白底, 沿用原Controls之#fefefe白底/深灰icon風格; iconSize預設22, 按鈕寬=22+左右padding8=30px與w-threejs-vue選單一致) --\x3e\r\n \x3c!-- 全數為一般動作鈕(不用active態): 鎖頭點擊即切換上鎖/解鎖並換icon(比照fitView等), 不留固定灰底; value恆空故無任一鈕呈active, 故不開放*ColorActive類選項 --\x3e\r\n <WGroupIconCheck\r\n :items=\"useItems\"\r\n :dir=\"'vertical'\"\r\n :iconColor=\"cfg.menuIconColor\"\r\n :iconColorHover=\"cfg.menuIconColorHover\"\r\n :iconColorFocus=\"cfg.menuIconColorFocus\"\r\n :iconSize=\"cfg.menuIconSize\"\r\n :backgroundColor=\"cfg.menuBackgroundColor\"\r\n :backgroundColorHover=\"cfg.menuBackgroundColorHover\"\r\n :backgroundColorFocus=\"cfg.menuBackgroundColorFocus\"\r\n :seplineColor=\"cfg.menuSeparatorColor\"\r\n :shadow=\"cfg.menuShadow\"\r\n :tooltipTextColor=\"cfg.menuTooltipTextColor\"\r\n :tooltipTextFontSize=\"cfg.menuTooltipTextFontSize\"\r\n :tooltipBackgroundColor=\"cfg.menuTooltipBackgroundColor\"\r\n :value=\"[]\"\r\n @click=\"onClickItem\"\r\n ></WGroupIconCheck>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport WGroupIconCheck from 'w-component-vue/src/components/WGroupIconCheck.vue'\r\nimport { mdiCogOutline, mdiMagnifyPlusOutline, mdiMagnifyMinusOutline, mdiFitToPageOutline, mdiLockOutline, mdiLockOpenVariantOutline } from '@mdi/js/mdi.js'\r\n\r\n//menuDef, 選單各項之預設值, 未被opt覆寫者沿用之\r\n//注意: menuIconSize, menuTooltipTextColor, menuTooltipBackgroundColor原為WGroupIconCheck之預設值,\r\n//因w-component-vue為浮動相依(^2.5.2), 子套件改預設會靜默改變本套件外觀, 故於此明寫鎖住現值\r\nlet menuDef = {\r\n\r\n //整體\r\n useMenu: true,\r\n menuPosition: 'top-left',\r\n menuYShift: 0,\r\n useSetting: true,\r\n\r\n //設定鈕(收合/展開)\r\n menuSettingIcon: mdiCogOutline,\r\n menuSettingTooltip: 'Settings',\r\n\r\n //放大\r\n useMenuItemZoomIn: true,\r\n menuZoomInIcon: mdiMagnifyPlusOutline,\r\n menuZoomInTooltip: 'Zoom In',\r\n\r\n //縮小\r\n useMenuItemZoomOut: true,\r\n menuZoomOutIcon: mdiMagnifyMinusOutline,\r\n menuZoomOutTooltip: 'Zoom Out',\r\n\r\n //全圖\r\n useMenuItemFitView: true,\r\n menuFitViewIcon: mdiFitToPageOutline,\r\n menuFitViewTooltip: 'Fit View',\r\n\r\n //鎖定(雙態: 無後綴為未鎖態, Locked後綴為已鎖態)\r\n useMenuItemLock: true,\r\n menuLockIcon: mdiLockOpenVariantOutline,\r\n menuLockTooltip: 'Lock',\r\n menuLockIconLocked: mdiLockOutline,\r\n menuLockTooltipLocked: 'Unlock',\r\n\r\n //樣式\r\n menuIconColor: '#555',\r\n menuIconColorHover: '#222',\r\n menuIconColorFocus: '#222',\r\n menuIconSize: 22,\r\n menuBackgroundColor: '#fefefe',\r\n menuBackgroundColorHover: '#f0f0f0',\r\n menuBackgroundColorFocus: '#f0f0f0',\r\n menuSeparatorColor: '#e6e6e6',\r\n menuShadow: true,\r\n menuTooltipTextColor: 'white',\r\n menuTooltipTextFontSize: '0.7rem',\r\n menuTooltipBackgroundColor: 'rgba(60,60,60,0.75)',\r\n\r\n}\r\n\r\n//menuPositions, menuPosition之允許值, 不在其中者回退預設\r\nlet menuPositions = ['top-left', 'top-right', 'bottom-left', 'bottom-right']\r\n\r\n/**\r\n * 取單項設定值, 型別與menuDef同型且有效才採用, 否則回退menuDef\r\n */\r\nfunction pickMenuValue(k, v) {\r\n let d = menuDef[k]\r\n if (typeof d === 'string') {\r\n return (typeof v === 'string' && v !== '') ? v : d\r\n }\r\n if (typeof d === 'boolean') {\r\n return (typeof v === 'boolean') ? v : d\r\n }\r\n if (typeof d === 'number') {\r\n return (typeof v === 'number' && isFinite(v)) ? v : d\r\n }\r\n return d\r\n}\r\n\r\nexport default {\r\n name: 'FlowControls',\r\n components: { WGroupIconCheck },\r\n props: {\r\n //選單設定物件, 鍵值同menuDef, 由WFlowVue自opt原樣取出後傳入; 各鍵未給或型別不符即回退menuDef\r\n menu: { type: Object, default: () => ({}) },\r\n locked: { type: Boolean, default: false },\r\n },\r\n data() {\r\n return {\r\n //設定鈕展開狀態(收合時僅顯示設定鈕, 展開才顯示其餘按鈕), 比照w-threejs-vue; 初值取menu.useSetting\r\n useSetting: pickMenuValue('useSetting', (this.menu || {}).useSetting),\r\n }\r\n },\r\n computed: {\r\n cfg() {\r\n let m = this.menu || {}\r\n let r = {}\r\n for (let k in menuDef) {\r\n r[k] = pickMenuValue(k, m[k])\r\n }\r\n //menuPosition另檢核列舉值\r\n if (menuPositions.indexOf(r.menuPosition) < 0) {\r\n r.menuPosition = menuDef.menuPosition\r\n }\r\n return r\r\n },\r\n allItems() {\r\n let c = this.cfg\r\n let rs = [\r\n { id: 'setting', icon: c.menuSettingIcon, tooltip: c.menuSettingTooltip },\r\n ]\r\n if (c.useMenuItemZoomIn) {\r\n rs.push({ id: 'zoomIn', icon: c.menuZoomInIcon, tooltip: c.menuZoomInTooltip })\r\n }\r\n if (c.useMenuItemZoomOut) {\r\n rs.push({ id: 'zoomOut', icon: c.menuZoomOutIcon, tooltip: c.menuZoomOutTooltip })\r\n }\r\n if (c.useMenuItemFitView) {\r\n rs.push({ id: 'fitView', icon: c.menuFitViewIcon, tooltip: c.menuFitViewTooltip })\r\n }\r\n if (c.useMenuItemLock) {\r\n rs.push({ id: 'interactive', icon: this.locked ? c.menuLockIconLocked : c.menuLockIcon, tooltip: this.locked ? c.menuLockTooltipLocked : c.menuLockTooltip })\r\n }\r\n return rs\r\n },\r\n useItems() {\r\n //設定鈕恆在最頂; 收合時僅顯示設定鈕\r\n if (this.useSetting) {\r\n return this.allItems\r\n }\r\n return [this.allItems[0]]\r\n },\r\n panelStyle() {\r\n //向下偏移: top-*位置加margin-top, bottom-*位置加margin-bottom(margin於絕對定位元素上等同再位移該側)\r\n //故menuYShift之語義為[正值使選單遠離其錨定邊]: top-*向下, bottom-*向上\r\n let s = 'z-index:5;'\r\n if (this.cfg.menuPosition.indexOf('bottom') >= 0) {\r\n s += `margin-bottom:${this.cfg.menuYShift}px;`\r\n }\r\n else {\r\n s += `margin-top:${this.cfg.menuYShift}px;`\r\n }\r\n return s\r\n },\r\n },\r\n methods: {\r\n onClickItem(item) {\r\n let id = (item && item.id) || ''\r\n if (id === 'setting') {\r\n this.useSetting = !this.useSetting\r\n }\r\n else if (id === 'zoomIn') {\r\n this.$emit('zoom-in')\r\n }\r\n else if (id === 'zoomOut') {\r\n this.$emit('zoom-out')\r\n }\r\n else if (id === 'fitView') {\r\n this.$emit('fit-view')\r\n }\r\n else if (id === 'interactive') {\r\n this.$emit('toggle-interactive')\r\n }\r\n },\r\n },\r\n}\r\n<\/script>\r\n\r\n<style scoped>\r\n.vue-flow__panel {\r\n position: absolute;\r\n z-index: 5;\r\n}\r\n.vue-flow__panel--top-left { top: 10px; left: 10px; }\r\n.vue-flow__panel--top-right { top: 10px; right: 10px; }\r\n.vue-flow__panel--bottom-left { bottom: 10px; left: 10px; }\r\n.vue-flow__panel--bottom-right { bottom: 10px; right: 10px; }\r\n</style>\r\n"]},media:void 0})},af,"data-v-78fc6f50",false,void 0,!1,Zr,void 0,void 0)},props:{opt:{type:Object,default:()=>({})}},provide(){return{getDefNode:()=>this.defNode,getDefConn:()=>this.defConn,getConns:()=>this.conns,getDragGhost:n=>this.dragPositions[n]||null}},data(){return{inited:!1,viewport:{x:0,y:0,zoom:1},selectedNodes:[],selectedConns:[],selectionBox:null,nodeInternals:{},locked:!0===this.opt.locked,isDraggingNode:!1,draggingNodeId:null,dragStartPos:null,dragNodeStartPositions:null,dragPositions:{},isPanning:!1,panStartPos:null,isConnecting:!1,connectingFrom:null,connLineFromX:0,connLineFromY:0,connLineFromPosition:"bottom",connLineToX:0,connLineToY:0,isSelecting:!1,selectionStartPos:null,keysPressed:{}}},watch:{nodes:{immediate:!0,handler(n){for(const e of n||[])e.id in this.dragPositions||this.$set(this.dragPositions,e.id,null)}},opt:{handler(){if(!this.inited){this.inited=!0;let n=this.center;n&&(this.viewport.x=n[0]||0,this.viewport.y=n[1]||0),this.viewport.zoom=this.zoom,this.$emit("init")}},immediate:!0}},mounted(){document.addEventListener("keydown",this.onKeyDown),document.addEventListener("keyup",this.onKeyUp),document.addEventListener("mousemove",this.onDocMouseMove),document.addEventListener("mouseup",this.onDocMouseUp),window.addEventListener("blur",this.onWindowBlur)},beforeDestroy(){this._panAnimId&&(cancelAnimationFrame(this._panAnimId),this._panAnimId=null),document.removeEventListener("keydown",this.onKeyDown),document.removeEventListener("keyup",this.onKeyUp),document.removeEventListener("mousemove",this.onDocMouseMove),document.removeEventListener("mouseup",this.onDocMouseUp),window.removeEventListener("blur",this.onWindowBlur)},computed:{widthInp(){return this.opt.width||800},heightInp(){return this.opt.height||600},nodes(){return this.opt.nodes||[]},conns(){return this.opt.conns||[]},nodesDraggable(){return void 0===this.opt.nodesDraggable||this.opt.nodesDraggable},menuInp(){let n=this.opt;return{useMenu:n.useMenu,menuPosition:n.menuPosition,menuYShift:n.menuYShift,useSetting:n.useSetting,menuSettingIcon:n.menuSettingIcon,menuSettingTooltip:n.menuSettingTooltip,useMenuItemZoomIn:n.useMenuItemZoomIn,menuZoomInIcon:n.menuZoomInIcon,menuZoomInTooltip:n.menuZoomInTooltip,useMenuItemZoomOut:n.useMenuItemZoomOut,menuZoomOutIcon:n.menuZoomOutIcon,menuZoomOutTooltip:n.menuZoomOutTooltip,useMenuItemFitView:n.useMenuItemFitView,menuFitViewIcon:n.menuFitViewIcon,menuFitViewTooltip:n.menuFitViewTooltip,useMenuItemLock:n.useMenuItemLock,menuLockIcon:n.menuLockIcon,menuLockTooltip:n.menuLockTooltip,menuLockIconLocked:n.menuLockIconLocked,menuLockTooltipLocked:n.menuLockTooltipLocked,menuIconColor:n.menuIconColor,menuIconColorHover:n.menuIconColorHover,menuIconColorFocus:n.menuIconColorFocus,menuIconSize:n.menuIconSize,menuBackgroundColor:n.menuBackgroundColor,menuBackgroundColorHover:n.menuBackgroundColorHover,menuBackgroundColorFocus:n.menuBackgroundColorFocus,menuSeparatorColor:n.menuSeparatorColor,menuShadow:n.menuShadow,menuTooltipTextColor:n.menuTooltipTextColor,menuTooltipTextFontSize:n.menuTooltipTextFontSize,menuTooltipBackgroundColor:n.menuTooltipBackgroundColor}},nodesConnectable(){return void 0===this.opt.nodesConnectable||this.opt.nodesConnectable},nodesResizable(){return void 0===this.opt.nodesResizable||this.opt.nodesResizable},elementsSelectable(){return void 0===this.opt.elementsSelectable||this.opt.elementsSelectable},nodesSettingsEnabled(){return void 0===this.opt.nodesSettingsEnabled||this.opt.nodesSettingsEnabled},connsSettingsEnabled(){return void 0===this.opt.connsSettingsEnabled||this.opt.connsSettingsEnabled},nodesSettingsExcludes(){return this.opt.nodesSettingsExcludes||[]},connsSettingsExcludes(){return this.opt.connsSettingsExcludes||[]},selectNodesOnDrag(){return void 0===this.opt.selectNodesOnDrag||this.opt.selectNodesOnDrag},deleteKeyEnabled(){return void 0!==this.opt.deleteKeyEnabled&&this.opt.deleteKeyEnabled},deleteKeyCode(){return this.opt.deleteKeyCode||"Backspace"},defConnCreatingType(){return this.opt.defConnCreatingType||"bezier"},defConnCreatingEdgeColor(){return this.opt.defConnCreatingEdgeColor||"#b1b1b7"},defConnCreatingEdgeWidth(){return void 0!==this.opt.defConnCreatingEdgeWidth?this.opt.defConnCreatingEdgeWidth:1},defConnCreatingEdgeDasharray(){return this.opt.defConnCreatingEdgeDasharray||"5 5"},defConnCreatingStyle(){return{stroke:this.defConnCreatingEdgeColor,strokeWidth:this.defConnCreatingEdgeWidth,strokeDasharray:this.defConnCreatingEdgeDasharray}},zoomOnScroll(){return void 0===this.opt.zoomOnScroll||this.opt.zoomOnScroll},panOnDrag(){return void 0===this.opt.panOnDrag||this.opt.panOnDrag},zoomMin(){return void 0!==this.opt.zoomMin?this.opt.zoomMin:.5},zoomMax(){return void 0!==this.opt.zoomMax?this.opt.zoomMax:2},center(){return this.opt.center||[0,0]},zoom(){return void 0!==this.opt.zoom?this.opt.zoom:1},panLimits(){return this.opt.panLimits||null},multiSelectEnabled(){return void 0===this.opt.multiSelectEnabled||this.opt.multiSelectEnabled},boxSelectionKeyCode(){return this.opt.boxSelectionKeyCode||"Shift"},multiSelectionKeyCode(){return this.opt.multiSelectionKeyCode||"Shift"},snapToGrid(){return void 0!==this.opt.snapToGrid&&this.opt.snapToGrid},snapGridSize(){return this.opt.snapGridSize||20},platformBackgroundPatternType(){return this.opt.platformBackgroundPatternType||"dots"},platformBackgroundPatternGap(){return void 0!==this.opt.platformBackgroundPatternGap?this.opt.platformBackgroundPatternGap:20},platformBackgroundPatternSize(){return void 0!==this.opt.platformBackgroundPatternSize?this.opt.platformBackgroundPatternSize:1},platformBackgroundPatternColor(){return this.opt.platformBackgroundPatternColor||"#81818a"},platformBackgroundColor(){return this.opt.platformBackgroundColor||"#fff"},settingsPopupBackgroundColor(){return this.opt.settingsPopupBackgroundColor||"#fff"},settingsPopupTextColor(){return this.opt.settingsPopupTextColor||"#333"},settingsPopupTextFontSize(){return this.opt.settingsPopupTextFontSize||"12px"},inforPopupBackgroundColor(){return this.opt.inforPopupBackgroundColor||"#fff"},inforPopupTitleTextColor(){return this.opt.inforPopupTitleTextColor||"#333"},inforPopupTitleTextFontSize(){return this.opt.inforPopupTitleTextFontSize||"12px"},inforPopupDescriptionTextColor(){return this.opt.inforPopupDescriptionTextColor||"#888"},inforPopupDescriptionTextFontSize(){return this.opt.inforPopupDescriptionTextFontSize||"10px"},funValidConnCreating(){return this.opt.funValidConnCreating||null},defNode(){let n=this.opt,e=df;return{type:n.defNodeType||e.type,shape:n.defNodeShape||e.shape,width:n.defNodeWidth||e.width,height:n.defNodeHeight||e.height,fontSize:n.defNodeFontSize||e.fontSize,fontSizeMin:n.defNodeFontSizeMin||e.fontSizeMin,fontSizeMax:n.defNodeFontSizeMax||e.fontSizeMax,fontColor:n.defNodeFontColor||e.fontColor,faceColor:n.defNodeFaceColor||e.faceColor,edgeColor:n.defNodeEdgeColor||e.edgeColor,edgeWidth:void 0!==n.defNodeEdgeWidth?n.defNodeEdgeWidth:e.edgeWidth,toPosition:n.defNodeToPosition||e.toPosition,fromPosition:n.defNodeFromPosition||e.fromPosition,popupDirection:n.defNodePopupDirection||e.popupDirection}},defConn(){let n=this.opt,e=uf;return{type:n.defConnType||e.type,fontSize:n.defConnFontSize||e.fontSize,fontSizeMin:n.defConnFontSizeMin||e.fontSizeMin,fontSizeMax:n.defConnFontSizeMax||e.fontSizeMax,fontColor:n.defConnFontColor||e.fontColor,edgeColor:n.defConnEdgeColor||e.edgeColor,edgeWidth:void 0!==n.defConnEdgeWidth?n.defConnEdgeWidth:e.edgeWidth,edgeDasharray:n.defConnEdgeDasharray||"",markerEnd:n.defConnMarkerEnd||e.markerEnd,animated:void 0!==n.defConnAnimated?n.defConnAnimated:e.animated,defOffset:null!=n.defOffset?n.defOffset:e.defOffset}},isBoxSelectPressed(){return this.multiSelectEnabled&&!!this.keysPressed[this.boxSelectionKeyCode]},isMultiSelectPressed(){return this.multiSelectEnabled&&!!this.keysPressed[this.multiSelectionKeyCode]}},methods:{nodeById(n){return this.nodes.find(e=>e.id===n)||null},connById(n){return this.conns.find(e=>e.id===n)||null},setSelectedNodes(n){this.selectedNodes.splice(0,this.selectedNodes.length,...n)},setSelectedConns(n){this.selectedConns.splice(0,this.selectedConns.length,...n)},clearSelection(){this.selectedNodes.splice(0,this.selectedNodes.length),this.selectedConns.splice(0,this.selectedConns.length)},removeNode(n){let e=this.nodes,t=e.findIndex(e=>e.id===n);if(-1===t)return;e.splice(t,1);let o=this.conns;for(let e=o.length-1;e>=0;e--)o[e].from!==n&&o[e].to!==n||o.splice(e,1);let r=this.selectedNodes.indexOf(n);-1!==r&&this.selectedNodes.splice(r,1)},removeConn(n){let e=this.conns,t=e.findIndex(e=>e.id===n);if(-1===t)return;e.splice(t,1);let o=this.selectedConns.indexOf(n);-1!==o&&this.selectedConns.splice(o,1)},addConn(n){n.id&&n.from&&n.to&&(this.connById(n.id)||this.nodeById(n.from)&&this.nodeById(n.to)&&this.conns.push(n))},updateNodeInternals(n,e){let t=this.nodeInternals[n];t&&t.width===e.width&&t.height===e.height||this.$set(this.nodeInternals,n,e)},setViewport({x:n,y:e,zoom:t}){void 0!==n&&(this.viewport.x=n),void 0!==e&&(this.viewport.y=e),void 0!==t&&(this.viewport.zoom=t)},onKeyDown(n){this.keysPressed={...this.keysPressed,[n.key]:!0},this.locked||!this.deleteKeyEnabled||n.key!==this.deleteKeyCode&&"Delete"!==n.key||this.deleteSelectedElements()},onKeyUp(n){const e={...this.keysPressed};delete e[n.key],this.keysPressed=e},onCanvasClick(n){n.target.closest(".vue-flow__popup")||n.target.closest(".vue-flow__node")||n.target.closest(".vue-flow__edge")||(this.clearSelection(),this.$emit("pane-click",n))},onCanvasContextMenu(n){this.$emit("pane-context-menu",n)},onCanvasDblClick(n){const e=this.$refs.canvas.getContainerRect();if(!e)return;const t=this.viewport,o=(n.clientX-e.left-t.x)/t.zoom,r=(n.clientY-e.top-t.y)/t.zoom;this.$emit("canvas-dblclick",{event:n,flowX:o,flowY:r,clientX:n.clientX,clientY:n.clientY})},onCanvasMouseDown(n){if(!n.target.closest||!n.target.closest(".vue-flow__popup"))if(this.locked||!this.isBoxSelectPressed){if(this.panOnDrag&&0===n.button){const e=n.target,t=e.closest&&e.closest(".vue-flow__node"),o=e.closest&&e.closest(".vue-flow__handle"),r=e.closest&&e.closest(".vue-flow__node-settings, .vue-flow__edge-settings, .vue-flow__panel, .vue-flow__edge-waypoint");t||o||r||this.startPan(n)}}else this.startSelection(n)},onCanvasMouseMove(n){},onCanvasMouseUp(n){},onCanvasWheel(n){if(!this.zoomOnScroll)return;this.cancelViewportAnimation();const e=.001*-n.deltaY,t=this.viewport.zoom,o=Math.min(this.zoomMin,t),r=Math.max(o,Math.min(this.zoomMax,t+e*t)),i=this.$refs.canvas.getContainerRect();if(!i)return;const a=n.clientX-i.left,s=n.clientY-i.top,l=this.viewport,d=r/t,u=a-(a-l.x)*d,c=s-(s-l.y)*d;this.setViewport({x:u,y:c,zoom:r}),this.emitViewportChange()},onDocMouseMove(n){1&n.buttons?this.isPanning?this.doPan(n):this.isDraggingNode?this.doDrag(n):this.isConnecting?this.doConnect(n):this.isSelecting&&this.doSelection(n):(this.isPanning||this.isDraggingNode||this.isConnecting||this.isSelecting)&&this.onDocMouseUp(n)},onWindowBlur(){this.isPanning&&this.endPan(),this.keysPressed={}},onDocMouseUp(n){this.isPanning&&this.endPan(),this.isDraggingNode&&this.endDrag(n),this.isConnecting&&this.endConnect(n),this.isSelecting&&this.endSelection(n)},startPan(n){this.cancelViewportAnimation(),this.isPanning=!0,this.panStartPos={x:n.clientX,y:n.clientY}},doPan(n){const e=n.clientX-this.panStartPos.x,t=n.clientY-this.panStartPos.y;this.panStartPos={x:n.clientX,y:n.clientY};let o=this.viewport.x+e,r=this.viewport.y+t;if(this.panLimits){const n=(i={x:o,y:r},(a=this.panLimits)?{x:Math.max(a[0][0],Math.min(a[1][0],i.x)),y:Math.max(a[0][1],Math.min(a[1][1],i.y))}:i);o=n.x,r=n.y}var i,a;this.viewport.x=o,this.viewport.y=r},endPan(){this.isPanning=!1,this.panStartPos=null,this.emitViewportChange()},onNodeDragStart({node:n,event:e}){if(this.locked||!this.nodesDraggable)return;this.isDraggingNode=!0,this.draggingNodeId=n.id,this.dragStartPos={x:e.clientX,y:e.clientY},this.selectNodesOnDrag&&!this.isMultiSelectPressed&&(this.setSelectedNodes([n.id]),this.setSelectedConns([]));const t={};if(this.selectedNodes.forEach(n=>{const e=this.nodeById(n);e&&(t[n]={x:e.position.x,y:e.position.y})}),!t[n.id]){const e=this.nodeById(n.id);e&&(t[n.id]={x:e.position.x,y:e.position.y})}this.dragNodeStartPositions=t;for(let n in t)n in this.dragPositions||this.$set(this.dragPositions,n,null),this.dragPositions[n]={x:t[n].x,y:t[n].y};this.$emit("node-drag-start",{node:n,event:e})},doDrag(n){const e=this.viewport.zoom,t=(n.clientX-this.dragStartPos.x)/e,o=(n.clientY-this.dragStartPos.y)/e,r=this.snapToGrid;for(let n in this.dragNodeStartPositions){const e=this.dragNodeStartPositions[n];let i=e.x+t,a=e.y+o;if(r){const n=Tp({x:i,y:a},this.snapGridSize);i=n.x,a=n.y}const s=this.dragPositions&&this.dragPositions[n];s&&(s.x=i,s.y=a)}},endDrag(n){if(this.dragNodeStartPositions)for(let n in this.dragNodeStartPositions){let e=this.dragPositions[n],t=this.nodeById(n);t&&e&&(t.position.x=e.x,t.position.y=e.y),this.dragPositions[n]=null}const e=this.nodeById(this.draggingNodeId);this.isDraggingNode=!1,this.draggingNodeId=null,this.dragStartPos=null,this.dragNodeStartPositions=null,ap(),e&&this.$emit("node-drag-stop",{node:e,event:n}),this.emitNodesUpdate()},onConnectStart(n){if(this.locked||!this.nodesConnectable)return;if("source"!==n.handleType)return;this.isConnecting=!0,this.connectingFrom=n,this._connectCursorStyle=document.createElement("style"),this._connectCursorStyle.textContent="* { cursor: default !important; } .vue-flow__handle { cursor: crosshair !important; } .vue-flow__node-settings, .vue-flow__edge-settings, .vue-flow__resize { opacity: 0 !important; pointer-events: none !important; }",document.head.appendChild(this._connectCursorStyle);const e=this.nodeById(n.nodeId);if(!e)return;const t=Pp(e,n.handlePosition,this.nodeInternals[n.nodeId]||{});this.connLineFromX=t.x,this.connLineFromY=t.y,this.connLineFromPosition=n.handlePosition,this.connLineToX=t.x,this.connLineToY=t.y,this.$emit("connect-start",{nodeId:n.nodeId,handleId:n.handleId,handleType:n.handleType})},doConnect(n){const e=this.$refs.canvas.getContainerRect();if(!e)return;const t=this.viewport;this.connLineToX=(n.clientX-e.left-t.x)/t.zoom,this.connLineToY=(n.clientY-e.top-t.y)/t.zoom},endConnect(n){const e=document.elementFromPoint(n.clientX,n.clientY),t=e&&e.closest&&e.closest(".vue-flow__handle");if(t&&this.connectingFrom&&"target"===t.dataset.handleType){const n=t.closest(".vue-flow__node"),e=n?n.dataset.id:null;if(e){const n={from:this.connectingFrom.nodeId,to:e,...this.connectingFrom.handlePosition?{fromPosition:this.connectingFrom.handlePosition}:{},...t.dataset.handlePosition?{toPosition:t.dataset.handlePosition}:{}},o=function(n,e,t,o){if(!n.from||!n.to)return!1;if(n.from===n.to)return!1;const r=e.find(e=>e.id===n.from),i=e.find(e=>e.id===n.to);return(!r||"output"!==r.type)&&((!i||"input"!==i.type)&&!(t.find(e=>e.from===n.from&&e.to===n.to)||o&&!o(n)))}(n,this.nodes,this.conns,this.funValidConnCreating);if(o){const e=`e${n.from}-${n.to}`,t={id:this.connById(e)?(lf++,`${Date.now()}-${lf}-${Math.random().toString(36).slice(2,7)}`):e,...n};this.addConn(t),this.emitConnsUpdate(),this.$emit("connect",n)}}}this.$emit("connect-end",n),this.isConnecting=!1,this.connectingFrom=null,this._connectCursorStyle&&(document.head.removeChild(this._connectCursorStyle),this._connectCursorStyle=null)},onNodeClick({node:n,event:e}){if(this.elementsSelectable){if(this.isMultiSelectPressed){const e=this.selectedNodes.indexOf(n.id);-1===e?this.selectedNodes.push(n.id):this.selectedNodes.splice(e,1)}else this.setSelectedNodes([n.id]),this.setSelectedConns([]);this.emitSelectionChange(),this.$emit("node-click",{node:n,event:e})}},onNodeDoubleClick(n){this.$emit("node-double-click",n)},onNodeContextMenu(n){this.$emit("node-context-menu",n)},onNodeSettingsClick(n){this.$emit("node-settings-click",n)},onNodeSettingsUpdate({node:n,key:e,value:t}){let o=this.nodeById(n.id);if(!o)return;let r=o.type;if(this.$set(o,e,t),"type"===e&&r!==t){let n=o.id,e="input"===t||"basic"===t,r="output"===t||"basic"===t,i=this.conns;for(let t=i.length-1;t>=0;t--){let o=i[t];(!e&&o.from===n||!r&&o.to===n)&&i.splice(t,1)}}this.$emit("node-settings-update",{node:o,key:e,value:t})},onNodeSettingsDelete({node:n}){this.removeNode(n.id),ap(),this.emitNodesUpdate(),this.emitConnsUpdate(),this.$emit("node-settings-delete",{node:n})},onNodeMouseEnter({node:n,event:e}){this.$emit("node-mouseenter",{node:n,event:e})},onNodeMouseLeave({node:n,event:e}){this.$emit("node-mouseleave",{node:n,event:e})},onConnClick({conn:n,event:e}){if(this.elementsSelectable){if(this.isMultiSelectPressed){const e=this.selectedConns.indexOf(n.id);-1===e?this.selectedConns.push(n.id):this.selectedConns.splice(e,1)}else this.setSelectedConns([n.id]),this.setSelectedNodes([]);this.emitSelectionChange(),this.$emit("conn-click",{conn:n,event:e})}},onConnDoubleClick(n){this.$emit("conn-double-click",n)},onConnContextMenu(n){this.$emit("conn-context-menu",n)},onConnMouseEnter({conn:n,event:e}){this.$emit("conn-mouseenter",{conn:n,event:e})},onConnMouseLeave({conn:n,event:e}){this.$emit("conn-mouseleave",{conn:n,event:e})},onConnSettingsClick(n){this.$emit("conn-settings-click",n)},onConnSettingsUpdate({conn:n,key:e,value:t}){let o=this.connById(n.id);o&&(this.$set(o,e,t),this.$emit("conn-settings-update",{conn:o,key:e,value:t}))},onConnSettingsDelete({conn:n}){this.removeConn(n.id),ap(),this.emitConnsUpdate(),this.$emit("conn-settings-delete",{conn:n})},startSelection(n){this.isSelecting=!0;const e=this.$refs.canvas.getContainerRect();e&&(this.selectionStartPos={x:n.clientX-e.left,y:n.clientY-e.top},this.selectionBox={x:this.selectionStartPos.x,y:this.selectionStartPos.y,width:0,height:0})},doSelection(n){const e=this.$refs.canvas.getContainerRect();if(!e)return;const t=n.clientX-e.left,o=n.clientY-e.top,r=Math.min(this.selectionStartPos.x,t),i=Math.min(this.selectionStartPos.y,o),a=Math.abs(t-this.selectionStartPos.x),s=Math.abs(o-this.selectionStartPos.y);this.selectionBox={x:r,y:i,width:a,height:s}},endSelection(){if(this.selectionBox){const o=this.selectionBox,r=this.viewport,i={x:(o.x-r.x)/r.zoom,y:(o.y-r.y)/r.zoom,width:o.width/r.zoom,height:o.height/r.zoom},a=(n=i,e=this.nodes,t=this.nodeInternals,e.filter(e=>{const o=t&&t[e.id]||{},r=o.width||e.width||150,i=o.height||e.height||40;return s={x:e.position.x,y:e.position.y,width:r,height:i},(a=n).x<s.x+s.width&&a.x+a.width>s.x&&a.y<s.y+s.height&&a.y+a.height>s.y;var a,s})).map(n=>n.id);this.setSelectedNodes(a);let s=new Set(a),l=this.conns.filter(n=>s.has(n.from)&&s.has(n.to)).map(n=>n.id);this.setSelectedConns(l),this.emitSelectionChange()}var n,e,t;this.isSelecting=!1,this.selectionStartPos=null,this.selectionBox=null},deleteSelectedElements(){const{nodes:n,conns:e}=this.getSelectedElements();0===n.length&&0===e.length||(n.forEach(n=>{!1!==n.deletable&&this.removeNode(n.id)}),e.forEach(n=>{!1!==n.deletable&&this.removeConn(n.id)}),this.clearSelection(),this.$emit("delete",{nodes:n,conns:e}),this.emitNodesUpdate(),this.emitConnsUpdate())},onNodeDimensions({nodeId:n,width:e,height:t}){this.updateNodeInternals(n,{width:e,height:t})},onNodeResize({nodeId:n,width:e,height:t,x:o,y:r}){if(this.locked)return;n in this.dragPositions||this.$set(this.dragPositions,n,null);const i=this.dragPositions[n];i?(i.x=o,i.y=r,i.width=e,i.height=t):this.dragPositions[n]={x:o,y:r,width:e,height:t},this.updateNodeInternals(n,{width:e,height:t})},onNodeResizeEnd({nodeId:n,width:e,height:t,x:o,y:r}){let i=this.nodeById(n);i&&(i.width=e,i.height=t,i.position.x=o,i.position.y=r),this.dragPositions[n]=null,ap(),this.emitNodesUpdate()},updateNodePosition(n,e){let t=this.nodeById(n);t&&(t.position.x=e.x,t.position.y=e.y)},getSelectedElements(){return{nodes:this.nodes.filter(n=>this.selectedNodes.includes(n.id)),conns:this.conns.filter(n=>this.selectedConns.includes(n.id))}},emitNodesUpdate(){this.$emit("update:nodes",[...this.nodes])},emitConnsUpdate(){this.$emit("update:conns",[...this.conns])},emitViewportChange(){this.$emit("viewport-change",{...this.viewport})},getViewport(){let n=this.viewport;return{x:n.x,y:n.y,zoom:n.zoom}},cancelViewportAnimation(){this._panAnimId&&(cancelAnimationFrame(this._panAnimId),this._panAnimId=null)},emitSelectionChange(){this.$emit("selection-change",this.getSelectedElements())},fitView(n){n=n||50;let e=this.nodes.filter(n=>!n.hidden);if(0===e.length)return;let t=this.nodeInternals,o=1/0,r=1/0,i=-1/0,a=-1/0;e.forEach(n=>{let e=t[n.id]&&t[n.id].width||n.width||150,s=t[n.id]&&t[n.id].height||n.height||40;o=Math.min(o,n.position.x),r=Math.min(r,n.position.y),i=Math.max(i,n.position.x+e),a=Math.max(a,n.position.y+s)});let s=this.$refs.canvas?this.$refs.canvas.getContainerRect():null,l=s?s.width:this.widthInp,d=s?s.height:this.heightInp,u=i-o+2*n,c=a-r+2*n,p=Math.min(l/u,d/c,2);this.viewport.zoom=p,this.viewport.x=(l-(i+o)*p)/2,this.viewport.y=(d-(a+r)*p)/2,this.emitViewportChange()},zoomAtCenter(n){const e=this.viewport.zoom,t=Math.min(this.zoomMin,e),o=Math.max(t,Math.min(this.zoomMax,e*n)),r=this.$refs.canvas?this.$refs.canvas.getContainerRect():null,i=r?r.width/2:this.widthInp/2,a=r?r.height/2:this.heightInp/2,s=this.viewport,l=o/e;this.setViewport({x:i-(i-s.x)*l,y:a-(a-s.y)*l,zoom:o}),this.emitViewportChange()},zoomIn(){this.zoomAtCenter(1.2)},zoomOut(){this.zoomAtCenter(1/1.2)},toggleInteractive(){this.locked=!this.locked,this.$emit("toggle-interactive",this.locked)},panToNode(n,e){e=e||{};let t=this.nodeById(n);if(!t)return!1;let o=this.nodeInternals[n],r=o&&o.width||t.width||150,i=o&&o.height||t.height||40,a=t.position.x+r/2,s=t.position.y+i/2,l=this.$refs.canvas?this.$refs.canvas.getContainerRect():null,d=l&&l.width||this.widthInp,u=l&&l.height||this.heightInp,c=void 0!==e.zoom?e.zoom:this.viewport.zoom,p=void 0!==e.duration?e.duration:400,f={x:d/2-a*c,y:u/2-s*c,zoom:c};this._panAnimId&&(cancelAnimationFrame(this._panAnimId),this._panAnimId=null);let h=()=>{this.setViewport(f),this.emitViewportChange(),!0===e.openPopup&&this.$nextTick(()=>this.openNodeInfoPopup(n))};if(!(p>0))return h(),!0;let g=this.viewport.x,v=this.viewport.y,m=this.viewport.zoom,A=null,b=n=>{null===A&&(A=n);let e=Math.min((n-A)/p,1),t=(n=>n<.5?4*n*n*n:1-Math.pow(-2*n+2,3)/2)(e);this.setViewport({x:g+(f.x-g)*t,y:v+(f.y-v)*t,zoom:m+(f.zoom-m)*t}),e<1?this._panAnimId=requestAnimationFrame(b):(this._panAnimId=null,h())};return this._panAnimId=requestAnimationFrame(b),!0},openNodeInfoPopup(n){let e=this.$refs.nodeRenderer;return!!e&&e.openNodeInfoPopup(n)},openConnInfoPopup(n){let e=this.$refs.edgeRenderer;return!!e&&e.openConnInfoPopup(n)},getFlowData(){return{nodes:JSON.parse(JSON.stringify(this.nodes)),conns:JSON.parse(JSON.stringify(this.conns))}}}};const pf=cf;var ff=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{style:"width:"+n.widthInp+"px; height:"+n.heightInp+"px;"},[n.inited?t("FlowCanvas",{ref:"canvas",on:{"canvas-mousedown":n.onCanvasMouseDown,"canvas-mousemove":n.onCanvasMouseMove,"canvas-mouseup":n.onCanvasMouseUp,"canvas-wheel":n.onCanvasWheel,"canvas-dblclick":n.onCanvasDblClick,"canvas-click":n.onCanvasClick,"canvas-contextmenu":n.onCanvasContextMenu}},[t("BackgroundLayer",{attrs:{variant:n.platformBackgroundPatternType,gap:n.platformBackgroundPatternGap,size:n.platformBackgroundPatternSize,"pattern-color":n.platformBackgroundPatternColor,"bg-color":n.platformBackgroundColor,viewport:n.viewport}}),n._v(" "),t("ViewportTransform",{attrs:{viewport:n.viewport}},[t("EdgeRenderer",{ref:"edgeRenderer",attrs:{conns:n.conns,nodes:n.nodes,"node-internals":n.nodeInternals,"selected-conn-ids":n.selectedConns,interactive:n.elementsSelectable,locked:n.locked,"settings-popup-background-color":n.settingsPopupBackgroundColor,"settings-popup-text-color":n.settingsPopupTextColor,"settings-popup-text-font-size":n.settingsPopupTextFontSize,"infor-popup-background-color":n.inforPopupBackgroundColor,"infor-popup-title-text-color":n.inforPopupTitleTextColor,"infor-popup-title-text-font-size":n.inforPopupTitleTextFontSize,"infor-popup-description-text-color":n.inforPopupDescriptionTextColor,"infor-popup-description-text-font-size":n.inforPopupDescriptionTextFontSize,"settings-enabled":n.connsSettingsEnabled,"settings-excludes":n.connsSettingsExcludes},on:{"conn-click":n.onConnClick,"conn-double-click":n.onConnDoubleClick,"conn-context-menu":n.onConnContextMenu,"conn-mouseenter":n.onConnMouseEnter,"conn-mouseleave":n.onConnMouseLeave,"conn-settings-click":n.onConnSettingsClick,"conn-settings-update":n.onConnSettingsUpdate,"conn-settings-delete":n.onConnSettingsDelete},scopedSlots:n._u([n.$scopedSlots["conn-popup"]?{key:"conn-popup",fn:function(e){return[n._t("conn-popup",null,null,e)]}}:null],null,!0)}),n._v(" "),t("NodeRenderer",{ref:"nodeRenderer",attrs:{nodes:n.nodes,"selected-node-ids":n.selectedNodes,"nodes-draggable":n.nodesDraggable,"nodes-connectable":n.nodesConnectable,locked:n.locked,"nodes-resizable":n.nodesResizable,"settings-popup-background-color":n.settingsPopupBackgroundColor,"settings-popup-text-color":n.settingsPopupTextColor,"settings-popup-text-font-size":n.settingsPopupTextFontSize,"infor-popup-background-color":n.inforPopupBackgroundColor,"infor-popup-title-text-color":n.inforPopupTitleTextColor,"infor-popup-title-text-font-size":n.inforPopupTitleTextFontSize,"infor-popup-description-text-color":n.inforPopupDescriptionTextColor,"infor-popup-description-text-font-size":n.inforPopupDescriptionTextFontSize,"snap-grid-size":n.snapToGrid?n.snapGridSize:null,"settings-enabled":n.nodesSettingsEnabled,"settings-excludes":n.nodesSettingsExcludes},on:{"drag-start":n.onNodeDragStart,"node-click":n.onNodeClick,"node-double-click":n.onNodeDoubleClick,"node-context-menu":n.onNodeContextMenu,"node-settings-click":n.onNodeSettingsClick,"node-settings-update":n.onNodeSettingsUpdate,"node-settings-delete":n.onNodeSettingsDelete,"node-mouseenter":n.onNodeMouseEnter,"node-mouseleave":n.onNodeMouseLeave,"connect-start":n.onConnectStart,dimensions:n.onNodeDimensions,"node-resize":n.onNodeResize,"node-resize-end":n.onNodeResizeEnd},scopedSlots:n._u([n.$scopedSlots["node-popup"]?{key:"node-popup",fn:function(e){return[n._t("node-popup",null,null,e)]}}:null],null,!0)}),n._v(" "),t("ConnectionLine",{attrs:{active:n.isConnecting,"source-x":n.connLineFromX,"source-y":n.connLineFromY,"source-position":n.connLineFromPosition,"target-x":n.connLineToX,"target-y":n.connLineToY,type:n.defConnCreatingType,"line-style":n.defConnCreatingStyle}}),n._v(" "),n._t("viewport-overlay")],2),n._v(" "),t("SelectionBox",{attrs:{box:n.selectionBox}}),n._v(" "),t("Controls",{attrs:{locked:n.locked,menu:n.menuInp},on:{"zoom-in":n.zoomIn,"zoom-out":n.zoomOut,"fit-view":n.fitView,"toggle-interactive":n.toggleInteractive}})],1):n._e()],1)};ff._withStripped=!0;const hf=Xr({render:ff,staticRenderFns:[]},function(n){n&&n("data-v-54cc42b6_0",{source:"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",map:{version:3,sources:[],names:[],mappings:"",file:"WFlowVue.vue"},media:void 0})},pf,"data-v-54cc42b6",false,void 0,!1,Zr,void 0,void 0);var gf={exports:{}};
15
15
  /*!
16
16
  * w-jsonview-tree v1.0.36
17
17
  * (c) 2018-2021 yuda-lyu(semisphere)