Files
WrenchBackOffice/massets/vendor/framework7-plugins/keypad/framework7.keypad.min.js
T
2021-10-09 21:59:14 -04:00

15 lines
11 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* Framework7 Keypad 1.0.3
* Keypad plugin extends Framework7 with additional custom keyboards
*
* http://www.idangero.us/framework7/plugins/
*
* Copyright 2015, Vladimir Kharlampidi
* The iDangero.us
* http://www.idangero.us/
*
* Licensed under MIT
*
* Released on: August 22, 2015
*/
Framework7.prototype.plugins.keypad=function(a){"use strict";function e(a){t(a.container).find('input[type="numpad"], input[type="calculator"]').each(function(){var a=t(this);a[0].f7Keypad=new n({input:a,type:a.attr("type"),value:a.val()||0,valueMaxLength:a.attr("maxlength")||void 0,toolbar:"false"===a.attr("data-toolbar")?!1:!0,toolbarCloseText:a.attr("data-toolbarCloseText")||void 0})}),t(a.container).find(".numpad-init, .calculator-init").each(function(){var a,e=t(this);e.hasClass("calculator-init")&&(a="calculator"),e.hasClass("numpad-init")&&(a="numpad"),e[0].f7Keypad=new n({input:e.attr("data-input")||void 0,type:a,value:e.attr("data-value")||void 0,valueMaxLength:input.attr("maxlength")||void 0,toolbar:"false"===input.attr("data-toolbar")?!1:!0,toolbarCloseText:input.attr("data-toolbarCloseText")||void 0})})}var t=window.Dom7,n=(window.Template7,function(e){function n(){var e=!1;return o.params.convertToPopover||o.params.onlyInPopover?(!o.inline&&o.params.input&&(o.params.onlyInPopover?e=!0:a.device.ios?e=a.device.ipad?!0:!1:t(window).width()>=768&&(e=!0)),e):e}function p(){return o.opened&&o.container&&o.container.length>0&&o.container.parents(".popover").length>0?!0:!1}function s(a){if(a.preventDefault(),!o.opened&&(o.open(),o.params.scrollToInput&&!n())){var e=o.input.parents(".page-content");if(0===e.length)return;var t,p=parseInt(e.css("padding-top"),10),s=parseInt(e.css("padding-bottom"),10),r=e[0].offsetHeight-p-o.container.height(),l=e[0].scrollHeight-p-o.container.height(),i=o.input.offset().top-p+o.input[0].offsetHeight;if(i>r){var u=e.scrollTop()+i-r;u+r>l&&(t=u+r-l+s,r===l&&(t=o.container.height()),e.css({"padding-bottom":t+"px"})),e.scrollTop(u,300)}}}function r(a){p()||(o.input&&o.input.length>0?a.target!==o.input[0]&&0===t(a.target).parents(".picker-modal").length&&o.close():0===t(a.target).parents(".picker-modal").length&&o.close())}function l(){o.opened=!1,o.input&&o.input.length>0&&(o.input.parents(".page-content").css({"padding-bottom":""}),a.params.material&&o.input.trigger("blur")),o.params.onClose&&o.params.onClose(o),o.container.find(".picker-items-col").each(function(){o.destroyPickerCol(this)})}var o=this,i={type:"numpad",valueMaxLength:null,dotButton:!0,dotCharacter:".",buttons:function(){var a=e.dotCharacter||".";if("undefined"==typeof e.type||"numpad"===e.type){var t=void 0===e.dotButton?!0:e.dotButton;return[{html:'<span class="picker-keypad-button-number">1</span><span class="picker-keypad-button-letters"></span>',value:1},{html:'<span class="picker-keypad-button-number">2</span><span class="picker-keypad-button-letters">ABC</span>',value:2},{html:'<span class="picker-keypad-button-number">3</span><span class="picker-keypad-button-letters">DEF</span>',value:3},{html:'<span class="picker-keypad-button-number">4</span><span class="picker-keypad-button-letters">GHI</span>',value:4},{html:'<span class="picker-keypad-button-number">5</span><span class="picker-keypad-button-letters">JKL</span>',value:5},{html:'<span class="picker-keypad-button-number">6</span><span class="picker-keypad-button-letters">MNO</span>',value:6},{html:'<span class="picker-keypad-button-number">7</span><span class="picker-keypad-button-letters">PQRS</span>',value:7},{html:'<span class="picker-keypad-button-number">8</span><span class="picker-keypad-button-letters">TUV</span>',value:8},{html:'<span class="picker-keypad-button-number">9</span><span class="picker-keypad-button-letters">WXYZ</span>',value:9},{html:t?'<span class="picker-keypad-button-number">'+a+"</span>":"",value:t?a:void 0,dark:!0,cssClass:t?"":"picker-keypad-dummy-button"},{html:'<span class="picker-keypad-button-number">0</span>',value:0},{html:'<i class="icon icon-keypad-delete"></i>',cssClass:"picker-keypad-delete",dark:!0}]}return"calculator"===e.type?[{html:'<span class="picker-keypad-button-number">C</span>',value:"C",dark:!0},{html:'<span class="picker-keypad-button-number">±</span>',value:"±",dark:!0},{html:'<span class="picker-keypad-button-number">%</span>',value:"%",dark:!0},{html:'<span class="picker-keypad-button-number">÷</span>',value:"÷",cssClass:"calc-operator-button"},{html:'<span class="picker-keypad-button-number">7</span>',value:7},{html:'<span class="picker-keypad-button-number">8</span>',value:8},{html:'<span class="picker-keypad-button-number">9</span>',value:9},{html:'<span class="picker-keypad-button-number">×</span>',value:"×",cssClass:"calc-operator-button"},{html:'<span class="picker-keypad-button-number">4</span>',value:4},{html:'<span class="picker-keypad-button-number">5</span>',value:5},{html:'<span class="picker-keypad-button-number">6</span>',value:6},{html:'<span class="picker-keypad-button-number">-</span>',value:"-",cssClass:"calc-operator-button"},{html:'<span class="picker-keypad-button-number">1</span>',value:1},{html:'<span class="picker-keypad-button-number">2</span>',value:2},{html:'<span class="picker-keypad-button-number">3</span>',value:3},{html:'<span class="picker-keypad-button-number">+</span>',value:"+",cssClass:"calc-operator-button"},{html:'<span class="picker-keypad-button-number">0</span>',value:0,cssClass:"picker-keypad-button-double"},{html:'<span class="picker-keypad-button-number">.</span>',value:a},{html:'<span class="picker-keypad-button-number">=</span>',value:"=",cssClass:"calc-operator-button calc-operator-button-equal"}]:[]}(),closeByOutsideClick:!0,scrollToInput:!0,inputReadOnly:!0,convertToPopover:!0,onlyInPopover:!1,toolbar:!0,toolbarCloseText:"Done",toolbarTemplate:'<div class="toolbar"><div class="toolbar-inner"><div class="left"></div><div class="right"><a href="#" class="link close-picker">{{closeText}}</a></div></div></div>'};e=e||{};for(var u in i)"undefined"==typeof e[u]&&(e[u]=i[u]);o.params=e,o.cols=[],o.initialized=!1,o.inline=o.params.container?!0:!1;var c=(a.device.ios||navigator.userAgent.toLowerCase().indexOf("safari")>=0&&navigator.userAgent.toLowerCase().indexOf("chrome")<0&&!a.device.android,[]),d=[],v=!1;return o.calculator=function(a){function e(){for(var a="",e=0;e<d.length;e++){var n=d[e];e===d.length-1&&t.indexOf(n)>=0||n&&("."===n&&(n=0),a+=(n.toString()+"").replace("×","*").replace("÷","/"))}a=a.replace(/--/g,"+"),o.setValue(eval.call(window,a))}var t="+ - = × ÷ ± %".split(" "),n=[0,1,2,3,4,5,6,7,8,9,"."],p="C",s="±",r="%";if(o.value||(o.value=0),a===p)return o.setValue(0),c=[],void(d=[]);if(n.indexOf(a)>=0){if("."===a&&v&&o.value.toString().indexOf(".")>=0)return;o.setValue(t.indexOf(c[c.length-1])>=0?a:o.value?o.value+""+a:a),v=!0}if(t.indexOf(a)>=0)if(a===s){if("."===o.value)return;o.setValue(-1*o.value),v=!0}else if(a===r){if(d[d.length-2]){var l=o.value/100;o.setValue(d[d.length-2]*l)}v=!0}else{var i=d[d.length-1];if("="===a){if("="===d[d.length-1]){if(d.length<2)return;d.pop();var u=d[d.length-2],k=d[d.length-1];d.push(u),d.push(k)}else d.push(o.value);d.push("="),e()}else["-","+","×","÷","="].indexOf(i)>=0?("="===i&&(d=[o.value,a]),["-","+","×","÷"].indexOf(i)>=0&&(v?["-","+"].indexOf(i)>=0&&["×","÷"].indexOf(a)>=0?(d.push(o.value),d.push(a)):(d.push(o.value),d.push(a),e()):d[d.length-1]=a)):(d.push(o.value),d.push(a),e());v=!1}a!==s&&a!==r&&c.push(a)},o.setValue=function(a){o.updateValue(a)},o.updateValue=function(a){o.value=a,o.params.valueMaxLength&&o.value.length>o.params.valueMaxLength&&(o.value=o.value.substring(0,o.params.valueMaxLength)),o.params.onChange&&o.params.onChange(o,o.value),o.input&&o.input.length>0&&(t(o.input).val(o.params.formatValue?o.params.formatValue(o,o.value):o.value),t(o.input).trigger("change"))},o.initKeypadEvents=function(){function a(a){var n=t(a.target);if(n.hasClass("picker-keypad-button")||(n=n.parents(".picker-keypad-button")),0!==n.length){var p=o.params.buttons[n.index()],s=p.value,r=o.value;"numpad"===o.params.type&&("undefined"==typeof r&&(r=""),n.hasClass("picker-keypad-delete")?r=r.substring(0,r.length-1):"undefined"!=typeof s&&("."===s&&r.indexOf(".")>=0&&(s=""),r+=s),"undefined"!=typeof r&&o.setValue(r)),"calculator"===o.params.type&&(o.calculator(p.value),e.find(".calc-operator-active").removeClass("calc-operator-active"),n.hasClass("calc-operator-button")&&!n.hasClass("calc-operator-button-equal")&&n.addClass("calc-operator-active")),"custom"===o.params.type,p.onClick&&p.onClick(o,p)}}var e=o.container.find(".picker-keypad-buttons");e.on("click",a),o.container[0].f7DestroyKeypadEvents=function(){e.off("click",a)}},o.destroyKeypadEvents=function(a){"f7DestroyKeypadEvents"in o.container[0]&&o.container[0].f7DestroyKeypadEvents()},o.buttonsHTML=function(){for(var a,e,t="",n=0;n<o.params.buttons.length;n++)e=o.params.buttons[n],a="picker-keypad-button",e.dark&&(a+=" picker-keypad-button-dark"),e.cssClass&&(a+=" "+e.cssClass),t+='<span class="'+a+'">'+(e.html||"")+"</span>";return t},o.layout=function(){var a="",e="",t=o.buttonsHTML();e="picker-modal picker-keypad picker-keypad-type-"+o.params.type+" "+(o.params.cssClass||""),a='<div class="'+e+'">'+(o.params.toolbar?o.params.toolbarTemplate.replace(/{{closeText}}/g,o.params.toolbarCloseText):"")+'<div class="picker-modal-inner picker-keypad-buttons">'+t+"</div></div>",o.pickerHTML=a},o.params.input&&(o.input=t(o.params.input),o.input.length>0&&(o.params.inputReadOnly&&o.input.prop("readOnly",!0),o.inline||o.input.on("click",s),o.params.inputReadOnly&&o.input.on("focus mousedown",function(a){a.preventDefault()}))),!o.inline&&o.params.closeByOutsideClick&&t("html").on("click",r),o.opened=!1,o.open=function(){var e=n();o.opened||(o.layout(),e?(o.pickerHTML='<div class="popover popover-picker-keypad"><div class="popover-inner">'+o.pickerHTML+"</div></div>",o.popover=a.popover(o.pickerHTML,o.params.input,!0),o.container=t(o.popover).find(".picker-modal"),t(o.popover).on("close",function(){l()})):o.inline?(o.container=t(o.pickerHTML),o.container.addClass("picker-modal-inline"),t(o.params.container).append(o.container)):(o.container=t(a.pickerModal(o.pickerHTML)),t(o.container).on("close",function(){l()})),o.container[0].f7Keypad=o,o.initKeypadEvents(),o.initialized?o.value&&o.setValue(o.value):o.params.value&&o.setValue(o.params.value),o.input&&o.input.length>0&&a.params.material&&o.input.trigger("focus")),o.opened=!0,o.initialized=!0,o.params.onOpen&&o.params.onOpen(o)},o.close=function(){return o.opened&&!o.inline?p()?void a.closeModal(o.popover):void a.closeModal(o.container):void 0},o.destroy=function(){o.close(),o.params.input&&o.input.length>0&&o.input.off("click focus",s),t("html").off("click",r)},o.inline&&o.open(),o});return a.keypad=function(a){return new n(a)},{hooks:{pageInit:e}}};