UNPKG

vue-longpress

Version:

Hold the click in the button to confirm the action

1 lines 6.22 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("VueLongpress",[],t):"object"==typeof exports?exports.VueLongpress=t():e.VueLongpress=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){n(1);var r=n(6)(n(7),n(8),null,null);e.exports=r.exports},function(e,t,n){var r=n(2);"string"==typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals),n(4)("2a7ecb18",r,!0)},function(e,t,n){t=e.exports=n(3)(),t.push([e.id,".longpress-button{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative}.longpress-button .progress-bar{position:absolute;left:0;width:0;bottom:0;height:4px;background:#fff;opacity:.4}.longpress-button.counting .progress-bar{animation:longpress-progress 5s linear}.longpress-button.executing{opacity:.5;cursor:denied}@keyframes longpress-progress{to{width:100%}}",""])},function(e,t){e.exports=function(){var e=[];return e.toString=function(){for(var e=[],t=0;t<this.length;t++){var n=this[t];n[2]?e.push("@media "+n[2]+"{"+n[1]+"}"):e.push(n[1])}return e.join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var r={},o=0;o<this.length;o++){var s=this[o][0];"number"==typeof s&&(r[s]=!0)}for(o=0;o<t.length;o++){var i=t[o];"number"==typeof i[0]&&r[i[0]]||(n&&!i[2]?i[2]=n:n&&(i[2]="("+i[2]+") and ("+n+")"),e.push(i))}},e}},function(e,t,n){function r(e){for(var t=0;t<e.length;t++){var n=e[t],r=f[n.id];if(r){r.refs++;for(var o=0;o<r.parts.length;o++)r.parts[o](n.parts[o]);for(;o<n.parts.length;o++)r.parts.push(s(n.parts[o]));r.parts.length>n.parts.length&&(r.parts.length=n.parts.length)}else{for(var i=[],o=0;o<n.parts.length;o++)i.push(s(n.parts[o]));f[n.id]={id:n.id,refs:1,parts:i}}}}function o(){var e=document.createElement("style");return e.type="text/css",l.appendChild(e),e}function s(e){var t,n,r=document.querySelector('style[data-vue-ssr-id~="'+e.id+'"]');if(r){if(h)return g;r.parentNode.removeChild(r)}if(v){var s=d++;r=p||(p=o()),t=i.bind(null,r,s,!1),n=i.bind(null,r,s,!0)}else r=o(),t=u.bind(null,r),n=function(){r.parentNode.removeChild(r)};return t(e),function(r){if(r){if(r.css===e.css&&r.media===e.media&&r.sourceMap===e.sourceMap)return;t(e=r)}else n()}}function i(e,t,n,r){var o=n?"":r.css;if(e.styleSheet)e.styleSheet.cssText=m(t,o);else{var s=document.createTextNode(o),i=e.childNodes;i[t]&&e.removeChild(i[t]),i.length?e.insertBefore(s,i[t]):e.appendChild(s)}}function u(e,t){var n=t.css,r=t.media,o=t.sourceMap;if(r&&e.setAttribute("media",r),o&&(n+="\n/*# sourceURL="+o.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */"),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}var a="undefined"!=typeof document,c=n(5),f={},l=a&&(document.head||document.getElementsByTagName("head")[0]),p=null,d=0,h=!1,g=function(){},v="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());e.exports=function(e,t,n){h=n;var o=c(e,t);return r(o),function(t){for(var n=[],s=0;s<o.length;s++){var i=o[s],u=f[i.id];u.refs--,n.push(u)}t?(o=c(e,t),r(o)):o=[];for(var s=0;s<n.length;s++){var u=n[s];if(0===u.refs){for(var a=0;a<u.parts.length;a++)u.parts[a]();delete f[u.id]}}}};var m=function(){var e=[];return function(t,n){return e[t]=n,e.filter(Boolean).join("\n")}}()},function(e,t){e.exports=function(e,t){for(var n=[],r={},o=0;o<t.length;o++){var s=t[o],i=s[0],u=s[1],a=s[2],c=s[3],f={id:e+":"+o,css:u,media:a,sourceMap:c};r[i]?r[i].parts.push(f):n.push(r[i]={id:i,parts:[f]})}return n}},function(e,t){e.exports=function(e,t,n,r){var o,s=e=e||{},i=typeof e.default;"object"!==i&&"function"!==i||(o=e,s=e.default);var u="function"==typeof s?s.options:s;if(t&&(u.render=t.render,u.staticRenderFns=t.staticRenderFns),n&&(u._scopeId=n),r){var a=u.computed||(u.computed={});Object.keys(r).forEach(function(e){var t=r[e];a[e]=function(){return t}})}return{esModule:o,exports:s,options:u}}},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=null;t.default={name:"longpress-button",props:["value","onConfirm","duration","pressingText","actionText"],created:function(){var e=this;document.addEventListener("mouseup",function(){return e.cancel()})},destroyed:function(){var e=this;document.removeEventListener("mouseup",function(){return e.cancel()})},data:function(){return{status:"default",counter:0}},methods:{triggerCount:function(){"executing"!==this.status&&"counting"!==this.status&&(this.status="counting",this.countAndConfirm())},countAndConfirm:function(){var e=this;n=setTimeout(function(){return e.counter++,e.counter>=e.duration?(e.status="executing",clearTimeout(n),void setTimeout(function(t){e.onConfirm&&e.onConfirm(e.value||null),e.reset()},1e3)):void e.countAndConfirm()},1e3)},reset:function(){this.status="default",this.cancel()},cancel:function(){"executing"!==this.status&&(this.counter=0,clearTimeout(n),this.status="default")}},computed:{countingPressingText:function(){var e=this.pressingText||"";return e.replace(/\{\$counter\}/gi,this.counter).replace(/\{\$rcounter\}/gi,this.duration-this.counter).replace(/\{\$duration\}/gi,this.duration)}}}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"longpress-button",class:e.status,on:{touchend:function(t){e.cancel()},touchstart:function(t){t.preventDefault(),e.triggerCount()},mouseup:function(t){e.cancel()},mousedown:function(t){t.preventDefault(),e.triggerCount()}}},[n("div",["default"===e.status?e._t("default"):e._e(),e._v(" "),"counting"===e.status?n("span",[e._v(e._s(e.countingPressingText||"Keep pressing"))]):e._e(),e._v(" "),"executing"===e.status?n("span",[e._v(e._s(e.actionText||"Please wait..."))]):e._e()],2),e._v(" "),n("span",{staticClass:"progress-bar",style:"animation-duration:"+e.duration+"s"})])},staticRenderFns:[]}}])});