UNPKG

dareway-rui

Version:

927 lines (841 loc) 64.3 kB
'use strict'; var _interopRequireDefault = require('@babel/runtime/helpers/interopRequireDefault'); Object.defineProperty(exports, '__esModule', { value: true }); exports.default = void 0; var _regenerator = _interopRequireDefault(require('@babel/runtime/regenerator')); var _classCallCheck2 = _interopRequireDefault(require('@babel/runtime/helpers/classCallCheck')); var _createClass2 = _interopRequireDefault(require('@babel/runtime/helpers/createClass')); var _possibleConstructorReturn2 = _interopRequireDefault(require('@babel/runtime/helpers/possibleConstructorReturn')); var _getPrototypeOf2 = _interopRequireDefault(require('@babel/runtime/helpers/getPrototypeOf')); var _assertThisInitialized2 = _interopRequireDefault(require('@babel/runtime/helpers/assertThisInitialized')); var _inherits2 = _interopRequireDefault(require('@babel/runtime/helpers/inherits')); var _defineProperty2 = _interopRequireDefault(require('@babel/runtime/helpers/defineProperty')); var _react = _interopRequireDefault(require('react')); var _ = require('../..'); var _openRES = _interopRequireDefault(require('../../taglib/res/openRES')); ///////////////////////////////////////////////////////////////////////////// // Dependency // // React // RUI var Dropdown = _.Form.Dropdown, FormTitle = _.Form.FormTitle, StringInput = _.Form.StringInput, LovInput = _.Form.LovInput; var GridColumns = _.Grid.GridColumns, DateColumn = _.Grid.DateColumn, DropdownColumn = _.Grid.DropdownColumn, StringColumn = _.Grid.StringColumn; ///////////////////////////////////////////////////////////////////////////// // View // var WorkflowPanel = /*#__PURE__*/ (function(_RUIView) { (0, _inherits2.default)(WorkflowPanel, _RUIView); function WorkflowPanel(props) { var _this; (0, _classCallCheck2.default)(this, WorkflowPanel); _this = (0, _possibleConstructorReturn2.default)( this, (0, _getPrototypeOf2.default)(WorkflowPanel).call(this, props) ); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'componentDidMount', function() { // 控制 UTP 上的按钮是否可见 _this.props.invoke('loadUTC'); }); (0, _defineProperty2.default)( (0, _assertThisInitialized2.default)(_this), 'enterTPWatchdogExceptionInfo', function() { alert('enterTPWatchdogExceptionInfo'); } ); (0, _defineProperty2.default)( (0, _assertThisInitialized2.default)(_this), 'enterViewTaskComment', function() { alert('enterViewTaskComment'); } ); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'onClickBoQuery', function( params ) {}); (0, _defineProperty2.default)( (0, _assertThisInitialized2.default)(_this), 'enterViewProcessDiagram', function() { return _this.props.invoke('enterViewProcessDiagram'); } ); (0, _defineProperty2.default)( (0, _assertThisInitialized2.default)(_this), 'enterRESSelectRwtsr', function() { return _this.props.invoke('enterRESSelectRwtsr'); } ); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'onClickSumit', function( params ) { return _this.props.invoke('onClickSumit', params); }); return _this; } (0, _createClass2.default)(WorkflowPanel, [ { key: 'render', value: function render() { var _this2 = this; var _this$props$getParame = this.props.getParameters(), utp_para = _this$props$getParame.utp_para; var businessUrl = utp_para.businessurl_4_rui, btnsArr = utp_para.btnsarr_4_rui, btnsPicArr = utp_para.btnspicarr_4_rui, hiddenBtnsArr = utp_para.hiddenbtnsarr_4_rui, tpid = utp_para.tpid, tdlabel = utp_para.tdlabel, piid = utp_para.piid, tid = utp_para.tid, isassignee = utp_para.isassignee, remoteurl = utp_para.remoteurl, isHaveComment = utp_para.ishavecomment, boquery = utp_para.boquery, eid = utp_para.eid, dpdeal = utp_para.dpdeal, pdaid = utp_para.pdaid, tpwatchdog_exeception_flag = utp_para.tpwatchdog_exeception_flag, close_btn_visible = utp_para.close_btn_visible; return _react.default.createElement( _.Panel, null, _react.default.createElement(_.Panel, { name: 'utcContainer' }), boquery.length || btnsArr.length ? _react.default.createElement( _.Panel, { height: 'auto' }, _react.default.createElement( _.TitleButtons, null, tpwatchdog_exeception_flag && _react.default.createElement(_.PicButton, { name: 'view_tpwatchdog_exception_btn', iconId: 'wf_tpwatchdog_error', onClick: this.enterTPWatchdogExceptionInfo, title: '查看任务异常信息' }), isHaveComment === '1' && _react.default.createElement(_.PicButton, { name: 'view_task_comment_btn', iconId: 'wf_rwfy', onClick: this.enterViewTaskComment, title: '查看附言' }), boquery.map(function(boQueryDefine, key) { var vapinfo = boQueryDefine.vapinfo_4_rui; var vapid = vapinfo.vapid, ispicvap = vapinfo.ispicvap, vaptype = vapinfo.vaptype, _vapinfo$vaplabel = vapinfo.vaplabel, vaplabel = _vapinfo$vaplabel === void 0 ? '主体查询' : _vapinfo$vaplabel, vapwintitle = vapinfo.vapwintitle, vapurl = vapinfo.vapurl, vaptreeclassname = vapinfo.vaptreeclassname, vaptreeinitmethod = vapinfo.vaptreeinitmethod, vaptreepara = vapinfo.vaptreepara, iconid = vapinfo.iconid, vaptreekey = vapinfo.vaptreekey; var para = { vaptype: vaptype, vapwintitle: vapwintitle, vapurl: vapurl, vaptreeclassname: vaptreeclassname, vaptreeinitmethod: vaptreeinitmethod, vaptreepara: vaptreepara, vaptreekey: vaptreekey }; if (ispicvap === '0') { return null; } if (!vapid) { return null; } return _react.default.createElement(_.PicButton, { key: key, name: vapid, iconId: iconid, onClick: function onClick() { return _this2.onClickBoQuery(para); }, title: vapwintitle }); }), _react.default.createElement(_.PicButton, { name: 'view_process_diagram_btn', iconId: 'wf_cxlc', onClick: this.enterViewProcessDiagram, title: '查看业务详情' }), _react.default.createElement(_.PicButton, { name: 'view_process_rwts_btn', iconId: 'wf_rwts', onClick: this.enterRESSelectRwtsr, title: '任务推送' }), btnsPicArr.map(function(pbtn, key) { var label = pbtn.label, btnName = pbtn.name, BPMethod = pbtn.bpmethod, checkPreSubmit = pbtn.checkpresubmit, toSubmit = pbtn.tosubmit, closeWindow = pbtn.closewindow, iconid = pbtn.iconid, m_iconid = pbtn.m_iconid, isvisible = pbtn.isvisible, desktopadjustjsp = pbtn.desktopadjustjsp, desktopadjustjs = pbtn.desktopadjustjs, changepioperatedflag = pbtn.changepioperatedflag; var para = { BPMethod: BPMethod, checkPreSubmit: checkPreSubmit, btnName: btnName, toSubmit: toSubmit, closeWindow: closeWindow, desktopadjustjsp: desktopadjustjsp, desktopadjustjs: desktopadjustjs, label: label }; return _react.default.createElement(_.PicButton, { key: key, name: btnName, iconId: iconid, onClick: function onClick() { return _this2.onClickSumit(para); }, title: label }); }) ), _react.default.createElement( _.Buttons, null, boquery.map(function(boQueryDefine, key) { var vapinfo = boQueryDefine.vapinfo_4_rui; var vapid = vapinfo.vapid, ispicvap = vapinfo.ispicvap, vaptype = vapinfo.vaptype, _vapinfo$vaplabel2 = vapinfo.vaplabel, vaplabel = _vapinfo$vaplabel2 === void 0 ? '主体查询' : _vapinfo$vaplabel2, vapwintitle = vapinfo.vapwintitle, vapurl = vapinfo.vapurl, vaptreeclassname = vapinfo.vaptreeclassname, vaptreeinitmethod = vapinfo.vaptreeinitmethod, vaptreepara = vapinfo.vaptreepara, iconid = vapinfo.iconid, vaptreekey = vapinfo.vaptreekey; var para = { vaptype: vaptype, vapwintitle: vapwintitle, vapurl: vapurl, vaptreeclassname: vaptreeclassname, vaptreeinitmethod: vaptreeinitmethod, vaptreepara: vaptreepara, vaptreekey: vaptreekey }; if (ispicvap === '1') { return null; } if (!vapid) { return null; } return _react.default.createElement(_.Button, { key: key, name: vapid, value: vaplabel, onClick: function onClick() { return _this2.onClickBoQuery(para); }, title: vapwintitle }); }), btnsArr.map(function(pbtn, key) { var label = pbtn.label, btnName = pbtn.name, BPMethod = pbtn.bpmethod, checkPreSubmit = pbtn.checkpresubmit, toSubmit = pbtn.tosubmit, closeWindow = pbtn.closewindow, iconid = pbtn.iconid, m_iconid = pbtn.m_iconid, isvisible = pbtn.isvisible, desktopadjustjsp = pbtn.desktopadjustjsp, desktopadjustjs = pbtn.desktopadjustjs, changepioperatedflag = pbtn.changepioperatedflag; var para = { BPMethod: BPMethod, checkPreSubmit: checkPreSubmit, btnName: btnName, toSubmit: toSubmit, closeWindow: closeWindow, desktopadjustjsp: desktopadjustjsp, desktopadjustjs: desktopadjustjs, label: label }; return _react.default.createElement(_.Button, { key: key, name: btnName, value: label, onClick: function onClick() { return _this2.onClickSumit(para); }, title: label }); }) ), _react.default.createElement( _.Buttons, null, hiddenBtnsArr.map(function(pbtn, key) { var label = pbtn.label, btnName = pbtn.name, BPMethod = pbtn.bpmethod, checkPreSubmit = pbtn.checkpresubmit, toSubmit = pbtn.tosubmit, closeWindow = pbtn.closewindow, iconid = pbtn.iconid, m_iconid = pbtn.m_iconid, isvisible = pbtn.isvisible, desktopadjustjsp = pbtn.desktopadjustjsp, desktopadjustjs = pbtn.desktopadjustjs, changepioperatedflag = pbtn.changepioperatedflag; var para = { BPMethod: BPMethod, checkPreSubmit: checkPreSubmit, btnName: btnName, toSubmit: toSubmit, closeWindow: closeWindow, desktopadjustjsp: desktopadjustjsp, desktopadjustjs: desktopadjustjs, label: label }; return _react.default.createElement(_.Button, { key: key, name: btnName, value: label, onClick: function onClick() { return _this2.onClickSumit(para); }, title: label }); }) ) ) : _react.default.createElement( _.Panel, { height: 'auto' }, _react.default.createElement( _.TitleButtons, null, tpwatchdog_exeception_flag && _react.default.createElement(_.PicButton, { name: 'view_tpwatchdog_exception_btn', iconId: 'wf_tpwatchdog_error', onClick: this.enterTPWatchdogExceptionInfo, title: '查看任务异常信息' }), isHaveComment === '1' && _react.default.createElement(_.PicButton, { name: 'view_task_comment_btn', iconId: 'wf_rwfy', onClick: this.enterViewTaskComment, title: '查看附言' }), boquery.map(function(boQueryDefine, key) { var vapinfo = boQueryDefine.vapinfo_4_rui; var vapid = vapinfo.vapid, ispicvap = vapinfo.ispicvap, vaptype = vapinfo.vaptype, _vapinfo$vaplabel3 = vapinfo.vaplabel, vaplabel = _vapinfo$vaplabel3 === void 0 ? '主体查询' : _vapinfo$vaplabel3, vapwintitle = vapinfo.vapwintitle, vapurl = vapinfo.vapurl, vaptreeclassname = vapinfo.vaptreeclassname, vaptreeinitmethod = vapinfo.vaptreeinitmethod, vaptreepara = vapinfo.vaptreepara, iconid = vapinfo.iconid, vaptreekey = vapinfo.vaptreekey; var para = { vaptype: vaptype, vapwintitle: vapwintitle, vapurl: vapurl, vaptreeclassname: vaptreeclassname, vaptreeinitmethod: vaptreeinitmethod, vaptreepara: vaptreepara, vaptreekey: vaptreekey }; if (ispicvap === '0') { return null; } if (!vapid) { return null; } return _react.default.createElement(_.PicButton, { key: key, name: vapid, iconId: iconid, onClick: function onClick() { return _this2.onClickBoQuery(para); }, title: vapwintitle }); }), _react.default.createElement(_.PicButton, { name: 'view_process_diagram_btn', iconId: 'wf_cxlc', onClick: this.enterViewProcessDiagram, title: '查看业务详情' }), _react.default.createElement(_.PicButton, { name: 'view_process_rwts_btn', iconId: 'wf_rwts', onClick: this.enterRESSelectRwtsr, title: '任务推送' }), btnsPicArr.map(function(pbtn, key) { var label = pbtn.label, btnName = pbtn.name, BPMethod = pbtn.bpmethod, checkPreSubmit = pbtn.checkpresubmit, toSubmit = pbtn.tosubmit, closeWindow = pbtn.closewindow, iconid = pbtn.iconid, m_iconid = pbtn.m_iconid, isvisible = pbtn.isvisible, desktopadjustjsp = pbtn.desktopadjustjsp, desktopadjustjs = pbtn.desktopadjustjs, changepioperatedflag = pbtn.changepioperatedflag; var para = { BPMethod: BPMethod, checkPreSubmit: checkPreSubmit, btnName: btnName, toSubmit: toSubmit, closeWindow: closeWindow, desktopadjustjsp: desktopadjustjsp, desktopadjustjs: desktopadjustjs, label: label }; return _react.default.createElement(_.PicButton, { key: key, name: btnName, iconId: iconid, onClick: function onClick() { return _this2.onClickSumit(para); }, title: label }); }) ), _react.default.createElement( _.Buttons, null, boquery.map(function(boQueryDefine, key) { var vapinfo = boQueryDefine.vapinfo_4_rui; var vapid = vapinfo.vapid, ispicvap = vapinfo.ispicvap, vaptype = vapinfo.vaptype, _vapinfo$vaplabel4 = vapinfo.vaplabel, vaplabel = _vapinfo$vaplabel4 === void 0 ? '主体查询' : _vapinfo$vaplabel4, vapwintitle = vapinfo.vapwintitle, vapurl = vapinfo.vapurl, vaptreeclassname = vapinfo.vaptreeclassname, vaptreeinitmethod = vapinfo.vaptreeinitmethod, vaptreepara = vapinfo.vaptreepara, iconid = vapinfo.iconid, vaptreekey = vapinfo.vaptreekey; var para = { vaptype: vaptype, vapwintitle: vapwintitle, vapurl: vapurl, vaptreeclassname: vaptreeclassname, vaptreeinitmethod: vaptreeinitmethod, vaptreepara: vaptreepara, vaptreekey: vaptreekey }; if (ispicvap === '1') { return null; } if (!vapid) { return null; } return _react.default.createElement(_.Button, { key: key, name: vapid, value: vaplabel, onClick: function onClick() { return _this2.onClickBoQuery(para); }, title: vapwintitle }); }), btnsArr.map(function(pbtn, key) { var label = pbtn.label, btnName = pbtn.name, BPMethod = pbtn.bpmethod, checkPreSubmit = pbtn.checkpresubmit, toSubmit = pbtn.tosubmit, closeWindow = pbtn.closewindow, iconid = pbtn.iconid, m_iconid = pbtn.m_iconid, isvisible = pbtn.isvisible, desktopadjustjsp = pbtn.desktopadjustjsp, desktopadjustjs = pbtn.desktopadjustjs, changepioperatedflag = pbtn.changepioperatedflag; var para = { BPMethod: BPMethod, checkPreSubmit: checkPreSubmit, btnName: btnName, toSubmit: toSubmit, closeWindow: closeWindow, desktopadjustjsp: desktopadjustjsp, desktopadjustjs: desktopadjustjs, label: label }; return _react.default.createElement(_.Button, { key: key, name: btnName, value: label, onClick: function onClick() { return _this2.onClickSumit(para); }, title: label }); }) ), _react.default.createElement( _.Buttons, null, hiddenBtnsArr.map(function(pbtn, key) { var label = pbtn.label, btnName = pbtn.name, BPMethod = pbtn.bpmethod, checkPreSubmit = pbtn.checkpresubmit, toSubmit = pbtn.tosubmit, closeWindow = pbtn.closewindow, iconid = pbtn.iconid, m_iconid = pbtn.m_iconid, isvisible = pbtn.isvisible, desktopadjustjsp = pbtn.desktopadjustjsp, desktopadjustjs = pbtn.desktopadjustjs, changepioperatedflag = pbtn.changepioperatedflag; var para = { BPMethod: BPMethod, checkPreSubmit: checkPreSubmit, btnName: btnName, toSubmit: toSubmit, closeWindow: closeWindow, desktopadjustjsp: desktopadjustjsp, desktopadjustjs: desktopadjustjs, label: label }; return _react.default.createElement(_.Button, { key: key, name: btnName, value: label, onClick: function onClick() { return _this2.onClickSumit(para); }, title: label }); }) ) ) ); } // defer = "defer" } ]); return WorkflowPanel; })(_.RUIView); ///////////////////////////////////////////////////////////////////////////// // Model // var modelWorkflowPanel = _.RUICore.createModel({ effects: { loadUTC: /*#__PURE__*/ _regenerator.default.mark(function loadUTC(_ref, RUI) { var payload, _ref2, utp_para, businessurl, piid, tid, eid, close_btn_visible, utpNamespace, utcContainer; return _regenerator.default.wrap(function loadUTC$(_context) { while (1) { switch ((_context.prev = _context.next)) { case 0: payload = _ref.payload; _context.next = 3; return RUI.getParameters(); case 3: _ref2 = _context.sent; utp_para = _ref2.utp_para; (businessurl = utp_para.businessurl_4_rui), (piid = utp_para.piid), (tid = utp_para.tid), (eid = utp_para.eid), (close_btn_visible = utp_para.close_btn_visible); if (businessurl === '__rui/workflow/vm/component/at/aut/AutUTC.js') { businessurl = '_lib/workflow/vm/component/at/aut/AutUTC.js'; } _context.next = 9; return RUI.getNamespace(); case 9: utpNamespace = _context.sent; _context.next = 12; return RUI.invoke('setUTPCloseBtnVisible', close_btn_visible); case 12: _context.next = 14; return RUI.getObject('utcContainer'); case 14: utcContainer = _context.sent; _context.next = 17; return utcContainer.asynchRefresh(null, businessurl, { piid: piid, tid: tid, eid: eid, UTPApi: new _.UTPApi(utpNamespace, eid, piid, tid) }); case 17: case 'end': return _context.stop(); } } }, loadUTC); }), setUTPCloseBtnVisible: /*#__PURE__*/ _regenerator.default.mark(function setUTPCloseBtnVisible(_ref3, RUI) { var payload, close_btn_visible, beaconObj; return _regenerator.default.wrap(function setUTPCloseBtnVisible$(_context2) { while (1) { switch ((_context2.prev = _context2.next)) { case 0: payload = _ref3.payload; close_btn_visible = payload; _context2.next = 4; return RUI.getBeacon(); case 4: beaconObj = _context2.sent; _context2.next = 7; return beaconObj.setCloseable(close_btn_visible); case 7: case 'end': return _context2.stop(); } } }, setUTPCloseBtnVisible); }), enterViewProcessDiagram: /*#__PURE__*/ _regenerator.default.mark(function enterViewProcessDiagram(_ref4, RUI) { var payload, tid, chk, piid; return _regenerator.default.wrap(function enterViewProcessDiagram$(_context3) { while (1) { switch ((_context3.prev = _context3.next)) { case 0: payload = _ref4.payload; _context3.next = 3; return RUI.invoke('getTid'); case 3: tid = _context3.sent; _context3.next = 6; return _.WorkFlowUtil.checkClaim(tid); case 6: chk = _context3.sent; if (chk) { _context3.next = 9; break; } return _context3.abrupt('return', false); case 9: _context3.next = 11; return RUI.invoke('getPiid'); case 11: piid = _context3.sent; _context3.next = 14; return _.WorkFlowUtil.enterViewProcessDetail(piid); case 14: case 'end': return _context3.stop(); } } }, enterViewProcessDiagram); }), onClickSumit: /*#__PURE__*/ _regenerator.default.mark(function onClickSumit(_ref5, RUI) { var payload, _ref6, utp_para, tid, btnName, chkFlag, beaconObj, utcContainer, BPMethod, bpMethodRetVal, toSubmit, checkPreSubmit, checkPreSubmitRetVal, btnObj, tpid, piid, _tid, eid, pdaid, desktopadjustjsp, desktopadjustjs, FlowPath, beacon; return _regenerator.default.wrap( function onClickSumit$(_context4) { while (1) { switch ((_context4.prev = _context4.next)) { case 0: payload = _ref5.payload; _context4.next = 3; return RUI.getParameters(); case 3: _ref6 = _context4.sent; utp_para = _ref6.utp_para; tid = utp_para.tid; btnName = payload.btnName; // 校验当前登录用户在UTP页面能否进行操作 _context4.next = 9; return _.WorkFlowUtil.checkClaim(tid); case 9: chkFlag = _context4.sent; if (chkFlag) { _context4.next = 17; break; } _context4.next = 13; return RUI.getBeacon(); case 13: beaconObj = _context4.sent; _context4.next = 16; return beaconObj.closeBeacon(); case 16: return _context4.abrupt('return'); case 17: if (!(btnName === 'btn_goAbort')) { _context4.next = 20; break; } if (confirm('您确定作废当前业务?')) { _context4.next = 20; break; } return _context4.abrupt('return', false); case 20: _context4.next = 22; return RUI.getObject('utcContainer'); case 22: utcContainer = _context4.sent; // BPMethod 在BPMC 中定义了但是在 UTC 中没有实现接口,提示【业务接口XXX不存在】 BPMethod = payload.BPMethod; _context4.prev = 24; _context4.next = 27; return utcContainer.invoke(BPMethod); case 27: bpMethodRetVal = _context4.sent; if (!(bpMethodRetVal !== true && bpMethodRetVal !== false)) { _context4.next = 30; break; } throw new Error( '\u4E1A\u52A1\u63A5\u53E3\u3010' .concat( BPMethod, '\u3011\u7684\u8FD4\u56DE\u503C\u5FC5\u987B\u4E3A boolean \u7C7B\u578B\uFF08true/false\uFF09\uFF0C\u5F53\u524D\u8FD4\u56DE\u503C\u4E3A\u3010' ) .concat(bpMethodRetVal, '\u3011\uFF0C\u8BF7\u68C0\u67E5!') ); case 30: if (!(bpMethodRetVal === false)) { _context4.next = 32; break; } return _context4.abrupt('return'); case 32: _context4.next = 39; break; case 34: _context4.prev = 34; _context4.t0 = _context4['catch'](24); if (!(_context4.t0 instanceof _.EffectOrReducerNotExistException)) { _context4.next = 38; break; } throw new Error( '\u4E1A\u52A1\u63A5\u53E3\u3010'.concat( BPMethod, '\u3011\u4E0D\u5B58\u5728\uFF0C\u8BF7\u68C0\u67E5!' ) ); case 38: throw _context4.t0; case 39: // toSubmit toSubmit = payload.toSubmit; if (!(toSubmit === '1')) { _context4.next = 73; break; } // beacon.setActionBeforeClose(null); // 调用 checkPreSubmit,若 checkMethodName在BPMC中定义了但是在UTC中没有实现接口,提示【业务接口XXX不存在】 checkPreSubmit = payload.checkPreSubmit; if (!checkPreSubmit) { _context4.next = 58; break; } _context4.prev = 43; _context4.next = 46; return utcContainer.invoke(checkPreSubmit); case 46: checkPreSubmitRetVal = _context4.sent; if (!(checkPreSubmitRetVal !== true && checkPreSubmitRetVal !== false)) { _context4.next = 49; break; } throw new Error( '\u4E1A\u52A1\u63A5\u53E3\u3010' .concat( checkPreSubmit, '\u3011\u7684\u8FD4\u56DE\u503C\u5FC5\u987B\u4E3A boolean \u7C7B\u578B\uFF08true/false\uFF09\uFF0C\u5F53\u524D\u8FD4\u56DE\u503C\u4E3A\u3010' ) .concat(checkPreSubmitRetVal, '\u3011\uFF0C\u8BF7\u68C0\u67E5!') ); case 49: if (!(checkPreSubmitRetVal === false)) { _context4.next = 51; break; } return _context4.abrupt('return'); case 51: _context4.next = 58; break; case 53: _context4.prev = 53;