tplus-components-touch 3.41.13 → 3.41.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["tplus-components-touch/components/settlement/settlement.js"],"names":["hasElectron","env","platform","constant","electron","Settlement","observer","props","state","visible","czkVisible","djqVisible","jfdxVisible","moreCzkVisible","showSetPwdModal","prototypeVisible","currentIndex","connectCardStatus","connectCardError","amountChanged","type","isManualIntoAmount","isXianjin","newPass","newPassConfirm","noAlreadyWarn","btnDissabled","confirmPwd","settleDisabled","protytypeCount","isPrototypeClick","dataSource","memberdata1","discountTotalAmount","discountRetailTotalAount","discountPrototypeTotalAmount","bquick","currentKey","couponLight","storageValue","czkValue","isInputMember","selectedRowIndex","isNotAutoFocus","compoundHotkeysList","window","$","operationControl","control","map","key","toLocaleUpperCase","hotkeydebounced","hotkeydebouncedPayMode","currentInput","getIsReturn","dataModal","context","viewModel","data","IdbusiType","getBoriginReturn","boriginReturn","JSON","getCellValue","getNotBoriginReturn","isReturn","resizeSettlementToolBtns","newStyle","store","isMemberStorePage","b","billingSettlementDocumnet","bWidth","offsetWidth","cWidth","firstChild","lastChild","childNodes","forEach","v","className","handleReadICard","readRfCard","updateInput","currentMode","paymode","member","exchangable","undefined","inputkey","input","value","Math","min","maxamount","setCurrentModeValue","inputJfdxAmount","balance","inputCzkAmount","storageCardNo","parseFloat","amount","Message","error","duration","setTimeout","handleCzkCancel","czkKeyboardOnClose","payQuick","enumController","getEnumOj","PayStyle","init","onHandleAmount","Code_02","storeInfo","dto","settleZero","hyczk","isProhibitMeStorageCard","warn","showCzkModal","quickSettle","handleSettle","handleGuestShow","isAutoShowCouponWhenCash","setState","resolve","onValidate","fn","isNoProductTip","then","result","count","handleShowPrototype","checkIsIntegralExchange","payFun","handleDefault","brefund","thePaymodes","m","checkModeDisabled","paymentType","setFocusAndSelectionMode","pricePrecision","quantityPrecision","RetailDetails","TotalTaxAmount","o","item","count1","ShowFreeItem","i","test","Name","FreeItem","IsPresent","badge","text","position","IsGWPBuyGift","PromotionDetails","length","InventoryName","Inventory","Discount","RetailPrice","TaxPrice","DetailDiscountAmount","TotalDiscount","nAmount","TaxAmount","UnitName","Unit","nQuantity","Quantity","nTaxPrice","nRetailPrice","showModal","that","ModalWraper","confirm","title","content","onOk","onCancel","handleOk","e","handleCancel","onCancelSettle","cancelState","setInventoryFocus","clean","handleCzkMoreData","params","_val","value11","czkInput","focus","setSelectionRange","id","append","ctMode","memberId","returnType","connectRfCard","setCurrentMode","updateCurrentMode","handleCzkData","handleMoreCzkCancel","setMoreCzkIndex","index","handleMoreCzkOk","updateCardInfo","loadCzk","mode","paymethodId","closeRfCard","calcMemberBalance","handleCzk","handleCzkOk","walletEnabled","cardTypeEnum","freePaymentPasswordStore","isNeedPassword","Keyboard","close","handleSetPwdCancel","handleSetModal","updataMemberInfo","queryPwd","ID","updateMemberInfo","resp","onPressEnterCzk","field","inputConfirmAmount","setPwdValue","handleBlur","isHorizontalPad","doms","document","getElementsByClassName","getElementById","console","log","showDjqModal","djq","calcCheckList","inputdjq","getCouponList","handleDjqOk","Differentiate","handleDjqCancel","djqs","checked","COUPON","setCurrentFocusAndAddPay","showJfdxModal","jid","djqmode","themode","IsRepelWithPoints","code","jfdx","handleJfdxOk","handleJfdxCancel","checkOfflineEnable","paymodes","isOffline","stores","offlineSys","currentPayMode","find","offlineDisable","onTabsClick2","bookType","memberInfo","hasmember","Code","omc","initData","wx","zfb","smzf","checkScanDisabled","bdisabled","onTabsClick","isDjqValidated","MultiPay","shouldSettlement","exchangeRate","forign","setCurrentFocusOnly","FORBIDDEN","NOTIFICATION","editModal","payId","changeFocusAndAddPay","setFocusAndSelection","onDelPay","storeType","info","delPay","handleChange","currentFocus","target","amountMaxLength","parseInt","isNaN","changeValue","val","max","reg","value1","split","onBlur","changeFocusOnly","onFocus","onFocusHack","appendCzkmode","bappend","djqChecked","q","calcDjqCheckValue","addDjq","checkCoupon","finally","ele","czkdebounced","cancel","onHotKeyClick1","onHotKeyClickModal","onHotKeyClick2","changeClickFocusOnly","onHotKeyEnter","notsettle","checkSettleDisabled","payIndex","displayPayModeList","SaoMaPayMode","filter","paymodeOb","findHaveNoModlePayType","findModlePayBySplice","currenIndex","symbol","findIndex","endCurrentMode","endCurrentModeOb","startCurrentModeOb","settleUnReturn","zIndex","__queryingModal","querySettleResult","destroy","Flag","setDtoID","settleSuccess","settleCanceled","clearVoucherData","received","charge","openCashBox","xianjin","_this","showTwoScreen","getScreenType","flag","isHorizontalSunMi","localStore","get","shift","Value","step","screenType","sunMi_PresentationManager","sendMessageToSecondScreen","nativeMs","setIpcRendererMethod","onSettleSuccess","getSettleGift","isFull","resp1","__loadingModal","MemberPoints","isMemberPointsReturn","message","Number","__successModal","onModalClose","dtype","dt","guestshow_enable","guestshow_clear","guestshow_welcome","guestshow_collect","guestshow_refund","guestshow_change","hasSuccess","other","replace","abs","price","qty","total","inv","wel","HardwareAPI","sendDataCusDisp","dataType","ret","args","promises","results","p","push","commit","handleUserInputs","isQuickPay","status","checkCharge","receivable","zeromode","value2","name","quickmode","SQBPAY","CSYH","inputConfirm","values","bTest","indexOf","reject","curmode","inputPwd","validePwd","fKeyboardOnOk","paymethodeId","blur","fKeyboardOnClose","keyboardOnOk","keyboardOnClose","changefn","setConfirmPwdValue","modal","onPressEnter","authCode","pwd","onPressEsc","maskClosable","keyboard","closable","width","isMobileEnvironment","height","inputAmount","btnDebounced","CustomerPhone","DistributionMode","Address","isEnableSerialNumber","resultObj","IsSerialNumber","IsBatch","IsQualityPeriod","Id","Member","Mobilephone","syncMemberInfoProcessor","openBuyerModal","btndebounced","onCzkChange","isNewRetailBCPos","setCardNo","czkKeyboardOnOk","onDjqChange","isKeyBorad","debounced","djqKeyboardOnOk","djqKeyboardOnClose","xianjinChange","inputTarget","inputTarget2","innerHTML","isNotFullBook","bookMaxValue","changeScanProduct","scanObj","startScan","onScanResult","el","setStateValue","submitHandler","onScanCzkResult","onScanDjqResult","getXianjinPayment","payType","getXianjinBalance","isStoredValueCard","BuyerPayFreight","PayIcon2","zl","getAttribute","isCancelFun","backdropStyle","prototypeDetailedClick","scan","checkCurrentModeHaveMutex","payTypeList","payTypeFilterList","filterType","disableUserMode","haveUseTypeList","xj","enabled","changeDecimalBuZero","number","bitNum","f_x","newBitNum","pow","round","s_x","toString","pos_decimal","editCzkModal","paymodesCarouselList","carouselStart","CarouseOut","CarouselTp","newParams","mapList","floor","modeList","modeIndex","renderToolbtn","handleprototypeCancel","select","couponClick","user","options","MemberMeStorageCardInputByKeyBoard","ICCardServer","ICCardPassword","PreSellOrBook","PercentageWhenBook","isStorageCardInputType","iCCardServer","iCCardPassword","isBook","percentageWhenBook","bind","setTimer","keypressStime","settlementVoucherStore","settlementMemberStore","initPaymodes","nextProps","clear","cardPsw","cardSec","cardKm","Minus","nonProductMap","temphtml","columns","dataIndex","ellipsis","product","Idinventory","reason","y","paymentType1","getNewValue","PayIcon","hasSMZF","hotkeyIndex","theArr","t","paymodeDisabled","paymodeSelected","checkThepaymode","omission","totalVariety","totalQuantity","quantityDetail","memberDisabled","noIsMinAmount","totalTaxAmount","settle","drawerStore","thisWaitPaidAmount","ExchangeIntegral","_hasSMZF","quickPay","isQuick","productsIsEmpty","moreToolbtns","pagination","spaceBetween","carouselStart2","quantity1","quantity2","quantity3","quantity4","sumQuantity","buyQuantity","returnQuantity","showAmount","sumRetailDetails","themodeHyczk","r","iconclass","OnlinePaymentAmount","isMemberPoints","hotKey","hotKeyBindClass","paddingBottom","maxHeight","body","clientHeight","hotKeyNotFilter","display","overchargesAmount","onlineamount","onKeyboardChange","mindex","hyczkFindIndex","hyczkList","lastStorageCardIndex","tm","sum","Add","cardNo","errinfo","keyCode","time","Date","parse","czkvalue","open","event","ref","inputNewAmount","promoMethodEnum","IsEnable","nominalAmount","tools","cutZero","discountPct","displayText","doorsill","expired","backgroundColor","buttonVisible","imgStyle","bonusPoints","steadCashIntegral","React","Component","contextTypes","PropTypes","object"],"mappings":"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","file":"settlement.js","sourcesContent":["import React from 'react'\r\nimport { observer } from 'mobx-react'\r\nimport _filter from 'lodash/filter';\r\nimport _map from 'lodash/map';\r\nimport _find from 'lodash/find';\r\nimport _findIndex from 'lodash/findIndex';\r\nimport _sortBy from 'lodash/sortBy';\r\nimport _forEach from 'lodash/forEach';\r\nimport _trim from 'lodash/trim';\r\nimport _truncate from 'lodash/truncate';\r\nimport _debounce from 'lodash/debounce';\r\nimport _ from 'lodash'\r\nimport _reduce from 'lodash/reduce';\r\nimport classnames from 'classnames'\r\nimport { Drawer, Modal, Carousel, Input, Button, Table } from 'antd';\r\nimport Message from '../message';\r\nimport asyncModal from './asyncModal';\r\nimport ModalWraper from '../modalWraper';\r\nimport { openLoadingModal,openQueryingModal,showSuccessModal, getRoundValue, getFixedNumber } from './utils';\r\nimport Keyboard from '../keyboard';\r\nimport NumKeyboard from '../keyboard/numKeyboard';\r\nimport NumKeyboardScan from '../keyboard/numKeyboardScan';\r\nimport NumkeyboardPassword from '../keyboard/numkeyboardPassword'\r\nimport Ticon from '../ticon';\r\nimport PropTypes from 'prop-types';\r\nimport Scan from '../scan';\r\nimport HardwareAPI from '../hardwareAPI';\r\nimport { nativeMs, env, localStore, stores } from 'mutants-microfx';\r\nimport { platform,enumController,tools} from 'mutants-util';\r\nimport { hotKey } from '../../index';\r\nimport { PosInitData } from 'tplus-poslogin';\r\nimport PrototypeTableModal from './prototypeTable/index';\r\nimport { ProgressState } from 'tplus-components-touch';\r\nimport MoreCzkTable from './moreCzkTable'\r\nconst hasElectron = (env.platform === env.constant.platform.electron);\r\n\r\n@observer\r\nclass Settlement extends React.Component {\r\n state = {\r\n visible: false ,\r\n czkVisible:false,\r\n djqVisible:false,\r\n jfdxVisible:false,\r\n moreCzkVisible: false,\r\n showSetPwdModal: false,\r\n prototypeVisible: false, // 优惠明细弹出框\r\n currentIndex:0,\r\n connectCardStatus: false, //连接IC卡状态\r\n connectCardError: '', //连接IC卡错误后记录错误信息\r\n amountChanged:false,\r\n type:0,\r\n isManualIntoAmount: PosInitData(\"IsManualIntoAmount\"),\r\n isXianjin: false,\r\n newPass: '',\r\n newPassConfirm: '',\r\n noAlreadyWarn: true,\r\n btnDissabled: true,\r\n confirmPwd: '',\r\n settleDisabled: false,\r\n protytypeCount: null,\r\n isPrototypeClick: false,\r\n dataSource: [],\r\n memberdata1: [],\r\n discountTotalAmount: null,\r\n discountRetailTotalAount: null,\r\n discountPrototypeTotalAmount: null,\r\n bquick: false,\r\n currentKey: null,\r\n couponLight: true,\r\n storageValue: '0.00',\r\n czkValue: null,\r\n isInputMember: false,\r\n selectedRowIndex: 0,\r\n isNotAutoFocus: true\r\n }\r\n // 复核结算方式快捷键列表\r\n compoundHotkeysList = (window.$.operationControl[5]? (window.$.operationControl[5].control || []):[]).map((key)=>{\r\n return key.toLocaleUpperCase();\r\n })\r\n\r\n hotkeydebounced = null;\r\n hotkeydebouncedPayMode = \"\";\r\n\r\n static contextTypes = {\r\n viewModel: PropTypes.object,\r\n stores: PropTypes.object,\r\n }\r\n\r\n currentInput = null;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.hasElectron = hasElectron;\r\n const { MemberMeStorageCardInputByKeyBoard, ICCardServer, ICCardPassword, PreSellOrBook, PercentageWhenBook} = stores.user.options.get('loginInfo') || {};\r\n this.isStorageCardInputType = MemberMeStorageCardInputByKeyBoard; // 仅储值卡是否禁用键盘输入,'0'为不禁用 '1'为禁用\r\n this.iCCardServer = parseInt(ICCardServer); // 启用IC卡:0为禁用 1为启用\r\n this.iCCardPassword = ICCardPassword; //IC卡密码\r\n this.isBook = PreSellOrBook == 'BOOK';\r\n this.percentageWhenBook = PercentageWhenBook;\r\n //移动端环境下,没有读取IC卡的方式。\r\n const { isHorizontalPad, isHorizontalSunMi } = platform || {};\r\n this.isHorizontalPad = !!isHorizontalPad;\r\n this.isHorizontalSunMi= !!isHorizontalSunMi;\r\n this.isMobileEnvironment = !!isHorizontalPad || !!isHorizontalSunMi;\r\n this.handleReadICard = this.handleReadICard.bind(this);\r\n this.setTimer = null;\r\n this.keypressStime = null;\r\n this.store = !(props.type == 1) ? stores.settlementVoucherStore : stores.settlementMemberStore;\r\n }\r\n\r\n componentDidMount() {\r\n this.store.initPaymodes(this.updateInput, this.props.type, this.props.MemberPoints);\r\n }\r\n\r\n componentDidUpdate() {\r\n this.resizeSettlementToolBtns()\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.amount != this.props.amount) {\r\n this.store.amountChanged(nextProps.amount);\r\n this.setState({ amountChanged: !this.state.amountChanged });\r\n }\r\n\r\n // 增加积分兑换和普通模式切换 重新获取支付方式\r\n if(nextProps.MemberPoints != this.props.MemberPoints){\r\n this.store.paymode.clear();\r\n this.store.initPaymodes(this.updateInput,this.props.type,nextProps.MemberPoints);\r\n }\r\n }\r\n\r\n //是否退货\r\n getIsReturn = () => {\r\n let dataModal = this.context && this.context.viewModel && this.context.viewModel.data;\r\n return dataModal.IdbusiType === 35 || dataModal.IdbusiType === 40; //40预售退货类型。\r\n }\r\n\r\n //原单退货状态\r\n getBoriginReturn = () => {\r\n const boriginReturn = this.context && this.context.viewModel && this.context.viewModel.data && JSON.getCellValue(this.context.viewModel.data, \"IsOriginalReturn\");\r\n return boriginReturn || false;\r\n }\r\n\r\n //非原单退货状态\r\n getNotBoriginReturn = () => {\r\n let isReturn = this.getIsReturn();\r\n let boriginReturn = this.getBoriginReturn();\r\n return isReturn && !boriginReturn;\r\n }\r\n\r\n //对结算按钮超出的处理\r\n resizeSettlementToolBtns = () => {\r\n const { newStyle } = this.store;\r\n const { isMemberStorePage } = this.props;\r\n let b = this.billingSettlementDocumnet;\r\n if (b && newStyle && !isMemberStorePage) {\r\n let bWidth = b.offsetWidth;\r\n let cWidth = 0;\r\n if (b.firstChild) {\r\n cWidth += b.firstChild.offsetWidth;\r\n }\r\n if (b.lastChild && b.lastChild.childNodes) {\r\n b.lastChild.childNodes.forEach(v => {\r\n cWidth += v.offsetWidth;\r\n })\r\n }\r\n if (b.lastChild) {\r\n // 原来bWidth < cWidth,过渡过程中右边按钮会隐藏,+20之后解决\r\n if (bWidth < cWidth + 20) {\r\n b.lastChild.className = 'btns voucherMode';\r\n } else {\r\n b.lastChild.className = 'btns';\r\n }\r\n }\r\n }\r\n }\r\n\r\n //IC卡连接\r\n connectRfCard() {\r\n //客户端环境下,并开启了启用IC卡。\r\n if (this.hasElectron === true && this.iCCardServer === 1) {\r\n nativeMs.setIpcRendererMethod('ConnectRfCard', null, ret => {\r\n let result = {}\r\n if (ret.status === 0) {\r\n result = { connectCardStatus: false, connectCardError: ret.value }\r\n } else {\r\n result = { connectCardStatus: true, connectCardError: '' };\r\n }\r\n this.setState(result)\r\n })\r\n }\r\n }\r\n //IC卡读取\r\n readRfCard() {\r\n //客户端环境下,并开启了启用IC卡。\r\n if (this.hasElectron === true && this.iCCardServer === 1) {\r\n const { connectCardStatus, connectCardError } = this.state;\r\n if (connectCardStatus === false) {\r\n Message.error(connectCardError ? connectCardError : '读取IC卡失败');\r\n this.connectRfCard(); //读取失败后,重新连接一下。\r\n return;\r\n }\r\n let params = { cardPsw: this.iCCardPassword, cardSec: 13, cardKm: 0 }\r\n nativeMs.setIpcRendererMethod('ReadRfCard', { ...params }, ret => {\r\n if (ret.status === 0) {\r\n Message.error(ret.value);\r\n this.connectRfCard(); //读取失败后,重新连接一下。\r\n return;\r\n } else if (ret.status === 1) {\r\n // this.searchMember(ret.value);\r\n // this.czkInput.input[\"value\"]=ret.value;\r\n this.setState({\r\n czkValue: ret.value\r\n })\r\n this.loadCzk(ret.value);\r\n }\r\n })\r\n }\r\n }\r\n\r\n //IC卡关闭\r\n closeRfCard(){\r\n if (this.hasElectron === true && this.iCCardServer === 1) {\r\n nativeMs.setIpcRendererMethod('CloseRfCard')\r\n }\r\n }\r\n\r\n handleReadICard = () => {\r\n this.readRfCard();\r\n }\r\n\r\n updateInput=()=>{\r\n let {currentMode}=this.store.paymode;\r\n if(this.state.jfdxVisible &¤tMode && currentMode.member.exchangable !== undefined ){\r\n this.inputkey=\"inputJfdxAmount\";\r\n this[\"inputJfdxAmount\"].input.value=currentMode && getFixedNumber(Math.min(currentMode.value,currentMode.maxamount,currentMode.member.exchangable))\r\n this.setCurrentModeValue(this.inputJfdxAmount.input.value,Math.min(currentMode.maxamount,currentMode.member.exchangable));\r\n }else if(this.state.czkVisible && currentMode && currentMode.value>=0 && currentMode.balance !== undefined){\r\n this.inputkey=\"inputCzkAmount\";\r\n this[\"inputCzkAmount\"] && this[\"inputCzkAmount\"].input && (this[\"inputCzkAmount\"].input.value=getFixedNumber(Math.min(currentMode.value,currentMode.maxamount,currentMode.balance)));\r\n const maxamount=Math.min(currentMode.maxamount,currentMode.balance);\r\n this.inputCzkAmount && this.inputCzkAmount.input && this.setCurrentModeValue(this.inputCzkAmount.input.value,maxamount);\r\n if(this.store.bquick && currentMode.storageCardNo && parseFloat(this.store.paymode.amount)>parseFloat(maxamount)){\r\n Message.error(\"本单最大可用储值卡结算金额为:\"+getFixedNumber(maxamount)+\",请使用复合结算!\", {\r\n duration: 4\r\n });\r\n setTimeout(() => {\r\n this.handleCzkCancel();\r\n setTimeout(() => { this.czkKeyboardOnClose() }, 150)\r\n }, 50);\r\n }\r\n }\r\n }\r\n\r\n payQuick = () => {\r\n const { currentKey } = this.state;\r\n const { PayStyle } = enumController.getEnumOj();\r\n this.store.init(this.props.type == 1 ? null : this.context, this.props.onHandleAmount, this.props.dataSource.Code_02, this.props.storeInfo, true, this.props.amount, this.props.type, this.props.dto,currentKey);\r\n let amount = this.store.paymode.amount;\r\n if (amount == 0) {\r\n this.settleZero();\r\n return;\r\n }\r\n if (currentKey == PayStyle.hyczk) {\r\n const { isProhibitMeStorageCard } = this.props;\r\n if (isProhibitMeStorageCard) {\r\n Message.warn('储值卡不可键盘录入,请刷卡!');\r\n return;\r\n }\r\n this.showCzkModal();\r\n } else {\r\n this.store.quickSettle(currentKey);\r\n this.handleSettle(\"quickPay\");\r\n }\r\n this.handleGuestShow(amount < 0 ? 2 : 3, amount);\r\n }\r\n\r\n quickSettle = (key)=>{\r\n const isAutoShowCouponWhenCash = PosInitData('IsAutoShowCouponWhenCash');\r\n this.setState({\r\n currentKey: key\r\n })\r\n const { isReturn, type } = this.props;\r\n Promise.resolve(!this.props.onValidate || this.props.onValidate({isNotAutoFocus: true, fn: (data)=>this.isNoProductTip(data)})).then(result=>{\r\n if (result) {\r\n this.setState({\r\n settleDisabled: false\r\n })\r\n if (type !== 1) {\r\n let count = this.handleShowPrototype();\r\n if (!isReturn && isAutoShowCouponWhenCash && count > 0) {\r\n this.setState({\r\n prototypeVisible: true,\r\n isNotAutoFocus: false\r\n })\r\n } else {\r\n this.payQuick();\r\n }\r\n } else {\r\n this.payQuick();\r\n }\r\n }\r\n })\r\n }\r\n\r\n checkIsIntegralExchange = () => {\r\n let { IdbusiType } = this.context.viewModel.data;\r\n return (IdbusiType === 37 || IdbusiType === 36);\r\n }\r\n\r\n payFun = () => {\r\n this.store.init(this.props.type == 1 ? null : this.context, this.props.onHandleAmount, this.props.dataSource.Code_02, this.props.storeInfo, false, this.props.amount, this.props.type, this.props.dto);\r\n let amount = this.store.paymode.amount;\r\n if (amount == 0) {\r\n this.settleZero();\r\n return;\r\n }\r\n this.setState({ visible: true });\r\n this.handleGuestShow(amount < 0 ? 2 : 3, amount);\r\n setTimeout(() => {\r\n this.handleDefault()\r\n let { paymode, brefund, newStyle } = this.store;\r\n let boriginReturn = this.getBoriginReturn();\r\n let thePaymodes = newStyle ? _filter(paymode.thePaymodes, (m) => { return !(this.checkModeDisabled(m.paymentType, brefund, boriginReturn) && parseFloat(m.value) == 0); }) : paymode.thePaymodes;\r\n this.setFocusAndSelectionMode(thePaymodes,-1);\r\n }, 100)\r\n }\r\n\r\n handleShowPrototype = () => {\r\n const pricePrecision = PosInitData(\"PricePrecision\");\r\n const quantityPrecision = PosInitData ('QuantityPrecision')\r\n const { RetailDetails, TotalTaxAmount } = this.context.viewModel.data;\r\n let dataSource = RetailDetails.map(o => Object.assign({}, o));\r\n let discountRetailTotalAount = null;\r\n let discountPrototypeTotalAmount = 0;\r\n let count = 0;\r\n dataSource && dataSource.forEach((item) => {\r\n let count1 = 0;\r\n item.ShowFreeItem = false;\r\n for (let i in item) {\r\n if (/FreeItem/.test(i)) {\r\n if (item[i] && item[i].Name) {\r\n count1++;\r\n item.ShowFreeItem = true;\r\n count1 === 1 ? item.FreeItem = item[i].Name : item.FreeItem += '/' + item[i].Name;\r\n }\r\n }\r\n }\r\n //有赠品的情况,不在考虑是否促销\r\n if (item.IsPresent) {\r\n item.badge = { text: '赠', position: 'leftTop', className: '' }\r\n } else if(item.IsGWPBuyGift) {\r\n item.badge = { text: '换', position: 'leftTop', className: '' }\r\n }else if (item.PromotionDetails && item.PromotionDetails.length > 0) {\r\n item.badge = { text: '促', position: 'leftTop', className: '' }\r\n } else {\r\n item.badge = { text: '', position: '', className: '' }\r\n }\r\n if (item.PromotionDetails && item.PromotionDetails.length > 0) {\r\n count++;\r\n }\r\n item.InventoryName = item.Inventory.Name;\r\n item.Discount = getRoundValue(item.RetailPrice - item.TaxPrice, pricePrecision);\r\n if (!item.IsPresent) {\r\n discountPrototypeTotalAmount += item.DetailDiscountAmount;\r\n item.TotalDiscount = item.DetailDiscountAmount;\r\n } else {\r\n item.TotalDiscount = 0;\r\n }\r\n //item.TotalDiscount = getFixedNumber(item.Discount * item.Quantity);\r\n item.nAmount = getFixedNumber(item.TaxAmount);\r\n item.UnitName = item.Unit.Name;\r\n item.nQuantity = getRoundValue(item.Quantity, quantityPrecision);\r\n item.nTaxPrice = getRoundValue(item.TaxPrice, pricePrecision);\r\n item.nRetailPrice = getRoundValue(item.RetailPrice, pricePrecision);\r\n })\r\n this.setState({\r\n dataSource,\r\n discountTotalAmount: getFixedNumber(this.props.amount),\r\n discountPrototypeTotalAmount: getFixedNumber(discountPrototypeTotalAmount),\r\n discountRetailTotalAount: getFixedNumber(this.props.amount + parseFloat(discountPrototypeTotalAmount))\r\n })\r\n return count;\r\n }\r\n\r\n showModal = () => {\r\n const { isReturn, type } = this.props;\r\n const isAutoShowCouponWhenCash = PosInitData('IsAutoShowCouponWhenCash')\r\n // 支持异步验证过程\r\n Promise.resolve( !this.props.onValidate || this.props.onValidate({fn: (data)=>this.isNoProductTip(data)})).then(result => {\r\n if (result) {\r\n this.setState({\r\n settleDisabled: false\r\n })\r\n if (type !== 1) {\r\n let count = this.handleShowPrototype();\r\n if (!isReturn && isAutoShowCouponWhenCash && count > 0) {\r\n this.setState({\r\n prototypeVisible: true,\r\n isNotAutoFocus: false\r\n })\r\n } else {\r\n this.payFun();\r\n }\r\n } else {\r\n this.payFun();\r\n }\r\n }\r\n })\r\n }\r\n\r\n settleZero=()=>{\r\n const that = this;\r\n //预售取货无需支付时省略弹框确认这一步\r\n let IdbusiType = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.IdbusiType;\r\n if(IdbusiType == 39){\r\n that.handleSettle(\"zero\");\r\n return;\r\n }\r\n ModalWraper.confirm({\r\n className: 'tplus-confirm-modal',\r\n title: '结算',\r\n content: '当前收款金额为0,确认结算?',\r\n onOk() {\r\n setTimeout(() => { that.handleSettle(\"zero\") }, 300)\r\n },\r\n onCancel() {\r\n\r\n },\r\n });\r\n }\r\n\r\n handleDefault=()=>{\r\n // let dmode=_find(this.store.paymode.paymodes,(mode)=>{return mode.isDefault});\r\n // if(dmode){\r\n // if(dmode.paymentType==PayStyle.hyczk){\r\n // this.onTabsClick(PayStyle.hyczk);\r\n // }else{\r\n // this.store.quickSettle(dmode.paymentType);\r\n // this.onTabsClick(dmode.paymentType);\r\n // }\r\n // }else if(this.store.member && this.store.member.ID && parseFloat(this.store.member.BalanceStorage)>0 &&\r\n // _find(this.store.paymode.paymodes,{'paymentType':PayStyle.hyczk})){\r\n // this.onTabsClick(PayStyle.hyczk);\r\n // // this.showCzkModal();\r\n // }\r\n\r\n // else if(_find(this.store.paymode.paymodes,{'paymentType':PayStyle.xianjin})){\r\n // this.store.quickSettle(PayStyle.xianjin);\r\n // this.onTabsClick(PayStyle.xianjin);\r\n // }\r\n if(this.store.newStyle){\r\n // this.onHotKeyEnter(null,true);\r\n }\r\n }\r\n\r\n handleOk = (e) => {\r\n this.setState({\r\n visible: false,\r\n });\r\n }\r\n\r\n handleCancel = (e) => {\r\n this.props.onCancelSettle && this.props.onCancelSettle();\r\n this.cancelState();\r\n this.setInventoryFocus();\r\n }\r\n\r\n cancelState=()=>{\r\n this.store.clean();\r\n this.setState({\r\n visible: false,\r\n });\r\n }\r\n\r\n handleCzkMoreData = (params) => {\r\n this._val=this.store.paymode.currentMode.value;\r\n let {currentMode}=this.store.paymode;\r\n const maxamount=Math.min(currentMode.maxamount,currentMode.balance);\r\n if(this.store.bquick && currentMode.storageCardNo && parseFloat(this.store.paymode.amount)>parseFloat(maxamount)){\r\n Message.error(\"本单最大可用储值卡结算金额为:\"+getFixedNumber(maxamount)+\",请使用复合结算!\",{\r\n duration: 4\r\n });\r\n } else {\r\n if (params) {\r\n this.setState({\r\n czkVisible: true,\r\n });\r\n }\r\n const { brefund } = this.store;\r\n let value11 = currentMode && getFixedNumber(brefund?currentMode.value:Math.min(currentMode.value,currentMode.maxamount,currentMode.balance));\r\n this.setState({\r\n storageValue: value11\r\n })\r\n if (currentMode.storageCardNo) {\r\n this.setState({\r\n czkValue: currentMode.storageCardNo\r\n })\r\n } else {\r\n this.setState({\r\n czkValue: null\r\n })\r\n }\r\n }\r\n if (params) {\r\n setTimeout(() => {\r\n if(!currentMode.storageCardNo){\r\n this.czkInput && this.czkInput.input.focus()\r\n }else{\r\n if(this.inputCzkAmount && this.inputCzkAmount.input){\r\n this.inputCzkAmount.input.focus();\r\n this.inputCzkAmount.input.setSelectionRange(0, this.inputCzkAmount.input.value.length);\r\n }\r\n }\r\n }, 500)\r\n }\r\n }\r\n\r\n //czk\r\n showCzkModal = async (id,append) => {\r\n const { isInputMember } = this.state || {};\r\n const { PayStyle } = enumController.getEnumOj();\r\n const ctMode = this.store && this.store.paymode && this.store.paymode.currentMode;\r\n const memberId = ctMode && ctMode.memberId;\r\n const returnType = this.getNotBoriginReturn();\r\n this.connectRfCard();\r\n this.store.setCurrentMode(id, PayStyle.hyczk, append);\r\n let memberdata1 = isInputMember && memberId && await this.store.updateCurrentMode(memberId, returnType);\r\n this.setState({ czkVisible: true });\r\n if (memberdata1 && memberdata1.length === 1) {\r\n this.handleCzkMoreData(true);\r\n this.store.handleCzkData(memberdata1[0]);\r\n } else if (memberdata1 && memberdata1.length >= 1) {\r\n this.setState({\r\n moreCzkVisible: true,\r\n memberdata1: memberdata1\r\n });\r\n } else {\r\n this.setState({\r\n });\r\n setTimeout(() => {\r\n this.czkInput && this.czkInput.input.focus()\r\n }, 300)\r\n }\r\n }\r\n\r\n handleMoreCzkCancel = () => {\r\n this.setState({\r\n moreCzkVisible: false,\r\n selectedRowIndex: 0\r\n });\r\n setTimeout(() =>{\r\n this.czkInput && this.czkInput.input.focus();\r\n }, 300)\r\n }\r\n\r\n setMoreCzkIndex = (index) => {\r\n this.setState({\r\n selectedRowIndex: index\r\n })\r\n }\r\n\r\n handleMoreCzkOk = () => {\r\n const { memberdata1, selectedRowIndex } = this.state;\r\n this.store.paymode.updateCardInfo(memberdata1[selectedRowIndex]);\r\n this.handleCzkMoreData();\r\n this.store.handleCzkData(memberdata1[selectedRowIndex]);\r\n this.setState({\r\n moreCzkVisible: false,\r\n selectedRowIndex: 0\r\n })\r\n }\r\n\r\n handleCzkData = async () => {\r\n this.setState({\r\n isInputMember: false\r\n })\r\n const { PayStyle } = enumController.getEnumOj();\r\n if (!this.store.paymode.currentMode.storageCardNo) {\r\n const returnType = this.getNotBoriginReturn();\r\n await this.store.loadCzk(this.czkInput.input.value, returnType);\r\n }\r\n if (!this.store.paymode.currentMode.storageCardNo) {\r\n Message.error(\"请录入储值卡!\");\r\n return;\r\n }\r\n if (_find(this.store.paymode.thePaymodes, (mode) => {\r\n return mode.paymethodId != this.store.paymode.currentMode.paymethodId &&\r\n mode.paymentType == PayStyle.hyczk &&\r\n mode.storageCardNo == this.store.paymode.currentMode.storageCardNo\r\n })) {\r\n Message.error(\"该储值卡已使用。\");\r\n return;\r\n }\r\n if (this.store.bquick && this.store.paymode.amount != this.store.paymode.currentMode.value) {\r\n Message.error(\"实收金额应等于应收金额。\");\r\n return;\r\n }\r\n\r\n this.setState({\r\n czkVisible: false,\r\n storageValue: '0.00',\r\n czkValue: null\r\n });\r\n this.closeRfCard();\r\n this.store.paymode.calcMemberBalance();\r\n this.handleCzk();\r\n }\r\n\r\n handleCzkOk = async (e) => {\r\n // 判断是否有密码\r\n const { walletEnabled, cardTypeEnum, freePaymentPasswordStore, isNeedPassword } = this.store.paymode.currentMode;\r\n if (cardTypeEnum === 'BALANCE_CARD' && freePaymentPasswordStore) {\r\n this.handleCzkData();\r\n } else if (cardTypeEnum === 'BALANCE_CARD' && !walletEnabled) {\r\n this.setState({\r\n showSetPwdModal: true,\r\n btnDissabled: true\r\n })\r\n } else {\r\n this.handleCzkData();\r\n }\r\n }\r\n\r\n handleCzkCancel = (e) => {\r\n if(this.store.bquick){\r\n this.props.onCancelSettle && this.props.onCancelSettle();\r\n this.store.clean();\r\n }\r\n this.setState({\r\n czkVisible: false,\r\n storageValue: '0.00',\r\n czkValue: null\r\n });\r\n this.closeRfCard();\r\n Keyboard.close();\r\n this.setInventoryFocus();\r\n }\r\n\r\n handleSetPwdCancel = () => {\r\n this.setState({\r\n showSetPwdModal: false\r\n })\r\n }\r\n\r\n handleSetModal = async () => {\r\n const { newPass, newPassConfirm, isInputMember } = this.state;\r\n const { updataMemberInfo } = this.props;\r\n const result = await this.store.queryPwd(newPass, newPassConfirm)\r\n const { cardTypeEnum } = this.store.paymode.currentMode;\r\n if (result) {\r\n this.setState({\r\n showSetPwdModal: false,\r\n czkVisible: true,\r\n newPass: '',\r\n newPassConfirm: ''\r\n })\r\n Message.warn('设置成功')\r\n this.handleCzkData();\r\n setTimeout(() => {\r\n if(this.inputCzkAmount && this.inputCzkAmount.input){\r\n this.inputCzkAmount.input.focus();\r\n this.inputCzkAmount.input.setSelectionRange(0, this.inputCzkAmount.input.value.length);\r\n }\r\n }, 350)\r\n if (isInputMember && this.store.member.ID) {\r\n let resp = await this.store.updateMemberInfo(this.store);\r\n updataMemberInfo(resp);\r\n }\r\n if (cardTypeEnum === 'BALANCE_CARD') {\r\n this.store.paymode.updateCardInfo();\r\n }\r\n this.setState({\r\n isInputMember: false\r\n })\r\n }\r\n }\r\n\r\n onPressEnterCzk = (field) => {\r\n const { newPass = '', newPassConfirm = '' } = this.state || {};\r\n if (field === 'newPass' && newPass.length === 6) {\r\n this.inputConfirmAmount.input.focus();\r\n }\r\n if (field === 'newPassConfirm' && newPassConfirm.length === 6 && newPass.length === 6 && newPass === newPassConfirm) {\r\n this.handleSetModal();\r\n }\r\n }\r\n\r\n setPwdValue = (field, value) => {\r\n if (!/^[0-9]*$/.test(value)) {\r\n return;\r\n }\r\n this.setState({\r\n [field]: value\r\n }, () => {\r\n const { newPass = '', newPassConfirm = '' } = this.state || {};\r\n if (newPassConfirm.length=== 6 && newPass.length === 6 && newPass === newPassConfirm) {\r\n this.setState({\r\n btnDissabled: false\r\n })\r\n }\r\n })\r\n }\r\n\r\n handleBlur = (field) => {\r\n const { newPass = '', newPassConfirm = '' } = this.state || {};\r\n setTimeout(() => {\r\n const { showSetPwdModal } = this.state || {};\r\n if (!showSetPwdModal) return;\r\n if (field=== 'newPass' && newPass.length < 6) {\r\n this.setState({\r\n btnDissabled: true\r\n })\r\n Message.warn('请输入6位新密码!')\r\n } else {\r\n if (field === 'newPassConfirm') {\r\n if (newPass !== newPassConfirm) {\r\n this.setState({\r\n btnDissabled: true\r\n })\r\n Message.warn('密码输入不一致,请重新输入!')\r\n }\r\n }\r\n }\r\n if (newPassConfirm.length=== 6 && newPass.length === 6 && newPass === newPassConfirm) {\r\n this.setState({\r\n btnDissabled: false\r\n })\r\n }\r\n }, 80);\r\n }\r\n\r\n //关闭弹框时,执行此方法,把焦点设定到商品录入框\r\n setInventoryFocus = () => {\r\n if (!!this.isHorizontalPad) return;\r\n let doms = document.getElementsByClassName('app hot-key-focus-container');\r\n let input = document.getElementById('productPoint');\r\n if (input) setTimeout(() => { if (doms && doms.length > 0) {console.log('settlement--setInventory==Focus=='); input.focus() } }, 300);\r\n }\r\n\r\n //djq\r\n showDjqModal = (id) => {\r\n // if(!this.store.member || !this.store.member.Uid){\r\n // Message.error('请先输入会员再使用优惠券结算!');\r\n // return ;\r\n // }\r\n const { PayStyle } = enumController.getEnumOj();\r\n this.store.setCurrentMode(id,PayStyle.djq);\r\n this.setState({\r\n djqVisible: true,\r\n couponLight: true,\r\n });\r\n this.store.paymode.calcCheckList();\r\n setTimeout(() => {\r\n this.inputdjq && this.inputdjq.input && this.inputdjq.input.focus()\r\n }, 200)\r\n\r\n // TODO: 测试优惠券支付\r\n if (!this.store.paymode.currentMode.boriginReturn) {\r\n this.store.getCouponList();\r\n }\r\n }\r\n\r\n handleDjqOk = (e) => {\r\n const { PayStyle, Differentiate } = enumController.getEnumOj();\r\n if(this.store.paymode.currentMode.boriginReturn){\r\n this.handleDjqCancel(e);\r\n return;\r\n }\r\n if(_filter(this.store.paymode.currentMode.djqs,(djq)=>{return djq.checked}).length==0){\r\n Message.error(`请录入并使用${Differentiate.COUPON}。`);\r\n return ;\r\n }\r\n if(parseFloat(this.store.paymode.currentMode.value)>parseFloat(this.store.paymode.currentMode.maxamount)){\r\n Message.error(`超过了${Differentiate.COUPON}可支付的最大金额。`);\r\n return ;\r\n }\r\n this.setState({\r\n djqVisible: false,\r\n });\r\n this.setCurrentFocusAndAddPay(PayStyle.djq);\r\n }\r\n\r\n handleDjqCancel = (e) => {\r\n this.setState({\r\n djqVisible: false,\r\n });\r\n }\r\n\r\n //jfdx\r\n showJfdxModal = (jid) => {\r\n const { PayStyle, Differentiate } = enumController.getEnumOj();\r\n let id=this.store.newStyle? -1 : jid;\r\n if(!this.store.member || !this.store.member.ID){\r\n Message.error('请先输入会员再使用会员积分抵现结算!');\r\n return ;\r\n }\r\n let djqmode=_find(this.store.paymode.thePaymodes,(themode)=>{return themode.paymentType==PayStyle.djq;});\r\n let djq=djqmode && _find(djqmode.djqs,(djq)=>{return !djq.IsRepelWithPoints});\r\n if(djq){\r\n Message.error(`${Differentiate.COUPON}(${djq.code})不可与积分一起使用`);\r\n return ;\r\n }\r\n this.store.setCurrentMode(id,PayStyle.jfdx);\r\n this._val=this.store.paymode.currentMode.value;\r\n this.setState({\r\n jfdxVisible: true,\r\n });\r\n setTimeout(() => {\r\n this.inputJfdxAmount.input.focus();\r\n this.inputJfdxAmount.input.setSelectionRange(0, this.inputJfdxAmount.input.value.length);\r\n }, 300)\r\n }\r\n\r\n handleJfdxOk = (e) => {\r\n this.setState({\r\n jfdxVisible: false,\r\n });\r\n //this.setCurrentFocusAndAddPay(PayStyle.jfdx);\r\n this.handleCzk();\r\n }\r\n\r\n handleJfdxCancel = (e) => {\r\n this.setState({\r\n jfdxVisible: false,\r\n });\r\n }\r\n\r\n checkOfflineEnable = (paymode,key) => {\r\n const { paymodes } = paymode || {};\r\n const { isOffline} = stores.offlineSys;\r\n if(isOffline){\r\n if(paymodes){\r\n const currentPayMode = paymodes.find(item=> item.paymentType === key);\r\n if(currentPayMode && !currentPayMode.offlineDisable){\r\n return true\r\n }else{\r\n Message.warn(`离线模式下不支持此结算方式`);\r\n return false;\r\n }\r\n }\r\n Message.warn(`离线模式下结算方式数据错误`);\r\n return false;\r\n }else{\r\n return true;\r\n }\r\n\r\n }\r\n\r\n onTabsClick2 = (paymode, brefund, themode, key, bookType) => {\r\n const { PayStyle, Differentiate } = enumController.getEnumOj();\r\n paymode.currentMode = null;\r\n switch (key) {\r\n case PayStyle.hyczk:\r\n this.setState({\r\n isInputMember: true\r\n },() => {\r\n this.showCzkModal(-1);\r\n })\r\n break;\r\n case PayStyle.jfdx:\r\n this.showJfdxModal(-1);\r\n break;\r\n case PayStyle.djq:\r\n let memberInfo = this.store && this.store.member;\r\n let hasmember = (memberInfo.ID || memberInfo.Code || memberInfo.Name) ? true : false;\r\n let omc = this.props.initData(\"OnlyMemberCanUseCoupon\")\r\n if (omc && !hasmember) {\r\n Message.warn(`仅会员可以使用${Differentiate.COUPON},请录入会员!`);\r\n return;\r\n }\r\n this.showDjqModal(-1);\r\n break;\r\n case PayStyle.wx:\r\n if (_find(paymode.thePaymodes, (mode) => { return mode.paymentType === PayStyle.zfb || mode.paymentType === PayStyle.smzf})) {\r\n Message.error('已使用了其他的付款码支付,不可以再使用微信了。');\r\n } else {\r\n this.setCurrentFocusAndAddPay(key, bookType);\r\n }\r\n break;\r\n case PayStyle.zfb:\r\n if (_find(paymode.thePaymodes, (mode) => { return mode.paymentType === PayStyle.wx || mode.paymentType === PayStyle.smzf })) {\r\n Message.error('已使用了其他的付款码支付,不可以再使用支付宝了。');\r\n } else {\r\n this.setCurrentFocusAndAddPay(key, bookType);\r\n }\r\n break;\r\n case PayStyle.smzf:\r\n if (_find(paymode.thePaymodes, (mode) => { return mode.paymentType === PayStyle.zfb || mode.paymentType === PayStyle.wx})) {\r\n Message.error('已使用了其他的付款码支付,不可以再使用扫码支付了。');\r\n } else {\r\n this.setCurrentFocusAndAddPay(key, bookType);\r\n }\r\n break;\r\n default:\r\n this.setCurrentFocusAndAddPay(key, bookType);\r\n break;\r\n }\r\n }\r\n\r\n checkScanDisabled=(key)=>{\r\n const { paymode, newStyle } = this.store;\r\n const { PayStyle } = enumController.getEnumOj();\r\n let bdisabled=false;\r\n if(!newStyle){\r\n return bdisabled;\r\n }\r\n switch (key) {\r\n case PayStyle.wx:\r\n if (_find(paymode.thePaymodes, (mode) => { return (mode.paymentType === PayStyle.zfb || mode.paymentType === PayStyle.smzf) && parseFloat(mode.value)!=0 })) {\r\n bdisabled=true;\r\n }\r\n break;\r\n case PayStyle.zfb:\r\n if (_find(paymode.thePaymodes, (mode) => { return (mode.paymentType === PayStyle.wx || mode.paymentType === PayStyle.smzf) && parseFloat(mode.value)!=0 })) {\r\n bdisabled=true;\r\n }\r\n break;\r\n case PayStyle.smzf:\r\n if (_find(paymode.thePaymodes, (mode) => { return (mode.paymentType === PayStyle.zfb || mode.paymentType === PayStyle.wx) && parseFloat(mode.value)!=0 })) {\r\n bdisabled=true;\r\n }\r\n break;\r\n }\r\n return bdisabled;\r\n }\r\n\r\n onTabsClick = (key, bookType) => {\r\n if (!this.isDjqValidated(key)) { return };\r\n const { paymode, brefund, boriginReturn } = this.store;\r\n const { PayStyle, Differentiate } = enumController.getEnumOj();\r\n if (key === PayStyle.hyczk) {\r\n const { isProhibitMeStorageCard } = this.props;\r\n if (isProhibitMeStorageCard) {\r\n Message.warn('储值卡不可键盘录入,请刷卡!');\r\n return;\r\n }\r\n }\r\n const { MultiPay } = enumController.getEnumOj();\r\n const { noAlreadyWarn } = this.state;\r\n if(!stores.offlineSys.shouldSettlement(key)) return false;\r\n\r\n if (this.checkModeDisabled(key, brefund, boriginReturn)) {\r\n return;\r\n }\r\n let themode = _find(paymode.paymodes, { 'paymentType': key });\r\n //预订非全款不可使用零售抵现类支付方式\r\n // if(bookType == 'bookPay' && this.store.paymode.isNotFullOnlyBook && themode.virtualPay){\r\n // return Message.error(\"付订金时不可使用零售抵现类结算方式!\");\r\n // }\r\n if (themode.exchangeRate != 1) {\r\n let forign = _find(paymode.thePaymodes, (mode) => { return mode.exchangeRate != 1 && mode.paymentType != key });\r\n if (forign) {\r\n Message.error(\"只允许一种外币结算。\");\r\n return;\r\n }\r\n }\r\n themode = _find(paymode.thePaymodes, (mode) => { return mode.paymentType === key });\r\n const that = this;\r\n if (themode) {\r\n this.setCurrentFocusOnly(key);\r\n return;\r\n } else if (paymode.thePaymodes.length >= 1) {\r\n switch (this.props.initData(\"multiPay\")) {\r\n case MultiPay.FORBIDDEN:\r\n Message.error(\"当前设置为不支持多种结算方式。\");\r\n break;\r\n case MultiPay.NOTIFICATION:\r\n noAlreadyWarn ? ModalWraper.confirm({\r\n className: 'tplus-confirm-modal',\r\n title: '复合结算',\r\n content: '您确定要使用多种结算方式吗?',\r\n onOk() {\r\n that.setState({\r\n noAlreadyWarn: false\r\n })\r\n that.onTabsClick2(paymode, brefund, themode, key, bookType);\r\n },\r\n onCancel() {\r\n },\r\n }) : that.onTabsClick2(paymode, brefund, themode, key, bookType);\r\n break;\r\n default:\r\n this.onTabsClick2(paymode, brefund, themode, key, bookType);\r\n break;\r\n }\r\n } else {\r\n this.onTabsClick2(paymode, brefund, themode, key, bookType);\r\n }\r\n }\r\n\r\n editModal = (id,type,boriginReturn)=>{\r\n this.setState({currentIndex:id});\r\n const { PayStyle } = enumController.getEnumOj();\r\n switch(type){\r\n case PayStyle.hyczk:\r\n !boriginReturn && this.showCzkModal(id);\r\n break;\r\n case PayStyle.jfdx:\r\n !boriginReturn && this.showJfdxModal(id);\r\n break;\r\n case PayStyle.djq:\r\n this.showDjqModal(id);\r\n break;\r\n }\r\n }\r\n\r\n setCurrentFocusAndAddPay = (key, bookType, payId) => {\r\n this.store.changeFocusAndAddPay(key, bookType);\r\n if(this.store.bquick){\r\n this.handleSettle(\"quickPay\");\r\n }else{\r\n this.setFocusAndSelection(key, payId);\r\n }\r\n }\r\n\r\n onDelPay = (index,boriginReturn,type, bookType) => {\r\n const { PayStyle } = enumController.getEnumOj();\r\n const { type: storeType } = this.props\r\n if(storeType != 1 && boriginReturn && (type==PayStyle.hyczk || type==PayStyle.djq || type==PayStyle.jfdx)){\r\n Message.info('原单退货时,该结算方式不可以删除。');\r\n }else{\r\n this.store.delPay(index, bookType);\r\n }\r\n }\r\n\r\n handleChange = (index, e, type) => {\r\n if(!stores.offlineSys.shouldSettlement(this.store.paymode.currentFocus)) return;\r\n let mode=_find(this.store.paymode.thePaymodes,{'paymethodId':index});\r\n // if(type == 'bookPay' && this.store.paymode.isNotFullOnlyBook && mode.virtualPay){\r\n // return Message.error(\"付订金时不可使用零售抵现类结算方式!\");\r\n // }\r\n let currentInput = e.target;\r\n let amountMaxLength = parseInt(this.props.initData[\"AmountMaxLength\"] || 10);\r\n if (!isNaN(e.target.value) || e.target.value == '-') {\r\n if (e.target.value.length <= amountMaxLength) {\r\n this.store.changeValue(index, e.target.value, false, type);\r\n }\r\n }\r\n }\r\n\r\n setCurrentModeValue=(val,max)=>{\r\n const returnType = this.getNotBoriginReturn();\r\n const { PayStyle } = enumController.getEnumOj();\r\n let reg = returnType ? /^[\\d.-]+$/g : /^[\\d.]+$/g;\r\n if (this.store.paymode.currentMode.paymentType === PayStyle.hyczk || this.store.paymode.currentMode.paymentType === PayStyle.jfdx) {\r\n if (!val) {\r\n this.setState(({\r\n storageValue: val\r\n }))\r\n } else {\r\n if (!reg.test(val)) {\r\n return;\r\n } else {\r\n let value1 = val.split('.') ;\r\n if (value1.length > 1) {\r\n if (value1[1].length < 3) {\r\n this.setState({\r\n storageValue: val\r\n })\r\n } else {\r\n return;\r\n }\r\n } else {\r\n if (val.length > 9) {\r\n return\r\n } else {\r\n this.setState({\r\n storageValue: val\r\n })\r\n }\r\n }\r\n }\r\n }\r\n }\r\n this.store.paymode.setCurrentModeValue(val,max);\r\n }\r\n\r\n onBlur = (index, e, type) => {\r\n this.currentInput = null;\r\n this.store.changeFocusOnly(-1);\r\n this.store.changeValue(index, e.target.value == '-' ? 0 : e.target.value, true, type);\r\n }\r\n\r\n onFocus = (index, mode, paymode, e) => {\r\n this.currentInput = e.target;\r\n this.setState({ currentIndex: index });\r\n if (mode.paymentType == paymode.currentFocus) return;\r\n this.setCurrentFocusOnly(mode.paymentType);\r\n }\r\n\r\n onFocusHack = (index, mode, paymode, e) => {\r\n this.currentInput = e.target;\r\n this.setState({ currentIndex: index });\r\n if (mode.paymentType == paymode.currentFocus) return;\r\n this.store.changeFocusOnly(mode.paymentType);\r\n }\r\n\r\n setCurrentFocusOnly =(key)=>{\r\n this.store.changeFocusOnly(key);\r\n this.setFocusAndSelection(key);\r\n }\r\n\r\n appendCzkmode=(boriginReturn, params)=>{\r\n const { PayStyle } = enumController.getEnumOj();\r\n if(boriginReturn){\r\n Message.info('原单退货时不可以使用非原单的储值卡结算方式。');\r\n return ;\r\n }\r\n let bappend=true;\r\n const { paymode, newStyle, member } = this.store;\r\n if(newStyle && member.ID && _findIndex(paymode.thePaymodes, (mode) => {return mode.paymentType === PayStyle.hyczk && mode.member.id==member.ID} )==-1){\r\n bappend=false;\r\n }\r\n this.showCzkModal(-1,bappend, params);\r\n }\r\n\r\n djqChecked=(q, dto)=>{\r\n const { Differentiate } = enumController.getEnumOj()\r\n if(this.store.paymode.currentMode.boriginReturn){\r\n Message.info(`原单退货时${Differentiate.COUPON}不可以取消。`);\r\n return ;\r\n }\r\n this.store.paymode.calcDjqCheckValue(q, this.store.dto);\r\n // this.props.onGetCouponList && this.props.onGetCouponList(this.store.dto, _filter(this.store.paymode.currentMode.djqs,(djq)=>{return djq.couponCategoryEnum !== 'RIGHT'}));\r\n // this.props.onGetCouponList && this.props.onGetCouponList(this.store.dto, _filter(this.store.paymode.currentMode.djqs,(djq)=>{return djq.checked}), this.store.paymode.currentMode.djqs);\r\n }\r\n\r\n addDjq=()=>{\r\n //document.getElementById(`inputS${index}`)\r\n //const v = _trim(this['inputdjq']['input']['value']);\r\n //api\r\n // this.store.addDjq('10000','5元优惠券',5,'无门槛','2019-12-31',true);\r\n const v=_trim(this.inputdjq.input.value);\r\n // if(v===''){\r\n // return ;\r\n // }\r\n this.store.checkCoupon(v).then(()=>{\r\n this.inputdjq.input.focus();\r\n }).finally(() => {\r\n setTimeout(() => {\r\n this.inputdjq.input.value='';\r\n let ele = document.getElementById('djqInput');\r\n ele.value = '';\r\n }, 100)\r\n })\r\n }\r\n\r\n loadCzk = (v) => {\r\n if (this.czkdebounced) {\r\n return;\r\n }\r\n this.czkdebounced = _debounce(async () => {\r\n const returnType = this.getNotBoriginReturn();\r\n let memberdata1 = await this.store.loadCzk(v, returnType);\r\n if (memberdata1 && memberdata1.length === 1) {\r\n if (this.store.paymode.currentMode.storageCardNo) {\r\n this.setState({\r\n czkValue: this.store.paymode.currentMode.storageCardNo\r\n })\r\n }\r\n } else if (memberdata1 && memberdata1.length >= 1) {\r\n this.setState({\r\n czkVisible: true,\r\n moreCzkVisible: true,\r\n memberdata1: memberdata1\r\n });\r\n }\r\n }, 1000, {\r\n 'leading': true,\r\n 'trailing': false\r\n });\r\n this.czkdebounced();\r\n setTimeout(() => {\r\n this.czkdebounced.cancel();\r\n this.czkdebounced = null;\r\n }, 2000)\r\n }\r\n \r\n isDjqValidated(key) {\r\n const { paymode } = this.store;\r\n const { PayStyle } = enumController.getEnumOj();\r\n if (key === PayStyle.djq && Math.Minus(paymode.received, paymode.amount) > 0) {\r\n Message.warn('实收金额已大于应收金额,不允许使用优惠券');\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n onHotKeyClick1=(mode,index,boriginReturn,bookType)=>{\r\n if (!this.isDjqValidated(mode.paymentType)){ return };\r\n // if (bookType == 'bookPay' && this.store.paymode.isNotFullOnlyBook && mode.virtualPay){\r\n // return Message.error(\"付订金时不可使用零售抵现类结算方式!\");\r\n // }\r\n if(!stores.offlineSys.shouldSettlement(mode.paymentType)) return false;\r\n if(this.hotkeydebouncedPayMode == mode){\r\n return;\r\n }\r\n if(this.hotkeydebounced){\r\n this.hotkeydebounced.cancel();\r\n this.hotkeydebounced=null;\r\n }\r\n this.hotkeydebounced=_debounce(()=>{\r\n this.hotkeydebouncedPayMode = mode;\r\n this.onHotKeyClickModal(mode,index,boriginReturn);\r\n },500,{\r\n 'leading': true,\r\n 'trailing': false\r\n });\r\n this.hotkeydebounced();\r\n setTimeout(()=>{\r\n this.hotkeydebounced.cancel();\r\n this.hotkeydebounced=null;\r\n this.hotkeydebouncedPayMode = \"\";\r\n },1000)\r\n }\r\n\r\n onHotKeyClickModal=(mode,index,boriginReturn)=>{\r\n const { PayStyle } = enumController.getEnumOj();\r\n let { brefund } = this.store;\r\n if(this.checkModeDisabled(mode.paymentType,brefund,boriginReturn)){\r\n return;\r\n }\r\n if(mode.paymentType==PayStyle.hyczk){\r\n this.appendCzkmode(boriginReturn);\r\n }else{\r\n this.editModal(index, mode.paymentType, boriginReturn)\r\n }\r\n }\r\n\r\n onHotKeyClick2=(index,mode,paymode,e, bookType)=>{\r\n if(!stores.offlineSys.shouldSettlement(mode.paymentType)) return false;\r\n if(this.hotkeydebouncedPayMode == mode){\r\n return;\r\n }\r\n // if (bookType == 'bookPay' && this.store.paymode.isNotFullOnlyBook && mode.virtualPay){\r\n // return Message.error(\"付订金时不可使用零售抵现类结算方式!\");\r\n // }\r\n this.store.changeClickFocusOnly(mode.paymentType);\r\n this.setCurrentFocusOnly(mode.paymentType);\r\n if(this.hotkeydebounced){\r\n this.hotkeydebounced.cancel();\r\n this.hotkeydebounced=null;\r\n }\r\n this.hotkeydebounced=_debounce(()=>{\r\n this.hotkeydebouncedPayMode = mode;\r\n this.onFocus(index, mode, paymode, e);\r\n },500,{\r\n 'leading': true,\r\n 'trailing': false\r\n });\r\n this.hotkeydebounced();\r\n setTimeout(()=>{\r\n this.hotkeydebounced.cancel();\r\n this.hotkeydebounced=null;\r\n this.hotkeydebouncedPayMode = \"\";\r\n },1000)\r\n }\r\n\r\n onHotKeyEnter = (e, notsettle) => {\r\n let { paymode, brefund, newStyle } = this.store;\r\n // if (this.hotkeydebouncedPayMode == paymode) {\r\n // return;\r\n // }\r\n if (this.hotkeydebounced) {\r\n this.hotkeydebounced.cancel();\r\n this.hotkeydebounced = null;\r\n }\r\n this.hotkeydebounced = _debounce(() => {\r\n let boriginReturn = this.getBoriginReturn();\r\n let thePaymodes = newStyle ? _filter(paymode.thePaymodes, (m) => { return !(this.checkModeDisabled(m.paymentType, brefund, boriginReturn) && parseFloat(m.value) == 0); }) : paymode.thePaymodes;\r\n // 定义当前检测的paymode\r\n this.hotkeydebouncedPayMode = paymode;\r\n if (!notsettle && !this.checkSettleDisabled(paymode, thePaymodes)) {\r\n this.handleSettle();\r\n } else if ((thePaymodes || []).length > 0) {\r\n // 根据currentIndex = paymethodeId 获取当前支付方式位置\r\n let payIndex = -1;\r\n thePaymodes.forEach((paymodes, index) => {\r\n if (paymodes.paymethodId == this.state.currentIndex) payIndex = index;\r\n });\r\n this.setFocusAndSelectionMode(thePaymodes, payIndex);\r\n }\r\n }, 500, {\r\n 'leading': true,\r\n 'trailing': false\r\n });\r\n this.hotkeydebounced();\r\n setTimeout(() => {\r\n this.hotkeydebounced && this.hotkeydebounced.cancel();\r\n this.hotkeydebounced = null;\r\n this.hotkeydebouncedPayMode = \"\";\r\n }, 1000)\r\n }\r\n\r\n setFocusAndSelectionMode = (thePaymodes,currentIndex) => {\r\n const { PayStyle } = enumController.getEnumOj();\r\n let displayPayModeList = [...thePaymodes];\r\n // 复制支付方式列表\r\n const SaoMaPayMode = displayPayModeList.find( mode => mode.paymentType == PayStyle.smzf);\r\n // 查找扫码支付\r\n if(SaoMaPayMode){\r\n // 如果扫码支付存在 则 排除微信支付宝\r\n displayPayModeList = displayPayModeList.filter( mode => mode.paymentType != PayStyle.zfb && mode.paymentType != PayStyle.wx )\r\n }\r\n // 查找到下一次enter键后的支付方式\r\n let paymodeOb = this.findHaveNoModlePayType(displayPayModeList,currentIndex);\r\n if(paymodeOb){\r\n // 获取焦点\r\n this.setFocusAndSelection(paymodeOb.mode.paymentType);\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param {*} thePaymodes 支付方式列表\r\n * @param {*} currenIndex 当前支付方式下标\r\n * @param {*} symbol 从当前currenIndex开始 还是从当前currenIndex截止\r\n */\r\n findModlePayBySplice = (thePaymodes,currenIndex,symbol) =>{\r\n const { PayStyle } = enumController.getEnumOj();\r\n let findIndex = currenIndex;\r\n const endCurrentMode = thePaymodes.find((mode, index) => {\r\n findIndex++;\r\n return (symbol? index > currenIndex:index < currenIndex) &&\r\n mode.paymentType != PayStyle.hyczk &&\r\n mode.paymentType != PayStyle.djq &&\r\n mode.paymentType != PayStyle.jfdx &&\r\n stores.offlineSys.shouldSettlement(mode.paymentType,true)\r\n });\r\n if(endCurrentMode) return { mode:endCurrentMode,index:findIndex}\r\n return null;\r\n }\r\n\r\n findHaveNoModlePayType = (thePaymodes,currenIndex) => {\r\n if(!thePaymodes || thePaymodes.length == 0) return null;\r\n const endCurrentModeOb = this.findModlePayBySplice(thePaymodes,currenIndex,true)\r\n if(endCurrentModeOb) return endCurrentModeOb;\r\n const startCurrentModeOb = this.findModlePayBySplice(thePaymodes,currenIndex,false)\r\n if(startCurrentModeOb) return startCurrentModeOb;\r\n return null\r\n }\r\n\r\n\r\n setFocusAndSelection = (key, payId) => {\r\n const that=this;\r\n const { paymode } = this.store;\r\n const { PayStyle } = enumController.getEnumOj();\r\n let themode = _find(paymode.thePaymodes, (mode) => mode.paymentType === key);\r\n if (key === PayStyle.hyczk) {\r\n themode = _find(paymode.thePaymodes, (mode) => mode.paymethodId === payId);\r\n }\r\n const index = (themode && themode.paymethodId) || -1;\r\n if (index !== -1) {\r\n setTimeout( ()=> {\r\n const input = document.getElementById(`inputS${index}`)\r\n that.setState({currentIndex:index});\r\n this.currentInput = input;\r\n setTimeout( ()=> {\r\n input.focus();\r\n input.setSelectionRange(0, input.value.length)\r\n }, 10)\r\n\r\n }, 200)\r\n }\r\n }\r\n\r\n settleUnReturn = async () => {\r\n const that = this;\r\n ModalWraper.confirm({\r\n className: 'tplus-confirm-modal',\r\n zIndex: 1007,\r\n content: <div className='unReturn'><div className='title'>支付超时,需要重新查询支付结果!</div><div>若不重新查询,会出现顾客支付成功,但零售单收款不成功的情况。</div></div>,\r\n async onOk() {\r\n window.__queryingModal = openQueryingModal();\r\n let result = await that.store.querySettleResult();\r\n setTimeout(() => {\r\n if (window.__queryingModal) {\r\n window.__queryingModal.destroy()\r\n window.__queryingModal = null\r\n }\r\n }, 0)\r\n switch (result.Flag) {\r\n case \"0\"://成功\r\n that.store.setDtoID(result.ID);\r\n that.settleSuccess();\r\n break;\r\n case \"1\"://处理中\r\n that.settleUnReturn();\r\n // Message.info(\"结算正在处理中,请稍后再次查询。\");\r\n break;\r\n case \"2\"://失败\r\n Message.info(`结算失败,原因:${result.Message}。`);\r\n // that.settleCanceled();\r\n break;\r\n }\r\n },\r\n onCancel() {\r\n // this.settleCanceled();\r\n },\r\n });\r\n }\r\n\r\n settleCanceled=()=>{\r\n console.log('settlement--settleCanceled--调用清除数据==Focus==')\r\n this.props.clearVoucherData && this.props.clearVoucherData();\r\n this.cancelState();\r\n }\r\n\r\n settleSuccess = async () => {\r\n //提示成功\r\n const { PayStyle } = enumController.getEnumOj();\r\n let { amount, received, thePaymodes } = this.store.paymode;\r\n let { IdbusiType } = this.store.dto;\r\n let charge = this.store.paymode.charge;\r\n let openCashBox = !!_find(thePaymodes, (mode) => { return mode.paymentType == PayStyle.xianjin });\r\n // 判断双屏显示。\r\n const _this = this;\r\n const showTwoScreen = function (amount, received, charge) {\r\n const getScreenType = function () {\r\n let flag = false;\r\n if (_this.hasElectron === true || _this.isHorizontalSunMi) {\r\n let data = localStore.get('setting_setData') || [];\r\n data = data.filter(item => item.Name === 'EnableDoubleScreen');\r\n data = data && data.length > 0 ? data.shift() : null;\r\n if (data && data.Value === '1') {\r\n flag = true;\r\n }\r\n }\r\n return flag;\r\n }\r\n const params = {\r\n step: 3,\r\n data: {\r\n amount: amount,\r\n received: received,\r\n charge: charge\r\n }\r\n }\r\n let screenType = getScreenType();\r\n if (screenType === true) { //副屏-第二屏幕\r\n if (_this.isHorizontalSunMi) {\r\n window.sunMi_PresentationManager.sendMessageToSecondScreen(params);\r\n setTimeout(()=>{\r\n window.sunMi_PresentationManager.sendMessageToSecondScreen({ step: 1 });\r\n },3000)\r\n } else {\r\n nativeMs && nativeMs.setIpcRendererMethod('ReplyScreen', params);\r\n }\r\n setTimeout(() => { _this.props.onSettleSuccess && _this.props.onSettleSuccess({ openCashBox }) }, 1500)\r\n } else {\r\n _this.props.onSettleSuccess && _this.props.onSettleSuccess({ openCashBox });\r\n }\r\n }\r\n\r\n const { getSettleGift, isFull } = this.store;\r\n const { type } = this.props;\r\n let resp1 = false;\r\n if (type !==1) {\r\n try {\r\n // 获取支付成功后礼包情况\r\n resp1 = await getSettleGift();\r\n } catch(e) {\r\n console.log(\"获取支付礼包getSettleGift失败\");\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n if (window.__loadingModal) {\r\n window.__loadingModal.destroy()\r\n window.__loadingModal = null\r\n }\r\n let isXianjin = _this.state.isXianjin\r\n showTwoScreen(amount, received, charge);\r\n if (isXianjin) this.handleGuestShow(4, charge);\r\n _this.setState({\r\n noAlreadyWarn: true\r\n })\r\n\r\n let { MemberPoints, isMemberPointsReturn, isReturn } = _this.props;\r\n let message = \"支付成功\"\r\n if ((isReturn || isMemberPointsReturn) && Number(amount) == Number(0)) {\r\n message = \"退货成功\"\r\n } else if (MemberPoints && Number(amount) == Number(0)) {\r\n message = \"兑换成功\"\r\n } else if (IdbusiType == 39 && received == 0){\r\n message = \"取货成功\"\r\n }\r\n window.__successModal = showSuccessModal(amount, received, charge, _this.props.onModalClose, isXianjin, message, resp1 && resp1.data, stores, IdbusiType, isFull, () => {\r\n _this.handleGuestShow(5)\r\n })\r\n this.setState({ isXianjin: false })\r\n this.cancelState();\r\n }, 0)\r\n }\r\n // 处理客显显示功能\r\n handleGuestShow = (dtype, value) => {\r\n if (this.hasElectron === false) return;\r\n let dt = localStore.get('portsetting_hardSet') || [];\r\n const { guestshow_enable, guestshow_clear, guestshow_welcome, guestshow_collect, guestshow_refund, guestshow_change } = dt || {};\r\n const hasSuccess = localStore && localStore.get('portsetting_hardSet_isSuccess');\r\n if (!guestshow_enable || (!!guestshow_enable && hasSuccess == '0')) return;\r\n let other = '';\r\n switch (dtype) {\r\n case 0: //欢迎\r\n other = guestshow_welcome;\r\n break;\r\n case 2: //退款\r\n other = (guestshow_refund + \"\").replace('[含税总金额]', Math.abs(value))\r\n break;\r\n case 3: //收款\r\n other = (guestshow_collect + \"\").replace('[含税总金额]', value)\r\n break;\r\n case 4: //找零\r\n other = (guestshow_change + \"\").replace('[找零金额]', getFixedNumber(value))\r\n break;\r\n case 5: //清除\r\n other = guestshow_clear;\r\n break;\r\n }\r\n let params = JSON.stringify({ price: '', qty: '', total: '', inv: '', wel: '', other: other })\r\n console.log(`Send客显sendDataCusDisp:状态-${dtype},参数-${params}`)\r\n HardwareAPI.sendDataCusDisp({ data: params, dataType: dtype }, ret => { console.log(`Return客显sendDataCusDisp:状态-${dtype},返回-${JSON.stringify(ret)}`) })\r\n }\r\n\r\n handleSettle = async (args) =>{\r\n this.setState({\r\n settleDisabled: true,\r\n })\r\n console.log(\"settlement.handleSettle开始执行,参数:\",+args);\r\n const { PayStyle } = enumController.getEnumOj();\r\n const { paymode,brefund,boriginReturn,newStyle } = this.store;\r\n const isQuickPay = args === 'quickPay'\r\n const that =this;\r\n let status = false\r\n paymode.thePaymodes.forEach((v) => {\r\n if (v.paymentType === PayStyle.xianjin && v.value !== '0.00') {\r\n status = true\r\n }\r\n })\r\n this.setState({\r\n isXianjin: status ? true : false\r\n })\r\n if(that.checkCharge() && Math.abs(paymode.receivable)>that.props.initData(\"posChangeUpperAmount\")){\r\n Message.error('找零不能超过最大找零金额:'+getFixedNumber(that.props.initData(\"posChangeUpperAmount\"))+'元');\r\n this.setState({\r\n settleDisabled: false\r\n })\r\n return;\r\n }\r\n if(args !==\"zero\" && !newStyle){\r\n let zeromode=_find(paymode.thePaymodes,(mode)=>{\r\n return parseFloat(mode.value)==0 || (mode.exchangeRate!=1?parseFloat(mode.value2):parseFloat(mode.value))==0;\r\n })\r\n if(zeromode){\r\n this.setState({\r\n settleDisabled: false\r\n })\r\n Message.error(zeromode.name +' 的结算金额为零,不可以结算。');\r\n return;\r\n }\r\n }\r\n\r\n let promises = []\r\n const thePaymodes = _sortBy(newStyle ?_filter(paymode.thePaymodes,(mode)=>{return parseFloat(mode.value)!=0;}):paymode.thePaymodes, 'orderBy')\r\n if(isQuickPay ){\r\n let quickmode=thePaymodes[0];\r\n if (this.checkModeDisabled(quickmode.paymentType,brefund,boriginReturn)){\r\n this.setState({\r\n settleDisabled: false\r\n })\r\n Message.error('退款不能使用'+ quickmode.name +'结算,请使用其他结算方式!');\r\n return;\r\n }\r\n }\r\n _forEach(thePaymodes, (mode) => {\r\n if (!(boriginReturn && brefund) && (mode.paymentType == PayStyle.zfb || mode.paymentType == PayStyle.wx || mode.paymentType == PayStyle.smzf || mode.paymentType == PayStyle.SQBPAY || mode.paymentType == PayStyle.CSYH\r\n || (mode.paymentType == PayStyle.xianjin && isQuickPay))) {\r\n promises.push(that.inputConfirm(mode, isQuickPay))\r\n }\r\n });\r\n\r\n const commit = async (values) => {\r\n const result = await this.store.commit(this.props.bTest);\r\n if (result === true) {//成功\r\n that.settleSuccess();\r\n Promise.resolve()\r\n } else {\r\n this.setState({\r\n settleDisabled: false\r\n })\r\n //提示失败\r\n setTimeout(() => {\r\n if (window.__loadingModal) {\r\n window.__loadingModal.destroy()\r\n window.__loadingModal = null\r\n }\r\n //撤销支付\r\n }, 0)\r\n if (result && (result.Code || result.code)) {\r\n switch (result.Code || result.code) {\r\n case 'RE_Settle_UnReturn':\r\n console.log('settlement--RE_Settle_UnReturn--调用清除数据==Focus==')\r\n this.props.clearVoucherData && this.props.clearVoucherData();\r\n this.cancelState();\r\n break;\r\n case 'ECONNABORTED'://error.code === 'ECONNABORTED' && error.message.indexOf('timeout')\r\n result.message.indexOf('timeout') > -1 && that.settleUnReturn();\r\n break;\r\n }\r\n }\r\n if(isQuickPay){\r\n that.props.onCancelSettle && that.props.onCancelSettle();\r\n that.cancelState();\r\n }\r\n\r\n await Promise.reject()\r\n }\r\n }\r\n\r\n async function handleUserInputs(promises) {\r\n let results = []\r\n try {\r\n for (let p of promises) {\r\n const result = await p\r\n results.push(result)\r\n }\r\n window.__loadingModal = openLoadingModal()\r\n await commit(results);\r\n } catch (err) {\r\n // notification.open({\r\n // message: '错误',\r\n // description: '失败, 请重新结算',\r\n // });\r\n }\r\n }\r\n\r\n handleUserInputs(promises)\r\n }\r\n\r\n handleCzk = async () =>{\r\n const that =this;\r\n const curmode = this.store.paymode.currentMode;\r\n let promises = [];\r\n if (curmode.value > 0) {\r\n const { PayStyle } = enumController.getEnumOj();\r\n if (curmode.paymentType === PayStyle.hyczk) {\r\n if (curmode.cardTypeEnum === 'BALANCE_CARD') {\r\n !curmode.freePaymentPasswordStore && promises.push(that.inputPwd(curmode));\r\n } else {\r\n curmode.isNeedPassword && promises.push(that.inputPwd(curmode));\r\n }\r\n }\r\n }\r\n const commit = async (values)=> {\r\n //密码校验\r\n const result= values.length>0 ? (await that.store.validePwd(values[0])) : \"\";\r\n if(result==\"\"){//成功\r\n //返回\r\n that.setCurrentFocusAndAddPay(curmode.paymentType, null, curmode.paymethodId);\r\n Promise.resolve()\r\n }else{\r\n //Message.info(\"密码不正确\");\r\n await Promise.reject(result)\r\n }\r\n }\r\n\r\n async function handleUserInputs(promises) {\r\n let results = []\r\n try {\r\n for (let p of promises) {\r\n const result = await p\r\n results.push(result)\r\n }\r\n await commit(results);\r\n } catch (err) {\r\n if(err!=\"cancelpwd\"){\r\n Message.error(err);\r\n setTimeout(()=>{that.handleCzk();},500);\r\n }\r\n }\r\n }\r\n\r\n handleUserInputs(promises)\r\n }\r\n\r\n //that[`inputS${paymode.paymethodId}`]\r\n fKeyboardOnOk = (paymethodeId) => {\r\n const input=this[`inputS${paymethodeId}`].input;\r\n return (e)=>{\r\n input && input.blur();\r\n Keyboard.close();\r\n }\r\n }\r\n\r\n fKeyboardOnClose = (paymethodeId) => {\r\n const input=this[`inputS${paymethodeId}`].input;\r\n return (e)=>{\r\n input && input.blur();\r\n Keyboard.close();\r\n }\r\n }\r\n\r\n keyboardOnOk = (e) => {\r\n this.inputkey && this[this.inputkey] && this[this.inputkey].input && this[this.inputkey].input.blur();\r\n Keyboard.close();\r\n }\r\n\r\n keyboardOnClose = (e) => {\r\n this.inputkey && this[this.inputkey] && this[this.inputkey].input && this[this.inputkey].input.blur();\r\n Keyboard.close();\r\n }\r\n\r\n changefn=(e)=>{\r\n console.log(e)\r\n }\r\n\r\n setConfirmPwdValue = (value) => {\r\n this.setState({\r\n confirmPwd: value\r\n })\r\n }\r\n\r\n inputPwd = async (paymode) => {\r\n const that = this\r\n const { confirmPwd } = this.state;\r\n return new Promise(function (resolve, reject) {\r\n const modal = asyncModal({\r\n onPressEnter: () => {\r\n Keyboard.close();\r\n const v = _trim(that[`inputAmount`]['input']['value']);\r\n // if (v !== '') {\r\n modal.destroy()\r\n const { confirmPwd } = that.state || {};\r\n setTimeout(() => {\r\n paymode.authCode=v;\r\n resolve({\r\n id:paymode.member.id,\r\n pwd: confirmPwd,\r\n })\r\n }, 100)\r\n // } else {\r\n // Message.info('请输入密码');\r\n // throw \"error\";\r\n // }\r\n },\r\n onPressEsc: () => {\r\n Keyboard.close();\r\n reject('cancelpwd')\r\n },\r\n maskClosable: false,\r\n keyboard: false,\r\n closable: true,\r\n title:paymode.name,\r\n width:450,\r\n className: (that.isHorizontalSunMi || !that.isMobileEnvironment) ? 'pwdModal' : 'pwdModal extraHeight',\r\n // 储值卡结账时显示为密码框\r\n content: (<div className=\"scanInput\">\r\n <div>\r\n <span className=\"label\">应收金额:</span><span className=\"yfje\">{getFixedNumber(paymode.value)}</span>\r\n </div>\r\n <div className=\"pwd\">\r\n <span className=\"label\">储值余额密码:</span>\r\n <span>\r\n {/* <input type=\"text\" style={{width:'0px',marginLeft:'20px'}}></input> */}\r\n {/* <Input\r\n className=\"content\"\r\n style={{marginLeft:'-20px'}}\r\n placeholder=\"输入密码\"\r\n ref={input => that[`inputS${paymode.paymethodId}`] = input}\r\n onChange={(e) => {\r\n this.setState({\r\n confirmPwd: e.target.value\r\n })\r\n }}\r\n value={confirmPwd}\r\n onFocus={(e)=>{\r\n const inputTarget = that[`inputS${paymode.paymethodId}`].input;\r\n Keyboard.open((v)=>{\r\n const value = Keyboard.getNewValue(inputTarget, inputTarget.value, v);\r\n console.log('zlf',inputTarget, inputTarget.value);\r\n inputTarget.value=value;\r\n this.setState({\r\n confirmPwd: e.target.value\r\n })\r\n }, that.fKeyboardOnOk(paymode.paymethodId), that.fKeyboardOnClose(paymode.paymethodId))()\r\n }\r\n }\r\n onBlur={(e)=>{\r\n this.setState({\r\n confirmPwd: e.target.value\r\n })\r\n Keyboard.close();\r\n }}\r\n /> */}\r\n <NumkeyboardPassword\r\n className=\"content\"\r\n placement=\"rightBottom\"\r\n newType='positive'\r\n bordered\r\n placeholder=\"请输入6位数字密码\"\r\n style={{ width: 266, height: 32 }}\r\n maxLength={6}\r\n ref={input => that.inputAmount = input}\r\n onChange={value => that.setConfirmPwdValue(value)}\r\n // onBlur={value => that.handleConfirmBlur}\r\n />\r\n </span>\r\n </div>\r\n <div className=\"buttonRegion\">\r\n <div className=\"fr\">\r\n <Button size=\"large\" onClick={() => {\r\n modal.destroy()\r\n reject('cancelpwd')//\r\n }}>取消\r\n </Button>\r\n <Button\r\n type=\"primary\" size=\"large\" onClick={() => {\r\n const v = _trim(that[`inputAmount`]['input']['value'])\r\n const { confirmPwd } = that.state || {};\r\n // if (v !== '') {\r\n modal.destroy()\r\n // if (isQuickPay) {\r\n // window.__loadingModal = openLoadingModal()\r\n // }\r\n setTimeout(() => {\r\n paymode.authCode=v;\r\n resolve({\r\n id:paymode.member.id,\r\n pwd: confirmPwd,\r\n })\r\n }, 100)\r\n // } else {\r\n // Message.info('请输入密码');\r\n // }\r\n }}>确定\r\n </Button>\r\n </div>\r\n </div>\r\n </div>),\r\n })\r\n // 扫码框自动聚焦\r\n setTimeout(() => {\r\n that[`inputS${paymode.paymethodId}`] && that[`inputS${paymode.paymethodId}`].input.focus();\r\n that.inputAmount && that.inputAmount.input.focus();\r\n }, 300)\r\n })\r\n }\r\n\r\n isNoProductTip(nonProductMap) {\r\n const { RetailDetails } = this.context.viewModel.data || {};\r\n let temphtml = [];\r\n if(Object.keys(nonProductMap).length > 0){\r\n const columns = [\r\n {\r\n title: '商品名称',\r\n dataIndex: 'name',\r\n key: 'name',\r\n ellipsis: true,\r\n },\r\n {\r\n title: '原因',\r\n dataIndex: 'reason',\r\n key: 'reason',\r\n ellipsis: true,\r\n },\r\n ];\r\n for (let key in nonProductMap){\r\n let product = RetailDetails.find(o=>o.Idinventory == key)\r\n temphtml.push({name: product.Inventory.Name, reason: nonProductMap[key]})\r\n }\r\n const modal = asyncModal({\r\n onPressEnter: () => {\r\n modal.destroy();\r\n },\r\n maskClosable: false,\r\n keyboard: false,\r\n closable: true,\r\n title:'不可配送商品',\r\n width:600,\r\n className: '',\r\n content: (\r\n <div className=\"not-distribution-tip\">\r\n <div className=\"tip-content\">\r\n <Table\r\n columns={columns}\r\n dataSource={temphtml}\r\n scroll={{ y: 240 }}\r\n pagination={false}\r\n size='middle'/>\r\n </div>\r\n <div className=\"not-distribution-btn\">\r\n <Button type=\"primary\" onClick={() => {modal.destroy()}}>知道了</Button>\r\n </div>\r\n </div>\r\n ),\r\n })\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n btnDebounced = async (type, bquick) => {\r\n let IdbusiType = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.IdbusiType;\r\n let CustomerPhone = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.CustomerPhone;\r\n let DistributionMode = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.DistributionMode;\r\n let Address = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.Address;\r\n //预订时,若没录入买家手机号,或配送方式为快递时,弹框买家信息确认框\r\n if(IdbusiType == 38){\r\n //预售下单时,启用了序列号管理和批号/有效期管理的商品,不支持快递和同城配送\r\n let isEnableSerialNumber = PosInitData(\"IsEnableSerialNumber\");\r\n let resultObj = this.context.viewModel.data.RetailDetails.find(o=>{\r\n return o.Inventory.IsSerialNumber && (o.Inventory.IsBatch || o.Inventory.IsQualityPeriod);\r\n });\r\n if(isEnableSerialNumber && resultObj && (DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE')){\r\n return Message.error('启用了序列号管理和批号/有效期管理的商品,不支持快递和同城配送');\r\n }\r\n\r\n if(DistributionMode.Id == 'ON_SITE_PICKUP' && !CustomerPhone && this.context.viewModel.data.Member.Mobilephone){\r\n this.props.syncMemberInfoProcessor();\r\n }\r\n if(!CustomerPhone && !this.context.viewModel.data.Member.Mobilephone || DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE'){\r\n let title = (DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE') && Address ? '收货地址确认' : '收货人'\r\n await this.props.openBuyerModal(title);\r\n }\r\n }\r\n\r\n this.setState({\r\n bquick,\r\n isInputMember: true\r\n })\r\n const { PayStyle } = enumController.getEnumOj();\r\n const { paymode,brefund,boriginReturn,newStyle } = this.store;\r\n\r\n if(bquick && !stores.offlineSys.shouldSettlement(type)) return false;\r\n\r\n let status = false;\r\n paymode.thePaymodes.forEach((v) => {\r\n if (v.paymentType === PayStyle.xianjin && v.value !== '0.00') {\r\n status = true\r\n }\r\n })\r\n this.setState({\r\n isXianjin: status ? true : false\r\n })\r\n\r\n if (this.btndebounced) {\r\n return;\r\n }\r\n this.btndebounced = _debounce(() => {\r\n if (bquick) {\r\n this.quickSettle(type);\r\n } else {\r\n this.showModal();\r\n }\r\n }, 1000, {\r\n 'leading': true,\r\n 'trailing': false\r\n });\r\n this.btndebounced();\r\n setTimeout(() => {\r\n this.btndebounced.cancel();\r\n this.btndebounced = null;\r\n }, 2000)\r\n }\r\n\r\n onCzkChange = (v) => {\r\n const { isNewRetailBCPos } = platform || {};\r\n if (!isNewRetailBCPos) {\r\n this.store.paymode.currentMode.member.setCardNo(v);\r\n }\r\n if (!/^[A-Za-z0-9]*$/.test(v)) {\r\n return;\r\n }\r\n this.setState({\r\n czkValue: v\r\n })\r\n }\r\n\r\n czkKeyboardOnOk = (e) => {\r\n this.czkInput.input.blur();\r\n Keyboard.close();\r\n this.loadCzk(this.czkInput.input[\"value\"]);\r\n }\r\n\r\n czkKeyboardOnClose = (e) => {\r\n this.czkInput && this.czkInput.input.blur();\r\n Keyboard.close();\r\n }\r\n\r\n onDjqChange=(v,isKeyBorad = false)=>{\r\n this.inputdjq.input.value=v;\r\n if(this.debounced){\r\n this.debounced.cancel();\r\n this.debounced = null;\r\n }\r\n if(!isKeyBorad){\r\n this.debounced=_debounce(()=>{this.addDjq()},2000);\r\n this.debounced();\r\n }\r\n }\r\n\r\n djqKeyboardOnOk = (e) => {\r\n this.inputdjq.input && this.inputdjq.input.blur();\r\n Keyboard.close();\r\n this.addDjq();\r\n // this.loadCzk(this.czkInput.input[\"value\"]);\r\n }\r\n\r\n djqKeyboardOnClose = (e) => {\r\n this.inputdjq.input && this.inputdjq.input.blur();\r\n Keyboard.close();\r\n }\r\n\r\n checkCharge = () => {\r\n const { PayStyle } = enumController.getEnumOj();\r\n const { paymode } = this.store;\r\n const themode=_find(paymode.thePaymodes, mode=>mode.paymentType===PayStyle.xianjin);\r\n return (paymode.receivable < 0 && themode && themode.value>=Math.abs(paymode.receivable));\r\n }\r\n\r\n checkThepaymode(key){\r\n return _findIndex(this.store.paymode.thePaymodes,{paymentType:key})>-1;\r\n }\r\n\r\n onKeyboardChange(key) {\r\n const { PayStyle } = enumController.getEnumOj();\r\n if (this.currentInput) {\r\n if(this.store.paymode.currentMode) {\r\n let paymentType1 = this.store.paymode.currentMode.paymentType;\r\n if (paymentType1 === PayStyle.djq || paymentType1 === PayStyle.hyczk || paymentType1 === PayStyle.jfdx) {\r\n return;\r\n }\r\n }\r\n const value = Keyboard.getNewValue(this.currentInput, this.currentInput.value, key, true);\r\n if (!isNaN(value) || value == '-') {\r\n this.currentInput.value = value;\r\n this.store.changeValue(this.state.currentIndex, value, false);\r\n }\r\n }\r\n }\r\n\r\n renderToolbtn(mode,index,bookType){\r\n const { PayIcon , PayStyle} = enumController.getEnumOj();\r\n let { isReturn } = this.props;\r\n let { paymode, brefund, boriginReturn } = this.store;\r\n let hasSMZF = _find(paymode.paymodes, (item) => { return item.paymentType === PayStyle.smzf});\r\n //同时存在微信、支付宝(或者收钱吧)、扫码支付三种方式,在非退货模式下,隐藏微信、支付宝。\r\n let hotkeyIndex = index;\r\n if (!isReturn && hasSMZF) {\r\n if (mode.paymentType == PayStyle.wx || mode.paymentType == PayStyle.zfb) {\r\n return null;\r\n } else {\r\n let theArr = _filter(paymode.paymodes, t => { return t.paymentType != PayStyle.wx && t.paymentType != PayStyle.zfb })\r\n hotkeyIndex = _findIndex(theArr, m => { return m.paymentType == mode.paymentType })\r\n }\r\n }\r\n\r\n // const classNames = classnames({ 'paymode': true, 'paymodeSelected': this.checkThepaymode(mode.paymentType), 'paymodeDisabled': this.checkModeDisabled(mode.paymentType, brefund, boriginReturn)});\r\n\r\n const paymodeDisabled = this.checkModeDisabled(mode.paymentType, brefund, boriginReturn)? 'paymodeDisabled':'';\r\n const paymodeSelected = this.checkThepaymode(mode.paymentType)? 'paymodeSelected':'';\r\n return (\r\n <div key={index + \"\"} className={paymodeDisabled+' '+paymodeSelected + ' paymode hotkey_' + this.compoundHotkeysList[hotkeyIndex]} onClick={() => { this.onTabsClick(mode.paymentType,bookType) }}>\r\n <div className=\"logo\"><div className=\"icon bg-subsidiary-gray-color4\"><Ticon className=\"primary-color\" type={PayIcon[mode.paymentType] || PayIcon['default']} /></div></div>\r\n <div className=\"text primary-color\">{mode.name.length > 8 ? _truncate(mode.name, { length: 5, omission: '' }) + '...' : mode.name}</div>\r\n <div className=\"hotkey\">{this.isHorizontalPad ? '' : this.compoundHotkeysList[hotkeyIndex] || ''}</div>\r\n </div>\r\n )\r\n }\r\n\r\n xianjinChange=(paymethodId,val,receivable)=>{\r\n const inputTarget=this[`inputS${paymethodId}`].input.input;\r\n const inputTarget2=this[`inputS${paymethodId}2`];\r\n let value=val;\r\n if(isNaN(value) && value!=='-'){\r\n value=parseFloat(receivable)+parseFloat(inputTarget2.innerHTML);\r\n }\r\n inputTarget.value=value;\r\n //预订现金快捷支付,这里修改找零计算,大于应收小于全额金额,不找零,大于全额金额找零\r\n if( this.store.paymode.isNotFullBook){\r\n if(parseFloat(value||0) > this.store.paymode.bookMaxValue){\r\n inputTarget2.innerHTML=getFixedNumber(parseFloat(value||0)-parseFloat(this.store.paymode.bookMaxValue));\r\n }\r\n if (parseFloat(value||0) < parseFloat(receivable)){\r\n inputTarget2.innerHTML=getFixedNumber(parseFloat(value||0)-parseFloat(receivable));\r\n }\r\n if(parseFloat(receivable) <= parseFloat(value||0) && parseFloat(value||0) <= this.store.paymode.bookMaxValue){\r\n inputTarget2.innerHTML=getFixedNumber(0);\r\n }\r\n } else {\r\n inputTarget2.innerHTML=getFixedNumber(parseFloat(value||0)-parseFloat(receivable));\r\n }\r\n }\r\n\r\n //移动端:扫描商品\r\n changeScanProduct = () => {\r\n if (this.scanObj) this.scanObj.startScan()\r\n }\r\n onScanResult = (val, modal, el) => {\r\n let _this = this[`${el}`];\r\n if (_this) _this.setStateValue(val, () => {\r\n if (modal) modal.submitHandler()\r\n })\r\n }\r\n onScanCzkResult = (val) => {\r\n let _this = this;\r\n this.onCzkChange(val);\r\n setTimeout(() => { _this.loadCzk(val) }, 0)\r\n }\r\n\r\n //优惠券\r\n onScanDjqResult = (val) => {\r\n let el = this.inputdjq;\r\n if (el && el.input) el.input.value = val;\r\n this.addDjq(val);\r\n }\r\n\r\n //现金支付-存在权限控制\r\n getXianjinPayment = (payType, value) => {\r\n const { PayStyle } = enumController.getEnumOj();\r\n const { isManualIntoAmount } = this.state\r\n return payType === PayStyle.xianjin && isManualIntoAmount === \"1\" && value > 0 ? \"\" : value\r\n }\r\n\r\n getXianjinBalance = (payType, value) => {\r\n const { PayStyle } = enumController.getEnumOj();\r\n //找零金额-存在权限控制\r\n const { isManualIntoAmount } = this.state\r\n return payType === PayStyle.xianjin && isManualIntoAmount === \"1\" && value > 0 ? getFixedNumber(0 - value) : '0.00'\r\n }\r\n\r\n inputConfirm = (paymode, isQuickPay) => {\r\n const that = this\r\n const isStoredValueCard = false\r\n const { discountPrototypeTotalAmount } = this.state;\r\n const {isReturn, type } = this.props;\r\n let isManualIntoAmount\r\n let BuyerPayFreight = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.BuyerPayFreight;\r\n let DistributionMode = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.DistributionMode;\r\n // 付款弹窗\r\n return new Promise(function (resolve, reject) {\r\n const { PayStyle , PayIcon2} = enumController.getEnumOj();\r\n const modal = asyncModal({\r\n onPressEnter: () => {\r\n if (paymode.paymentType == PayStyle.xianjin) {\r\n let zl = parseFloat(that[`inputS${paymode.paymethodId}2`].innerHTML);\r\n if (zl < 0) {\r\n Message.error('支付金额不能小于应收金额');\r\n throw \"error\";\r\n } else if (zl > that.props.initData(\"posChangeUpperAmount\")) {\r\n Message.error('找零不能超过最大找零金额:' + getFixedNumber(that.props.initData(\"posChangeUpperAmount\")) + '元');\r\n throw \"error\";\r\n }\r\n }\r\n const v = _trim(that[`inputS${paymode.paymethodId}`]['input']['input'].getAttribute('value'))\r\n if (v !== '') {\r\n modal.destroy()\r\n setTimeout(() => {\r\n if (paymode.paymentType == PayStyle.xianjin) {\r\n that.store.changeValue(paymode.paymethodId, v, false);\r\n } else {\r\n paymode.authCode = v;\r\n }\r\n resolve();\r\n }, 100)\r\n } else {\r\n if (paymode.paymentType == PayStyle.xianjin){\r\n Message.error('请输入付款金额');\r\n } else {\r\n Message.error('请录入或扫描付款码');\r\n }\r\n throw \"error\";\r\n }\r\n },\r\n isCancelFun: () => {\r\n const { prototypeVisible, protytypeCount } = that.state;\r\n if (protytypeCount === 1) {\r\n that.setState({\r\n protytypeCount: 0\r\n })\r\n // setTimeout(() => {\r\n // that[`inputS${paymode.paymethodId}`].input.input.focus();\r\n // }, 535)\r\n }\r\n return prototypeVisible || protytypeCount;\r\n },\r\n onPressEsc: () => {\r\n Keyboard.close();\r\n that.store.bquick && that.props.onCancelSettle && that.props.onCancelSettle();\r\n reject(`支付方式: ${paymode.name}失败`)\r\n },\r\n maskClosable: false,\r\n keyboard: false,\r\n closable: false,\r\n backdropStyle: {\r\n 'z-index': '1004'\r\n },\r\n width: 440,\r\n content: (\r\n <div className=\"scanInput\">\r\n <div className={classnames({ \"icon primary-color\": true, [\"color\" + paymode.paymentType]: true })}><Ticon type={PayIcon2[paymode.paymentType]} /></div>\r\n <div className=\"title\">{paymode.name}</div>\r\n <div>\r\n <span className=\"label\">应收金额:</span><span className=\"yfje\">\r\n {paymode.value}\r\n {DistributionMode && (DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE') && BuyerPayFreight && BuyerPayFreight > 0 ? <span className=\"freight\">(包含{BuyerPayFreight}元运费)</span> : null}\r\n </span>\r\n </div>\r\n {\r\n (paymode.paymentType == PayStyle.xianjin) &&\r\n <div className='contentzf'>\r\n <span className=\"contentlabel\">{paymode.name}支付:</span>\r\n <span>\r\n <NumKeyboard\r\n id='paymentAmount'\r\n className=\"content\"\r\n type='text'\r\n bordered\r\n placement=\"rightBottom\"\r\n placeholder='请输入付款金额'\r\n disabled={paymode.value < 0}\r\n defaultValue={that.getXianjinPayment(paymode.paymentType, paymode.value)}\r\n onChange={(value) => { that.xianjinChange(paymode.paymethodId, value, paymode.value); }}\r\n ref={input => that[`inputS${paymode.paymethodId}`] = input}\r\n onBlur={(e) => {\r\n const inputTarget = that[`inputS${paymode.paymethodId}`].input.input;\r\n if (that.state.isManualIntoAmount === \"1\" && paymode.paymentType === PayStyle.xianjin && inputTarget.value === \"\") {\r\n return;\r\n }\r\n inputTarget.value = getFixedNumber(inputTarget.value)\r\n }}\r\n />\r\n </span>\r\n </div>\r\n }\r\n {\r\n (paymode.paymentType == PayStyle.xianjin) &&\r\n <div className=\"zlje\">\r\n <span className=\"label\">找零金额:</span>\r\n <span className=\"yfje\" ref={input => that[`inputS${paymode.paymethodId}2`] = input}>{that.getXianjinBalance(paymode.paymentType, paymode.value)}</span>\r\n </div>\r\n }\r\n {\r\n !isReturn && type !==1 &&\r\n <div className=\"zlje prototype\">\r\n <span className=\"label\">优惠明细:</span>\r\n <span className=\"yfje economize\">省¥{discountPrototypeTotalAmount}</span>\r\n <span onClick={that.prototypeDetailedClick} className='prototypeDetailed primary-color'>优惠明细<Ticon type='you2'/></span>\r\n </div>\r\n }\r\n {\r\n (paymode.paymentType == PayStyle.wx || paymode.paymentType == PayStyle.zfb || paymode.paymentType == PayStyle.smzf || paymode.paymentType == PayStyle.SQBPAY || paymode.paymentType == PayStyle.CSYH) &&\r\n <div className='contentzf'>\r\n <span className=\"contentlabel\">{paymode.name}支付:</span>\r\n <span>\r\n <NumKeyboardScan\r\n className=\"content \"\r\n type='text'\r\n bordered\r\n placeholder=\"扫描或输入付款码\"\r\n ref={input => that[`inputS${paymode.paymethodId}`] = input} />\r\n </span>\r\n {\r\n that.isHorizontalPad &&\r\n <span className='contentscan'>\r\n <Ticon type='saomiao1' className='icon' onClick={that.changeScanProduct} />\r\n <Scan ref={scan => that.scanObj = scan} onChange={value => that.onScanResult(value, modal, `inputS${paymode.paymethodId}`)} />\r\n </span>\r\n }\r\n </div>\r\n }\r\n <div className={classnames({ \"buttonRegion\": true, \"buttonRegion2\": paymode.paymentType == PayStyle.xianjin })}>\r\n <div className=\"fr\">\r\n <Button\r\n onClick={() => {\r\n modal.destroy()\r\n that.setState({\r\n settleDisabled: false\r\n })\r\n that.store.bquick && that.props.onCancelSettle && that.props.onCancelSettle();\r\n that.store.bquick && that.store.delPay(paymode.paymethodId, !isQuickPay ? 'bookPay':'');\r\n reject(`支付方式: ${paymode.name}失败`)\r\n }}>取消</Button>\r\n <Button\r\n type=\"primary\"\r\n onClick={() => {\r\n if (paymode.paymentType == PayStyle.xianjin) {\r\n let zl = parseFloat(that[`inputS${paymode.paymethodId}2`].innerHTML);\r\n if (zl < 0) {\r\n if (that[`inputS${paymode.paymethodId}`].input.input.value === '') {\r\n Message.error('请输入付款金额');\r\n } else {\r\n Message.error('支付金额不能小于应收金额');\r\n }\r\n return;\r\n } else if (zl > that.props.initData(\"posChangeUpperAmount\")) {\r\n Message.error('找零不能超过最大找零金额:' + getFixedNumber(that.props.initData(\"posChangeUpperAmount\")) + '元');\r\n return;\r\n }\r\n }\r\n const v = _trim(that[`inputS${paymode.paymethodId}`]['input']['input'].getAttribute('value'))\r\n\r\n if (v !== '') {\r\n modal.destroy()\r\n setTimeout(() => {\r\n if (paymode.paymentType == PayStyle.xianjin) {\r\n that.store.changeValue(paymode.paymethodId, v, false, 'bookPay');\r\n } else {\r\n paymode.authCode = v;\r\n }\r\n resolve();\r\n }, 100)\r\n } else {\r\n if (paymode.paymentType == PayStyle.xianjin){\r\n Message.error('请输入付款金额');\r\n } else {\r\n Message.error('请录入或扫描付款码');\r\n }\r\n }\r\n }}>确定</Button>\r\n </div>\r\n </div>\r\n </div>),\r\n })\r\n // 扫码框自动聚焦\r\n setTimeout(() => {\r\n // console.log(that[`inputS${paymode.paymethodId}`].input, '-------------------')\r\n that[`inputS${paymode.paymethodId}`].input.input.focus()\r\n }, 350)\r\n })\r\n }\r\n\r\n\r\n checkCurrentModeHaveMutex = (type) => {\r\n let { paymode,newStyle } = this.store;\r\n const { PayStyle } = enumController.getEnumOj();\r\n const payTypeList = [PayStyle.SQBPAY,PayStyle.CSYH,PayStyle.smzf];\r\n const payTypeFilterList = payTypeList.filter( filterType => filterType !== type);\r\n // 主要排查当前的支付方式 是否是包含在互斥的支付方式\r\n if(payTypeFilterList.length === payTypeList.length) return false;\r\n const disableUserMode = _find(paymode.thePaymodes,(mode)=>{\r\n const haveUseTypeList = payTypeFilterList.find(filterType =>{\r\n // 单据模式的情况还有要判断互斥的支付方式是否有值 触屏模式直接判断是否选择了某个支付方式\r\n return filterType == mode.paymentType && (newStyle? mode.value != 0 :true)\r\n });\r\n // 如果查找到互斥目标支付方式并且不是当前支付方式 返回true\r\n if(mode.paymentType !== type && haveUseTypeList && haveUseTypeList.length != 0) return true\r\n })\r\n if(disableUserMode) return true\r\n return false\r\n }\r\n\r\n checkModeDisabled=(type,brefund,boriginReturn)=>{\r\n const { PayStyle } = enumController.getEnumOj();\r\n return (((brefund && (type==PayStyle.wx || type==PayStyle.zfb || type==PayStyle.smzf || type==PayStyle.jfdx || type==PayStyle.djq || type==PayStyle.SQBPAY || type==PayStyle.CSYH))\r\n || (boriginReturn && type==PayStyle.hyczk))\r\n && !(boriginReturn && (type==PayStyle.wx || type==PayStyle.zfb))) || this.checkCurrentModeHaveMutex(type) ;\r\n }\r\n\r\n checkSettleDisabled=(paymode,thePaymodes)=>{\r\n const { PayStyle } = enumController.getEnumOj();\r\n console.log(\"settlement.checkSettleDisabled开始执行,参数:\",{paymode,thePaymodes})\r\n if(paymode.amount==0 && paymode.received==0){\r\n console.log(\"settlement.checkSettleDisabled返回结果:\",false)\r\n return false;\r\n }\r\n if(this.store.brefund){\r\n let result=!(paymode.receivable==0 && thePaymodes.length>0);\r\n console.log(\"settlement.checkSettleDisabled返回结果:\",result)\r\n return result;\r\n }\r\n let xj=_find(thePaymodes,(mode)=>{return mode.paymentType==PayStyle.xianjin});\r\n let enabled=paymode.receivable==0 && thePaymodes.length>0;\r\n if(xj && xj.value!=0){\r\n enabled=paymode.receivable<=0 && thePaymodes.length>0 && (Math.abs(paymode.receivable)<xj.value);\r\n }\r\n console.log(\"settlement.checkSettleDisabled返回结果:\",!enabled);\r\n const { settleDisabled } = this.state;\r\n return !enabled || settleDisabled;\r\n }\r\n\r\n changeDecimalBuZero = (number, bitNum) => {\r\n if (bitNum == 0) return number;\r\n var f_x = parseFloat(number);\r\n if (isNaN(f_x)) {\r\n return '';\r\n }\r\n let newBitNum = Math.pow(10,bitNum)\r\n f_x = Math.round(number * newBitNum) / newBitNum;\r\n let s_x = f_x.toString();\r\n let pos_decimal = s_x.indexOf('.');\r\n if (pos_decimal < 0) {\r\n pos_decimal = s_x.length;\r\n s_x += '.';\r\n }\r\n while (s_x.length <= pos_decimal + bitNum) {\r\n s_x += '0';\r\n }\r\n return s_x;\r\n }\r\n // 单据模式下编辑储值卡\r\n editCzkModal = () => {\r\n const { PayStyle } = enumController.getEnumOj();\r\n _find(this.store.paymode.thePaymodes,(mode)=>{\r\n if (mode.paymentType==PayStyle.hyczk) {\r\n this.store.setCurrentMode(mode.paymethodId)\r\n }\r\n })\r\n\r\n this.setState({\r\n czkVisible: true\r\n })\r\n let { currentMode } = this.store.paymode;\r\n setTimeout(() => {\r\n if(!currentMode.member || !currentMode.member.id){\r\n this.czkInput && this.czkInput.input.focus()\r\n }else{\r\n if(this.inputCzkAmount && this.inputCzkAmount.input){\r\n this.inputCzkAmount.input.focus();\r\n this.inputCzkAmount.input.setSelectionRange(0, this.inputCzkAmount.input.value.length);\r\n }\r\n }\r\n }, 350)\r\n }\r\n\r\n paymodesCarouselList = (params,paymodes,carouselStart,CarouseOut) => {\r\n const CarouselTp = CarouseOut || Carousel\r\n const newParams = CarouseOut?{}:params\r\n const mapList = [];\r\n const { type } = this.props;\r\n paymodes.forEach((item,index)=>{\r\n // 整除则新增轮播页面\r\n if(index % carouselStart === 0){\r\n mapList[Math.floor(index/carouselStart)] = [];\r\n }\r\n mapList[Math.floor(index/carouselStart)].push(item);\r\n })\r\n return <CarouselTp vertical dots='true' touchMove='true' {...newParams}>\r\n {_map(mapList, (modeList, index) => {\r\n return <div>\r\n {\r\n _map(modeList, (mode, modeIndex) => {\r\n return this.renderToolbtn(mode, index*carouselStart+modeIndex, type !== 1 ? 'bookPay' : '')\r\n })\r\n }\r\n </div>\r\n })}\r\n </CarouselTp>\r\n }\r\n\r\n prototypeDetailedClick = () => {\r\n this.handleShowPrototype();\r\n this.setState({\r\n prototypeVisible: true,\r\n isNotAutoFocus: true,\r\n isPrototypeClick: true\r\n })\r\n }\r\n\r\n handleprototypeCancel = () => {\r\n this.setState({\r\n prototypeVisible: false,\r\n protytypeCount: 1,\r\n isPrototypeClick: false\r\n })\r\n let that = this;\r\n const { bquick, isPrototypeClick } = this.state;\r\n if (!isPrototypeClick) {\r\n if (bquick) {\r\n setTimeout(() => {\r\n this.payQuick();\r\n }, 100)\r\n } else {\r\n this.payFun();\r\n }\r\n } else {\r\n setTimeout(() => {\r\n let input = document.getElementById('paymentAmount');\r\n input && input.select();\r\n }, 700)\r\n }\r\n }\r\n\r\n couponClick = () => {\r\n this.setState({\r\n couponLight: !this.state.couponLight\r\n })\r\n }\r\n\r\n render() {\r\n const { PayIcon , PayIcon2 , PayStyle , Differentiate} = enumController.getEnumOj();\r\n const { btnDissabled, dataSource, discountTotalAmount,discountRetailTotalAount,discountPrototypeTotalAmount, storageValue, czkValue, newPassConfirm, newPass, isNotAutoFocus} = this.state;\r\n\r\n let { paymode, brefund,newStyle } = this.store;\r\n let { type, amount, totalVariety, totalQuantity, isReturn, quantityDetail,memberDisabled, noIsMinAmount } = this.props\r\n // 原单退货\r\n let boriginReturn = this.getBoriginReturn();\r\n let totalTaxAmount = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.TotalTaxAmount;\r\n\r\n //收订金\r\n let IdbusiType = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.IdbusiType;\r\n let BuyerPayFreight = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.BuyerPayFreight;\r\n let DistributionMode = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.DistributionMode;\r\n if(IdbusiType == 38 && this.isBook && this.percentageWhenBook < 100 && (!DistributionMode.Id || DistributionMode.Id == 'ON_SITE_PICKUP')){\r\n totalTaxAmount = totalTaxAmount * this.percentageWhenBook / 100;\r\n }\r\n\r\n // 单据模式\r\n let thePaymodes=newStyle?_filter(paymode.thePaymodes,(m)=>{\r\n if(IdbusiType == 39){\r\n return !(this.checkModeDisabled(m.paymentType,brefund,boriginReturn)&& parseFloat(m.value)==0) && m.paymentType != PayStyle.hyczk;\r\n }\r\n return !(this.checkModeDisabled(m.paymentType,brefund,boriginReturn)&& parseFloat(m.value)==0);\r\n }):paymode.thePaymodes;\r\n let { paymodes, settle, currentMode } =paymode;\r\n\r\n if (IdbusiType == 39){\r\n totalTaxAmount = stores.drawerStore.thisWaitPaidAmount;\r\n paymodes = _filter(paymodes, mode => { return mode.paymentType != PayStyle.hyczk}); //取货过滤掉储值\r\n }\r\n // 积分兑换 总积分\r\n let ExchangeIntegral = this.context && this.context.viewModel && this.context.viewModel.data.ExchangeIntegral;\r\n\r\n let _hasSMZF = _find(paymodes, (item) => { return item.paymentType === PayStyle.smzf });\r\n\r\n //同时存在微信、支付宝、扫码支付三种方式,在非退货模式下,隐藏微信、支付宝。\r\n if (!isReturn && _hasSMZF) {\r\n paymodes = paymodes.filter((mode)=>{\r\n if (mode.paymentType == PayStyle.wx || mode.paymentType == PayStyle.zfb) return null;\r\n return true;\r\n })\r\n }\r\n\r\n const quickPay =boriginReturn ? [] :\r\n _filter(paymodes, (paymode) =>{\r\n if(IdbusiType == 39){\r\n return paymode.isQuick && paymode.paymentType != PayStyle.hyczk; //取货过滤掉储值\r\n } else {\r\n return paymode.isQuick;\r\n }\r\n });\r\n const productsIsEmpty = (type!=1 && this.context.viewModel.data.RetailDetails.length == 0) || (type==1 && parseFloat(amount || 0) <= 0) || memberDisabled || noIsMinAmount;\r\n const moreToolbtns=[];\r\n const params = {\r\n pagination: {\r\n el: '.swiper-pagination',\r\n },\r\n spaceBetween: 30\r\n }\r\n const carouselStart = 10;\r\n const carouselStart2 = 8;\r\n const currentIndex = this.state.currentIndex;\r\n const hasmember = currentMode && currentMode.member && currentMode.member.id;\r\n let quantity1 = 0, quantity2 = 0, quantity3 = 0, quantity4 = 0;\r\n let sumQuantity = 0;//数量总和的值,包括称重的。\r\n let { buyQuantity = 0, returnQuantity = 0 } = quantityDetail || {};\r\n let quantityPrecision = PosInitData(\"QuantityPrecision\");\r\n quantityPrecision = quantityPrecision ? parseInt(quantityPrecision) : '';\r\n if (this.props.showAmount) {\r\n quantity1 = totalVariety || this.context.viewModel.data.RetailDetails.length;\r\n quantity2 = this.changeDecimalBuZero(totalQuantity, quantityPrecision);\r\n quantity3 = this.changeDecimalBuZero(buyQuantity, quantityPrecision);\r\n quantity4 = this.changeDecimalBuZero(returnQuantity, quantityPrecision);\r\n let sumRetailDetails = this.context && this.context.viewModel && this.context.viewModel.data.RetailDetails;\r\n if (sumRetailDetails && sumRetailDetails.length > 0) {\r\n sumRetailDetails.forEach(v => {\r\n sumQuantity += Math.abs(v.Quantity);\r\n })\r\n }\r\n sumQuantity = this.changeDecimalBuZero(sumQuantity, quantityPrecision);\r\n }\r\n\r\n const themodeHyczk=thePaymodes.filter((mode) => mode.paymentType === PayStyle.hyczk && mode.value !== '0.00');\r\n return (\r\n <div className=\"billingSettlement\" ref={r => this.billingSettlementDocumnet = r}>\r\n {\r\n this.props.MemberPoints ?\r\n (\r\n <div className=\"receivable2\">\r\n <div className=\"text\">本次应收:</div>\r\n <div className={classnames({ \"amount\": true, \"smallfont\": Math.abs(totalTaxAmount) > 100000 })}>{getFixedNumber(totalTaxAmount)}</div>\r\n <div className='total'>{`数量合计${quantity2}`}</div>\r\n <div className='total'>{`积分合计${ExchangeIntegral || 0}`}</div>\r\n </div>\r\n )\r\n :\r\n (\r\n this.props.showAmount &&\r\n <div className=\"receivable\">\r\n <div className='summary'>\r\n <div className=\"text\">本次应收:</div>\r\n <div className={classnames({ \"amount\": true, \"smallfont\": Math.abs(totalTaxAmount) > 100000 })}>{getFixedNumber(totalTaxAmount)}</div>\r\n </div>\r\n {\r\n isReturn === true ?\r\n <div className=\"remark1\">\r\n <span>{`共${quantity1}种`}</span>\r\n <span className='span'>销</span><span>{quantity3}</span><span>件</span>\r\n <span className='span'>退</span><span>{quantity4}</span><span>件</span>\r\n <span className='span'>合计</span><span>{sumQuantity}</span>\r\n </div>\r\n :\r\n <div className=\"remark2\">\r\n <span>{`共${quantity1}种`}</span>\r\n <span className=\"span\">{quantity2}</span><span>件</span>\r\n <span className=\"span\">合计</span><span>{sumQuantity}</span>\r\n </div>\r\n }\r\n </div>\r\n )\r\n }\r\n <div className=\"btns\">\r\n {\r\n !this.isHorizontalPad && !this.props.MemberPoints &&\r\n _map(quickPay, (p, i) => {\r\n let iconclass = PayIcon2[p.paymentType] ? `color${p.paymentType}` : \"primary-color\";\r\n return (\r\n <Button\r\n className={classnames({ \"quick\": true, \"quick2\": type==1 })}\r\n key={`paymentType_${p.paymentType}`}\r\n onClick={() => { this.btnDebounced(p.paymentType, true) }}\r\n disabled={productsIsEmpty || (type!=1 && this.checkModeDisabled(p.paymentType, (this.context.viewModel.data.TotalTaxAmount || 0 - this.context.viewModel.data.OnlinePaymentAmount || 0) < 0, boriginReturn))}\r\n >\r\n <div className={classnames({ [iconclass]: true, \"icon\": true })}>\r\n <Ticon type={PayIcon2[p.paymentType] || PayIcon2['default']} />\r\n </div>\r\n <div className=\"text\">\r\n {p.name.length > 8 ? _truncate(p.name, { length: 7, omission: '' }) + '...' : p.name}\r\n </div>\r\n </Button>)\r\n })\r\n }\r\n <Button key=\"settle\" className={classnames({ \"settle\": true, \"settle2\": type == 1,\"settleStorage\" :true ,'primary-btn': true })} onClick={() => { this.btnDebounced() }} disabled={productsIsEmpty}>\r\n {this.props.isMemberPoints ? '立即兑换' : this.props.isMemberPointsReturn ? '退货': ( IdbusiType == 39 && stores.drawerStore.thisWaitPaidAmount == 0 ) ? '取货' : settle.name}\r\n </Button>\r\n </div>\r\n\r\n\r\n {/* // 触屏模式复合结算 */}\r\n {!newStyle && <Drawer\r\n title=\"复合结算\"\r\n width=\"600px\"\r\n placement=\"right\"\r\n maskClosable\r\n closable={false}\r\n onClose={this.handleCancel}\r\n visible={this.state.visible}\r\n destroyOnClose={true}\r\n className={`settlement-wraper`}\r\n style={{'zIndex': 1006}}\r\n >\r\n <div className= {`settlement ${hotKey.hotKeyBindClass('5')}`} style={{height: '100%', paddingBottom: '68px'}}>\r\n <div className={classnames({ \"toolbar bg-subsidiary-gray-color4\": true, \"carousel\": paymodes.length > carouselStart })}>\r\n {\r\n paymodes.length <= carouselStart &&\r\n <div>\r\n {\r\n _map(paymodes, (mode, index) => {\r\n return this.renderToolbtn(mode, index, 'bookPay')\r\n })\r\n }\r\n </div>\r\n }\r\n {\r\n paymodes.length > carouselStart && this.paymodesCarouselList(params,paymodes,carouselStart)\r\n }\r\n </div>\r\n <div className=\"paydetail\" style={{maxHeight:(document.body.clientHeight-(paymodes.length>6?275:200))+'px', height: 'calc(100% - 198px)'}}>\r\n <div className=\"left\">\r\n {\r\n thePaymodes.length==0&&<div className=\"emptydata detailempty\">请添加结算方式</div>\r\n }\r\n {\r\n // _map(_sortBy(thePaymodes, pay => pay['order'] || 0), (mode) => {\r\n _map(thePaymodes, (mode) => {\r\n const index=mode.paymethodId\r\n return (<div key={index+''} className=\"modeItem\">\r\n <div className={classnames({\"main\":true,\"focusbottom\":currentIndex==index})}>\r\n <div className={classnames({\"name\":true})}>{mode.name}</div>\r\n <div className={classnames({\"content\":true})}>\r\n {\r\n (mode.paymentType == PayStyle.hyczk || mode.paymentType == PayStyle.jfdx || mode.paymentType == PayStyle.djq) ?\r\n <input id={`inputS${index}`}\r\n className={hotKey.hotKeyNotFilter()}\r\n onClick={() => { this.editModal(index, mode.paymentType, type != 1 ? boriginReturn : null) }} value={getFixedNumber(mode.value)} />\r\n :\r\n <input id={`inputS${index}`}\r\n className={hotKey.hotKeyNotFilter()}\r\n value={mode.exchangeRate != 1 ? mode.value2 : mode.value}\r\n onClick={e => this.onHotKeyClick2(index, mode, paymode, e)}\r\n onBlur={e => this.onBlur(index, e, 'bookPay')}\r\n onFocus={e => this.onFocusHack(index, mode, paymode, e)}\r\n onChange={e => this.handleChange(index, e, 'bookPay')}\r\n />\r\n }\r\n </div>\r\n <span className='minus' onClick={() => {\r\n this.onDelPay(index,boriginReturn && mode.boriginReturn,mode.paymentType, 'bookPay');\r\n }}>\r\n <Ticon type=\"shanchu\" className=\"minusIcon primary-color\"/>\r\n </span>\r\n </div>\r\n {\r\n mode.paymentType==PayStyle.djq?\r\n <div className=\"append\" style={{ display:(mode.paymentType==PayStyle.hyczk || mode.paymentType==PayStyle.djq)?'block':'none'}}>\r\n <span className=\"balance\">溢收金额:</span>\r\n <span>{mode.overchargesAmount}</span>\r\n </div>:\r\n <div className=\"append\" style={{ display:(mode.paymentType==PayStyle.hyczk || mode.paymentType==PayStyle.djq)?'block':'none'}}>\r\n <span className=\"fl\">卡号:</span>\r\n <span className=\"fl\">{mode && mode.storageCardNo}</span>\r\n <br />\r\n <span className=\"balance fl\">余额:</span>\r\n <span className=\"fl\">{ getFixedNumber(mode.balance)}</span>\r\n <br />\r\n {type != 1 && themodeHyczk && themodeHyczk.length && themodeHyczk[themodeHyczk.length -1].paymethodId === mode.paymethodId && !isReturn &&\r\n <Button onClick={() => {\r\n this.appendCzkmode(boriginReturn, 'noPlaySetPwd');\r\n }} className='addCard btn-border-primary'><Ticon type=\"jiahao\" className=\"plus b-theme-color\" />\r\n <span>添加卡</span>\r\n </Button>\r\n }\r\n </div>\r\n }\r\n </div>)\r\n })\r\n }\r\n </div>\r\n <div className=\"right\">\r\n <div className=\"righttop\">\r\n {paymode.onlineamount>0 && <div className=\"receivable\">\r\n <span>线上已收</span>\r\n <span>{paymode.onlineamount}</span>\r\n </div>}\r\n <div className=\"receivable\">\r\n <span>应收金额</span>\r\n <span>{paymode.amount}</span>\r\n </div>\r\n <div className=\"receivable\">\r\n <span>剩余应收</span>\r\n <span>{paymode.receivable}</span>\r\n </div>\r\n <div className=\"receivable\">\r\n <span>实收金额</span>\r\n <span className=\"received\">{paymode.received}</span>\r\n </div>\r\n <div className=\"receivable\" style={{display:this.checkCharge()?'block':'none'}}>\r\n <span>找零金额</span>\r\n <span className=\"received\">{getFixedNumber(Math.abs(paymode.receivable))}</span>\r\n </div>\r\n <div className=\"receivable\" style={{display: (DistributionMode && (DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE')) && BuyerPayFreight && BuyerPayFreight >0 ?'block':'none'}}>\r\n <span>运费</span>\r\n <span className=\"received\">{getFixedNumber(Math.abs(BuyerPayFreight))}</span>\r\n </div>\r\n </div>\r\n {\r\n type != 1 && !isReturn && <div onClick={this.prototypeDetailedClick} className='prototypeDetailed primary-color'>优惠明细<Ticon type='shouqi1'/></div>\r\n }\r\n <div className={this.isHorizontalPad ? 'keyboard_ios' : 'keyboard'}>\r\n {\r\n !this.isHorizontalPad &&\r\n <Keyboard type=\"number\" onChange={this.onKeyboardChange.bind(this)}></Keyboard>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"payfooter\">\r\n <span className=\"hotKeyEnter\" onClick={this.onHotKeyEnter}></span>\r\n <span><Button className=\"cancel\" onClick={this.handleCancel}>取消</Button></span>\r\n <span><Button type=\"primary\" className={this.isHorizontalPad ? \"settle1\" : \"settle\"} onClick={this.handleSettle}\r\n disabled={this.checkSettleDisabled(paymode, thePaymodes)}>结算</Button></span>\r\n </div>\r\n </div>\r\n </Drawer>}\r\n {/* // 触屏模式储值结算 */}\r\n\r\n {/* // 单据模式的复合结算 */}\r\n {newStyle && <Drawer\r\n title=\"复合结算\"\r\n width=\"600px\"\r\n placement=\"right\"\r\n maskClosable\r\n closable={false}\r\n onClose={this.handleCancel}\r\n visible={this.state.visible}\r\n destroyOnClose={true}\r\n className={`settlement-wraper`}\r\n style={{'zIndex': 1006}}\r\n >\r\n <div className= {`settlement ${hotKey.hotKeyBindClass('5')}`}>\r\n <div className=\"paydetail newstyle\">\r\n <div className=\"top\">\r\n <div className=\"righttop\">\r\n {paymode.onlineamount>0 && <div className=\"receivable\">\r\n <span>线上已收</span>\r\n <span>{paymode.onlineamount}</span>\r\n </div>}\r\n <div className=\"receivable\">\r\n <span>应收金额</span>\r\n <span>{paymode.amount}</span>\r\n </div>\r\n <div className=\"receivable\">\r\n <span>剩余应收</span>\r\n <span>{paymode.receivable}</span>\r\n </div>\r\n <div className=\"receivable\">\r\n <span>实收金额</span>\r\n <span className=\"received\">{paymode.received}</span>\r\n </div>\r\n <div className=\"receivable\" style={{display:this.checkCharge()?'block':'none'}}>\r\n <span>找零金额</span>\r\n <span className=\"received\">{getFixedNumber(Math.abs(paymode.receivable))}</span>\r\n </div>\r\n <div className=\"receivable\" style={{display: (DistributionMode && (DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE')) && BuyerPayFreight && BuyerPayFreight >0 ?'block':'none'}}>\r\n <span>运费</span>\r\n <span className=\"received\">{getFixedNumber(Math.abs(BuyerPayFreight))}</span>\r\n </div>\r\n </div>\r\n {\r\n type != 1 && !isReturn && <div onClick={this.prototypeDetailedClick} className='prototypeDetailed primary-color'>优惠明细<Ticon type='shouqi1'/></div>\r\n }\r\n </div>\r\n <div className=\"bottom\">\r\n {\r\n thePaymodes.length==0&&<div className=\"emptydata detailempty\">请添加结算方式</div>\r\n }\r\n {\r\n _map(thePaymodes, (mode, mindex) => {\r\n let { isReturn } = this.props;\r\n let hasSMZF = _find(thePaymodes, m => { return m.paymentType === PayStyle.smzf});\r\n //同时存在微信、支付宝(或者收钱吧)、扫码支付三种方式,在非退货模式下,隐藏微信、支付宝。\r\n let hotkeyIndex = mindex;\r\n if (!isReturn && hasSMZF) {\r\n if (mode.paymentType == PayStyle.wx || mode.paymentType == PayStyle.zfb) {\r\n return null;\r\n } else {\r\n let theArr = _filter(thePaymodes, t => { return t.paymentType != PayStyle.wx && t.paymentType != PayStyle.zfb })\r\n hotkeyIndex = _findIndex(theArr, m => { return m.paymentType == mode.paymentType })\r\n }\r\n }\r\n const hyczkFindIndex = _findIndex(thePaymodes, (m) => { return m.paymentType == PayStyle.hyczk; })\r\n const hyczkList = _filter(thePaymodes, (m) => { return m.paymentType == PayStyle.hyczk; })\r\n let lastStorageCardIndex = 0\r\n _map(thePaymodes, (m, i) => {\r\n if (m.paymentType === PayStyle.hyczk) lastStorageCardIndex = i\r\n })\r\n if ( mindex > 0 && hyczkList.length > 1 && mindex > lastStorageCardIndex) {\r\n hotkeyIndex = hotkeyIndex - hyczkList.length + 1\r\n }\r\n\r\n console.log(thePaymodes)\r\n\r\n const index = mode.paymethodId;\r\n return (mode.paymentType == PayStyle.hyczk && _findIndex(thePaymodes, (m) => { return m.paymentType == PayStyle.hyczk; }) != mindex ? <div></div> :\r\n <div key={index + ''} className=\"modeItem\">\r\n <div className={classnames({\"main\":true,\"focusbottom\":currentIndex==index})}>\r\n <div className={classnames({ \"name\": true})}>\r\n <div className=\"icon\"><Ticon type={PayIcon[mode.paymentType] || PayIcon['default']} /></div>\r\n <div className=\"text\">{mode.name}</div>\r\n <div className=\"hotkey\">{this.isHorizontalPad ? '' : this.compoundHotkeysList[hotkeyIndex] || ''}</div>\r\n </div>\r\n <div className={classnames({ \"content\": true})}>\r\n {\r\n (mode.paymentType == PayStyle.hyczk || mode.paymentType == PayStyle.jfdx || mode.paymentType == PayStyle.djq)\r\n ?\r\n <input id={`inputS${index}`}\r\n\r\n className={hotKey.hotKeyNotFilter(\"paymode hotkey_\" + this.compoundHotkeysList[hotkeyIndex])}\r\n disabled={this.checkModeDisabled(mode.paymentType, brefund, boriginReturn)}\r\n onClick={() => {\r\n if (type != 1 && mode.paymentType == PayStyle.hyczk) {\r\n if (themodeHyczk && themodeHyczk.length === 0) {\r\n this.onHotKeyClick1(mode, index, boriginReturn);\r\n }\r\n } else {\r\n this.onHotKeyClick1(mode, index, boriginReturn, 'bookPay');\r\n }\r\n }}\r\n value={mode.paymentType == PayStyle.hyczk ? getFixedNumber(\r\n _reduce(_filter(thePaymodes, (tm) => { return tm.paymentType == PayStyle.hyczk }), function (sum, m) {\r\n return Math.Add(sum, m.value);\r\n }, 0)\r\n ) : getFixedNumber(mode.value)} />\r\n :\r\n <input id={`inputS${index}`}\r\n className={hotKey.hotKeyNotFilter(\"paymode hotkey_\" + this.compoundHotkeysList[hotkeyIndex])}\r\n disabled={this.checkModeDisabled(mode.paymentType, brefund, boriginReturn) || this.checkScanDisabled(mode.paymentType)}\r\n value={mode.exchangeRate != 1 ? mode.value2 : mode.value}\r\n onClick={e => this.onHotKeyClick2(index, mode, paymode, e, 'bookPay')}\r\n onBlur={e => this.onBlur(index, e, 'bookPay')}\r\n onFocus={e => this.onFocusHack(index, mode, paymode, e)}\r\n onChange={e => this.handleChange(index, e, 'bookPay')}\r\n />\r\n }\r\n </div>\r\n </div>\r\n {mode.paymentType == PayStyle.djq && <div className=\"append\" >\r\n <span className=\"balance\">溢收金额:</span>\r\n <span>{mode.overchargesAmount}</span>\r\n </div>}\r\n {_map(_filter(thePaymodes, (tm) => { return mode.paymentType == PayStyle.hyczk && parseFloat(tm.value || 0) != 0 && tm.paymentType == PayStyle.hyczk }), (m) => {\r\n return <div className=\"append\">\r\n <span >卡号:</span>\r\n {\r\n type != 1 ?\r\n (<span >{m && m.storageCardNo}</span>) :\r\n (<span >{m.member && m.member.cardNo}</span>)\r\n }\r\n <span className=\"fr\">{getFixedNumber(m.value)}</span>\r\n <span className=\"balance fr\">支付金额:</span>\r\n <br />\r\n {type != 1 && themodeHyczk && themodeHyczk.length && themodeHyczk[themodeHyczk.length -1].paymethodId === m.paymethodId &&\r\n <Button onClick={() => this.onHotKeyClick1(mode, index, boriginReturn)} className='addCard btn-border-primary'><Ticon type=\"jiahao\" className=\"plus b-theme-color\" />\r\n <span>添加卡</span>\r\n </Button>\r\n }\r\n </div>\r\n })}\r\n </div>)\r\n })\r\n }\r\n </div>\r\n </div>\r\n <div className=\"payfooter\">\r\n <span className=\"hotKeyEnter\" onClick={this.onHotKeyEnter}></span>\r\n <span><Button className=\"cancel\" onClick={this.handleCancel}>取消</Button></span>\r\n <span><Button type=\"primary\" className={this.isHorizontalPad ? \"settle1\" : \"settle\"} onClick={this.handleSettle}\r\n disabled={this.checkSettleDisabled(paymode, thePaymodes)}>结算</Button></span>\r\n </div>\r\n </div>\r\n </Drawer>}\r\n\r\n <Modal\r\n wrapClassName={`czk ${this.isHorizontalPad ? 'extraHeight' : ''}`}\r\n width=\"400px\"\r\n visible={this.state.czkVisible}\r\n maskClosable={false}\r\n destroyOnClose={true}\r\n title={\"储值结算\"}\r\n onCancel={this.handleCzkCancel}\r\n keyboard={false}\r\n centered={ !this.isHorizontalPad ? true : false}\r\n zIndex={1007}\r\n footer={<div className=\"action\">\r\n <Button onClick={this.handleCzkCancel}>取消</Button>\r\n <Button type=\"primary\" disabled={currentMode && currentMode.errinfo!=''} onClick={this.handleCzkOk}>确定</Button>\r\n </div>}\r\n >\r\n <div>\r\n <div className=\"info\">\r\n {hasmember && <div className={classnames({\"type\":true,'colwidth3':hasmember})}>\r\n <div className=\"value valuetext\">{(currentMode && currentMode.member && currentMode.member.type) || '普通'}</div>\r\n <div className=\"name\">类型</div>\r\n </div>}\r\n <div className=\"gap\">\r\n <div className=\"gap1\"></div>\r\n <div className=\"gap2\"></div>\r\n <div className=\"gap1\"></div>\r\n </div>\r\n <div className={classnames({\"balance\":true,'colwidth2':!hasmember,'colwidth3':hasmember})}>\r\n <div className=\"value\">{currentMode && getFixedNumber(currentMode.balance)}</div>\r\n <div className=\"name\">可用余额</div>\r\n </div>\r\n <div className=\"gap\">\r\n <div className=\"gap1\"></div>\r\n <div className=\"gap2\"></div>\r\n <div className=\"gap1\"></div>\r\n </div>\r\n <div className={classnames({\"available\":true,'colwidth2':!hasmember,'colwidth3':hasmember})}>\r\n <div className=\"value\">{currentMode && getFixedNumber(Math.max(0,Math.min(currentMode.maxamount,currentMode.balance)))}</div>\r\n <div className=\"name\">本单可用</div>\r\n </div>\r\n </div>\r\n <div className=\"no\">\r\n <span>储值卡号:</span>\r\n <span>\r\n {/* <input value={currentMode && currentMode.member.cardNo} ref={input => this['inputczk'] =input } onKeyDown={e=>{if(e.keyCode==13){this.loadCzk(e.target.value);}}}></input> */}\r\n <Input\r\n type='text'\r\n placeholder=\"请扫描或输入手机号/储值卡号\"\r\n className={`input ${(this.hasElectron === true && this.iCCardServer === 1 || this.isHorizontalPad === true) ? 'temp' : ''}`}\r\n onChange={(e) => this.onCzkChange(e.target.value)}\r\n defaultValue={currentMode && currentMode.storageCardNo}\r\n value={czkValue}\r\n ref={input => this.czkInput =input}\r\n onKeyDown={\r\n async (e)=>{\r\n if(e.keyCode==13){\r\n let time = Date.parse(new Date());\r\n if (this.isStorageCardInputType && (time - this.keypressStime > 350)) {\r\n Message.warn('储值卡不可键盘录入,请刷卡!');\r\n this.keypressStime = null;\r\n this.setState({\r\n czkValue: null\r\n })\r\n return;\r\n }\r\n this.keypressStime = null;\r\n await this.loadCzk(e.target.value);\r\n const {paymode} = this.store;\r\n if (!paymode.currentMode.storageCardNo) {\r\n this.setState({\r\n czkvalue: null\r\n })\r\n }\r\n } else if (!this.keypressStime && e.keyCode !== 8) {\r\n this.keypressStime = Date.parse(new Date());\r\n }\r\n }\r\n }\r\n onFocus={(e)=>{\r\n this.inputTarget = this.czkInput.input;\r\n !this.state.prototypeVisible && Keyboard.open((v)=>{\r\n const value = Keyboard.getNewValue(this.inputTarget, this.inputTarget.value, v);\r\n this.onCzkChange(value);\r\n }, this.czkKeyboardOnOk, this.czkKeyboardOnClose)()\r\n }\r\n }\r\n onBlur={(e)=>{\r\n Keyboard.close();\r\n }}\r\n />\r\n </span>\r\n {\r\n this.hasElectron === true && this.iCCardServer === 1 &&\r\n <Ticon className='icon' onClick={this.handleReadICard} type=\"ICka\" />\r\n }\r\n {\r\n this.isHorizontalPad &&\r\n <Ticon type='saomiao1' className='icon' onClick={this.changeScanProduct} />\r\n }\r\n {\r\n /* 扫描组件 */\r\n this.isHorizontalPad &&\r\n <Scan ref={scan => this.scanObj = scan} onChange={this.onScanCzkResult} />\r\n }\r\n </div>\r\n <div className=\"receivable\">\r\n <span>剩余应收:</span>\r\n <span>{paymode.receivable}</span>\r\n </div>\r\n {/* <div className=\"receivable\">\r\n <span>限收金额:</span>\r\n <span>{currentMode && getFixedNumber(currentMode.maxamount)}</span>\r\n </div> */}\r\n <div className=\"received receivedNumber\">\r\n <span>实收金额:</span>\r\n <span>\r\n {/* <NumKeyboard\r\n id='paymentAmount'\r\n className={`${hotKey.hotKeyNotFilter('input')} receivedInput`}\r\n type='text'\r\n style={{ width: 230}}\r\n onChange={(value)=>{this.setCurrentModeValue(value,Math.min(currentMode.maxamount,currentMode.member.balance))}}\r\n defaultValue={currentMode && getFixedNumber(brefund?currentMode.value:Math.min(currentMode.value,currentMode.maxamount,currentMode.member.balance))}\r\n maxLength={12}\r\n precisionLength={2}\r\n ref={input => this.inputCzkAmount = input}\r\n onFocus={(e)=>{\r\n this.inputkey=\"inputCzkAmount\";\r\n Keyboard.open((v)=>{\r\n const value = Keyboard.getNewValue(this[this.inputkey].input, this[this.inputkey].input.value, v);\r\n this.setCurrentModeValue(value,Math.min(currentMode.maxamount,currentMode.member.balance));\r\n }, this.keyboardOnOk, this.keyboardOnClose)()\r\n }\r\n }\r\n onBlur={(e)=>{\r\n Keyboard.close();\r\n this.setCurrentModeValue(getFixedNumber(this.inputCzkAmount.input.value),Math.min(currentMode.maxamount,currentMode.member.balance));\r\n }}\r\n /> */}\r\n <Input\r\n id='paymentAmount'\r\n type='text'\r\n className={hotKey.hotKeyNotFilter('input')}\r\n value={storageValue}\r\n onChange={(event)=>{this.setCurrentModeValue(event.target.value,Math.min(currentMode.maxamount,currentMode.balance))}}\r\n defaultValue={currentMode && getFixedNumber(brefund?currentMode.value:Math.min(currentMode.value,currentMode.maxamount,currentMode.balance))}\r\n ref={ref => this[\"inputCzkAmount\"] = ref}\r\n onFocus={(e)=>{\r\n this.inputkey=\"inputCzkAmount\";\r\n Keyboard.open((v)=>{\r\n const value = Keyboard.getNewValue(this[this.inputkey].input, this[this.inputkey].input.value, v);\r\n this.setCurrentModeValue(value,Math.min(currentMode.maxamount,currentMode.balance));\r\n }, this.keyboardOnOk, this.keyboardOnClose)()\r\n }\r\n }\r\n onBlur={(e)=>{\r\n Keyboard.close();\r\n this.setCurrentModeValue(getFixedNumber(this.inputCzkAmount.input.value),Math.min(currentMode.maxamount,currentMode.balance));\r\n }}\r\n />\r\n </span>\r\n </div>\r\n {\r\n !isReturn && <div className=\"received\">\r\n <span className=\"label\">优惠明细:</span>\r\n <span className=\"yfje economize\">省¥{discountPrototypeTotalAmount}</span>\r\n <span onClick={this.prototypeDetailedClick} className='prototypeDetailed primary-color'>优惠明细<Ticon type='you2'/></span>\r\n </div>\r\n }\r\n <div className=\"error\">{currentMode && currentMode.errinfo}</div>\r\n {(!this.store.member || !this.store.member.ID) && <div className=\"tipStype\">在此处录入会员不会享有折扣、会员价等优惠,若需要优惠请返回至开单界面录入会员!</div>}\r\n </div>\r\n </Modal>\r\n <Modal\r\n wrapClassName={`${hotKey.hotKeyBindClass('5', 'moreCzkModal')} ${this.isHorizontalPad ? 'extraHeight' : ''}`}\r\n width=\"400px\"\r\n visible={this.state.moreCzkVisible}\r\n maskClosable={false}\r\n destroyOnClose={true}\r\n title={\"储值结算\"}\r\n onCancel={this.handleMoreCzkCancel}\r\n keyboard={false}\r\n centered={ !this.isHorizontalPad ? true : false}\r\n zIndex={1007}\r\n footer={<div className=\"action\">\r\n <span className='showUseCard'>仅列示可用的储值卡</span>\r\n <Button onClick={this.handleMoreCzkCancel}>取消</Button>\r\n <Button type=\"primary\" onClick={this.handleMoreCzkOk}>确定</Button>\r\n </div>}\r\n >\r\n <div>\r\n <MoreCzkTable\r\n setMoreCzkIndex={this.setMoreCzkIndex}\r\n selectedRowIndex={this.state.selectedRowIndex}\r\n dataSource={this.state.memberdata1}>\r\n </MoreCzkTable>\r\n </div>\r\n </Modal>\r\n {/* 设置密码弹框 开始*/}\r\n <Modal\r\n wrapClassName={`djq ${this.isHorizontalPad ? 'extraHeight' : ''} passwordContainer`}\r\n width=\"400px\"\r\n visible={this.state.showSetPwdModal}\r\n backdropClosable={false}\r\n destroyOnClose={true}\r\n footer={null}\r\n onCancel={this.handleSetPwdCancel}\r\n keyboard={false}\r\n centered={ !this.isHorizontalPad ? true : false}\r\n title='设置密码'\r\n zIndex={1007}\r\n footer={<div className=\"action\">\r\n <Button onClick={this.handleSetPwdCancel}>取消</Button>\r\n <Button type=\"primary\" disabled={btnDissabled} onClick={this.handleSetModal}>确定</Button>\r\n </div>}\r\n >\r\n <div className='setPwdContainer'>\r\n <div className='setPwdDiv'>\r\n <div className=\"one\">新密码</div>\r\n <div className=\"two\">\r\n <Input.Password\r\n className=\"content\"\r\n placeholder=\"请输入6位数字密码\"\r\n style={{ width: 266, height: 32 }}\r\n maxLength={6}\r\n value={newPass}\r\n ref={input => this.inputNewAmount = input}\r\n onChange={value => this.setPwdValue('newPass', value.target.value)}\r\n onBlur={value => this.handleBlur('newPass')}\r\n onPressEnter={() => this.onPressEnterCzk('newPass')}\r\n />\r\n </div>\r\n </div>\r\n <div className='setPwdDiv'>\r\n <div className=\"one\">确认新密码</div>\r\n <div className=\"two\">\r\n <Input.Password\r\n className=\"content\"\r\n placeholder=\"请确认6位数字密码\"\r\n style={{ width: 266, height: 32 }}\r\n maxLength={6}\r\n value={newPassConfirm}\r\n ref={input => this.inputConfirmAmount = input}\r\n onChange={value => this.setPwdValue('newPassConfirm', value.target.value)}\r\n onBlur={value => this.handleBlur('newPassConfirm')}\r\n onPressEnter={() => this.onPressEnterCzk('newPassConfirm')}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n {/* <div className=\"action\">\r\n <Button onClick={this.handleSetPwdCancel}>取消</Button>\r\n <Button type=\"primary\" disabled={currentMode && currentMode.errinfo!=''} onClick={this.handleSetModal}>确定</Button>\r\n </div> */}\r\n </Modal>\r\n {/* 设置密码弹框 开始*/}\r\n {/* 代金券弹框 开始*/}\r\n <Modal\r\n wrapClassName={`djq ${this.isHorizontalPad ? 'extraHeight' : ''}`}\r\n width=\"810px\"\r\n visible={this.state.djqVisible}\r\n maskClosable={false}\r\n onOk={this.handleDjqOk}\r\n destroyOnClose={true}\r\n onCancel={this.handleDjqCancel}\r\n centered={ !this.isHorizontalPad ? true : false}\r\n title={Differentiate.COUPON+'支付'}\r\n zIndex={1007}\r\n footer={<div className=\"action\">\r\n <Button onClick={this.handleDjqCancel}>取消</Button>\r\n <Button type=\"primary\" disabled={currentMode && currentMode.errinfo!=''} onClick={this.handleDjqOk}>确定</Button>\r\n </div>}\r\n >\r\n <div>\r\n {currentMode && !currentMode.boriginReturn && <div className=\"djq1\">\r\n <div className=\"col1\">{Differentiate.COUPON}号</div>\r\n <div className=\"col2\">\r\n <div>\r\n {/* <input ref={input => this['inputdjq'] =input } onKeyDown={e=>{if(e.keyCode==13){this.addDjq();}}}></input> */}\r\n <Input\r\n type='text'\r\n placeholder={`扫描/输入${Differentiate.COUPON}号并回车`}\r\n className=\"input\"\r\n id='djqInput'\r\n // onChange={this.onDjqChange}\r\n // value={currentMode && currentMode.member.cardNo}\r\n ref={input => this.inputdjq =input}\r\n onKeyDown={\r\n (e)=>{if(e.keyCode==13){this.addDjq(e.target.value)}}\r\n }\r\n onFocus={e => {\r\n this.inputTarget = this.inputdjq.input;\r\n Keyboard.open((v) => {\r\n const value = Keyboard.getNewValue(this.inputTarget, this.inputTarget.value, v);\r\n this.onDjqChange(value,true);\r\n }, this.djqKeyboardOnOk, this.djqKeyboardOnClose)()\r\n }}\r\n onBlur={(e) => { Keyboard.close(); this.inputdjq.input.value = ''; }}\r\n />\r\n </div>\r\n <div className=\"row2\">{currentMode && currentMode.errinfo}</div>\r\n </div>\r\n <div className='col4'>\r\n <Button className={`${this.state.couponLight ? \"primary-color b-theme\" : 'couponBorder'}`} onClick={this.couponClick}>可用优惠券</Button>\r\n <Button className={`${!this.state.couponLight ? \"primary-color b-theme\" : 'couponBorder'}`} onClick={this.couponClick}>不可用优惠券</Button>\r\n <span className='couponTip'>选择券后、不可叠加、金额不满足的券会置灰</span>\r\n </div>\r\n {\r\n this.isHorizontalPad &&\r\n <div className=\"col3\">\r\n <Ticon type='saomiao1' className='icon' onClick={this.changeScanProduct} />\r\n <Scan ref={scan => this.scanObj = scan} onChange={this.onScanDjqResult} />\r\n </div>\r\n }\r\n </div>}\r\n <div className=\"djq2outer\">\r\n <div className=\"djq2\">\r\n {\r\n currentMode && currentMode.djqs && currentMode.djqs.length > 0 ? _map(currentMode.djqs || [],(q,index)=>{\r\n if (!this.state.couponLight && !q.count) {\r\n return;\r\n }\r\n if (this.state.couponLight && (q.count && q.count === 1)) {\r\n return;\r\n }\r\n return (<div key={index + ''} className=\"djqItem\">\r\n {\r\n (!q.promoMethodEnum || q.promoMethodEnum == 'CASH_COUPON') ?\r\n <div className={`djqLeft ${q.IsEnable ? 'djqLeftCash' : 'djqLeftCashGrey'}`}>\r\n <div className=\"amount\">\r\n <span>{q.nominalAmount}</span>\r\n <span>元</span>\r\n </div>\r\n <div className=\"lijian\">立减</div>\r\n </div>\r\n :\r\n <div className={`djqLeft ${q.IsEnable ? 'djqLeftCash' : 'djqLeftCashGrey'}`}>\r\n <div className=\"amount\">\r\n <span>{tools.cutZero(q.discountPct * 10)}</span>\r\n <span>折</span>\r\n </div>\r\n <div className=\"lijian\">折扣</div>\r\n </div>\r\n }\r\n <div className={classnames('djqRight', { 'djqRightSelected': q.checked })} onClick={(e) => q.IsEnable ? this.djqChecked(q, this.props.dto) : null}>\r\n {q.checked ? <Ticon className='checkIcon primary-color' type='xuanzhong1'/> : <span className={`${q.IsEnable ? 'noxuanzhong' : 'noxuanzhong1'}`}></span>}\r\n {q.checked ? <div className='name overflow-hidden-point primary-color'>{q.name}</div> : <div className='name overflow-hidden-point'>{q.name}</div>}\r\n {\r\n q.displayText ?\r\n <div className=\"info overflow-hidden-point\"><span>{q.displayText}</span></div> :\r\n <div className=\"info overflow-hidden-point\"><span>使用门槛:</span><span>{q.doorsill}</span><span>元</span></div>\r\n }\r\n {\r\n q.expired ? <div className=\"info info_red overflow-hidden-point\"><span>{q.expired}</span></div> : null\r\n }\r\n </div>\r\n <div className=\"point_top\"/>\r\n <div className=\"point_bottom\"/>\r\n </div>)\r\n }) : <ProgressState\r\n state={\"empty\"}\r\n stateCommonStyle={{ 'paddingTop': \"30px\", backgroundColor: 'transparent' }}\r\n empty={{ buttonVisible: false, imgStyle: {width: '120px', height: '120px'} }} />\r\n }\r\n </div>\r\n </div>\r\n {currentMode && !currentMode.boriginReturn && <div className=\"djq3\">\r\n <div className=\"col1\">\r\n <div className=\"row1\">剩余应收</div>\r\n <div className=\"row2\">{currentMode ? currentMode.receivable:'0.00'}</div>\r\n </div>\r\n <div className=\"col2\">\r\n <div className=\"row1\">本单可用</div>\r\n <div className=\"row2\">{currentMode ? currentMode.maxamount:'0.00'}</div>\r\n </div>\r\n <div className=\"col2\">\r\n <div className=\"row1\">{Differentiate.COUPON}结算金额</div>\r\n <div className=\"row2\">{currentMode ? currentMode.value:'0.00'}</div>\r\n </div>\r\n <div className=\"col3\">\r\n <div className=\"row1\">溢收金额</div>\r\n <div className=\"row2\">{currentMode ? currentMode.overchargesAmount:'0.00'}</div>\r\n </div>\r\n </div>}\r\n {currentMode && currentMode.boriginReturn && <div className=\"djq3\">\r\n <div className=\"col1\">\r\n <div className=\"row1\">数量</div>\r\n <div className=\"row2\">{currentMode && currentMode.djqs ? currentMode.djqs.length:'0'}</div>\r\n </div>\r\n <div className=\"col2\">\r\n <div className=\"row1\">退款金额</div>\r\n <div className=\"row2\">{currentMode ? currentMode.value:'0.00'}</div>\r\n </div>\r\n </div>}\r\n </div>\r\n </Modal>\r\n {/* 代金券弹框 结束*/}\r\n {/* 积分抵现弹框 开始*/}\r\n <Modal\r\n wrapClassName={`czk ${this.isHorizontalPad ? 'extraHeight' : ''}`}\r\n width=\"420px\"\r\n visible={this.state.jfdxVisible}\r\n maskClosable={false}\r\n onCancel = { this.handleJfdxCancel }\r\n centered={ !this.isHorizontalPad ? true : false}\r\n title={\"积分抵现\"}\r\n destroyOnClose={true}\r\n zIndex={1007}\r\n footer={<div className=\"action\">\r\n <Button onClick={this.handleJfdxCancel}>取消</Button>\r\n <Button type=\"primary\" disabled={currentMode && currentMode.errinfo!=''} onClick={this.handleJfdxOk}>确定</Button>\r\n </div>}\r\n >\r\n <div>\r\n <div className=\"info\">\r\n <div className={classnames({\"type\":true,'colwidth4':hasmember})}>\r\n <div className=\"value valuetext\">{(currentMode && currentMode.member && currentMode.member.type) || '普通'}</div>\r\n <div className=\"name\">类型</div>\r\n </div>\r\n <div className=\"gap\">\r\n <div className=\"gap1\"></div>\r\n <div className=\"gap2\"></div>\r\n <div className=\"gap1\"></div>\r\n </div>\r\n <div className={classnames({\"balance\":true,'colwidth4':hasmember})}>\r\n <div className=\"value\">{currentMode && currentMode.member && currentMode.member.bonusPoints}</div>\r\n <div className=\"name\">积分</div>\r\n </div>\r\n <div className=\"gap\">\r\n <div className=\"gap1\"></div>\r\n <div className=\"gap2\"></div>\r\n <div className=\"gap1\"></div>\r\n </div>\r\n <div className={classnames({\"balance\":true,'colwidth4':hasmember})}>\r\n <div className=\"value\">{currentMode && currentMode.member && getFixedNumber(currentMode.steadCashIntegral)}</div>\r\n <div className=\"name\">本单使用积分</div>\r\n </div>\r\n <div className=\"gap\">\r\n <div className=\"gap1\"></div>\r\n <div className=\"gap2\"></div>\r\n <div className=\"gap1\"></div>\r\n </div>\r\n <div className={classnames({\"available\":true,'colwidth4':hasmember})}>\r\n <div className=\"value\">{currentMode && currentMode.member && getFixedNumber(Math.max(0,Math.min(currentMode.maxamount,currentMode.member.exchangable)))}</div>\r\n <div className=\"name\">本单可抵现金额</div>\r\n </div>\r\n </div>\r\n <div className=\"no\">\r\n <span>会员卡号:</span>\r\n <span className=\"notext\">{currentMode && currentMode.member && currentMode.member.cardNo}</span>\r\n </div>\r\n <div className=\"receivable\">\r\n <span>剩余应收:</span>\r\n <span>{paymode.receivable}</span>\r\n </div>\r\n <div className=\"received\">\r\n <span>实收金额:</span>\r\n <span>\r\n {/* <input value={currentMode && currentMode.value} onChange={(value)=>{this.setCurrentModeValue(value,currentMode.member.exchangable)}}></input> */}\r\n <Input\r\n className={hotKey.hotKeyNotFilter('input')}\r\n type='text'\r\n value={storageValue}\r\n onChange={(e)=>{this.setCurrentModeValue(e.target.value,Math.min(currentMode.maxamount,currentMode.member.exchangable))}}\r\n defaultValue={currentMode && currentMode.member && getFixedNumber(Math.min(currentMode.value,currentMode.maxamount,currentMode.member.exchangable))}\r\n ref={ref => this[\"inputJfdxAmount\"] = ref}\r\n onFocus={(e)=>{\r\n this.inputkey=\"inputJfdxAmount\";\r\n Keyboard.open((v)=>{\r\n const value = Keyboard.getNewValue(this[this.inputkey].input, this[this.inputkey].input.value, v);\r\n this.setCurrentModeValue(value,Math.min(currentMode.maxamount,currentMode.member.exchangable));\r\n }, this.keyboardOnOk, this.keyboardOnClose)()\r\n }\r\n }\r\n onBlur={(e)=>{\r\n Keyboard.close();\r\n this.setCurrentModeValue(getFixedNumber(this.inputJfdxAmount.input.value),Math.min(currentMode.maxamount,currentMode.member.exchangable));\r\n }}\r\n />\r\n </span>\r\n </div>\r\n <div className=\"error\">{currentMode && currentMode.errinfo}</div>\r\n </div>\r\n </Modal>\r\n {/* 积分抵现弹框 结束*/}\r\n <PrototypeTableModal discount={\r\n {\r\n discountTotalAmount,discountRetailTotalAount,discountPrototypeTotalAmount,\r\n }\r\n } handleprototypeCancel={this.handleprototypeCancel} isHorizontalPad={this.isHorizontalPad} dataSource={dataSource} prototypeVisible={this.state.prototypeVisible} isNotAutoFocus={isNotAutoFocus}/>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default Settlement;\r\n\r\n"]}
|
1
|
+
{"version":3,"sources":["tplus-components-touch/components/settlement/settlement.js"],"names":["hasElectron","env","platform","constant","electron","Settlement","observer","props","state","visible","czkVisible","djqVisible","jfdxVisible","moreCzkVisible","showSetPwdModal","prototypeVisible","currentIndex","connectCardStatus","connectCardError","amountChanged","type","isManualIntoAmount","isXianjin","newPass","newPassConfirm","noAlreadyWarn","btnDissabled","confirmPwd","settleDisabled","protytypeCount","isPrototypeClick","dataSource","memberdata1","discountTotalAmount","discountRetailTotalAount","discountPrototypeTotalAmount","bquick","currentKey","couponLight","storageValue","czkValue","isInputMember","selectedRowIndex","isNotAutoFocus","compoundHotkeysList","window","$","operationControl","control","map","key","toLocaleUpperCase","hotkeydebounced","hotkeydebouncedPayMode","currentInput","getIsReturn","dataModal","context","viewModel","data","IdbusiType","getBoriginReturn","boriginReturn","JSON","getCellValue","getNotBoriginReturn","isReturn","resizeSettlementToolBtns","newStyle","store","isMemberStorePage","b","billingSettlementDocumnet","bWidth","offsetWidth","cWidth","firstChild","lastChild","childNodes","forEach","v","className","handleReadICard","readRfCard","updateInput","currentMode","paymode","member","exchangable","undefined","inputkey","input","value","Math","min","maxamount","setCurrentModeValue","inputJfdxAmount","balance","inputCzkAmount","storageCardNo","parseFloat","amount","Message","error","duration","setTimeout","handleCzkCancel","czkKeyboardOnClose","payQuick","enumController","getEnumOj","PayStyle","init","onHandleAmount","Code_02","storeInfo","dto","settleZero","hyczk","isProhibitMeStorageCard","warn","showCzkModal","quickSettle","handleSettle","handleGuestShow","isAutoShowCouponWhenCash","setState","resolve","onValidate","fn","isNoProductTip","then","result","count","handleShowPrototype","checkIsIntegralExchange","payFun","handleDefault","brefund","thePaymodes","m","checkModeDisabled","paymentType","setFocusAndSelectionMode","pricePrecision","quantityPrecision","RetailDetails","TotalTaxAmount","o","item","count1","ShowFreeItem","i","test","Name","FreeItem","IsPresent","badge","text","position","IsGWPBuyGift","PromotionDetails","length","InventoryName","Inventory","Discount","RetailPrice","TaxPrice","DetailDiscountAmount","TotalDiscount","nAmount","TaxAmount","UnitName","Unit","nQuantity","Quantity","nTaxPrice","nRetailPrice","showModal","that","ModalWraper","confirm","title","content","onOk","onCancel","handleOk","e","handleCancel","onCancelSettle","cancelState","setInventoryFocus","clean","handleCzkMoreData","params","_val","value11","czkInput","focus","setSelectionRange","id","append","returnType","setCurrentMode","memberId","ID","connectRfCard","updateCurrentMode","handleCzkData","handleMoreCzkCancel","setMoreCzkIndex","index","handleMoreCzkOk","updateCardInfo","loadCzk","mode","paymethodId","closeRfCard","calcMemberBalance","handleCzk","handleCzkOk","walletEnabled","cardTypeEnum","freePaymentPasswordStore","isNeedPassword","Keyboard","close","handleSetPwdCancel","handleSetModal","updataMemberInfo","queryPwd","updateMemberInfo","resp","onPressEnterCzk","field","inputConfirmAmount","setPwdValue","handleBlur","isHorizontalPad","doms","document","getElementsByClassName","getElementById","console","log","showDjqModal","djq","calcCheckList","inputdjq","getCouponList","handleDjqOk","Differentiate","handleDjqCancel","djqs","checked","COUPON","setCurrentFocusAndAddPay","showJfdxModal","jid","djqmode","themode","IsRepelWithPoints","code","jfdx","handleJfdxOk","handleJfdxCancel","checkOfflineEnable","paymodes","isOffline","stores","offlineSys","currentPayMode","find","offlineDisable","onTabsClick2","bookType","memberInfo","hasmember","Code","omc","initData","wx","zfb","smzf","checkScanDisabled","bdisabled","onTabsClick","isDjqValidated","MultiPay","shouldSettlement","exchangeRate","forign","setCurrentFocusOnly","FORBIDDEN","NOTIFICATION","editModal","payId","changeFocusAndAddPay","setFocusAndSelection","onDelPay","storeType","info","delPay","handleChange","currentFocus","target","amountMaxLength","parseInt","isNaN","changeValue","val","max","reg","value1","split","onBlur","changeFocusOnly","onFocus","onFocusHack","appendCzkmode","bappend","djqChecked","q","calcDjqCheckValue","addDjq","checkCoupon","finally","ele","czkdebounced","cancel","onHotKeyClick1","onHotKeyClickModal","onHotKeyClick2","changeClickFocusOnly","onHotKeyEnter","notsettle","checkSettleDisabled","payIndex","displayPayModeList","SaoMaPayMode","filter","paymodeOb","findHaveNoModlePayType","findModlePayBySplice","currenIndex","symbol","findIndex","endCurrentMode","endCurrentModeOb","startCurrentModeOb","settleUnReturn","zIndex","__queryingModal","querySettleResult","destroy","Flag","setDtoID","settleSuccess","settleCanceled","clearVoucherData","received","charge","openCashBox","xianjin","_this","showTwoScreen","getScreenType","flag","isHorizontalSunMi","localStore","get","shift","Value","step","screenType","sunMi_PresentationManager","sendMessageToSecondScreen","nativeMs","setIpcRendererMethod","onSettleSuccess","getSettleGift","isFull","resp1","__loadingModal","MemberPoints","isMemberPointsReturn","message","Number","__successModal","onModalClose","dtype","dt","guestshow_enable","guestshow_clear","guestshow_welcome","guestshow_collect","guestshow_refund","guestshow_change","hasSuccess","other","replace","abs","price","qty","total","inv","wel","HardwareAPI","sendDataCusDisp","dataType","ret","args","promises","results","p","push","commit","handleUserInputs","isQuickPay","status","checkCharge","receivable","zeromode","value2","name","quickmode","SQBPAY","CSYH","inputConfirm","values","bTest","indexOf","reject","curmode","inputPwd","validePwd","fKeyboardOnOk","paymethodeId","blur","fKeyboardOnClose","keyboardOnOk","keyboardOnClose","changefn","setConfirmPwdValue","modal","onPressEnter","authCode","pwd","onPressEsc","maskClosable","keyboard","closable","width","isMobileEnvironment","height","inputAmount","btnDebounced","CustomerPhone","DistributionMode","Address","isEnableSerialNumber","resultObj","IsSerialNumber","IsBatch","IsQualityPeriod","Id","Member","Mobilephone","syncMemberInfoProcessor","openBuyerModal","btndebounced","onCzkChange","isNewRetailBCPos","setCardNo","czkKeyboardOnOk","onDjqChange","isKeyBorad","debounced","djqKeyboardOnOk","djqKeyboardOnClose","xianjinChange","inputTarget","inputTarget2","innerHTML","isNotFullBook","bookMaxValue","changeScanProduct","scanObj","startScan","onScanResult","el","setStateValue","submitHandler","onScanCzkResult","onScanDjqResult","getXianjinPayment","payType","getXianjinBalance","isStoredValueCard","BuyerPayFreight","PayIcon2","zl","getAttribute","isCancelFun","backdropStyle","prototypeDetailedClick","scan","checkCurrentModeHaveMutex","payTypeList","payTypeFilterList","filterType","disableUserMode","haveUseTypeList","xj","enabled","changeDecimalBuZero","number","bitNum","f_x","newBitNum","pow","round","s_x","toString","pos_decimal","editCzkModal","paymodesCarouselList","carouselStart","CarouseOut","CarouselTp","newParams","mapList","floor","modeList","modeIndex","renderToolbtn","handleprototypeCancel","select","couponClick","user","options","MemberMeStorageCardInputByKeyBoard","ICCardServer","ICCardPassword","PreSellOrBook","PercentageWhenBook","isStorageCardInputType","iCCardServer","iCCardPassword","isBook","percentageWhenBook","bind","setTimer","keypressStime","settlementVoucherStore","settlementMemberStore","initPaymodes","nextProps","clear","cardPsw","cardSec","cardKm","Minus","nonProductMap","temphtml","columns","dataIndex","ellipsis","product","Idinventory","reason","y","paymentType1","getNewValue","PayIcon","hasSMZF","hotkeyIndex","theArr","t","paymodeDisabled","paymodeSelected","checkThepaymode","omission","totalVariety","totalQuantity","quantityDetail","memberDisabled","noIsMinAmount","totalTaxAmount","settle","drawerStore","thisWaitPaidAmount","ExchangeIntegral","_hasSMZF","quickPay","isQuick","productsIsEmpty","moreToolbtns","pagination","spaceBetween","carouselStart2","quantity1","quantity2","quantity3","quantity4","sumQuantity","buyQuantity","returnQuantity","showAmount","sumRetailDetails","themodeHyczk","r","iconclass","OnlinePaymentAmount","isMemberPoints","hotKey","hotKeyBindClass","paddingBottom","maxHeight","body","clientHeight","hotKeyNotFilter","display","overchargesAmount","onlineamount","onKeyboardChange","mindex","hyczkFindIndex","hyczkList","lastStorageCardIndex","tm","sum","Add","cardNo","errinfo","keyCode","time","Date","parse","czkvalue","open","event","ref","inputNewAmount","promoMethodEnum","IsEnable","nominalAmount","tools","cutZero","discountPct","displayText","doorsill","expired","backgroundColor","buttonVisible","imgStyle","bonusPoints","steadCashIntegral","React","Component","contextTypes","PropTypes","object"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;AACA;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AAEA;;;;AACA;;;;AACA;;;;AACA;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AACA;;AACA;;;;;;AACA,IAAMA,cAAeC,oBAAIC,QAAJ,KAAiBD,oBAAIE,QAAJ,CAAaD,QAAb,CAAsBE,QAA5D;;IAGMC,U,OADLC,mB;;;AAsDC,sBAAYC,KAAZ,EAAmB;AAAA;;AAAA;;AAAA,+IACXA,KADW;;AAAA,WApDnBC,KAoDmB,GApDX;AACNC,eAAS,KADH;AAENC,kBAAW,KAFL;AAGNC,kBAAW,KAHL;AAINC,mBAAY,KAJN;AAKNC,sBAAgB,KALV;AAMNC,uBAAiB,KANX;AAONC,wBAAkB,KAPZ,EAOmB;AACzBC,oBAAa,CARP;AASNC,yBAAmB,KATb,EASoB;AAC1BC,wBAAkB,EAVZ,EAUgB;AACtBC,qBAAc,KAXR;AAYNC,YAAK,CAZC;AAaNC,0BAAoB,gCAAY,oBAAZ,CAbd;AAcNC,iBAAW,KAdL;AAeNC,eAAS,EAfH;AAgBNC,sBAAgB,EAhBV;AAiBNC,qBAAe,IAjBT;AAkBNC,oBAAc,IAlBR;AAmBNC,kBAAY,EAnBN;AAoBNC,sBAAgB,KApBV;AAqBNC,sBAAgB,IArBV;AAsBNC,wBAAkB,KAtBZ;AAuBNC,kBAAY,EAvBN;AAwBNC,mBAAa,EAxBP;AAyBNC,2BAAqB,IAzBf;AA0BNC,gCAA0B,IA1BpB;AA2BNC,oCAA8B,IA3BxB;AA4BNC,cAAQ,KA5BF;AA6BNC,kBAAY,IA7BN;AA8BNC,mBAAa,IA9BP;AA+BNC,oBAAc,MA/BR;AAgCNC,gBAAU,IAhCJ;AAiCNC,qBAAe,KAjCT;AAkCNC,wBAAkB,CAlCZ;AAmCNC,sBAAgB;AAElB;AArCQ,KAoDW;AAAA,WAdnBC,mBAcmB,GAdG,CAACC,OAAOC,CAAP,CAASC,gBAAT,CAA0B,CAA1B,IAA+BF,OAAOC,CAAP,CAASC,gBAAT,CAA0B,CAA1B,EAA6BC,OAA7B,IAAwC,EAAvE,GAA2E,EAA5E,EAAgFC,GAAhF,CAAoF,UAACC,GAAD,EAAO;AAC/G,aAAOA,IAAIC,iBAAJ,EAAP;AACD,KAFqB,CAcH;AAAA,WAVnBC,eAUmB,GAVD,IAUC;AAAA,WATnBC,sBASmB,GATM,EASN;AAAA,WAFnBC,YAEmB,GAFJ,IAEI;;AAAA,WA0CnBC,WA1CmB,GA0CL,YAAM;AAClB,UAAIC,YAAY,OAAKC,OAAL,IAAgB,OAAKA,OAAL,CAAaC,SAA7B,IAA0C,OAAKD,OAAL,CAAaC,SAAb,CAAuBC,IAAjF;AACA,aAAOH,UAAUI,UAAV,KAAyB,EAAzB,IAA+BJ,UAAUI,UAAV,KAAyB,EAA/D,CAFkB,CAEiD;AACpE,KA7CkB;;AAAA,WAgDnBC,gBAhDmB,GAgDA,YAAM;AACvB,UAAMC,gBAAgB,OAAKL,OAAL,IAAgB,OAAKA,OAAL,CAAaC,SAA7B,IAA0C,OAAKD,OAAL,CAAaC,SAAb,CAAuBC,IAAjE,IAAyEI,KAAKC,YAAL,CAAkB,OAAKP,OAAL,CAAaC,SAAb,CAAuBC,IAAzC,EAA+C,kBAA/C,CAA/F;AACA,aAAOG,iBAAiB,KAAxB;AACD,KAnDkB;;AAAA,WAsDnBG,mBAtDmB,GAsDG,YAAM;AAC1B,UAAIC,WAAW,OAAKX,WAAL,EAAf;AACA,UAAIO,gBAAgB,OAAKD,gBAAL,EAApB;AACA,aAAOK,YAAY,CAACJ,aAApB;AACD,KA1DkB;;AAAA,WA6DnBK,wBA7DmB,GA6DQ,YAAM;AAAA,UACvBC,QADuB,GACV,OAAKC,KADK,CACvBD,QADuB;AAAA,UAEvBE,iBAFuB,GAED,OAAK/D,KAFJ,CAEvB+D,iBAFuB;;AAG/B,UAAIC,IAAI,OAAKC,yBAAb;AACA,UAAID,KAAKH,QAAL,IAAiB,CAACE,iBAAtB,EAAyC;AACvC,YAAIG,SAASF,EAAEG,WAAf;AACA,YAAIC,SAAS,CAAb;AACA,YAAIJ,EAAEK,UAAN,EAAkB;AAChBD,oBAAUJ,EAAEK,UAAF,CAAaF,WAAvB;AACD;AACD,YAAIH,EAAEM,SAAF,IAAeN,EAAEM,SAAF,CAAYC,UAA/B,EAA2C;AACzCP,YAAEM,SAAF,CAAYC,UAAZ,CAAuBC,OAAvB,CAA+B,aAAK;AAClCJ,sBAAUK,EAAEN,WAAZ;AACD,WAFD;AAGD;AACD,YAAIH,EAAEM,SAAN,EAAiB;AACf;AACA,cAAIJ,SAASE,SAAS,EAAtB,EAA0B;AACxBJ,cAAEM,SAAF,CAAYI,SAAZ,GAAwB,kBAAxB;AACD,WAFD,MAEO;AACLV,cAAEM,SAAF,CAAYI,SAAZ,GAAwB,MAAxB;AACD;AACF;AACF;AACF,KArFkB;;AAAA,WAyInBC,eAzImB,GAyID,YAAM;AACpB,aAAKC,UAAL;AACH,KA3IkB;;AAAA,WA6InBC,WA7ImB,GA6IP,YAAI;AAAA,UACTC,WADS,GACI,OAAKhB,KAAL,CAAWiB,OADf,CACTD,WADS;;AAEd,UAAG,OAAK7E,KAAL,CAAWI,WAAX,IAAyByE,WAAzB,IAAwCA,YAAYE,MAAZ,CAAmBC,WAAnB,KAAmCC,SAA9E,EAAyF;AACvF,eAAKC,QAAL,GAAc,iBAAd;AACA,eAAK,iBAAL,EAAwBC,KAAxB,CAA8BC,KAA9B,GAAoCP,eAAe,2BAAeQ,KAAKC,GAAL,CAAST,YAAYO,KAArB,EAA2BP,YAAYU,SAAvC,EAAiDV,YAAYE,MAAZ,CAAmBC,WAApE,CAAf,CAAnD;AACA,eAAKQ,mBAAL,CAAyB,OAAKC,eAAL,CAAqBN,KAArB,CAA2BC,KAApD,EAA0DC,KAAKC,GAAL,CAAST,YAAYU,SAArB,EAA+BV,YAAYE,MAAZ,CAAmBC,WAAlD,CAA1D;AACD,OAJD,MAIM,IAAG,OAAKhF,KAAL,CAAWE,UAAX,IAAyB2E,WAAzB,IAAwCA,YAAYO,KAAZ,IAAmB,CAA3D,IAAiEP,YAAYa,OAAZ,KAAwBT,SAA5F,EAAsG;AAC1G,eAAKC,QAAL,GAAc,gBAAd;AACA,eAAK,gBAAL,KAA0B,OAAK,gBAAL,EAAuBC,KAAjD,KAA2D,OAAK,gBAAL,EAAuBA,KAAvB,CAA6BC,KAA7B,GAAmC,2BAAeC,KAAKC,GAAL,CAAST,YAAYO,KAArB,EAA2BP,YAAYU,SAAvC,EAAiDV,YAAYa,OAA7D,CAAf,CAA9F;AACA,YAAMH,YAAUF,KAAKC,GAAL,CAAST,YAAYU,SAArB,EAA+BV,YAAYa,OAA3C,CAAhB;AACA,eAAKC,cAAL,IAAuB,OAAKA,cAAL,CAAoBR,KAA3C,IAAoD,OAAKK,mBAAL,CAAyB,OAAKG,cAAL,CAAoBR,KAApB,CAA0BC,KAAnD,EAAyDG,SAAzD,CAApD;AACA,YAAG,OAAK1B,KAAL,CAAWjC,MAAX,IAAqBiD,YAAYe,aAAjC,IAAkDC,WAAW,OAAKhC,KAAL,CAAWiB,OAAX,CAAmBgB,MAA9B,IAAsCD,WAAWN,SAAX,CAA3F,EAAiH;AAC/GQ,4BAAQC,KAAR,CAAc,oBAAkB,2BAAeT,SAAf,CAAlB,GAA4C,WAA1D,EAAuE;AACrEU,sBAAU;AAD2D,WAAvE;AAGAC,qBAAW,YAAM;AACf,mBAAKC,eAAL;AACAD,uBAAW,YAAM;AAAE,qBAAKE,kBAAL;AAA2B,aAA9C,EAAgD,GAAhD;AACD,WAHD,EAGG,EAHH;AAID;AACF;AACF,KAlKkB;;AAAA,WAoKnBC,QApKmB,GAoKR,YAAM;AAAA,UACPxE,UADO,GACQ,OAAK7B,KADb,CACP6B,UADO;;AAAA,kCAEMyE,4BAAeC,SAAf,EAFN;AAAA,UAEPC,QAFO,yBAEPA,QAFO;;AAGf,aAAK3C,KAAL,CAAW4C,IAAX,CAAgB,OAAK1G,KAAL,CAAWa,IAAX,IAAmB,CAAnB,GAAuB,IAAvB,GAA8B,OAAKqC,OAAnD,EAA4D,OAAKlD,KAAL,CAAW2G,cAAvE,EAAuF,OAAK3G,KAAL,CAAWwB,UAAX,CAAsBoF,OAA7G,EAAsH,OAAK5G,KAAL,CAAW6G,SAAjI,EAA4I,IAA5I,EAAkJ,OAAK7G,KAAL,CAAW+F,MAA7J,EAAqK,OAAK/F,KAAL,CAAWa,IAAhL,EAAsL,OAAKb,KAAL,CAAW8G,GAAjM,EAAqMhF,UAArM;AACA,UAAIiE,SAAS,OAAKjC,KAAL,CAAWiB,OAAX,CAAmBgB,MAAhC;AACA,UAAIA,UAAU,CAAd,EAAiB;AACf,eAAKgB,UAAL;AACA;AACD;AACD,UAAIjF,cAAc2E,SAASO,KAA3B,EAAkC;AAAA,YACxBC,uBADwB,GACI,OAAKjH,KADT,CACxBiH,uBADwB;;AAEhC,YAAIA,uBAAJ,EAA6B;AAC3BjB,4BAAQkB,IAAR,CAAa,gBAAb;AACA;AACD;AACD,eAAKC,YAAL;AACD,OAPD,MAOO;AACL,eAAKrD,KAAL,CAAWsD,WAAX,CAAuBtF,UAAvB;AACA,eAAKuF,YAAL,CAAkB,UAAlB;AACD;AACD,aAAKC,eAAL,CAAqBvB,SAAS,CAAT,GAAa,CAAb,GAAiB,CAAtC,EAAyCA,MAAzC;AACD,KAzLkB;;AAAA,WA2LnBqB,WA3LmB,GA2LL,UAACzE,GAAD,EAAO;AACnB,UAAM4E,2BAA2B,gCAAY,0BAAZ,CAAjC;AACA,aAAKC,QAAL,CAAc;AACZ1F,oBAAYa;AADA,OAAd;AAFmB,yBAKQ,OAAK3C,KALb;AAAA,UAKX2D,QALW,gBAKXA,QALW;AAAA,UAKD9C,IALC,gBAKDA,IALC;;AAMnB,wBAAQ4G,OAAR,CAAgB,CAAC,OAAKzH,KAAL,CAAW0H,UAAZ,IAA0B,OAAK1H,KAAL,CAAW0H,UAAX,CAAsB,EAACtF,gBAAgB,IAAjB,EAAuBuF,IAAI,YAACvE,IAAD;AAAA,iBAAQ,OAAKwE,cAAL,CAAoBxE,IAApB,CAAR;AAAA,SAA3B,EAAtB,CAA1C,EAAgIyE,IAAhI,CAAqI,kBAAQ;AAC3I,YAAIC,MAAJ,EAAY;AACV,iBAAKN,QAAL,CAAc;AACZnG,4BAAgB;AADJ,WAAd;AAGA,cAAIR,SAAS,CAAb,EAAgB;AACd,gBAAIkH,QAAQ,OAAKC,mBAAL,EAAZ;AACA,gBAAI,CAACrE,QAAD,IAAa4D,wBAAb,IAAyCQ,QAAQ,CAArD,EAAwD;AACtD,qBAAKP,QAAL,CAAc;AACbhH,kCAAkB,IADL;AAEb4B,gCAAgB;AAFH,eAAd;AAID,aALD,MAKO;AACL,qBAAKkE,QAAL;AACD;AACF,WAVD,MAUO;AACL,mBAAKA,QAAL;AACD;AACF;AACF,OAnBD;AAoBD,KArNkB;;AAAA,WAuNnB2B,uBAvNmB,GAuNO,YAAM;AAAA,UACxB5E,UADwB,GACT,OAAKH,OAAL,CAAaC,SAAb,CAAuBC,IADd,CACxBC,UADwB;;AAE9B,aAAQA,eAAe,EAAf,IAAqBA,eAAe,EAA5C;AACD,KA1NkB;;AAAA,WA4NnB6E,MA5NmB,GA4NV,YAAM;AACb,aAAKpE,KAAL,CAAW4C,IAAX,CAAgB,OAAK1G,KAAL,CAAWa,IAAX,IAAmB,CAAnB,GAAuB,IAAvB,GAA8B,OAAKqC,OAAnD,EAA4D,OAAKlD,KAAL,CAAW2G,cAAvE,EAAuF,OAAK3G,KAAL,CAAWwB,UAAX,CAAsBoF,OAA7G,EAAsH,OAAK5G,KAAL,CAAW6G,SAAjI,EAA4I,KAA5I,EAAmJ,OAAK7G,KAAL,CAAW+F,MAA9J,EAAsK,OAAK/F,KAAL,CAAWa,IAAjL,EAAuL,OAAKb,KAAL,CAAW8G,GAAlM;AACA,UAAIf,SAAS,OAAKjC,KAAL,CAAWiB,OAAX,CAAmBgB,MAAhC;AACA,UAAIA,UAAU,CAAd,EAAiB;AACf,eAAKgB,UAAL;AACA;AACD;AACD,aAAKS,QAAL,CAAc,EAAEtH,SAAS,IAAX,EAAd;AACA,aAAKoH,eAAL,CAAqBvB,SAAS,CAAT,GAAa,CAAb,GAAiB,CAAtC,EAAyCA,MAAzC;AACAI,iBAAW,YAAM;AACf,eAAKgC,aAAL;AADe,2BAEsB,OAAKrE,KAF3B;AAAA,YAETiB,OAFS,gBAETA,OAFS;AAAA,YAEAqD,OAFA,gBAEAA,OAFA;AAAA,YAESvE,QAFT,gBAESA,QAFT;;AAGf,YAAIN,gBAAgB,OAAKD,gBAAL,EAApB;AACA,YAAI+E,cAAcxE,WAAW,sBAAQkB,QAAQsD,WAAhB,EAA6B,UAACC,CAAD,EAAO;AAAE,iBAAO,EAAE,OAAKC,iBAAL,CAAuBD,EAAEE,WAAzB,EAAsCJ,OAAtC,EAA+C7E,aAA/C,KAAiEuC,WAAWwC,EAAEjD,KAAb,KAAuB,CAA1F,CAAP;AAAsG,SAA5I,CAAX,GAA2JN,QAAQsD,WAArL;AACA,eAAKI,wBAAL,CAA8BJ,WAA9B,EAA0C,CAAC,CAA3C;AACD,OAND,EAMG,GANH;AAOD,KA5OkB;;AAAA,WA8OnBL,mBA9OmB,GA8OG,YAAM;AAC1B,UAAMU,iBAAiB,gCAAY,gBAAZ,CAAvB;AACA,UAAMC,oBAAoB,gCAAa,mBAAb,CAA1B;AAF0B,kCAGiB,OAAKzF,OAAL,CAAaC,SAAb,CAAuBC,IAHxC;AAAA,UAGlBwF,aAHkB,yBAGlBA,aAHkB;AAAA,UAGHC,cAHG,yBAGHA,cAHG;;AAI1B,UAAIrH,aAAaoH,cAAclG,GAAd,CAAkB;AAAA,eAAK,sBAAc,EAAd,EAAkBoG,CAAlB,CAAL;AAAA,OAAlB,CAAjB;AACA,UAAInH,2BAA2B,IAA/B;AACA,UAAIC,+BAA+B,CAAnC;AACA,UAAImG,QAAQ,CAAZ;AACAvG,oBAAcA,WAAWgD,OAAX,CAAmB,UAACuE,IAAD,EAAU;AACzC,YAAIC,SAAS,CAAb;AACAD,aAAKE,YAAL,GAAoB,KAApB;AACA,aAAK,IAAIC,CAAT,IAAcH,IAAd,EAAoB;AAClB,cAAI,WAAWI,IAAX,CAAgBD,CAAhB,CAAJ,EAAwB;AACtB,gBAAIH,KAAKG,CAAL,KAAWH,KAAKG,CAAL,EAAQE,IAAvB,EAA6B;AAC3BJ;AACAD,mBAAKE,YAAL,GAAoB,IAApB;AACAD,yBAAW,CAAX,GAAeD,KAAKM,QAAL,GAAgBN,KAAKG,CAAL,EAAQE,IAAvC,GAA8CL,KAAKM,QAAL,IAAiB,MAAMN,KAAKG,CAAL,EAAQE,IAA7E;AACD;AACF;AACF;AACD;AACA,YAAIL,KAAKO,SAAT,EAAoB;AAClBP,eAAKQ,KAAL,GAAa,EAAEC,MAAM,GAAR,EAAaC,UAAU,SAAvB,EAAkC/E,WAAW,EAA7C,EAAb;AACD,SAFD,MAEO,IAAGqE,KAAKW,YAAR,EAAsB;AAC3BX,eAAKQ,KAAL,GAAa,EAAEC,MAAM,GAAR,EAAaC,UAAU,SAAvB,EAAkC/E,WAAW,EAA7C,EAAb;AACD,SAFM,MAED,IAAIqE,KAAKY,gBAAL,IAAyBZ,KAAKY,gBAAL,CAAsBC,MAAtB,GAA+B,CAA5D,EAA+D;AACnEb,eAAKQ,KAAL,GAAa,EAAEC,MAAM,GAAR,EAAaC,UAAU,SAAvB,EAAkC/E,WAAW,EAA7C,EAAb;AACD,SAFK,MAEC;AACLqE,eAAKQ,KAAL,GAAa,EAAEC,MAAM,EAAR,EAAYC,UAAU,EAAtB,EAA0B/E,WAAW,EAArC,EAAb;AACD;AACD,YAAIqE,KAAKY,gBAAL,IAAyBZ,KAAKY,gBAAL,CAAsBC,MAAtB,GAA+B,CAA5D,EAA+D;AAC7D7B;AACD;AACDgB,aAAKc,aAAL,GAAqBd,KAAKe,SAAL,CAAeV,IAApC;AACAL,aAAKgB,QAAL,GAAgB,0BAAchB,KAAKiB,WAAL,GAAmBjB,KAAKkB,QAAtC,EAAgDvB,cAAhD,CAAhB;AACA,YAAI,CAACK,KAAKO,SAAV,EAAqB;AACnB1H,0CAAgCmH,KAAKmB,oBAArC;AACAnB,eAAKoB,aAAL,GAAqBpB,KAAKmB,oBAA1B;AACD,SAHD,MAGO;AACLnB,eAAKoB,aAAL,GAAqB,CAArB;AACD;AACD;AACApB,aAAKqB,OAAL,GAAe,2BAAerB,KAAKsB,SAApB,CAAf;AACAtB,aAAKuB,QAAL,GAAgBvB,KAAKwB,IAAL,CAAUnB,IAA1B;AACAL,aAAKyB,SAAL,GAAiB,0BAAczB,KAAK0B,QAAnB,EAA6B9B,iBAA7B,CAAjB;AACAI,aAAK2B,SAAL,GAAiB,0BAAc3B,KAAKkB,QAAnB,EAA6BvB,cAA7B,CAAjB;AACAK,aAAK4B,YAAL,GAAoB,0BAAc5B,KAAKiB,WAAnB,EAAgCtB,cAAhC,CAApB;AACD,OAvCa,CAAd;AAwCA,aAAKlB,QAAL,CAAc;AACZhG,8BADY;AAEZE,6BAAqB,2BAAe,OAAK1B,KAAL,CAAW+F,MAA1B,CAFT;AAGZnE,sCAA8B,2BAAeA,4BAAf,CAHlB;AAIZD,kCAA0B,2BAAe,OAAK3B,KAAL,CAAW+F,MAAX,GAAoBD,WAAWlE,4BAAX,CAAnC;AAJd,OAAd;AAMA,aAAOmG,KAAP;AACD,KArSkB;;AAAA,WAuSnB6C,SAvSmB,GAuSP,YAAM;AAAA,0BACW,OAAK5K,KADhB;AAAA,UACR2D,QADQ,iBACRA,QADQ;AAAA,UACE9C,IADF,iBACEA,IADF;;AAEhB,UAAM0G,2BAA2B,gCAAY,0BAAZ,CAAjC;AACA;AACA,wBAAQE,OAAR,CAAiB,CAAC,OAAKzH,KAAL,CAAW0H,UAAZ,IAA0B,OAAK1H,KAAL,CAAW0H,UAAX,CAAsB,EAACC,IAAI,YAACvE,IAAD;AAAA,iBAAQ,OAAKwE,cAAL,CAAoBxE,IAApB,CAAR;AAAA,SAAL,EAAtB,CAA3C,EAA2GyE,IAA3G,CAAgH,kBAAU;AACxH,YAAIC,MAAJ,EAAY;AACV,iBAAKN,QAAL,CAAc;AACZnG,4BAAgB;AADJ,WAAd;AAGA,cAAIR,SAAS,CAAb,EAAgB;AACd,gBAAIkH,QAAQ,OAAKC,mBAAL,EAAZ;AACA,gBAAI,CAACrE,QAAD,IAAa4D,wBAAb,IAAyCQ,QAAQ,CAArD,EAAwD;AACtD,qBAAKP,QAAL,CAAc;AACZhH,kCAAkB,IADN;AAEZ4B,gCAAgB;AAFJ,eAAd;AAID,aALD,MAKO;AACL,qBAAK8F,MAAL;AACD;AACF,WAVD,MAUO;AACL,mBAAKA,MAAL;AACD;AACF;AACF,OAnBD;AAoBD,KA/TkB;;AAAA,WAiUnBnB,UAjUmB,GAiUR,YAAI;AACb,UAAM8D,aAAN;AACA;AACA,UAAIxH,aAAa,OAAKH,OAAL,IAAgB,OAAKA,OAAL,CAAaC,SAA7B,IAA0C,OAAKD,OAAL,CAAaC,SAAb,CAAuBC,IAAjE,IAAyE,OAAKF,OAAL,CAAaC,SAAb,CAAuBC,IAAvB,CAA4BC,UAAtH;AACA,UAAGA,cAAc,EAAjB,EAAoB;AAClBwH,aAAKxD,YAAL,CAAkB,MAAlB;AACA;AACD;AACDyD,4BAAYC,OAAZ,CAAoB;AAClBrG,mBAAW,qBADO;AAElBsG,eAAO,IAFW;AAGlBC,iBAAS,gBAHS;AAIlBC,YAJkB,kBAIX;AACL/E,qBAAW,YAAM;AAAE0E,iBAAKxD,YAAL,CAAkB,MAAlB;AAA2B,WAA9C,EAAgD,GAAhD;AACD,SANiB;AAOlB8D,gBAPkB,sBAOP,CAEV;AATiB,OAApB;AAWD,KApVkB;;AAAA,WAsVnBhD,aAtVmB,GAsVL,YAAI;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAG,OAAKrE,KAAL,CAAWD,QAAd,EAAuB;AACrB;AACD;AACF,KA5WkB;;AAAA,WA8WnBuH,QA9WmB,GA8WR,UAACC,CAAD,EAAO;AAChB,aAAK7D,QAAL,CAAc;AACZtH,iBAAS;AADG,OAAd;AAGD,KAlXkB;;AAAA,WAoXnBoL,YApXmB,GAoXJ,UAACD,CAAD,EAAO;AACpB,aAAKrL,KAAL,CAAWuL,cAAX,IAA6B,OAAKvL,KAAL,CAAWuL,cAAX,EAA7B;AACA,aAAKC,WAAL;AACA,aAAKC,iBAAL;AACD,KAxXkB;;AAAA,WA0XnBD,WA1XmB,GA0XP,YAAI;AACd,aAAK1H,KAAL,CAAW4H,KAAX;AACA,aAAKlE,QAAL,CAAc;AACZtH,iBAAS;AADG,OAAd;AAGD,KA/XkB;;AAAA,WAiYnByL,iBAjYmB,GAiYC,UAACC,MAAD,EAAY;AAC9B,aAAKC,IAAL,GAAU,OAAK/H,KAAL,CAAWiB,OAAX,CAAmBD,WAAnB,CAA+BO,KAAzC;AAD8B,UAEzBP,WAFyB,GAEZ,OAAKhB,KAAL,CAAWiB,OAFC,CAEzBD,WAFyB;;AAG9B,UAAMU,YAAUF,KAAKC,GAAL,CAAST,YAAYU,SAArB,EAA+BV,YAAYa,OAA3C,CAAhB;AACA,UAAG,OAAK7B,KAAL,CAAWjC,MAAX,IAAqBiD,YAAYe,aAAjC,IAAkDC,WAAW,OAAKhC,KAAL,CAAWiB,OAAX,CAAmBgB,MAA9B,IAAsCD,WAAWN,SAAX,CAA3F,EAAiH;AAC/GQ,0BAAQC,KAAR,CAAc,oBAAkB,2BAAeT,SAAf,CAAlB,GAA4C,WAA1D,EAAsE;AACpEU,oBAAU;AAD0D,SAAtE;AAGD,OAJD,MAIO;AACL,YAAI0F,MAAJ,EAAY;AACV,iBAAKpE,QAAL,CAAc;AACZrH,wBAAY;AADA,WAAd;AAGD;AALI,YAMGiI,OANH,GAMe,OAAKtE,KANpB,CAMGsE,OANH;;AAOL,YAAI0D,UAAUhH,eAAe,2BAAesD,UAAQtD,YAAYO,KAApB,GAA0BC,KAAKC,GAAL,CAAST,YAAYO,KAArB,EAA2BP,YAAYU,SAAvC,EAAiDV,YAAYa,OAA7D,CAAzC,CAA7B;AACA,eAAK6B,QAAL,CAAc;AACZxF,wBAAc8J;AADF,SAAd;AAGA,YAAIhH,YAAYe,aAAhB,EAA+B;AAC7B,iBAAK2B,QAAL,CAAc;AACZvF,sBAAU6C,YAAYe;AADV,WAAd;AAGD,SAJD,MAIO;AACL,iBAAK2B,QAAL,CAAc;AACZvF,sBAAU;AADE,WAAd;AAGD;AACF;AACD,UAAI2J,MAAJ,EAAY;AACVzF,mBAAW,YAAM;AACf,cAAG,CAACrB,YAAYe,aAAhB,EAA8B;AAC5B,mBAAKkG,QAAL,IAAiB,OAAKA,QAAL,CAAc3G,KAAd,CAAoB4G,KAApB,EAAjB;AACD,WAFD,MAEK;AACH,gBAAG,OAAKpG,cAAL,IAAuB,OAAKA,cAAL,CAAoBR,KAA9C,EAAoD;AAClD,qBAAKQ,cAAL,CAAoBR,KAApB,CAA0B4G,KAA1B;AACA,qBAAKpG,cAAL,CAAoBR,KAApB,CAA0B6G,iBAA1B,CAA4C,CAA5C,EAA+C,OAAKrG,cAAL,CAAoBR,KAApB,CAA0BC,KAA1B,CAAgCuE,MAA/E;AACD;AACF;AACF,SATD,EASG,GATH;AAUD;AACF,KA1akB;;AAAA,WA6anBzC,YA7amB;AAAA,0FA6aJ,iBAAO+E,EAAP,EAAUC,MAAV;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,wBACa,OAAKlM,KAAL,IAAc,EAD3B,EACLiC,aADK,SACLA,aADK;AAAA,yCAEQqE,4BAAeC,SAAf,EAFR,EAELC,QAFK,0BAELA,QAFK;AAGP2F,0BAHO,GAGM,OAAK1I,mBAAL,EAHN;;AAIb,uBAAKI,KAAL,CAAWuI,cAAX,CAA0BH,EAA1B,EAA8BzF,SAASO,KAAvC,EAA8CmF,MAA9C;AACMG,wBALO,GAKI,OAAKxI,KAAL,IAAc,OAAKA,KAAL,CAAWkB,MAAzB,IAAmC,OAAKlB,KAAL,CAAWkB,MAAX,CAAkBuH,EALzD;;AAMb,uBAAKC,aAAL;AANa,8BAOKtK,iBAAiBoK,QAPtB;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA,uBAOwC,OAAKxI,KAAL,CAAW2I,iBAAX,CAA6BH,QAA7B,EAAuCF,UAAvC,CAPxC;;AAAA;AAAA;;AAAA;AAOT3K,2BAPS;;AAQb,uBAAK+F,QAAL,CAAc,EAAErH,YAAY,IAAd,EAAd;AACA,oBAAIsB,eAAeA,YAAYmI,MAAZ,KAAuB,CAA1C,EAA6C;AAC3C,yBAAK+B,iBAAL,CAAuB,IAAvB;AACA,yBAAK7H,KAAL,CAAW4I,aAAX,CAAyBjL,YAAY,CAAZ,CAAzB;AACD,iBAHD,MAGO,IAAIA,eAAeA,YAAYmI,MAAZ,IAAsB,CAAzC,EAA4C;AACjD,yBAAKpC,QAAL,CAAc;AACZlH,oCAAgB,IADJ;AAEZmB,iCAAaA;AAFD,mBAAd;AAID,iBALM,MAKA;AACL,yBAAK+F,QAAL,CAAc,EAAd;AAEArB,6BAAW,YAAM;AACf,2BAAK4F,QAAL,IAAiB,OAAKA,QAAL,CAAc3G,KAAd,CAAoB4G,KAApB,EAAjB;AACD,mBAFD,EAEG,GAFH;AAGD;;AAvBY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OA7aI;;AAAA;AAAA;AAAA;AAAA;;AAAA,WAucnBW,mBAvcmB,GAucG,YAAM;AAC1B,aAAKnF,QAAL,CAAc;AACZlH,wBAAgB,KADJ;AAEZ6B,0BAAkB;AAFN,OAAd;AAIAgE,iBAAW,YAAK;AACd,eAAK4F,QAAL,IAAiB,OAAKA,QAAL,CAAc3G,KAAd,CAAoB4G,KAApB,EAAjB;AACD,OAFD,EAEG,GAFH;AAGD,KA/ckB;;AAAA,WAidnBY,eAjdmB,GAidD,UAACC,KAAD,EAAW;AAC3B,aAAKrF,QAAL,CAAc;AACZrF,0BAAkB0K;AADN,OAAd;AAGD,KArdkB;;AAAA,WAudnBC,eAvdmB,GAudD,YAAM;AAAA,yBACoB,OAAK7M,KADzB;AAAA,UACdwB,WADc,gBACdA,WADc;AAAA,UACDU,gBADC,gBACDA,gBADC;;AAEtB,aAAK2B,KAAL,CAAWiB,OAAX,CAAmBgI,cAAnB,CAAkCtL,YAAYU,gBAAZ,CAAlC;AACA,aAAKwJ,iBAAL;AACA,aAAK7H,KAAL,CAAW4I,aAAX,CAAyBjL,YAAYU,gBAAZ,CAAzB;AACA,aAAKqF,QAAL,CAAc;AACZlH,wBAAgB,KADJ;AAEZ6B,0BAAkB;AAFN,OAAd;AAID,KAhekB;;AAAA,WAkenBuK,aAlemB,4EAkeH;AAAA;;AAAA;AAAA;AAAA;AAAA;AACd,qBAAKlF,QAAL,CAAc;AACZtF,+BAAe;AADH,eAAd;AADc,uCAIOqE,4BAAeC,SAAf,EAJP,EAINC,QAJM,0BAINA,QAJM;;AAAA,kBAKT,OAAK3C,KAAL,CAAWiB,OAAX,CAAmBD,WAAnB,CAA+Be,aALtB;AAAA;AAAA;AAAA;;AAMNuG,wBANM,GAMO,OAAK1I,mBAAL,EANP;AAAA;AAAA,qBAON,OAAKI,KAAL,CAAWkJ,OAAX,CAAmB,OAAKjB,QAAL,CAAc3G,KAAd,CAAoBC,KAAvC,EAA8C+G,UAA9C,CAPM;;AAAA;AAAA,kBAST,OAAKtI,KAAL,CAAWiB,OAAX,CAAmBD,WAAnB,CAA+Be,aATtB;AAAA;AAAA;AAAA;;AAUZG,gCAAQC,KAAR,CAAc,SAAd;AAVY;;AAAA;AAAA,mBAaV,oBAAM,OAAKnC,KAAL,CAAWiB,OAAX,CAAmBsD,WAAzB,EAAsC,UAAC4E,IAAD,EAAU;AAClD,uBAAOA,KAAKC,WAAL,IAAoB,OAAKpJ,KAAL,CAAWiB,OAAX,CAAmBD,WAAnB,CAA+BoI,WAAnD,IACLD,KAAKzE,WAAL,IAAoB/B,SAASO,KADxB,IAELiG,KAAKpH,aAAL,IAAsB,OAAK/B,KAAL,CAAWiB,OAAX,CAAmBD,WAAnB,CAA+Be,aAFvD;AAGD,eAJG,CAbU;AAAA;AAAA;AAAA;;AAkBZG,gCAAQC,KAAR,CAAc,UAAd;AAlBY;;AAAA;AAAA,oBAqBV,OAAKnC,KAAL,CAAWjC,MAAX,IAAqB,OAAKiC,KAAL,CAAWiB,OAAX,CAAmBgB,MAAnB,IAA6B,OAAKjC,KAAL,CAAWiB,OAAX,CAAmBD,WAAnB,CAA+BO,KArBvE;AAAA;AAAA;AAAA;;AAsBZW,gCAAQC,KAAR,CAAc,cAAd;AAtBY;;AAAA;;AA0Bd,qBAAKuB,QAAL,CAAc;AACZrH,4BAAY,KADA;AAEZ6B,8BAAc,MAFF;AAGZC,0BAAU;AAHE,eAAd;AAKA,qBAAKkL,WAAL;AACA,qBAAKrJ,KAAL,CAAWiB,OAAX,CAAmBqI,iBAAnB;AACA,qBAAKC,SAAL;;AAjCc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAleG;;AAAA,WAsgBnBC,WAtgBmB;AAAA,2FAsgBL,kBAAOjC,CAAP;AAAA;;AAAA;AAAA;AAAA;AAAA;AACZ;AADY,wCAEsE,OAAKvH,KAAL,CAAWiB,OAAX,CAAmBD,WAFzF,EAEJyI,aAFI,yBAEJA,aAFI,EAEWC,YAFX,yBAEWA,YAFX,EAEyBC,wBAFzB,yBAEyBA,wBAFzB,EAEmDC,cAFnD,yBAEmDA,cAFnD;;AAGZ,oBAAIF,iBAAiB,cAAjB,IAAmCC,wBAAvC,EAAiE;AAC/D,yBAAKf,aAAL;AACD,iBAFD,MAEO,IAAIc,iBAAiB,cAAjB,IAAmC,CAACD,aAAxC,EAAuD;AAC5D,yBAAK/F,QAAL,CAAc;AACZjH,qCAAiB,IADL;AAEZY,kCAAc;AAFF,mBAAd;AAID,iBALM,MAKA;AACL,yBAAKuL,aAAL;AACD;;AAZW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAtgBK;;AAAA;AAAA;AAAA;AAAA;;AAAA,WAqhBnBtG,eArhBmB,GAqhBD,UAACiF,CAAD,EAAO;AACvB,UAAG,OAAKvH,KAAL,CAAWjC,MAAd,EAAqB;AACnB,eAAK7B,KAAL,CAAWuL,cAAX,IAA6B,OAAKvL,KAAL,CAAWuL,cAAX,EAA7B;AACA,eAAKzH,KAAL,CAAW4H,KAAX;AACD;AACD,aAAKlE,QAAL,CAAc;AACZrH,oBAAY,KADA;AAEZ6B,sBAAc,MAFF;AAGZC,kBAAU;AAHE,OAAd;AAKA,aAAKkL,WAAL;AACAQ,yBAASC,KAAT;AACA,aAAKnC,iBAAL;AACD,KAliBkB;;AAAA,WAoiBnBoC,kBApiBmB,GAoiBE,YAAM;AACzB,aAAKrG,QAAL,CAAc;AACZjH,yBAAiB;AADL,OAAd;AAGD,KAxiBkB;;AAAA,WA0iBnBuN,cA1iBmB,4EA0iBF;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,8BACoC,OAAK7N,KADzC,EACPe,OADO,iBACPA,OADO,EACEC,cADF,iBACEA,cADF,EACkBiB,aADlB,iBACkBA,aADlB;AAEP6L,8BAFO,GAEc,OAAK/N,KAFnB,CAEP+N,gBAFO;AAAA;AAAA,qBAGM,OAAKjK,KAAL,CAAWkK,QAAX,CAAoBhN,OAApB,EAA6BC,cAA7B,CAHN;;AAAA;AAGT6G,oBAHS;AAIP0F,0BAJO,GAIU,OAAK1J,KAAL,CAAWiB,OAAX,CAAmBD,WAJ7B,CAIP0I,YAJO;;AAAA,mBAKX1F,MALW;AAAA;AAAA;AAAA;;AAMb,qBAAKN,QAAL,CAAc;AACZjH,iCAAiB,KADL;AAEZJ,4BAAY,IAFA;AAGZa,yBAAS,EAHG;AAIZC,gCAAgB;AAJJ,eAAd;AAMA+E,gCAAQkB,IAAR,CAAa,MAAb;AACA,qBAAKwF,aAAL;AACAvG,yBAAW,YAAM;AACf,oBAAG,OAAKP,cAAL,IAAuB,OAAKA,cAAL,CAAoBR,KAA9C,EAAoD;AAClD,yBAAKQ,cAAL,CAAoBR,KAApB,CAA0B4G,KAA1B;AACA,yBAAKpG,cAAL,CAAoBR,KAApB,CAA0B6G,iBAA1B,CAA4C,CAA5C,EAA+C,OAAKrG,cAAL,CAAoBR,KAApB,CAA0BC,KAA1B,CAAgCuE,MAA/E;AACD;AACF,eALD,EAKG,GALH;;AAda,oBAoBT1H,iBAAiB,OAAK4B,KAAL,CAAWkB,MAAX,CAAkBuH,EApB1B;AAAA;AAAA;AAAA;;AAAA;AAAA,qBAqBM,OAAKzI,KAAL,CAAWmK,gBAAX,CAA4B,OAAKnK,KAAjC,CArBN;;AAAA;AAqBPoK,kBArBO;;AAsBXH,+BAAiBG,IAAjB;;AAtBW;AAwBb,kBAAIV,iBAAiB,cAArB,EAAqC;AACnC,uBAAK1J,KAAL,CAAWiB,OAAX,CAAmBgI,cAAnB;AACD;AACD,qBAAKvF,QAAL,CAAc;AACZtF,+BAAe;AADH,eAAd;;AA3Ba;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KA1iBE;;AAAA,WA2kBnBiM,eA3kBmB,GA2kBD,UAACC,KAAD,EAAW;AAAA,kBACmB,OAAKnO,KAAL,IAAc,EADjC;AAAA,gCACnBe,OADmB;AAAA,UACnBA,OADmB,iCACT,EADS;AAAA,uCACLC,cADK;AAAA,UACLA,cADK,wCACY,EADZ;;AAE3B,UAAImN,UAAU,SAAV,IAAuBpN,QAAQ4I,MAAR,KAAmB,CAA9C,EAAiD;AAC/C,eAAKyE,kBAAL,CAAwBjJ,KAAxB,CAA8B4G,KAA9B;AACD;AACD,UAAIoC,UAAU,gBAAV,IAA8BnN,eAAe2I,MAAf,KAA0B,CAAxD,IAA6D5I,QAAQ4I,MAAR,KAAmB,CAAhF,IAAqF5I,YAAYC,cAArG,EAAqH;AACnH,eAAK6M,cAAL;AACD;AACF,KAnlBkB;;AAAA,WAqlBnBQ,WArlBmB,GAqlBL,UAACF,KAAD,EAAQ/I,KAAR,EAAkB;AAC9B,UAAI,CAAC,WAAW8D,IAAX,CAAgB9D,KAAhB,CAAL,EAA6B;AAC3B;AACD;AACD,aAAKmC,QAAL,mCACG4G,KADH,EACW/I,KADX,GAEG,YAAM;AAAA,oBACuC,OAAKpF,KAAL,IAAc,EADrD;AAAA,kCACCe,OADD;AAAA,YACCA,OADD,iCACW,EADX;AAAA,yCACeC,cADf;AAAA,YACeA,cADf,wCACgC,EADhC;;AAEP,YAAIA,eAAe2I,MAAf,KAAyB,CAAzB,IAA8B5I,QAAQ4I,MAAR,KAAmB,CAAjD,IAAsD5I,YAAYC,cAAtE,EAAsF;AACpF,iBAAKuG,QAAL,CAAc;AACZrG,0BAAc;AADF,WAAd;AAGD;AACF,OATD;AAUD,KAnmBkB;;AAAA,WAqmBnBoN,UArmBmB,GAqmBN,UAACH,KAAD,EAAW;AAAA,kBACuB,OAAKnO,KAAL,IAAc,EADrC;AAAA,gCACfe,OADe;AAAA,UACfA,OADe,iCACL,EADK;AAAA,uCACDC,cADC;AAAA,UACDA,cADC,wCACgB,EADhB;;AAEvBkF,iBAAW,YAAM;AAAA,oBACY,OAAKlG,KAAL,IAAc,EAD1B;AAAA,YACRM,eADQ,SACRA,eADQ;;AAEhB,YAAI,CAACA,eAAL,EAAsB;AACtB,YAAI6N,UAAS,SAAT,IAAsBpN,QAAQ4I,MAAR,GAAiB,CAA3C,EAA8C;AAC5C,iBAAKpC,QAAL,CAAc;AACZrG,0BAAc;AADF,WAAd;AAGE6E,4BAAQkB,IAAR,CAAa,WAAb;AACH,SALD,MAKO;AACL,cAAIkH,UAAU,gBAAd,EAAgC;AAC9B,gBAAIpN,YAAYC,cAAhB,EAAgC;AAC9B,qBAAKuG,QAAL,CAAc;AACZrG,8BAAc;AADF,eAAd;AAGA6E,gCAAQkB,IAAR,CAAa,gBAAb;AACD;AACF;AACF;AACD,YAAIjG,eAAe2I,MAAf,KAAyB,CAAzB,IAA8B5I,QAAQ4I,MAAR,KAAmB,CAAjD,IAAsD5I,YAAYC,cAAtE,EAAsF;AACpF,iBAAKuG,QAAL,CAAc;AACZrG,0BAAc;AADF,WAAd;AAGD;AACD,OAvBD,EAuBG,EAvBH;AAwBA,KA/nBkB;;AAAA,WAkoBnBsK,iBAloBmB,GAkoBC,YAAM;AACxB,UAAI,CAAC,CAAC,OAAK+C,eAAX,EAA4B;AAC5B,UAAIC,OAAOC,SAASC,sBAAT,CAAgC,6BAAhC,CAAX;AACA,UAAIvJ,QAAQsJ,SAASE,cAAT,CAAwB,cAAxB,CAAZ;AACA,UAAIxJ,KAAJ,EAAWe,WAAW,YAAM;AAAE,YAAIsI,QAAQA,KAAK7E,MAAL,GAAc,CAA1B,EAA6B;AAACiF,kBAAQC,GAAR,CAAY,mCAAZ,EAAkD1J,MAAM4G,KAAN;AAAe;AAAE,OAApH,EAAsH,GAAtH;AACZ,KAvoBkB;;AAAA,WA0oBnB+C,YA1oBmB,GA0oBJ,UAAC7C,EAAD,EAAQ;AACrB;AACA;AACA;AACA;AAJqB,mCAKA3F,4BAAeC,SAAf,EALA;AAAA,UAKbC,QALa,0BAKbA,QALa;;AAMrB,aAAK3C,KAAL,CAAWuI,cAAX,CAA0BH,EAA1B,EAA6BzF,SAASuI,GAAtC;AACA,aAAKxH,QAAL,CAAc;AACZpH,oBAAY,IADA;AAEZ2B,qBAAa;AAFD,OAAd;AAIA,aAAK+B,KAAL,CAAWiB,OAAX,CAAmBkK,aAAnB;AACA9I,iBAAW,YAAM;AACf,eAAK+I,QAAL,IAAkB,OAAKA,QAAL,CAAc9J,KAAhC,IAAyC,OAAK8J,QAAL,CAAc9J,KAAd,CAAoB4G,KAApB,EAAzC;AACD,OAFD,EAEG,GAFH;;AAIA;AACA,UAAI,CAAC,OAAKlI,KAAL,CAAWiB,OAAX,CAAmBD,WAAnB,CAA+BvB,aAApC,EAAmD;AACjD,eAAKO,KAAL,CAAWqL,aAAX;AACD;AACF,KA9pBkB;;AAAA,WAgqBnBC,WAhqBmB,GAgqBL,UAAC/D,CAAD,EAAO;AAAA,mCACiB9E,4BAAeC,SAAf,EADjB;AAAA,UACXC,QADW,0BACXA,QADW;AAAA,UACD4I,aADC,0BACDA,aADC;;AAEnB,UAAG,OAAKvL,KAAL,CAAWiB,OAAX,CAAmBD,WAAnB,CAA+BvB,aAAlC,EAAgD;AAC9C,eAAK+L,eAAL,CAAqBjE,CAArB;AACA;AACD;AACD,UAAG,sBAAQ,OAAKvH,KAAL,CAAWiB,OAAX,CAAmBD,WAAnB,CAA+ByK,IAAvC,EAA4C,UAACP,GAAD,EAAO;AAAC,eAAOA,IAAIQ,OAAX;AAAmB,OAAvE,EAAyE5F,MAAzE,IAAiF,CAApF,EAAsF;AACpF5D,0BAAQC,KAAR,0CAAuBoJ,cAAcI,MAArC;AACA;AACD;AACD,UAAG3J,WAAW,OAAKhC,KAAL,CAAWiB,OAAX,CAAmBD,WAAnB,CAA+BO,KAA1C,IAAiDS,WAAW,OAAKhC,KAAL,CAAWiB,OAAX,CAAmBD,WAAnB,CAA+BU,SAA1C,CAApD,EAAyG;AACvGQ,0BAAQC,KAAR,wBAAoBoJ,cAAcI,MAAlC;AACA;AACD;AACD,aAAKjI,QAAL,CAAc;AACZpH,oBAAY;AADA,OAAd;AAGA,aAAKsP,wBAAL,CAA8BjJ,SAASuI,GAAvC;AACD,KAlrBkB;;AAAA,WAorBnBM,eAprBmB,GAorBD,UAACjE,CAAD,EAAO;AACvB,aAAK7D,QAAL,CAAc;AACZpH,oBAAY;AADA,OAAd;AAGD,KAxrBkB;;AAAA,WA2rBnBuP,aA3rBmB,GA2rBH,UAACC,GAAD,EAAS;AAAA,mCACarJ,4BAAeC,SAAf,EADb;AAAA,UACfC,QADe,0BACfA,QADe;AAAA,UACL4I,aADK,0BACLA,aADK;;AAEvB,UAAInD,KAAG,OAAKpI,KAAL,CAAWD,QAAX,GAAqB,CAAC,CAAtB,GAA0B+L,GAAjC;AACA,UAAG,CAAC,OAAK9L,KAAL,CAAWkB,MAAZ,IAAsB,CAAC,OAAKlB,KAAL,CAAWkB,MAAX,CAAkBuH,EAA5C,EAA+C;AAC7CvG,0BAAQC,KAAR,CAAc,oBAAd;AACA;AACD;AACD,UAAI4J,UAAQ,oBAAM,OAAK/L,KAAL,CAAWiB,OAAX,CAAmBsD,WAAzB,EAAqC,UAACyH,OAAD,EAAW;AAAC,eAAOA,QAAQtH,WAAR,IAAqB/B,SAASuI,GAArC;AAA0C,OAA3F,CAAZ;AACA,UAAIA,MAAIa,WAAW,oBAAMA,QAAQN,IAAd,EAAmB,UAACP,GAAD,EAAO;AAAC,eAAO,CAACA,IAAIe,iBAAZ;AAA8B,OAAzD,CAAnB;AACA,UAAGf,GAAH,EAAO;AACLhJ,0BAAQC,KAAR,CAAiBoJ,cAAcI,MAA/B,cAAyCT,IAAIgB,IAA7C;AACA;AACD;AACD,aAAKlM,KAAL,CAAWuI,cAAX,CAA0BH,EAA1B,EAA6BzF,SAASwJ,IAAtC;AACA,aAAKpE,IAAL,GAAU,OAAK/H,KAAL,CAAWiB,OAAX,CAAmBD,WAAnB,CAA+BO,KAAzC;AACA,aAAKmC,QAAL,CAAc;AACZnH,qBAAa;AADD,OAAd;AAGA8F,iBAAW,YAAM;AACf,eAAKT,eAAL,CAAqBN,KAArB,CAA2B4G,KAA3B;AACA,eAAKtG,eAAL,CAAqBN,KAArB,CAA2B6G,iBAA3B,CAA6C,CAA7C,EAAgD,OAAKvG,eAAL,CAAqBN,KAArB,CAA2BC,KAA3B,CAAiCuE,MAAjF;AACD,OAHD,EAGG,GAHH;AAID,KAjtBkB;;AAAA,WAmtBnBsG,YAntBmB,GAmtBJ,UAAC7E,CAAD,EAAO;AACpB,aAAK7D,QAAL,CAAc;AACZnH,qBAAa;AADD,OAAd;AAGA;AACA,aAAKgN,SAAL;AACD,KAztBkB;;AAAA,WA2tBnB8C,gBA3tBmB,GA2tBA,UAAC9E,CAAD,EAAO;AACxB,aAAK7D,QAAL,CAAc;AACZnH,qBAAa;AADD,OAAd;AAGD,KA/tBkB;;AAAA,WAiuBnB+P,kBAjuBmB,GAiuBE,UAACrL,OAAD,EAASpC,GAAT,EAAiB;AAAA,mBACXoC,WAAW,EADA;AAAA,UAC1BsL,QAD0B,UAC1BA,QAD0B;;AAAA,UAE1BC,SAF0B,GAEbC,uBAAOC,UAFM,CAE1BF,SAF0B;;AAGlC,UAAGA,SAAH,EAAa;AACX,YAAGD,QAAH,EAAY;AACV,cAAMI,iBAAiBJ,SAASK,IAAT,CAAc;AAAA,mBAAO3H,KAAKP,WAAL,KAAqB7F,GAA5B;AAAA,WAAd,CAAvB;AACA,cAAG8N,kBAAkB,CAACA,eAAeE,cAArC,EAAoD;AAClD,mBAAO,IAAP;AACD,WAFD,MAEK;AACH3K,8BAAQkB,IAAR;AACA,mBAAO,KAAP;AACD;AACF;AACDlB,0BAAQkB,IAAR;AACA,eAAO,KAAP;AACD,OAZD,MAYK;AACH,eAAO,IAAP;AACD;AAEJ,KApvBkB;;AAAA,WAsvBnB0J,YAtvBmB,GAsvBJ,UAAC7L,OAAD,EAAUqD,OAAV,EAAmB0H,OAAnB,EAA4BnN,GAA5B,EAAiCkO,QAAjC,EAA8C;AAAA,mCACvBtK,4BAAeC,SAAf,EADuB;AAAA,UACnDC,QADmD,0BACnDA,QADmD;AAAA,UACzC4I,aADyC,0BACzCA,aADyC;;AAE3DtK,cAAQD,WAAR,GAAsB,IAAtB;AACA,cAAQnC,GAAR;AACE,aAAK8D,SAASO,KAAd;AACE,iBAAKQ,QAAL,CAAc;AACZtF,2BAAe;AADH,WAAd,EAEE,YAAM;AACN,mBAAKiF,YAAL,CAAkB,CAAC,CAAnB;AACD,WAJD;AAKA;AACF,aAAKV,SAASwJ,IAAd;AACE,iBAAKN,aAAL,CAAmB,CAAC,CAApB;AACA;AACF,aAAKlJ,SAASuI,GAAd;AACE,cAAI8B,aAAa,OAAKhN,KAAL,IAAc,OAAKA,KAAL,CAAWkB,MAA1C;AACA,cAAI+L,YAAaD,WAAWvE,EAAX,IAAiBuE,WAAWE,IAA5B,IAAoCF,WAAW1H,IAAhD,GAAwD,IAAxD,GAA+D,KAA/E;AACA,cAAI6H,MAAM,OAAKjR,KAAL,CAAWkR,QAAX,CAAoB,wBAApB,CAAV;AACA,cAAID,OAAO,CAACF,SAAZ,EAAuB;AACrB/K,8BAAQkB,IAAR,gDAAuBmI,cAAcI,MAArC;AACA;AACD;AACD,iBAAKV,YAAL,CAAkB,CAAC,CAAnB;AACA;AACF,aAAKtI,SAAS0K,EAAd;AACE,cAAI,oBAAMpM,QAAQsD,WAAd,EAA2B,UAAC4E,IAAD,EAAU;AAAE,mBAAOA,KAAKzE,WAAL,KAAqB/B,SAAS2K,GAA9B,IAAqCnE,KAAKzE,WAAL,KAAqB/B,SAAS4K,IAA1E;AAA+E,WAAtH,CAAJ,EAA6H;AAC3HrL,8BAAQC,KAAR,CAAc,yBAAd;AACD,WAFD,MAEO;AACL,mBAAKyJ,wBAAL,CAA8B/M,GAA9B,EAAmCkO,QAAnC;AACD;AACD;AACF,aAAKpK,SAAS2K,GAAd;AACE,cAAI,oBAAMrM,QAAQsD,WAAd,EAA2B,UAAC4E,IAAD,EAAU;AAAE,mBAAOA,KAAKzE,WAAL,KAAqB/B,SAAS0K,EAA9B,IAAoClE,KAAKzE,WAAL,KAAqB/B,SAAS4K,IAAzE;AAA+E,WAAtH,CAAJ,EAA6H;AAC3HrL,8BAAQC,KAAR,CAAc,0BAAd;AACD,WAFD,MAEO;AACL,mBAAKyJ,wBAAL,CAA8B/M,GAA9B,EAAmCkO,QAAnC;AACD;AACD;AACF,aAAKpK,SAAS4K,IAAd;AACE,cAAI,oBAAMtM,QAAQsD,WAAd,EAA2B,UAAC4E,IAAD,EAAU;AAAE,mBAAOA,KAAKzE,WAAL,KAAqB/B,SAAS2K,GAA9B,IAAqCnE,KAAKzE,WAAL,KAAqB/B,SAAS0K,EAA1E;AAA6E,WAApH,CAAJ,EAA2H;AACzHnL,8BAAQC,KAAR,CAAc,2BAAd;AACD,WAFD,MAEO;AACL,mBAAKyJ,wBAAL,CAA8B/M,GAA9B,EAAmCkO,QAAnC;AACD;AACD;AACF;AACE,iBAAKnB,wBAAL,CAA8B/M,GAA9B,EAAmCkO,QAAnC;AACA;AA5CJ;AA8CD,KAvyBkB;;AAAA,WAyyBnBS,iBAzyBmB,GAyyBD,UAAC3O,GAAD,EAAO;AAAA,0BACO,OAAKmB,KADZ;AAAA,UACfiB,OADe,iBACfA,OADe;AAAA,UACNlB,QADM,iBACNA,QADM;;AAAA,mCAEF0C,4BAAeC,SAAf,EAFE;AAAA,UAEfC,QAFe,0BAEfA,QAFe;;AAGvB,UAAI8K,YAAU,KAAd;AACA,UAAG,CAAC1N,QAAJ,EAAa;AACX,eAAO0N,SAAP;AACD;AACD,cAAQ5O,GAAR;AACE,aAAK8D,SAAS0K,EAAd;AACE,cAAI,oBAAMpM,QAAQsD,WAAd,EAA2B,UAAC4E,IAAD,EAAU;AAAE,mBAAO,CAACA,KAAKzE,WAAL,KAAqB/B,SAAS2K,GAA9B,IAAqCnE,KAAKzE,WAAL,KAAqB/B,SAAS4K,IAApE,KAA6EvL,WAAWmH,KAAK5H,KAAhB,KAAwB,CAA5G;AAA+G,WAAtJ,CAAJ,EAA6J;AAC3JkM,wBAAU,IAAV;AACD;AACD;AACF,aAAK9K,SAAS2K,GAAd;AACE,cAAI,oBAAMrM,QAAQsD,WAAd,EAA2B,UAAC4E,IAAD,EAAU;AAAE,mBAAO,CAACA,KAAKzE,WAAL,KAAqB/B,SAAS0K,EAA9B,IAAoClE,KAAKzE,WAAL,KAAqB/B,SAAS4K,IAAnE,KAA4EvL,WAAWmH,KAAK5H,KAAhB,KAAwB,CAA3G;AAA+G,WAAtJ,CAAJ,EAA6J;AAC3JkM,wBAAU,IAAV;AACD;AACD;AACF,aAAK9K,SAAS4K,IAAd;AACE,cAAI,oBAAMtM,QAAQsD,WAAd,EAA2B,UAAC4E,IAAD,EAAU;AAAE,mBAAO,CAACA,KAAKzE,WAAL,KAAqB/B,SAAS2K,GAA9B,IAAqCnE,KAAKzE,WAAL,KAAqB/B,SAAS0K,EAApE,KAA2ErL,WAAWmH,KAAK5H,KAAhB,KAAwB,CAA1G;AAA8G,WAArJ,CAAJ,EAA4J;AAC1JkM,wBAAU,IAAV;AACD;AACD;AAfJ;AAiBA,aAAOA,SAAP;AACD,KAl0BkB;;AAAA,WAo0BnBC,WAp0BmB,GAo0BL,UAAC7O,GAAD,EAAMkO,QAAN,EAAmB;AAC/B,UAAI,CAAC,OAAKY,cAAL,CAAoB9O,GAApB,CAAL,EAA+B;AAAE;AAAQ;AADV,0BAEa,OAAKmB,KAFlB;AAAA,UAEvBiB,OAFuB,iBAEvBA,OAFuB;AAAA,UAEdqD,OAFc,iBAEdA,OAFc;AAAA,UAEL7E,aAFK,iBAELA,aAFK;;AAAA,mCAGKgD,4BAAeC,SAAf,EAHL;AAAA,UAGvBC,QAHuB,0BAGvBA,QAHuB;AAAA,UAGb4I,aAHa,0BAGbA,aAHa;;AAI/B,UAAI1M,QAAQ8D,SAASO,KAArB,EAA4B;AAAA,YAClBC,uBADkB,GACU,OAAKjH,KADf,CAClBiH,uBADkB;;AAE1B,YAAIA,uBAAJ,EAA6B;AAC3BjB,4BAAQkB,IAAR,CAAa,gBAAb;AACA;AACD;AACF;;AAV8B,oCAWVX,4BAAeC,SAAf,EAXU;AAAA,UAWvBkL,QAXuB,2BAWvBA,QAXuB;;AAAA,UAYvBxQ,aAZuB,GAYL,OAAKjB,KAZA,CAYvBiB,aAZuB;;AAa/B,UAAG,CAACqP,uBAAOC,UAAP,CAAkBmB,gBAAlB,CAAmChP,GAAnC,CAAJ,EAA6C,OAAO,KAAP;;AAE7C,UAAI,OAAK4F,iBAAL,CAAuB5F,GAAvB,EAA4ByF,OAA5B,EAAqC7E,aAArC,CAAJ,EAAyD;AACvD;AACD;AACD,UAAIuM,UAAU,oBAAM/K,QAAQsL,QAAd,EAAwB,EAAE,eAAe1N,GAAjB,EAAxB,CAAd;AACA;AACA;AACA;AACA;AACA,UAAImN,QAAQ8B,YAAR,IAAwB,CAA5B,EAA+B;AAC7B,YAAIC,SAAS,oBAAM9M,QAAQsD,WAAd,EAA2B,UAAC4E,IAAD,EAAU;AAAE,iBAAOA,KAAK2E,YAAL,IAAqB,CAArB,IAA0B3E,KAAKzE,WAAL,IAAoB7F,GAArD;AAA0D,SAAjG,CAAb;AACA,YAAIkP,MAAJ,EAAY;AACV7L,4BAAQC,KAAR,CAAc,YAAd;AACA;AACD;AACF;AACD6J,gBAAU,oBAAM/K,QAAQsD,WAAd,EAA2B,UAAC4E,IAAD,EAAU;AAAE,eAAOA,KAAKzE,WAAL,KAAqB7F,GAA5B;AAAiC,OAAxE,CAAV;AACA,UAAMkI,aAAN;AACA,UAAIiF,OAAJ,EAAa;AACX,eAAKgC,mBAAL,CAAyBnP,GAAzB;AACA;AACD,OAHD,MAGO,IAAIoC,QAAQsD,WAAR,CAAoBuB,MAApB,IAA8B,CAAlC,EAAqC;AAC1C,gBAAQ,OAAK5J,KAAL,CAAWkR,QAAX,CAAoB,UAApB,CAAR;AACE,eAAKQ,SAASK,SAAd;AACE/L,8BAAQC,KAAR,CAAc,iBAAd;AACA;AACF,eAAKyL,SAASM,YAAd;AACE9Q,4BAAgB4J,sBAAYC,OAAZ,CAAoB;AAClCrG,yBAAW,qBADuB;AAElCsG,qBAAO,MAF2B;AAGlCC,uBAAS,gBAHyB;AAIlCC,kBAJkC,kBAI3B;AACLL,qBAAKrD,QAAL,CAAc;AACZtG,iCAAe;AADH,iBAAd;AAGA2J,qBAAK+F,YAAL,CAAkB7L,OAAlB,EAA2BqD,OAA3B,EAAoC0H,OAApC,EAA6CnN,GAA7C,EAAkDkO,QAAlD;AACD,eATiC;AAUlC1F,sBAVkC,sBAUvB,CACV;AAXiC,aAApB,CAAhB,GAYKN,KAAK+F,YAAL,CAAkB7L,OAAlB,EAA2BqD,OAA3B,EAAoC0H,OAApC,EAA6CnN,GAA7C,EAAkDkO,QAAlD,CAZL;AAaA;AACF;AACE,mBAAKD,YAAL,CAAkB7L,OAAlB,EAA2BqD,OAA3B,EAAoC0H,OAApC,EAA6CnN,GAA7C,EAAkDkO,QAAlD;AACA;AArBJ;AAuBD,OAxBM,MAwBA;AACL,eAAKD,YAAL,CAAkB7L,OAAlB,EAA2BqD,OAA3B,EAAoC0H,OAApC,EAA6CnN,GAA7C,EAAkDkO,QAAlD;AACD;AACF,KAl4BkB;;AAAA,WAo4BnBoB,SAp4BmB,GAo4BP,UAAC/F,EAAD,EAAIrL,IAAJ,EAAS0C,aAAT,EAAyB;AACnC,aAAKiE,QAAL,CAAc,EAAC/G,cAAayL,EAAd,EAAd;;AADmC,oCAEd3F,4BAAeC,SAAf,EAFc;AAAA,UAE3BC,QAF2B,2BAE3BA,QAF2B;;AAGnC,cAAO5F,IAAP;AACE,aAAK4F,SAASO,KAAd;AACE,WAACzD,aAAD,IAAkB,OAAK4D,YAAL,CAAkB+E,EAAlB,CAAlB;AACA;AACF,aAAKzF,SAASwJ,IAAd;AACE,WAAC1M,aAAD,IAAkB,OAAKoM,aAAL,CAAmBzD,EAAnB,CAAlB;AACA;AACF,aAAKzF,SAASuI,GAAd;AACE,iBAAKD,YAAL,CAAkB7C,EAAlB;AACA;AATJ;AAWD,KAl5BkB;;AAAA,WAo5BnBwD,wBAp5BmB,GAo5BQ,UAAC/M,GAAD,EAAMkO,QAAN,EAAgBqB,KAAhB,EAA0B;AACnD,aAAKpO,KAAL,CAAWqO,oBAAX,CAAgCxP,GAAhC,EAAqCkO,QAArC;AACA,UAAG,OAAK/M,KAAL,CAAWjC,MAAd,EAAqB;AACnB,eAAKwF,YAAL,CAAkB,UAAlB;AACD,OAFD,MAEK;AACH,eAAK+K,oBAAL,CAA0BzP,GAA1B,EAA+BuP,KAA/B;AACD;AACF,KA35BkB;;AAAA,WA65BnBG,QA75BmB,GA65BR,UAACxF,KAAD,EAAOtJ,aAAP,EAAqB1C,IAArB,EAA2BgQ,QAA3B,EAAwC;AAAA,oCAC5BtK,4BAAeC,SAAf,EAD4B;AAAA,UACzCC,QADyC,2BACzCA,QADyC;;AAAA,UAEnC6L,SAFmC,GAErB,OAAKtS,KAFgB,CAEzCa,IAFyC;;AAGjD,UAAGyR,aAAa,CAAb,IAAkB/O,aAAlB,KAAoC1C,QAAM4F,SAASO,KAAf,IAAwBnG,QAAM4F,SAASuI,GAAvC,IAA8CnO,QAAM4F,SAASwJ,IAAjG,CAAH,EAA0G;AACxGjK,0BAAQuM,IAAR,CAAa,mBAAb;AACD,OAFD,MAEK;AACH,eAAKzO,KAAL,CAAW0O,MAAX,CAAkB3F,KAAlB,EAAyBgE,QAAzB;AACD;AACF,KAr6BkB;;AAAA,WAu6BnB4B,YAv6BmB,GAu6BJ,UAAC5F,KAAD,EAAQxB,CAAR,EAAWxK,IAAX,EAAoB;AACjC,UAAG,CAAC0P,uBAAOC,UAAP,CAAkBmB,gBAAlB,CAAmC,OAAK7N,KAAL,CAAWiB,OAAX,CAAmB2N,YAAtD,CAAJ,EAAyE;AACzE,UAAIzF,OAAK,oBAAM,OAAKnJ,KAAL,CAAWiB,OAAX,CAAmBsD,WAAzB,EAAqC,EAAC,eAAcwE,KAAf,EAArC,CAAT;AACA;AACA;AACA;AACA,UAAI9J,eAAesI,EAAEsH,MAArB;AACA,UAAIC,kBAAkBC,SAAS,OAAK7S,KAAL,CAAWkR,QAAX,CAAoB,iBAApB,KAA0C,EAAnD,CAAtB;AACA,UAAI,CAAC4B,MAAMzH,EAAEsH,MAAF,CAAStN,KAAf,CAAD,IAA0BgG,EAAEsH,MAAF,CAAStN,KAAT,IAAkB,GAAhD,EAAqD;AACnD,YAAIgG,EAAEsH,MAAF,CAAStN,KAAT,CAAeuE,MAAf,IAAyBgJ,eAA7B,EAA8C;AAC5C,iBAAK9O,KAAL,CAAWiP,WAAX,CAAuBlG,KAAvB,EAA8BxB,EAAEsH,MAAF,CAAStN,KAAvC,EAA8C,KAA9C,EAAqDxE,IAArD;AACD;AACF;AACF,KAp7BkB;;AAAA,WAs7BnB4E,mBAt7BmB,GAs7BC,UAACuN,GAAD,EAAKC,GAAL,EAAW;AAC7B,UAAM7G,aAAa,OAAK1I,mBAAL,EAAnB;;AAD6B,oCAER6C,4BAAeC,SAAf,EAFQ;AAAA,UAErBC,QAFqB,2BAErBA,QAFqB;;AAG7B,UAAIyM,MAAM9G,aAAa,YAAb,GAA4B,WAAtC;AACA,UAAI,OAAKtI,KAAL,CAAWiB,OAAX,CAAmBD,WAAnB,CAA+B0D,WAA/B,KAA+C/B,SAASO,KAAxD,IAAiE,OAAKlD,KAAL,CAAWiB,OAAX,CAAmBD,WAAnB,CAA+B0D,WAA/B,KAA+C/B,SAASwJ,IAA7H,EAAmI;AACjI,YAAI,CAAC+C,GAAL,EAAU;AACR,iBAAKxL,QAAL,CAAe;AACbxF,0BAAcgR;AADD,WAAf;AAGD,SAJD,MAIO;AACL,cAAI,CAACE,IAAI/J,IAAJ,CAAS6J,GAAT,CAAL,EAAoB;AAClB;AACD,WAFD,MAEO;AACL,gBAAIG,SAASH,IAAII,KAAJ,CAAU,GAAV,CAAb;AACA,gBAAID,OAAOvJ,MAAP,GAAgB,CAApB,EAAuB;AACrB,kBAAIuJ,OAAO,CAAP,EAAUvJ,MAAV,GAAmB,CAAvB,EAA0B;AACxB,uBAAKpC,QAAL,CAAc;AACZxF,gCAAcgR;AADF,iBAAd;AAGD,eAJD,MAIO;AACL;AACD;AACF,aARD,MAQO;AACL,kBAAIA,IAAIpJ,MAAJ,GAAa,CAAjB,EAAoB;AAClB;AACD,eAFD,MAEO;AACL,uBAAKpC,QAAL,CAAc;AACZxF,gCAAcgR;AADF,iBAAd;AAGD;AACF;AACF;AACF;AACF;AACD,aAAKlP,KAAL,CAAWiB,OAAX,CAAmBU,mBAAnB,CAAuCuN,GAAvC,EAA2CC,GAA3C;AACD,KAz9BkB;;AAAA,WA29BnBI,MA39BmB,GA29BV,UAACxG,KAAD,EAAQxB,CAAR,EAAWxK,IAAX,EAAoB;AAC3B,aAAKkC,YAAL,GAAoB,IAApB;AACA,aAAKe,KAAL,CAAWwP,eAAX,CAA2B,CAAC,CAA5B;AACA,aAAKxP,KAAL,CAAWiP,WAAX,CAAuBlG,KAAvB,EAA8BxB,EAAEsH,MAAF,CAAStN,KAAT,IAAkB,GAAlB,GAAwB,CAAxB,GAA4BgG,EAAEsH,MAAF,CAAStN,KAAnE,EAA0E,IAA1E,EAAgFxE,IAAhF;AACD,KA/9BkB;;AAAA,WAi+BnB0S,OAj+BmB,GAi+BT,UAAC1G,KAAD,EAAQI,IAAR,EAAclI,OAAd,EAAuBsG,CAAvB,EAA6B;AACrC,aAAKtI,YAAL,GAAoBsI,EAAEsH,MAAtB;AACA,aAAKnL,QAAL,CAAc,EAAE/G,cAAcoM,KAAhB,EAAd;AACA,UAAII,KAAKzE,WAAL,IAAoBzD,QAAQ2N,YAAhC,EAA8C;AAC9C,aAAKZ,mBAAL,CAAyB7E,KAAKzE,WAA9B;AACD,KAt+BkB;;AAAA,WAw+BnBgL,WAx+BmB,GAw+BJ,UAAC3G,KAAD,EAAQI,IAAR,EAAclI,OAAd,EAAuBsG,CAAvB,EAA6B;AAC1C,aAAKtI,YAAL,GAAoBsI,EAAEsH,MAAtB;AACA,aAAKnL,QAAL,CAAc,EAAE/G,cAAcoM,KAAhB,EAAd;AACA,UAAII,KAAKzE,WAAL,IAAoBzD,QAAQ2N,YAAhC,EAA8C;AAC9C,aAAK5O,KAAL,CAAWwP,eAAX,CAA2BrG,KAAKzE,WAAhC;AACD,KA7+BkB;;AAAA,WA++BnBsJ,mBA/+BmB,GA++BE,UAACnP,GAAD,EAAO;AAC1B,aAAKmB,KAAL,CAAWwP,eAAX,CAA2B3Q,GAA3B;AACA,aAAKyP,oBAAL,CAA0BzP,GAA1B;AACD,KAl/BkB;;AAAA,WAo/BnB8Q,aAp/BmB,GAo/BL,UAAClQ,aAAD,EAAgBqI,MAAhB,EAAyB;AAAA,oCAChBrF,4BAAeC,SAAf,EADgB;AAAA,UAC7BC,QAD6B,2BAC7BA,QAD6B;;AAErC,UAAGlD,aAAH,EAAiB;AACfyC,0BAAQuM,IAAR,CAAa,wBAAb;AACA;AACD;AACD,UAAImB,UAAQ,IAAZ;AANqC,0BAOC,OAAK5P,KAPN;AAAA,UAO7BiB,OAP6B,iBAO7BA,OAP6B;AAAA,UAOpBlB,QAPoB,iBAOpBA,QAPoB;AAAA,UAOVmB,MAPU,iBAOVA,MAPU;;AAQrC,UAAGnB,YAAYmB,OAAOuH,EAAnB,IAAyB,yBAAWxH,QAAQsD,WAAnB,EAAgC,UAAC4E,IAAD,EAAU;AAAC,eAAOA,KAAKzE,WAAL,KAAqB/B,SAASO,KAA9B,IAAuCiG,KAAKjI,MAAL,CAAYkH,EAAZ,IAAgBlH,OAAOuH,EAArE;AAAwE,OAAnH,KAAuH,CAAC,CAApJ,EAAsJ;AACpJmH,kBAAQ,KAAR;AACD;AACD,aAAKvM,YAAL,CAAkB,CAAC,CAAnB,EAAqBuM,OAArB,EAA8B9H,MAA9B;AACD,KAhgCkB;;AAAA,WAkgCnB+H,UAlgCmB,GAkgCR,UAACC,CAAD,EAAI9M,GAAJ,EAAU;AAAA,oCACOP,4BAAeC,SAAf,EADP;AAAA,UACX6I,aADW,2BACXA,aADW;;AAEnB,UAAG,OAAKvL,KAAL,CAAWiB,OAAX,CAAmBD,WAAnB,CAA+BvB,aAAlC,EAAgD;AAC9CyC,0BAAQuM,IAAR,oCAAqBlD,cAAcI,MAAnC;AACA;AACD;AACD,aAAK3L,KAAL,CAAWiB,OAAX,CAAmB8O,iBAAnB,CAAqCD,CAArC,EAAwC,OAAK9P,KAAL,CAAWgD,GAAnD;AACA;AACA;AACD,KA3gCkB;;AAAA,WA6gCnBgN,MA7gCmB,GA6gCZ,YAAI;AACT;AACA;AACA;AACA;AACA,UAAMrP,IAAE,oBAAM,OAAKyK,QAAL,CAAc9J,KAAd,CAAoBC,KAA1B,CAAR;AACA;AACA;AACA;AACA,aAAKvB,KAAL,CAAWiQ,WAAX,CAAuBtP,CAAvB,EAA0BoD,IAA1B,CAA+B,YAAI;AACjC,eAAKqH,QAAL,CAAc9J,KAAd,CAAoB4G,KAApB;AACD,OAFD,EAEGgI,OAFH,CAEW,YAAM;AACf7N,mBAAW,YAAM;AACf,iBAAK+I,QAAL,CAAc9J,KAAd,CAAoBC,KAApB,GAA0B,EAA1B;AACA,cAAI4O,MAAMvF,SAASE,cAAT,CAAwB,UAAxB,CAAV;AACAqF,cAAI5O,KAAJ,GAAY,EAAZ;AACD,SAJD,EAIG,GAJH;AAKD,OARD;AASD,KA/hCkB;;AAAA,WAiiCnB2H,OAjiCmB,GAiiCT,UAACvI,CAAD,EAAO;AACf,UAAI,OAAKyP,YAAT,EAAuB;AACrB;AACD;AACD,aAAKA,YAAL,GAAoB,iGAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AACtB9H,0BADsB,GACT,OAAK1I,mBAAL,EADS;AAAA;AAAA,uBAEJ,OAAKI,KAAL,CAAWkJ,OAAX,CAAmBvI,CAAnB,EAAsB2H,UAAtB,CAFI;;AAAA;AAExB3K,2BAFwB;;AAG5B,oBAAIA,eAAeA,YAAYmI,MAAZ,KAAuB,CAA1C,EAA6C;AAC3C,sBAAI,OAAK9F,KAAL,CAAWiB,OAAX,CAAmBD,WAAnB,CAA+Be,aAAnC,EAAkD;AAChD,2BAAK2B,QAAL,CAAc;AACZvF,gCAAU,OAAK6B,KAAL,CAAWiB,OAAX,CAAmBD,WAAnB,CAA+Be;AAD7B,qBAAd;AAGD;AACF,iBAND,MAMO,IAAIpE,eAAeA,YAAYmI,MAAZ,IAAsB,CAAzC,EAA4C;AACjD,yBAAKpC,QAAL,CAAc;AACZrH,gCAAY,IADA;AAEZG,oCAAgB,IAFJ;AAGZmB,iCAAaA;AAHD,mBAAd;AAKD;;AAf2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAV,IAgBjB,IAhBiB,EAgBX;AACP,mBAAW,IADJ;AAEP,oBAAY;AAFL,OAhBW,CAApB;AAoBA,aAAKyS,YAAL;AACA/N,iBAAW,YAAM;AACf,eAAK+N,YAAL,CAAkBC,MAAlB;AACA,eAAKD,YAAL,GAAoB,IAApB;AACD,OAHD,EAGG,IAHH;AAID,KA9jCkB;;AAAA,WA0kCnBE,cA1kCmB,GA0kCJ,UAACnH,IAAD,EAAMJ,KAAN,EAAYtJ,aAAZ,EAA0BsN,QAA1B,EAAqC;AAClD,UAAI,CAAC,OAAKY,cAAL,CAAoBxE,KAAKzE,WAAzB,CAAL,EAA2C;AAAE;AAAQ;AACrD;AACA;AACA;AACA,UAAG,CAAC+H,uBAAOC,UAAP,CAAkBmB,gBAAlB,CAAmC1E,KAAKzE,WAAxC,CAAJ,EAA0D,OAAO,KAAP;AAC1D,UAAG,OAAK1F,sBAAL,IAA+BmK,IAAlC,EAAuC;AACrC;AACD;AACD,UAAG,OAAKpK,eAAR,EAAwB;AACtB,eAAKA,eAAL,CAAqBsR,MAArB;AACA,eAAKtR,eAAL,GAAqB,IAArB;AACD;AACD,aAAKA,eAAL,GAAqB,wBAAU,YAAI;AACjC,eAAKC,sBAAL,GAA8BmK,IAA9B;AACA,eAAKoH,kBAAL,CAAwBpH,IAAxB,EAA6BJ,KAA7B,EAAmCtJ,aAAnC;AACD,OAHoB,EAGnB,GAHmB,EAGf;AACJ,mBAAW,IADP;AAEJ,oBAAY;AAFR,OAHe,CAArB;AAOA,aAAKV,eAAL;AACAsD,iBAAW,YAAI;AACb,eAAKtD,eAAL,CAAqBsR,MAArB;AACA,eAAKtR,eAAL,GAAqB,IAArB;AACA,eAAKC,sBAAL,GAA8B,EAA9B;AACD,OAJD,EAIE,IAJF;AAKD,KApmCkB;;AAAA,WAsmCnBuR,kBAtmCmB,GAsmCA,UAACpH,IAAD,EAAMJ,KAAN,EAAYtJ,aAAZ,EAA4B;AAAA,oCACxBgD,4BAAeC,SAAf,EADwB;AAAA,UACrCC,QADqC,2BACrCA,QADqC;;AAAA,UAEvC2B,OAFuC,GAE3B,OAAKtE,KAFsB,CAEvCsE,OAFuC;;AAG7C,UAAG,OAAKG,iBAAL,CAAuB0E,KAAKzE,WAA5B,EAAwCJ,OAAxC,EAAgD7E,aAAhD,CAAH,EAAkE;AAChE;AACD;AACD,UAAG0J,KAAKzE,WAAL,IAAkB/B,SAASO,KAA9B,EAAoC;AAClC,eAAKyM,aAAL,CAAmBlQ,aAAnB;AACD,OAFD,MAEK;AACH,eAAK0O,SAAL,CAAepF,KAAf,EAAsBI,KAAKzE,WAA3B,EAAwCjF,aAAxC;AACD;AACF,KAjnCkB;;AAAA,WAmnCnB+Q,cAnnCmB,GAmnCJ,UAACzH,KAAD,EAAOI,IAAP,EAAYlI,OAAZ,EAAoBsG,CAApB,EAAuBwF,QAAvB,EAAkC;AAC/C,UAAG,CAACN,uBAAOC,UAAP,CAAkBmB,gBAAlB,CAAmC1E,KAAKzE,WAAxC,CAAJ,EAA0D,OAAO,KAAP;AAC1D,UAAG,OAAK1F,sBAAL,IAA+BmK,IAAlC,EAAuC;AACrC;AACD;AACD;AACA;AACA;AACA,aAAKnJ,KAAL,CAAWyQ,oBAAX,CAAgCtH,KAAKzE,WAArC;AACA,aAAKsJ,mBAAL,CAAyB7E,KAAKzE,WAA9B;AACA,UAAG,OAAK3F,eAAR,EAAwB;AACtB,eAAKA,eAAL,CAAqBsR,MAArB;AACA,eAAKtR,eAAL,GAAqB,IAArB;AACD;AACD,aAAKA,eAAL,GAAqB,wBAAU,YAAI;AACjC,eAAKC,sBAAL,GAA8BmK,IAA9B;AACA,eAAKsG,OAAL,CAAa1G,KAAb,EAAoBI,IAApB,EAA0BlI,OAA1B,EAAmCsG,CAAnC;AACD,OAHoB,EAGnB,GAHmB,EAGf;AACJ,mBAAW,IADP;AAEJ,oBAAY;AAFR,OAHe,CAArB;AAOA,aAAKxI,eAAL;AACAsD,iBAAW,YAAI;AACb,eAAKtD,eAAL,CAAqBsR,MAArB;AACA,eAAKtR,eAAL,GAAqB,IAArB;AACA,eAAKC,sBAAL,GAA8B,EAA9B;AACD,OAJD,EAIE,IAJF;AAKD,KA9oCkB;;AAAA,WAgpCnB0R,aAhpCmB,GAgpCH,UAACnJ,CAAD,EAAIoJ,SAAJ,EAAkB;AAAA,0BACK,OAAK3Q,KADV;AAAA,UAC1BiB,OAD0B,iBAC1BA,OAD0B;AAAA,UACjBqD,OADiB,iBACjBA,OADiB;AAAA,UACRvE,QADQ,iBACRA,QADQ;AAEhC;AACA;AACA;;AACA,UAAI,OAAKhB,eAAT,EAA0B;AACxB,eAAKA,eAAL,CAAqBsR,MAArB;AACA,eAAKtR,eAAL,GAAuB,IAAvB;AACD;AACD,aAAKA,eAAL,GAAuB,wBAAU,YAAM;AACrC,YAAIU,gBAAgB,OAAKD,gBAAL,EAApB;AACA,YAAI+E,cAAcxE,WAAW,sBAAQkB,QAAQsD,WAAhB,EAA6B,UAACC,CAAD,EAAO;AAAE,iBAAO,EAAE,OAAKC,iBAAL,CAAuBD,EAAEE,WAAzB,EAAsCJ,OAAtC,EAA+C7E,aAA/C,KAAiEuC,WAAWwC,EAAEjD,KAAb,KAAuB,CAA1F,CAAP;AAAsG,SAA5I,CAAX,GAA2JN,QAAQsD,WAArL;AACA;AACA,eAAKvF,sBAAL,GAA8BiC,OAA9B;AACA,YAAI,CAAC0P,SAAD,IAAc,CAAC,OAAKC,mBAAL,CAAyB3P,OAAzB,EAAkCsD,WAAlC,CAAnB,EAAmE;AACjE,iBAAKhB,YAAL;AACD,SAFD,MAEO,IAAI,CAACgB,eAAe,EAAhB,EAAoBuB,MAApB,GAA6B,CAAjC,EAAoC;AACzC;AACA,cAAI+K,WAAW,CAAC,CAAhB;AACAtM,sBAAY7D,OAAZ,CAAoB,UAAC6L,QAAD,EAAWxD,KAAX,EAAqB;AACvC,gBAAIwD,SAASnD,WAAT,IAAwB,OAAKjN,KAAL,CAAWQ,YAAvC,EAAqDkU,WAAW9H,KAAX;AACtD,WAFD;AAGA,iBAAKpE,wBAAL,CAA8BJ,WAA9B,EAA2CsM,QAA3C;AACD;AACF,OAfsB,EAepB,GAfoB,EAef;AACN,mBAAW,IADL;AAEN,oBAAY;AAFN,OAfe,CAAvB;AAmBA,aAAK9R,eAAL;AACAsD,iBAAW,YAAM;AACf,eAAKtD,eAAL,IAAwB,OAAKA,eAAL,CAAqBsR,MAArB,EAAxB;AACA,eAAKtR,eAAL,GAAuB,IAAvB;AACA,eAAKC,sBAAL,GAA8B,EAA9B;AACD,OAJD,EAIG,IAJH;AAKD,KAlrCkB;;AAAA,WAorCnB2F,wBAprCmB,GAorCQ,UAACJ,WAAD,EAAa5H,YAAb,EAA8B;AAAA,oCAClC8F,4BAAeC,SAAf,EADkC;AAAA,UAC/CC,QAD+C,2BAC/CA,QAD+C;;AAEvD,UAAImO,gEAAyBvM,WAAzB,EAAJ;AACA;AACA,UAAMwM,eAAeD,mBAAmBlE,IAAnB,CAAyB;AAAA,eAASzD,KAAKzE,WAAL,IAAoB/B,SAAS4K,IAAtC;AAAA,OAAzB,CAArB;AACA;AACA,UAAGwD,YAAH,EAAgB;AACd;AACAD,6BAAqBA,mBAAmBE,MAAnB,CAA2B;AAAA,iBAAQ7H,KAAKzE,WAAL,IAAoB/B,SAAS2K,GAA7B,IAAoCnE,KAAKzE,WAAL,IAAoB/B,SAAS0K,EAAzE;AAAA,SAA3B,CAArB;AACD;AACD;AACA,UAAI4D,YAAY,OAAKC,sBAAL,CAA4BJ,kBAA5B,EAA+CnU,YAA/C,CAAhB;AACA,UAAGsU,SAAH,EAAa;AACX;AACA,eAAK3C,oBAAL,CAA0B2C,UAAU9H,IAAV,CAAezE,WAAzC;AACD;AACF,KApsCkB;;AAAA,WA4sCnByM,oBA5sCmB,GA4sCI,UAAC5M,WAAD,EAAa6M,WAAb,EAAyBC,MAAzB,EAAmC;AAAA,oCACnC5O,4BAAeC,SAAf,EADmC;AAAA,UAChDC,QADgD,2BAChDA,QADgD;;AAExD,UAAI2O,YAAYF,WAAhB;AACA,UAAMG,iBAAiBhN,YAAYqI,IAAZ,CAAiB,UAACzD,IAAD,EAAOJ,KAAP,EAAiB;AACvDuI;AACA,eAAO,CAACD,SAAQtI,QAAQqI,WAAhB,GAA4BrI,QAAQqI,WAArC,KACAjI,KAAKzE,WAAL,IAAoB/B,SAASO,KAD7B,IAEAiG,KAAKzE,WAAL,IAAoB/B,SAASuI,GAF7B,IAGA/B,KAAKzE,WAAL,IAAoB/B,SAASwJ,IAH7B,IAIAM,uBAAOC,UAAP,CAAkBmB,gBAAlB,CAAmC1E,KAAKzE,WAAxC,EAAoD,IAApD,CAJP;AAKD,OAPsB,CAAvB;AAQA,UAAG6M,cAAH,EAAmB,OAAO,EAAEpI,MAAKoI,cAAP,EAAsBxI,OAAMuI,SAA5B,EAAP;AACnB,aAAO,IAAP;AACD,KAztCkB;;AAAA,WA2tCnBJ,sBA3tCmB,GA2tCM,UAAC3M,WAAD,EAAa6M,WAAb,EAA6B;AACpD,UAAG,CAAC7M,WAAD,IAAgBA,YAAYuB,MAAZ,IAAsB,CAAzC,EAA4C,OAAO,IAAP;AAC5C,UAAM0L,mBAAmB,OAAKL,oBAAL,CAA0B5M,WAA1B,EAAsC6M,WAAtC,EAAkD,IAAlD,CAAzB;AACA,UAAGI,gBAAH,EAAqB,OAAOA,gBAAP;AACrB,UAAMC,qBAAqB,OAAKN,oBAAL,CAA0B5M,WAA1B,EAAsC6M,WAAtC,EAAkD,KAAlD,CAA3B;AACA,UAAGK,kBAAH,EAAuB,OAAOA,kBAAP;AACvB,aAAO,IAAP;AACD,KAluCkB;;AAAA,WAquCnBnD,oBAruCmB,GAquCI,UAACzP,GAAD,EAAMuP,KAAN,EAAgB;AACrC,UAAMrH,aAAN;AADqC,UAE7B9F,OAF6B,GAEjB,OAAKjB,KAFY,CAE7BiB,OAF6B;;AAAA,oCAGhBwB,4BAAeC,SAAf,EAHgB;AAAA,UAG7BC,QAH6B,2BAG7BA,QAH6B;;AAIrC,UAAIqJ,UAAU,oBAAM/K,QAAQsD,WAAd,EAA2B,UAAC4E,IAAD;AAAA,eAAUA,KAAKzE,WAAL,KAAqB7F,GAA/B;AAAA,OAA3B,CAAd;AACA,UAAIA,QAAQ8D,SAASO,KAArB,EAA4B;AAC1B8I,kBAAU,oBAAM/K,QAAQsD,WAAd,EAA2B,UAAC4E,IAAD;AAAA,iBAAUA,KAAKC,WAAL,KAAqBgF,KAA/B;AAAA,SAA3B,CAAV;AACD;AACD,UAAMrF,QAASiD,WAAWA,QAAQ5C,WAApB,IAAoC,CAAC,CAAnD;AACA,UAAIL,UAAU,CAAC,CAAf,EAAkB;AAChB1G,mBAAY,YAAK;AACf,cAAMf,QAAQsJ,SAASE,cAAT,YAAiC/B,KAAjC,CAAd;AACAhC,eAAKrD,QAAL,CAAc,EAAC/G,cAAaoM,KAAd,EAAd;AACA,iBAAK9J,YAAL,GAAoBqC,KAApB;AACAe,qBAAY,YAAK;AACff,kBAAM4G,KAAN;AACA5G,kBAAM6G,iBAAN,CAAwB,CAAxB,EAA2B7G,MAAMC,KAAN,CAAYuE,MAAvC;AACD,WAHD,EAGG,EAHH;AAKD,SATD,EASG,GATH;AAUD;AACF,KA1vCkB;;AAAA,WA4vCnB4L,cA5vCmB,4EA4vCF;AAAA;AAAA;AAAA;AAAA;AAAA;AACT3K,kBADS;;AAEfC,oCAAYC,OAAZ,CAAoB;AAClBrG,2BAAW,qBADO;AAElB+Q,wBAAQ,IAFU;AAGlBxK,yBAAS;AAAA;AAAA,oBAAK,WAAU,UAAf;AAA0B;AAAA;AAAA,sBAAK,WAAU,OAAf;AAAA;AAAA,mBAA1B;AAAuE;AAAA;AAAA;AAAA;AAAA;AAAvE,iBAHS;AAIZC,oBAJY,kBAIL;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACX5I,mCAAOoT,eAAP,GAAyB,+BAAzB;AADW;AAAA,mCAEQ7K,KAAK/G,KAAL,CAAW6R,iBAAX,EAFR;;AAAA;AAEP7N,kCAFO;;AAGX3B,uCAAW,YAAM;AACf,kCAAI7D,OAAOoT,eAAX,EAA4B;AAC1BpT,uCAAOoT,eAAP,CAAuBE,OAAvB;AACAtT,uCAAOoT,eAAP,GAAyB,IAAzB;AACD;AACF,6BALD,EAKG,CALH;AAHW,2CASH5N,OAAO+N,IATJ;AAAA,8DAUJ,GAVI,wBAcJ,GAdI,yBAkBJ,GAlBI;AAAA;;AAAA;AAUA;AACPhL,iCAAK/G,KAAL,CAAWgS,QAAX,CAAoBhO,OAAOyE,EAA3B;AACA1B,iCAAKkL,aAAL;AAZO;;AAAA;AAcA;AACPlL,iCAAK2K,cAAL;AACA;AAhBO;;AAAA;AAkBA;AACPxP,8CAAQuM,IAAR,iDAAwBzK,OAAO9B,OAA/B;AACA;AApBO;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAuBZ,iBA3BiB;AA4BlBmF,wBA5BkB,sBA4BP;AACT;AACD;AA9BiB,eAApB;;AAFe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KA5vCE;;AAAA,WAgyCnB6K,cAhyCmB,GAgyCJ,YAAI;AACjBnH,cAAQC,GAAR,CAAY,6CAAZ;AACA,aAAK9O,KAAL,CAAWiW,gBAAX,IAA+B,OAAKjW,KAAL,CAAWiW,gBAAX,EAA/B;AACA,aAAKzK,WAAL;AACD,KApyCkB;;AAAA,WAsyCnBuK,aAtyCmB,4EAsyCH;AAAA;;AAAA;AAAA;AAAA;AAAA;AACd;AADc,wCAEOxP,4BAAeC,SAAf,EAFP,EAENC,QAFM,2BAENA,QAFM;AAAA,qCAG0B,OAAK3C,KAAL,CAAWiB,OAHrC,EAGRgB,MAHQ,wBAGRA,MAHQ,EAGAmQ,QAHA,wBAGAA,QAHA,EAGU7N,WAHV,wBAGUA,WAHV;AAIRhF,wBAJQ,GAIO,OAAKS,KAAL,CAAWgD,GAJlB,CAIRzD,UAJQ;AAKV8S,oBALU,GAKD,OAAKrS,KAAL,CAAWiB,OAAX,CAAmBoR,MALlB;AAMVC,yBANU,GAMI,CAAC,CAAC,oBAAM/N,WAAN,EAAmB,UAAC4E,IAAD,EAAU;AAAE,uBAAOA,KAAKzE,WAAL,IAAoB/B,SAAS4P,OAApC;AAA6C,eAA5E,CANN;AAOd;;AACMC,mBARQ;;AASRC,2BATQ,GASQ,SAAhBA,aAAgB,CAAUxQ,MAAV,EAAkBmQ,QAAlB,EAA4BC,MAA5B,EAAoC;AACxD,oBAAMK,gBAAgB,SAAhBA,aAAgB,GAAY;AAChC,sBAAIC,OAAO,KAAX;AACA,sBAAIH,MAAM7W,WAAN,KAAsB,IAAtB,IAA8B6W,MAAMI,iBAAxC,EAA2D;AACzD,wBAAItT,OAAOuT,2BAAWC,GAAX,CAAe,iBAAf,KAAqC,EAAhD;AACAxT,2BAAOA,KAAK0R,MAAL,CAAY;AAAA,6BAAQ/L,KAAKK,IAAL,KAAc,oBAAtB;AAAA,qBAAZ,CAAP;AACAhG,2BAAOA,QAAQA,KAAKwG,MAAL,GAAc,CAAtB,GAA0BxG,KAAKyT,KAAL,EAA1B,GAAyC,IAAhD;AACA,wBAAIzT,QAAQA,KAAK0T,KAAL,KAAe,GAA3B,EAAgC;AAC9BL,6BAAO,IAAP;AACD;AACF;AACD,yBAAOA,IAAP;AACD,iBAXD;AAYA,oBAAM7K,SAAS;AACbmL,wBAAM,CADO;AAEb3T,wBAAM;AACJ2C,4BAAQA,MADJ;AAEJmQ,8BAAUA,QAFN;AAGJC,4BAAQA;AAHJ;AAFO,iBAAf;AAQA,oBAAIa,aAAaR,eAAjB;AACA,oBAAIQ,eAAe,IAAnB,EAAyB;AAAG;AAC1B,sBAAIV,MAAMI,iBAAV,EAA6B;AAC3BpU,2BAAO2U,yBAAP,CAAiCC,yBAAjC,CAA2DtL,MAA3D;AACAzF,+BAAW,YAAI;AACb7D,6BAAO2U,yBAAP,CAAiCC,yBAAjC,CAA2D,EAAEH,MAAM,CAAR,EAA3D;AACD,qBAFD,EAEE,IAFF;AAGD,mBALD,MAKO;AACLI,gDAAYA,yBAASC,oBAAT,CAA8B,aAA9B,EAA6CxL,MAA7C,CAAZ;AACD;AACDzF,6BAAW,YAAM;AAAEmQ,0BAAMtW,KAAN,CAAYqX,eAAZ,IAA+Bf,MAAMtW,KAAN,CAAYqX,eAAZ,CAA4B,EAAEjB,wBAAF,EAA5B,CAA/B;AAA6E,mBAAhG,EAAkG,IAAlG;AACD,iBAVD,MAUO;AACLE,wBAAMtW,KAAN,CAAYqX,eAAZ,IAA+Bf,MAAMtW,KAAN,CAAYqX,eAAZ,CAA4B,EAAEjB,wBAAF,EAA5B,CAA/B;AACD;AACF,eA5Ca;;AAAA,8BA8CoB,OAAKtS,KA9CzB,EA8CNwT,aA9CM,iBA8CNA,aA9CM,EA8CSC,MA9CT,iBA8CSA,MA9CT;AA+CN1W,kBA/CM,GA+CG,OAAKb,KA/CR,CA+CNa,IA/CM;AAgDV2W,mBAhDU,GAgDF,KAhDE;;AAAA,oBAiDV3W,SAAQ,CAjDE;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,qBAoDIyW,eApDJ;;AAAA;AAoDVE,mBApDU;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAsDV3I,sBAAQC,GAAR,CAAY,uBAAZ;;AAtDU;;AA0Dd3I,yBAAW,YAAM;AACf,oBAAI7D,OAAOmV,cAAX,EAA2B;AACzBnV,yBAAOmV,cAAP,CAAsB7B,OAAtB;AACAtT,yBAAOmV,cAAP,GAAwB,IAAxB;AACD;AACD,oBAAI1W,YAAYuV,MAAMrW,KAAN,CAAYc,SAA5B;AACAwV,8BAAcxQ,MAAd,EAAsBmQ,QAAtB,EAAgCC,MAAhC;AACA,oBAAIpV,SAAJ,EAAe,OAAKuG,eAAL,CAAqB,CAArB,EAAwB6O,MAAxB;AACfG,sBAAM9O,QAAN,CAAe;AACbtG,iCAAe;AADF,iBAAf;;AARe,kCAYwCoV,MAAMtW,KAZ9C;AAAA,oBAYT0X,YAZS,eAYTA,YAZS;AAAA,oBAYKC,oBAZL,eAYKA,oBAZL;AAAA,oBAY2BhU,QAZ3B,eAY2BA,QAZ3B;;AAaf,oBAAIiU,UAAU,MAAd;AACA,oBAAI,CAACjU,YAAYgU,oBAAb,KAAsCE,OAAO9R,MAAP,KAAkB8R,OAAO,CAAP,CAA5D,EAAuE;AACrED,4BAAU,MAAV;AACD,iBAFD,MAEO,IAAIF,gBAAgBG,OAAO9R,MAAP,KAAkB8R,OAAO,CAAP,CAAtC,EAAiD;AACtDD,4BAAU,MAAV;AACD,iBAFM,MAEA,IAAIvU,cAAc,EAAd,IAAoB6S,YAAY,CAApC,EAAsC;AAC3C0B,4BAAU,MAAV;AACD;AACDtV,uBAAOwV,cAAP,GAAwB,6BAAiB/R,MAAjB,EAAyBmQ,QAAzB,EAAmCC,MAAnC,EAA2CG,MAAMtW,KAAN,CAAY+X,YAAvD,EAAqEhX,SAArE,EAAgF6W,OAAhF,EAAyFJ,SAASA,MAAMpU,IAAxG,EAA8GmN,sBAA9G,EAAsHlN,UAAtH,EAAkIkU,MAAlI,EAA0I,YAAM;AACtKjB,wBAAMhP,eAAN,CAAsB,CAAtB;AACD,iBAFuB,CAAxB;AAGA,uBAAKE,QAAL,CAAc,EAAEzG,WAAW,KAAb,EAAd;AACA,uBAAKyK,WAAL;AACD,eA1BD,EA0BG,CA1BH;;AA1Dc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAtyCG;;AAAA,WA63CnBlE,eA73CmB,GA63CD,UAAC0Q,KAAD,EAAQ3S,KAAR,EAAkB;AAClC,UAAI,OAAK5F,WAAL,KAAqB,KAAzB,EAAgC;AAChC,UAAIwY,KAAKtB,2BAAWC,GAAX,CAAe,qBAAf,KAAyC,EAAlD;;AAFkC,mBAGsFqB,MAAM,EAH5F;AAAA,UAG1BC,gBAH0B,UAG1BA,gBAH0B;AAAA,UAGRC,eAHQ,UAGRA,eAHQ;AAAA,UAGSC,iBAHT,UAGSA,iBAHT;AAAA,UAG4BC,iBAH5B,UAG4BA,iBAH5B;AAAA,UAG+CC,gBAH/C,UAG+CA,gBAH/C;AAAA,UAGiEC,gBAHjE,UAGiEA,gBAHjE;;AAIlC,UAAMC,aAAa7B,8BAAcA,2BAAWC,GAAX,CAAe,+BAAf,CAAjC;AACA,UAAI,CAACsB,gBAAD,IAAsB,CAAC,CAACA,gBAAF,IAAsBM,cAAc,GAA9D,EAAoE;AACpE,UAAIC,QAAQ,EAAZ;AACA,cAAQT,KAAR;AACE,aAAK,CAAL;AAAQ;AACNS,kBAAQL,iBAAR;AACA;AACF,aAAK,CAAL;AAAQ;AACNK,kBAAQ,CAACH,mBAAmB,EAApB,EAAwBI,OAAxB,CAAgC,SAAhC,EAA2CpT,KAAKqT,GAAL,CAAStT,KAAT,CAA3C,CAAR;AACA;AACF,aAAK,CAAL;AAAQ;AACNoT,kBAAQ,CAACJ,oBAAoB,EAArB,EAAyBK,OAAzB,CAAiC,SAAjC,EAA4CrT,KAA5C,CAAR;AACA;AACF,aAAK,CAAL;AAAQ;AACNoT,kBAAQ,CAACF,mBAAmB,EAApB,EAAwBG,OAAxB,CAAgC,QAAhC,EAA0C,2BAAerT,KAAf,CAA1C,CAAR;AACA;AACF,aAAK,CAAL;AAAQ;AACNoT,kBAAQN,eAAR;AACA;AAfJ;AAiBA,UAAIvM,SAAS,yBAAe,EAAEgN,OAAO,EAAT,EAAaC,KAAK,EAAlB,EAAsBC,OAAO,EAA7B,EAAiCC,KAAK,EAAtC,EAA0CC,KAAK,EAA/C,EAAmDP,OAAOA,KAA1D,EAAf,CAAb;AACA5J,cAAQC,GAAR,mDAAwCkJ,KAAxC,sBAAoDpM,MAApD;AACAqN,4BAAYC,eAAZ,CAA4B,EAAE9V,MAAMwI,MAAR,EAAgBuN,UAAUnB,KAA1B,EAA5B,EAA+D,eAAO;AAAEnJ,gBAAQC,GAAR,qDAA0CkJ,KAA1C,sBAAsD,yBAAeoB,GAAf,CAAtD;AAA8E,OAAtJ;AACD,KAx5CkB;;AAAA,WA05CnB/R,YA15CmB;AAAA,4FA05CJ,mBAAOgS,IAAP;AAAA;AAAA,gGA+Fb,mBAAgCC,QAAhC;AAAA;;AAAA;AAAA;AAAA;AAAA;AACMC,2BADN,GACgB,EADhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2DAGkBD,QAHlB;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGaE,qBAHb;AAAA;AAAA,2BAI2BA,CAJ3B;;AAAA;AAIY1R,2BAJZ;;AAKMyR,4BAAQE,IAAR,CAAa3R,OAAb;;AALN;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAOIxF,2BAAOmV,cAAP,GAAwB,8BAAxB;AAPJ;AAAA,2BAQUiC,OAAOH,OAAP,CARV;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WA/Fa;;AAAA,0BA+FEI,gBA/FF;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AACb,uBAAKnS,QAAL,CAAc;AACZnG,kCAAgB;AADJ,iBAAd;AAGAwN,wBAAQC,GAAR,CAAY,iCAAZ,EAA8C,CAACuK,IAA/C;AAJa,0CAKQ9S,4BAAeC,SAAf,EALR,EAKLC,QALK,2BAKLA,QALK;AAAA,gCAMsC,OAAK3C,KAN3C,EAMLiB,OANK,iBAMLA,OANK,EAMGqD,OANH,iBAMGA,OANH,EAMW7E,aANX,iBAMWA,aANX,EAMyBM,QANzB,iBAMyBA,QANzB;AAOP+V,0BAPO,GAOMP,SAAS,UAPf;AAQPxO,oBARO;AASTgP,sBATS,GASA,KATA;;AAUb9U,wBAAQsD,WAAR,CAAoB7D,OAApB,CAA4B,UAACC,CAAD,EAAO;AACjC,sBAAIA,EAAE+D,WAAF,KAAkB/B,SAAS4P,OAA3B,IAAsC5R,EAAEY,KAAF,KAAY,MAAtD,EAA8D;AAC5DwU,6BAAS,IAAT;AACD;AACF,iBAJD;AAKA,uBAAKrS,QAAL,CAAc;AACZzG,6BAAW8Y,SAAS,IAAT,GAAgB;AADf,iBAAd;;AAfa,sBAkBVhP,KAAKiP,WAAL,MAAsBxU,KAAKqT,GAAL,CAAS5T,QAAQgV,UAAjB,IAA6BlP,KAAK7K,KAAL,CAAWkR,QAAX,CAAoB,sBAApB,CAlBzC;AAAA;AAAA;AAAA;;AAmBXlL,kCAAQC,KAAR,CAAc,kBAAgB,2BAAe4E,KAAK7K,KAAL,CAAWkR,QAAX,CAAoB,sBAApB,CAAf,CAAhB,GAA4E,GAA1F;AACA,uBAAK1J,QAAL,CAAc;AACZnG,kCAAgB;AADJ,iBAAd;AApBW;;AAAA;AAAA,sBAyBVgY,SAAQ,MAAR,IAAkB,CAACxV,QAzBT;AAAA;AAAA;AAAA;;AA0BPmW,wBA1BO,GA0BE,oBAAMjV,QAAQsD,WAAd,EAA0B,UAAC4E,IAAD,EAAQ;AAC7C,yBAAOnH,WAAWmH,KAAK5H,KAAhB,KAAwB,CAAxB,IAA6B,CAAC4H,KAAK2E,YAAL,IAAmB,CAAnB,GAAqB9L,WAAWmH,KAAKgN,MAAhB,CAArB,GAA6CnU,WAAWmH,KAAK5H,KAAhB,CAA9C,KAAuE,CAA3G;AACD,iBAFY,CA1BF;;AAAA,qBA6BR2U,QA7BQ;AAAA;AAAA;AAAA;;AA8BT,uBAAKxS,QAAL,CAAc;AACZnG,kCAAgB;AADJ,iBAAd;AAGA2E,kCAAQC,KAAR,CAAc+T,SAASE,IAAT,GAAe,iBAA7B;AAjCS;;AAAA;AAsCTZ,wBAtCS,GAsCE,EAtCF;AAuCPjR,2BAvCO,GAuCO,sBAAQxE,WAAU,sBAAQkB,QAAQsD,WAAhB,EAA4B,UAAC4E,IAAD,EAAQ;AAAC,yBAAOnH,WAAWmH,KAAK5H,KAAhB,KAAwB,CAA/B;AAAkC,iBAAvE,CAAV,GAAmFN,QAAQsD,WAAnG,EAAgH,SAAhH,CAvCP;;AAAA,qBAwCVuR,UAxCU;AAAA;AAAA;AAAA;;AAyCPO,yBAzCO,GAyCG9R,YAAY,CAAZ,CAzCH;;AAAA,qBA0CP,OAAKE,iBAAL,CAAuB4R,UAAU3R,WAAjC,EAA6CJ,OAA7C,EAAqD7E,aAArD,CA1CO;AAAA;AAAA;AAAA;;AA2CT,uBAAKiE,QAAL,CAAc;AACZnG,kCAAgB;AADJ,iBAAd;AAGA2E,kCAAQC,KAAR,CAAc,WAAUkU,UAAUD,IAApB,GAA0B,eAAxC;AA9CS;;AAAA;AAkDb,uCAAS7R,WAAT,EAAsB,UAAC4E,IAAD,EAAU;AAC9B,sBAAI,EAAE1J,iBAAiB6E,OAAnB,MAAgC6E,KAAKzE,WAAL,IAAoB/B,SAAS2K,GAA7B,IAAoCnE,KAAKzE,WAAL,IAAoB/B,SAAS0K,EAAjE,IAAuElE,KAAKzE,WAAL,IAAoB/B,SAAS4K,IAApG,IAA4GpE,KAAKzE,WAAL,IAAoB/B,SAAS2T,MAAzI,IAAmJnN,KAAKzE,WAAL,IAAoB/B,SAAS4T,IAAhL,IAC9BpN,KAAKzE,WAAL,IAAoB/B,SAAS4P,OAA7B,IAAwCuD,UAD1C,CAAJ,EAC4D;AAC1DN,6BAASG,IAAT,CAAc5O,KAAKyP,YAAL,CAAkBrN,IAAlB,EAAwB2M,UAAxB,CAAd;AACD;AACF,iBALD;;AAOMF,sBAzDO;AAAA,wGAyDE,kBAAOa,MAAP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mCACQ,OAAKzW,KAAL,CAAW4V,MAAX,CAAkB,OAAK1Z,KAAL,CAAWwa,KAA7B,CADR;;AAAA;AACP1S,kCADO;;AAAA,kCAETA,WAAW,IAFF;AAAA;AAAA;AAAA;;AAES;AACpB+C,iCAAKkL,aAAL;AACA,8CAAQtO,OAAR;AAJW;AAAA;;AAAA;AAMX,mCAAKD,QAAL,CAAc;AACZnG,8CAAgB;AADJ,6BAAd;AAGA;AACA8E,uCAAW,YAAM;AACf,kCAAI7D,OAAOmV,cAAX,EAA2B;AACzBnV,uCAAOmV,cAAP,CAAsB7B,OAAtB;AACAtT,uCAAOmV,cAAP,GAAwB,IAAxB;AACD;AACD;AACD,6BAND,EAMG,CANH;;AAVW,kCAiBP3P,WAAWA,OAAOkJ,IAAP,IAAelJ,OAAOkI,IAAjC,CAjBO;AAAA;AAAA;AAAA;;AAAA,2CAkBDlI,OAAOkJ,IAAP,IAAelJ,OAAOkI,IAlBrB;AAAA,8DAmBF,oBAnBE,yBAwBF,cAxBE;AAAA;;AAAA;AAoBLnB,oCAAQC,GAAR,CAAY,iDAAZ;AACA,mCAAK9O,KAAL,CAAWiW,gBAAX,IAA+B,OAAKjW,KAAL,CAAWiW,gBAAX,EAA/B;AACA,mCAAKzK,WAAL;AAtBK;;AAAA;AAwBa;AAClB1D,mCAAO8P,OAAP,CAAe6C,OAAf,CAAuB,SAAvB,IAAoC,CAAC,CAArC,IAA0C5P,KAAK2K,cAAL,EAA1C;AAzBK;;AAAA;AA6BX,gCAAGoE,UAAH,EAAc;AACZ/O,mCAAK7K,KAAL,CAAWuL,cAAX,IAA6BV,KAAK7K,KAAL,CAAWuL,cAAX,EAA7B;AACAV,mCAAKW,WAAL;AACD;;AAhCU;AAAA,mCAkCL,kBAAQkP,MAAR,EAlCK;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAzDF;;AAAA,kCAyDPhB,MAzDO;AAAA;AAAA;AAAA;;AAgHbC,iCAAiBL,QAAjB;;AAhHa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OA15CI;;AAAA;AAAA;AAAA;AAAA;;AAAA,WA6gDnBjM,SA7gDmB,4EA6gDP;AAAA;AAAA,8FA2BV,mBAAgCiM,QAAhC;AAAA;;AAAA;AAAA;AAAA;AAAA;AACMC,yBADN,GACgB,EADhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0DAGkBD,QAHlB;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGaE,mBAHb;AAAA;AAAA,yBAI2BA,CAJ3B;;AAAA;AAIY1R,0BAJZ;;AAKMyR,0BAAQE,IAAR,CAAa3R,QAAb;;AALN;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA,yBAOU4R,OAAOH,OAAP,CAPV;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AASI,sBAAG,iBAAK,WAAR,EAAoB;AAClBvT,sCAAQC,KAAR;AACAE,+BAAW,YAAI;AAAC0E,2BAAKwC,SAAL;AAAkB,qBAAlC,EAAmC,GAAnC;AACD;;AAZL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SA3BU;;AAAA,wBA2BKsM,gBA3BL;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AACJ9O,kBADI;AAEJ8P,qBAFI,GAEM,OAAK7W,KAAL,CAAWiB,OAAX,CAAmBD,WAFzB;AAGNwU,sBAHM,GAGK,EAHL;;AAIV,kBAAIqB,QAAQtV,KAAR,GAAgB,CAApB,EAAuB;AAAA,0CACAkB,4BAAeC,SAAf,EADA,EACbC,QADa,2BACbA,QADa;;AAErB,oBAAIkU,QAAQnS,WAAR,KAAwB/B,SAASO,KAArC,EAA4C;AAC1C,sBAAI2T,QAAQnN,YAAR,KAAyB,cAA7B,EAA6C;AAC3C,qBAACmN,QAAQlN,wBAAT,IAAqC6L,SAASG,IAAT,CAAc5O,KAAK+P,QAAL,CAAcD,OAAd,CAAd,CAArC;AACD,mBAFD,MAEO;AACLA,4BAAQjN,cAAR,IAA0B4L,SAASG,IAAT,CAAc5O,KAAK+P,QAAL,CAAcD,OAAd,CAAd,CAA1B;AACD;AACF;AACF;;AACKjB,oBAdI;AAAA,sGAcK,mBAAOa,MAAP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAEGA,OAAO3Q,MAAP,GAAc,CAFjB;AAAA;AAAA;AAAA;;AAAA;AAAA,iCAE4BiB,KAAK/G,KAAL,CAAW+W,SAAX,CAAqBN,OAAO,CAAP,CAArB,CAF5B;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA,0CAE+D,EAF/D;;AAAA;AAELzS,gCAFK;;AAAA,gCAGRA,UAAQ,EAHA;AAAA;AAAA;AAAA;;AAGI;AACb;AACA+C,+BAAK6E,wBAAL,CAA8BiL,QAAQnS,WAAtC,EAAmD,IAAnD,EAAyDmS,QAAQzN,WAAjE;AACA,4CAAQzF,OAAR;AANS;AAAA;;AAAA;AAAA;AAAA,iCASH,kBAAQiT,MAAR,CAAe5S,MAAf,CATG;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAdL;;AAAA,gCAcJ4R,MAdI;AAAA;AAAA;AAAA;;AA2CVC,+BAAiBL,QAAjB;;AA3CU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KA7gDO;;AAAA,WA4jDnBwB,aA5jDmB,GA4jDH,UAACC,YAAD,EAAkB;AAChC,UAAM3V,QAAM,kBAAc2V,YAAd,EAA8B3V,KAA1C;AACA,aAAO,UAACiG,CAAD,EAAK;AACVjG,iBAASA,MAAM4V,IAAN,EAAT;AACArN,2BAASC,KAAT;AACD,OAHD;AAID,KAlkDkB;;AAAA,WAokDnBqN,gBApkDmB,GAokDA,UAACF,YAAD,EAAkB;AACnC,UAAM3V,QAAM,kBAAc2V,YAAd,EAA8B3V,KAA1C;AACA,aAAO,UAACiG,CAAD,EAAK;AACVjG,iBAASA,MAAM4V,IAAN,EAAT;AACArN,2BAASC,KAAT;AACD,OAHD;AAID,KA1kDkB;;AAAA,WA4kDnBsN,YA5kDmB,GA4kDJ,UAAC7P,CAAD,EAAO;AACpB,aAAKlG,QAAL,IAAiB,OAAK,OAAKA,QAAV,CAAjB,IAAwC,OAAK,OAAKA,QAAV,EAAoBC,KAA5D,IAAqE,OAAK,OAAKD,QAAV,EAAoBC,KAApB,CAA0B4V,IAA1B,EAArE;AACArN,yBAASC,KAAT;AACD,KA/kDkB;;AAAA,WAilDnBuN,eAjlDmB,GAilDD,UAAC9P,CAAD,EAAO;AACvB,aAAKlG,QAAL,IAAiB,OAAK,OAAKA,QAAV,CAAjB,IAAwC,OAAK,OAAKA,QAAV,EAAoBC,KAA5D,IAAqE,OAAK,OAAKD,QAAV,EAAoBC,KAApB,CAA0B4V,IAA1B,EAArE;AACArN,yBAASC,KAAT;AACD,KAplDkB;;AAAA,WAslDnBwN,QAtlDmB,GAslDV,UAAC/P,CAAD,EAAK;AACZwD,cAAQC,GAAR,CAAYzD,CAAZ;AACD,KAxlDkB;;AAAA,WA0lDnBgQ,kBA1lDmB,GA0lDE,UAAChW,KAAD,EAAW;AAC9B,aAAKmC,QAAL,CAAc;AACZpG,oBAAYiE;AADA,OAAd;AAGD,KA9lDkB;;AAAA,WAgmDnBuV,QAhmDmB;AAAA,4FAgmDR,mBAAO7V,OAAP;AAAA;AAAA;AAAA;AAAA;AAAA;AACH8F,oBADG;AAEDzJ,0BAFC,GAEc,OAAKnB,KAFnB,CAEDmB,UAFC;AAAA,mDAGF,sBAAY,UAAUqG,OAAV,EAAmBiT,MAAnB,EAA2B;AAC5C,sBAAMY,QAAQ,0BAAW;AACvBC,kCAAc,wBAAM;AAClB5N,yCAASC,KAAT;AACA,0BAAMnJ,IAAI,oBAAMoG,oBAAoB,OAApB,EAA6B,OAA7B,CAAN,CAAV;AACA;AACEyQ,4BAAM1F,OAAN;;AAJgB,mCAKO/K,KAAK5K,KAAL,IAAc,EALrB;AAAA,0BAKRmB,UALQ,UAKRA,UALQ;;AAMhB+E,iCAAW,YAAM;AACfpB,gCAAQyW,QAAR,GAAiB/W,CAAjB;AACAgD,gCAAQ;AACNyE,8BAAGnH,QAAQC,MAAR,CAAekH,EADZ;AAENuP,+BAAKra;AAFC,yBAAR;AAID,uBAND,EAMG,GANH;AAOF;AACA;AACA;AACA;AACD,qBAlBsB;AAmBvBsa,gCAAY,sBAAM;AAChB/N,yCAASC,KAAT;AACA8M,6BAAO,WAAP;AACD,qBAtBsB;AAuBvBiB,kCAAc,KAvBS;AAwBvBC,8BAAU,KAxBa;AAyBvBC,8BAAU,IAzBa;AA0BvB7Q,2BAAMjG,QAAQmV,IA1BS;AA2BvB4B,2BAAM,GA3BiB;AA4BvBpX,+BAAYmG,KAAK6L,iBAAL,IAA0B,CAAC7L,KAAKkR,mBAAjC,GAAwD,UAAxD,GAAqE,sBA5BzD;AA6BvB;AACA9Q,6BAAU;AAAA;AAAA,wBAAK,WAAU,WAAf;AACR;AAAA;AAAA;AACE;AAAA;AAAA,4BAAM,WAAU,OAAhB;AAAA;AAAA,yBADF;AACsC;AAAA;AAAA,4BAAM,WAAU,MAAhB;AAAwB,qDAAelG,QAAQM,KAAvB;AAAxB;AADtC,uBADQ;AAIR;AAAA;AAAA,0BAAK,WAAU,KAAf;AACE;AAAA;AAAA,4BAAM,WAAU,OAAhB;AAAA;AAAA,yBADF;AAEE;AAAA;AAAA;AAgCG,wDAAC,6BAAD;AACG,uCAAU,SADb;AAEG,uCAAU,aAFb;AAGG,qCAAQ,UAHX;AAIG,0CAJH;AAKG,yCAAY,mDALf;AAMG,mCAAO,EAAEyW,OAAO,GAAT,EAAcE,QAAQ,EAAtB,EANV;AAOG,uCAAW,CAPd;AAQG,iCAAK;AAAA,qCAASnR,KAAKoR,WAAL,GAAmB7W,KAA5B;AAAA,6BARR;AASG,sCAAU;AAAA,qCAASyF,KAAKwQ,kBAAL,CAAwBhW,KAAxB,CAAT;AAAA;AACV;AAVH;AAhCH;AAFF,uBAJQ;AAoDR;AAAA;AAAA,0BAAK,WAAU,cAAf;AACE;AAAA;AAAA,4BAAK,WAAU,IAAf;AACE;AAAA;AAAA,8BAAQ,MAAK,OAAb,EAAqB,SAAS,mBAAM;AAClCiW,sCAAM1F,OAAN;AACA8E,uCAAO,WAAP,EAFkC,CAEf;AACpB,+BAHD;AAAA;AAAA,2BADF;AAME;AAAA;AAAA;AACE,oCAAK,SADP,EACiB,MAAK,OADtB,EAC8B,SAAS,mBAAM;AAC3C,oCAAMjW,IAAI,oBAAMoG,oBAAoB,OAApB,EAA6B,OAA7B,CAAN,CAAV;;AAD2C,6CAEpBA,KAAK5K,KAAL,IAAc,EAFM;AAAA,oCAEnCmB,UAFmC,UAEnCA,UAFmC;AAG3C;;;AACEka,sCAAM1F,OAAN;AACA;AACA;AACA;AACAzP,2CAAW,YAAM;AACfpB,0CAAQyW,QAAR,GAAiB/W,CAAjB;AACAgD,0CAAQ;AACNyE,wCAAGnH,QAAQC,MAAR,CAAekH,EADZ;AAENuP,yCAAKra;AAFC,mCAAR;AAID,iCAND,EAMG,GANH;AAOF;AACA;AACA;AACD,+BAnBD;AAAA;AAAA;AANF;AADF;AApDQ;AA9Ba,mBAAX,CAAd;AAkHA;AACA+E,6BAAW,YAAM;AACf0E,oCAAc9F,QAAQmI,WAAtB,KAAwCrC,gBAAc9F,QAAQmI,WAAtB,EAAqC9H,KAArC,CAA2C4G,KAA3C,EAAxC;AACAnB,yBAAKoR,WAAL,IAAoBpR,KAAKoR,WAAL,CAAiB7W,KAAjB,CAAuB4G,KAAvB,EAApB;AACD,mBAHD,EAGG,GAHH;AAID,iBAxHM,CAHE;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAhmDQ;;AAAA;AAAA;AAAA;AAAA;;AAAA,WAmxDnBkQ,YAnxDmB;AAAA,4FAmxDJ,mBAAOrb,IAAP,EAAagB,MAAb;AAAA;;AAAA;AAAA;AAAA;AAAA;AACTwB,0BADS,GACI,OAAKH,OAAL,IAAgB,OAAKA,OAAL,CAAaC,SAA7B,IAA0C,OAAKD,OAAL,CAAaC,SAAb,CAAuBC,IAAjE,IAAyE,OAAKF,OAAL,CAAaC,SAAb,CAAuBC,IAAvB,CAA4BC,UADzG;AAET8Y,6BAFS,GAEO,OAAKjZ,OAAL,IAAgB,OAAKA,OAAL,CAAaC,SAA7B,IAA0C,OAAKD,OAAL,CAAaC,SAAb,CAAuBC,IAAjE,IAAyE,OAAKF,OAAL,CAAaC,SAAb,CAAuBC,IAAvB,CAA4B+Y,aAF5G;AAGTC,gCAHS,GAGU,OAAKlZ,OAAL,IAAgB,OAAKA,OAAL,CAAaC,SAA7B,IAA0C,OAAKD,OAAL,CAAaC,SAAb,CAAuBC,IAAjE,IAAyE,OAAKF,OAAL,CAAaC,SAAb,CAAuBC,IAAvB,CAA4BgZ,gBAH/G;AAITC,uBAJS,GAIC,OAAKnZ,OAAL,IAAgB,OAAKA,OAAL,CAAaC,SAA7B,IAA0C,OAAKD,OAAL,CAAaC,SAAb,CAAuBC,IAAjE,IAAyE,OAAKF,OAAL,CAAaC,SAAb,CAAuBC,IAAvB,CAA4BiZ,OAJtG;AAKb;;AALa,sBAMVhZ,cAAc,EANJ;AAAA;AAAA;AAAA;;AAOX;AACIiZ,oCARO,GAQgB,gCAAY,sBAAZ,CARhB;AASPC,yBATO,GASK,OAAKrZ,OAAL,CAAaC,SAAb,CAAuBC,IAAvB,CAA4BwF,aAA5B,CAA0C8H,IAA1C,CAA+C,aAAG;AAChE,yBAAO5H,EAAEgB,SAAF,CAAY0S,cAAZ,KAA+B1T,EAAEgB,SAAF,CAAY2S,OAAZ,IAAuB3T,EAAEgB,SAAF,CAAY4S,eAAlE,CAAP;AACD,iBAFe,CATL;;AAAA,sBAYRJ,wBAAwBC,SAAxB,KAAsCH,iBAAiBO,EAAjB,IAAuB,YAAvB,IAAuCP,iBAAiBO,EAAjB,IAAuB,iBAApG,CAZQ;AAAA;AAAA;AAAA;;AAAA,mDAaF3W,kBAAQC,KAAR,CAAc,iCAAd,CAbE;;AAAA;;AAgBX,oBAAGmW,iBAAiBO,EAAjB,IAAuB,gBAAvB,IAA2C,CAACR,aAA5C,IAA6D,OAAKjZ,OAAL,CAAaC,SAAb,CAAuBC,IAAvB,CAA4BwZ,MAA5B,CAAmCC,WAAnG,EAA+G;AAC7G,yBAAK7c,KAAL,CAAW8c,uBAAX;AACD;;AAlBU,sBAmBR,CAACX,aAAD,IAAkB,CAAC,OAAKjZ,OAAL,CAAaC,SAAb,CAAuBC,IAAvB,CAA4BwZ,MAA5B,CAAmCC,WAAtD,IAAqET,iBAAiBO,EAAjB,IAAuB,YAA5F,IAA4GP,iBAAiBO,EAAjB,IAAuB,iBAnB3H;AAAA;AAAA;AAAA;;AAoBL3R,qBApBK,GAoBG,CAACoR,iBAAiBO,EAAjB,IAAuB,YAAvB,IAAuCP,iBAAiBO,EAAjB,IAAuB,iBAA/D,KAAqFN,OAArF,GAA+F,QAA/F,GAA0G,KApB7G;AAAA;AAAA,uBAqBH,OAAKrc,KAAL,CAAW+c,cAAX,CAA0B/R,KAA1B,CArBG;;AAAA;;AAyBb,uBAAKxD,QAAL,CAAc;AACZ3F,gCADY;AAEZK,iCAAe;AAFH,iBAAd;AAzBa,0CA6BQqE,4BAAeC,SAAf,EA7BR,EA6BLC,QA7BK,2BA6BLA,QA7BK;AAAA,gCA8BsC,OAAK3C,KA9B3C,EA8BLiB,OA9BK,iBA8BLA,OA9BK,EA8BGqD,OA9BH,iBA8BGA,OA9BH,EA8BW7E,aA9BX,iBA8BWA,aA9BX,EA8ByBM,QA9BzB,iBA8ByBA,QA9BzB;;AAAA,sBAgCVhC,UAAU,CAAC0O,uBAAOC,UAAP,CAAkBmB,gBAAlB,CAAmC9Q,IAAnC,CAhCD;AAAA;AAAA;AAAA;;AAAA,mDAgCkD,KAhClD;;AAAA;AAkCTgZ,sBAlCS,GAkCA,KAlCA;;AAmCb9U,wBAAQsD,WAAR,CAAoB7D,OAApB,CAA4B,UAACC,CAAD,EAAO;AACjC,sBAAIA,EAAE+D,WAAF,KAAkB/B,SAAS4P,OAA3B,IAAsC5R,EAAEY,KAAF,KAAY,MAAtD,EAA8D;AAC5DwU,6BAAS,IAAT;AACD;AACF,iBAJD;AAKA,uBAAKrS,QAAL,CAAc;AACZzG,6BAAW8Y,SAAS,IAAT,GAAgB;AADf,iBAAd;;AAxCa,qBA4CT,OAAKmD,YA5CI;AAAA;AAAA;AAAA;;AAAA;;AAAA;AA+Cb,uBAAKA,YAAL,GAAoB,wBAAU,YAAM;AAClC,sBAAInb,MAAJ,EAAY;AACV,2BAAKuF,WAAL,CAAiBvG,IAAjB;AACD,mBAFD,MAEO;AACL,2BAAK+J,SAAL;AACD;AACF,iBANmB,EAMjB,IANiB,EAMX;AACL,6BAAW,IADN;AAEL,8BAAY;AAFP,iBANW,CAApB;AAUA,uBAAKoS,YAAL;AACA7W,2BAAW,YAAM;AACf,yBAAK6W,YAAL,CAAkB7I,MAAlB;AACA,yBAAK6I,YAAL,GAAoB,IAApB;AACD,iBAHD,EAGG,IAHH;;AA1Da;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAnxDI;;AAAA;AAAA;AAAA;AAAA;;AAAA,WAm1DnBC,WAn1DmB,GAm1DL,UAACxY,CAAD,EAAO;AAAA,mBACU9E,yBAAY,EADtB;AAAA,UACXud,gBADW,UACXA,gBADW;;AAEnB,UAAI,CAACA,gBAAL,EAAuB;AACrB,eAAKpZ,KAAL,CAAWiB,OAAX,CAAmBD,WAAnB,CAA+BE,MAA/B,CAAsCmY,SAAtC,CAAgD1Y,CAAhD;AACD;AACD,UAAI,CAAC,iBAAiB0E,IAAjB,CAAsB1E,CAAtB,CAAL,EAA+B;AAC7B;AACD;AACD,aAAK+C,QAAL,CAAc;AACZvF,kBAAUwC;AADE,OAAd;AAGD,KA91DkB;;AAAA,WAg2DnB2Y,eAh2DmB,GAg2DD,UAAC/R,CAAD,EAAO;AACvB,aAAKU,QAAL,CAAc3G,KAAd,CAAoB4V,IAApB;AACArN,yBAASC,KAAT;AACA,aAAKZ,OAAL,CAAa,OAAKjB,QAAL,CAAc3G,KAAd,CAAoB,OAApB,CAAb;AACD,KAp2DkB;;AAAA,WAs2DnBiB,kBAt2DmB,GAs2DE,UAACgF,CAAD,EAAO;AAC1B,aAAKU,QAAL,IAAiB,OAAKA,QAAL,CAAc3G,KAAd,CAAoB4V,IAApB,EAAjB;AACArN,yBAASC,KAAT;AACD,KAz2DkB;;AAAA,WA22DnByP,WA32DmB,GA22DP,UAAC5Y,CAAD,EAAwB;AAAA,UAArB6Y,UAAqB,uEAAR,KAAQ;;AAClC,aAAKpO,QAAL,CAAc9J,KAAd,CAAoBC,KAApB,GAA0BZ,CAA1B;AACA,UAAG,OAAK8Y,SAAR,EAAkB;AAChB,eAAKA,SAAL,CAAepJ,MAAf;AACA,eAAKoJ,SAAL,GAAiB,IAAjB;AACD;AACD,UAAG,CAACD,UAAJ,EAAe;AACb,eAAKC,SAAL,GAAe,wBAAU,YAAI;AAAC,iBAAKzJ,MAAL;AAAc,SAA7B,EAA8B,IAA9B,CAAf;AACA,eAAKyJ,SAAL;AACD;AACF,KAr3DkB;;AAAA,WAu3DnBC,eAv3DmB,GAu3DD,UAACnS,CAAD,EAAO;AACvB,aAAK6D,QAAL,CAAc9J,KAAd,IAAuB,OAAK8J,QAAL,CAAc9J,KAAd,CAAoB4V,IAApB,EAAvB;AACArN,yBAASC,KAAT;AACA,aAAKkG,MAAL;AACA;AACD,KA53DkB;;AAAA,WA83DnB2J,kBA93DmB,GA83DE,UAACpS,CAAD,EAAO;AAC1B,aAAK6D,QAAL,CAAc9J,KAAd,IAAuB,OAAK8J,QAAL,CAAc9J,KAAd,CAAoB4V,IAApB,EAAvB;AACArN,yBAASC,KAAT;AACD,KAj4DkB;;AAAA,WAm4DnBkM,WAn4DmB,GAm4DL,YAAM;AAAA,oCACGvT,4BAAeC,SAAf,EADH;AAAA,UACVC,QADU,2BACVA,QADU;;AAAA,UAEV1B,OAFU,GAEE,OAAKjB,KAFP,CAEViB,OAFU;;AAGlB,UAAM+K,UAAQ,oBAAM/K,QAAQsD,WAAd,EAA2B;AAAA,eAAM4E,KAAKzE,WAAL,KAAmB/B,SAAS4P,OAAlC;AAAA,OAA3B,CAAd;AACA,aAAQtR,QAAQgV,UAAR,GAAqB,CAArB,IAA0BjK,OAA1B,IAAqCA,QAAQzK,KAAR,IAAeC,KAAKqT,GAAL,CAAS5T,QAAQgV,UAAjB,CAA5D;AACD,KAx4DkB;;AAAA,WA47DnB2D,aA57DmB,GA47DL,UAACxQ,WAAD,EAAa8F,GAAb,EAAiB+G,UAAjB,EAA8B;AAC1C,UAAM4D,cAAY,kBAAczQ,WAAd,EAA6B9H,KAA7B,CAAmCA,KAArD;AACA,UAAMwY,eAAa,kBAAc1Q,WAAd,OAAnB;AACA,UAAI7H,QAAM2N,GAAV;AACA,UAAGF,MAAMzN,KAAN,KAAgBA,UAAQ,GAA3B,EAA+B;AAC7BA,gBAAMS,WAAWiU,UAAX,IAAuBjU,WAAW8X,aAAaC,SAAxB,CAA7B;AACD;AACDF,kBAAYtY,KAAZ,GAAkBA,KAAlB;AACA;AACA,UAAI,OAAKvB,KAAL,CAAWiB,OAAX,CAAmB+Y,aAAvB,EAAqC;AACnC,YAAGhY,WAAWT,SAAO,CAAlB,IAAuB,OAAKvB,KAAL,CAAWiB,OAAX,CAAmBgZ,YAA7C,EAA0D;AACxDH,uBAAaC,SAAb,GAAuB,2BAAe/X,WAAWT,SAAO,CAAlB,IAAqBS,WAAW,OAAKhC,KAAL,CAAWiB,OAAX,CAAmBgZ,YAA9B,CAApC,CAAvB;AACD;AACD,YAAIjY,WAAWT,SAAO,CAAlB,IAAuBS,WAAWiU,UAAX,CAA3B,EAAkD;AAChD6D,uBAAaC,SAAb,GAAuB,2BAAe/X,WAAWT,SAAO,CAAlB,IAAqBS,WAAWiU,UAAX,CAApC,CAAvB;AACD;AACD,YAAGjU,WAAWiU,UAAX,KAA0BjU,WAAWT,SAAO,CAAlB,CAA1B,IAAkDS,WAAWT,SAAO,CAAlB,KAAwB,OAAKvB,KAAL,CAAWiB,OAAX,CAAmBgZ,YAAhG,EAA6G;AAC3GH,uBAAaC,SAAb,GAAuB,2BAAe,CAAf,CAAvB;AACD;AACF,OAVD,MAUO;AACLD,qBAAaC,SAAb,GAAuB,2BAAe/X,WAAWT,SAAO,CAAlB,IAAqBS,WAAWiU,UAAX,CAApC,CAAvB;AACD;AACF,KAl9DkB;;AAAA,WAq9DnBiE,iBAr9DmB,GAq9DC,YAAM;AACxB,UAAI,OAAKC,OAAT,EAAkB,OAAKA,OAAL,CAAaC,SAAb;AACnB,KAv9DkB;;AAAA,WAw9DnBC,YAx9DmB,GAw9DJ,UAACnL,GAAD,EAAMsI,KAAN,EAAa8C,EAAb,EAAoB;AACjC,UAAI9H,QAAQ,YAAQ8H,EAAR,CAAZ;AACA,UAAI9H,KAAJ,EAAWA,MAAM+H,aAAN,CAAoBrL,GAApB,EAAyB,YAAM;AACxC,YAAIsI,KAAJ,EAAWA,MAAMgD,aAAN;AACZ,OAFU;AAGZ,KA79DkB;;AAAA,WA89DnBC,eA99DmB,GA89DD,UAACvL,GAAD,EAAS;AACzB,UAAIsD,cAAJ;AACA,aAAK2G,WAAL,CAAiBjK,GAAjB;AACA7M,iBAAW,YAAM;AAAEmQ,cAAMtJ,OAAN,CAAcgG,GAAd;AAAoB,OAAvC,EAAyC,CAAzC;AACD,KAl+DkB;;AAAA,WAq+DnBwL,eAr+DmB,GAq+DD,UAACxL,GAAD,EAAS;AACzB,UAAIoL,KAAK,OAAKlP,QAAd;AACA,UAAIkP,MAAMA,GAAGhZ,KAAb,EAAoBgZ,GAAGhZ,KAAH,CAASC,KAAT,GAAiB2N,GAAjB;AACpB,aAAKc,MAAL,CAAYd,GAAZ;AACD,KAz+DkB;;AAAA,WA4+DnByL,iBA5+DmB,GA4+DC,UAACC,OAAD,EAAUrZ,KAAV,EAAoB;AAAA,oCACjBkB,4BAAeC,SAAf,EADiB;AAAA,UAC9BC,QAD8B,2BAC9BA,QAD8B;;AAAA,UAE9B3F,kBAF8B,GAEP,OAAKb,KAFE,CAE9Ba,kBAF8B;;AAGtC,aAAO4d,YAAYjY,SAAS4P,OAArB,IAAgCvV,uBAAuB,GAAvD,IAA8DuE,QAAQ,CAAtE,GAA0E,EAA1E,GAA+EA,KAAtF;AACD,KAh/DkB;;AAAA,WAk/DnBsZ,iBAl/DmB,GAk/DC,UAACD,OAAD,EAAUrZ,KAAV,EAAoB;AAAA,oCACjBkB,4BAAeC,SAAf,EADiB;AAAA,UAC9BC,QAD8B,2BAC9BA,QAD8B;AAExC;;;AAFwC,UAG9B3F,kBAH8B,GAGP,OAAKb,KAHE,CAG9Ba,kBAH8B;;AAItC,aAAO4d,YAAYjY,SAAS4P,OAArB,IAAgCvV,uBAAuB,GAAvD,IAA8DuE,QAAQ,CAAtE,GAA0E,2BAAe,IAAIA,KAAnB,CAA1E,GAAsG,MAA7G;AACD,KAv/DkB;;AAAA,WAy/DnBiV,YAz/DmB,GAy/DJ,UAACvV,OAAD,EAAU6U,UAAV,EAAyB;AACtC,UAAM/O,aAAN;AACA,UAAM+T,oBAAoB,KAA1B;AAFsC,UAG9Bhd,4BAH8B,GAGG,OAAK3B,KAHR,CAG9B2B,4BAH8B;AAAA,0BAIZ,OAAK5B,KAJO;AAAA,UAI/B2D,QAJ+B,iBAI/BA,QAJ+B;AAAA,UAIrB9C,IAJqB,iBAIrBA,IAJqB;;AAKtC,UAAIC,2BAAJ;AACA,UAAI+d,kBAAkB,OAAK3b,OAAL,IAAgB,OAAKA,OAAL,CAAaC,SAA7B,IAA0C,OAAKD,OAAL,CAAaC,SAAb,CAAuBC,IAAjE,IAAyE,OAAKF,OAAL,CAAaC,SAAb,CAAuBC,IAAvB,CAA4Byb,eAA3H;AACA,UAAIzC,mBAAmB,OAAKlZ,OAAL,IAAgB,OAAKA,OAAL,CAAaC,SAA7B,IAA0C,OAAKD,OAAL,CAAaC,SAAb,CAAuBC,IAAjE,IAAyE,OAAKF,OAAL,CAAaC,SAAb,CAAuBC,IAAvB,CAA4BgZ,gBAA5H;AACA;AACA,aAAO,sBAAY,UAAU3U,OAAV,EAAmBiT,MAAnB,EAA2B;AAAA,sCACbnU,4BAAeC,SAAf,EADa;AAAA,YACpCC,QADoC,2BACpCA,QADoC;AAAA,YACzBqY,QADyB,2BACzBA,QADyB;;AAE5C,YAAMxD,QAAQ,0BAAW;AACvBC,wBAAc,wBAAM;AAClB,gBAAIxW,QAAQyD,WAAR,IAAuB/B,SAAS4P,OAApC,EAA6C;AAC3C,kBAAI0I,KAAKjZ,WAAW+E,gBAAc9F,QAAQmI,WAAtB,QAAsC2Q,SAAjD,CAAT;AACA,kBAAIkB,KAAK,CAAT,EAAY;AACV/Y,kCAAQC,KAAR,CAAc,cAAd;AACA,sBAAM,OAAN;AACD,eAHD,MAGO,IAAI8Y,KAAKlU,KAAK7K,KAAL,CAAWkR,QAAX,CAAoB,sBAApB,CAAT,EAAsD;AAC3DlL,kCAAQC,KAAR,CAAc,kBAAkB,2BAAe4E,KAAK7K,KAAL,CAAWkR,QAAX,CAAoB,sBAApB,CAAf,CAAlB,GAAgF,GAA9F;AACA,sBAAM,OAAN;AACD;AACF;AACD,gBAAMzM,IAAI,oBAAMoG,gBAAc9F,QAAQmI,WAAtB,EAAqC,OAArC,EAA8C,OAA9C,EAAuD8R,YAAvD,CAAoE,OAApE,CAAN,CAAV;AACA,gBAAIva,MAAM,EAAV,EAAc;AACZ6W,oBAAM1F,OAAN;AACAzP,yBAAW,YAAM;AACf,oBAAIpB,QAAQyD,WAAR,IAAuB/B,SAAS4P,OAApC,EAA6C;AAC3CxL,uBAAK/G,KAAL,CAAWiP,WAAX,CAAuBhO,QAAQmI,WAA/B,EAA4CzI,CAA5C,EAA+C,KAA/C;AACD,iBAFD,MAEO;AACLM,0BAAQyW,QAAR,GAAmB/W,CAAnB;AACD;AACDgD;AACD,eAPD,EAOG,GAPH;AAQD,aAVD,MAUO;AACL,kBAAI1C,QAAQyD,WAAR,IAAuB/B,SAAS4P,OAApC,EAA4C;AAC1CrQ,kCAAQC,KAAR,CAAc,SAAd;AACD,eAFD,MAEO;AACLD,kCAAQC,KAAR,CAAc,WAAd;AACD;AACD,oBAAM,OAAN;AACD;AACF,WA/BsB;AAgCvBgZ,uBAAa,uBAAM;AAAA,8BAC4BpU,KAAK5K,KADjC;AAAA,gBACTO,gBADS,eACTA,gBADS;AAAA,gBACSc,cADT,eACSA,cADT;;AAEjB,gBAAIA,mBAAmB,CAAvB,EAA0B;AACxBuJ,mBAAKrD,QAAL,CAAc;AACZlG,gCAAgB;AADJ,eAAd;AAGA;AACA;AACA;AACD;AACD,mBAAOd,oBAAoBc,cAA3B;AACD,WA3CsB;AA4CvBoa,sBAAY,sBAAM;AAChB/N,+BAASC,KAAT;AACA/C,iBAAK/G,KAAL,CAAWjC,MAAX,IAAqBgJ,KAAK7K,KAAL,CAAWuL,cAAhC,IAAkDV,KAAK7K,KAAL,CAAWuL,cAAX,EAAlD;AACAmP,kDAAgB3V,QAAQmV,IAAxB;AACD,WAhDsB;AAiDvByB,wBAAc,KAjDS;AAkDvBC,oBAAU,KAlDa;AAmDvBC,oBAAU,KAnDa;AAoDvBqD,yBAAe;AACb,uBAAW;AADE,WApDQ;AAuDvBpD,iBAAO,GAvDgB;AAwDvB7Q,mBACE;AAAA;AAAA,cAAK,WAAU,WAAf;AACE;AAAA;AAAA,gBAAK,WAAW,0DAAa,sBAAsB,IAAnC,IAA0C,UAAUlG,QAAQyD,WAA5D,EAA0E,IAA1E,EAAhB;AAAmG,4CAAC,eAAD,IAAO,MAAMsW,SAAS/Z,QAAQyD,WAAjB,CAAb;AAAnG,aADF;AAEE;AAAA;AAAA,gBAAK,WAAU,OAAf;AAAwBzD,sBAAQmV;AAAhC,aAFF;AAGE;AAAA;AAAA;AACE;AAAA;AAAA,kBAAM,WAAU,OAAhB;AAAA;AAAA,eADF;AACsC;AAAA;AAAA,kBAAM,WAAU,MAAhB;AACnCnV,wBAAQM,KAD2B;AAEnC+W,qCAAqBA,iBAAiBO,EAAjB,IAAuB,YAAvB,IAAuCP,iBAAiBO,EAAjB,IAAuB,iBAAnF,KAAyGkC,eAAzG,IAA4HA,kBAAkB,CAA9I,GAAkJ;AAAA;AAAA,oBAAM,WAAU,SAAhB;AAAA;AAA8BA,iCAA9B;AAAA;AAAA,iBAAlJ,GAA8M;AAF3K;AADtC,aAHF;AAUK9Z,oBAAQyD,WAAR,IAAuB/B,SAAS4P,OAAjC,IACA;AAAA;AAAA,gBAAK,WAAU,WAAf;AACE;AAAA;AAAA,kBAAM,WAAU,cAAhB;AAAgCtR,wBAAQmV,IAAxC;AAAA;AAAA,eADF;AAEE;AAAA;AAAA;AACE,8CAAC,qBAAD;AACE,sBAAG,eADL;AAEE,6BAAU,SAFZ;AAGE,wBAAK,MAHP;AAIE,gCAJF;AAKE,6BAAU,aALZ;AAME,+BAAY,4CANd;AAOE,4BAAUnV,QAAQM,KAAR,GAAgB,CAP5B;AAQE,gCAAcwF,KAAK4T,iBAAL,CAAuB1Z,QAAQyD,WAA/B,EAA4CzD,QAAQM,KAApD,CARhB;AASE,4BAAU,kBAACA,KAAD,EAAW;AAAEwF,yBAAK6S,aAAL,CAAmB3Y,QAAQmI,WAA3B,EAAwC7H,KAAxC,EAA+CN,QAAQM,KAAvD;AAAgE,mBATzF;AAUE,uBAAK;AAAA,2BAASwF,gBAAc9F,QAAQmI,WAAtB,IAAuC9H,KAAhD;AAAA,mBAVP;AAWE,0BAAQ,gBAACiG,CAAD,EAAO;AACb,wBAAMsS,cAAc9S,gBAAc9F,QAAQmI,WAAtB,EAAqC9H,KAArC,CAA2CA,KAA/D;AACA,wBAAIyF,KAAK5K,KAAL,CAAWa,kBAAX,KAAkC,GAAlC,IAAyCiE,QAAQyD,WAAR,KAAwB/B,SAAS4P,OAA1E,IAAqFsH,YAAYtY,KAAZ,KAAsB,EAA/G,EAAmH;AACjH;AACD;AACDsY,gCAAYtY,KAAZ,GAAoB,2BAAesY,YAAYtY,KAA3B,CAApB;AACD;AAjBH;AADF;AAFF,aAXJ;AAqCKN,oBAAQyD,WAAR,IAAuB/B,SAAS4P,OAAjC,IACA;AAAA;AAAA,gBAAK,WAAU,MAAf;AACE;AAAA;AAAA,kBAAM,WAAU,OAAhB;AAAA;AAAA,eADF;AAEE;AAAA;AAAA,kBAAM,WAAU,MAAhB,EAAuB,KAAK;AAAA,2BAASxL,gBAAc9F,QAAQmI,WAAtB,UAAwC9H,KAAjD;AAAA,mBAA5B;AAAqFyF,qBAAK8T,iBAAL,CAAuB5Z,QAAQyD,WAA/B,EAA4CzD,QAAQM,KAApD;AAArF;AAFF,aAtCJ;AA4CI,aAAC1B,QAAD,IAAa9C,SAAQ,CAArB,IACA;AAAA;AAAA,gBAAK,WAAU,gBAAf;AACE;AAAA;AAAA,kBAAM,WAAU,OAAhB;AAAA;AAAA,eADF;AAEE;AAAA;AAAA,kBAAM,WAAU,gBAAhB;AAAA;AAAoCe;AAApC,eAFF;AAGE;AAAA;AAAA,kBAAM,SAASiJ,KAAKsU,sBAApB,EAA4C,WAAU,iCAAtD;AAAA;AAA4F,8CAAC,eAAD,IAAO,MAAK,MAAZ;AAA5F;AAHF,aA7CJ;AAoDI,aAACpa,QAAQyD,WAAR,IAAuB/B,SAAS0K,EAAhC,IAAsCpM,QAAQyD,WAAR,IAAuB/B,SAAS2K,GAAtE,IAA6ErM,QAAQyD,WAAR,IAAuB/B,SAAS4K,IAA7G,IAAqHtM,QAAQyD,WAAR,IAAuB/B,SAAS2T,MAArJ,IAA+JrV,QAAQyD,WAAR,IAAuB/B,SAAS4T,IAAhM,KACA;AAAA;AAAA,gBAAK,WAAU,WAAf;AACE;AAAA;AAAA,kBAAM,WAAU,cAAhB;AAAgCtV,wBAAQmV,IAAxC;AAAA;AAAA,eADF;AAEE;AAAA;AAAA;AACE,8CAAC,yBAAD;AACE,6BAAU,UADZ;AAEE,wBAAK,MAFP;AAGE,gCAHF;AAIE,+BAAY,kDAJd;AAKE,uBAAK;AAAA,2BAASrP,gBAAc9F,QAAQmI,WAAtB,IAAuC9H,KAAhD;AAAA,mBALP;AADF,eAFF;AAWIyF,mBAAK2D,eAAL,IACA;AAAA;AAAA,kBAAM,WAAU,aAAhB;AACE,8CAAC,eAAD,IAAO,MAAK,UAAZ,EAAuB,WAAU,MAAjC,EAAwC,SAAS3D,KAAKmT,iBAAtD,GADF;AAEE,8CAAC,cAAD,IAAM,KAAK;AAAA,2BAAQnT,KAAKoT,OAAL,GAAemB,IAAvB;AAAA,mBAAX,EAAwC,UAAU;AAAA,2BAASvU,KAAKsT,YAAL,CAAkB9Y,KAAlB,EAAyBiW,KAAzB,aAAyCvW,QAAQmI,WAAjD,CAAT;AAAA,mBAAlD;AAFF;AAZJ,aArDJ;AAwEE;AAAA;AAAA,gBAAK,WAAW,0BAAW,EAAE,gBAAgB,IAAlB,EAAwB,iBAAiBnI,QAAQyD,WAAR,IAAuB/B,SAAS4P,OAAzE,EAAX,CAAhB;AACE;AAAA;AAAA,kBAAK,WAAU,IAAf;AACE;AAAA;AAAA;AACE,6BAAS,mBAAM;AACbiF,4BAAM1F,OAAN;AACA/K,2BAAKrD,QAAL,CAAc;AACZnG,wCAAgB;AADJ,uBAAd;AAGAwJ,2BAAK/G,KAAL,CAAWjC,MAAX,IAAqBgJ,KAAK7K,KAAL,CAAWuL,cAAhC,IAAkDV,KAAK7K,KAAL,CAAWuL,cAAX,EAAlD;AACAV,2BAAK/G,KAAL,CAAWjC,MAAX,IAAqBgJ,KAAK/G,KAAL,CAAW0O,MAAX,CAAkBzN,QAAQmI,WAA1B,EAAuC,CAAC0M,UAAD,GAAc,SAAd,GAAwB,EAA/D,CAArB;AACAc,4DAAgB3V,QAAQmV,IAAxB;AACD,qBATH;AAAA;AAAA,iBADF;AAWE;AAAA;AAAA;AACE,0BAAK,SADP;AAEE,6BAAS,mBAAM;AACb,0BAAInV,QAAQyD,WAAR,IAAuB/B,SAAS4P,OAApC,EAA6C;AAC3C,4BAAI0I,KAAKjZ,WAAW+E,gBAAc9F,QAAQmI,WAAtB,QAAsC2Q,SAAjD,CAAT;AACA,4BAAIkB,KAAK,CAAT,EAAY;AACV,8BAAIlU,gBAAc9F,QAAQmI,WAAtB,EAAqC9H,KAArC,CAA2CA,KAA3C,CAAiDC,KAAjD,KAA2D,EAA/D,EAAmE;AACjEW,8CAAQC,KAAR,CAAc,SAAd;AACD,2BAFD,MAEO;AACLD,8CAAQC,KAAR,CAAc,cAAd;AACD;AACD;AACD,yBAPD,MAOO,IAAI8Y,KAAKlU,KAAK7K,KAAL,CAAWkR,QAAX,CAAoB,sBAApB,CAAT,EAAsD;AAC3DlL,4CAAQC,KAAR,CAAc,kBAAkB,2BAAe4E,KAAK7K,KAAL,CAAWkR,QAAX,CAAoB,sBAApB,CAAf,CAAlB,GAAgF,GAA9F;AACA;AACD;AACF;AACD,0BAAMzM,IAAI,oBAAMoG,gBAAc9F,QAAQmI,WAAtB,EAAqC,OAArC,EAA8C,OAA9C,EAAuD8R,YAAvD,CAAoE,OAApE,CAAN,CAAV;;AAEA,0BAAIva,MAAM,EAAV,EAAc;AACZ6W,8BAAM1F,OAAN;AACAzP,mCAAW,YAAM;AACf,8BAAIpB,QAAQyD,WAAR,IAAuB/B,SAAS4P,OAApC,EAA6C;AAC3CxL,iCAAK/G,KAAL,CAAWiP,WAAX,CAAuBhO,QAAQmI,WAA/B,EAA4CzI,CAA5C,EAA+C,KAA/C,EAAsD,SAAtD;AACD,2BAFD,MAEO;AACLM,oCAAQyW,QAAR,GAAmB/W,CAAnB;AACD;AACDgD;AACD,yBAPD,EAOG,GAPH;AAQD,uBAVD,MAUO;AACL,4BAAI1C,QAAQyD,WAAR,IAAuB/B,SAAS4P,OAApC,EAA4C;AAC1CrQ,4CAAQC,KAAR,CAAc,SAAd;AACD,yBAFD,MAEO;AACLD,4CAAQC,KAAR,CAAc,WAAd;AACD;AACF;AACF,qBApCH;AAAA;AAAA;AAXF;AADF;AAxEF;AAzDqB,SAAX,CAAd;AAsLA;AACAE,mBAAW,YAAM;AACf;AACA0E,0BAAc9F,QAAQmI,WAAtB,EAAqC9H,KAArC,CAA2CA,KAA3C,CAAiD4G,KAAjD;AACD,SAHD,EAGG,GAHH;AAID,OA7LM,CAAP;AA8LD,KAhsEkB;;AAAA,WAmsEnBqT,yBAnsEmB,GAmsES,UAACxe,IAAD,EAAU;AAAA,0BACT,OAAKiD,KADI;AAAA,UAC9BiB,OAD8B,iBAC9BA,OAD8B;AAAA,UACtBlB,QADsB,iBACtBA,QADsB;;AAAA,oCAEf0C,4BAAeC,SAAf,EAFe;AAAA,UAE5BC,QAF4B,2BAE5BA,QAF4B;;AAGpC,UAAM6Y,cAAc,CAAC7Y,SAAS2T,MAAV,EAAiB3T,SAAS4T,IAA1B,EAA+B5T,SAAS4K,IAAxC,CAApB;AACA,UAAMkO,oBAAoBD,YAAYxK,MAAZ,CAAoB;AAAA,eAAc0K,eAAe3e,IAA7B;AAAA,OAApB,CAA1B;AACA;AACA,UAAG0e,kBAAkB3V,MAAlB,KAA6B0V,YAAY1V,MAA5C,EAAoD,OAAO,KAAP;AACpD,UAAM6V,kBAAmB,oBAAM1a,QAAQsD,WAAd,EAA0B,UAAC4E,IAAD,EAAQ;AACzD,YAAMyS,kBAAmBH,kBAAkB7O,IAAlB,CAAuB,sBAAa;AAC3D;AACA,iBAAO8O,cAAcvS,KAAKzE,WAAnB,KAAmC3E,WAAUoJ,KAAK5H,KAAL,IAAc,CAAxB,GAA2B,IAA9D,CAAP;AACD,SAHwB,CAAzB;AAIA;AACA,YAAG4H,KAAKzE,WAAL,KAAqB3H,IAArB,IAA6B6e,eAA7B,IAAgDA,gBAAgB9V,MAAhB,IAA0B,CAA7E,EAAgF,OAAO,IAAP;AACjF,OAPwB,CAAzB;AAQA,UAAG6V,eAAH,EAAoB,OAAO,IAAP;AACpB,aAAO,KAAP;AACD,KAptEkB;;AAAA,WAstEnBlX,iBAttEmB,GAstED,UAAC1H,IAAD,EAAMuH,OAAN,EAAc7E,aAAd,EAA8B;AAAA,oCACzBgD,4BAAeC,SAAf,EADyB;AAAA,UACtCC,QADsC,2BACtCA,QADsC;;AAE9C,aAAQ,CAAE2B,YAAYvH,QAAM4F,SAAS0K,EAAf,IAAqBtQ,QAAM4F,SAAS2K,GAApC,IAA2CvQ,QAAM4F,SAAS4K,IAA1D,IAAkExQ,QAAM4F,SAASwJ,IAAjF,IAAyFpP,QAAM4F,SAASuI,GAAxG,IAA+GnO,QAAM4F,SAAS2T,MAA9H,IAAwIvZ,QAAM4F,SAAS4T,IAAnK,CAAD,IACL9W,iBAAiB1C,QAAM4F,SAASO,KAD5B,KAEL,EAAEzD,kBAAkB1C,QAAM4F,SAAS0K,EAAf,IAAqBtQ,QAAM4F,SAAS2K,GAAtD,CAAF,CAFI,IAE8D,OAAKiO,yBAAL,CAA+Bxe,IAA/B,CAFrE;AAGD,KA3tEkB;;AAAA,WA6tEnB6T,mBA7tEmB,GA6tEC,UAAC3P,OAAD,EAASsD,WAAT,EAAuB;AAAA,oCACpB9B,4BAAeC,SAAf,EADoB;AAAA,UACjCC,QADiC,2BACjCA,QADiC;;AAEzCoI,cAAQC,GAAR,CAAY,wCAAZ,EAAqD,EAAC/J,gBAAD,EAASsD,wBAAT,EAArD;AACA,UAAGtD,QAAQgB,MAAR,IAAgB,CAAhB,IAAqBhB,QAAQmR,QAAR,IAAkB,CAA1C,EAA4C;AAC1CrH,gBAAQC,GAAR,CAAY,qCAAZ,EAAkD,KAAlD;AACA,eAAO,KAAP;AACD;AACD,UAAG,OAAKhL,KAAL,CAAWsE,OAAd,EAAsB;AACpB,YAAIN,WAAO,EAAE/C,QAAQgV,UAAR,IAAoB,CAApB,IAAyB1R,YAAYuB,MAAZ,GAAmB,CAA9C,CAAX;AACAiF,gBAAQC,GAAR,CAAY,qCAAZ,EAAkDhH,QAAlD;AACA,eAAOA,QAAP;AACD;AACD,UAAI6X,KAAG,oBAAMtX,WAAN,EAAkB,UAAC4E,IAAD,EAAQ;AAAC,eAAOA,KAAKzE,WAAL,IAAkB/B,SAAS4P,OAAlC;AAA0C,OAArE,CAAP;AACA,UAAIuJ,UAAQ7a,QAAQgV,UAAR,IAAoB,CAApB,IAAyB1R,YAAYuB,MAAZ,GAAmB,CAAxD;AACA,UAAG+V,MAAMA,GAAGta,KAAH,IAAU,CAAnB,EAAqB;AACnBua,kBAAQ7a,QAAQgV,UAAR,IAAoB,CAApB,IAAyB1R,YAAYuB,MAAZ,GAAmB,CAA5C,IAAkDtE,KAAKqT,GAAL,CAAS5T,QAAQgV,UAAjB,IAA6B4F,GAAGta,KAA1F;AACD;AACDwJ,cAAQC,GAAR,CAAY,qCAAZ,EAAkD,CAAC8Q,OAAnD;AAjByC,UAkBjCve,cAlBiC,GAkBd,OAAKpB,KAlBS,CAkBjCoB,cAlBiC;;AAmBzC,aAAO,CAACue,OAAD,IAAYve,cAAnB;AACD,KAjvEkB;;AAAA,WAmvEnBwe,mBAnvEmB,GAmvEG,UAACC,MAAD,EAASC,MAAT,EAAoB;AACxC,UAAIA,UAAU,CAAd,EAAiB,OAAOD,MAAP;AACjB,UAAIE,MAAMla,WAAWga,MAAX,CAAV;AACA,UAAIhN,MAAMkN,GAAN,CAAJ,EAAgB;AACZ,eAAO,EAAP;AACH;AACD,UAAIC,YAAY3a,KAAK4a,GAAL,CAAS,EAAT,EAAYH,MAAZ,CAAhB;AACAC,YAAM1a,KAAK6a,KAAL,CAAWL,SAASG,SAApB,IAAiCA,SAAvC;AACA,UAAIG,MAAMJ,IAAIK,QAAJ,EAAV;AACA,UAAIC,cAAcF,IAAI3F,OAAJ,CAAY,GAAZ,CAAlB;AACA,UAAI6F,cAAc,CAAlB,EAAqB;AACjBA,sBAAcF,IAAIxW,MAAlB;AACAwW,eAAO,GAAP;AACH;AACD,aAAOA,IAAIxW,MAAJ,IAAc0W,cAAcP,MAAnC,EAA2C;AACvCK,eAAO,GAAP;AACH;AACD,aAAOA,GAAP;AACD,KArwEkB;;AAAA,WAuwEnBG,YAvwEmB,GAuwEJ,YAAM;AAAA,oCACEha,4BAAeC,SAAf,EADF;AAAA,UACXC,QADW,2BACXA,QADW;;AAEnB,0BAAM,OAAK3C,KAAL,CAAWiB,OAAX,CAAmBsD,WAAzB,EAAqC,UAAC4E,IAAD,EAAQ;AAC3C,YAAIA,KAAKzE,WAAL,IAAkB/B,SAASO,KAA/B,EAAsC;AACpC,iBAAKlD,KAAL,CAAWuI,cAAX,CAA0BY,KAAKC,WAA/B;AACD;AACF,OAJD;;AAMA,aAAK1F,QAAL,CAAc;AACZrH,oBAAY;AADA,OAAd;AARmB,UAWb2E,WAXa,GAWG,OAAKhB,KAAL,CAAWiB,OAXd,CAWbD,WAXa;;AAYnBqB,iBAAW,YAAM;AACf,YAAG,CAACrB,YAAYE,MAAb,IAAuB,CAACF,YAAYE,MAAZ,CAAmBkH,EAA9C,EAAiD;AAC/C,iBAAKH,QAAL,IAAiB,OAAKA,QAAL,CAAc3G,KAAd,CAAoB4G,KAApB,EAAjB;AACD,SAFD,MAEK;AACH,cAAG,OAAKpG,cAAL,IAAuB,OAAKA,cAAL,CAAoBR,KAA9C,EAAoD;AAClD,mBAAKQ,cAAL,CAAoBR,KAApB,CAA0B4G,KAA1B;AACA,mBAAKpG,cAAL,CAAoBR,KAApB,CAA0B6G,iBAA1B,CAA4C,CAA5C,EAA+C,OAAKrG,cAAL,CAAoBR,KAApB,CAA0BC,KAA1B,CAAgCuE,MAA/E;AACD;AACF;AACF,OATD,EASG,GATH;AAUD,KA7xEkB;;AAAA,WA+xEnB4W,oBA/xEmB,GA+xEI,UAAC5U,MAAD,EAAQyE,QAAR,EAAiBoQ,aAAjB,EAA+BC,UAA/B,EAA8C;AACnE,UAAMC,aAAaD,gCAAnB;AACA,UAAME,YAAYF,aAAW,EAAX,GAAc9U,MAAhC;AACA,UAAMiV,UAAU,EAAhB;AAHmE,UAI3DhgB,IAJ2D,GAIlD,OAAKb,KAJ6C,CAI3Da,IAJ2D;;AAKnEwP,eAAS7L,OAAT,CAAiB,UAACuE,IAAD,EAAM8D,KAAN,EAAc;AAC7B;AACA,YAAGA,QAAQ4T,aAAR,KAA0B,CAA7B,EAA+B;AAC7BI,kBAAQvb,KAAKwb,KAAL,CAAWjU,QAAM4T,aAAjB,CAAR,IAA2C,EAA3C;AACD;AACDI,gBAAQvb,KAAKwb,KAAL,CAAWjU,QAAM4T,aAAjB,CAAR,EAAyChH,IAAzC,CAA8C1Q,IAA9C;AACD,OAND;AAOA,aAAO;AAAC,kBAAD;AAAA,iCAAY,cAAZ,EAAqB,MAAK,MAA1B,EAAiC,WAAU,MAA3C,IAAsD6X,SAAtD;AACJ,2BAAKC,OAAL,EAAc,UAACE,QAAD,EAAWlU,KAAX,EAAqB;AAClC,iBAAO;AAAA;AAAA;AAED,+BAAKkU,QAAL,EAAe,UAAC9T,IAAD,EAAO+T,SAAP,EAAqB;AAClC,qBAAO,OAAKC,aAAL,CAAmBhU,IAAnB,EAAyBJ,QAAM4T,aAAN,GAAoBO,SAA7C,EAAwDngB,SAAS,CAAT,GAAa,SAAb,GAAyB,EAAjF,CAAP;AACD,aAFD;AAFC,WAAP;AAOD,SARA;AADI,OAAP;AAWD,KAtzEkB;;AAAA,WAwzEnBse,sBAxzEmB,GAwzEM,YAAM;AAC7B,aAAKnX,mBAAL;AACA,aAAKR,QAAL,CAAc;AACZhH,0BAAkB,IADN;AAEZ4B,wBAAgB,IAFJ;AAGZb,0BAAkB;AAHN,OAAd;AAKD,KA/zEkB;;AAAA,WAi0EnB2f,qBAj0EmB,GAi0EK,YAAM;AAC5B,aAAK1Z,QAAL,CAAc;AACZhH,0BAAkB,KADN;AAEZc,wBAAgB,CAFJ;AAGZC,0BAAkB;AAHN,OAAd;AAKA,UAAIsJ,aAAJ;AAN4B,0BAOS,OAAK5K,KAPd;AAAA,UAOpB4B,MAPoB,iBAOpBA,MAPoB;AAAA,UAOZN,gBAPY,iBAOZA,gBAPY;;AAQ5B,UAAI,CAACA,gBAAL,EAAuB;AACrB,YAAIM,MAAJ,EAAY;AACVsE,qBAAW,YAAM;AACf,mBAAKG,QAAL;AACD,WAFD,EAEG,GAFH;AAGD,SAJD,MAIO;AACL,iBAAK4B,MAAL;AACD;AACF,OARD,MAQO;AACL/B,mBAAW,YAAM;AACf,cAAIf,QAAQsJ,SAASE,cAAT,CAAwB,eAAxB,CAAZ;AACAxJ,mBAASA,MAAM+b,MAAN,EAAT;AACD,SAHD,EAGG,GAHH;AAID;AACF,KAv1EkB;;AAAA,WAy1EnBC,WAz1EmB,GAy1EL,YAAM;AAClB,aAAK5Z,QAAL,CAAc;AACZzF,qBAAa,CAAC,OAAK9B,KAAL,CAAW8B;AADb,OAAd;AAGD,KA71EkB;;AAEjB,WAAKtC,WAAL,GAAmBA,WAAnB;;AAFiB,iBAG8F8Q,uBAAO8Q,IAAP,CAAYC,OAAZ,CAAoB1K,GAApB,CAAwB,WAAxB,KAAwC,EAHtI;AAAA,QAGT2K,kCAHS,UAGTA,kCAHS;AAAA,QAG2BC,YAH3B,UAG2BA,YAH3B;AAAA,QAGyCC,cAHzC,UAGyCA,cAHzC;AAAA,QAGyDC,aAHzD,UAGyDA,aAHzD;AAAA,QAGwEC,kBAHxE,UAGwEA,kBAHxE;;AAIjB,WAAKC,sBAAL,GAA8BL,kCAA9B,CAJiB,CAIiD;AAClE,WAAKM,YAAL,GAAoBhP,SAAS2O,YAAT,CAApB,CALiB,CAK4B;AAC7C,WAAKM,cAAL,GAAsBL,cAAtB,CANiB,CAMyB;AAC1C,WAAKM,MAAL,GAAcL,iBAAiB,MAA/B;AACA,WAAKM,kBAAL,GAA0BL,kBAA1B;AACA;;AATiB,iBAU8BhiB,yBAAY,EAV1C;AAAA,QAUT6O,eAVS,UAUTA,eAVS;AAAA,QAUQkI,iBAVR,UAUQA,iBAVR;;AAWjB,WAAKlI,eAAL,GAAuB,CAAC,CAACA,eAAzB;AACA,WAAKkI,iBAAL,GAAyB,CAAC,CAACA,iBAA3B;AACA,WAAKqF,mBAAL,GAA2B,CAAC,CAACvN,eAAF,IAAqB,CAAC,CAACkI,iBAAlD;AACA,WAAK/R,eAAL,GAAuB,OAAKA,eAAL,CAAqBsd,IAArB,QAAvB;AACA,WAAKC,QAAL,GAAgB,IAAhB;AACA,WAAKC,aAAL,GAAqB,IAArB;AACA,WAAKre,KAAL,GAAa,EAAE9D,MAAMa,IAAN,IAAc,CAAhB,IAAqB0P,uBAAO6R,sBAA5B,GAAqD7R,uBAAO8R,qBAAzE;AAjBiB;AAkBlB;;;;wCAEmB;AAClB,WAAKve,KAAL,CAAWwe,YAAX,CAAwB,KAAKzd,WAA7B,EAA0C,KAAK7E,KAAL,CAAWa,IAArD,EAA2D,KAAKb,KAAL,CAAW0X,YAAtE;AACD;;;yCAEoB;AACnB,WAAK9T,wBAAL;AACD;;;8CAEyB2e,S,EAAW;AACnC,UAAIA,UAAUxc,MAAV,IAAoB,KAAK/F,KAAL,CAAW+F,MAAnC,EAA2C;AACzC,aAAKjC,KAAL,CAAWlD,aAAX,CAAyB2hB,UAAUxc,MAAnC;AACA,aAAKyB,QAAL,CAAc,EAAE5G,eAAe,CAAC,KAAKX,KAAL,CAAWW,aAA7B,EAAd;AACD;;AAED;AACA,UAAG2hB,UAAU7K,YAAV,IAA0B,KAAK1X,KAAL,CAAW0X,YAAxC,EAAqD;AACnD,aAAK5T,KAAL,CAAWiB,OAAX,CAAmByd,KAAnB;AACA,aAAK1e,KAAL,CAAWwe,YAAX,CAAwB,KAAKzd,WAA7B,EAAyC,KAAK7E,KAAL,CAAWa,IAApD,EAAyD0hB,UAAU7K,YAAnE;AACD;AACF;;AAED;;;AAMA;;;AAMA;;;AAOA;;;;;;AA2BA;oCACgB;AAAA;;AACZ;AACA,UAAI,KAAKjY,WAAL,KAAqB,IAArB,IAA6B,KAAKoiB,YAAL,KAAsB,CAAvD,EAA0D;AACtD1K,iCAASC,oBAAT,CAA8B,eAA9B,EAA+C,IAA/C,EAAqD,eAAO;AACxD,cAAItP,SAAS,EAAb;AACA,cAAIsR,IAAIS,MAAJ,KAAe,CAAnB,EAAsB;AAClB/R,qBAAS,EAAEpH,mBAAmB,KAArB,EAA4BC,kBAAkByY,IAAI/T,KAAlD,EAAT;AACH,WAFD,MAEO;AACHyC,qBAAS,EAAEpH,mBAAmB,IAArB,EAA2BC,kBAAkB,EAA7C,EAAT;AACH;AACD,iBAAK6G,QAAL,CAAcM,MAAd;AACH,SARD;AASH;AACJ;AACD;;;;iCACa;AAAA;;AACT;AACA,UAAI,KAAKrI,WAAL,KAAqB,IAArB,IAA6B,KAAKoiB,YAAL,KAAsB,CAAvD,EAA0D;AAAA,qBACN,KAAK5hB,KADC;AAAA,YAC9CS,iBAD8C,UAC9CA,iBAD8C;AAAA,YAC3BC,gBAD2B,UAC3BA,gBAD2B;;AAEtD,YAAID,sBAAsB,KAA1B,EAAiC;AAC7BsF,4BAAQC,KAAR,CAActF,mBAAmBA,gBAAnB,GAAsC,SAApD;AACA,eAAK6L,aAAL,GAF6B,CAEP;AACtB;AACH;AACD,YAAIZ,SAAS,EAAE6W,SAAS,KAAKX,cAAhB,EAAgCY,SAAS,EAAzC,EAA6CC,QAAQ,CAArD,EAAb;AACAxL,iCAASC,oBAAT,CAA8B,YAA9B,6BAAiDxL,MAAjD,GAA2D,eAAO;AAC9D,cAAIwN,IAAIS,MAAJ,KAAe,CAAnB,EAAsB;AAClB7T,8BAAQC,KAAR,CAAcmT,IAAI/T,KAAlB;AACA,mBAAKmH,aAAL,GAFkB,CAEI;AACtB;AACH,WAJD,MAIO,IAAI4M,IAAIS,MAAJ,KAAe,CAAnB,EAAsB;AACzB;AACA;AACA,mBAAKrS,QAAL,CAAc;AACZvF,wBAAUmX,IAAI/T;AADF,aAAd;AAGA,mBAAK2H,OAAL,CAAaoM,IAAI/T,KAAjB;AACH;AACJ,SAbD;AAcH;AACJ;;AAED;;;;kCACa;AACT,UAAI,KAAK5F,WAAL,KAAqB,IAArB,IAA6B,KAAKoiB,YAAL,KAAsB,CAAvD,EAA0D;AACtD1K,iCAASC,oBAAT,CAA8B,aAA9B;AACH;AACJ;;AAqSD;;;AAqNA;;;AAQA;;;AAiDA;;;;mCAsYezU,G,EAAK;AAAA,UACVoC,OADU,GACE,KAAKjB,KADP,CACViB,OADU;;AAAA,oCAEGwB,4BAAeC,SAAf,EAFH;AAAA,UAEVC,QAFU,2BAEVA,QAFU;;AAGlB,UAAI9D,QAAQ8D,SAASuI,GAAjB,IAAwB1J,KAAKsd,KAAL,CAAW7d,QAAQmR,QAAnB,EAA6BnR,QAAQgB,MAArC,IAA+C,CAA3E,EAA8E;AAC5EC,0BAAQkB,IAAR,CAAa,sBAAb;AACA,eAAO,KAAP;AACD;AACD,aAAO,IAAP;AACD;;AA8HD;;;;;;;AAsLA;;;AA+LA;;;;mCAmKe2b,a,EAAe;AAAA,mBACF,KAAK3f,OAAL,CAAaC,SAAb,CAAuBC,IAAvB,IAA+B,EAD7B;AAAA,UACpBwF,aADoB,UACpBA,aADoB;;AAE5B,UAAIka,WAAW,EAAf;AACA,UAAG,oBAAYD,aAAZ,EAA2BjZ,MAA3B,GAAoC,CAAvC,EAAyC;AACvC,YAAMmZ,UAAU,CACd;AACE/X,iBAAO,MADT;AAEEgY,qBAAW,MAFb;AAGErgB,eAAK,MAHP;AAIEsgB,oBAAU;AAJZ,SADc,EAOd;AACEjY,iBAAO,IADT;AAEEgY,qBAAW,QAFb;AAGErgB,eAAK,QAHP;AAIEsgB,oBAAU;AAJZ,SAPc,CAAhB;;AADuC,mCAe9BtgB,GAf8B;AAgBrC,cAAIugB,UAAUta,cAAc8H,IAAd,CAAmB;AAAA,mBAAG5H,EAAEqa,WAAF,IAAiBxgB,GAApB;AAAA,WAAnB,CAAd;AACAmgB,mBAASrJ,IAAT,CAAc,EAACS,MAAMgJ,QAAQpZ,SAAR,CAAkBV,IAAzB,EAA+Bga,QAAQP,cAAclgB,GAAd,CAAvC,EAAd;AAjBqC;;AAevC,aAAK,IAAIA,GAAT,IAAgBkgB,aAAhB,EAA8B;AAAA,gBAArBlgB,GAAqB;AAG7B;AACD,YAAM2Y,QAAQ,0BAAW;AACvBC,wBAAc,wBAAM;AAClBD,kBAAM1F,OAAN;AACD,WAHsB;AAIvB+F,wBAAc,KAJS;AAKvBC,oBAAU,KALa;AAMvBC,oBAAU,IANa;AAOvB7Q,iBAAM,QAPiB;AAQvB8Q,iBAAM,GARiB;AASvBpX,qBAAW,EATY;AAUvBuG,mBACE;AAAA;AAAA,cAAK,WAAU,sBAAf;AACE;AAAA;AAAA,gBAAK,WAAU,aAAf;AACE;AACI,yBAAS8X,OADb;AAEI,4BAAYD,QAFhB;AAGI,wBAAQ,EAAEO,GAAG,GAAL,EAHZ;AAII,4BAAY,KAJhB;AAKI,sBAAK,QALT;AADF,aADF;AASE;AAAA;AAAA,gBAAK,WAAU,sBAAf;AACI;AAAA;AAAA,kBAAQ,MAAK,SAAb,EAAuB,SAAS,mBAAM;AAAC/H,0BAAM1F,OAAN;AAAgB,mBAAvD;AAAA;AAAA;AADJ;AATF;AAXqB,SAAX,CAAd;AA0BA,eAAO,IAAP;AACD;AACD,aAAO,KAAP;AACD;;;oCAyHejT,G,EAAI;AAClB,aAAO,yBAAW,KAAKmB,KAAL,CAAWiB,OAAX,CAAmBsD,WAA9B,EAA0C,EAACG,aAAY7F,GAAb,EAA1C,IAA6D,CAAC,CAArE;AACD;;;qCAEgBA,G,EAAK;AAAA,oCACC4D,4BAAeC,SAAf,EADD;AAAA,UACZC,QADY,2BACZA,QADY;;AAEpB,UAAI,KAAK1D,YAAT,EAAuB;AACrB,YAAG,KAAKe,KAAL,CAAWiB,OAAX,CAAmBD,WAAtB,EAAmC;AACjC,cAAIwe,eAAe,KAAKxf,KAAL,CAAWiB,OAAX,CAAmBD,WAAnB,CAA+B0D,WAAlD;AACA,cAAI8a,iBAAiB7c,SAASuI,GAA1B,IAAiCsU,iBAAiB7c,SAASO,KAA3D,IAAoEsc,iBAAiB7c,SAASwJ,IAAlG,EAAwG;AACtG;AACD;AACF;AACD,YAAM5K,QAAQsI,mBAAS4V,WAAT,CAAqB,KAAKxgB,YAA1B,EAAwC,KAAKA,YAAL,CAAkBsC,KAA1D,EAAiE1C,GAAjE,EAAsE,IAAtE,CAAd;AACA,YAAI,CAACmQ,MAAMzN,KAAN,CAAD,IAAiBA,SAAS,GAA9B,EAAmC;AACjC,eAAKtC,YAAL,CAAkBsC,KAAlB,GAA0BA,KAA1B;AACA,eAAKvB,KAAL,CAAWiP,WAAX,CAAuB,KAAK9S,KAAL,CAAWQ,YAAlC,EAAgD4E,KAAhD,EAAuD,KAAvD;AACD;AACF;AACF;;;kCAEa4H,I,EAAKJ,K,EAAMgE,Q,EAAS;AAAA;;AAAA,oCACFtK,4BAAeC,SAAf,EADE;AAAA,UACxBgd,OADwB,2BACxBA,OADwB;AAAA,UACd/c,QADc,2BACdA,QADc;;AAAA,UAE1B9C,QAF0B,GAEb,KAAK3D,KAFQ,CAE1B2D,QAF0B;AAAA,mBAGU,KAAKG,KAHf;AAAA,UAG1BiB,OAH0B,UAG1BA,OAH0B;AAAA,UAGjBqD,OAHiB,UAGjBA,OAHiB;AAAA,UAGR7E,aAHQ,UAGRA,aAHQ;;AAIhC,UAAIkgB,UAAU,oBAAM1e,QAAQsL,QAAd,EAAwB,UAACtH,IAAD,EAAU;AAAE,eAAOA,KAAKP,WAAL,KAAqB/B,SAAS4K,IAArC;AAA0C,OAA9E,CAAd;AACA;AACA,UAAIqS,cAAc7W,KAAlB;AACA,UAAI,CAAClJ,QAAD,IAAa8f,OAAjB,EAA0B;AACxB,YAAIxW,KAAKzE,WAAL,IAAoB/B,SAAS0K,EAA7B,IAAmClE,KAAKzE,WAAL,IAAoB/B,SAAS2K,GAApE,EAAyE;AACvE,iBAAO,IAAP;AACD,SAFD,MAEO;AACL,cAAIuS,SAAS,sBAAQ5e,QAAQsL,QAAhB,EAA0B,aAAK;AAAE,mBAAOuT,EAAEpb,WAAF,IAAiB/B,SAAS0K,EAA1B,IAAgCyS,EAAEpb,WAAF,IAAiB/B,SAAS2K,GAAjE;AAAsE,WAAvG,CAAb;AACAsS,wBAAc,yBAAWC,MAAX,EAAmB,aAAK;AAAE,mBAAOrb,EAAEE,WAAF,IAAiByE,KAAKzE,WAA7B;AAA0C,WAApE,CAAd;AACD;AACF;;AAED;;AAEA,UAAMqb,kBAAkB,KAAKtb,iBAAL,CAAuB0E,KAAKzE,WAA5B,EAAyCJ,OAAzC,EAAkD7E,aAAlD,IAAkE,iBAAlE,GAAoF,EAA5G;AACA,UAAMugB,kBAAkB,KAAKC,eAAL,CAAqB9W,KAAKzE,WAA1B,IAAwC,iBAAxC,GAA0D,EAAlF;AACA,aACE;AAAA;AAAA,UAAK,KAAKqE,QAAQ,EAAlB,EAAsB,WAAWgX,kBAAgB,GAAhB,GAAoBC,eAApB,GAAsC,mBAAtC,GAA4D,KAAKzhB,mBAAL,CAAyBqhB,WAAzB,CAA7F,EAAoI,SAAS,mBAAM;AAAE,mBAAKlS,WAAL,CAAiBvE,KAAKzE,WAAtB,EAAkCqI,QAAlC;AAA6C,WAAlM;AACE;AAAA;AAAA,YAAK,WAAU,MAAf;AAAsB;AAAA;AAAA,cAAK,WAAU,gCAAf;AAAgD,0CAAC,eAAD,IAAO,WAAU,eAAjB,EAAiC,MAAM2S,QAAQvW,KAAKzE,WAAb,KAA6Bgb,QAAQ,SAAR,CAApE;AAAhD;AAAtB,SADF;AAEE;AAAA;AAAA,YAAK,WAAU,oBAAf;AAAqCvW,eAAKiN,IAAL,CAAUtQ,MAAV,GAAmB,CAAnB,GAAuB,wBAAUqD,KAAKiN,IAAf,EAAqB,EAAEtQ,QAAQ,CAAV,EAAaoa,UAAU,EAAvB,EAArB,IAAoD,KAA3E,GAAmF/W,KAAKiN;AAA7H,SAFF;AAGE;AAAA;AAAA,YAAK,WAAU,QAAf;AAAyB,eAAK1L,eAAL,GAAuB,EAAvB,GAA4B,KAAKnM,mBAAL,CAAyBqhB,WAAzB,KAAyC;AAA9F;AAHF,OADF;AAOD;;AA0BD;;;AAgBA;;;AAOA;;AA2RA;;;;6BAyFS;AAAA;;AAAA,oCACkDnd,4BAAeC,SAAf,EADlD;AAAA,UACCgd,OADD,2BACCA,OADD;AAAA,UACW1E,QADX,2BACWA,QADX;AAAA,UACsBrY,QADtB,2BACsBA,QADtB;AAAA,UACiC4I,aADjC,2BACiCA,aADjC;;AAAA,oBAEyK,KAAKpP,KAF9K;AAAA,UAECkB,YAFD,WAECA,YAFD;AAAA,UAEeK,UAFf,WAEeA,UAFf;AAAA,UAE2BE,mBAF3B,WAE2BA,mBAF3B;AAAA,UAE+CC,wBAF/C,WAE+CA,wBAF/C;AAAA,UAEwEC,4BAFxE,WAEwEA,4BAFxE;AAAA,UAEsGI,YAFtG,WAEsGA,YAFtG;AAAA,UAEoHC,QAFpH,WAEoHA,QAFpH;AAAA,UAE8HhB,cAF9H,WAE8HA,cAF9H;AAAA,UAE8ID,OAF9I,WAE8IA,OAF9I;AAAA,UAEuJoB,cAFvJ,WAEuJA,cAFvJ;AAAA,oBAI6B,KAAK0B,KAJlC;AAAA,UAIDiB,OAJC,WAIDA,OAJC;AAAA,UAIQqD,OAJR,WAIQA,OAJR;AAAA,UAIgBvE,QAJhB,WAIgBA,QAJhB;AAAA,mBAKqG,KAAK7D,KAL1G;AAAA,UAKDa,IALC,UAKDA,IALC;AAAA,UAKKkF,MALL,UAKKA,MALL;AAAA,UAKake,YALb,UAKaA,YALb;AAAA,UAK2BC,aAL3B,UAK2BA,aAL3B;AAAA,UAK0CvgB,QAL1C,UAK0CA,QAL1C;AAAA,UAKoDwgB,cALpD,UAKoDA,cALpD;AAAA,UAKmEC,cALnE,UAKmEA,cALnE;AAAA,UAKmFC,aALnF,UAKmFA,aALnF;AAMP;;AACA,UAAI9gB,gBAAgB,KAAKD,gBAAL,EAApB;AACA,UAAIghB,iBAAiB,KAAKphB,OAAL,IAAgB,KAAKA,OAAL,CAAaC,SAA7B,IAA0C,KAAKD,OAAL,CAAaC,SAAb,CAAuBC,IAAjE,IAAyE,KAAKF,OAAL,CAAaC,SAAb,CAAuBC,IAAvB,CAA4ByF,cAA1H;;AAEA;AACA,UAAIxF,aAAa,KAAKH,OAAL,IAAgB,KAAKA,OAAL,CAAaC,SAA7B,IAA0C,KAAKD,OAAL,CAAaC,SAAb,CAAuBC,IAAjE,IAAyE,KAAKF,OAAL,CAAaC,SAAb,CAAuBC,IAAvB,CAA4BC,UAAtH;AACA,UAAIwb,kBAAkB,KAAK3b,OAAL,IAAgB,KAAKA,OAAL,CAAaC,SAA7B,IAA0C,KAAKD,OAAL,CAAaC,SAAb,CAAuBC,IAAjE,IAAyE,KAAKF,OAAL,CAAaC,SAAb,CAAuBC,IAAvB,CAA4Byb,eAA3H;AACA,UAAIzC,mBAAmB,KAAKlZ,OAAL,IAAgB,KAAKA,OAAL,CAAaC,SAA7B,IAA0C,KAAKD,OAAL,CAAaC,SAAb,CAAuBC,IAAjE,IAAyE,KAAKF,OAAL,CAAaC,SAAb,CAAuBC,IAAvB,CAA4BgZ,gBAA5H;AACA,UAAG/Y,cAAc,EAAd,IAAoB,KAAK0e,MAAzB,IAAmC,KAAKC,kBAAL,GAA0B,GAA7D,KAAqE,CAAC5F,iBAAiBO,EAAlB,IAAwBP,iBAAiBO,EAAjB,IAAuB,gBAApH,CAAH,EAAyI;AACvI2H,yBAAiBA,iBAAiB,KAAKtC,kBAAtB,GAA2C,GAA5D;AACD;;AAED;AACA,UAAI3Z,cAAYxE,WAAS,sBAAQkB,QAAQsD,WAAhB,EAA4B,UAACC,CAAD,EAAK;AACxD,YAAGjF,cAAc,EAAjB,EAAoB;AAClB,iBAAO,EAAE,OAAKkF,iBAAL,CAAuBD,EAAEE,WAAzB,EAAqCJ,OAArC,EAA6C7E,aAA7C,KAA8DuC,WAAWwC,EAAEjD,KAAb,KAAqB,CAArF,KAA2FiD,EAAEE,WAAF,IAAiB/B,SAASO,KAA5H;AACD;AACD,eAAO,EAAE,OAAKuB,iBAAL,CAAuBD,EAAEE,WAAzB,EAAqCJ,OAArC,EAA6C7E,aAA7C,KAA8DuC,WAAWwC,EAAEjD,KAAb,KAAqB,CAArF,CAAP;AACD,OALwB,CAAT,GAKbN,QAAQsD,WALX;AAnBO,UAyBDgI,QAzBC,GAyBgCtL,OAzBhC,CAyBDsL,QAzBC;AAAA,UAyBSkU,MAzBT,GAyBgCxf,OAzBhC,CAyBSwf,MAzBT;AAAA,UAyBiBzf,WAzBjB,GAyBgCC,OAzBhC,CAyBiBD,WAzBjB;;;AA2BP,UAAIzB,cAAc,EAAlB,EAAqB;AACnBihB,yBAAiB/T,uBAAOiU,WAAP,CAAmBC,kBAApC;AACApU,mBAAW,sBAAQA,QAAR,EAAkB,gBAAQ;AAAE,iBAAOpD,KAAKzE,WAAL,IAAoB/B,SAASO,KAApC;AAA0C,SAAtE,CAAX,CAFmB,CAEiE;AACrF;AACD;AACA,UAAI0d,mBAAmB,KAAKxhB,OAAL,IAAgB,KAAKA,OAAL,CAAaC,SAA7B,IAA0C,KAAKD,OAAL,CAAaC,SAAb,CAAuBC,IAAvB,CAA4BshB,gBAA7F;;AAEA,UAAIC,WAAW,oBAAMtU,QAAN,EAAgB,UAACtH,IAAD,EAAU;AAAE,eAAOA,KAAKP,WAAL,KAAqB/B,SAAS4K,IAArC;AAA2C,OAAvE,CAAf;;AAEA;AACA,UAAI,CAAC1N,QAAD,IAAaghB,QAAjB,EAA2B;AACzBtU,mBAAWA,SAASyE,MAAT,CAAgB,UAAC7H,IAAD,EAAQ;AACjC,cAAIA,KAAKzE,WAAL,IAAoB/B,SAAS0K,EAA7B,IAAmClE,KAAKzE,WAAL,IAAoB/B,SAAS2K,GAApE,EAAyE,OAAO,IAAP;AACzE,iBAAO,IAAP;AACD,SAHU,CAAX;AAID;;AAED,UAAMwT,WAAUrhB,gBAAgB,EAAhB,GACd,sBAAQ8M,QAAR,EAAkB,UAACtL,OAAD,EAAY;AAC5B,YAAG1B,cAAc,EAAjB,EAAoB;AAClB,iBAAO0B,QAAQ8f,OAAR,IAAmB9f,QAAQyD,WAAR,IAAuB/B,SAASO,KAA1D,CADkB,CAC+C;AAClE,SAFD,MAEO;AACL,iBAAOjC,QAAQ8f,OAAf;AACD;AACF,OAND,CADF;AAQA,UAAMC,kBAAmBjkB,QAAM,CAAN,IAAW,KAAKqC,OAAL,CAAaC,SAAb,CAAuBC,IAAvB,CAA4BwF,aAA5B,CAA0CgB,MAA1C,IAAoD,CAAhE,IAAuE/I,QAAM,CAAN,IAAWiF,WAAWC,UAAU,CAArB,KAA2B,CAA7G,IAAmHqe,cAAnH,IAAqIC,aAA7J;AACA,UAAMU,eAAa,EAAnB;AACA,UAAMnZ,SAAS;AACboZ,oBAAY;AACV5G,cAAI;AADM,SADC;AAIb6G,sBAAc;AAJD,OAAf;AAMA,UAAMxE,gBAAgB,EAAtB;AACA,UAAMyE,iBAAiB,CAAvB;AACA,UAAMzkB,eAAe,KAAKR,KAAL,CAAWQ,YAAhC;AACA,UAAMsQ,YAAYjM,eAAeA,YAAYE,MAA3B,IAAqCF,YAAYE,MAAZ,CAAmBkH,EAA1E;AACA,UAAIiZ,YAAY,CAAhB;AAAA,UAAmBC,YAAY,CAA/B;AAAA,UAAkCC,YAAY,CAA9C;AAAA,UAAiDC,YAAY,CAA7D;AACA,UAAIC,cAAc,CAAlB,CAjEO,CAiEa;;AAjEb,mBAkEuCpB,kBAAkB,EAlEzD;AAAA,sCAkEDqB,WAlEC;AAAA,UAkEDA,WAlEC,sCAkEa,CAlEb;AAAA,yCAkEgBC,cAlEhB;AAAA,UAkEgBA,cAlEhB,yCAkEiC,CAlEjC;;AAmEP,UAAI9c,oBAAoB,gCAAY,mBAAZ,CAAxB;AACAA,0BAAoBA,oBAAoBkK,SAASlK,iBAAT,CAApB,GAAkD,EAAtE;AACA,UAAI,KAAK3I,KAAL,CAAW0lB,UAAf,EAA2B;AACzBP,oBAAYlB,gBAAgB,KAAK/gB,OAAL,CAAaC,SAAb,CAAuBC,IAAvB,CAA4BwF,aAA5B,CAA0CgB,MAAtE;AACAwb,oBAAY,KAAKvF,mBAAL,CAAyBqE,aAAzB,EAAwCvb,iBAAxC,CAAZ;AACA0c,oBAAY,KAAKxF,mBAAL,CAAyB2F,WAAzB,EAAsC7c,iBAAtC,CAAZ;AACA2c,oBAAY,KAAKzF,mBAAL,CAAyB4F,cAAzB,EAAyC9c,iBAAzC,CAAZ;AACA,YAAIgd,mBAAmB,KAAKziB,OAAL,IAAgB,KAAKA,OAAL,CAAaC,SAA7B,IAA0C,KAAKD,OAAL,CAAaC,SAAb,CAAuBC,IAAvB,CAA4BwF,aAA7F;AACA,YAAI+c,oBAAoBA,iBAAiB/b,MAAjB,GAA0B,CAAlD,EAAqD;AACnD+b,2BAAiBnhB,OAAjB,CAAyB,aAAK;AAC5B+gB,2BAAejgB,KAAKqT,GAAL,CAASlU,EAAEgG,QAAX,CAAf;AACD,WAFD;AAGD;AACD8a,sBAAc,KAAK1F,mBAAL,CAAyB0F,WAAzB,EAAsC5c,iBAAtC,CAAd;AACD;;AAED,UAAMid,eAAavd,YAAYyM,MAAZ,CAAmB,UAAC7H,IAAD;AAAA,eAAUA,KAAKzE,WAAL,KAAqB/B,SAASO,KAA9B,IAAuCiG,KAAK5H,KAAL,KAAe,MAAhE;AAAA,OAAnB,CAAnB;AACA,aACE;AAAA;AAAA,UAAK,WAAU,mBAAf,EAAmC,KAAK;AAAA,mBAAK,OAAKpB,yBAAL,GAAiC4hB,CAAtC;AAAA,WAAxC;AAEI,aAAK7lB,KAAL,CAAW0X,YAAX,GAEI;AAAA;AAAA,YAAK,WAAU,aAAf;AACE;AAAA;AAAA,cAAK,WAAU,MAAf;AAAA;AAAA,WADF;AAEE;AAAA;AAAA,cAAK,WAAW,0BAAW,EAAE,UAAU,IAAZ,EAAkB,aAAapS,KAAKqT,GAAL,CAAS2L,cAAT,IAA2B,MAA1D,EAAX,CAAhB;AAAiG,uCAAeA,cAAf;AAAjG,WAFF;AAGE;AAAA;AAAA,cAAK,WAAU,OAAf;AAAA,yCAA+Bc;AAA/B,WAHF;AAIE;AAAA;AAAA,cAAK,WAAU,OAAf;AAAA,0CAA+BV,oBAAoB,CAAnD;AAAA;AAJF,SAFJ,GAWI,KAAK1kB,KAAL,CAAW0lB,UAAX,IACA;AAAA;AAAA,YAAK,WAAU,YAAf;AACE;AAAA;AAAA,cAAK,WAAU,SAAf;AACE;AAAA;AAAA,gBAAK,WAAU,MAAf;AAAA;AAAA,aADF;AAEE;AAAA;AAAA,gBAAK,WAAW,0BAAW,EAAE,UAAU,IAAZ,EAAkB,aAAapgB,KAAKqT,GAAL,CAAS2L,cAAT,IAA2B,MAA1D,EAAX,CAAhB;AAAiG,yCAAeA,cAAf;AAAjG;AAFF,WADF;AAMI3gB,uBAAa,IAAb,GACE;AAAA;AAAA,cAAK,WAAU,SAAf;AACE;AAAA;AAAA;AAAA,yBAAWwhB,SAAX;AAAA,aADF;AAEE;AAAA;AAAA,gBAAM,WAAU,MAAhB;AAAA;AAAA,aAFF;AAEiC;AAAA;AAAA;AAAOE;AAAP,aAFjC;AAEyD;AAAA;AAAA;AAAA;AAAA,aAFzD;AAGE;AAAA;AAAA,gBAAM,WAAU,MAAhB;AAAA;AAAA,aAHF;AAGiC;AAAA;AAAA;AAAOC;AAAP,aAHjC;AAGyD;AAAA;AAAA;AAAA;AAAA,aAHzD;AAIE;AAAA;AAAA,gBAAM,WAAU,MAAhB;AAAA;AAAA,aAJF;AAIkC;AAAA;AAAA;AAAOC;AAAP;AAJlC,WADF,GAQE;AAAA;AAAA,cAAK,WAAU,SAAf;AACE;AAAA;AAAA;AAAA,yBAAWJ,SAAX;AAAA,aADF;AAEE;AAAA;AAAA,gBAAM,WAAU,MAAhB;AAAwBC;AAAxB,aAFF;AAE2C;AAAA;AAAA;AAAA;AAAA,aAF3C;AAGE;AAAA;AAAA,gBAAM,WAAU,MAAhB;AAAA;AAAA,aAHF;AAGkC;AAAA;AAAA;AAAOG;AAAP;AAHlC;AAdN,SAdR;AAqCE;AAAA;AAAA,YAAK,WAAU,MAAf;AAEI,WAAC,KAAK/W,eAAN,IAAyB,CAAC,KAAKxO,KAAL,CAAW0X,YAArC,IACA,mBAAKkN,QAAL,EAAe,UAACpL,CAAD,EAAItQ,CAAJ,EAAU;AAAA;;AACvB,gBAAI4c,YAAYhH,SAAStF,EAAEhR,WAAX,cAAkCgR,EAAEhR,WAApC,GAAoD,eAApE;AACA,mBACE;AAAA;AAAA;AACE,2BAAW,0BAAW,EAAE,SAAS,IAAX,EAAiB,UAAU3H,QAAM,CAAjC,EAAX,CADb;AAEE,sCAAoB2Y,EAAEhR,WAFxB;AAGE,yBAAS,mBAAM;AAAE,yBAAK0T,YAAL,CAAkB1C,EAAEhR,WAApB,EAAiC,IAAjC;AAAwC,iBAH3D;AAIE,0BAAUsc,mBAAoBjkB,QAAM,CAAN,IAAW,OAAK0H,iBAAL,CAAuBiR,EAAEhR,WAAzB,EAAsC,CAAC,OAAKtF,OAAL,CAAaC,SAAb,CAAuBC,IAAvB,CAA4ByF,cAA5B,IAA8C,IAAI,OAAK3F,OAAL,CAAaC,SAAb,CAAuBC,IAAvB,CAA4B2iB,mBAA9E,IAAqG,CAAtG,IAA2G,CAAjJ,EAAoJxiB,aAApJ;AAJ3C;AAME;AAAA;AAAA,kBAAK,WAAW,0FAAcuiB,SAAd,EAA0B,IAA1B,+CAAgC,MAAhC,EAAwC,IAAxC,iBAAhB;AACE,8CAAC,eAAD,IAAO,MAAMhH,SAAStF,EAAEhR,WAAX,KAA2BsW,SAAS,SAAT,CAAxC;AADF,eANF;AASE;AAAA;AAAA,kBAAK,WAAU,MAAf;AACGtF,kBAAEU,IAAF,CAAOtQ,MAAP,GAAgB,CAAhB,GAAoB,wBAAU4P,EAAEU,IAAZ,EAAkB,EAAEtQ,QAAQ,CAAV,EAAaoa,UAAU,EAAvB,EAAlB,IAAiD,KAArE,GAA6ExK,EAAEU;AADlF;AATF,aADF;AAcD,WAhBD,CAHJ;AAqBE;AAAA;AAAA,cAAQ,KAAI,QAAZ,EAAqB,WAAW,0BAAW,EAAE,UAAU,IAAZ,EAAkB,WAAWrZ,QAAQ,CAArC,EAAuC,iBAAiB,IAAxD,EAA8D,eAAe,IAA7E,EAAX,CAAhC,EAAiI,SAAS,mBAAM;AAAE,uBAAKqb,YAAL;AAAqB,eAAvK,EAAyK,UAAU4I,eAAnL;AACG,iBAAK9kB,KAAL,CAAWgmB,cAAX,GAA4B,MAA5B,GAAqC,KAAKhmB,KAAL,CAAW2X,oBAAX,GAAkC,IAAlC,GAA0CtU,cAAc,EAAd,IAAoBkN,uBAAOiU,WAAP,CAAmBC,kBAAnB,IAAyC,CAA/D,GAAqE,IAArE,GAA4EF,OAAOrK;AADnK;AArBF,SArCF;AAiEG,SAACrW,QAAD,IAAa;AAAA;AAAA;AACZ,mBAAM,0BADM;AAEZ,mBAAM,OAFM;AAGZ,uBAAU,OAHE;AAIZ,8BAJY;AAKZ,sBAAU,KALE;AAMZ,qBAAS,KAAKyH,YANF;AAOZ,qBAAS,KAAKrL,KAAL,CAAWC,OAPR;AAQZ,4BAAgB,IARJ;AASZ,0CATY;AAUZ,mBAAO,EAAC,UAAU,IAAX;AAVK;AAYd;AAAA;AAAA,cAAK,2BAA0B+lB,cAAOC,eAAP,CAAuB,GAAvB,CAA/B,EAA8D,OAAO,EAAClK,QAAQ,MAAT,EAAiBmK,eAAe,MAAhC,EAArE;AACE;AAAA;AAAA,gBAAK,WAAW,0BAAW,EAAE,qCAAqC,IAAvC,EAA6C,YAAY9V,SAASzG,MAAT,GAAkB6W,aAA3E,EAAX,CAAhB;AAEMpQ,uBAASzG,MAAT,IAAmB6W,aAAnB,IACA;AAAA;AAAA;AAEI,mCAAKpQ,QAAL,EAAe,UAACpD,IAAD,EAAOJ,KAAP,EAAiB;AAC9B,yBAAO,OAAKoU,aAAL,CAAmBhU,IAAnB,EAAyBJ,KAAzB,EAAgC,SAAhC,CAAP;AACD,iBAFD;AAFJ,eAHN;AAYMwD,uBAASzG,MAAT,GAAkB6W,aAAlB,IAAmC,KAAKD,oBAAL,CAA0B5U,MAA1B,EAAiCyE,QAAjC,EAA0CoQ,aAA1C;AAZzC,aADF;AAgBI;AAAA;AAAA,gBAAK,WAAU,WAAf,EAA2B,OAAO,EAAC2F,WAAW1X,SAAS2X,IAAT,CAAcC,YAAd,IAA4BjW,SAASzG,MAAT,GAAgB,CAAhB,GAAkB,GAAlB,GAAsB,GAAlD,CAAD,GAAyD,IAApE,EAA0EoS,QAAQ,oBAAlF,EAAlC;AACE;AAAA;AAAA,kBAAK,WAAU,MAAf;AAEI3T,4BAAYuB,MAAZ,IAAoB,CAApB,IAAuB;AAAA;AAAA,oBAAK,WAAU,uBAAf;AAAA;AAAA,iBAF3B;;AAKI;AACA,mCAAKvB,WAAL,EAAkB,UAAC4E,IAAD,EAAU;AAC1B,sBAAMJ,QAAMI,KAAKC,WAAjB;AACA,yBAAQ;AAAA;AAAA,sBAAK,KAAKL,QAAM,EAAhB,EAAoB,WAAU,UAA9B;AACN;AAAA;AAAA,wBAAK,WAAW,0BAAW,EAAC,QAAO,IAAR,EAAa,eAAcpM,gBAAcoM,KAAzC,EAAX,CAAhB;AACE;AAAA;AAAA,0BAAK,WAAW,0BAAW,EAAC,QAAO,IAAR,EAAX,CAAhB;AAA4CI,6BAAKiN;AAAjD,uBADF;AAEE;AAAA;AAAA,0BAAK,WAAW,0BAAW,EAAC,WAAU,IAAX,EAAX,CAAhB;AAEKjN,6BAAKzE,WAAL,IAAoB/B,SAASO,KAA7B,IAAsCiG,KAAKzE,WAAL,IAAoB/B,SAASwJ,IAAnE,IAA2EhD,KAAKzE,WAAL,IAAoB/B,SAASuI,GAAzG,GACE,yCAAO,eAAanC,KAApB;AACE,qCAAWoZ,cAAOM,eAAP,EADb;AAEE,mCAAS,mBAAM;AAAE,mCAAKtU,SAAL,CAAepF,KAAf,EAAsBI,KAAKzE,WAA3B,EAAwC3H,QAAQ,CAAR,GAAY0C,aAAZ,GAA4B,IAApE;AAA2E,2BAF9F,EAEgG,OAAO,2BAAe0J,KAAK5H,KAApB,CAFvG,GADF,GAKE,yCAAO,eAAawH,KAApB;AACE,qCAAWoZ,cAAOM,eAAP,EADb;AAEE,iCAAOtZ,KAAK2E,YAAL,IAAqB,CAArB,GAAyB3E,KAAKgN,MAA9B,GAAuChN,KAAK5H,KAFrD;AAGE,mCAAS;AAAA,mCAAK,OAAKiP,cAAL,CAAoBzH,KAApB,EAA2BI,IAA3B,EAAiClI,OAAjC,EAA0CsG,CAA1C,CAAL;AAAA,2BAHX;AAIE,kCAAQ;AAAA,mCAAK,OAAKgI,MAAL,CAAYxG,KAAZ,EAAmBxB,CAAnB,EAAsB,SAAtB,CAAL;AAAA,2BAJV;AAKE,mCAAS;AAAA,mCAAK,OAAKmI,WAAL,CAAiB3G,KAAjB,EAAwBI,IAAxB,EAA8BlI,OAA9B,EAAuCsG,CAAvC,CAAL;AAAA,2BALX;AAME,oCAAU;AAAA,mCAAK,OAAKoH,YAAL,CAAkB5F,KAAlB,EAAyBxB,CAAzB,EAA4B,SAA5B,CAAL;AAAA;AANZ;AAPN,uBAFF;AAmBE;AAAA;AAAA,0BAAM,WAAU,OAAhB,EAAwB,SAAS,mBAAM;AACjC,mCAAKgH,QAAL,CAAcxF,KAAd,EAAoBtJ,iBAAiB0J,KAAK1J,aAA1C,EAAwD0J,KAAKzE,WAA7D,EAA0E,SAA1E;AACD,2BAFL;AAGE,sDAAC,eAAD,IAAO,MAAK,SAAZ,EAAsB,WAAU,yBAAhC;AAHF;AAnBF,qBADM;AA2BJyE,yBAAKzE,WAAL,IAAkB/B,SAASuI,GAA3B,GACA;AAAA;AAAA,wBAAK,WAAU,QAAf,EAAwB,OAAO,EAAEwX,SAASvZ,KAAKzE,WAAL,IAAkB/B,SAASO,KAA3B,IAAoCiG,KAAKzE,WAAL,IAAkB/B,SAASuI,GAAhE,GAAqE,OAArE,GAA6E,MAAvF,EAA/B;AACE;AAAA;AAAA,0BAAM,WAAU,SAAhB;AAAA;AAAA,uBADF;AAEE;AAAA;AAAA;AAAO/B,6BAAKwZ;AAAZ;AAFF,qBADA,GAKA;AAAA;AAAA,wBAAK,WAAU,QAAf,EAAwB,OAAO,EAAED,SAASvZ,KAAKzE,WAAL,IAAkB/B,SAASO,KAA3B,IAAoCiG,KAAKzE,WAAL,IAAkB/B,SAASuI,GAAhE,GAAqE,OAArE,GAA6E,MAAvF,EAA/B;AACE;AAAA;AAAA,0BAAM,WAAU,IAAhB;AAAA;AAAA,uBADF;AAEE;AAAA;AAAA,0BAAM,WAAU,IAAhB;AAAsB/B,gCAAQA,KAAKpH;AAAnC,uBAFF;AAGE,+DAHF;AAIE;AAAA;AAAA,0BAAM,WAAU,YAAhB;AAAA;AAAA,uBAJF;AAKE;AAAA;AAAA,0BAAM,WAAU,IAAhB;AAAuB,mDAAeoH,KAAKtH,OAApB;AAAvB,uBALF;AAME,+DANF;AAOG9E,8BAAQ,CAAR,IAAa+kB,YAAb,IAA6BA,aAAahc,MAA1C,IAAoDgc,aAAaA,aAAahc,MAAb,GAAqB,CAAlC,EAAqCsD,WAArC,KAAqDD,KAAKC,WAA9G,IAA6H,CAACvJ,QAA9H,IACC;AAAA;AAAA,0BAAQ,SAAS,mBAAM;AACrB,mCAAK8P,aAAL,CAAmBlQ,aAAnB,EAAkC,cAAlC;AACD,2BAFD,EAEG,WAAU,4BAFb;AAE0C,sDAAC,eAAD,IAAO,MAAK,QAAZ,EAAqB,WAAU,oBAA/B,GAF1C;AAGE;AAAA;AAAA;AAAA;AAAA;AAHF;AARJ;AAhCI,mBAAR;AAiDD,iBAnDD;AANJ,eADF;AA6DE;AAAA;AAAA,kBAAK,WAAU,OAAf;AACE;AAAA;AAAA,oBAAK,WAAU,UAAf;AACGwB,0BAAQ2hB,YAAR,GAAqB,CAArB,IAA0B;AAAA;AAAA,sBAAK,WAAU,YAAf;AACzB;AAAA;AAAA;AAAA;AAAA,qBADyB;AAEzB;AAAA;AAAA;AAAO3hB,8BAAQ2hB;AAAf;AAFyB,mBAD7B;AAKE;AAAA;AAAA,sBAAK,WAAU,YAAf;AACE;AAAA;AAAA;AAAA;AAAA,qBADF;AAEE;AAAA;AAAA;AAAO3hB,8BAAQgB;AAAf;AAFF,mBALF;AASE;AAAA;AAAA,sBAAK,WAAU,YAAf;AACE;AAAA;AAAA;AAAA;AAAA,qBADF;AAEE;AAAA;AAAA;AAAOhB,8BAAQgV;AAAf;AAFF,mBATF;AAaE;AAAA;AAAA,sBAAK,WAAU,YAAf;AACE;AAAA;AAAA;AAAA;AAAA,qBADF;AAEE;AAAA;AAAA,wBAAM,WAAU,UAAhB;AAA4BhV,8BAAQmR;AAApC;AAFF,mBAbF;AAiBE;AAAA;AAAA,sBAAK,WAAU,YAAf,EAA4B,OAAO,EAACsQ,SAAQ,KAAK1M,WAAL,KAAmB,OAAnB,GAA2B,MAApC,EAAnC;AACE;AAAA;AAAA;AAAA;AAAA,qBADF;AAEE;AAAA;AAAA,wBAAM,WAAU,UAAhB;AAA4B,iDAAexU,KAAKqT,GAAL,CAAS5T,QAAQgV,UAAjB,CAAf;AAA5B;AAFF,mBAjBF;AAqBE;AAAA;AAAA,sBAAK,WAAU,YAAf,EAA4B,OAAO,EAACyM,SAAUpK,qBAAqBA,iBAAiBO,EAAjB,IAAuB,YAAvB,IAAuCP,iBAAiBO,EAAjB,IAAuB,iBAAnF,CAAD,IAA2GkC,eAA3G,IAA8HA,kBAAiB,CAA/I,GAAkJ,OAAlJ,GAA0J,MAApK,EAAnC;AACE;AAAA;AAAA;AAAA;AAAA,qBADF;AAEE;AAAA;AAAA,wBAAM,WAAU,UAAhB;AAA4B,iDAAevZ,KAAKqT,GAAL,CAASkG,eAAT,CAAf;AAA5B;AAFF;AArBF,iBADF;AA4BIhe,wBAAQ,CAAR,IAAa,CAAC8C,QAAd,IAA0B;AAAA;AAAA,oBAAK,SAAS,KAAKwb,sBAAnB,EAA2C,WAAU,iCAArD;AAAA;AAA2F,gDAAC,eAAD,IAAO,MAAK,SAAZ;AAA3F,iBA5B9B;AA8BE;AAAA;AAAA,oBAAK,WAAW,KAAK3Q,eAAL,GAAuB,cAAvB,GAAwC,UAAxD;AAEI,mBAAC,KAAKA,eAAN,IACA,8BAAC,kBAAD,IAAU,MAAK,QAAf,EAAwB,UAAU,KAAKmY,gBAAL,CAAsB1E,IAAtB,CAA2B,IAA3B,CAAlC;AAHJ;AA9BF;AA7DF,aAhBJ;AAmHI;AAAA;AAAA,gBAAK,WAAU,WAAf;AACE,sDAAM,WAAU,aAAhB,EAA8B,SAAS,KAAKzN,aAA5C,GADF;AAEE;AAAA;AAAA;AAAM;AAAA;AAAA,oBAAQ,WAAU,QAAlB,EAA2B,SAAS,KAAKlJ,YAAzC;AAAA;AAAA;AAAN,eAFF;AAGE;AAAA;AAAA;AAAM;AAAA;AAAA,oBAAQ,MAAK,SAAb,EAAuB,WAAW,KAAKkD,eAAL,GAAuB,SAAvB,GAAmC,QAArE,EAA+E,SAAS,KAAKnH,YAA7F;AACJ,8BAAU,KAAKqN,mBAAL,CAAyB3P,OAAzB,EAAkCsD,WAAlC,CADN;AAAA;AAAA;AAAN;AAHF;AAnHJ;AAZc,SAjEhB;AA2MGxE,oBAAY;AAAA;AAAA;AACX,mBAAM,0BADK;AAEX,mBAAM,OAFK;AAGX,uBAAU,OAHC;AAIX,8BAJW;AAKX,sBAAU,KALC;AAMX,qBAAS,KAAKyH,YANH;AAOX,qBAAS,KAAKrL,KAAL,CAAWC,OAPT;AAQX,4BAAgB,IARL;AASX,0CATW;AAUX,mBAAO,EAAC,UAAU,IAAX;AAVI;AAYX;AAAA;AAAA,cAAK,2BAA0B+lB,cAAOC,eAAP,CAAuB,GAAvB,CAA/B;AACE;AAAA;AAAA,gBAAK,WAAU,oBAAf;AACE;AAAA;AAAA,kBAAK,WAAU,KAAf;AACE;AAAA;AAAA,oBAAK,WAAU,UAAf;AACGnhB,0BAAQ2hB,YAAR,GAAqB,CAArB,IAA0B;AAAA;AAAA,sBAAK,WAAU,YAAf;AACzB;AAAA;AAAA;AAAA;AAAA,qBADyB;AAEzB;AAAA;AAAA;AAAO3hB,8BAAQ2hB;AAAf;AAFyB,mBAD7B;AAKE;AAAA;AAAA,sBAAK,WAAU,YAAf;AACE;AAAA;AAAA;AAAA;AAAA,qBADF;AAEE;AAAA;AAAA;AAAO3hB,8BAAQgB;AAAf;AAFF,mBALF;AASE;AAAA;AAAA,sBAAK,WAAU,YAAf;AACE;AAAA;AAAA;AAAA;AAAA,qBADF;AAEE;AAAA;AAAA;AAAOhB,8BAAQgV;AAAf;AAFF,mBATF;AAaE;AAAA;AAAA,sBAAK,WAAU,YAAf;AACE;AAAA;AAAA;AAAA;AAAA,qBADF;AAEE;AAAA;AAAA,wBAAM,WAAU,UAAhB;AAA4BhV,8BAAQmR;AAApC;AAFF,mBAbF;AAiBE;AAAA;AAAA,sBAAK,WAAU,YAAf,EAA4B,OAAO,EAACsQ,SAAQ,KAAK1M,WAAL,KAAmB,OAAnB,GAA2B,MAApC,EAAnC;AACE;AAAA;AAAA;AAAA;AAAA,qBADF;AAEE;AAAA;AAAA,wBAAM,WAAU,UAAhB;AAA4B,iDAAexU,KAAKqT,GAAL,CAAS5T,QAAQgV,UAAjB,CAAf;AAA5B;AAFF,mBAjBF;AAqBE;AAAA;AAAA,sBAAK,WAAU,YAAf,EAA4B,OAAO,EAACyM,SAAUpK,qBAAqBA,iBAAiBO,EAAjB,IAAuB,YAAvB,IAAuCP,iBAAiBO,EAAjB,IAAuB,iBAAnF,CAAD,IAA2GkC,eAA3G,IAA8HA,kBAAiB,CAA/I,GAAkJ,OAAlJ,GAA0J,MAApK,EAAnC;AACE;AAAA;AAAA;AAAA;AAAA,qBADF;AAEE;AAAA;AAAA,wBAAM,WAAU,UAAhB;AAA4B,iDAAevZ,KAAKqT,GAAL,CAASkG,eAAT,CAAf;AAA5B;AAFF;AArBF,iBADF;AA4BIhe,wBAAQ,CAAR,IAAa,CAAC8C,QAAd,IAA0B;AAAA;AAAA,oBAAK,SAAS,KAAKwb,sBAAnB,EAA2C,WAAU,iCAArD;AAAA;AAA2F,gDAAC,eAAD,IAAO,MAAK,SAAZ;AAA3F;AA5B9B,eADF;AAgCE;AAAA;AAAA,kBAAK,WAAU,QAAf;AAEI9W,4BAAYuB,MAAZ,IAAoB,CAApB,IAAuB;AAAA;AAAA,oBAAK,WAAU,uBAAf;AAAA;AAAA,iBAF3B;AAKI,mCAAKvB,WAAL,EAAkB,UAAC4E,IAAD,EAAO2Z,MAAP,EAAkB;AAAA,sBAC5BjjB,QAD4B,GACf,OAAK3D,KADU,CAC5B2D,QAD4B;;AAElC,sBAAI8f,UAAU,oBAAMpb,WAAN,EAAmB,aAAK;AAAE,2BAAOC,EAAEE,WAAF,KAAkB/B,SAAS4K,IAAlC;AAAuC,mBAAjE,CAAd;AACA;AACA,sBAAIqS,cAAckD,MAAlB;AACA,sBAAI,CAACjjB,QAAD,IAAa8f,OAAjB,EAA0B;AACxB,wBAAIxW,KAAKzE,WAAL,IAAoB/B,SAAS0K,EAA7B,IAAmClE,KAAKzE,WAAL,IAAoB/B,SAAS2K,GAApE,EAAyE;AACvE,6BAAO,IAAP;AACD,qBAFD,MAEO;AACL,0BAAIuS,SAAS,sBAAQtb,WAAR,EAAqB,aAAK;AAAE,+BAAOub,EAAEpb,WAAF,IAAiB/B,SAAS0K,EAA1B,IAAgCyS,EAAEpb,WAAF,IAAiB/B,SAAS2K,GAAjE;AAAsE,uBAAlG,CAAb;AACAsS,oCAAc,yBAAWC,MAAX,EAAmB,aAAK;AAAE,+BAAOrb,EAAEE,WAAF,IAAiByE,KAAKzE,WAA7B;AAA0C,uBAApE,CAAd;AACD;AACF;AACD,sBAAMqe,iBAAiB,yBAAWxe,WAAX,EAAwB,UAACC,CAAD,EAAO;AAAE,2BAAOA,EAAEE,WAAF,IAAiB/B,SAASO,KAAjC;AAAyC,mBAA1E,CAAvB;AACA,sBAAM8f,YAAY,sBAAQze,WAAR,EAAqB,UAACC,CAAD,EAAO;AAAE,2BAAOA,EAAEE,WAAF,IAAiB/B,SAASO,KAAjC;AAAyC,mBAAvE,CAAlB;AACA,sBAAI+f,uBAAuB,CAA3B;AACA,qCAAK1e,WAAL,EAAkB,UAACC,CAAD,EAAIY,CAAJ,EAAU;AAC1B,wBAAIZ,EAAEE,WAAF,KAAkB/B,SAASO,KAA/B,EAAsC+f,uBAAuB7d,CAAvB;AACvC,mBAFD;AAGA,sBAAK0d,SAAS,CAAT,IAAcE,UAAUld,MAAV,GAAmB,CAAjC,IAAsCgd,SAASG,oBAApD,EAA0E;AACxErD,kCAAcA,cAAcoD,UAAUld,MAAxB,GAAiC,CAA/C;AACD;;AAEDiF,0BAAQC,GAAR,CAAYzG,WAAZ;;AAEA,sBAAMwE,QAAQI,KAAKC,WAAnB;AACA,yBAAQD,KAAKzE,WAAL,IAAoB/B,SAASO,KAA7B,IAAsC,yBAAWqB,WAAX,EAAwB,UAACC,CAAD,EAAO;AAAE,2BAAOA,EAAEE,WAAF,IAAiB/B,SAASO,KAAjC;AAAyC,mBAA1E,KAA+E4f,MAArH,GAA8H,0CAA9H,GACN;AAAA;AAAA,sBAAK,KAAK/Z,QAAQ,EAAlB,EAAsB,WAAU,UAAhC;AACA;AAAA;AAAA,wBAAK,WAAW,0BAAW,EAAC,QAAO,IAAR,EAAa,eAAcpM,gBAAcoM,KAAzC,EAAX,CAAhB;AACI;AAAA;AAAA,0BAAK,WAAW,0BAAW,EAAE,QAAQ,IAAV,EAAX,CAAhB;AACE;AAAA;AAAA,4BAAK,WAAU,MAAf;AAAsB,wDAAC,eAAD,IAAO,MAAM2W,QAAQvW,KAAKzE,WAAb,KAA6Bgb,QAAQ,SAAR,CAA1C;AAAtB,yBADF;AAEE;AAAA;AAAA,4BAAK,WAAU,MAAf;AAAuBvW,+BAAKiN;AAA5B,yBAFF;AAGE;AAAA;AAAA,4BAAK,WAAU,QAAf;AAAyB,iCAAK1L,eAAL,GAAuB,EAAvB,GAA4B,OAAKnM,mBAAL,CAAyBqhB,WAAzB,KAAyC;AAA9F;AAHF,uBADJ;AAMI;AAAA;AAAA,0BAAK,WAAW,0BAAW,EAAE,WAAW,IAAb,EAAX,CAAhB;AAEKzW,6BAAKzE,WAAL,IAAoB/B,SAASO,KAA7B,IAAsCiG,KAAKzE,WAAL,IAAoB/B,SAASwJ,IAAnE,IAA2EhD,KAAKzE,WAAL,IAAoB/B,SAASuI,GAAzG,GAEE,yCAAO,eAAanC,KAApB;;AAEE,qCAAWoZ,cAAOM,eAAP,CAAuB,oBAAoB,OAAKlkB,mBAAL,CAAyBqhB,WAAzB,CAA3C,CAFb;AAGE,oCAAU,OAAKnb,iBAAL,CAAuB0E,KAAKzE,WAA5B,EAAyCJ,OAAzC,EAAkD7E,aAAlD,CAHZ;AAIE,mCAAS,mBAAM;AACb,gCAAI1C,QAAQ,CAAR,IAAaoM,KAAKzE,WAAL,IAAoB/B,SAASO,KAA9C,EAAqD;AACnD,kCAAI4e,gBAAgBA,aAAahc,MAAb,KAAwB,CAA5C,EAA+C;AAC7C,uCAAKwK,cAAL,CAAoBnH,IAApB,EAA0BJ,KAA1B,EAAiCtJ,aAAjC;AACD;AACF,6BAJD,MAIO;AACL,qCAAK6Q,cAAL,CAAoBnH,IAApB,EAA0BJ,KAA1B,EAAiCtJ,aAAjC,EAAgD,SAAhD;AACD;AACF,2BAZH;AAaE,iCAAO0J,KAAKzE,WAAL,IAAoB/B,SAASO,KAA7B,GAAqC,2BAC1C,sBAAQ,sBAAQqB,WAAR,EAAqB,UAAC2e,EAAD,EAAQ;AAAE,mCAAOA,GAAGxe,WAAH,IAAkB/B,SAASO,KAAlC;AAAyC,2BAAxE,CAAR,EAAmF,UAAUigB,GAAV,EAAe3e,CAAf,EAAkB;AACnG,mCAAOhD,KAAK4hB,GAAL,CAASD,GAAT,EAAc3e,EAAEjD,KAAhB,CAAP;AACD,2BAFD,EAEG,CAFH,CAD0C,CAArC,GAIH,2BAAe4H,KAAK5H,KAApB,CAjBN,GAFF,GAqBE,yCAAO,eAAawH,KAApB;AACE,qCAAWoZ,cAAOM,eAAP,CAAuB,oBAAoB,OAAKlkB,mBAAL,CAAyBqhB,WAAzB,CAA3C,CADb;AAEE,oCAAU,OAAKnb,iBAAL,CAAuB0E,KAAKzE,WAA5B,EAAyCJ,OAAzC,EAAkD7E,aAAlD,KAAoE,OAAK+N,iBAAL,CAAuBrE,KAAKzE,WAA5B,CAFhF;AAGE,iCAAOyE,KAAK2E,YAAL,IAAqB,CAArB,GAAyB3E,KAAKgN,MAA9B,GAAuChN,KAAK5H,KAHrD;AAIE,mCAAS;AAAA,mCAAK,OAAKiP,cAAL,CAAoBzH,KAApB,EAA2BI,IAA3B,EAAiClI,OAAjC,EAA0CsG,CAA1C,EAA6C,SAA7C,CAAL;AAAA,2BAJX;AAKE,kCAAQ;AAAA,mCAAK,OAAKgI,MAAL,CAAYxG,KAAZ,EAAmBxB,CAAnB,EAAsB,SAAtB,CAAL;AAAA,2BALV;AAME,mCAAS;AAAA,mCAAK,OAAKmI,WAAL,CAAiB3G,KAAjB,EAAwBI,IAAxB,EAA8BlI,OAA9B,EAAuCsG,CAAvC,CAAL;AAAA,2BANX;AAOE,oCAAU;AAAA,mCAAK,OAAKoH,YAAL,CAAkB5F,KAAlB,EAAyBxB,CAAzB,EAA4B,SAA5B,CAAL;AAAA;AAPZ;AAvBN;AANJ,qBADA;AA0CG4B,yBAAKzE,WAAL,IAAoB/B,SAASuI,GAA7B,IAAoC;AAAA;AAAA,wBAAK,WAAU,QAAf;AACnC;AAAA;AAAA,0BAAM,WAAU,SAAhB;AAAA;AAAA,uBADmC;AAEnC;AAAA;AAAA;AAAO/B,6BAAKwZ;AAAZ;AAFmC,qBA1CvC;AA8CG,uCAAK,sBAAQpe,WAAR,EAAqB,UAAC2e,EAAD,EAAQ;AAAE,6BAAO/Z,KAAKzE,WAAL,IAAoB/B,SAASO,KAA7B,IAAsClB,WAAWkhB,GAAG3hB,KAAH,IAAY,CAAvB,KAA6B,CAAnE,IAAwE2hB,GAAGxe,WAAH,IAAkB/B,SAASO,KAA1G;AAAiH,qBAAhJ,CAAL,EAAwJ,UAACsB,CAAD,EAAO;AAC9J,6BAAO;AAAA;AAAA,0BAAK,WAAU,QAAf;AACL;AAAA;AAAA;AAAA;AAAA,yBADK;AAGHzH,gCAAQ,CAAR,GACC;AAAA;AAAA;AAAQyH,+BAAKA,EAAEzC;AAAf,yBADD,GAEC;AAAA;AAAA;AAAQyC,4BAAEtD,MAAF,IAAYsD,EAAEtD,MAAF,CAASmiB;AAA7B,yBALE;AAOL;AAAA;AAAA,4BAAM,WAAU,IAAhB;AAAsB,qDAAe7e,EAAEjD,KAAjB;AAAtB,yBAPK;AAQL;AAAA;AAAA,4BAAM,WAAU,YAAhB;AAAA;AAAA,yBARK;AASL,iEATK;AAUJxE,gCAAQ,CAAR,IAAa+kB,YAAb,IAA6BA,aAAahc,MAA1C,IAAoDgc,aAAaA,aAAahc,MAAb,GAAqB,CAAlC,EAAqCsD,WAArC,KAAqD5E,EAAE4E,WAA3G,IACD;AAAA;AAAA,4BAAQ,SAAS;AAAA,qCAAM,OAAKkH,cAAL,CAAoBnH,IAApB,EAA0BJ,KAA1B,EAAiCtJ,aAAjC,CAAN;AAAA,6BAAjB,EAAwE,WAAU,4BAAlF;AAA+G,wDAAC,eAAD,IAAO,MAAK,QAAZ,EAAqB,WAAU,oBAA/B,GAA/G;AACE;AAAA;AAAA;AAAA;AAAA;AADF;AAXK,uBAAP;AAgBD,qBAjBA;AA9CH,mBADF;AAkED,iBA5FD;AALJ;AAhCF,aADF;AAsIE;AAAA;AAAA,gBAAK,WAAU,WAAf;AACE,sDAAM,WAAU,aAAhB,EAA8B,SAAS,KAAKiR,aAA5C,GADF;AAEE;AAAA;AAAA;AAAM;AAAA;AAAA,oBAAQ,WAAU,QAAlB,EAA2B,SAAS,KAAKlJ,YAAzC;AAAA;AAAA;AAAN,eAFF;AAGE;AAAA;AAAA;AAAM;AAAA;AAAA,oBAAQ,MAAK,SAAb,EAAuB,WAAW,KAAKkD,eAAL,GAAuB,SAAvB,GAAmC,QAArE,EAA+E,SAAS,KAAKnH,YAA7F;AACJ,8BAAU,KAAKqN,mBAAL,CAAyB3P,OAAzB,EAAkCsD,WAAlC,CADN;AAAA;AAAA;AAAN;AAHF;AAtIF;AAZW,SA3Mf;AAsWE;AAAA;AAAA;AACE,qCAAsB,KAAKmG,eAAL,GAAuB,aAAvB,GAAuC,EAA7D,CADF;AAEE,mBAAM,OAFR;AAGE,qBAAS,KAAKvO,KAAL,CAAWE,UAHtB;AAIE,0BAAc,KAJhB;AAKE,4BAAgB,IALlB;AAME,mBAAO,MANT;AAOE,sBAAU,KAAKiG,eAPjB;AAQE,sBAAU,KARZ;AASE,sBAAW,CAAC,KAAKoI,eAAN,GAAwB,IAAxB,GAA+B,KAT5C;AAUE,oBAAQ,IAVV;AAWE,oBAAQ;AAAA;AAAA,gBAAK,WAAU,QAAf;AACN;AAAA;AAAA,kBAAQ,SAAS,KAAKpI,eAAtB;AAAA;AAAA,eADM;AAEN;AAAA;AAAA,kBAAQ,MAAK,SAAb,EAAuB,UAAUtB,eAAeA,YAAYsiB,OAAZ,IAAqB,EAArE,EAAyE,SAAS,KAAK9Z,WAAvF;AAAA;AAAA;AAFM;AAXV;AAgBE;AAAA;AAAA;AACE;AAAA;AAAA,gBAAK,WAAU,MAAf;AACGyD,2BAAa;AAAA;AAAA,kBAAK,WAAW,0BAAW,EAAC,QAAO,IAAR,EAAa,aAAYA,SAAzB,EAAX,CAAhB;AACZ;AAAA;AAAA,oBAAK,WAAU,iBAAf;AAAmCjM,iCAAeA,YAAYE,MAA3B,IAAqCF,YAAYE,MAAZ,CAAmBnE,IAAzD,IAAkE;AAApG,iBADY;AAEZ;AAAA;AAAA,oBAAK,WAAU,MAAf;AAAA;AAAA;AAFY,eADhB;AAKE;AAAA;AAAA,kBAAK,WAAU,KAAf;AACE,uDAAK,WAAU,MAAf,GADF;AAEE,uDAAK,WAAU,MAAf,GAFF;AAGE,uDAAK,WAAU,MAAf;AAHF,eALF;AAUE;AAAA;AAAA,kBAAK,WAAW,0BAAW,EAAC,WAAU,IAAX,EAAgB,aAAY,CAACkQ,SAA7B,EAAuC,aAAYA,SAAnD,EAAX,CAAhB;AACE;AAAA;AAAA,oBAAK,WAAU,OAAf;AAAwBjM,iCAAe,2BAAeA,YAAYa,OAA3B;AAAvC,iBADF;AAEE;AAAA;AAAA,oBAAK,WAAU,MAAf;AAAA;AAAA;AAFF,eAVF;AAcE;AAAA;AAAA,kBAAK,WAAU,KAAf;AACE,uDAAK,WAAU,MAAf,GADF;AAEE,uDAAK,WAAU,MAAf,GAFF;AAGE,uDAAK,WAAU,MAAf;AAHF,eAdF;AAmBE;AAAA;AAAA,kBAAK,WAAW,0BAAW,EAAC,aAAY,IAAb,EAAkB,aAAY,CAACoL,SAA/B,EAAyC,aAAYA,SAArD,EAAX,CAAhB;AACE;AAAA;AAAA,oBAAK,WAAU,OAAf;AAAwBjM,iCAAe,2BAAeQ,KAAK2N,GAAL,CAAS,CAAT,EAAW3N,KAAKC,GAAL,CAAST,YAAYU,SAArB,EAA+BV,YAAYa,OAA3C,CAAX,CAAf;AAAvC,iBADF;AAEE;AAAA;AAAA,oBAAK,WAAU,MAAf;AAAA;AAAA;AAFF;AAnBF,aADF;AAyBE;AAAA;AAAA,gBAAK,WAAU,IAAf;AACE;AAAA;AAAA;AAAA;AAAA,eADF;AAEE;AAAA;AAAA;AAEE;AACI,wBAAK,MADT;AAEI,+BAAY,iFAFhB;AAGI,yCAAqB,KAAKlG,WAAL,KAAqB,IAArB,IAA6B,KAAKoiB,YAAL,KAAsB,CAAnD,IAAwD,KAAKrT,eAAL,KAAyB,IAAlF,GAA0F,MAA1F,GAAmG,EAAvH,CAHJ;AAII,4BAAU,kBAACnD,CAAD;AAAA,2BAAO,OAAK4R,WAAL,CAAiB5R,EAAEsH,MAAF,CAAStN,KAA1B,CAAP;AAAA,mBAJd;AAKI,gCAAcP,eAAeA,YAAYe,aAL7C;AAMI,yBAAO5D,QANX;AAOI,uBAAK;AAAA,2BAAS,OAAK8J,QAAL,GAAe3G,KAAxB;AAAA,mBAPT;AAQI;AAAA,0GACE,mBAAOiG,CAAP;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,oCACKA,EAAEgc,OAAF,IAAW,EADhB;AAAA;AAAA;AAAA;;AAEQC,kCAFR,GAEeC,KAAKC,KAAL,CAAW,IAAID,IAAJ,EAAX,CAFf;;AAAA,oCAGQ,OAAK3F,sBAAL,IAAgC0F,OAAO,OAAKnF,aAAZ,GAA4B,GAHpE;AAAA;AAAA;AAAA;;AAIMnc,gDAAQkB,IAAR,CAAa,gBAAb;AACA,qCAAKib,aAAL,GAAqB,IAArB;AACA,qCAAK3a,QAAL,CAAc;AACZvF,0CAAU;AADE,+BAAd;AANN;;AAAA;AAWI,qCAAKkgB,aAAL,GAAqB,IAArB;AAXJ;AAAA,qCAYU,OAAKnV,OAAL,CAAa3B,EAAEsH,MAAF,CAAStN,KAAtB,CAZV;;AAAA;AAaWN,sCAbX,GAasB,OAAKjB,KAb3B,CAaWiB,OAbX;;AAcI,kCAAI,CAACA,SAAQD,WAAR,CAAoBe,aAAzB,EAAwC;AACtC,uCAAK2B,QAAL,CAAc;AACZigB,4CAAU;AADE,iCAAd;AAGD;AAlBL;AAAA;;AAAA;AAmBS,kCAAI,CAAC,OAAKtF,aAAN,IAAuB9W,EAAEgc,OAAF,KAAc,CAAzC,EAA4C;AACjD,uCAAKlF,aAAL,GAAqBoF,KAAKC,KAAL,CAAW,IAAID,IAAJ,EAAX,CAArB;AACD;;AArBH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBADF;;AAAA;AAAA;AAAA;AAAA,qBARJ;AAiCI,2BAAS,iBAAClc,CAAD,EAAK;AACV,2BAAKsS,WAAL,GAAmB,OAAK5R,QAAL,CAAc3G,KAAjC;AACA,qBAAC,OAAKnF,KAAL,CAAWO,gBAAZ,IAAgCmN,mBAAS+Z,IAAT,CAAc,UAACjjB,CAAD,EAAK;AAC/C,0BAAMY,QAAQsI,mBAAS4V,WAAT,CAAqB,OAAK5F,WAA1B,EAAuC,OAAKA,WAAL,CAAiBtY,KAAxD,EAA+DZ,CAA/D,CAAd;AACA,6BAAKwY,WAAL,CAAiB5X,KAAjB;AACC,qBAH2B,EAGzB,OAAK+X,eAHoB,EAGH,OAAK/W,kBAHF,GAAhC;AAIC,mBAvCT;AAyCI,0BAAQ,gBAACgF,CAAD,EAAK;AACXsC,uCAASC,KAAT;AACD;AA3CL;AAFF,eAFF;AAmDI,mBAAKnO,WAAL,KAAqB,IAArB,IAA6B,KAAKoiB,YAAL,KAAsB,CAAnD,IACA,8BAAC,eAAD,IAAO,WAAU,MAAjB,EAAwB,SAAS,KAAKld,eAAtC,EAAuD,MAAK,MAA5D,GApDJ;AAuDI,mBAAK6J,eAAL,IACA,8BAAC,eAAD,IAAO,MAAK,UAAZ,EAAuB,WAAU,MAAjC,EAAwC,SAAS,KAAKwP,iBAAtD,GAxDJ;;AA2DI;AACA,mBAAKxP,eAAL,IACA,8BAAC,cAAD,IAAM,KAAK;AAAA,yBAAQ,OAAKyP,OAAL,GAAemB,IAAvB;AAAA,iBAAX,EAAwC,UAAU,KAAKb,eAAvD;AA7DJ,aAzBF;AAyFE;AAAA;AAAA,gBAAK,WAAU,YAAf;AACE;AAAA;AAAA;AAAA;AAAA,eADF;AAEE;AAAA;AAAA;AAAOxZ,wBAAQgV;AAAf;AAFF,aAzFF;AAiGE;AAAA;AAAA,gBAAK,WAAU,yBAAf;AACE;AAAA;AAAA;AAAA;AAAA,eADF;AAEE;AAAA;AAAA;AAwBE;AACE,sBAAG,eADL;AAEE,wBAAK,MAFP;AAGE,6BAAWkM,cAAOM,eAAP,CAAuB,OAAvB,CAHb;AAIE,yBAAOvkB,YAJT;AAKE,4BAAU,kBAAC2lB,KAAD,EAAS;AAAC,2BAAKliB,mBAAL,CAAyBkiB,MAAMhV,MAAN,CAAatN,KAAtC,EAA4CC,KAAKC,GAAL,CAAST,YAAYU,SAArB,EAA+BV,YAAYa,OAA3C,CAA5C;AAAiG,mBALvH;AAME,gCAAcb,eAAe,2BAAesD,UAAQtD,YAAYO,KAApB,GAA0BC,KAAKC,GAAL,CAAST,YAAYO,KAArB,EAA2BP,YAAYU,SAAvC,EAAiDV,YAAYa,OAA7D,CAAzC,CAN/B;AAOE,uBAAK;AAAA,2BAAO,OAAK,gBAAL,IAAyBiiB,MAAhC;AAAA,mBAPP;AAQE,2BAAS,iBAACvc,CAAD,EAAK;AACZ,2BAAKlG,QAAL,GAAc,gBAAd;AACAwI,uCAAS+Z,IAAT,CAAc,UAACjjB,CAAD,EAAK;AACf,0BAAMY,QAAQsI,mBAAS4V,WAAT,CAAqB,OAAK,OAAKpe,QAAV,EAAoBC,KAAzC,EAAgD,OAAK,OAAKD,QAAV,EAAoBC,KAApB,CAA0BC,KAA1E,EAAiFZ,CAAjF,CAAd;AACA,6BAAKgB,mBAAL,CAAyBJ,KAAzB,EAA+BC,KAAKC,GAAL,CAAST,YAAYU,SAArB,EAA+BV,YAAYa,OAA3C,CAA/B;AACC,qBAHL,EAGO,OAAKuV,YAHZ,EAG0B,OAAKC,eAH/B;AAIC,mBAdL;AAgBE,0BAAQ,gBAAC9P,CAAD,EAAK;AACXsC,uCAASC,KAAT;AACA,2BAAKnI,mBAAL,CAAyB,2BAAe,OAAKG,cAAL,CAAoBR,KAApB,CAA0BC,KAAzC,CAAzB,EAAyEC,KAAKC,GAAL,CAAST,YAAYU,SAArB,EAA+BV,YAAYa,OAA3C,CAAzE;AACD;AAnBH;AAxBF;AAFF,aAjGF;AAmJI,aAAChC,QAAD,IAAa;AAAA;AAAA,gBAAK,WAAU,UAAf;AACX;AAAA;AAAA,kBAAM,WAAU,OAAhB;AAAA;AAAA,eADW;AAEX;AAAA;AAAA,kBAAM,WAAU,gBAAhB;AAAA;AAAoC/B;AAApC,eAFW;AAGX;AAAA;AAAA,kBAAM,SAAS,KAAKud,sBAApB,EAA4C,WAAU,iCAAtD;AAAA;AAA4F,8CAAC,eAAD,IAAO,MAAK,MAAZ;AAA5F;AAHW,aAnJjB;AAyJE;AAAA;AAAA,gBAAK,WAAU,OAAf;AAAwBra,6BAAeA,YAAYsiB;AAAnD,aAzJF;AA0JG,aAAC,CAAC,KAAKtjB,KAAL,CAAWkB,MAAZ,IAAsB,CAAC,KAAKlB,KAAL,CAAWkB,MAAX,CAAkBuH,EAA1C,KAAiD;AAAA;AAAA,gBAAK,WAAU,UAAf;AAAA;AAAA;AA1JpD;AAhBF,SAtWF;AAmhBE;AAAA;AAAA;AACE,2BAAkB0Z,cAAOC,eAAP,CAAuB,GAAvB,EAA4B,cAA5B,CAAlB,UAAiE,KAAK1X,eAAL,GAAuB,aAAvB,GAAuC,EAAxG,CADF;AAEE,mBAAM,OAFR;AAGE,qBAAS,KAAKvO,KAAL,CAAWK,cAHtB;AAIE,0BAAc,KAJhB;AAKE,4BAAgB,IALlB;AAME,mBAAO,MANT;AAOE,sBAAU,KAAKqM,mBAPjB;AAQE,sBAAU,KARZ;AASE,sBAAW,CAAC,KAAK6B,eAAN,GAAwB,IAAxB,GAA+B,KAT5C;AAUE,oBAAQ,IAVV;AAWE,oBAAQ;AAAA;AAAA,gBAAK,WAAU,QAAf;AACN;AAAA;AAAA,kBAAM,WAAU,aAAhB;AAAA;AAAA,eADM;AAEN;AAAA;AAAA,kBAAQ,SAAS,KAAK7B,mBAAtB;AAAA;AAAA,eAFM;AAGN;AAAA;AAAA,kBAAQ,MAAK,SAAb,EAAuB,SAAS,KAAKG,eAArC;AAAA;AAAA;AAHM;AAXV;AAiBE;AAAA;AAAA;AACC,0CAAC,sBAAD;AACC,+BAAiB,KAAKF,eADvB;AAEC,gCAAkB,KAAK3M,KAAL,CAAWkC,gBAF9B;AAGC,0BAAY,KAAKlC,KAAL,CAAWwB,WAHxB;AADD;AAjBF,SAnhBF;AA6iBE;AAAA;AAAA;AACE,qCAAsB,KAAK+M,eAAL,GAAuB,aAAvB,GAAuC,EAA7D,wBADF;AAEE,mBAAM,OAFR;AAGE,qBAAS,KAAKvO,KAAL,CAAWM,eAHtB;AAIE,8BAAkB,KAJpB;AAKE,4BAAgB,IALlB;AAME,oBAAQ,IANV;AAOE,sBAAU,KAAKsN,kBAPjB;AAQE,sBAAU,KARZ;AASE,sBAAW,CAAC,KAAKW,eAAN,GAAwB,IAAxB,GAA+B,KAT5C;AAUE,mBAAM,0BAVR;AAWE,oBAAQ;AAXV,uBAYU;AAAA;AAAA,cAAK,WAAU,QAAf;AACN;AAAA;AAAA,gBAAQ,SAAS,KAAKX,kBAAtB;AAAA;AAAA,aADM;AAEN;AAAA;AAAA,gBAAQ,MAAK,SAAb,EAAuB,UAAU1M,YAAjC,EAA+C,SAAS,KAAK2M,cAA7D;AAAA;AAAA;AAFM,WAZV;AAiBE;AAAA;AAAA,cAAK,WAAU,iBAAf;AACE;AAAA;AAAA,gBAAK,WAAU,WAAf;AACE;AAAA;AAAA,kBAAK,WAAU,KAAf;AAAA;AAAA,eADF;AAEE;AAAA;AAAA,kBAAK,WAAU,KAAf;AACE,8DAAO,QAAP;AACE,6BAAU,SADZ;AAEE,+BAAY,mDAFd;AAGE,yBAAO,EAAEgO,OAAO,GAAT,EAAcE,QAAQ,EAAtB,EAHT;AAIE,6BAAW,CAJb;AAKE,yBAAOhb,OALT;AAME,uBAAK;AAAA,2BAAS,OAAK6mB,cAAL,GAAsBziB,KAA/B;AAAA,mBANP;AAOE,4BAAU;AAAA,2BAAS,OAAKkJ,WAAL,CAAiB,SAAjB,EAA4BjJ,MAAMsN,MAAN,CAAatN,KAAzC,CAAT;AAAA,mBAPZ;AAQE,0BAAQ;AAAA,2BAAS,OAAKkJ,UAAL,CAAgB,SAAhB,CAAT;AAAA,mBARV;AASE,gCAAc;AAAA,2BAAM,OAAKJ,eAAL,CAAqB,SAArB,CAAN;AAAA;AAThB;AADF;AAFF,aADF;AAiBE;AAAA;AAAA,gBAAK,WAAU,WAAf;AACE;AAAA;AAAA,kBAAK,WAAU,KAAf;AAAA;AAAA,eADF;AAEE;AAAA;AAAA,kBAAK,WAAU,KAAf;AACE,8DAAO,QAAP;AACE,6BAAU,SADZ;AAEE,+BAAY,mDAFd;AAGE,yBAAO,EAAE2N,OAAO,GAAT,EAAcE,QAAQ,EAAtB,EAHT;AAIE,6BAAW,CAJb;AAKE,yBAAO/a,cALT;AAME,uBAAK;AAAA,2BAAS,OAAKoN,kBAAL,GAA0BjJ,KAAnC;AAAA,mBANP;AAOE,4BAAU;AAAA,2BAAS,OAAKkJ,WAAL,CAAiB,gBAAjB,EAAmCjJ,MAAMsN,MAAN,CAAatN,KAAhD,CAAT;AAAA,mBAPZ;AAQE,0BAAQ;AAAA,2BAAS,OAAKkJ,UAAL,CAAgB,gBAAhB,CAAT;AAAA,mBARV;AASE,gCAAc;AAAA,2BAAM,OAAKJ,eAAL,CAAqB,gBAArB,CAAN;AAAA;AAThB;AADF;AAFF;AAjBF;AAjBF,SA7iBF;AAumBE;AAAA;AAAA;AACE,qCAAsB,KAAKK,eAAL,GAAuB,aAAvB,GAAuC,EAA7D,CADF;AAEE,mBAAM,OAFR;AAGE,qBAAS,KAAKvO,KAAL,CAAWG,UAHtB;AAIE,0BAAc,KAJhB;AAKE,kBAAM,KAAKgP,WALb;AAME,4BAAgB,IANlB;AAOE,sBAAU,KAAKE,eAPjB;AAQE,sBAAW,CAAC,KAAKd,eAAN,GAAwB,IAAxB,GAA+B,KAR5C;AASE,mBAAOa,cAAcI,MAAd,GAAqB,IAT9B;AAUE,oBAAQ,IAVV;AAWE,oBAAQ;AAAA;AAAA,gBAAK,WAAU,QAAf;AACN;AAAA;AAAA,kBAAQ,SAAS,KAAKH,eAAtB;AAAA;AAAA,eADM;AAEN;AAAA;AAAA,kBAAQ,MAAK,SAAb,EAAuB,UAAUxK,eAAeA,YAAYsiB,OAAZ,IAAqB,EAArE,EAAyE,SAAS,KAAKhY,WAAvF;AAAA;AAAA;AAFM;AAXV;AAgBE;AAAA;AAAA;AACCtK,2BAAe,CAACA,YAAYvB,aAA5B,IAA6C;AAAA;AAAA,gBAAK,WAAU,MAAf;AACxC;AAAA;AAAA,kBAAK,WAAU,MAAf;AAAuB8L,8BAAcI,MAArC;AAAA;AAAA,eADwC;AAExC;AAAA;AAAA,kBAAK,WAAU,MAAf;AACE;AAAA;AAAA;AAEE;AACE,0BAAK,MADP;AAEE,+DAAqBJ,cAAcI,MAAnC,6BAFF;AAGE,+BAAU,OAHZ;AAIE,wBAAG;AACH;AACA;AANF,sBAOE,KAAK;AAAA,6BAAS,OAAKP,QAAL,GAAe9J,KAAxB;AAAA,qBAPP;AAQE,+BACE,mBAACiG,CAAD,EAAK;AAAC,0BAAGA,EAAEgc,OAAF,IAAW,EAAd,EAAiB;AAAC,+BAAKvT,MAAL,CAAYzI,EAAEsH,MAAF,CAAStN,KAArB;AAA4B;AAAC,qBATzD;AAWE,6BAAS,oBAAK;AACZ,6BAAKsY,WAAL,GAAmB,OAAKzO,QAAL,CAAc9J,KAAjC;AACAuI,yCAAS+Z,IAAT,CAAc,UAACjjB,CAAD,EAAO;AACnB,4BAAMY,QAAQsI,mBAAS4V,WAAT,CAAqB,OAAK5F,WAA1B,EAAuC,OAAKA,WAAL,CAAiBtY,KAAxD,EAA+DZ,CAA/D,CAAd;AACA,+BAAK4Y,WAAL,CAAiBhY,KAAjB,EAAuB,IAAvB;AACD,uBAHD,EAGG,OAAKmY,eAHR,EAGyB,OAAKC,kBAH9B;AAID,qBAjBH;AAkBE,4BAAQ,gBAACpS,CAAD,EAAO;AAAEsC,yCAASC,KAAT,GAAkB,OAAKsB,QAAL,CAAc9J,KAAd,CAAoBC,KAApB,GAA4B,EAA5B;AAAiC;AAlBtE;AAFF,iBADF;AAwBE;AAAA;AAAA,oBAAK,WAAU,MAAf;AAAuBP,iCAAeA,YAAYsiB;AAAlD;AAxBF,eAFwC;AA4BxC;AAAA;AAAA,kBAAK,WAAU,MAAf;AACE;AAAA;AAAA,oBAAQ,iBAAc,KAAKnnB,KAAL,CAAW8B,WAAX,GAAyB,uBAAzB,GAAmD,cAAjE,CAAR,EAA2F,SAAS,KAAKqf,WAAzG;AAAA;AAAA,iBADF;AAEE;AAAA;AAAA,oBAAQ,iBAAc,CAAC,KAAKnhB,KAAL,CAAW8B,WAAZ,GAA0B,uBAA1B,GAAoD,cAAlE,CAAR,EAA4F,SAAS,KAAKqf,WAA1G;AAAA;AAAA,iBAFF;AAGE;AAAA;AAAA,oBAAM,WAAU,WAAhB;AAAA;AAAA;AAHF,eA5BwC;AAkCtC,mBAAK5S,eAAL,IACA;AAAA;AAAA,kBAAK,WAAU,MAAf;AACE,8CAAC,eAAD,IAAO,MAAK,UAAZ,EAAuB,WAAU,MAAjC,EAAwC,SAAS,KAAKwP,iBAAtD,GADF;AAEE,8CAAC,cAAD,IAAM,KAAK;AAAA,2BAAQ,OAAKC,OAAL,GAAemB,IAAvB;AAAA,mBAAX,EAAwC,UAAU,KAAKZ,eAAvD;AAFF;AAnCsC,aAD9C;AA0CI;AAAA;AAAA,gBAAK,WAAU,WAAf;AACE;AAAA;AAAA,kBAAK,WAAU,MAAf;AAEE1Z,+BAAeA,YAAYyK,IAA3B,IAAmCzK,YAAYyK,IAAZ,CAAiB3F,MAAjB,GAA0B,CAA7D,GAAiE,mBAAK9E,YAAYyK,IAAZ,IAAoB,EAAzB,EAA4B,UAACqE,CAAD,EAAG/G,KAAH,EAAW;AACtG,sBAAI,CAAC,OAAK5M,KAAL,CAAW8B,WAAZ,IAA2B,CAAC6R,EAAE7L,KAAlC,EAAyC;AACvC;AACD;AACD,sBAAI,OAAK9H,KAAL,CAAW8B,WAAX,IAA2B6R,EAAE7L,KAAF,IAAW6L,EAAE7L,KAAF,KAAY,CAAtD,EAA0D;AACxD;AACD;AACD,yBAAQ;AAAA;AAAA,sBAAK,KAAK8E,QAAQ,EAAlB,EAAsB,WAAU,SAAhC;AAEH,qBAAC+G,EAAEkU,eAAH,IAAsBlU,EAAEkU,eAAF,IAAqB,aAA5C,GACE;AAAA;AAAA,wBAAK,yBAAsBlU,EAAEmU,QAAF,GAAa,aAAb,GAA6B,iBAAnD,CAAL;AACE;AAAA;AAAA,0BAAK,WAAU,QAAf;AACE;AAAA;AAAA;AAAOnU,4BAAEoU;AAAT,yBADF;AAEE;AAAA;AAAA;AAAA;AAAA;AAFF,uBADF;AAKE;AAAA;AAAA,0BAAK,WAAU,QAAf;AAAA;AAAA;AALF,qBADF,GASE;AAAA;AAAA,wBAAK,yBAAsBpU,EAAEmU,QAAF,GAAa,aAAb,GAA6B,iBAAnD,CAAL;AACE;AAAA;AAAA,0BAAK,WAAU,QAAf;AACE;AAAA;AAAA;AAAOE,6CAAMC,OAAN,CAActU,EAAEuU,WAAF,GAAgB,EAA9B;AAAP,yBADF;AAEE;AAAA;AAAA;AAAA;AAAA;AAFF,uBADF;AAKE;AAAA;AAAA,0BAAK,WAAU,QAAf;AAAA;AAAA;AALF,qBAXE;AAmBN;AAAA;AAAA,wBAAK,WAAW,0BAAW,UAAX,EAAuB,EAAE,oBAAoBvU,EAAEpE,OAAxB,EAAvB,CAAhB,EAA2E,SAAS,iBAACnE,CAAD;AAAA,iCAAOuI,EAAEmU,QAAF,GAAa,OAAKpU,UAAL,CAAgBC,CAAhB,EAAmB,OAAK5T,KAAL,CAAW8G,GAA9B,CAAb,GAAkD,IAAzD;AAAA,yBAApF;AACG8M,wBAAEpE,OAAF,GAAY,8BAAC,eAAD,IAAO,WAAU,yBAAjB,EAA2C,MAAK,YAAhD,GAAZ,GAA6E,wCAAM,iBAAcoE,EAAEmU,QAAF,GAAa,aAAb,GAA6B,cAA3C,CAAN,GADhF;AAEGnU,wBAAEpE,OAAF,GAAY;AAAA;AAAA,0BAAK,WAAU,0CAAf;AAA2DoE,0BAAEsG;AAA7D,uBAAZ,GAAuF;AAAA;AAAA,0BAAK,WAAU,4BAAf;AAA6CtG,0BAAEsG;AAA/C,uBAF1F;AAIItG,wBAAEwU,WAAF,GACE;AAAA;AAAA,0BAAK,WAAU,4BAAf;AAA4C;AAAA;AAAA;AAAOxU,4BAAEwU;AAAT;AAA5C,uBADF,GAEE;AAAA;AAAA,0BAAK,WAAU,4BAAf;AAA4C;AAAA;AAAA;AAAA;AAAA,yBAA5C;AAA8D;AAAA;AAAA;AAAOxU,4BAAEyU;AAAT,yBAA9D;AAAuF;AAAA;AAAA;AAAA;AAAA;AAAvF,uBANN;AASIzU,wBAAE0U,OAAF,GAAY;AAAA;AAAA,0BAAK,WAAU,qCAAf;AAAqD;AAAA;AAAA;AAAO1U,4BAAE0U;AAAT;AAArD,uBAAZ,GAAkG;AATtG,qBAnBM;AA+BN,2DAAK,WAAU,WAAf,GA/BM;AAgCN,2DAAK,WAAU,cAAf;AAhCM,mBAAR;AAkCD,iBAzCgE,CAAjE,GAyCK,8BAAC,mCAAD;AACL,yBAAO,OADF;AAEL,oCAAkB,EAAE,cAAc,MAAhB,EAAwBC,iBAAiB,aAAzC,EAFb;AAGL,yBAAO,EAAEC,eAAe,KAAjB,EAAwBC,UAAU,EAAC3M,OAAO,OAAR,EAAiBE,QAAQ,OAAzB,EAAlC,EAHF;AA3CP;AADF,aA1CJ;AA6FKlX,2BAAe,CAACA,YAAYvB,aAA5B,IAA6C;AAAA;AAAA,gBAAK,WAAU,MAAf;AAC5C;AAAA;AAAA,kBAAK,WAAU,MAAf;AACE;AAAA;AAAA,oBAAK,WAAU,MAAf;AAAA;AAAA,iBADF;AAEE;AAAA;AAAA,oBAAK,WAAU,MAAf;AAAuBuB,gCAAcA,YAAYiV,UAA1B,GAAqC;AAA5D;AAFF,eAD4C;AAK5C;AAAA;AAAA,kBAAK,WAAU,MAAf;AACE;AAAA;AAAA,oBAAK,WAAU,MAAf;AAAA;AAAA,iBADF;AAEE;AAAA;AAAA,oBAAK,WAAU,MAAf;AAAuBjV,gCAAcA,YAAYU,SAA1B,GAAoC;AAA3D;AAFF,eAL4C;AAS5C;AAAA;AAAA,kBAAK,WAAU,MAAf;AACE;AAAA;AAAA,oBAAK,WAAU,MAAf;AAAuB6J,gCAAcI,MAArC;AAAA;AAAA,iBADF;AAEE;AAAA;AAAA,oBAAK,WAAU,MAAf;AAAuB3K,gCAAcA,YAAYO,KAA1B,GAAgC;AAAvD;AAFF,eAT4C;AAa5C;AAAA;AAAA,kBAAK,WAAU,MAAf;AACE;AAAA;AAAA,oBAAK,WAAU,MAAf;AAAA;AAAA,iBADF;AAEE;AAAA;AAAA,oBAAK,WAAU,MAAf;AAAuBP,gCAAcA,YAAY2hB,iBAA1B,GAA4C;AAAnE;AAFF;AAb4C,aA7FlD;AA+GK3hB,2BAAeA,YAAYvB,aAA3B,IAA4C;AAAA;AAAA,gBAAK,WAAU,MAAf;AAC3C;AAAA;AAAA,kBAAK,WAAU,MAAf;AACE;AAAA;AAAA,oBAAK,WAAU,MAAf;AAAA;AAAA,iBADF;AAEE;AAAA;AAAA,oBAAK,WAAU,MAAf;AAAuBuB,iCAAeA,YAAYyK,IAA3B,GAAkCzK,YAAYyK,IAAZ,CAAiB3F,MAAnD,GAA0D;AAAjF;AAFF,eAD2C;AAK3C;AAAA;AAAA,kBAAK,WAAU,MAAf;AACE;AAAA;AAAA,oBAAK,WAAU,MAAf;AAAA;AAAA,iBADF;AAEE;AAAA;AAAA,oBAAK,WAAU,MAAf;AAAuB9E,gCAAcA,YAAYO,KAA1B,GAAgC;AAAvD;AAFF;AAL2C;AA/GjD;AAhBF,SAvmBF;AAovBE;AAAA;AAAA;AACE,qCAAsB,KAAKmJ,eAAL,GAAuB,aAAvB,GAAuC,EAA7D,CADF;AAEE,mBAAM,OAFR;AAGE,qBAAS,KAAKvO,KAAL,CAAWI,WAHtB;AAIE,0BAAc,KAJhB;AAKE,sBAAa,KAAK8P,gBALpB;AAME,sBAAW,CAAC,KAAK3B,eAAN,GAAwB,IAAxB,GAA+B,KAN5C;AAOE,mBAAO,MAPT;AAQE,4BAAgB,IARlB;AASE,oBAAQ,IATV;AAUE,oBAAQ;AAAA;AAAA,gBAAK,WAAU,QAAf;AACN;AAAA;AAAA,kBAAQ,SAAS,KAAK2B,gBAAtB;AAAA;AAAA,eADM;AAEN;AAAA;AAAA,kBAAQ,MAAK,SAAb,EAAuB,UAAUrL,eAAeA,YAAYsiB,OAAZ,IAAqB,EAArE,EAAyE,SAAS,KAAKlX,YAAvF;AAAA;AAAA;AAFM;AAVV;AAeE;AAAA;AAAA;AACE;AAAA;AAAA,gBAAK,WAAU,MAAf;AACI;AAAA;AAAA,kBAAK,WAAW,0BAAW,EAAC,QAAO,IAAR,EAAa,aAAYa,SAAzB,EAAX,CAAhB;AACE;AAAA;AAAA,oBAAK,WAAU,iBAAf;AAAmCjM,iCAAeA,YAAYE,MAA3B,IAAqCF,YAAYE,MAAZ,CAAmBnE,IAAzD,IAAkE;AAApG,iBADF;AAEE;AAAA;AAAA,oBAAK,WAAU,MAAf;AAAA;AAAA;AAFF,eADJ;AAKI;AAAA;AAAA,kBAAK,WAAU,KAAf;AACE,uDAAK,WAAU,MAAf,GADF;AAEE,uDAAK,WAAU,MAAf,GAFF;AAGE,uDAAK,WAAU,MAAf;AAHF,eALJ;AAUI;AAAA;AAAA,kBAAK,WAAW,0BAAW,EAAC,WAAU,IAAX,EAAgB,aAAYkQ,SAA5B,EAAX,CAAhB;AACE;AAAA;AAAA,oBAAK,WAAU,OAAf;AAAwBjM,iCAAeA,YAAYE,MAA3B,IAAqCF,YAAYE,MAAZ,CAAmB0jB;AAAhF,iBADF;AAEE;AAAA;AAAA,oBAAK,WAAU,MAAf;AAAA;AAAA;AAFF,eAVJ;AAcI;AAAA;AAAA,kBAAK,WAAU,KAAf;AACE,uDAAK,WAAU,MAAf,GADF;AAEE,uDAAK,WAAU,MAAf,GAFF;AAGE,uDAAK,WAAU,MAAf;AAHF,eAdJ;AAmBI;AAAA;AAAA,kBAAK,WAAW,0BAAW,EAAC,WAAU,IAAX,EAAgB,aAAY3X,SAA5B,EAAX,CAAhB;AACE;AAAA;AAAA,oBAAK,WAAU,OAAf;AAAwBjM,iCAAeA,YAAYE,MAA3B,IAAqC,2BAAeF,YAAY6jB,iBAA3B;AAA7D,iBADF;AAEE;AAAA;AAAA,oBAAK,WAAU,MAAf;AAAA;AAAA;AAFF,eAnBJ;AAuBI;AAAA;AAAA,kBAAK,WAAU,KAAf;AACE,uDAAK,WAAU,MAAf,GADF;AAEE,uDAAK,WAAU,MAAf,GAFF;AAGE,uDAAK,WAAU,MAAf;AAHF,eAvBJ;AA4BI;AAAA;AAAA,kBAAK,WAAW,0BAAW,EAAC,aAAY,IAAb,EAAkB,aAAY5X,SAA9B,EAAX,CAAhB;AACE;AAAA;AAAA,oBAAK,WAAU,OAAf;AAAwBjM,iCAAeA,YAAYE,MAA3B,IAAqC,2BAAeM,KAAK2N,GAAL,CAAS,CAAT,EAAW3N,KAAKC,GAAL,CAAST,YAAYU,SAArB,EAA+BV,YAAYE,MAAZ,CAAmBC,WAAlD,CAAX,CAAf;AAA7D,iBADF;AAEE;AAAA;AAAA,oBAAK,WAAU,MAAf;AAAA;AAAA;AAFF;AA5BJ,aADF;AAkCE;AAAA;AAAA,gBAAK,WAAU,IAAf;AACE;AAAA;AAAA;AAAA;AAAA,eADF;AAEE;AAAA;AAAA,kBAAM,WAAU,QAAhB;AAA0BH,+BAAeA,YAAYE,MAA3B,IAAqCF,YAAYE,MAAZ,CAAmBmiB;AAAlF;AAFF,aAlCF;AAsCE;AAAA;AAAA,gBAAK,WAAU,YAAf;AACE;AAAA;AAAA;AAAA;AAAA,eADF;AAEE;AAAA;AAAA;AAAOpiB,wBAAQgV;AAAf;AAFF,aAtCF;AA0CE;AAAA;AAAA,gBAAK,WAAU,UAAf;AACE;AAAA;AAAA;AAAA;AAAA,eADF;AAEE;AAAA;AAAA;AAEE;AACI,6BAAWkM,cAAOM,eAAP,CAAuB,OAAvB,CADf;AAEI,wBAAK,MAFT;AAGI,yBAAOvkB,YAHX;AAII,4BAAU,kBAACqJ,CAAD,EAAK;AAAC,2BAAK5F,mBAAL,CAAyB4F,EAAEsH,MAAF,CAAStN,KAAlC,EAAwCC,KAAKC,GAAL,CAAST,YAAYU,SAArB,EAA+BV,YAAYE,MAAZ,CAAmBC,WAAlD,CAAxC;AAAwG,mBAJ5H;AAKI,gCAAcH,eAAeA,YAAYE,MAA3B,IAAqC,2BAAeM,KAAKC,GAAL,CAAST,YAAYO,KAArB,EAA2BP,YAAYU,SAAvC,EAAiDV,YAAYE,MAAZ,CAAmBC,WAApE,CAAf,CALvD;AAMI,uBAAK;AAAA,2BAAO,OAAK,iBAAL,IAA0B2iB,MAAjC;AAAA,mBANT;AAOI,2BAAS,iBAACvc,CAAD,EAAK;AACZ,2BAAKlG,QAAL,GAAc,iBAAd;AACEwI,uCAAS+Z,IAAT,CAAc,UAACjjB,CAAD,EAAK;AACf,0BAAMY,QAAQsI,mBAAS4V,WAAT,CAAqB,OAAK,OAAKpe,QAAV,EAAoBC,KAAzC,EAAgD,OAAK,OAAKD,QAAV,EAAoBC,KAApB,CAA0BC,KAA1E,EAAiFZ,CAAjF,CAAd;AACA,6BAAKgB,mBAAL,CAAyBJ,KAAzB,EAA+BC,KAAKC,GAAL,CAAST,YAAYU,SAArB,EAA+BV,YAAYE,MAAZ,CAAmBC,WAAlD,CAA/B;AACC,qBAHL,EAGO,OAAKiW,YAHZ,EAG0B,OAAKC,eAH/B;AAIC,mBAbT;AAeI,0BAAQ,gBAAC9P,CAAD,EAAK;AACXsC,uCAASC,KAAT;AACA,2BAAKnI,mBAAL,CAAyB,2BAAe,OAAKC,eAAL,CAAqBN,KAArB,CAA2BC,KAA1C,CAAzB,EAA0EC,KAAKC,GAAL,CAAST,YAAYU,SAArB,EAA+BV,YAAYE,MAAZ,CAAmBC,WAAlD,CAA1E;AACD;AAlBL;AAFF;AAFF,aA1CF;AAoEE;AAAA;AAAA,gBAAK,WAAU,OAAf;AAAwBH,6BAAeA,YAAYsiB;AAAnD;AApEF;AAfF,SApvBF;AA20BE,sCAAC,eAAD,IAAqB,UACnB;AACE1lB,oDADF,EACsBC,kDADtB,EAC+CC;AAD/C,WADF,EAIE,uBAAuB,KAAKsf,qBAJ9B,EAIqD,iBAAiB,KAAK1S,eAJ3E,EAI4F,YAAYhN,UAJxG,EAIoH,kBAAkB,KAAKvB,KAAL,CAAWO,gBAJjJ,EAImK,gBAAgB4B,cAJnL;AA30BF,OADF;AAm1BD;;;EA3zGsBwmB,gBAAMC,S,WA8CtBC,Y,GAAe;AACpB3lB,aAAW4lB,oBAAUC,MADD;AAEpBzY,UAAQwY,oBAAUC;AAFE,C;;kBAgxGTlpB,U","file":"settlement.js","sourcesContent":["import React from 'react'\r\nimport { observer } from 'mobx-react'\r\nimport _filter from 'lodash/filter';\r\nimport _map from 'lodash/map';\r\nimport _find from 'lodash/find';\r\nimport _findIndex from 'lodash/findIndex';\r\nimport _sortBy from 'lodash/sortBy';\r\nimport _forEach from 'lodash/forEach';\r\nimport _trim from 'lodash/trim';\r\nimport _truncate from 'lodash/truncate';\r\nimport _debounce from 'lodash/debounce';\r\nimport _ from 'lodash'\r\nimport _reduce from 'lodash/reduce';\r\nimport classnames from 'classnames'\r\nimport { Drawer, Modal, Carousel, Input, Button, Table } from 'antd';\r\nimport Message from '../message';\r\nimport asyncModal from './asyncModal';\r\nimport ModalWraper from '../modalWraper';\r\nimport { openLoadingModal,openQueryingModal,showSuccessModal, getRoundValue, getFixedNumber } from './utils';\r\nimport Keyboard from '../keyboard';\r\nimport NumKeyboard from '../keyboard/numKeyboard';\r\nimport NumKeyboardScan from '../keyboard/numKeyboardScan';\r\nimport NumkeyboardPassword from '../keyboard/numkeyboardPassword'\r\nimport Ticon from '../ticon';\r\nimport PropTypes from 'prop-types';\r\nimport Scan from '../scan';\r\nimport HardwareAPI from '../hardwareAPI';\r\nimport { nativeMs, env, localStore, stores } from 'mutants-microfx';\r\nimport { platform,enumController,tools} from 'mutants-util';\r\nimport { hotKey } from '../../index';\r\nimport { PosInitData } from 'tplus-poslogin';\r\nimport PrototypeTableModal from './prototypeTable/index';\r\nimport { ProgressState } from 'tplus-components-touch';\r\nimport MoreCzkTable from './moreCzkTable'\r\nconst hasElectron = (env.platform === env.constant.platform.electron);\r\n\r\n@observer\r\nclass Settlement extends React.Component {\r\n state = {\r\n visible: false ,\r\n czkVisible:false,\r\n djqVisible:false,\r\n jfdxVisible:false,\r\n moreCzkVisible: false,\r\n showSetPwdModal: false,\r\n prototypeVisible: false, // 优惠明细弹出框\r\n currentIndex:0,\r\n connectCardStatus: false, //连接IC卡状态\r\n connectCardError: '', //连接IC卡错误后记录错误信息\r\n amountChanged:false,\r\n type:0,\r\n isManualIntoAmount: PosInitData(\"IsManualIntoAmount\"),\r\n isXianjin: false,\r\n newPass: '',\r\n newPassConfirm: '',\r\n noAlreadyWarn: true,\r\n btnDissabled: true,\r\n confirmPwd: '',\r\n settleDisabled: false,\r\n protytypeCount: null,\r\n isPrototypeClick: false,\r\n dataSource: [],\r\n memberdata1: [],\r\n discountTotalAmount: null,\r\n discountRetailTotalAount: null,\r\n discountPrototypeTotalAmount: null,\r\n bquick: false,\r\n currentKey: null,\r\n couponLight: true,\r\n storageValue: '0.00',\r\n czkValue: null,\r\n isInputMember: false,\r\n selectedRowIndex: 0,\r\n isNotAutoFocus: true\r\n }\r\n // 复核结算方式快捷键列表\r\n compoundHotkeysList = (window.$.operationControl[5]? (window.$.operationControl[5].control || []):[]).map((key)=>{\r\n return key.toLocaleUpperCase();\r\n })\r\n\r\n hotkeydebounced = null;\r\n hotkeydebouncedPayMode = \"\";\r\n\r\n static contextTypes = {\r\n viewModel: PropTypes.object,\r\n stores: PropTypes.object,\r\n }\r\n\r\n currentInput = null;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.hasElectron = hasElectron;\r\n const { MemberMeStorageCardInputByKeyBoard, ICCardServer, ICCardPassword, PreSellOrBook, PercentageWhenBook} = stores.user.options.get('loginInfo') || {};\r\n this.isStorageCardInputType = MemberMeStorageCardInputByKeyBoard; // 仅储值卡是否禁用键盘输入,'0'为不禁用 '1'为禁用\r\n this.iCCardServer = parseInt(ICCardServer); // 启用IC卡:0为禁用 1为启用\r\n this.iCCardPassword = ICCardPassword; //IC卡密码\r\n this.isBook = PreSellOrBook == 'BOOK';\r\n this.percentageWhenBook = PercentageWhenBook;\r\n //移动端环境下,没有读取IC卡的方式。\r\n const { isHorizontalPad, isHorizontalSunMi } = platform || {};\r\n this.isHorizontalPad = !!isHorizontalPad;\r\n this.isHorizontalSunMi= !!isHorizontalSunMi;\r\n this.isMobileEnvironment = !!isHorizontalPad || !!isHorizontalSunMi;\r\n this.handleReadICard = this.handleReadICard.bind(this);\r\n this.setTimer = null;\r\n this.keypressStime = null;\r\n this.store = !(props.type == 1) ? stores.settlementVoucherStore : stores.settlementMemberStore;\r\n }\r\n\r\n componentDidMount() {\r\n this.store.initPaymodes(this.updateInput, this.props.type, this.props.MemberPoints);\r\n }\r\n\r\n componentDidUpdate() {\r\n this.resizeSettlementToolBtns()\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.amount != this.props.amount) {\r\n this.store.amountChanged(nextProps.amount);\r\n this.setState({ amountChanged: !this.state.amountChanged });\r\n }\r\n\r\n // 增加积分兑换和普通模式切换 重新获取支付方式\r\n if(nextProps.MemberPoints != this.props.MemberPoints){\r\n this.store.paymode.clear();\r\n this.store.initPaymodes(this.updateInput,this.props.type,nextProps.MemberPoints);\r\n }\r\n }\r\n\r\n //是否退货\r\n getIsReturn = () => {\r\n let dataModal = this.context && this.context.viewModel && this.context.viewModel.data;\r\n return dataModal.IdbusiType === 35 || dataModal.IdbusiType === 40; //40预售退货类型。\r\n }\r\n\r\n //原单退货状态\r\n getBoriginReturn = () => {\r\n const boriginReturn = this.context && this.context.viewModel && this.context.viewModel.data && JSON.getCellValue(this.context.viewModel.data, \"IsOriginalReturn\");\r\n return boriginReturn || false;\r\n }\r\n\r\n //非原单退货状态\r\n getNotBoriginReturn = () => {\r\n let isReturn = this.getIsReturn();\r\n let boriginReturn = this.getBoriginReturn();\r\n return isReturn && !boriginReturn;\r\n }\r\n\r\n //对结算按钮超出的处理\r\n resizeSettlementToolBtns = () => {\r\n const { newStyle } = this.store;\r\n const { isMemberStorePage } = this.props;\r\n let b = this.billingSettlementDocumnet;\r\n if (b && newStyle && !isMemberStorePage) {\r\n let bWidth = b.offsetWidth;\r\n let cWidth = 0;\r\n if (b.firstChild) {\r\n cWidth += b.firstChild.offsetWidth;\r\n }\r\n if (b.lastChild && b.lastChild.childNodes) {\r\n b.lastChild.childNodes.forEach(v => {\r\n cWidth += v.offsetWidth;\r\n })\r\n }\r\n if (b.lastChild) {\r\n // 原来bWidth < cWidth,过渡过程中右边按钮会隐藏,+20之后解决\r\n if (bWidth < cWidth + 20) {\r\n b.lastChild.className = 'btns voucherMode';\r\n } else {\r\n b.lastChild.className = 'btns';\r\n }\r\n }\r\n }\r\n }\r\n\r\n //IC卡连接\r\n connectRfCard() {\r\n //客户端环境下,并开启了启用IC卡。\r\n if (this.hasElectron === true && this.iCCardServer === 1) {\r\n nativeMs.setIpcRendererMethod('ConnectRfCard', null, ret => {\r\n let result = {}\r\n if (ret.status === 0) {\r\n result = { connectCardStatus: false, connectCardError: ret.value }\r\n } else {\r\n result = { connectCardStatus: true, connectCardError: '' };\r\n }\r\n this.setState(result)\r\n })\r\n }\r\n }\r\n //IC卡读取\r\n readRfCard() {\r\n //客户端环境下,并开启了启用IC卡。\r\n if (this.hasElectron === true && this.iCCardServer === 1) {\r\n const { connectCardStatus, connectCardError } = this.state;\r\n if (connectCardStatus === false) {\r\n Message.error(connectCardError ? connectCardError : '读取IC卡失败');\r\n this.connectRfCard(); //读取失败后,重新连接一下。\r\n return;\r\n }\r\n let params = { cardPsw: this.iCCardPassword, cardSec: 13, cardKm: 0 }\r\n nativeMs.setIpcRendererMethod('ReadRfCard', { ...params }, ret => {\r\n if (ret.status === 0) {\r\n Message.error(ret.value);\r\n this.connectRfCard(); //读取失败后,重新连接一下。\r\n return;\r\n } else if (ret.status === 1) {\r\n // this.searchMember(ret.value);\r\n // this.czkInput.input[\"value\"]=ret.value;\r\n this.setState({\r\n czkValue: ret.value\r\n })\r\n this.loadCzk(ret.value);\r\n }\r\n })\r\n }\r\n }\r\n\r\n //IC卡关闭\r\n closeRfCard(){\r\n if (this.hasElectron === true && this.iCCardServer === 1) {\r\n nativeMs.setIpcRendererMethod('CloseRfCard')\r\n }\r\n }\r\n\r\n handleReadICard = () => {\r\n this.readRfCard();\r\n }\r\n\r\n updateInput=()=>{\r\n let {currentMode}=this.store.paymode;\r\n if(this.state.jfdxVisible &¤tMode && currentMode.member.exchangable !== undefined ){\r\n this.inputkey=\"inputJfdxAmount\";\r\n this[\"inputJfdxAmount\"].input.value=currentMode && getFixedNumber(Math.min(currentMode.value,currentMode.maxamount,currentMode.member.exchangable))\r\n this.setCurrentModeValue(this.inputJfdxAmount.input.value,Math.min(currentMode.maxamount,currentMode.member.exchangable));\r\n }else if(this.state.czkVisible && currentMode && currentMode.value>=0 && currentMode.balance !== undefined){\r\n this.inputkey=\"inputCzkAmount\";\r\n this[\"inputCzkAmount\"] && this[\"inputCzkAmount\"].input && (this[\"inputCzkAmount\"].input.value=getFixedNumber(Math.min(currentMode.value,currentMode.maxamount,currentMode.balance)));\r\n const maxamount=Math.min(currentMode.maxamount,currentMode.balance);\r\n this.inputCzkAmount && this.inputCzkAmount.input && this.setCurrentModeValue(this.inputCzkAmount.input.value,maxamount);\r\n if(this.store.bquick && currentMode.storageCardNo && parseFloat(this.store.paymode.amount)>parseFloat(maxamount)){\r\n Message.error(\"本单最大可用储值卡结算金额为:\"+getFixedNumber(maxamount)+\",请使用复合结算!\", {\r\n duration: 4\r\n });\r\n setTimeout(() => {\r\n this.handleCzkCancel();\r\n setTimeout(() => { this.czkKeyboardOnClose() }, 150)\r\n }, 50);\r\n }\r\n }\r\n }\r\n\r\n payQuick = () => {\r\n const { currentKey } = this.state;\r\n const { PayStyle } = enumController.getEnumOj();\r\n this.store.init(this.props.type == 1 ? null : this.context, this.props.onHandleAmount, this.props.dataSource.Code_02, this.props.storeInfo, true, this.props.amount, this.props.type, this.props.dto,currentKey);\r\n let amount = this.store.paymode.amount;\r\n if (amount == 0) {\r\n this.settleZero();\r\n return;\r\n }\r\n if (currentKey == PayStyle.hyczk) {\r\n const { isProhibitMeStorageCard } = this.props;\r\n if (isProhibitMeStorageCard) {\r\n Message.warn('储值卡不可键盘录入,请刷卡!');\r\n return;\r\n }\r\n this.showCzkModal();\r\n } else {\r\n this.store.quickSettle(currentKey);\r\n this.handleSettle(\"quickPay\");\r\n }\r\n this.handleGuestShow(amount < 0 ? 2 : 3, amount);\r\n }\r\n\r\n quickSettle = (key)=>{\r\n const isAutoShowCouponWhenCash = PosInitData('IsAutoShowCouponWhenCash');\r\n this.setState({\r\n currentKey: key\r\n })\r\n const { isReturn, type } = this.props;\r\n Promise.resolve(!this.props.onValidate || this.props.onValidate({isNotAutoFocus: true, fn: (data)=>this.isNoProductTip(data)})).then(result=>{\r\n if (result) {\r\n this.setState({\r\n settleDisabled: false\r\n })\r\n if (type !== 1) {\r\n let count = this.handleShowPrototype();\r\n if (!isReturn && isAutoShowCouponWhenCash && count > 0) {\r\n this.setState({\r\n prototypeVisible: true,\r\n isNotAutoFocus: false\r\n })\r\n } else {\r\n this.payQuick();\r\n }\r\n } else {\r\n this.payQuick();\r\n }\r\n }\r\n })\r\n }\r\n\r\n checkIsIntegralExchange = () => {\r\n let { IdbusiType } = this.context.viewModel.data;\r\n return (IdbusiType === 37 || IdbusiType === 36);\r\n }\r\n\r\n payFun = () => {\r\n this.store.init(this.props.type == 1 ? null : this.context, this.props.onHandleAmount, this.props.dataSource.Code_02, this.props.storeInfo, false, this.props.amount, this.props.type, this.props.dto);\r\n let amount = this.store.paymode.amount;\r\n if (amount == 0) {\r\n this.settleZero();\r\n return;\r\n }\r\n this.setState({ visible: true });\r\n this.handleGuestShow(amount < 0 ? 2 : 3, amount);\r\n setTimeout(() => {\r\n this.handleDefault()\r\n let { paymode, brefund, newStyle } = this.store;\r\n let boriginReturn = this.getBoriginReturn();\r\n let thePaymodes = newStyle ? _filter(paymode.thePaymodes, (m) => { return !(this.checkModeDisabled(m.paymentType, brefund, boriginReturn) && parseFloat(m.value) == 0); }) : paymode.thePaymodes;\r\n this.setFocusAndSelectionMode(thePaymodes,-1);\r\n }, 100)\r\n }\r\n\r\n handleShowPrototype = () => {\r\n const pricePrecision = PosInitData(\"PricePrecision\");\r\n const quantityPrecision = PosInitData ('QuantityPrecision')\r\n const { RetailDetails, TotalTaxAmount } = this.context.viewModel.data;\r\n let dataSource = RetailDetails.map(o => Object.assign({}, o));\r\n let discountRetailTotalAount = null;\r\n let discountPrototypeTotalAmount = 0;\r\n let count = 0;\r\n dataSource && dataSource.forEach((item) => {\r\n let count1 = 0;\r\n item.ShowFreeItem = false;\r\n for (let i in item) {\r\n if (/FreeItem/.test(i)) {\r\n if (item[i] && item[i].Name) {\r\n count1++;\r\n item.ShowFreeItem = true;\r\n count1 === 1 ? item.FreeItem = item[i].Name : item.FreeItem += '/' + item[i].Name;\r\n }\r\n }\r\n }\r\n //有赠品的情况,不在考虑是否促销\r\n if (item.IsPresent) {\r\n item.badge = { text: '赠', position: 'leftTop', className: '' }\r\n } else if(item.IsGWPBuyGift) {\r\n item.badge = { text: '换', position: 'leftTop', className: '' }\r\n }else if (item.PromotionDetails && item.PromotionDetails.length > 0) {\r\n item.badge = { text: '促', position: 'leftTop', className: '' }\r\n } else {\r\n item.badge = { text: '', position: '', className: '' }\r\n }\r\n if (item.PromotionDetails && item.PromotionDetails.length > 0) {\r\n count++;\r\n }\r\n item.InventoryName = item.Inventory.Name;\r\n item.Discount = getRoundValue(item.RetailPrice - item.TaxPrice, pricePrecision);\r\n if (!item.IsPresent) {\r\n discountPrototypeTotalAmount += item.DetailDiscountAmount;\r\n item.TotalDiscount = item.DetailDiscountAmount;\r\n } else {\r\n item.TotalDiscount = 0;\r\n }\r\n //item.TotalDiscount = getFixedNumber(item.Discount * item.Quantity);\r\n item.nAmount = getFixedNumber(item.TaxAmount);\r\n item.UnitName = item.Unit.Name;\r\n item.nQuantity = getRoundValue(item.Quantity, quantityPrecision);\r\n item.nTaxPrice = getRoundValue(item.TaxPrice, pricePrecision);\r\n item.nRetailPrice = getRoundValue(item.RetailPrice, pricePrecision);\r\n })\r\n this.setState({\r\n dataSource,\r\n discountTotalAmount: getFixedNumber(this.props.amount),\r\n discountPrototypeTotalAmount: getFixedNumber(discountPrototypeTotalAmount),\r\n discountRetailTotalAount: getFixedNumber(this.props.amount + parseFloat(discountPrototypeTotalAmount))\r\n })\r\n return count;\r\n }\r\n\r\n showModal = () => {\r\n const { isReturn, type } = this.props;\r\n const isAutoShowCouponWhenCash = PosInitData('IsAutoShowCouponWhenCash')\r\n // 支持异步验证过程\r\n Promise.resolve( !this.props.onValidate || this.props.onValidate({fn: (data)=>this.isNoProductTip(data)})).then(result => {\r\n if (result) {\r\n this.setState({\r\n settleDisabled: false\r\n })\r\n if (type !== 1) {\r\n let count = this.handleShowPrototype();\r\n if (!isReturn && isAutoShowCouponWhenCash && count > 0) {\r\n this.setState({\r\n prototypeVisible: true,\r\n isNotAutoFocus: false\r\n })\r\n } else {\r\n this.payFun();\r\n }\r\n } else {\r\n this.payFun();\r\n }\r\n }\r\n })\r\n }\r\n\r\n settleZero=()=>{\r\n const that = this;\r\n //预售取货无需支付时省略弹框确认这一步\r\n let IdbusiType = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.IdbusiType;\r\n if(IdbusiType == 39){\r\n that.handleSettle(\"zero\");\r\n return;\r\n }\r\n ModalWraper.confirm({\r\n className: 'tplus-confirm-modal',\r\n title: '结算',\r\n content: '当前收款金额为0,确认结算?',\r\n onOk() {\r\n setTimeout(() => { that.handleSettle(\"zero\") }, 300)\r\n },\r\n onCancel() {\r\n\r\n },\r\n });\r\n }\r\n\r\n handleDefault=()=>{\r\n // let dmode=_find(this.store.paymode.paymodes,(mode)=>{return mode.isDefault});\r\n // if(dmode){\r\n // if(dmode.paymentType==PayStyle.hyczk){\r\n // this.onTabsClick(PayStyle.hyczk);\r\n // }else{\r\n // this.store.quickSettle(dmode.paymentType);\r\n // this.onTabsClick(dmode.paymentType);\r\n // }\r\n // }else if(this.store.member && this.store.member.ID && parseFloat(this.store.member.BalanceStorage)>0 &&\r\n // _find(this.store.paymode.paymodes,{'paymentType':PayStyle.hyczk})){\r\n // this.onTabsClick(PayStyle.hyczk);\r\n // // this.showCzkModal();\r\n // }\r\n\r\n // else if(_find(this.store.paymode.paymodes,{'paymentType':PayStyle.xianjin})){\r\n // this.store.quickSettle(PayStyle.xianjin);\r\n // this.onTabsClick(PayStyle.xianjin);\r\n // }\r\n if(this.store.newStyle){\r\n // this.onHotKeyEnter(null,true);\r\n }\r\n }\r\n\r\n handleOk = (e) => {\r\n this.setState({\r\n visible: false,\r\n });\r\n }\r\n\r\n handleCancel = (e) => {\r\n this.props.onCancelSettle && this.props.onCancelSettle();\r\n this.cancelState();\r\n this.setInventoryFocus();\r\n }\r\n\r\n cancelState=()=>{\r\n this.store.clean();\r\n this.setState({\r\n visible: false,\r\n });\r\n }\r\n\r\n handleCzkMoreData = (params) => {\r\n this._val=this.store.paymode.currentMode.value;\r\n let {currentMode}=this.store.paymode;\r\n const maxamount=Math.min(currentMode.maxamount,currentMode.balance);\r\n if(this.store.bquick && currentMode.storageCardNo && parseFloat(this.store.paymode.amount)>parseFloat(maxamount)){\r\n Message.error(\"本单最大可用储值卡结算金额为:\"+getFixedNumber(maxamount)+\",请使用复合结算!\",{\r\n duration: 4\r\n });\r\n } else {\r\n if (params) {\r\n this.setState({\r\n czkVisible: true,\r\n });\r\n }\r\n const { brefund } = this.store;\r\n let value11 = currentMode && getFixedNumber(brefund?currentMode.value:Math.min(currentMode.value,currentMode.maxamount,currentMode.balance));\r\n this.setState({\r\n storageValue: value11\r\n })\r\n if (currentMode.storageCardNo) {\r\n this.setState({\r\n czkValue: currentMode.storageCardNo\r\n })\r\n } else {\r\n this.setState({\r\n czkValue: null\r\n })\r\n }\r\n }\r\n if (params) {\r\n setTimeout(() => {\r\n if(!currentMode.storageCardNo){\r\n this.czkInput && this.czkInput.input.focus()\r\n }else{\r\n if(this.inputCzkAmount && this.inputCzkAmount.input){\r\n this.inputCzkAmount.input.focus();\r\n this.inputCzkAmount.input.setSelectionRange(0, this.inputCzkAmount.input.value.length);\r\n }\r\n }\r\n }, 500)\r\n }\r\n }\r\n\r\n //czk\r\n showCzkModal = async (id,append) => {\r\n const { isInputMember } = this.state || {};\r\n const { PayStyle } = enumController.getEnumOj();\r\n const returnType = this.getNotBoriginReturn();\r\n this.store.setCurrentMode(id, PayStyle.hyczk, append);\r\n const memberId = this.store && this.store.member && this.store.member.ID;\r\n this.connectRfCard();\r\n let memberdata1 = isInputMember && memberId && await this.store.updateCurrentMode(memberId, returnType);\r\n this.setState({ czkVisible: true });\r\n if (memberdata1 && memberdata1.length === 1) {\r\n this.handleCzkMoreData(true);\r\n this.store.handleCzkData(memberdata1[0]);\r\n } else if (memberdata1 && memberdata1.length >= 1) {\r\n this.setState({\r\n moreCzkVisible: true,\r\n memberdata1: memberdata1\r\n });\r\n } else {\r\n this.setState({\r\n });\r\n setTimeout(() => {\r\n this.czkInput && this.czkInput.input.focus()\r\n }, 300)\r\n }\r\n }\r\n\r\n handleMoreCzkCancel = () => {\r\n this.setState({\r\n moreCzkVisible: false,\r\n selectedRowIndex: 0\r\n });\r\n setTimeout(() =>{\r\n this.czkInput && this.czkInput.input.focus();\r\n }, 300)\r\n }\r\n\r\n setMoreCzkIndex = (index) => {\r\n this.setState({\r\n selectedRowIndex: index\r\n })\r\n }\r\n\r\n handleMoreCzkOk = () => {\r\n const { memberdata1, selectedRowIndex } = this.state;\r\n this.store.paymode.updateCardInfo(memberdata1[selectedRowIndex]);\r\n this.handleCzkMoreData();\r\n this.store.handleCzkData(memberdata1[selectedRowIndex]);\r\n this.setState({\r\n moreCzkVisible: false,\r\n selectedRowIndex: 0\r\n })\r\n }\r\n\r\n handleCzkData = async () => {\r\n this.setState({\r\n isInputMember: false\r\n })\r\n const { PayStyle } = enumController.getEnumOj();\r\n if (!this.store.paymode.currentMode.storageCardNo) {\r\n const returnType = this.getNotBoriginReturn();\r\n await this.store.loadCzk(this.czkInput.input.value, returnType);\r\n }\r\n if (!this.store.paymode.currentMode.storageCardNo) {\r\n Message.error(\"请录入储值卡!\");\r\n return;\r\n }\r\n if (_find(this.store.paymode.thePaymodes, (mode) => {\r\n return mode.paymethodId != this.store.paymode.currentMode.paymethodId &&\r\n mode.paymentType == PayStyle.hyczk &&\r\n mode.storageCardNo == this.store.paymode.currentMode.storageCardNo\r\n })) {\r\n Message.error(\"该储值卡已使用。\");\r\n return;\r\n }\r\n if (this.store.bquick && this.store.paymode.amount != this.store.paymode.currentMode.value) {\r\n Message.error(\"实收金额应等于应收金额。\");\r\n return;\r\n }\r\n\r\n this.setState({\r\n czkVisible: false,\r\n storageValue: '0.00',\r\n czkValue: null\r\n });\r\n this.closeRfCard();\r\n this.store.paymode.calcMemberBalance();\r\n this.handleCzk();\r\n }\r\n\r\n handleCzkOk = async (e) => {\r\n // 判断是否有密码\r\n const { walletEnabled, cardTypeEnum, freePaymentPasswordStore, isNeedPassword } = this.store.paymode.currentMode;\r\n if (cardTypeEnum === 'BALANCE_CARD' && freePaymentPasswordStore) {\r\n this.handleCzkData();\r\n } else if (cardTypeEnum === 'BALANCE_CARD' && !walletEnabled) {\r\n this.setState({\r\n showSetPwdModal: true,\r\n btnDissabled: true\r\n })\r\n } else {\r\n this.handleCzkData();\r\n }\r\n }\r\n\r\n handleCzkCancel = (e) => {\r\n if(this.store.bquick){\r\n this.props.onCancelSettle && this.props.onCancelSettle();\r\n this.store.clean();\r\n }\r\n this.setState({\r\n czkVisible: false,\r\n storageValue: '0.00',\r\n czkValue: null\r\n });\r\n this.closeRfCard();\r\n Keyboard.close();\r\n this.setInventoryFocus();\r\n }\r\n\r\n handleSetPwdCancel = () => {\r\n this.setState({\r\n showSetPwdModal: false\r\n })\r\n }\r\n\r\n handleSetModal = async () => {\r\n const { newPass, newPassConfirm, isInputMember } = this.state;\r\n const { updataMemberInfo } = this.props;\r\n const result = await this.store.queryPwd(newPass, newPassConfirm)\r\n const { cardTypeEnum } = this.store.paymode.currentMode;\r\n if (result) {\r\n this.setState({\r\n showSetPwdModal: false,\r\n czkVisible: true,\r\n newPass: '',\r\n newPassConfirm: ''\r\n })\r\n Message.warn('设置成功')\r\n this.handleCzkData();\r\n setTimeout(() => {\r\n if(this.inputCzkAmount && this.inputCzkAmount.input){\r\n this.inputCzkAmount.input.focus();\r\n this.inputCzkAmount.input.setSelectionRange(0, this.inputCzkAmount.input.value.length);\r\n }\r\n }, 350)\r\n if (isInputMember && this.store.member.ID) {\r\n let resp = await this.store.updateMemberInfo(this.store);\r\n updataMemberInfo(resp);\r\n }\r\n if (cardTypeEnum === 'BALANCE_CARD') {\r\n this.store.paymode.updateCardInfo();\r\n }\r\n this.setState({\r\n isInputMember: false\r\n })\r\n }\r\n }\r\n\r\n onPressEnterCzk = (field) => {\r\n const { newPass = '', newPassConfirm = '' } = this.state || {};\r\n if (field === 'newPass' && newPass.length === 6) {\r\n this.inputConfirmAmount.input.focus();\r\n }\r\n if (field === 'newPassConfirm' && newPassConfirm.length === 6 && newPass.length === 6 && newPass === newPassConfirm) {\r\n this.handleSetModal();\r\n }\r\n }\r\n\r\n setPwdValue = (field, value) => {\r\n if (!/^[0-9]*$/.test(value)) {\r\n return;\r\n }\r\n this.setState({\r\n [field]: value\r\n }, () => {\r\n const { newPass = '', newPassConfirm = '' } = this.state || {};\r\n if (newPassConfirm.length=== 6 && newPass.length === 6 && newPass === newPassConfirm) {\r\n this.setState({\r\n btnDissabled: false\r\n })\r\n }\r\n })\r\n }\r\n\r\n handleBlur = (field) => {\r\n const { newPass = '', newPassConfirm = '' } = this.state || {};\r\n setTimeout(() => {\r\n const { showSetPwdModal } = this.state || {};\r\n if (!showSetPwdModal) return;\r\n if (field=== 'newPass' && newPass.length < 6) {\r\n this.setState({\r\n btnDissabled: true\r\n })\r\n Message.warn('请输入6位新密码!')\r\n } else {\r\n if (field === 'newPassConfirm') {\r\n if (newPass !== newPassConfirm) {\r\n this.setState({\r\n btnDissabled: true\r\n })\r\n Message.warn('密码输入不一致,请重新输入!')\r\n }\r\n }\r\n }\r\n if (newPassConfirm.length=== 6 && newPass.length === 6 && newPass === newPassConfirm) {\r\n this.setState({\r\n btnDissabled: false\r\n })\r\n }\r\n }, 80);\r\n }\r\n\r\n //关闭弹框时,执行此方法,把焦点设定到商品录入框\r\n setInventoryFocus = () => {\r\n if (!!this.isHorizontalPad) return;\r\n let doms = document.getElementsByClassName('app hot-key-focus-container');\r\n let input = document.getElementById('productPoint');\r\n if (input) setTimeout(() => { if (doms && doms.length > 0) {console.log('settlement--setInventory==Focus=='); input.focus() } }, 300);\r\n }\r\n\r\n //djq\r\n showDjqModal = (id) => {\r\n // if(!this.store.member || !this.store.member.Uid){\r\n // Message.error('请先输入会员再使用优惠券结算!');\r\n // return ;\r\n // }\r\n const { PayStyle } = enumController.getEnumOj();\r\n this.store.setCurrentMode(id,PayStyle.djq);\r\n this.setState({\r\n djqVisible: true,\r\n couponLight: true,\r\n });\r\n this.store.paymode.calcCheckList();\r\n setTimeout(() => {\r\n this.inputdjq && this.inputdjq.input && this.inputdjq.input.focus()\r\n }, 200)\r\n\r\n // TODO: 测试优惠券支付\r\n if (!this.store.paymode.currentMode.boriginReturn) {\r\n this.store.getCouponList();\r\n }\r\n }\r\n\r\n handleDjqOk = (e) => {\r\n const { PayStyle, Differentiate } = enumController.getEnumOj();\r\n if(this.store.paymode.currentMode.boriginReturn){\r\n this.handleDjqCancel(e);\r\n return;\r\n }\r\n if(_filter(this.store.paymode.currentMode.djqs,(djq)=>{return djq.checked}).length==0){\r\n Message.error(`请录入并使用${Differentiate.COUPON}。`);\r\n return ;\r\n }\r\n if(parseFloat(this.store.paymode.currentMode.value)>parseFloat(this.store.paymode.currentMode.maxamount)){\r\n Message.error(`超过了${Differentiate.COUPON}可支付的最大金额。`);\r\n return ;\r\n }\r\n this.setState({\r\n djqVisible: false,\r\n });\r\n this.setCurrentFocusAndAddPay(PayStyle.djq);\r\n }\r\n\r\n handleDjqCancel = (e) => {\r\n this.setState({\r\n djqVisible: false,\r\n });\r\n }\r\n\r\n //jfdx\r\n showJfdxModal = (jid) => {\r\n const { PayStyle, Differentiate } = enumController.getEnumOj();\r\n let id=this.store.newStyle? -1 : jid;\r\n if(!this.store.member || !this.store.member.ID){\r\n Message.error('请先输入会员再使用会员积分抵现结算!');\r\n return ;\r\n }\r\n let djqmode=_find(this.store.paymode.thePaymodes,(themode)=>{return themode.paymentType==PayStyle.djq;});\r\n let djq=djqmode && _find(djqmode.djqs,(djq)=>{return !djq.IsRepelWithPoints});\r\n if(djq){\r\n Message.error(`${Differentiate.COUPON}(${djq.code})不可与积分一起使用`);\r\n return ;\r\n }\r\n this.store.setCurrentMode(id,PayStyle.jfdx);\r\n this._val=this.store.paymode.currentMode.value;\r\n this.setState({\r\n jfdxVisible: true,\r\n });\r\n setTimeout(() => {\r\n this.inputJfdxAmount.input.focus();\r\n this.inputJfdxAmount.input.setSelectionRange(0, this.inputJfdxAmount.input.value.length);\r\n }, 300)\r\n }\r\n\r\n handleJfdxOk = (e) => {\r\n this.setState({\r\n jfdxVisible: false,\r\n });\r\n //this.setCurrentFocusAndAddPay(PayStyle.jfdx);\r\n this.handleCzk();\r\n }\r\n\r\n handleJfdxCancel = (e) => {\r\n this.setState({\r\n jfdxVisible: false,\r\n });\r\n }\r\n\r\n checkOfflineEnable = (paymode,key) => {\r\n const { paymodes } = paymode || {};\r\n const { isOffline} = stores.offlineSys;\r\n if(isOffline){\r\n if(paymodes){\r\n const currentPayMode = paymodes.find(item=> item.paymentType === key);\r\n if(currentPayMode && !currentPayMode.offlineDisable){\r\n return true\r\n }else{\r\n Message.warn(`离线模式下不支持此结算方式`);\r\n return false;\r\n }\r\n }\r\n Message.warn(`离线模式下结算方式数据错误`);\r\n return false;\r\n }else{\r\n return true;\r\n }\r\n\r\n }\r\n\r\n onTabsClick2 = (paymode, brefund, themode, key, bookType) => {\r\n const { PayStyle, Differentiate } = enumController.getEnumOj();\r\n paymode.currentMode = null;\r\n switch (key) {\r\n case PayStyle.hyczk:\r\n this.setState({\r\n isInputMember: true\r\n },() => {\r\n this.showCzkModal(-1);\r\n })\r\n break;\r\n case PayStyle.jfdx:\r\n this.showJfdxModal(-1);\r\n break;\r\n case PayStyle.djq:\r\n let memberInfo = this.store && this.store.member;\r\n let hasmember = (memberInfo.ID || memberInfo.Code || memberInfo.Name) ? true : false;\r\n let omc = this.props.initData(\"OnlyMemberCanUseCoupon\")\r\n if (omc && !hasmember) {\r\n Message.warn(`仅会员可以使用${Differentiate.COUPON},请录入会员!`);\r\n return;\r\n }\r\n this.showDjqModal(-1);\r\n break;\r\n case PayStyle.wx:\r\n if (_find(paymode.thePaymodes, (mode) => { return mode.paymentType === PayStyle.zfb || mode.paymentType === PayStyle.smzf})) {\r\n Message.error('已使用了其他的付款码支付,不可以再使用微信了。');\r\n } else {\r\n this.setCurrentFocusAndAddPay(key, bookType);\r\n }\r\n break;\r\n case PayStyle.zfb:\r\n if (_find(paymode.thePaymodes, (mode) => { return mode.paymentType === PayStyle.wx || mode.paymentType === PayStyle.smzf })) {\r\n Message.error('已使用了其他的付款码支付,不可以再使用支付宝了。');\r\n } else {\r\n this.setCurrentFocusAndAddPay(key, bookType);\r\n }\r\n break;\r\n case PayStyle.smzf:\r\n if (_find(paymode.thePaymodes, (mode) => { return mode.paymentType === PayStyle.zfb || mode.paymentType === PayStyle.wx})) {\r\n Message.error('已使用了其他的付款码支付,不可以再使用扫码支付了。');\r\n } else {\r\n this.setCurrentFocusAndAddPay(key, bookType);\r\n }\r\n break;\r\n default:\r\n this.setCurrentFocusAndAddPay(key, bookType);\r\n break;\r\n }\r\n }\r\n\r\n checkScanDisabled=(key)=>{\r\n const { paymode, newStyle } = this.store;\r\n const { PayStyle } = enumController.getEnumOj();\r\n let bdisabled=false;\r\n if(!newStyle){\r\n return bdisabled;\r\n }\r\n switch (key) {\r\n case PayStyle.wx:\r\n if (_find(paymode.thePaymodes, (mode) => { return (mode.paymentType === PayStyle.zfb || mode.paymentType === PayStyle.smzf) && parseFloat(mode.value)!=0 })) {\r\n bdisabled=true;\r\n }\r\n break;\r\n case PayStyle.zfb:\r\n if (_find(paymode.thePaymodes, (mode) => { return (mode.paymentType === PayStyle.wx || mode.paymentType === PayStyle.smzf) && parseFloat(mode.value)!=0 })) {\r\n bdisabled=true;\r\n }\r\n break;\r\n case PayStyle.smzf:\r\n if (_find(paymode.thePaymodes, (mode) => { return (mode.paymentType === PayStyle.zfb || mode.paymentType === PayStyle.wx) && parseFloat(mode.value)!=0 })) {\r\n bdisabled=true;\r\n }\r\n break;\r\n }\r\n return bdisabled;\r\n }\r\n\r\n onTabsClick = (key, bookType) => {\r\n if (!this.isDjqValidated(key)) { return };\r\n const { paymode, brefund, boriginReturn } = this.store;\r\n const { PayStyle, Differentiate } = enumController.getEnumOj();\r\n if (key === PayStyle.hyczk) {\r\n const { isProhibitMeStorageCard } = this.props;\r\n if (isProhibitMeStorageCard) {\r\n Message.warn('储值卡不可键盘录入,请刷卡!');\r\n return;\r\n }\r\n }\r\n const { MultiPay } = enumController.getEnumOj();\r\n const { noAlreadyWarn } = this.state;\r\n if(!stores.offlineSys.shouldSettlement(key)) return false;\r\n\r\n if (this.checkModeDisabled(key, brefund, boriginReturn)) {\r\n return;\r\n }\r\n let themode = _find(paymode.paymodes, { 'paymentType': key });\r\n //预订非全款不可使用零售抵现类支付方式\r\n // if(bookType == 'bookPay' && this.store.paymode.isNotFullOnlyBook && themode.virtualPay){\r\n // return Message.error(\"付订金时不可使用零售抵现类结算方式!\");\r\n // }\r\n if (themode.exchangeRate != 1) {\r\n let forign = _find(paymode.thePaymodes, (mode) => { return mode.exchangeRate != 1 && mode.paymentType != key });\r\n if (forign) {\r\n Message.error(\"只允许一种外币结算。\");\r\n return;\r\n }\r\n }\r\n themode = _find(paymode.thePaymodes, (mode) => { return mode.paymentType === key });\r\n const that = this;\r\n if (themode) {\r\n this.setCurrentFocusOnly(key);\r\n return;\r\n } else if (paymode.thePaymodes.length >= 1) {\r\n switch (this.props.initData(\"multiPay\")) {\r\n case MultiPay.FORBIDDEN:\r\n Message.error(\"当前设置为不支持多种结算方式。\");\r\n break;\r\n case MultiPay.NOTIFICATION:\r\n noAlreadyWarn ? ModalWraper.confirm({\r\n className: 'tplus-confirm-modal',\r\n title: '复合结算',\r\n content: '您确定要使用多种结算方式吗?',\r\n onOk() {\r\n that.setState({\r\n noAlreadyWarn: false\r\n })\r\n that.onTabsClick2(paymode, brefund, themode, key, bookType);\r\n },\r\n onCancel() {\r\n },\r\n }) : that.onTabsClick2(paymode, brefund, themode, key, bookType);\r\n break;\r\n default:\r\n this.onTabsClick2(paymode, brefund, themode, key, bookType);\r\n break;\r\n }\r\n } else {\r\n this.onTabsClick2(paymode, brefund, themode, key, bookType);\r\n }\r\n }\r\n\r\n editModal = (id,type,boriginReturn)=>{\r\n this.setState({currentIndex:id});\r\n const { PayStyle } = enumController.getEnumOj();\r\n switch(type){\r\n case PayStyle.hyczk:\r\n !boriginReturn && this.showCzkModal(id);\r\n break;\r\n case PayStyle.jfdx:\r\n !boriginReturn && this.showJfdxModal(id);\r\n break;\r\n case PayStyle.djq:\r\n this.showDjqModal(id);\r\n break;\r\n }\r\n }\r\n\r\n setCurrentFocusAndAddPay = (key, bookType, payId) => {\r\n this.store.changeFocusAndAddPay(key, bookType);\r\n if(this.store.bquick){\r\n this.handleSettle(\"quickPay\");\r\n }else{\r\n this.setFocusAndSelection(key, payId);\r\n }\r\n }\r\n\r\n onDelPay = (index,boriginReturn,type, bookType) => {\r\n const { PayStyle } = enumController.getEnumOj();\r\n const { type: storeType } = this.props\r\n if(storeType != 1 && boriginReturn && (type==PayStyle.hyczk || type==PayStyle.djq || type==PayStyle.jfdx)){\r\n Message.info('原单退货时,该结算方式不可以删除。');\r\n }else{\r\n this.store.delPay(index, bookType);\r\n }\r\n }\r\n\r\n handleChange = (index, e, type) => {\r\n if(!stores.offlineSys.shouldSettlement(this.store.paymode.currentFocus)) return;\r\n let mode=_find(this.store.paymode.thePaymodes,{'paymethodId':index});\r\n // if(type == 'bookPay' && this.store.paymode.isNotFullOnlyBook && mode.virtualPay){\r\n // return Message.error(\"付订金时不可使用零售抵现类结算方式!\");\r\n // }\r\n let currentInput = e.target;\r\n let amountMaxLength = parseInt(this.props.initData[\"AmountMaxLength\"] || 10);\r\n if (!isNaN(e.target.value) || e.target.value == '-') {\r\n if (e.target.value.length <= amountMaxLength) {\r\n this.store.changeValue(index, e.target.value, false, type);\r\n }\r\n }\r\n }\r\n\r\n setCurrentModeValue=(val,max)=>{\r\n const returnType = this.getNotBoriginReturn();\r\n const { PayStyle } = enumController.getEnumOj();\r\n let reg = returnType ? /^[\\d.-]+$/g : /^[\\d.]+$/g;\r\n if (this.store.paymode.currentMode.paymentType === PayStyle.hyczk || this.store.paymode.currentMode.paymentType === PayStyle.jfdx) {\r\n if (!val) {\r\n this.setState(({\r\n storageValue: val\r\n }))\r\n } else {\r\n if (!reg.test(val)) {\r\n return;\r\n } else {\r\n let value1 = val.split('.') ;\r\n if (value1.length > 1) {\r\n if (value1[1].length < 3) {\r\n this.setState({\r\n storageValue: val\r\n })\r\n } else {\r\n return;\r\n }\r\n } else {\r\n if (val.length > 9) {\r\n return\r\n } else {\r\n this.setState({\r\n storageValue: val\r\n })\r\n }\r\n }\r\n }\r\n }\r\n }\r\n this.store.paymode.setCurrentModeValue(val,max);\r\n }\r\n\r\n onBlur = (index, e, type) => {\r\n this.currentInput = null;\r\n this.store.changeFocusOnly(-1);\r\n this.store.changeValue(index, e.target.value == '-' ? 0 : e.target.value, true, type);\r\n }\r\n\r\n onFocus = (index, mode, paymode, e) => {\r\n this.currentInput = e.target;\r\n this.setState({ currentIndex: index });\r\n if (mode.paymentType == paymode.currentFocus) return;\r\n this.setCurrentFocusOnly(mode.paymentType);\r\n }\r\n\r\n onFocusHack = (index, mode, paymode, e) => {\r\n this.currentInput = e.target;\r\n this.setState({ currentIndex: index });\r\n if (mode.paymentType == paymode.currentFocus) return;\r\n this.store.changeFocusOnly(mode.paymentType);\r\n }\r\n\r\n setCurrentFocusOnly =(key)=>{\r\n this.store.changeFocusOnly(key);\r\n this.setFocusAndSelection(key);\r\n }\r\n\r\n appendCzkmode=(boriginReturn, params)=>{\r\n const { PayStyle } = enumController.getEnumOj();\r\n if(boriginReturn){\r\n Message.info('原单退货时不可以使用非原单的储值卡结算方式。');\r\n return ;\r\n }\r\n let bappend=true;\r\n const { paymode, newStyle, member } = this.store;\r\n if(newStyle && member.ID && _findIndex(paymode.thePaymodes, (mode) => {return mode.paymentType === PayStyle.hyczk && mode.member.id==member.ID} )==-1){\r\n bappend=false;\r\n }\r\n this.showCzkModal(-1,bappend, params);\r\n }\r\n\r\n djqChecked=(q, dto)=>{\r\n const { Differentiate } = enumController.getEnumOj()\r\n if(this.store.paymode.currentMode.boriginReturn){\r\n Message.info(`原单退货时${Differentiate.COUPON}不可以取消。`);\r\n return ;\r\n }\r\n this.store.paymode.calcDjqCheckValue(q, this.store.dto);\r\n // this.props.onGetCouponList && this.props.onGetCouponList(this.store.dto, _filter(this.store.paymode.currentMode.djqs,(djq)=>{return djq.couponCategoryEnum !== 'RIGHT'}));\r\n // this.props.onGetCouponList && this.props.onGetCouponList(this.store.dto, _filter(this.store.paymode.currentMode.djqs,(djq)=>{return djq.checked}), this.store.paymode.currentMode.djqs);\r\n }\r\n\r\n addDjq=()=>{\r\n //document.getElementById(`inputS${index}`)\r\n //const v = _trim(this['inputdjq']['input']['value']);\r\n //api\r\n // this.store.addDjq('10000','5元优惠券',5,'无门槛','2019-12-31',true);\r\n const v=_trim(this.inputdjq.input.value);\r\n // if(v===''){\r\n // return ;\r\n // }\r\n this.store.checkCoupon(v).then(()=>{\r\n this.inputdjq.input.focus();\r\n }).finally(() => {\r\n setTimeout(() => {\r\n this.inputdjq.input.value='';\r\n let ele = document.getElementById('djqInput');\r\n ele.value = '';\r\n }, 100)\r\n })\r\n }\r\n\r\n loadCzk = (v) => {\r\n if (this.czkdebounced) {\r\n return;\r\n }\r\n this.czkdebounced = _debounce(async () => {\r\n const returnType = this.getNotBoriginReturn();\r\n let memberdata1 = await this.store.loadCzk(v, returnType);\r\n if (memberdata1 && memberdata1.length === 1) {\r\n if (this.store.paymode.currentMode.storageCardNo) {\r\n this.setState({\r\n czkValue: this.store.paymode.currentMode.storageCardNo\r\n })\r\n }\r\n } else if (memberdata1 && memberdata1.length >= 1) {\r\n this.setState({\r\n czkVisible: true,\r\n moreCzkVisible: true,\r\n memberdata1: memberdata1\r\n });\r\n }\r\n }, 1000, {\r\n 'leading': true,\r\n 'trailing': false\r\n });\r\n this.czkdebounced();\r\n setTimeout(() => {\r\n this.czkdebounced.cancel();\r\n this.czkdebounced = null;\r\n }, 2000)\r\n }\r\n \r\n isDjqValidated(key) {\r\n const { paymode } = this.store;\r\n const { PayStyle } = enumController.getEnumOj();\r\n if (key === PayStyle.djq && Math.Minus(paymode.received, paymode.amount) > 0) {\r\n Message.warn('实收金额已大于应收金额,不允许使用优惠券');\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n onHotKeyClick1=(mode,index,boriginReturn,bookType)=>{\r\n if (!this.isDjqValidated(mode.paymentType)){ return };\r\n // if (bookType == 'bookPay' && this.store.paymode.isNotFullOnlyBook && mode.virtualPay){\r\n // return Message.error(\"付订金时不可使用零售抵现类结算方式!\");\r\n // }\r\n if(!stores.offlineSys.shouldSettlement(mode.paymentType)) return false;\r\n if(this.hotkeydebouncedPayMode == mode){\r\n return;\r\n }\r\n if(this.hotkeydebounced){\r\n this.hotkeydebounced.cancel();\r\n this.hotkeydebounced=null;\r\n }\r\n this.hotkeydebounced=_debounce(()=>{\r\n this.hotkeydebouncedPayMode = mode;\r\n this.onHotKeyClickModal(mode,index,boriginReturn);\r\n },500,{\r\n 'leading': true,\r\n 'trailing': false\r\n });\r\n this.hotkeydebounced();\r\n setTimeout(()=>{\r\n this.hotkeydebounced.cancel();\r\n this.hotkeydebounced=null;\r\n this.hotkeydebouncedPayMode = \"\";\r\n },1000)\r\n }\r\n\r\n onHotKeyClickModal=(mode,index,boriginReturn)=>{\r\n const { PayStyle } = enumController.getEnumOj();\r\n let { brefund } = this.store;\r\n if(this.checkModeDisabled(mode.paymentType,brefund,boriginReturn)){\r\n return;\r\n }\r\n if(mode.paymentType==PayStyle.hyczk){\r\n this.appendCzkmode(boriginReturn);\r\n }else{\r\n this.editModal(index, mode.paymentType, boriginReturn)\r\n }\r\n }\r\n\r\n onHotKeyClick2=(index,mode,paymode,e, bookType)=>{\r\n if(!stores.offlineSys.shouldSettlement(mode.paymentType)) return false;\r\n if(this.hotkeydebouncedPayMode == mode){\r\n return;\r\n }\r\n // if (bookType == 'bookPay' && this.store.paymode.isNotFullOnlyBook && mode.virtualPay){\r\n // return Message.error(\"付订金时不可使用零售抵现类结算方式!\");\r\n // }\r\n this.store.changeClickFocusOnly(mode.paymentType);\r\n this.setCurrentFocusOnly(mode.paymentType);\r\n if(this.hotkeydebounced){\r\n this.hotkeydebounced.cancel();\r\n this.hotkeydebounced=null;\r\n }\r\n this.hotkeydebounced=_debounce(()=>{\r\n this.hotkeydebouncedPayMode = mode;\r\n this.onFocus(index, mode, paymode, e);\r\n },500,{\r\n 'leading': true,\r\n 'trailing': false\r\n });\r\n this.hotkeydebounced();\r\n setTimeout(()=>{\r\n this.hotkeydebounced.cancel();\r\n this.hotkeydebounced=null;\r\n this.hotkeydebouncedPayMode = \"\";\r\n },1000)\r\n }\r\n\r\n onHotKeyEnter = (e, notsettle) => {\r\n let { paymode, brefund, newStyle } = this.store;\r\n // if (this.hotkeydebouncedPayMode == paymode) {\r\n // return;\r\n // }\r\n if (this.hotkeydebounced) {\r\n this.hotkeydebounced.cancel();\r\n this.hotkeydebounced = null;\r\n }\r\n this.hotkeydebounced = _debounce(() => {\r\n let boriginReturn = this.getBoriginReturn();\r\n let thePaymodes = newStyle ? _filter(paymode.thePaymodes, (m) => { return !(this.checkModeDisabled(m.paymentType, brefund, boriginReturn) && parseFloat(m.value) == 0); }) : paymode.thePaymodes;\r\n // 定义当前检测的paymode\r\n this.hotkeydebouncedPayMode = paymode;\r\n if (!notsettle && !this.checkSettleDisabled(paymode, thePaymodes)) {\r\n this.handleSettle();\r\n } else if ((thePaymodes || []).length > 0) {\r\n // 根据currentIndex = paymethodeId 获取当前支付方式位置\r\n let payIndex = -1;\r\n thePaymodes.forEach((paymodes, index) => {\r\n if (paymodes.paymethodId == this.state.currentIndex) payIndex = index;\r\n });\r\n this.setFocusAndSelectionMode(thePaymodes, payIndex);\r\n }\r\n }, 500, {\r\n 'leading': true,\r\n 'trailing': false\r\n });\r\n this.hotkeydebounced();\r\n setTimeout(() => {\r\n this.hotkeydebounced && this.hotkeydebounced.cancel();\r\n this.hotkeydebounced = null;\r\n this.hotkeydebouncedPayMode = \"\";\r\n }, 1000)\r\n }\r\n\r\n setFocusAndSelectionMode = (thePaymodes,currentIndex) => {\r\n const { PayStyle } = enumController.getEnumOj();\r\n let displayPayModeList = [...thePaymodes];\r\n // 复制支付方式列表\r\n const SaoMaPayMode = displayPayModeList.find( mode => mode.paymentType == PayStyle.smzf);\r\n // 查找扫码支付\r\n if(SaoMaPayMode){\r\n // 如果扫码支付存在 则 排除微信支付宝\r\n displayPayModeList = displayPayModeList.filter( mode => mode.paymentType != PayStyle.zfb && mode.paymentType != PayStyle.wx )\r\n }\r\n // 查找到下一次enter键后的支付方式\r\n let paymodeOb = this.findHaveNoModlePayType(displayPayModeList,currentIndex);\r\n if(paymodeOb){\r\n // 获取焦点\r\n this.setFocusAndSelection(paymodeOb.mode.paymentType);\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param {*} thePaymodes 支付方式列表\r\n * @param {*} currenIndex 当前支付方式下标\r\n * @param {*} symbol 从当前currenIndex开始 还是从当前currenIndex截止\r\n */\r\n findModlePayBySplice = (thePaymodes,currenIndex,symbol) =>{\r\n const { PayStyle } = enumController.getEnumOj();\r\n let findIndex = currenIndex;\r\n const endCurrentMode = thePaymodes.find((mode, index) => {\r\n findIndex++;\r\n return (symbol? index > currenIndex:index < currenIndex) &&\r\n mode.paymentType != PayStyle.hyczk &&\r\n mode.paymentType != PayStyle.djq &&\r\n mode.paymentType != PayStyle.jfdx &&\r\n stores.offlineSys.shouldSettlement(mode.paymentType,true)\r\n });\r\n if(endCurrentMode) return { mode:endCurrentMode,index:findIndex}\r\n return null;\r\n }\r\n\r\n findHaveNoModlePayType = (thePaymodes,currenIndex) => {\r\n if(!thePaymodes || thePaymodes.length == 0) return null;\r\n const endCurrentModeOb = this.findModlePayBySplice(thePaymodes,currenIndex,true)\r\n if(endCurrentModeOb) return endCurrentModeOb;\r\n const startCurrentModeOb = this.findModlePayBySplice(thePaymodes,currenIndex,false)\r\n if(startCurrentModeOb) return startCurrentModeOb;\r\n return null\r\n }\r\n\r\n\r\n setFocusAndSelection = (key, payId) => {\r\n const that=this;\r\n const { paymode } = this.store;\r\n const { PayStyle } = enumController.getEnumOj();\r\n let themode = _find(paymode.thePaymodes, (mode) => mode.paymentType === key);\r\n if (key === PayStyle.hyczk) {\r\n themode = _find(paymode.thePaymodes, (mode) => mode.paymethodId === payId);\r\n }\r\n const index = (themode && themode.paymethodId) || -1;\r\n if (index !== -1) {\r\n setTimeout( ()=> {\r\n const input = document.getElementById(`inputS${index}`)\r\n that.setState({currentIndex:index});\r\n this.currentInput = input;\r\n setTimeout( ()=> {\r\n input.focus();\r\n input.setSelectionRange(0, input.value.length)\r\n }, 10)\r\n\r\n }, 200)\r\n }\r\n }\r\n\r\n settleUnReturn = async () => {\r\n const that = this;\r\n ModalWraper.confirm({\r\n className: 'tplus-confirm-modal',\r\n zIndex: 1007,\r\n content: <div className='unReturn'><div className='title'>支付超时,需要重新查询支付结果!</div><div>若不重新查询,会出现顾客支付成功,但零售单收款不成功的情况。</div></div>,\r\n async onOk() {\r\n window.__queryingModal = openQueryingModal();\r\n let result = await that.store.querySettleResult();\r\n setTimeout(() => {\r\n if (window.__queryingModal) {\r\n window.__queryingModal.destroy()\r\n window.__queryingModal = null\r\n }\r\n }, 0)\r\n switch (result.Flag) {\r\n case \"0\"://成功\r\n that.store.setDtoID(result.ID);\r\n that.settleSuccess();\r\n break;\r\n case \"1\"://处理中\r\n that.settleUnReturn();\r\n // Message.info(\"结算正在处理中,请稍后再次查询。\");\r\n break;\r\n case \"2\"://失败\r\n Message.info(`结算失败,原因:${result.Message}。`);\r\n // that.settleCanceled();\r\n break;\r\n }\r\n },\r\n onCancel() {\r\n // this.settleCanceled();\r\n },\r\n });\r\n }\r\n\r\n settleCanceled=()=>{\r\n console.log('settlement--settleCanceled--调用清除数据==Focus==')\r\n this.props.clearVoucherData && this.props.clearVoucherData();\r\n this.cancelState();\r\n }\r\n\r\n settleSuccess = async () => {\r\n //提示成功\r\n const { PayStyle } = enumController.getEnumOj();\r\n let { amount, received, thePaymodes } = this.store.paymode;\r\n let { IdbusiType } = this.store.dto;\r\n let charge = this.store.paymode.charge;\r\n let openCashBox = !!_find(thePaymodes, (mode) => { return mode.paymentType == PayStyle.xianjin });\r\n // 判断双屏显示。\r\n const _this = this;\r\n const showTwoScreen = function (amount, received, charge) {\r\n const getScreenType = function () {\r\n let flag = false;\r\n if (_this.hasElectron === true || _this.isHorizontalSunMi) {\r\n let data = localStore.get('setting_setData') || [];\r\n data = data.filter(item => item.Name === 'EnableDoubleScreen');\r\n data = data && data.length > 0 ? data.shift() : null;\r\n if (data && data.Value === '1') {\r\n flag = true;\r\n }\r\n }\r\n return flag;\r\n }\r\n const params = {\r\n step: 3,\r\n data: {\r\n amount: amount,\r\n received: received,\r\n charge: charge\r\n }\r\n }\r\n let screenType = getScreenType();\r\n if (screenType === true) { //副屏-第二屏幕\r\n if (_this.isHorizontalSunMi) {\r\n window.sunMi_PresentationManager.sendMessageToSecondScreen(params);\r\n setTimeout(()=>{\r\n window.sunMi_PresentationManager.sendMessageToSecondScreen({ step: 1 });\r\n },3000)\r\n } else {\r\n nativeMs && nativeMs.setIpcRendererMethod('ReplyScreen', params);\r\n }\r\n setTimeout(() => { _this.props.onSettleSuccess && _this.props.onSettleSuccess({ openCashBox }) }, 1500)\r\n } else {\r\n _this.props.onSettleSuccess && _this.props.onSettleSuccess({ openCashBox });\r\n }\r\n }\r\n\r\n const { getSettleGift, isFull } = this.store;\r\n const { type } = this.props;\r\n let resp1 = false;\r\n if (type !==1) {\r\n try {\r\n // 获取支付成功后礼包情况\r\n resp1 = await getSettleGift();\r\n } catch(e) {\r\n console.log(\"获取支付礼包getSettleGift失败\");\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n if (window.__loadingModal) {\r\n window.__loadingModal.destroy()\r\n window.__loadingModal = null\r\n }\r\n let isXianjin = _this.state.isXianjin\r\n showTwoScreen(amount, received, charge);\r\n if (isXianjin) this.handleGuestShow(4, charge);\r\n _this.setState({\r\n noAlreadyWarn: true\r\n })\r\n\r\n let { MemberPoints, isMemberPointsReturn, isReturn } = _this.props;\r\n let message = \"支付成功\"\r\n if ((isReturn || isMemberPointsReturn) && Number(amount) == Number(0)) {\r\n message = \"退货成功\"\r\n } else if (MemberPoints && Number(amount) == Number(0)) {\r\n message = \"兑换成功\"\r\n } else if (IdbusiType == 39 && received == 0){\r\n message = \"取货成功\"\r\n }\r\n window.__successModal = showSuccessModal(amount, received, charge, _this.props.onModalClose, isXianjin, message, resp1 && resp1.data, stores, IdbusiType, isFull, () => {\r\n _this.handleGuestShow(5)\r\n })\r\n this.setState({ isXianjin: false })\r\n this.cancelState();\r\n }, 0)\r\n }\r\n // 处理客显显示功能\r\n handleGuestShow = (dtype, value) => {\r\n if (this.hasElectron === false) return;\r\n let dt = localStore.get('portsetting_hardSet') || [];\r\n const { guestshow_enable, guestshow_clear, guestshow_welcome, guestshow_collect, guestshow_refund, guestshow_change } = dt || {};\r\n const hasSuccess = localStore && localStore.get('portsetting_hardSet_isSuccess');\r\n if (!guestshow_enable || (!!guestshow_enable && hasSuccess == '0')) return;\r\n let other = '';\r\n switch (dtype) {\r\n case 0: //欢迎\r\n other = guestshow_welcome;\r\n break;\r\n case 2: //退款\r\n other = (guestshow_refund + \"\").replace('[含税总金额]', Math.abs(value))\r\n break;\r\n case 3: //收款\r\n other = (guestshow_collect + \"\").replace('[含税总金额]', value)\r\n break;\r\n case 4: //找零\r\n other = (guestshow_change + \"\").replace('[找零金额]', getFixedNumber(value))\r\n break;\r\n case 5: //清除\r\n other = guestshow_clear;\r\n break;\r\n }\r\n let params = JSON.stringify({ price: '', qty: '', total: '', inv: '', wel: '', other: other })\r\n console.log(`Send客显sendDataCusDisp:状态-${dtype},参数-${params}`)\r\n HardwareAPI.sendDataCusDisp({ data: params, dataType: dtype }, ret => { console.log(`Return客显sendDataCusDisp:状态-${dtype},返回-${JSON.stringify(ret)}`) })\r\n }\r\n\r\n handleSettle = async (args) =>{\r\n this.setState({\r\n settleDisabled: true,\r\n })\r\n console.log(\"settlement.handleSettle开始执行,参数:\",+args);\r\n const { PayStyle } = enumController.getEnumOj();\r\n const { paymode,brefund,boriginReturn,newStyle } = this.store;\r\n const isQuickPay = args === 'quickPay'\r\n const that =this;\r\n let status = false\r\n paymode.thePaymodes.forEach((v) => {\r\n if (v.paymentType === PayStyle.xianjin && v.value !== '0.00') {\r\n status = true\r\n }\r\n })\r\n this.setState({\r\n isXianjin: status ? true : false\r\n })\r\n if(that.checkCharge() && Math.abs(paymode.receivable)>that.props.initData(\"posChangeUpperAmount\")){\r\n Message.error('找零不能超过最大找零金额:'+getFixedNumber(that.props.initData(\"posChangeUpperAmount\"))+'元');\r\n this.setState({\r\n settleDisabled: false\r\n })\r\n return;\r\n }\r\n if(args !==\"zero\" && !newStyle){\r\n let zeromode=_find(paymode.thePaymodes,(mode)=>{\r\n return parseFloat(mode.value)==0 || (mode.exchangeRate!=1?parseFloat(mode.value2):parseFloat(mode.value))==0;\r\n })\r\n if(zeromode){\r\n this.setState({\r\n settleDisabled: false\r\n })\r\n Message.error(zeromode.name +' 的结算金额为零,不可以结算。');\r\n return;\r\n }\r\n }\r\n\r\n let promises = []\r\n const thePaymodes = _sortBy(newStyle ?_filter(paymode.thePaymodes,(mode)=>{return parseFloat(mode.value)!=0;}):paymode.thePaymodes, 'orderBy')\r\n if(isQuickPay ){\r\n let quickmode=thePaymodes[0];\r\n if (this.checkModeDisabled(quickmode.paymentType,brefund,boriginReturn)){\r\n this.setState({\r\n settleDisabled: false\r\n })\r\n Message.error('退款不能使用'+ quickmode.name +'结算,请使用其他结算方式!');\r\n return;\r\n }\r\n }\r\n _forEach(thePaymodes, (mode) => {\r\n if (!(boriginReturn && brefund) && (mode.paymentType == PayStyle.zfb || mode.paymentType == PayStyle.wx || mode.paymentType == PayStyle.smzf || mode.paymentType == PayStyle.SQBPAY || mode.paymentType == PayStyle.CSYH\r\n || (mode.paymentType == PayStyle.xianjin && isQuickPay))) {\r\n promises.push(that.inputConfirm(mode, isQuickPay))\r\n }\r\n });\r\n\r\n const commit = async (values) => {\r\n const result = await this.store.commit(this.props.bTest);\r\n if (result === true) {//成功\r\n that.settleSuccess();\r\n Promise.resolve()\r\n } else {\r\n this.setState({\r\n settleDisabled: false\r\n })\r\n //提示失败\r\n setTimeout(() => {\r\n if (window.__loadingModal) {\r\n window.__loadingModal.destroy()\r\n window.__loadingModal = null\r\n }\r\n //撤销支付\r\n }, 0)\r\n if (result && (result.Code || result.code)) {\r\n switch (result.Code || result.code) {\r\n case 'RE_Settle_UnReturn':\r\n console.log('settlement--RE_Settle_UnReturn--调用清除数据==Focus==')\r\n this.props.clearVoucherData && this.props.clearVoucherData();\r\n this.cancelState();\r\n break;\r\n case 'ECONNABORTED'://error.code === 'ECONNABORTED' && error.message.indexOf('timeout')\r\n result.message.indexOf('timeout') > -1 && that.settleUnReturn();\r\n break;\r\n }\r\n }\r\n if(isQuickPay){\r\n that.props.onCancelSettle && that.props.onCancelSettle();\r\n that.cancelState();\r\n }\r\n\r\n await Promise.reject()\r\n }\r\n }\r\n\r\n async function handleUserInputs(promises) {\r\n let results = []\r\n try {\r\n for (let p of promises) {\r\n const result = await p\r\n results.push(result)\r\n }\r\n window.__loadingModal = openLoadingModal()\r\n await commit(results);\r\n } catch (err) {\r\n // notification.open({\r\n // message: '错误',\r\n // description: '失败, 请重新结算',\r\n // });\r\n }\r\n }\r\n\r\n handleUserInputs(promises)\r\n }\r\n\r\n handleCzk = async () =>{\r\n const that =this;\r\n const curmode = this.store.paymode.currentMode;\r\n let promises = [];\r\n if (curmode.value > 0) {\r\n const { PayStyle } = enumController.getEnumOj();\r\n if (curmode.paymentType === PayStyle.hyczk) {\r\n if (curmode.cardTypeEnum === 'BALANCE_CARD') {\r\n !curmode.freePaymentPasswordStore && promises.push(that.inputPwd(curmode));\r\n } else {\r\n curmode.isNeedPassword && promises.push(that.inputPwd(curmode));\r\n }\r\n }\r\n }\r\n const commit = async (values)=> {\r\n //密码校验\r\n const result= values.length>0 ? (await that.store.validePwd(values[0])) : \"\";\r\n if(result==\"\"){//成功\r\n //返回\r\n that.setCurrentFocusAndAddPay(curmode.paymentType, null, curmode.paymethodId);\r\n Promise.resolve()\r\n }else{\r\n //Message.info(\"密码不正确\");\r\n await Promise.reject(result)\r\n }\r\n }\r\n\r\n async function handleUserInputs(promises) {\r\n let results = []\r\n try {\r\n for (let p of promises) {\r\n const result = await p\r\n results.push(result)\r\n }\r\n await commit(results);\r\n } catch (err) {\r\n if(err!=\"cancelpwd\"){\r\n Message.error(err);\r\n setTimeout(()=>{that.handleCzk();},500);\r\n }\r\n }\r\n }\r\n\r\n handleUserInputs(promises)\r\n }\r\n\r\n //that[`inputS${paymode.paymethodId}`]\r\n fKeyboardOnOk = (paymethodeId) => {\r\n const input=this[`inputS${paymethodeId}`].input;\r\n return (e)=>{\r\n input && input.blur();\r\n Keyboard.close();\r\n }\r\n }\r\n\r\n fKeyboardOnClose = (paymethodeId) => {\r\n const input=this[`inputS${paymethodeId}`].input;\r\n return (e)=>{\r\n input && input.blur();\r\n Keyboard.close();\r\n }\r\n }\r\n\r\n keyboardOnOk = (e) => {\r\n this.inputkey && this[this.inputkey] && this[this.inputkey].input && this[this.inputkey].input.blur();\r\n Keyboard.close();\r\n }\r\n\r\n keyboardOnClose = (e) => {\r\n this.inputkey && this[this.inputkey] && this[this.inputkey].input && this[this.inputkey].input.blur();\r\n Keyboard.close();\r\n }\r\n\r\n changefn=(e)=>{\r\n console.log(e)\r\n }\r\n\r\n setConfirmPwdValue = (value) => {\r\n this.setState({\r\n confirmPwd: value\r\n })\r\n }\r\n\r\n inputPwd = async (paymode) => {\r\n const that = this\r\n const { confirmPwd } = this.state;\r\n return new Promise(function (resolve, reject) {\r\n const modal = asyncModal({\r\n onPressEnter: () => {\r\n Keyboard.close();\r\n const v = _trim(that[`inputAmount`]['input']['value']);\r\n // if (v !== '') {\r\n modal.destroy()\r\n const { confirmPwd } = that.state || {};\r\n setTimeout(() => {\r\n paymode.authCode=v;\r\n resolve({\r\n id:paymode.member.id,\r\n pwd: confirmPwd,\r\n })\r\n }, 100)\r\n // } else {\r\n // Message.info('请输入密码');\r\n // throw \"error\";\r\n // }\r\n },\r\n onPressEsc: () => {\r\n Keyboard.close();\r\n reject('cancelpwd')\r\n },\r\n maskClosable: false,\r\n keyboard: false,\r\n closable: true,\r\n title:paymode.name,\r\n width:450,\r\n className: (that.isHorizontalSunMi || !that.isMobileEnvironment) ? 'pwdModal' : 'pwdModal extraHeight',\r\n // 储值卡结账时显示为密码框\r\n content: (<div className=\"scanInput\">\r\n <div>\r\n <span className=\"label\">应收金额:</span><span className=\"yfje\">{getFixedNumber(paymode.value)}</span>\r\n </div>\r\n <div className=\"pwd\">\r\n <span className=\"label\">储值余额密码:</span>\r\n <span>\r\n {/* <input type=\"text\" style={{width:'0px',marginLeft:'20px'}}></input> */}\r\n {/* <Input\r\n className=\"content\"\r\n style={{marginLeft:'-20px'}}\r\n placeholder=\"输入密码\"\r\n ref={input => that[`inputS${paymode.paymethodId}`] = input}\r\n onChange={(e) => {\r\n this.setState({\r\n confirmPwd: e.target.value\r\n })\r\n }}\r\n value={confirmPwd}\r\n onFocus={(e)=>{\r\n const inputTarget = that[`inputS${paymode.paymethodId}`].input;\r\n Keyboard.open((v)=>{\r\n const value = Keyboard.getNewValue(inputTarget, inputTarget.value, v);\r\n console.log('zlf',inputTarget, inputTarget.value);\r\n inputTarget.value=value;\r\n this.setState({\r\n confirmPwd: e.target.value\r\n })\r\n }, that.fKeyboardOnOk(paymode.paymethodId), that.fKeyboardOnClose(paymode.paymethodId))()\r\n }\r\n }\r\n onBlur={(e)=>{\r\n this.setState({\r\n confirmPwd: e.target.value\r\n })\r\n Keyboard.close();\r\n }}\r\n /> */}\r\n <NumkeyboardPassword\r\n className=\"content\"\r\n placement=\"rightBottom\"\r\n newType='positive'\r\n bordered\r\n placeholder=\"请输入6位数字密码\"\r\n style={{ width: 266, height: 32 }}\r\n maxLength={6}\r\n ref={input => that.inputAmount = input}\r\n onChange={value => that.setConfirmPwdValue(value)}\r\n // onBlur={value => that.handleConfirmBlur}\r\n />\r\n </span>\r\n </div>\r\n <div className=\"buttonRegion\">\r\n <div className=\"fr\">\r\n <Button size=\"large\" onClick={() => {\r\n modal.destroy()\r\n reject('cancelpwd')//\r\n }}>取消\r\n </Button>\r\n <Button\r\n type=\"primary\" size=\"large\" onClick={() => {\r\n const v = _trim(that[`inputAmount`]['input']['value'])\r\n const { confirmPwd } = that.state || {};\r\n // if (v !== '') {\r\n modal.destroy()\r\n // if (isQuickPay) {\r\n // window.__loadingModal = openLoadingModal()\r\n // }\r\n setTimeout(() => {\r\n paymode.authCode=v;\r\n resolve({\r\n id:paymode.member.id,\r\n pwd: confirmPwd,\r\n })\r\n }, 100)\r\n // } else {\r\n // Message.info('请输入密码');\r\n // }\r\n }}>确定\r\n </Button>\r\n </div>\r\n </div>\r\n </div>),\r\n })\r\n // 扫码框自动聚焦\r\n setTimeout(() => {\r\n that[`inputS${paymode.paymethodId}`] && that[`inputS${paymode.paymethodId}`].input.focus();\r\n that.inputAmount && that.inputAmount.input.focus();\r\n }, 300)\r\n })\r\n }\r\n\r\n isNoProductTip(nonProductMap) {\r\n const { RetailDetails } = this.context.viewModel.data || {};\r\n let temphtml = [];\r\n if(Object.keys(nonProductMap).length > 0){\r\n const columns = [\r\n {\r\n title: '商品名称',\r\n dataIndex: 'name',\r\n key: 'name',\r\n ellipsis: true,\r\n },\r\n {\r\n title: '原因',\r\n dataIndex: 'reason',\r\n key: 'reason',\r\n ellipsis: true,\r\n },\r\n ];\r\n for (let key in nonProductMap){\r\n let product = RetailDetails.find(o=>o.Idinventory == key)\r\n temphtml.push({name: product.Inventory.Name, reason: nonProductMap[key]})\r\n }\r\n const modal = asyncModal({\r\n onPressEnter: () => {\r\n modal.destroy();\r\n },\r\n maskClosable: false,\r\n keyboard: false,\r\n closable: true,\r\n title:'不可配送商品',\r\n width:600,\r\n className: '',\r\n content: (\r\n <div className=\"not-distribution-tip\">\r\n <div className=\"tip-content\">\r\n <Table\r\n columns={columns}\r\n dataSource={temphtml}\r\n scroll={{ y: 240 }}\r\n pagination={false}\r\n size='middle'/>\r\n </div>\r\n <div className=\"not-distribution-btn\">\r\n <Button type=\"primary\" onClick={() => {modal.destroy()}}>知道了</Button>\r\n </div>\r\n </div>\r\n ),\r\n })\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n btnDebounced = async (type, bquick) => {\r\n let IdbusiType = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.IdbusiType;\r\n let CustomerPhone = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.CustomerPhone;\r\n let DistributionMode = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.DistributionMode;\r\n let Address = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.Address;\r\n //预订时,若没录入买家手机号,或配送方式为快递时,弹框买家信息确认框\r\n if(IdbusiType == 38){\r\n //预售下单时,启用了序列号管理和批号/有效期管理的商品,不支持快递和同城配送\r\n let isEnableSerialNumber = PosInitData(\"IsEnableSerialNumber\");\r\n let resultObj = this.context.viewModel.data.RetailDetails.find(o=>{\r\n return o.Inventory.IsSerialNumber && (o.Inventory.IsBatch || o.Inventory.IsQualityPeriod);\r\n });\r\n if(isEnableSerialNumber && resultObj && (DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE')){\r\n return Message.error('启用了序列号管理和批号/有效期管理的商品,不支持快递和同城配送');\r\n }\r\n\r\n if(DistributionMode.Id == 'ON_SITE_PICKUP' && !CustomerPhone && this.context.viewModel.data.Member.Mobilephone){\r\n this.props.syncMemberInfoProcessor();\r\n }\r\n if(!CustomerPhone && !this.context.viewModel.data.Member.Mobilephone || DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE'){\r\n let title = (DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE') && Address ? '收货地址确认' : '收货人'\r\n await this.props.openBuyerModal(title);\r\n }\r\n }\r\n\r\n this.setState({\r\n bquick,\r\n isInputMember: true\r\n })\r\n const { PayStyle } = enumController.getEnumOj();\r\n const { paymode,brefund,boriginReturn,newStyle } = this.store;\r\n\r\n if(bquick && !stores.offlineSys.shouldSettlement(type)) return false;\r\n\r\n let status = false;\r\n paymode.thePaymodes.forEach((v) => {\r\n if (v.paymentType === PayStyle.xianjin && v.value !== '0.00') {\r\n status = true\r\n }\r\n })\r\n this.setState({\r\n isXianjin: status ? true : false\r\n })\r\n\r\n if (this.btndebounced) {\r\n return;\r\n }\r\n this.btndebounced = _debounce(() => {\r\n if (bquick) {\r\n this.quickSettle(type);\r\n } else {\r\n this.showModal();\r\n }\r\n }, 1000, {\r\n 'leading': true,\r\n 'trailing': false\r\n });\r\n this.btndebounced();\r\n setTimeout(() => {\r\n this.btndebounced.cancel();\r\n this.btndebounced = null;\r\n }, 2000)\r\n }\r\n\r\n onCzkChange = (v) => {\r\n const { isNewRetailBCPos } = platform || {};\r\n if (!isNewRetailBCPos) {\r\n this.store.paymode.currentMode.member.setCardNo(v);\r\n }\r\n if (!/^[A-Za-z0-9]*$/.test(v)) {\r\n return;\r\n }\r\n this.setState({\r\n czkValue: v\r\n })\r\n }\r\n\r\n czkKeyboardOnOk = (e) => {\r\n this.czkInput.input.blur();\r\n Keyboard.close();\r\n this.loadCzk(this.czkInput.input[\"value\"]);\r\n }\r\n\r\n czkKeyboardOnClose = (e) => {\r\n this.czkInput && this.czkInput.input.blur();\r\n Keyboard.close();\r\n }\r\n\r\n onDjqChange=(v,isKeyBorad = false)=>{\r\n this.inputdjq.input.value=v;\r\n if(this.debounced){\r\n this.debounced.cancel();\r\n this.debounced = null;\r\n }\r\n if(!isKeyBorad){\r\n this.debounced=_debounce(()=>{this.addDjq()},2000);\r\n this.debounced();\r\n }\r\n }\r\n\r\n djqKeyboardOnOk = (e) => {\r\n this.inputdjq.input && this.inputdjq.input.blur();\r\n Keyboard.close();\r\n this.addDjq();\r\n // this.loadCzk(this.czkInput.input[\"value\"]);\r\n }\r\n\r\n djqKeyboardOnClose = (e) => {\r\n this.inputdjq.input && this.inputdjq.input.blur();\r\n Keyboard.close();\r\n }\r\n\r\n checkCharge = () => {\r\n const { PayStyle } = enumController.getEnumOj();\r\n const { paymode } = this.store;\r\n const themode=_find(paymode.thePaymodes, mode=>mode.paymentType===PayStyle.xianjin);\r\n return (paymode.receivable < 0 && themode && themode.value>=Math.abs(paymode.receivable));\r\n }\r\n\r\n checkThepaymode(key){\r\n return _findIndex(this.store.paymode.thePaymodes,{paymentType:key})>-1;\r\n }\r\n\r\n onKeyboardChange(key) {\r\n const { PayStyle } = enumController.getEnumOj();\r\n if (this.currentInput) {\r\n if(this.store.paymode.currentMode) {\r\n let paymentType1 = this.store.paymode.currentMode.paymentType;\r\n if (paymentType1 === PayStyle.djq || paymentType1 === PayStyle.hyczk || paymentType1 === PayStyle.jfdx) {\r\n return;\r\n }\r\n }\r\n const value = Keyboard.getNewValue(this.currentInput, this.currentInput.value, key, true);\r\n if (!isNaN(value) || value == '-') {\r\n this.currentInput.value = value;\r\n this.store.changeValue(this.state.currentIndex, value, false);\r\n }\r\n }\r\n }\r\n\r\n renderToolbtn(mode,index,bookType){\r\n const { PayIcon , PayStyle} = enumController.getEnumOj();\r\n let { isReturn } = this.props;\r\n let { paymode, brefund, boriginReturn } = this.store;\r\n let hasSMZF = _find(paymode.paymodes, (item) => { return item.paymentType === PayStyle.smzf});\r\n //同时存在微信、支付宝(或者收钱吧)、扫码支付三种方式,在非退货模式下,隐藏微信、支付宝。\r\n let hotkeyIndex = index;\r\n if (!isReturn && hasSMZF) {\r\n if (mode.paymentType == PayStyle.wx || mode.paymentType == PayStyle.zfb) {\r\n return null;\r\n } else {\r\n let theArr = _filter(paymode.paymodes, t => { return t.paymentType != PayStyle.wx && t.paymentType != PayStyle.zfb })\r\n hotkeyIndex = _findIndex(theArr, m => { return m.paymentType == mode.paymentType })\r\n }\r\n }\r\n\r\n // const classNames = classnames({ 'paymode': true, 'paymodeSelected': this.checkThepaymode(mode.paymentType), 'paymodeDisabled': this.checkModeDisabled(mode.paymentType, brefund, boriginReturn)});\r\n\r\n const paymodeDisabled = this.checkModeDisabled(mode.paymentType, brefund, boriginReturn)? 'paymodeDisabled':'';\r\n const paymodeSelected = this.checkThepaymode(mode.paymentType)? 'paymodeSelected':'';\r\n return (\r\n <div key={index + \"\"} className={paymodeDisabled+' '+paymodeSelected + ' paymode hotkey_' + this.compoundHotkeysList[hotkeyIndex]} onClick={() => { this.onTabsClick(mode.paymentType,bookType) }}>\r\n <div className=\"logo\"><div className=\"icon bg-subsidiary-gray-color4\"><Ticon className=\"primary-color\" type={PayIcon[mode.paymentType] || PayIcon['default']} /></div></div>\r\n <div className=\"text primary-color\">{mode.name.length > 8 ? _truncate(mode.name, { length: 5, omission: '' }) + '...' : mode.name}</div>\r\n <div className=\"hotkey\">{this.isHorizontalPad ? '' : this.compoundHotkeysList[hotkeyIndex] || ''}</div>\r\n </div>\r\n )\r\n }\r\n\r\n xianjinChange=(paymethodId,val,receivable)=>{\r\n const inputTarget=this[`inputS${paymethodId}`].input.input;\r\n const inputTarget2=this[`inputS${paymethodId}2`];\r\n let value=val;\r\n if(isNaN(value) && value!=='-'){\r\n value=parseFloat(receivable)+parseFloat(inputTarget2.innerHTML);\r\n }\r\n inputTarget.value=value;\r\n //预订现金快捷支付,这里修改找零计算,大于应收小于全额金额,不找零,大于全额金额找零\r\n if( this.store.paymode.isNotFullBook){\r\n if(parseFloat(value||0) > this.store.paymode.bookMaxValue){\r\n inputTarget2.innerHTML=getFixedNumber(parseFloat(value||0)-parseFloat(this.store.paymode.bookMaxValue));\r\n }\r\n if (parseFloat(value||0) < parseFloat(receivable)){\r\n inputTarget2.innerHTML=getFixedNumber(parseFloat(value||0)-parseFloat(receivable));\r\n }\r\n if(parseFloat(receivable) <= parseFloat(value||0) && parseFloat(value||0) <= this.store.paymode.bookMaxValue){\r\n inputTarget2.innerHTML=getFixedNumber(0);\r\n }\r\n } else {\r\n inputTarget2.innerHTML=getFixedNumber(parseFloat(value||0)-parseFloat(receivable));\r\n }\r\n }\r\n\r\n //移动端:扫描商品\r\n changeScanProduct = () => {\r\n if (this.scanObj) this.scanObj.startScan()\r\n }\r\n onScanResult = (val, modal, el) => {\r\n let _this = this[`${el}`];\r\n if (_this) _this.setStateValue(val, () => {\r\n if (modal) modal.submitHandler()\r\n })\r\n }\r\n onScanCzkResult = (val) => {\r\n let _this = this;\r\n this.onCzkChange(val);\r\n setTimeout(() => { _this.loadCzk(val) }, 0)\r\n }\r\n\r\n //优惠券\r\n onScanDjqResult = (val) => {\r\n let el = this.inputdjq;\r\n if (el && el.input) el.input.value = val;\r\n this.addDjq(val);\r\n }\r\n\r\n //现金支付-存在权限控制\r\n getXianjinPayment = (payType, value) => {\r\n const { PayStyle } = enumController.getEnumOj();\r\n const { isManualIntoAmount } = this.state\r\n return payType === PayStyle.xianjin && isManualIntoAmount === \"1\" && value > 0 ? \"\" : value\r\n }\r\n\r\n getXianjinBalance = (payType, value) => {\r\n const { PayStyle } = enumController.getEnumOj();\r\n //找零金额-存在权限控制\r\n const { isManualIntoAmount } = this.state\r\n return payType === PayStyle.xianjin && isManualIntoAmount === \"1\" && value > 0 ? getFixedNumber(0 - value) : '0.00'\r\n }\r\n\r\n inputConfirm = (paymode, isQuickPay) => {\r\n const that = this\r\n const isStoredValueCard = false\r\n const { discountPrototypeTotalAmount } = this.state;\r\n const {isReturn, type } = this.props;\r\n let isManualIntoAmount\r\n let BuyerPayFreight = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.BuyerPayFreight;\r\n let DistributionMode = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.DistributionMode;\r\n // 付款弹窗\r\n return new Promise(function (resolve, reject) {\r\n const { PayStyle , PayIcon2} = enumController.getEnumOj();\r\n const modal = asyncModal({\r\n onPressEnter: () => {\r\n if (paymode.paymentType == PayStyle.xianjin) {\r\n let zl = parseFloat(that[`inputS${paymode.paymethodId}2`].innerHTML);\r\n if (zl < 0) {\r\n Message.error('支付金额不能小于应收金额');\r\n throw \"error\";\r\n } else if (zl > that.props.initData(\"posChangeUpperAmount\")) {\r\n Message.error('找零不能超过最大找零金额:' + getFixedNumber(that.props.initData(\"posChangeUpperAmount\")) + '元');\r\n throw \"error\";\r\n }\r\n }\r\n const v = _trim(that[`inputS${paymode.paymethodId}`]['input']['input'].getAttribute('value'))\r\n if (v !== '') {\r\n modal.destroy()\r\n setTimeout(() => {\r\n if (paymode.paymentType == PayStyle.xianjin) {\r\n that.store.changeValue(paymode.paymethodId, v, false);\r\n } else {\r\n paymode.authCode = v;\r\n }\r\n resolve();\r\n }, 100)\r\n } else {\r\n if (paymode.paymentType == PayStyle.xianjin){\r\n Message.error('请输入付款金额');\r\n } else {\r\n Message.error('请录入或扫描付款码');\r\n }\r\n throw \"error\";\r\n }\r\n },\r\n isCancelFun: () => {\r\n const { prototypeVisible, protytypeCount } = that.state;\r\n if (protytypeCount === 1) {\r\n that.setState({\r\n protytypeCount: 0\r\n })\r\n // setTimeout(() => {\r\n // that[`inputS${paymode.paymethodId}`].input.input.focus();\r\n // }, 535)\r\n }\r\n return prototypeVisible || protytypeCount;\r\n },\r\n onPressEsc: () => {\r\n Keyboard.close();\r\n that.store.bquick && that.props.onCancelSettle && that.props.onCancelSettle();\r\n reject(`支付方式: ${paymode.name}失败`)\r\n },\r\n maskClosable: false,\r\n keyboard: false,\r\n closable: false,\r\n backdropStyle: {\r\n 'z-index': '1004'\r\n },\r\n width: 440,\r\n content: (\r\n <div className=\"scanInput\">\r\n <div className={classnames({ \"icon primary-color\": true, [\"color\" + paymode.paymentType]: true })}><Ticon type={PayIcon2[paymode.paymentType]} /></div>\r\n <div className=\"title\">{paymode.name}</div>\r\n <div>\r\n <span className=\"label\">应收金额:</span><span className=\"yfje\">\r\n {paymode.value}\r\n {DistributionMode && (DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE') && BuyerPayFreight && BuyerPayFreight > 0 ? <span className=\"freight\">(包含{BuyerPayFreight}元运费)</span> : null}\r\n </span>\r\n </div>\r\n {\r\n (paymode.paymentType == PayStyle.xianjin) &&\r\n <div className='contentzf'>\r\n <span className=\"contentlabel\">{paymode.name}支付:</span>\r\n <span>\r\n <NumKeyboard\r\n id='paymentAmount'\r\n className=\"content\"\r\n type='text'\r\n bordered\r\n placement=\"rightBottom\"\r\n placeholder='请输入付款金额'\r\n disabled={paymode.value < 0}\r\n defaultValue={that.getXianjinPayment(paymode.paymentType, paymode.value)}\r\n onChange={(value) => { that.xianjinChange(paymode.paymethodId, value, paymode.value); }}\r\n ref={input => that[`inputS${paymode.paymethodId}`] = input}\r\n onBlur={(e) => {\r\n const inputTarget = that[`inputS${paymode.paymethodId}`].input.input;\r\n if (that.state.isManualIntoAmount === \"1\" && paymode.paymentType === PayStyle.xianjin && inputTarget.value === \"\") {\r\n return;\r\n }\r\n inputTarget.value = getFixedNumber(inputTarget.value)\r\n }}\r\n />\r\n </span>\r\n </div>\r\n }\r\n {\r\n (paymode.paymentType == PayStyle.xianjin) &&\r\n <div className=\"zlje\">\r\n <span className=\"label\">找零金额:</span>\r\n <span className=\"yfje\" ref={input => that[`inputS${paymode.paymethodId}2`] = input}>{that.getXianjinBalance(paymode.paymentType, paymode.value)}</span>\r\n </div>\r\n }\r\n {\r\n !isReturn && type !==1 &&\r\n <div className=\"zlje prototype\">\r\n <span className=\"label\">优惠明细:</span>\r\n <span className=\"yfje economize\">省¥{discountPrototypeTotalAmount}</span>\r\n <span onClick={that.prototypeDetailedClick} className='prototypeDetailed primary-color'>优惠明细<Ticon type='you2'/></span>\r\n </div>\r\n }\r\n {\r\n (paymode.paymentType == PayStyle.wx || paymode.paymentType == PayStyle.zfb || paymode.paymentType == PayStyle.smzf || paymode.paymentType == PayStyle.SQBPAY || paymode.paymentType == PayStyle.CSYH) &&\r\n <div className='contentzf'>\r\n <span className=\"contentlabel\">{paymode.name}支付:</span>\r\n <span>\r\n <NumKeyboardScan\r\n className=\"content \"\r\n type='text'\r\n bordered\r\n placeholder=\"扫描或输入付款码\"\r\n ref={input => that[`inputS${paymode.paymethodId}`] = input} />\r\n </span>\r\n {\r\n that.isHorizontalPad &&\r\n <span className='contentscan'>\r\n <Ticon type='saomiao1' className='icon' onClick={that.changeScanProduct} />\r\n <Scan ref={scan => that.scanObj = scan} onChange={value => that.onScanResult(value, modal, `inputS${paymode.paymethodId}`)} />\r\n </span>\r\n }\r\n </div>\r\n }\r\n <div className={classnames({ \"buttonRegion\": true, \"buttonRegion2\": paymode.paymentType == PayStyle.xianjin })}>\r\n <div className=\"fr\">\r\n <Button\r\n onClick={() => {\r\n modal.destroy()\r\n that.setState({\r\n settleDisabled: false\r\n })\r\n that.store.bquick && that.props.onCancelSettle && that.props.onCancelSettle();\r\n that.store.bquick && that.store.delPay(paymode.paymethodId, !isQuickPay ? 'bookPay':'');\r\n reject(`支付方式: ${paymode.name}失败`)\r\n }}>取消</Button>\r\n <Button\r\n type=\"primary\"\r\n onClick={() => {\r\n if (paymode.paymentType == PayStyle.xianjin) {\r\n let zl = parseFloat(that[`inputS${paymode.paymethodId}2`].innerHTML);\r\n if (zl < 0) {\r\n if (that[`inputS${paymode.paymethodId}`].input.input.value === '') {\r\n Message.error('请输入付款金额');\r\n } else {\r\n Message.error('支付金额不能小于应收金额');\r\n }\r\n return;\r\n } else if (zl > that.props.initData(\"posChangeUpperAmount\")) {\r\n Message.error('找零不能超过最大找零金额:' + getFixedNumber(that.props.initData(\"posChangeUpperAmount\")) + '元');\r\n return;\r\n }\r\n }\r\n const v = _trim(that[`inputS${paymode.paymethodId}`]['input']['input'].getAttribute('value'))\r\n\r\n if (v !== '') {\r\n modal.destroy()\r\n setTimeout(() => {\r\n if (paymode.paymentType == PayStyle.xianjin) {\r\n that.store.changeValue(paymode.paymethodId, v, false, 'bookPay');\r\n } else {\r\n paymode.authCode = v;\r\n }\r\n resolve();\r\n }, 100)\r\n } else {\r\n if (paymode.paymentType == PayStyle.xianjin){\r\n Message.error('请输入付款金额');\r\n } else {\r\n Message.error('请录入或扫描付款码');\r\n }\r\n }\r\n }}>确定</Button>\r\n </div>\r\n </div>\r\n </div>),\r\n })\r\n // 扫码框自动聚焦\r\n setTimeout(() => {\r\n // console.log(that[`inputS${paymode.paymethodId}`].input, '-------------------')\r\n that[`inputS${paymode.paymethodId}`].input.input.focus()\r\n }, 350)\r\n })\r\n }\r\n\r\n\r\n checkCurrentModeHaveMutex = (type) => {\r\n let { paymode,newStyle } = this.store;\r\n const { PayStyle } = enumController.getEnumOj();\r\n const payTypeList = [PayStyle.SQBPAY,PayStyle.CSYH,PayStyle.smzf];\r\n const payTypeFilterList = payTypeList.filter( filterType => filterType !== type);\r\n // 主要排查当前的支付方式 是否是包含在互斥的支付方式\r\n if(payTypeFilterList.length === payTypeList.length) return false;\r\n const disableUserMode = _find(paymode.thePaymodes,(mode)=>{\r\n const haveUseTypeList = payTypeFilterList.find(filterType =>{\r\n // 单据模式的情况还有要判断互斥的支付方式是否有值 触屏模式直接判断是否选择了某个支付方式\r\n return filterType == mode.paymentType && (newStyle? mode.value != 0 :true)\r\n });\r\n // 如果查找到互斥目标支付方式并且不是当前支付方式 返回true\r\n if(mode.paymentType !== type && haveUseTypeList && haveUseTypeList.length != 0) return true\r\n })\r\n if(disableUserMode) return true\r\n return false\r\n }\r\n\r\n checkModeDisabled=(type,brefund,boriginReturn)=>{\r\n const { PayStyle } = enumController.getEnumOj();\r\n return (((brefund && (type==PayStyle.wx || type==PayStyle.zfb || type==PayStyle.smzf || type==PayStyle.jfdx || type==PayStyle.djq || type==PayStyle.SQBPAY || type==PayStyle.CSYH))\r\n || (boriginReturn && type==PayStyle.hyczk))\r\n && !(boriginReturn && (type==PayStyle.wx || type==PayStyle.zfb))) || this.checkCurrentModeHaveMutex(type) ;\r\n }\r\n\r\n checkSettleDisabled=(paymode,thePaymodes)=>{\r\n const { PayStyle } = enumController.getEnumOj();\r\n console.log(\"settlement.checkSettleDisabled开始执行,参数:\",{paymode,thePaymodes})\r\n if(paymode.amount==0 && paymode.received==0){\r\n console.log(\"settlement.checkSettleDisabled返回结果:\",false)\r\n return false;\r\n }\r\n if(this.store.brefund){\r\n let result=!(paymode.receivable==0 && thePaymodes.length>0);\r\n console.log(\"settlement.checkSettleDisabled返回结果:\",result)\r\n return result;\r\n }\r\n let xj=_find(thePaymodes,(mode)=>{return mode.paymentType==PayStyle.xianjin});\r\n let enabled=paymode.receivable==0 && thePaymodes.length>0;\r\n if(xj && xj.value!=0){\r\n enabled=paymode.receivable<=0 && thePaymodes.length>0 && (Math.abs(paymode.receivable)<xj.value);\r\n }\r\n console.log(\"settlement.checkSettleDisabled返回结果:\",!enabled);\r\n const { settleDisabled } = this.state;\r\n return !enabled || settleDisabled;\r\n }\r\n\r\n changeDecimalBuZero = (number, bitNum) => {\r\n if (bitNum == 0) return number;\r\n var f_x = parseFloat(number);\r\n if (isNaN(f_x)) {\r\n return '';\r\n }\r\n let newBitNum = Math.pow(10,bitNum)\r\n f_x = Math.round(number * newBitNum) / newBitNum;\r\n let s_x = f_x.toString();\r\n let pos_decimal = s_x.indexOf('.');\r\n if (pos_decimal < 0) {\r\n pos_decimal = s_x.length;\r\n s_x += '.';\r\n }\r\n while (s_x.length <= pos_decimal + bitNum) {\r\n s_x += '0';\r\n }\r\n return s_x;\r\n }\r\n // 单据模式下编辑储值卡\r\n editCzkModal = () => {\r\n const { PayStyle } = enumController.getEnumOj();\r\n _find(this.store.paymode.thePaymodes,(mode)=>{\r\n if (mode.paymentType==PayStyle.hyczk) {\r\n this.store.setCurrentMode(mode.paymethodId)\r\n }\r\n })\r\n\r\n this.setState({\r\n czkVisible: true\r\n })\r\n let { currentMode } = this.store.paymode;\r\n setTimeout(() => {\r\n if(!currentMode.member || !currentMode.member.id){\r\n this.czkInput && this.czkInput.input.focus()\r\n }else{\r\n if(this.inputCzkAmount && this.inputCzkAmount.input){\r\n this.inputCzkAmount.input.focus();\r\n this.inputCzkAmount.input.setSelectionRange(0, this.inputCzkAmount.input.value.length);\r\n }\r\n }\r\n }, 350)\r\n }\r\n\r\n paymodesCarouselList = (params,paymodes,carouselStart,CarouseOut) => {\r\n const CarouselTp = CarouseOut || Carousel\r\n const newParams = CarouseOut?{}:params\r\n const mapList = [];\r\n const { type } = this.props;\r\n paymodes.forEach((item,index)=>{\r\n // 整除则新增轮播页面\r\n if(index % carouselStart === 0){\r\n mapList[Math.floor(index/carouselStart)] = [];\r\n }\r\n mapList[Math.floor(index/carouselStart)].push(item);\r\n })\r\n return <CarouselTp vertical dots='true' touchMove='true' {...newParams}>\r\n {_map(mapList, (modeList, index) => {\r\n return <div>\r\n {\r\n _map(modeList, (mode, modeIndex) => {\r\n return this.renderToolbtn(mode, index*carouselStart+modeIndex, type !== 1 ? 'bookPay' : '')\r\n })\r\n }\r\n </div>\r\n })}\r\n </CarouselTp>\r\n }\r\n\r\n prototypeDetailedClick = () => {\r\n this.handleShowPrototype();\r\n this.setState({\r\n prototypeVisible: true,\r\n isNotAutoFocus: true,\r\n isPrototypeClick: true\r\n })\r\n }\r\n\r\n handleprototypeCancel = () => {\r\n this.setState({\r\n prototypeVisible: false,\r\n protytypeCount: 1,\r\n isPrototypeClick: false\r\n })\r\n let that = this;\r\n const { bquick, isPrototypeClick } = this.state;\r\n if (!isPrototypeClick) {\r\n if (bquick) {\r\n setTimeout(() => {\r\n this.payQuick();\r\n }, 100)\r\n } else {\r\n this.payFun();\r\n }\r\n } else {\r\n setTimeout(() => {\r\n let input = document.getElementById('paymentAmount');\r\n input && input.select();\r\n }, 700)\r\n }\r\n }\r\n\r\n couponClick = () => {\r\n this.setState({\r\n couponLight: !this.state.couponLight\r\n })\r\n }\r\n\r\n render() {\r\n const { PayIcon , PayIcon2 , PayStyle , Differentiate} = enumController.getEnumOj();\r\n const { btnDissabled, dataSource, discountTotalAmount,discountRetailTotalAount,discountPrototypeTotalAmount, storageValue, czkValue, newPassConfirm, newPass, isNotAutoFocus} = this.state;\r\n\r\n let { paymode, brefund,newStyle } = this.store;\r\n let { type, amount, totalVariety, totalQuantity, isReturn, quantityDetail,memberDisabled, noIsMinAmount } = this.props\r\n // 原单退货\r\n let boriginReturn = this.getBoriginReturn();\r\n let totalTaxAmount = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.TotalTaxAmount;\r\n\r\n //收订金\r\n let IdbusiType = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.IdbusiType;\r\n let BuyerPayFreight = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.BuyerPayFreight;\r\n let DistributionMode = this.context && this.context.viewModel && this.context.viewModel.data && this.context.viewModel.data.DistributionMode;\r\n if(IdbusiType == 38 && this.isBook && this.percentageWhenBook < 100 && (!DistributionMode.Id || DistributionMode.Id == 'ON_SITE_PICKUP')){\r\n totalTaxAmount = totalTaxAmount * this.percentageWhenBook / 100;\r\n }\r\n\r\n // 单据模式\r\n let thePaymodes=newStyle?_filter(paymode.thePaymodes,(m)=>{\r\n if(IdbusiType == 39){\r\n return !(this.checkModeDisabled(m.paymentType,brefund,boriginReturn)&& parseFloat(m.value)==0) && m.paymentType != PayStyle.hyczk;\r\n }\r\n return !(this.checkModeDisabled(m.paymentType,brefund,boriginReturn)&& parseFloat(m.value)==0);\r\n }):paymode.thePaymodes;\r\n let { paymodes, settle, currentMode } =paymode;\r\n\r\n if (IdbusiType == 39){\r\n totalTaxAmount = stores.drawerStore.thisWaitPaidAmount;\r\n paymodes = _filter(paymodes, mode => { return mode.paymentType != PayStyle.hyczk}); //取货过滤掉储值\r\n }\r\n // 积分兑换 总积分\r\n let ExchangeIntegral = this.context && this.context.viewModel && this.context.viewModel.data.ExchangeIntegral;\r\n\r\n let _hasSMZF = _find(paymodes, (item) => { return item.paymentType === PayStyle.smzf });\r\n\r\n //同时存在微信、支付宝、扫码支付三种方式,在非退货模式下,隐藏微信、支付宝。\r\n if (!isReturn && _hasSMZF) {\r\n paymodes = paymodes.filter((mode)=>{\r\n if (mode.paymentType == PayStyle.wx || mode.paymentType == PayStyle.zfb) return null;\r\n return true;\r\n })\r\n }\r\n\r\n const quickPay =boriginReturn ? [] :\r\n _filter(paymodes, (paymode) =>{\r\n if(IdbusiType == 39){\r\n return paymode.isQuick && paymode.paymentType != PayStyle.hyczk; //取货过滤掉储值\r\n } else {\r\n return paymode.isQuick;\r\n }\r\n });\r\n const productsIsEmpty = (type!=1 && this.context.viewModel.data.RetailDetails.length == 0) || (type==1 && parseFloat(amount || 0) <= 0) || memberDisabled || noIsMinAmount;\r\n const moreToolbtns=[];\r\n const params = {\r\n pagination: {\r\n el: '.swiper-pagination',\r\n },\r\n spaceBetween: 30\r\n }\r\n const carouselStart = 10;\r\n const carouselStart2 = 8;\r\n const currentIndex = this.state.currentIndex;\r\n const hasmember = currentMode && currentMode.member && currentMode.member.id;\r\n let quantity1 = 0, quantity2 = 0, quantity3 = 0, quantity4 = 0;\r\n let sumQuantity = 0;//数量总和的值,包括称重的。\r\n let { buyQuantity = 0, returnQuantity = 0 } = quantityDetail || {};\r\n let quantityPrecision = PosInitData(\"QuantityPrecision\");\r\n quantityPrecision = quantityPrecision ? parseInt(quantityPrecision) : '';\r\n if (this.props.showAmount) {\r\n quantity1 = totalVariety || this.context.viewModel.data.RetailDetails.length;\r\n quantity2 = this.changeDecimalBuZero(totalQuantity, quantityPrecision);\r\n quantity3 = this.changeDecimalBuZero(buyQuantity, quantityPrecision);\r\n quantity4 = this.changeDecimalBuZero(returnQuantity, quantityPrecision);\r\n let sumRetailDetails = this.context && this.context.viewModel && this.context.viewModel.data.RetailDetails;\r\n if (sumRetailDetails && sumRetailDetails.length > 0) {\r\n sumRetailDetails.forEach(v => {\r\n sumQuantity += Math.abs(v.Quantity);\r\n })\r\n }\r\n sumQuantity = this.changeDecimalBuZero(sumQuantity, quantityPrecision);\r\n }\r\n\r\n const themodeHyczk=thePaymodes.filter((mode) => mode.paymentType === PayStyle.hyczk && mode.value !== '0.00');\r\n return (\r\n <div className=\"billingSettlement\" ref={r => this.billingSettlementDocumnet = r}>\r\n {\r\n this.props.MemberPoints ?\r\n (\r\n <div className=\"receivable2\">\r\n <div className=\"text\">本次应收:</div>\r\n <div className={classnames({ \"amount\": true, \"smallfont\": Math.abs(totalTaxAmount) > 100000 })}>{getFixedNumber(totalTaxAmount)}</div>\r\n <div className='total'>{`数量合计${quantity2}`}</div>\r\n <div className='total'>{`积分合计${ExchangeIntegral || 0}`}</div>\r\n </div>\r\n )\r\n :\r\n (\r\n this.props.showAmount &&\r\n <div className=\"receivable\">\r\n <div className='summary'>\r\n <div className=\"text\">本次应收:</div>\r\n <div className={classnames({ \"amount\": true, \"smallfont\": Math.abs(totalTaxAmount) > 100000 })}>{getFixedNumber(totalTaxAmount)}</div>\r\n </div>\r\n {\r\n isReturn === true ?\r\n <div className=\"remark1\">\r\n <span>{`共${quantity1}种`}</span>\r\n <span className='span'>销</span><span>{quantity3}</span><span>件</span>\r\n <span className='span'>退</span><span>{quantity4}</span><span>件</span>\r\n <span className='span'>合计</span><span>{sumQuantity}</span>\r\n </div>\r\n :\r\n <div className=\"remark2\">\r\n <span>{`共${quantity1}种`}</span>\r\n <span className=\"span\">{quantity2}</span><span>件</span>\r\n <span className=\"span\">合计</span><span>{sumQuantity}</span>\r\n </div>\r\n }\r\n </div>\r\n )\r\n }\r\n <div className=\"btns\">\r\n {\r\n !this.isHorizontalPad && !this.props.MemberPoints &&\r\n _map(quickPay, (p, i) => {\r\n let iconclass = PayIcon2[p.paymentType] ? `color${p.paymentType}` : \"primary-color\";\r\n return (\r\n <Button\r\n className={classnames({ \"quick\": true, \"quick2\": type==1 })}\r\n key={`paymentType_${p.paymentType}`}\r\n onClick={() => { this.btnDebounced(p.paymentType, true) }}\r\n disabled={productsIsEmpty || (type!=1 && this.checkModeDisabled(p.paymentType, (this.context.viewModel.data.TotalTaxAmount || 0 - this.context.viewModel.data.OnlinePaymentAmount || 0) < 0, boriginReturn))}\r\n >\r\n <div className={classnames({ [iconclass]: true, \"icon\": true })}>\r\n <Ticon type={PayIcon2[p.paymentType] || PayIcon2['default']} />\r\n </div>\r\n <div className=\"text\">\r\n {p.name.length > 8 ? _truncate(p.name, { length: 7, omission: '' }) + '...' : p.name}\r\n </div>\r\n </Button>)\r\n })\r\n }\r\n <Button key=\"settle\" className={classnames({ \"settle\": true, \"settle2\": type == 1,\"settleStorage\" :true ,'primary-btn': true })} onClick={() => { this.btnDebounced() }} disabled={productsIsEmpty}>\r\n {this.props.isMemberPoints ? '立即兑换' : this.props.isMemberPointsReturn ? '退货': ( IdbusiType == 39 && stores.drawerStore.thisWaitPaidAmount == 0 ) ? '取货' : settle.name}\r\n </Button>\r\n </div>\r\n\r\n\r\n {/* // 触屏模式复合结算 */}\r\n {!newStyle && <Drawer\r\n title=\"复合结算\"\r\n width=\"600px\"\r\n placement=\"right\"\r\n maskClosable\r\n closable={false}\r\n onClose={this.handleCancel}\r\n visible={this.state.visible}\r\n destroyOnClose={true}\r\n className={`settlement-wraper`}\r\n style={{'zIndex': 1006}}\r\n >\r\n <div className= {`settlement ${hotKey.hotKeyBindClass('5')}`} style={{height: '100%', paddingBottom: '68px'}}>\r\n <div className={classnames({ \"toolbar bg-subsidiary-gray-color4\": true, \"carousel\": paymodes.length > carouselStart })}>\r\n {\r\n paymodes.length <= carouselStart &&\r\n <div>\r\n {\r\n _map(paymodes, (mode, index) => {\r\n return this.renderToolbtn(mode, index, 'bookPay')\r\n })\r\n }\r\n </div>\r\n }\r\n {\r\n paymodes.length > carouselStart && this.paymodesCarouselList(params,paymodes,carouselStart)\r\n }\r\n </div>\r\n <div className=\"paydetail\" style={{maxHeight:(document.body.clientHeight-(paymodes.length>6?275:200))+'px', height: 'calc(100% - 198px)'}}>\r\n <div className=\"left\">\r\n {\r\n thePaymodes.length==0&&<div className=\"emptydata detailempty\">请添加结算方式</div>\r\n }\r\n {\r\n // _map(_sortBy(thePaymodes, pay => pay['order'] || 0), (mode) => {\r\n _map(thePaymodes, (mode) => {\r\n const index=mode.paymethodId\r\n return (<div key={index+''} className=\"modeItem\">\r\n <div className={classnames({\"main\":true,\"focusbottom\":currentIndex==index})}>\r\n <div className={classnames({\"name\":true})}>{mode.name}</div>\r\n <div className={classnames({\"content\":true})}>\r\n {\r\n (mode.paymentType == PayStyle.hyczk || mode.paymentType == PayStyle.jfdx || mode.paymentType == PayStyle.djq) ?\r\n <input id={`inputS${index}`}\r\n className={hotKey.hotKeyNotFilter()}\r\n onClick={() => { this.editModal(index, mode.paymentType, type != 1 ? boriginReturn : null) }} value={getFixedNumber(mode.value)} />\r\n :\r\n <input id={`inputS${index}`}\r\n className={hotKey.hotKeyNotFilter()}\r\n value={mode.exchangeRate != 1 ? mode.value2 : mode.value}\r\n onClick={e => this.onHotKeyClick2(index, mode, paymode, e)}\r\n onBlur={e => this.onBlur(index, e, 'bookPay')}\r\n onFocus={e => this.onFocusHack(index, mode, paymode, e)}\r\n onChange={e => this.handleChange(index, e, 'bookPay')}\r\n />\r\n }\r\n </div>\r\n <span className='minus' onClick={() => {\r\n this.onDelPay(index,boriginReturn && mode.boriginReturn,mode.paymentType, 'bookPay');\r\n }}>\r\n <Ticon type=\"shanchu\" className=\"minusIcon primary-color\"/>\r\n </span>\r\n </div>\r\n {\r\n mode.paymentType==PayStyle.djq?\r\n <div className=\"append\" style={{ display:(mode.paymentType==PayStyle.hyczk || mode.paymentType==PayStyle.djq)?'block':'none'}}>\r\n <span className=\"balance\">溢收金额:</span>\r\n <span>{mode.overchargesAmount}</span>\r\n </div>:\r\n <div className=\"append\" style={{ display:(mode.paymentType==PayStyle.hyczk || mode.paymentType==PayStyle.djq)?'block':'none'}}>\r\n <span className=\"fl\">卡号:</span>\r\n <span className=\"fl\">{mode && mode.storageCardNo}</span>\r\n <br />\r\n <span className=\"balance fl\">余额:</span>\r\n <span className=\"fl\">{ getFixedNumber(mode.balance)}</span>\r\n <br />\r\n {type != 1 && themodeHyczk && themodeHyczk.length && themodeHyczk[themodeHyczk.length -1].paymethodId === mode.paymethodId && !isReturn &&\r\n <Button onClick={() => {\r\n this.appendCzkmode(boriginReturn, 'noPlaySetPwd');\r\n }} className='addCard btn-border-primary'><Ticon type=\"jiahao\" className=\"plus b-theme-color\" />\r\n <span>添加卡</span>\r\n </Button>\r\n }\r\n </div>\r\n }\r\n </div>)\r\n })\r\n }\r\n </div>\r\n <div className=\"right\">\r\n <div className=\"righttop\">\r\n {paymode.onlineamount>0 && <div className=\"receivable\">\r\n <span>线上已收</span>\r\n <span>{paymode.onlineamount}</span>\r\n </div>}\r\n <div className=\"receivable\">\r\n <span>应收金额</span>\r\n <span>{paymode.amount}</span>\r\n </div>\r\n <div className=\"receivable\">\r\n <span>剩余应收</span>\r\n <span>{paymode.receivable}</span>\r\n </div>\r\n <div className=\"receivable\">\r\n <span>实收金额</span>\r\n <span className=\"received\">{paymode.received}</span>\r\n </div>\r\n <div className=\"receivable\" style={{display:this.checkCharge()?'block':'none'}}>\r\n <span>找零金额</span>\r\n <span className=\"received\">{getFixedNumber(Math.abs(paymode.receivable))}</span>\r\n </div>\r\n <div className=\"receivable\" style={{display: (DistributionMode && (DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE')) && BuyerPayFreight && BuyerPayFreight >0 ?'block':'none'}}>\r\n <span>运费</span>\r\n <span className=\"received\">{getFixedNumber(Math.abs(BuyerPayFreight))}</span>\r\n </div>\r\n </div>\r\n {\r\n type != 1 && !isReturn && <div onClick={this.prototypeDetailedClick} className='prototypeDetailed primary-color'>优惠明细<Ticon type='shouqi1'/></div>\r\n }\r\n <div className={this.isHorizontalPad ? 'keyboard_ios' : 'keyboard'}>\r\n {\r\n !this.isHorizontalPad &&\r\n <Keyboard type=\"number\" onChange={this.onKeyboardChange.bind(this)}></Keyboard>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"payfooter\">\r\n <span className=\"hotKeyEnter\" onClick={this.onHotKeyEnter}></span>\r\n <span><Button className=\"cancel\" onClick={this.handleCancel}>取消</Button></span>\r\n <span><Button type=\"primary\" className={this.isHorizontalPad ? \"settle1\" : \"settle\"} onClick={this.handleSettle}\r\n disabled={this.checkSettleDisabled(paymode, thePaymodes)}>结算</Button></span>\r\n </div>\r\n </div>\r\n </Drawer>}\r\n {/* // 触屏模式储值结算 */}\r\n\r\n {/* // 单据模式的复合结算 */}\r\n {newStyle && <Drawer\r\n title=\"复合结算\"\r\n width=\"600px\"\r\n placement=\"right\"\r\n maskClosable\r\n closable={false}\r\n onClose={this.handleCancel}\r\n visible={this.state.visible}\r\n destroyOnClose={true}\r\n className={`settlement-wraper`}\r\n style={{'zIndex': 1006}}\r\n >\r\n <div className= {`settlement ${hotKey.hotKeyBindClass('5')}`}>\r\n <div className=\"paydetail newstyle\">\r\n <div className=\"top\">\r\n <div className=\"righttop\">\r\n {paymode.onlineamount>0 && <div className=\"receivable\">\r\n <span>线上已收</span>\r\n <span>{paymode.onlineamount}</span>\r\n </div>}\r\n <div className=\"receivable\">\r\n <span>应收金额</span>\r\n <span>{paymode.amount}</span>\r\n </div>\r\n <div className=\"receivable\">\r\n <span>剩余应收</span>\r\n <span>{paymode.receivable}</span>\r\n </div>\r\n <div className=\"receivable\">\r\n <span>实收金额</span>\r\n <span className=\"received\">{paymode.received}</span>\r\n </div>\r\n <div className=\"receivable\" style={{display:this.checkCharge()?'block':'none'}}>\r\n <span>找零金额</span>\r\n <span className=\"received\">{getFixedNumber(Math.abs(paymode.receivable))}</span>\r\n </div>\r\n <div className=\"receivable\" style={{display: (DistributionMode && (DistributionMode.Id == 'ELECTRONIC' || DistributionMode.Id == 'CITY_DISTRIBUTE')) && BuyerPayFreight && BuyerPayFreight >0 ?'block':'none'}}>\r\n <span>运费</span>\r\n <span className=\"received\">{getFixedNumber(Math.abs(BuyerPayFreight))}</span>\r\n </div>\r\n </div>\r\n {\r\n type != 1 && !isReturn && <div onClick={this.prototypeDetailedClick} className='prototypeDetailed primary-color'>优惠明细<Ticon type='shouqi1'/></div>\r\n }\r\n </div>\r\n <div className=\"bottom\">\r\n {\r\n thePaymodes.length==0&&<div className=\"emptydata detailempty\">请添加结算方式</div>\r\n }\r\n {\r\n _map(thePaymodes, (mode, mindex) => {\r\n let { isReturn } = this.props;\r\n let hasSMZF = _find(thePaymodes, m => { return m.paymentType === PayStyle.smzf});\r\n //同时存在微信、支付宝(或者收钱吧)、扫码支付三种方式,在非退货模式下,隐藏微信、支付宝。\r\n let hotkeyIndex = mindex;\r\n if (!isReturn && hasSMZF) {\r\n if (mode.paymentType == PayStyle.wx || mode.paymentType == PayStyle.zfb) {\r\n return null;\r\n } else {\r\n let theArr = _filter(thePaymodes, t => { return t.paymentType != PayStyle.wx && t.paymentType != PayStyle.zfb })\r\n hotkeyIndex = _findIndex(theArr, m => { return m.paymentType == mode.paymentType })\r\n }\r\n }\r\n const hyczkFindIndex = _findIndex(thePaymodes, (m) => { return m.paymentType == PayStyle.hyczk; })\r\n const hyczkList = _filter(thePaymodes, (m) => { return m.paymentType == PayStyle.hyczk; })\r\n let lastStorageCardIndex = 0\r\n _map(thePaymodes, (m, i) => {\r\n if (m.paymentType === PayStyle.hyczk) lastStorageCardIndex = i\r\n })\r\n if ( mindex > 0 && hyczkList.length > 1 && mindex > lastStorageCardIndex) {\r\n hotkeyIndex = hotkeyIndex - hyczkList.length + 1\r\n }\r\n\r\n console.log(thePaymodes)\r\n\r\n const index = mode.paymethodId;\r\n return (mode.paymentType == PayStyle.hyczk && _findIndex(thePaymodes, (m) => { return m.paymentType == PayStyle.hyczk; }) != mindex ? <div></div> :\r\n <div key={index + ''} className=\"modeItem\">\r\n <div className={classnames({\"main\":true,\"focusbottom\":currentIndex==index})}>\r\n <div className={classnames({ \"name\": true})}>\r\n <div className=\"icon\"><Ticon type={PayIcon[mode.paymentType] || PayIcon['default']} /></div>\r\n <div className=\"text\">{mode.name}</div>\r\n <div className=\"hotkey\">{this.isHorizontalPad ? '' : this.compoundHotkeysList[hotkeyIndex] || ''}</div>\r\n </div>\r\n <div className={classnames({ \"content\": true})}>\r\n {\r\n (mode.paymentType == PayStyle.hyczk || mode.paymentType == PayStyle.jfdx || mode.paymentType == PayStyle.djq)\r\n ?\r\n <input id={`inputS${index}`}\r\n\r\n className={hotKey.hotKeyNotFilter(\"paymode hotkey_\" + this.compoundHotkeysList[hotkeyIndex])}\r\n disabled={this.checkModeDisabled(mode.paymentType, brefund, boriginReturn)}\r\n onClick={() => {\r\n if (type != 1 && mode.paymentType == PayStyle.hyczk) {\r\n if (themodeHyczk && themodeHyczk.length === 0) {\r\n this.onHotKeyClick1(mode, index, boriginReturn);\r\n }\r\n } else {\r\n this.onHotKeyClick1(mode, index, boriginReturn, 'bookPay');\r\n }\r\n }}\r\n value={mode.paymentType == PayStyle.hyczk ? getFixedNumber(\r\n _reduce(_filter(thePaymodes, (tm) => { return tm.paymentType == PayStyle.hyczk }), function (sum, m) {\r\n return Math.Add(sum, m.value);\r\n }, 0)\r\n ) : getFixedNumber(mode.value)} />\r\n :\r\n <input id={`inputS${index}`}\r\n className={hotKey.hotKeyNotFilter(\"paymode hotkey_\" + this.compoundHotkeysList[hotkeyIndex])}\r\n disabled={this.checkModeDisabled(mode.paymentType, brefund, boriginReturn) || this.checkScanDisabled(mode.paymentType)}\r\n value={mode.exchangeRate != 1 ? mode.value2 : mode.value}\r\n onClick={e => this.onHotKeyClick2(index, mode, paymode, e, 'bookPay')}\r\n onBlur={e => this.onBlur(index, e, 'bookPay')}\r\n onFocus={e => this.onFocusHack(index, mode, paymode, e)}\r\n onChange={e => this.handleChange(index, e, 'bookPay')}\r\n />\r\n }\r\n </div>\r\n </div>\r\n {mode.paymentType == PayStyle.djq && <div className=\"append\" >\r\n <span className=\"balance\">溢收金额:</span>\r\n <span>{mode.overchargesAmount}</span>\r\n </div>}\r\n {_map(_filter(thePaymodes, (tm) => { return mode.paymentType == PayStyle.hyczk && parseFloat(tm.value || 0) != 0 && tm.paymentType == PayStyle.hyczk }), (m) => {\r\n return <div className=\"append\">\r\n <span >卡号:</span>\r\n {\r\n type != 1 ?\r\n (<span >{m && m.storageCardNo}</span>) :\r\n (<span >{m.member && m.member.cardNo}</span>)\r\n }\r\n <span className=\"fr\">{getFixedNumber(m.value)}</span>\r\n <span className=\"balance fr\">支付金额:</span>\r\n <br />\r\n {type != 1 && themodeHyczk && themodeHyczk.length && themodeHyczk[themodeHyczk.length -1].paymethodId === m.paymethodId &&\r\n <Button onClick={() => this.onHotKeyClick1(mode, index, boriginReturn)} className='addCard btn-border-primary'><Ticon type=\"jiahao\" className=\"plus b-theme-color\" />\r\n <span>添加卡</span>\r\n </Button>\r\n }\r\n </div>\r\n })}\r\n </div>)\r\n })\r\n }\r\n </div>\r\n </div>\r\n <div className=\"payfooter\">\r\n <span className=\"hotKeyEnter\" onClick={this.onHotKeyEnter}></span>\r\n <span><Button className=\"cancel\" onClick={this.handleCancel}>取消</Button></span>\r\n <span><Button type=\"primary\" className={this.isHorizontalPad ? \"settle1\" : \"settle\"} onClick={this.handleSettle}\r\n disabled={this.checkSettleDisabled(paymode, thePaymodes)}>结算</Button></span>\r\n </div>\r\n </div>\r\n </Drawer>}\r\n\r\n <Modal\r\n wrapClassName={`czk ${this.isHorizontalPad ? 'extraHeight' : ''}`}\r\n width=\"400px\"\r\n visible={this.state.czkVisible}\r\n maskClosable={false}\r\n destroyOnClose={true}\r\n title={\"储值结算\"}\r\n onCancel={this.handleCzkCancel}\r\n keyboard={false}\r\n centered={ !this.isHorizontalPad ? true : false}\r\n zIndex={1007}\r\n footer={<div className=\"action\">\r\n <Button onClick={this.handleCzkCancel}>取消</Button>\r\n <Button type=\"primary\" disabled={currentMode && currentMode.errinfo!=''} onClick={this.handleCzkOk}>确定</Button>\r\n </div>}\r\n >\r\n <div>\r\n <div className=\"info\">\r\n {hasmember && <div className={classnames({\"type\":true,'colwidth3':hasmember})}>\r\n <div className=\"value valuetext\">{(currentMode && currentMode.member && currentMode.member.type) || '普通'}</div>\r\n <div className=\"name\">类型</div>\r\n </div>}\r\n <div className=\"gap\">\r\n <div className=\"gap1\"></div>\r\n <div className=\"gap2\"></div>\r\n <div className=\"gap1\"></div>\r\n </div>\r\n <div className={classnames({\"balance\":true,'colwidth2':!hasmember,'colwidth3':hasmember})}>\r\n <div className=\"value\">{currentMode && getFixedNumber(currentMode.balance)}</div>\r\n <div className=\"name\">可用余额</div>\r\n </div>\r\n <div className=\"gap\">\r\n <div className=\"gap1\"></div>\r\n <div className=\"gap2\"></div>\r\n <div className=\"gap1\"></div>\r\n </div>\r\n <div className={classnames({\"available\":true,'colwidth2':!hasmember,'colwidth3':hasmember})}>\r\n <div className=\"value\">{currentMode && getFixedNumber(Math.max(0,Math.min(currentMode.maxamount,currentMode.balance)))}</div>\r\n <div className=\"name\">本单可用</div>\r\n </div>\r\n </div>\r\n <div className=\"no\">\r\n <span>储值卡号:</span>\r\n <span>\r\n {/* <input value={currentMode && currentMode.member.cardNo} ref={input => this['inputczk'] =input } onKeyDown={e=>{if(e.keyCode==13){this.loadCzk(e.target.value);}}}></input> */}\r\n <Input\r\n type='text'\r\n placeholder=\"请扫描或输入手机号/储值卡号\"\r\n className={`input ${(this.hasElectron === true && this.iCCardServer === 1 || this.isHorizontalPad === true) ? 'temp' : ''}`}\r\n onChange={(e) => this.onCzkChange(e.target.value)}\r\n defaultValue={currentMode && currentMode.storageCardNo}\r\n value={czkValue}\r\n ref={input => this.czkInput =input}\r\n onKeyDown={\r\n async (e)=>{\r\n if(e.keyCode==13){\r\n let time = Date.parse(new Date());\r\n if (this.isStorageCardInputType && (time - this.keypressStime > 350)) {\r\n Message.warn('储值卡不可键盘录入,请刷卡!');\r\n this.keypressStime = null;\r\n this.setState({\r\n czkValue: null\r\n })\r\n return;\r\n }\r\n this.keypressStime = null;\r\n await this.loadCzk(e.target.value);\r\n const {paymode} = this.store;\r\n if (!paymode.currentMode.storageCardNo) {\r\n this.setState({\r\n czkvalue: null\r\n })\r\n }\r\n } else if (!this.keypressStime && e.keyCode !== 8) {\r\n this.keypressStime = Date.parse(new Date());\r\n }\r\n }\r\n }\r\n onFocus={(e)=>{\r\n this.inputTarget = this.czkInput.input;\r\n !this.state.prototypeVisible && Keyboard.open((v)=>{\r\n const value = Keyboard.getNewValue(this.inputTarget, this.inputTarget.value, v);\r\n this.onCzkChange(value);\r\n }, this.czkKeyboardOnOk, this.czkKeyboardOnClose)()\r\n }\r\n }\r\n onBlur={(e)=>{\r\n Keyboard.close();\r\n }}\r\n />\r\n </span>\r\n {\r\n this.hasElectron === true && this.iCCardServer === 1 &&\r\n <Ticon className='icon' onClick={this.handleReadICard} type=\"ICka\" />\r\n }\r\n {\r\n this.isHorizontalPad &&\r\n <Ticon type='saomiao1' className='icon' onClick={this.changeScanProduct} />\r\n }\r\n {\r\n /* 扫描组件 */\r\n this.isHorizontalPad &&\r\n <Scan ref={scan => this.scanObj = scan} onChange={this.onScanCzkResult} />\r\n }\r\n </div>\r\n <div className=\"receivable\">\r\n <span>剩余应收:</span>\r\n <span>{paymode.receivable}</span>\r\n </div>\r\n {/* <div className=\"receivable\">\r\n <span>限收金额:</span>\r\n <span>{currentMode && getFixedNumber(currentMode.maxamount)}</span>\r\n </div> */}\r\n <div className=\"received receivedNumber\">\r\n <span>实收金额:</span>\r\n <span>\r\n {/* <NumKeyboard\r\n id='paymentAmount'\r\n className={`${hotKey.hotKeyNotFilter('input')} receivedInput`}\r\n type='text'\r\n style={{ width: 230}}\r\n onChange={(value)=>{this.setCurrentModeValue(value,Math.min(currentMode.maxamount,currentMode.member.balance))}}\r\n defaultValue={currentMode && getFixedNumber(brefund?currentMode.value:Math.min(currentMode.value,currentMode.maxamount,currentMode.member.balance))}\r\n maxLength={12}\r\n precisionLength={2}\r\n ref={input => this.inputCzkAmount = input}\r\n onFocus={(e)=>{\r\n this.inputkey=\"inputCzkAmount\";\r\n Keyboard.open((v)=>{\r\n const value = Keyboard.getNewValue(this[this.inputkey].input, this[this.inputkey].input.value, v);\r\n this.setCurrentModeValue(value,Math.min(currentMode.maxamount,currentMode.member.balance));\r\n }, this.keyboardOnOk, this.keyboardOnClose)()\r\n }\r\n }\r\n onBlur={(e)=>{\r\n Keyboard.close();\r\n this.setCurrentModeValue(getFixedNumber(this.inputCzkAmount.input.value),Math.min(currentMode.maxamount,currentMode.member.balance));\r\n }}\r\n /> */}\r\n <Input\r\n id='paymentAmount'\r\n type='text'\r\n className={hotKey.hotKeyNotFilter('input')}\r\n value={storageValue}\r\n onChange={(event)=>{this.setCurrentModeValue(event.target.value,Math.min(currentMode.maxamount,currentMode.balance))}}\r\n defaultValue={currentMode && getFixedNumber(brefund?currentMode.value:Math.min(currentMode.value,currentMode.maxamount,currentMode.balance))}\r\n ref={ref => this[\"inputCzkAmount\"] = ref}\r\n onFocus={(e)=>{\r\n this.inputkey=\"inputCzkAmount\";\r\n Keyboard.open((v)=>{\r\n const value = Keyboard.getNewValue(this[this.inputkey].input, this[this.inputkey].input.value, v);\r\n this.setCurrentModeValue(value,Math.min(currentMode.maxamount,currentMode.balance));\r\n }, this.keyboardOnOk, this.keyboardOnClose)()\r\n }\r\n }\r\n onBlur={(e)=>{\r\n Keyboard.close();\r\n this.setCurrentModeValue(getFixedNumber(this.inputCzkAmount.input.value),Math.min(currentMode.maxamount,currentMode.balance));\r\n }}\r\n />\r\n </span>\r\n </div>\r\n {\r\n !isReturn && <div className=\"received\">\r\n <span className=\"label\">优惠明细:</span>\r\n <span className=\"yfje economize\">省¥{discountPrototypeTotalAmount}</span>\r\n <span onClick={this.prototypeDetailedClick} className='prototypeDetailed primary-color'>优惠明细<Ticon type='you2'/></span>\r\n </div>\r\n }\r\n <div className=\"error\">{currentMode && currentMode.errinfo}</div>\r\n {(!this.store.member || !this.store.member.ID) && <div className=\"tipStype\">在此处录入会员不会享有折扣、会员价等优惠,若需要优惠请返回至开单界面录入会员!</div>}\r\n </div>\r\n </Modal>\r\n <Modal\r\n wrapClassName={`${hotKey.hotKeyBindClass('5', 'moreCzkModal')} ${this.isHorizontalPad ? 'extraHeight' : ''}`}\r\n width=\"400px\"\r\n visible={this.state.moreCzkVisible}\r\n maskClosable={false}\r\n destroyOnClose={true}\r\n title={\"储值结算\"}\r\n onCancel={this.handleMoreCzkCancel}\r\n keyboard={false}\r\n centered={ !this.isHorizontalPad ? true : false}\r\n zIndex={1007}\r\n footer={<div className=\"action\">\r\n <span className='showUseCard'>仅列示可用的储值卡</span>\r\n <Button onClick={this.handleMoreCzkCancel}>取消</Button>\r\n <Button type=\"primary\" onClick={this.handleMoreCzkOk}>确定</Button>\r\n </div>}\r\n >\r\n <div>\r\n <MoreCzkTable\r\n setMoreCzkIndex={this.setMoreCzkIndex}\r\n selectedRowIndex={this.state.selectedRowIndex}\r\n dataSource={this.state.memberdata1}>\r\n </MoreCzkTable>\r\n </div>\r\n </Modal>\r\n {/* 设置密码弹框 开始*/}\r\n <Modal\r\n wrapClassName={`djq ${this.isHorizontalPad ? 'extraHeight' : ''} passwordContainer`}\r\n width=\"400px\"\r\n visible={this.state.showSetPwdModal}\r\n backdropClosable={false}\r\n destroyOnClose={true}\r\n footer={null}\r\n onCancel={this.handleSetPwdCancel}\r\n keyboard={false}\r\n centered={ !this.isHorizontalPad ? true : false}\r\n title='设置密码'\r\n zIndex={1007}\r\n footer={<div className=\"action\">\r\n <Button onClick={this.handleSetPwdCancel}>取消</Button>\r\n <Button type=\"primary\" disabled={btnDissabled} onClick={this.handleSetModal}>确定</Button>\r\n </div>}\r\n >\r\n <div className='setPwdContainer'>\r\n <div className='setPwdDiv'>\r\n <div className=\"one\">新密码</div>\r\n <div className=\"two\">\r\n <Input.Password\r\n className=\"content\"\r\n placeholder=\"请输入6位数字密码\"\r\n style={{ width: 266, height: 32 }}\r\n maxLength={6}\r\n value={newPass}\r\n ref={input => this.inputNewAmount = input}\r\n onChange={value => this.setPwdValue('newPass', value.target.value)}\r\n onBlur={value => this.handleBlur('newPass')}\r\n onPressEnter={() => this.onPressEnterCzk('newPass')}\r\n />\r\n </div>\r\n </div>\r\n <div className='setPwdDiv'>\r\n <div className=\"one\">确认新密码</div>\r\n <div className=\"two\">\r\n <Input.Password\r\n className=\"content\"\r\n placeholder=\"请确认6位数字密码\"\r\n style={{ width: 266, height: 32 }}\r\n maxLength={6}\r\n value={newPassConfirm}\r\n ref={input => this.inputConfirmAmount = input}\r\n onChange={value => this.setPwdValue('newPassConfirm', value.target.value)}\r\n onBlur={value => this.handleBlur('newPassConfirm')}\r\n onPressEnter={() => this.onPressEnterCzk('newPassConfirm')}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n {/* <div className=\"action\">\r\n <Button onClick={this.handleSetPwdCancel}>取消</Button>\r\n <Button type=\"primary\" disabled={currentMode && currentMode.errinfo!=''} onClick={this.handleSetModal}>确定</Button>\r\n </div> */}\r\n </Modal>\r\n {/* 设置密码弹框 开始*/}\r\n {/* 代金券弹框 开始*/}\r\n <Modal\r\n wrapClassName={`djq ${this.isHorizontalPad ? 'extraHeight' : ''}`}\r\n width=\"810px\"\r\n visible={this.state.djqVisible}\r\n maskClosable={false}\r\n onOk={this.handleDjqOk}\r\n destroyOnClose={true}\r\n onCancel={this.handleDjqCancel}\r\n centered={ !this.isHorizontalPad ? true : false}\r\n title={Differentiate.COUPON+'支付'}\r\n zIndex={1007}\r\n footer={<div className=\"action\">\r\n <Button onClick={this.handleDjqCancel}>取消</Button>\r\n <Button type=\"primary\" disabled={currentMode && currentMode.errinfo!=''} onClick={this.handleDjqOk}>确定</Button>\r\n </div>}\r\n >\r\n <div>\r\n {currentMode && !currentMode.boriginReturn && <div className=\"djq1\">\r\n <div className=\"col1\">{Differentiate.COUPON}号</div>\r\n <div className=\"col2\">\r\n <div>\r\n {/* <input ref={input => this['inputdjq'] =input } onKeyDown={e=>{if(e.keyCode==13){this.addDjq();}}}></input> */}\r\n <Input\r\n type='text'\r\n placeholder={`扫描/输入${Differentiate.COUPON}号并回车`}\r\n className=\"input\"\r\n id='djqInput'\r\n // onChange={this.onDjqChange}\r\n // value={currentMode && currentMode.member.cardNo}\r\n ref={input => this.inputdjq =input}\r\n onKeyDown={\r\n (e)=>{if(e.keyCode==13){this.addDjq(e.target.value)}}\r\n }\r\n onFocus={e => {\r\n this.inputTarget = this.inputdjq.input;\r\n Keyboard.open((v) => {\r\n const value = Keyboard.getNewValue(this.inputTarget, this.inputTarget.value, v);\r\n this.onDjqChange(value,true);\r\n }, this.djqKeyboardOnOk, this.djqKeyboardOnClose)()\r\n }}\r\n onBlur={(e) => { Keyboard.close(); this.inputdjq.input.value = ''; }}\r\n />\r\n </div>\r\n <div className=\"row2\">{currentMode && currentMode.errinfo}</div>\r\n </div>\r\n <div className='col4'>\r\n <Button className={`${this.state.couponLight ? \"primary-color b-theme\" : 'couponBorder'}`} onClick={this.couponClick}>可用优惠券</Button>\r\n <Button className={`${!this.state.couponLight ? \"primary-color b-theme\" : 'couponBorder'}`} onClick={this.couponClick}>不可用优惠券</Button>\r\n <span className='couponTip'>选择券后、不可叠加、金额不满足的券会置灰</span>\r\n </div>\r\n {\r\n this.isHorizontalPad &&\r\n <div className=\"col3\">\r\n <Ticon type='saomiao1' className='icon' onClick={this.changeScanProduct} />\r\n <Scan ref={scan => this.scanObj = scan} onChange={this.onScanDjqResult} />\r\n </div>\r\n }\r\n </div>}\r\n <div className=\"djq2outer\">\r\n <div className=\"djq2\">\r\n {\r\n currentMode && currentMode.djqs && currentMode.djqs.length > 0 ? _map(currentMode.djqs || [],(q,index)=>{\r\n if (!this.state.couponLight && !q.count) {\r\n return;\r\n }\r\n if (this.state.couponLight && (q.count && q.count === 1)) {\r\n return;\r\n }\r\n return (<div key={index + ''} className=\"djqItem\">\r\n {\r\n (!q.promoMethodEnum || q.promoMethodEnum == 'CASH_COUPON') ?\r\n <div className={`djqLeft ${q.IsEnable ? 'djqLeftCash' : 'djqLeftCashGrey'}`}>\r\n <div className=\"amount\">\r\n <span>{q.nominalAmount}</span>\r\n <span>元</span>\r\n </div>\r\n <div className=\"lijian\">立减</div>\r\n </div>\r\n :\r\n <div className={`djqLeft ${q.IsEnable ? 'djqLeftCash' : 'djqLeftCashGrey'}`}>\r\n <div className=\"amount\">\r\n <span>{tools.cutZero(q.discountPct * 10)}</span>\r\n <span>折</span>\r\n </div>\r\n <div className=\"lijian\">折扣</div>\r\n </div>\r\n }\r\n <div className={classnames('djqRight', { 'djqRightSelected': q.checked })} onClick={(e) => q.IsEnable ? this.djqChecked(q, this.props.dto) : null}>\r\n {q.checked ? <Ticon className='checkIcon primary-color' type='xuanzhong1'/> : <span className={`${q.IsEnable ? 'noxuanzhong' : 'noxuanzhong1'}`}></span>}\r\n {q.checked ? <div className='name overflow-hidden-point primary-color'>{q.name}</div> : <div className='name overflow-hidden-point'>{q.name}</div>}\r\n {\r\n q.displayText ?\r\n <div className=\"info overflow-hidden-point\"><span>{q.displayText}</span></div> :\r\n <div className=\"info overflow-hidden-point\"><span>使用门槛:</span><span>{q.doorsill}</span><span>元</span></div>\r\n }\r\n {\r\n q.expired ? <div className=\"info info_red overflow-hidden-point\"><span>{q.expired}</span></div> : null\r\n }\r\n </div>\r\n <div className=\"point_top\"/>\r\n <div className=\"point_bottom\"/>\r\n </div>)\r\n }) : <ProgressState\r\n state={\"empty\"}\r\n stateCommonStyle={{ 'paddingTop': \"30px\", backgroundColor: 'transparent' }}\r\n empty={{ buttonVisible: false, imgStyle: {width: '120px', height: '120px'} }} />\r\n }\r\n </div>\r\n </div>\r\n {currentMode && !currentMode.boriginReturn && <div className=\"djq3\">\r\n <div className=\"col1\">\r\n <div className=\"row1\">剩余应收</div>\r\n <div className=\"row2\">{currentMode ? currentMode.receivable:'0.00'}</div>\r\n </div>\r\n <div className=\"col2\">\r\n <div className=\"row1\">本单可用</div>\r\n <div className=\"row2\">{currentMode ? currentMode.maxamount:'0.00'}</div>\r\n </div>\r\n <div className=\"col2\">\r\n <div className=\"row1\">{Differentiate.COUPON}结算金额</div>\r\n <div className=\"row2\">{currentMode ? currentMode.value:'0.00'}</div>\r\n </div>\r\n <div className=\"col3\">\r\n <div className=\"row1\">溢收金额</div>\r\n <div className=\"row2\">{currentMode ? currentMode.overchargesAmount:'0.00'}</div>\r\n </div>\r\n </div>}\r\n {currentMode && currentMode.boriginReturn && <div className=\"djq3\">\r\n <div className=\"col1\">\r\n <div className=\"row1\">数量</div>\r\n <div className=\"row2\">{currentMode && currentMode.djqs ? currentMode.djqs.length:'0'}</div>\r\n </div>\r\n <div className=\"col2\">\r\n <div className=\"row1\">退款金额</div>\r\n <div className=\"row2\">{currentMode ? currentMode.value:'0.00'}</div>\r\n </div>\r\n </div>}\r\n </div>\r\n </Modal>\r\n {/* 代金券弹框 结束*/}\r\n {/* 积分抵现弹框 开始*/}\r\n <Modal\r\n wrapClassName={`czk ${this.isHorizontalPad ? 'extraHeight' : ''}`}\r\n width=\"420px\"\r\n visible={this.state.jfdxVisible}\r\n maskClosable={false}\r\n onCancel = { this.handleJfdxCancel }\r\n centered={ !this.isHorizontalPad ? true : false}\r\n title={\"积分抵现\"}\r\n destroyOnClose={true}\r\n zIndex={1007}\r\n footer={<div className=\"action\">\r\n <Button onClick={this.handleJfdxCancel}>取消</Button>\r\n <Button type=\"primary\" disabled={currentMode && currentMode.errinfo!=''} onClick={this.handleJfdxOk}>确定</Button>\r\n </div>}\r\n >\r\n <div>\r\n <div className=\"info\">\r\n <div className={classnames({\"type\":true,'colwidth4':hasmember})}>\r\n <div className=\"value valuetext\">{(currentMode && currentMode.member && currentMode.member.type) || '普通'}</div>\r\n <div className=\"name\">类型</div>\r\n </div>\r\n <div className=\"gap\">\r\n <div className=\"gap1\"></div>\r\n <div className=\"gap2\"></div>\r\n <div className=\"gap1\"></div>\r\n </div>\r\n <div className={classnames({\"balance\":true,'colwidth4':hasmember})}>\r\n <div className=\"value\">{currentMode && currentMode.member && currentMode.member.bonusPoints}</div>\r\n <div className=\"name\">积分</div>\r\n </div>\r\n <div className=\"gap\">\r\n <div className=\"gap1\"></div>\r\n <div className=\"gap2\"></div>\r\n <div className=\"gap1\"></div>\r\n </div>\r\n <div className={classnames({\"balance\":true,'colwidth4':hasmember})}>\r\n <div className=\"value\">{currentMode && currentMode.member && getFixedNumber(currentMode.steadCashIntegral)}</div>\r\n <div className=\"name\">本单使用积分</div>\r\n </div>\r\n <div className=\"gap\">\r\n <div className=\"gap1\"></div>\r\n <div className=\"gap2\"></div>\r\n <div className=\"gap1\"></div>\r\n </div>\r\n <div className={classnames({\"available\":true,'colwidth4':hasmember})}>\r\n <div className=\"value\">{currentMode && currentMode.member && getFixedNumber(Math.max(0,Math.min(currentMode.maxamount,currentMode.member.exchangable)))}</div>\r\n <div className=\"name\">本单可抵现金额</div>\r\n </div>\r\n </div>\r\n <div className=\"no\">\r\n <span>会员卡号:</span>\r\n <span className=\"notext\">{currentMode && currentMode.member && currentMode.member.cardNo}</span>\r\n </div>\r\n <div className=\"receivable\">\r\n <span>剩余应收:</span>\r\n <span>{paymode.receivable}</span>\r\n </div>\r\n <div className=\"received\">\r\n <span>实收金额:</span>\r\n <span>\r\n {/* <input value={currentMode && currentMode.value} onChange={(value)=>{this.setCurrentModeValue(value,currentMode.member.exchangable)}}></input> */}\r\n <Input\r\n className={hotKey.hotKeyNotFilter('input')}\r\n type='text'\r\n value={storageValue}\r\n onChange={(e)=>{this.setCurrentModeValue(e.target.value,Math.min(currentMode.maxamount,currentMode.member.exchangable))}}\r\n defaultValue={currentMode && currentMode.member && getFixedNumber(Math.min(currentMode.value,currentMode.maxamount,currentMode.member.exchangable))}\r\n ref={ref => this[\"inputJfdxAmount\"] = ref}\r\n onFocus={(e)=>{\r\n this.inputkey=\"inputJfdxAmount\";\r\n Keyboard.open((v)=>{\r\n const value = Keyboard.getNewValue(this[this.inputkey].input, this[this.inputkey].input.value, v);\r\n this.setCurrentModeValue(value,Math.min(currentMode.maxamount,currentMode.member.exchangable));\r\n }, this.keyboardOnOk, this.keyboardOnClose)()\r\n }\r\n }\r\n onBlur={(e)=>{\r\n Keyboard.close();\r\n this.setCurrentModeValue(getFixedNumber(this.inputJfdxAmount.input.value),Math.min(currentMode.maxamount,currentMode.member.exchangable));\r\n }}\r\n />\r\n </span>\r\n </div>\r\n <div className=\"error\">{currentMode && currentMode.errinfo}</div>\r\n </div>\r\n </Modal>\r\n {/* 积分抵现弹框 结束*/}\r\n <PrototypeTableModal discount={\r\n {\r\n discountTotalAmount,discountRetailTotalAount,discountPrototypeTotalAmount,\r\n }\r\n } handleprototypeCancel={this.handleprototypeCancel} isHorizontalPad={this.isHorizontalPad} dataSource={dataSource} prototypeVisible={this.state.prototypeVisible} isNotAutoFocus={isNotAutoFocus}/>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default Settlement;\r\n\r\n"]}
|