UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

2 lines (1 loc) 7.44 kB
(function(N,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(N=typeof globalThis<"u"?globalThis:N||self,e(N.calculator={},N.Vue))})(this,function(N,e){"use strict";const E={id:String};function F(){function T(a,l=12){return+parseFloat(a.toPrecision(l))}function f(a){const l=a.toString().split(/[eE]/),r=(l[0].split(".")[1]||"").length-+(l[1]||0);return r>0?r:0}function i(a){if(a.toString().indexOf("e")===-1)return Number(a.toString().replace(".",""));const l=f(a);return l>0?T(a*10**l):a}function x(a){c&&(a>Number.MAX_SAFE_INTEGER||a<Number.MIN_SAFE_INTEGER)&&console.warn(`${a} is beyond boundary when transfer to integer, the results may not be accurate`)}function d(a,l,...r){if(r.length>0)return d(d(a,l),r[0],...r.slice(1));const u=i(a),m=i(l),C=f(a)+f(l),v=u*m;return x(v),v/10**C}function g(a,l,...r){if(r.length>0)return g(g(a,l),r[0],...r.slice(1));const u=10**Math.max(f(a),f(l));return(d(a,u)+d(l,u))/u}function b(a,l,...r){if(r.length>0)return b(b(a,l),r[0],...r.slice(1));const u=10**Math.max(f(a),f(l));return(d(a,u)-d(l,u))/u}function V(a,l,...r){if(r.length>0)return V(V(a,l),r[0],...r.slice(1));const u=i(a),m=i(l);return x(u),x(m),d(u/m,10**(f(l)-f(a)))}function s(a,l){const r=10**l;return V(Math.round(d(a,r)),r)}let c=!1;function n(a=!0){c=a}return{strip:T,plus:g,minus:b,times:d,divide:V,round:s,digitLength:f,float2Fixed:i,enableBoundaryChecking:n}}const k=e.defineComponent({name:"FCalculator",props:E,emits:[],setup(T,f){const i=e.ref(),x=e.ref(),d=e.ref(),g=e.ref(),b=e.ref(),V=e.ref();let s="",c="0",n=[],a=[],l,r;const{plus:u,minus:m,times:C,divide:v}=F();function L(){i.value&&g.value&&b.value&&V.value&&(i.value.scrollWidth>g.value.offsetWidth?(b.value.style.display="block",V.value.style.display="block"):(b.value.style.display="none",V.value.style.display="none"))}function _(t){i.value&&(i.value.innerHTML=t)}function A(t){x.value&&(x.value.innerHTML=t)}function P(){return s.lastIndexOf("+")!==-1||s.lastIndexOf("-")!==-1||s.lastIndexOf("×")!==-1||s.lastIndexOf("÷")!==-1}function M(t,o,p){let h=0;switch(t=Number(t),o=Number(o),p){case"+":h=u(t,o);break;case"-":h=m(t,o);break;case"×":h=C(t,o);break;case"÷":h=v(t,o);break}return h}function H(t){c.indexOf("0")===0&&c.indexOf(".")===-1||l===!0?c=t:c+=t,l=!1,r=!1}function R(t){l===!0?c="0"+t:c.indexOf(".")===-1&&(c+=t),l=!1,r=!1}function W(){c.indexOf("-")===-1&&c!=="0"?c="-"+c:c.indexOf("-")>-1&&c!=="0"&&(c=c.substring(1))}function j(t){if(n.length<2&&(l!==!0||r===!0)?(c=parseFloat(c)+"",s=s+" "+c+" "+t,n.push(c),a.push(t),l=!0):n.length<2&&P()&&(s=s.substring(0,s.length-1)+""+t,a.push(t)),n.length===2){const o=a[a.length-2];if(n[1]==="0"&&o==="÷"){n=[],c="除数不能为零",s="",l=!0;return}const p=M(n[0],n[1],o);n=[],n.push(p),c=p+"",l=!0}}function D(){if(n.length>0){const t=a.pop();if(c==="0"&&t==="÷"){n=[],c="除数不能为零",s="",l=!0,r=!0;return}const o=M(n[0],c,t);n=[],c=o+"",s="",l=!0,r=!0}}function G(){c="0"}function $(){c="0",s="",l=!0,n=[],a=[]}function X(){c=c.length>1?c.substring(0,c.length-1):"0"}const y=e.computed(()=>`fv-calculator-main${Math.floor(Math.random()*1e3).toString()}`);function I(t){i.value&&(i.value.scrollLeft+=50)}function S(t){i.value&&(i.value.scrollLeft-=50)}function w(t){var p;if(d.value&&!d.value.contains(t.target))return;const o=(p=t.target)==null?void 0:p.innerHTML;switch(o){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":H(o);break;case".":R(o);break;case"±":W();break;case"+":case"-":case"×":case"÷":j(o);break;case"=":D();break;case"CE":G();break;case"C":$();break;case"Back":X();break}_(s),A(c)}return e.onBeforeMount(()=>{}),e.onMounted(()=>{var t,o,p,h,B,O;i.value=(t=document.getElementById(y.value))==null?void 0:t.querySelector("#fv-calculator-pre-step"),x.value=(o=document.getElementById(y.value))==null?void 0:o.querySelector("#fv-calculator-show-input"),d.value=(p=document.getElementById(y.value))==null?void 0:p.querySelector("#fv-calculator-num-symbol"),g.value=(h=document.getElementById(y.value))==null?void 0:h.querySelector(".fv-calculator-pre"),b.value=(B=document.getElementById(y.value))==null?void 0:B.querySelector(".fv-calculator-pre-left"),V.value=(O=document.getElementById(y.value))==null?void 0:O.querySelector(".fv-calculator-pre-right"),L()}),()=>e.createVNode(e.Fragment,null,[e.createVNode("div",{class:"fv-calculator-standard-main",id:y.value,onMousedown:e.withModifiers(t=>w(t),["prevent"]),onTouchstart:e.withModifiers(t=>w(t),["prevent"])},[e.createVNode("div",{class:"fv-calculator-title"},[e.createTextVNode("计算器")]),e.createVNode("div",{class:"fv-calculator-result"},[e.createVNode("div",{class:"fv-calculator-type",id:"fv-calculator-show-bar"},[e.createTextVNode("Standard")]),e.createVNode("div",{class:"fv-calculator-pre"},[e.createVNode("div",{class:"fv-calculator-pre-left",style:"display:none;",onMousedown:e.withModifiers(t=>S(),["prevent"]),onTouchstart:e.withModifiers(t=>S(),["prevent"])},[e.createTextVNode("<")]),e.createVNode("div",{class:"fv-calculator-pre-content",id:"fv-calculator-pre-step"},null),e.createVNode("div",{class:"fv-calculator-pre-right",style:"display:none;",onMousedown:e.withModifiers(t=>I(),["prevent"]),onTouchstart:e.withModifiers(t=>I(),["prevent"])},[e.createTextVNode(">")])]),e.createVNode("div",{class:"fv-calculator-result-out"},[e.createVNode("div",{class:"fv-calculator-second",id:"fv-calculator-show-input"},[e.createTextVNode("0")])])]),e.createVNode("ul",{id:"fv-calculator-num-symbol"},[e.createVNode("li",{value:"37",class:"fv-calculator-letter"},[e.createTextVNode("CE")]),e.createVNode("li",{value:"38",class:"fv-calculator-letter"},[e.createTextVNode("C")]),e.createVNode("li",{value:"39",class:"fv-calculator-letter"},[e.createTextVNode("Back")]),e.createVNode("li",{value:"16",class:"fv-calculator-operator"},[e.createTextVNode("÷")]),e.createVNode("li",{class:"fv-calculator-number",value:"7"},[e.createTextVNode("7")]),e.createVNode("li",{class:"fv-calculator-number",value:"8"},[e.createTextVNode("8")]),e.createVNode("li",{class:"fv-calculator-number",value:"9"},[e.createTextVNode("9")]),e.createVNode("li",{value:"15",class:"fv-calculator-operator"},[e.createTextVNode("×")]),e.createVNode("li",{class:"fv-calculator-number",value:"4"},[e.createTextVNode("4")]),e.createVNode("li",{class:"fv-calculator-number",value:"5"},[e.createTextVNode("5")]),e.createVNode("li",{class:"fv-calculator-number",value:"6"},[e.createTextVNode("6")]),e.createVNode("li",{value:"14",class:"fv-calculator-operator"},[e.createTextVNode("-")]),e.createVNode("li",{class:"fv-calculator-number",value:"1"},[e.createTextVNode("1")]),e.createVNode("li",{class:"fv-calculator-number",value:"2"},[e.createTextVNode("2")]),e.createVNode("li",{class:"fv-calculator-number",value:"3"},[e.createTextVNode("3")]),e.createVNode("li",{value:"13",class:"fv-calculator-operator"},[e.createTextVNode("+")]),e.createVNode("li",{value:"11"},[e.createTextVNode("±")]),e.createVNode("li",{class:"fv-calculator-number",value:"0"},[e.createTextVNode("0")]),e.createVNode("li",{value:"10"},[e.createTextVNode(".")]),e.createVNode("li",{value:"12",class:"fv-calculator-operator"},[e.createTextVNode("=")])])])])}}),q={install(T){T.component(k.name,k)}};N.FCalculator=k,N.calculatorProps=E,N.default=q,Object.defineProperties(N,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});