{"version":3,"sources":["framework7.keypad.js"],"names":["global","factory","exports","module","define","amd","Framework7Keypad","this","Keypad","name","install","Framework7Class","Class","app","params","call","Utils","utils","$","request","keypad","$containerEl","$inputEl","view","defaults","extend","on","containerEl","length","buttons","ref","dotCharacter","dotButton","type","html","value","undefined","dark","cssClass","onInputClick","open","onInputFocus","e","preventDefault","onHtmlClick","$targetEl","target","isPopover","opened","closest","close","inputEl","parents","f7View","views","get","main","inline","initialized","url","calcValues","calcOperations","lastWasNumber","attachInputEvents","inputReadOnly","detachInputEvents","off","attachHtmlEvents","detachHtmlEvents","attachKeypadEvents","$buttonsEl","$el","find","handleClick","$buttonEl","hasClass","button","index","buttonValue","currentValue","substring","indexOf","setValue","calculator","removeClass","addClass","emit","onClick","detachKeypadEvents","f7Keypad","init","__proto__","prototype","Object","create","constructor","initInput","prop","modal","openIn","device","ios","ipad","width","operators","split","calc","toEval","i","operation","toString","replace","eval","window","percents","lastOperation","pop","val1","val2","push","formatValue","updateValue","getValue","newValue","valueMaxLength","val","trigger","renderButtons","buttonClass","buttonsHTML","renderToolbar","trim","renderSheet","toolbar","renderPopover","renderInline","render","modalType","onOpen","theme","onOpened","onClose","onClosed","nextTick","el","destroy","routableModals","obj","append","modalContent","modalParams","targetEl","scrollToEl","scrollToInput","content","backdrop","closed","router","navigate","route","path","back","closeByOutsideClick","destroyed","deleteProps","onlyInPopover","toolbarCloseText","instance","pageInit","page","each","attr","dataset","pageBeforeRemove"],"mappings":"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","file":"framework7.keypad.min.js","sourcesContent":["/**\n * Framework7 Plugin Keypad 2.0.0\n * Keypad plugin extends Framework7 with additional custom keyboards\n * http://framework7.io/plugins/\n *\n * Copyright 2014-2018 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: February 25, 2018\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.Framework7Keypad = factory());\n}(this, (function () { 'use strict';\n\nvar KeypadClassConstructor = function (Framework7Class) {\n return (function (Framework7Class) {\n function Keypad(app, params) {\n Framework7Class.call(this, params, [app]);\n\n var Utils = app.utils;\n var $ = app.$;\n var request = app.request;\n\n var keypad = this;\n keypad.app = app;\n\n var defaults = Utils.extend({\n on: {},\n }, app.params.keypad);\n\n keypad.params = Utils.extend(defaults, params);\n\n var $containerEl;\n\n if (keypad.params.containerEl) {\n $containerEl = $(keypad.params.containerEl);\n if ($containerEl.length === 0) { return keypad; }\n }\n\n if (!keypad.params.buttons || keypad.params.buttons.length === 0) {\n var ref = keypad.params;\n var dotCharacter = ref.dotCharacter;\n var dotButton = ref.dotButton;\n if (keypad.params.type === 'numpad') {\n keypad.params.buttons = [\n {\n html: '1',\n value: 1,\n },\n {\n html: '2ABC',\n value: 2,\n },\n {\n html: '3DEF',\n value: 3,\n },\n {\n html: '4GHI',\n value: 4,\n },\n {\n html: '5JKL',\n value: 5,\n },\n {\n html: '6MNO',\n value: 6,\n },\n {\n html: '7PQRS',\n value: 7,\n },\n {\n html: '8TUV',\n value: 8,\n },\n {\n html: '9WXYZ',\n value: 9,\n },\n {\n html: dotButton ? (\"\" + dotCharacter + \"\") : '',\n value: dotButton ? dotCharacter : undefined,\n dark: true,\n cssClass: dotButton ? '' : 'keypad-dummy-button',\n },\n {\n html: '0',\n value: 0,\n },\n {\n html: '',\n cssClass: 'keypad-delete-button',\n dark: true,\n } ];\n } else if (params.type === 'calculator') {\n keypad.params.buttons = [\n {\n html: 'C',\n value: 'C',\n dark: true,\n },\n {\n html: '±',\n value: '±',\n dark: true,\n },\n {\n html: '%',\n value: '%',\n dark: true,\n },\n {\n html: '÷',\n value: '÷',\n cssClass: 'calc-operator-button',\n\n },\n {\n html: '7',\n value: 7,\n },\n {\n html: '8',\n value: 8,\n },\n {\n html: '9',\n value: 9,\n },\n {\n html: '×',\n value: '×',\n cssClass: 'calc-operator-button',\n },\n {\n html: '4',\n value: 4,\n },\n {\n html: '5',\n value: 5,\n },\n {\n html: '6',\n value: 6,\n },\n {\n html: '-',\n value: '-',\n cssClass: 'calc-operator-button',\n },\n {\n html: '1',\n value: 1,\n },\n {\n html: '2',\n value: 2,\n },\n {\n html: '3',\n value: 3,\n },\n {\n html: '+',\n value: '+',\n cssClass: 'calc-operator-button',\n },\n {\n html: '0',\n value: 0,\n cssClass: 'keypad-button-double',\n },\n {\n html: '.',\n value: dotCharacter,\n },\n {\n html: '=',\n value: '=',\n cssClass: 'calc-operator-button calc-operator-button-equal',\n } ];\n }\n }\n\n var $inputEl;\n if (keypad.params.inputEl) {\n $inputEl = $(keypad.params.inputEl);\n }\n\n var view;\n if (keypad.params.view) {\n view = keypad.params.view;\n } else if ($inputEl && $inputEl.length) {\n view = $inputEl.parents('.view').length && $inputEl.parents('.view')[0].f7View;\n } else {\n view = app.views.get($inputEl);\n }\n if (!view) { view = app.views.main; }\n\n Utils.extend(keypad, {\n app: app,\n request: request,\n $containerEl: $containerEl,\n containerEl: $containerEl && $containerEl[0],\n inline: $containerEl && $containerEl.length > 0,\n $inputEl: $inputEl,\n inputEl: $inputEl && $inputEl[0],\n initialized: false,\n opened: false,\n view: view,\n url: keypad.params.url,\n calcValues: [],\n calcOperations: [],\n lastWasNumber: false,\n });\n\n // Events\n function onInputClick() {\n keypad.open();\n }\n function onInputFocus(e) {\n e.preventDefault();\n }\n function onHtmlClick(e) {\n var $targetEl = $(e.target);\n if (keypad.isPopover()) { return; }\n if (!keypad.opened) { return; }\n if ($targetEl.closest('[class*=\"backdrop\"]').length) { return; }\n if ($inputEl && $inputEl.length > 0) {\n if ($targetEl[0] !== $inputEl[0] && $targetEl.closest('.sheet-modal, .keypad-modal').length === 0) {\n keypad.close();\n }\n } else if ($(e.target).closest('.sheet-modal, .keypad-modal').length === 0) {\n keypad.close();\n }\n }\n Utils.extend(keypad, {\n attachInputEvents: function attachInputEvents() {\n keypad.$inputEl.on('click', onInputClick);\n if (keypad.params.inputReadOnly) {\n keypad.$inputEl.on('focus mousedown', onInputFocus);\n }\n },\n detachInputEvents: function detachInputEvents() {\n keypad.$inputEl.off('click', onInputClick);\n if (keypad.params.inputReadOnly) {\n keypad.$inputEl.off('focus mousedown', onInputFocus);\n }\n },\n attachHtmlEvents: function attachHtmlEvents() {\n app.on('click', onHtmlClick);\n },\n detachHtmlEvents: function detachHtmlEvents() {\n app.off('click', onHtmlClick);\n },\n });\n\n\n keypad.attachKeypadEvents = function attachKeypadEvents() {\n var $buttonsEl = keypad.$el.find('.keypad-buttons');\n\n function handleClick(e) {\n var $buttonEl = $(e.target);\n if (!$buttonEl.hasClass('keypad-button')) {\n $buttonEl = $buttonEl.parents('.keypad-button');\n }\n if ($buttonEl.length === 0) { return; }\n var button = keypad.params.buttons[$buttonEl.index()];\n var buttonValue = button.value;\n var currentValue = keypad.value;\n\n if (keypad.params.type === 'numpad') {\n if (typeof currentValue === 'undefined') { currentValue = ''; }\n if ($buttonEl.hasClass('keypad-delete-button')) {\n currentValue = currentValue.substring(0, currentValue.length - 1);\n } else if (typeof buttonValue !== 'undefined') {\n if (buttonValue === '.' && currentValue.indexOf('.') >= 0) {\n buttonValue = '';\n }\n currentValue += buttonValue;\n }\n if (typeof currentValue !== 'undefined') { keypad.setValue(currentValue); }\n }\n if (keypad.params.type === 'calculator') {\n keypad.calculator(button.value);\n $buttonsEl.find('.calc-operator-active').removeClass('calc-operator-active');\n if ($buttonEl.hasClass('calc-operator-button') && !$buttonEl.hasClass('calc-operator-button-equal')) {\n $buttonEl.addClass('calc-operator-active');\n }\n }\n keypad.emit('local::buttonClick keypadButtonClick', keypad, button);\n if (button.onClick) {\n button.onClick(keypad, button);\n }\n }\n\n $buttonsEl.on('click', handleClick);\n\n keypad.detachKeypadEvents = function detachKeypadEvents() {\n $buttonsEl.off('click', handleClick);\n };\n };\n\n if ($inputEl && $inputEl.length) {\n $inputEl[0].f7Keypad = Keypad;\n }\n if ($containerEl && $containerEl.length) {\n $containerEl[0].f7Keypad = Keypad;\n }\n\n keypad.init();\n\n return keypad;\n }\n\n if ( Framework7Class ) Keypad.__proto__ = Framework7Class;\n Keypad.prototype = Object.create( Framework7Class && Framework7Class.prototype );\n Keypad.prototype.constructor = Keypad;\n Keypad.prototype.initInput = function initInput () {\n var keypad = this;\n if (!keypad.$inputEl) { return; }\n if (keypad.params.inputReadOnly) { keypad.$inputEl.prop('readOnly', true); }\n };\n Keypad.prototype.isPopover = function isPopover () {\n var keypad = this;\n var app = keypad.app;\n var modal = keypad.modal;\n var params = keypad.params;\n if (params.openIn === 'sheet') { return false; }\n if (modal && modal.type !== 'popover') { return false; }\n\n if (!keypad.inline && keypad.inputEl) {\n if (params.openIn === 'popover') { return true; }\n else if (app.device.ios) {\n return !!app.device.ipad;\n } else if (app.width >= 768) {\n return true;\n }\n }\n return false;\n };\n Keypad.prototype.calculator = function calculator (value) {\n var keypad = this;\n var operators = ('+ - = × ÷ ± %').split(' ');\n var numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, '.'];\n var reset = 'C';\n var invert = '±';\n var perc = '%';\n function calc() {\n var toEval = '';\n for (var i = 0; i < keypad.calcOperations.length; i += 1) {\n var operation = keypad.calcOperations[i];\n // eslint-disable-next-line\n if (i === keypad.calcOperations.length - 1 && operators.indexOf(operation) >= 0) {\n\n } else if (operation) {\n if (operation === '.') {\n operation = 0;\n }\n toEval += ((\"\" + (operation.toString())))\n .replace('×', '*')\n .replace('÷', '/');\n }\n }\n toEval = toEval.replace(/--/g, '+');\n // eslint-disable-next-line\n keypad.setValue(eval.call(window, toEval));\n }\n if (!keypad.value) { keypad.value = 0; }\n if (value === reset) {\n keypad.setValue(0);\n keypad.calcValues = [];\n keypad.calcOperations = [];\n return;\n }\n if (numbers.indexOf(value) >= 0) {\n if (value === '.') {\n if (keypad.lastWasNumber && keypad.value.toString().indexOf('.') >= 0) { return; }\n }\n if (operators.indexOf(keypad.calcValues[keypad.calcValues.length - 1]) >= 0) {\n keypad.setValue(value);\n } else {\n keypad.setValue(keypad.value ? (\"\" + (keypad.value) + value) : value);\n }\n keypad.lastWasNumber = true;\n }\n if (operators.indexOf(value) >= 0) {\n if (value === invert) {\n if (keypad.value === '.') { return; }\n keypad.setValue(-1 * keypad.value);\n keypad.lastWasNumber = true;\n } else if (value === perc) {\n if (keypad.calcOperations[keypad.calcOperations.length - 2]) {\n var percents = keypad.value / 100;\n keypad.setValue(keypad.calcOperations[keypad.calcOperations.length - 2] * percents);\n }\n keypad.lastWasNumber = true;\n } else {\n var lastOperation = keypad.calcOperations[keypad.calcOperations.length - 1];\n if (value === '=') {\n if (keypad.calcOperations[keypad.calcOperations.length - 1] === '=') {\n if (keypad.calcOperations.length < 2) { return; }\n keypad.calcOperations.pop();\n var val1 = keypad.calcOperations[keypad.calcOperations.length - 2];\n var val2 = keypad.calcOperations[keypad.calcOperations.length - 1];\n keypad.calcOperations.push(val1);\n keypad.calcOperations.push(val2);\n } else {\n keypad.calcOperations.push(keypad.value);\n }\n keypad.calcOperations.push('=');\n calc();\n } else if (['-', '+', '×', '÷', '='].indexOf(lastOperation) >= 0) {\n if (lastOperation === '=') {\n keypad.calcOperations = [keypad.value, value];\n }\n if (['-', '+', '×', '÷'].indexOf(lastOperation) >= 0) {\n if (keypad.lastWasNumber) {\n if (['-', '+'].indexOf(lastOperation) >= 0 && ['×', '÷'].indexOf(value) >= 0) {\n keypad.calcOperations.push(keypad.value);\n keypad.calcOperations.push(value);\n } else {\n keypad.calcOperations.push(keypad.value);\n keypad.calcOperations.push(value);\n calc();\n }\n } else {\n keypad.calcOperations[keypad.calcOperations.length - 1] = value;\n }\n }\n } else {\n keypad.calcOperations.push(keypad.value);\n keypad.calcOperations.push(value);\n calc();\n }\n keypad.lastWasNumber = false;\n }\n }\n if (value !== invert && value !== perc) { keypad.calcValues.push(value); }\n };\n Keypad.prototype.formatValue = function formatValue (value) {\n var keypad = this;\n if (keypad.params.formatValue) { return keypad.params.formatValue.call(keypad, value); }\n return value;\n };\n Keypad.prototype.setValue = function setValue (value) {\n var keypad = this;\n keypad.updateValue(value);\n };\n Keypad.prototype.getValue = function getValue () {\n var keypad = this;\n return keypad.value;\n };\n Keypad.prototype.updateValue = function updateValue (newValue) {\n var keypad = this;\n keypad.value = newValue;\n if (keypad.params.valueMaxLength && keypad.value.length > keypad.params.valueMaxLength) {\n keypad.value = keypad.value.substring(0, keypad.params.valueMaxLength);\n }\n keypad.emit('local::change keypadChange', keypad, keypad.value);\n if (keypad.$inputEl && keypad.$inputEl.length > 0) {\n keypad.$inputEl.val(keypad.formatValue(keypad.value));\n keypad.$inputEl.trigger('change');\n }\n };\n Keypad.prototype.renderButtons = function renderButtons () {\n var keypad = this;\n var buttonsHTML = '';\n var buttonClass;\n var button;\n for (var i = 0; i < keypad.params.buttons.length; i += 1) {\n button = keypad.params.buttons[i];\n buttonClass = 'keypad-button';\n if (button.dark) { buttonClass += ' keypad-button-dark'; }\n if (button.cssClass) { buttonClass += \" \" + (button.cssClass); }\n buttonsHTML += \"\" + (button.html || '') + \"\";\n }\n return buttonsHTML;\n };\n Keypad.prototype.renderToolbar = function renderToolbar () {\n var keypad = this;\n if (keypad.params.renderToolbar) { return keypad.params.renderToolbar.call(keypad, keypad); }\n\n var toolbarHtml = \"\\n
\\n
\\n
\\n \\n
\\n
\\n \";\n return toolbarHtml.trim();\n };\n Keypad.prototype.renderSheet = function renderSheet () {\n var keypad = this;\n if (keypad.params.renderSheet) { return keypad.params.renderSheet.call(keypad, keypad); }\n var ref = keypad.params;\n var cssClass = ref.cssClass;\n var toolbar = ref.toolbar;\n\n var sheetHtml = \"\\n
\\n \" + (toolbar ? keypad.renderToolbar() : '') + \"\\n
\\n \" + (keypad.renderButtons()) + \"\\n
\\n
\\n \";\n\n return sheetHtml;\n };\n Keypad.prototype.renderPopover = function renderPopover () {\n var keypad = this;\n if (keypad.params.renderPopover) { return keypad.params.renderPopover.call(keypad, keypad); }\n var ref = keypad.params;\n var cssClass = ref.cssClass;\n var toolbar = ref.toolbar;\n var popoverHtml = (\"\\n
\\n
\\n
\\n \" + (toolbar ? keypad.renderToolbar() : '') + \"\\n
\\n \" + (keypad.renderButtons()) + \"\\n
\\n
\\n
\\n
\\n \").trim();\n\n return popoverHtml;\n };\n Keypad.prototype.renderInline = function renderInline () {\n var keypad = this;\n if (keypad.params.renderInline) { return keypad.params.renderInline.call(keypad, keypad); }\n var ref = keypad.params;\n var cssClass = ref.cssClass;\n var toolbar = ref.toolbar;\n\n var inlineHtml = \"\\n
\\n \" + (toolbar ? keypad.renderToolbar() : '') + \"\\n
\\n \" + (keypad.renderButtons()) + \"\\n
\\n
\\n \";\n\n return inlineHtml;\n };\n Keypad.prototype.render = function render () {\n var keypad = this;\n var params = keypad.params;\n if (params.render) { return params.render.call(keypad); }\n if (!keypad.inline) {\n var modalType = params.openIn;\n if (modalType === 'auto') { modalType = keypad.isPopover() ? 'popover' : 'sheet'; }\n\n if (modalType === 'popover') { return keypad.renderPopover(); }\n else if (modalType === 'sheet') { return keypad.renderSheet(); }\n }\n return keypad.renderInline();\n };\n\n Keypad.prototype.onOpen = function onOpen () {\n var keypad = this;\n var initialized = keypad.initialized;\n var $el = keypad.$el;\n var app = keypad.app;\n var $inputEl = keypad.$inputEl;\n var inline = keypad.inline;\n var value = keypad.value;\n var params = keypad.params;\n keypad.opened = true;\n\n // Init main events\n keypad.attachKeypadEvents();\n\n // Set value\n if (!initialized) {\n if (value) { keypad.setValue(value); }\n else if (params.value) {\n keypad.setValue(params.value);\n }\n } else if (value) {\n keypad.setValue(value);\n }\n\n // Extra focus\n if (!inline && $inputEl.length && app.theme === 'md') {\n $inputEl.trigger('focus');\n }\n\n keypad.initialized = true;\n\n // Trigger events\n if ($el) {\n $el.trigger('keypad:open', keypad);\n }\n if ($inputEl) {\n $inputEl.trigger('keypad:open', keypad);\n }\n keypad.emit('local::open keypadOpen', keypad);\n };\n Keypad.prototype.onOpened = function onOpened () {\n var keypad = this;\n if (keypad.$el) {\n keypad.$el.trigger('keypad:opened', keypad);\n }\n if (keypad.$inputEl) {\n keypad.$inputEl.trigger('keypad:opened', keypad);\n }\n keypad.emit('local::opened keypadOpened', keypad);\n };\n Keypad.prototype.onClose = function onClose () {\n var keypad = this;\n var app = keypad.app;\n\n if (keypad.$inputEl && app.theme === 'md') {\n keypad.$inputEl.trigger('blur');\n }\n if (keypad.detachKeypadEvents) {\n keypad.detachKeypadEvents();\n }\n\n if (keypad.$el) {\n keypad.$el.trigger('keypad:close', keypad);\n }\n if (keypad.$inputEl) {\n keypad.$inputEl.trigger('keypad:close', keypad);\n }\n keypad.emit('local::close keypadClose', keypad);\n };\n Keypad.prototype.onClosed = function onClosed () {\n var keypad = this;\n keypad.opened = false;\n\n if (!keypad.inline) {\n keypad.app.utils.nextTick(function () {\n if (keypad.modal && keypad.modal.el && keypad.modal.destroy) {\n if (!keypad.params.routableModals) {\n keypad.modal.destroy();\n }\n }\n delete keypad.modal;\n });\n }\n if (keypad.$el) {\n keypad.$el.trigger('keypad:closed', keypad);\n }\n if (keypad.$inputEl) {\n keypad.$inputEl.trigger('keypad:closed', keypad);\n }\n keypad.emit('local::closed keypadClosed', keypad);\n };\n Keypad.prototype.open = function open () {\n var obj;\n\n var keypad = this;\n var app = keypad.app;\n var opened = keypad.opened;\n var inline = keypad.inline;\n var $inputEl = keypad.$inputEl;\n var params = keypad.params;\n if (opened) { return; }\n\n if (inline) {\n keypad.$el = app.$(keypad.render());\n keypad.$el[0].f7Keypad = keypad;\n keypad.$containerEl.append(keypad.$el);\n keypad.onOpen();\n keypad.onOpened();\n return;\n }\n var modalType = params.openIn;\n if (modalType === 'auto') {\n modalType = keypad.isPopover() ? 'popover' : 'sheet';\n }\n var modalContent = keypad.render();\n\n var modalParams = {\n targetEl: $inputEl,\n scrollToEl: keypad.params.scrollToInput ? $inputEl : undefined,\n content: modalContent,\n backdrop: modalType !== 'sheet',\n on: {\n open: function open() {\n var modal = this;\n keypad.modal = modal;\n keypad.$el = modalType === 'popover' ? modal.$el.find('.keypad') : modal.$el;\n keypad.$el[0].f7Keypad = keypad;\n keypad.onOpen();\n },\n opened: function opened() { keypad.onOpened(); },\n close: function close() { keypad.onClose(); },\n closed: function closed() { keypad.onClosed(); },\n },\n };\n if (keypad.params.routableModals) {\n keypad.view.router.navigate({\n url: keypad.url,\n route: ( obj = {\n path: keypad.url\n }, obj[modalType] = modalParams, obj ),\n });\n } else {\n keypad.modal = app[modalType].create(modalParams);\n keypad.modal.open();\n }\n };\n Keypad.prototype.close = function close () {\n var keypad = this;\n var opened = keypad.opened;\n var inline = keypad.inline;\n if (!opened) { return; }\n if (inline) {\n keypad.onClose();\n keypad.onClosed();\n return;\n }\n if (keypad.params.routableModals) {\n keypad.view.router.back();\n } else {\n keypad.modal.close();\n }\n };\n Keypad.prototype.init = function init () {\n var keypad = this;\n keypad.initInput();\n\n if (keypad.inline) {\n keypad.open();\n keypad.emit('local::init keypadInit', keypad);\n return;\n }\n\n if (!keypad.initialized && keypad.params.value) {\n keypad.setValue(keypad.params.value);\n }\n\n // Attach input Events\n if (keypad.$inputEl) {\n keypad.attachInputEvents();\n }\n if (keypad.params.closeByOutsideClick) {\n keypad.attachHtmlEvents();\n }\n keypad.emit('local::init keypadInit', keypad);\n };\n Keypad.prototype.destroy = function destroy () {\n var keypad = this;\n if (keypad.destroyed) { return; }\n var $el = keypad.$el;\n keypad.emit('local::beforeDestroy keypadBeforeDestroy', keypad);\n if ($el) { $el.trigger('keypad:beforedestroy', keypad); }\n\n keypad.close();\n\n // Detach Events\n if (keypad.$inputEl) {\n keypad.detachInputEvents();\n }\n if (keypad.params.closeByOutsideClick) {\n keypad.detachHtmlEvents();\n }\n\n if ($el && $el.length) { delete keypad.$el[0].f7Keypad; }\n keypad.app.utils.deleteProps(keypad);\n keypad.destroyed = true;\n };\n\n return Keypad;\n }(Framework7Class));\n};\n\nvar Keypad;\nvar framework7_keypad = {\n name: 'keypad',\n install: function install() {\n var Framework7 = this;\n Keypad = KeypadClassConstructor(Framework7.Class);\n Framework7.Keypad = Keypad;\n },\n params: {\n keypad: {\n type: 'numpad', // or 'calculator' or 'custom',\n openIn: 'auto', // or 'popover' or 'sheet'\n inputEl: null,\n containerEl: null,\n value: null,\n valueMaxLength: null,\n dotButton: true,\n dotCharacter: '.',\n buttons: [],\n closeByOutsideClick: true,\n scrollToInput: true,\n inputReadOnly: true,\n onlyInPopover: false,\n cssClass: null,\n toolbar: true,\n toolbarCloseText: 'Done',\n routableModals: true,\n view: null,\n url: 'select/',\n renderToolbar: null,\n renderPopover: null,\n renderSheet: null,\n renderInline: null,\n render: null,\n },\n },\n create: function create() {\n var app = this;\n var $ = app.$;\n app.keypad = {\n create: function create(params) {\n return new Keypad(app, params);\n },\n get: function get(el) {\n if ( el === void 0 ) el = '.keypad';\n\n if (el instanceof Keypad) { return el; }\n var $el = $(el);\n if ($el.length === 0) { return undefined; }\n return $el[0].f7Keypad;\n },\n destroy: function destroy(el) {\n if ( el === void 0 ) el = '.keypad';\n\n var instance = app.keypad.get(el);\n if (instance && instance.destroy) { return instance.destroy(); }\n return undefined;\n },\n close: function close(el) {\n if ( el === void 0 ) el = '.keypad';\n\n var $el = $(el);\n if ($el.length === 0) { return; }\n var keypad = $el[0].f7Keypad;\n if (!keypad || (keypad && !keypad.opened)) { return; }\n keypad.close();\n },\n };\n },\n on: {\n pageInit: function pageInit(page) {\n var $ = page.app.$;\n var app = page.app;\n page.$el.find('input[type=\"numpad\"], input[type=\"calculator\"]').each(function (index, inputEl) {\n var $inputEl = $(inputEl);\n var params = {\n inputEl: inputEl,\n type: $inputEl.attr('type'),\n value: $inputEl.val() || 0,\n };\n if ($inputEl.attr('maxlength')) { params.valueMaxLength = $inputEl.attr('maxlength'); }\n app.keypad.create(app.utils.extend(params, $inputEl.dataset()));\n });\n },\n pageBeforeRemove: function pageBeforeRemove(page) {\n page.$el.find('input[type=\"numpad\"], input[type=\"calculator\"]').each(function (index, inputEl) {\n page.app.keypad.destroy(inputEl);\n });\n },\n },\n};\n\nreturn framework7_keypad;\n\n})));\n"]}