'use strict' var yo = require('yo-yo') var css = require('./universal-dapp-styles') // var helper = require('../remix/remix-lib/src/execution/txHelper') class MultiParamManager { /** * * @param {bool} lookupOnly * @param {Object} funABI * @param {Function} clickMultiCallBack * @param {string} inputs * @param {string} title * */ constructor (lookupOnly, funABI, clickCallBack, inputs, title) { this.lookupOnly = lookupOnly this.funABI = funABI this.clickCallBack = clickCallBack this.inputs = inputs this.title = title this.basicInputField this.multiFields } switchMethodViewOn () { this.contractActionsContainerSingle.style.display = 'none' this.contractActionsContainerMulti.style.display = 'flex' this.makeMultiVal() } switchMethodViewOff () { this.contractActionsContainerSingle.style.display = 'flex' this.contractActionsContainerMulti.style.display = 'none' var multiValString = this.getMultiValsString() if (multiValString) this.basicInputField.value = multiValString } getValue (item, index) { var valStr = item.value.join('') return valStr } getMultiValsString () { var valArray = this.multiFields.querySelectorAll('input') var ret = '' var valArrayTest = [] for (var j = 0; j < valArray.length; j++) { if (ret !== '') ret += ',' var elVal = valArray[j].value valArrayTest.push(elVal) elVal = elVal.replace(/(^|,\s+|,)(\d+)(\s+,|,|$)/g, '$1"$2"$3') // replace non quoted number by quoted number elVal = elVal.replace(/(^|,\s+|,)(0[xX][0-9a-fA-F]+)(\s+,|,|$)/g, '$1"$2"$3') // replace non quoted hex string by quoted hex string ret += elVal } var valStringTest = valArrayTest.join('') if (valStringTest) { return ret } else { return '' } } emptyInputs () { var valArray = this.multiFields.querySelectorAll('input') for (var k = 0; k < valArray.length; k++) { valArray[k].value = '' } this.basicInputField.value = '' } makeMultiVal () { var inputString = this.basicInputField.value if (inputString) { inputString = inputString.replace(/(^|,\s+|,)(\d+)(\s+,|,|$)/g, '$1"$2"$3') // replace non quoted number by quoted number inputString = inputString.replace(/(^|,\s+|,)(0[xX][0-9a-fA-F]+)(\s+,|,|$)/g, '$1"$2"$3') // replace non quoted hex string by quoted hex string var inputJSON = JSON.parse('[' + inputString + ']') var multiInputs = this.multiFields.querySelectorAll('input') for (var k = 0; k < multiInputs.length; k++) { if (inputJSON[k]) { multiInputs[k].value = JSON.stringify(inputJSON[k]) } } } } createMultiFields () { if (this.funABI.inputs) { return yo`