message-box.js 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819
  1. module.exports =
  2. /******/ (function(modules) { // webpackBootstrap
  3. /******/ // The module cache
  4. /******/ var installedModules = {};
  5. /******/ // The require function
  6. /******/ function __webpack_require__(moduleId) {
  7. /******/ // Check if module is in cache
  8. /******/ if(installedModules[moduleId])
  9. /******/ return installedModules[moduleId].exports;
  10. /******/ // Create a new module (and put it into the cache)
  11. /******/ var module = installedModules[moduleId] = {
  12. /******/ exports: {},
  13. /******/ id: moduleId,
  14. /******/ loaded: false
  15. /******/ };
  16. /******/ // Execute the module function
  17. /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  18. /******/ // Flag the module as loaded
  19. /******/ module.loaded = true;
  20. /******/ // Return the exports of the module
  21. /******/ return module.exports;
  22. /******/ }
  23. /******/ // expose the modules object (__webpack_modules__)
  24. /******/ __webpack_require__.m = modules;
  25. /******/ // expose the module cache
  26. /******/ __webpack_require__.c = installedModules;
  27. /******/ // __webpack_public_path__
  28. /******/ __webpack_require__.p = "/dist/";
  29. /******/ // Load entry module and return exports
  30. /******/ return __webpack_require__(0);
  31. /******/ })
  32. /************************************************************************/
  33. /******/ ({
  34. /***/ 0:
  35. /***/ function(module, exports, __webpack_require__) {
  36. module.exports = __webpack_require__(199);
  37. /***/ },
  38. /***/ 3:
  39. /***/ function(module, exports) {
  40. module.exports = function normalizeComponent (
  41. rawScriptExports,
  42. compiledTemplate,
  43. scopeId,
  44. cssModules
  45. ) {
  46. var esModule
  47. var scriptExports = rawScriptExports = rawScriptExports || {}
  48. // ES6 modules interop
  49. var type = typeof rawScriptExports.default
  50. if (type === 'object' || type === 'function') {
  51. esModule = rawScriptExports
  52. scriptExports = rawScriptExports.default
  53. }
  54. // Vue.extend constructor export interop
  55. var options = typeof scriptExports === 'function'
  56. ? scriptExports.options
  57. : scriptExports
  58. // render functions
  59. if (compiledTemplate) {
  60. options.render = compiledTemplate.render
  61. options.staticRenderFns = compiledTemplate.staticRenderFns
  62. }
  63. // scopedId
  64. if (scopeId) {
  65. options._scopeId = scopeId
  66. }
  67. // inject cssModules
  68. if (cssModules) {
  69. var computed = options.computed || (options.computed = {})
  70. Object.keys(cssModules).forEach(function (key) {
  71. var module = cssModules[key]
  72. computed[key] = function () { return module }
  73. })
  74. }
  75. return {
  76. esModule: esModule,
  77. exports: scriptExports,
  78. options: options
  79. }
  80. }
  81. /***/ },
  82. /***/ 9:
  83. /***/ function(module, exports) {
  84. module.exports = require("element-ui/lib/input");
  85. /***/ },
  86. /***/ 56:
  87. /***/ function(module, exports) {
  88. module.exports = require("vue");
  89. /***/ },
  90. /***/ 60:
  91. /***/ function(module, exports) {
  92. module.exports = require("element-ui/lib/mixins/locale");
  93. /***/ },
  94. /***/ 61:
  95. /***/ function(module, exports) {
  96. module.exports = require("element-ui/lib/locale");
  97. /***/ },
  98. /***/ 117:
  99. /***/ function(module, exports) {
  100. module.exports = require("element-ui/lib/utils/dom");
  101. /***/ },
  102. /***/ 132:
  103. /***/ function(module, exports) {
  104. module.exports = require("element-ui/lib/utils/popup");
  105. /***/ },
  106. /***/ 137:
  107. /***/ function(module, exports) {
  108. module.exports = require("element-ui/lib/button");
  109. /***/ },
  110. /***/ 164:
  111. /***/ function(module, exports) {
  112. module.exports = require("element-ui/lib/utils/merge");
  113. /***/ },
  114. /***/ 199:
  115. /***/ function(module, exports, __webpack_require__) {
  116. 'use strict';
  117. exports.__esModule = true;
  118. var _main = __webpack_require__(200);
  119. var _main2 = _interopRequireDefault(_main);
  120. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  121. exports.default = _main2.default;
  122. /***/ },
  123. /***/ 200:
  124. /***/ function(module, exports, __webpack_require__) {
  125. 'use strict';
  126. exports.__esModule = true;
  127. exports.MessageBox = undefined;
  128. var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  129. var _vue = __webpack_require__(56);
  130. var _vue2 = _interopRequireDefault(_vue);
  131. var _main = __webpack_require__(201);
  132. var _main2 = _interopRequireDefault(_main);
  133. var _merge = __webpack_require__(164);
  134. var _merge2 = _interopRequireDefault(_merge);
  135. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  136. var defaults = {
  137. title: undefined,
  138. message: '',
  139. type: '',
  140. showInput: false,
  141. showClose: true,
  142. modalFade: true,
  143. lockScroll: true,
  144. closeOnClickModal: true,
  145. closeOnPressEscape: true,
  146. inputValue: null,
  147. inputPlaceholder: '',
  148. inputPattern: null,
  149. inputValidator: null,
  150. inputErrorMessage: '',
  151. showConfirmButton: true,
  152. showCancelButton: false,
  153. confirmButtonPosition: 'right',
  154. confirmButtonHighlight: false,
  155. cancelButtonHighlight: false,
  156. confirmButtonText: '',
  157. cancelButtonText: '',
  158. confirmButtonClass: '',
  159. cancelButtonClass: '',
  160. customClass: '',
  161. beforeClose: null
  162. };
  163. var MessageBoxConstructor = _vue2.default.extend(_main2.default);
  164. var currentMsg = void 0,
  165. instance = void 0;
  166. var msgQueue = [];
  167. var defaultCallback = function defaultCallback(action) {
  168. if (currentMsg) {
  169. var callback = currentMsg.callback;
  170. if (typeof callback === 'function') {
  171. if (instance.showInput) {
  172. callback(instance.inputValue, action);
  173. } else {
  174. callback(action);
  175. }
  176. }
  177. if (currentMsg.resolve) {
  178. var $type = currentMsg.options.$type;
  179. if ($type === 'confirm' || $type === 'prompt') {
  180. if (action === 'confirm') {
  181. if (instance.showInput) {
  182. currentMsg.resolve({ value: instance.inputValue, action: action });
  183. } else {
  184. currentMsg.resolve(action);
  185. }
  186. } else if (action === 'cancel' && currentMsg.reject) {
  187. currentMsg.reject(action);
  188. }
  189. } else {
  190. currentMsg.resolve(action);
  191. }
  192. }
  193. }
  194. };
  195. var initInstance = function initInstance() {
  196. instance = new MessageBoxConstructor({
  197. el: document.createElement('div')
  198. });
  199. instance.callback = defaultCallback;
  200. };
  201. var showNextMsg = function showNextMsg() {
  202. if (!instance) {
  203. initInstance();
  204. }
  205. instance.action = '';
  206. if (!instance.value || instance.closeTimer) {
  207. if (msgQueue.length > 0) {
  208. (function () {
  209. currentMsg = msgQueue.shift();
  210. var options = currentMsg.options;
  211. for (var prop in options) {
  212. if (options.hasOwnProperty(prop)) {
  213. instance[prop] = options[prop];
  214. }
  215. }
  216. if (options.callback === undefined) {
  217. instance.callback = defaultCallback;
  218. }
  219. var oldCb = instance.callback;
  220. instance.callback = function (action, instance) {
  221. oldCb(action, instance);
  222. showNextMsg();
  223. };
  224. ['modal', 'showClose', 'closeOnClickModal', 'closeOnPressEscape'].forEach(function (prop) {
  225. if (instance[prop] === undefined) {
  226. instance[prop] = true;
  227. }
  228. });
  229. document.body.appendChild(instance.$el);
  230. _vue2.default.nextTick(function () {
  231. instance.value = true;
  232. });
  233. })();
  234. }
  235. }
  236. };
  237. var MessageBox = function MessageBox(options, callback) {
  238. if (_vue2.default.prototype.$isServer) return;
  239. if (typeof options === 'string') {
  240. options = {
  241. message: options
  242. };
  243. if (arguments[1]) {
  244. options.title = arguments[1];
  245. }
  246. if (arguments[2]) {
  247. options.type = arguments[2];
  248. }
  249. } else if (options.callback && !callback) {
  250. callback = options.callback;
  251. }
  252. if (typeof Promise !== 'undefined') {
  253. return new Promise(function (resolve, reject) {
  254. // eslint-disable-line
  255. msgQueue.push({
  256. options: (0, _merge2.default)({}, defaults, MessageBox.defaults, options),
  257. callback: callback,
  258. resolve: resolve,
  259. reject: reject
  260. });
  261. showNextMsg();
  262. });
  263. } else {
  264. msgQueue.push({
  265. options: (0, _merge2.default)({}, defaults, MessageBox.defaults, options),
  266. callback: callback
  267. });
  268. showNextMsg();
  269. }
  270. };
  271. MessageBox.setDefaults = function (defaults) {
  272. MessageBox.defaults = defaults;
  273. };
  274. MessageBox.alert = function (message, title, options) {
  275. if ((typeof title === 'undefined' ? 'undefined' : _typeof(title)) === 'object') {
  276. options = title;
  277. title = '';
  278. }
  279. return MessageBox((0, _merge2.default)({
  280. title: title,
  281. message: message,
  282. $type: 'alert',
  283. closeOnPressEscape: false,
  284. closeOnClickModal: false
  285. }, options));
  286. };
  287. MessageBox.confirm = function (message, title, options) {
  288. if ((typeof title === 'undefined' ? 'undefined' : _typeof(title)) === 'object') {
  289. options = title;
  290. title = '';
  291. }
  292. return MessageBox((0, _merge2.default)({
  293. title: title,
  294. message: message,
  295. $type: 'confirm',
  296. showCancelButton: true
  297. }, options));
  298. };
  299. MessageBox.prompt = function (message, title, options) {
  300. if ((typeof title === 'undefined' ? 'undefined' : _typeof(title)) === 'object') {
  301. options = title;
  302. title = '';
  303. }
  304. return MessageBox((0, _merge2.default)({
  305. title: title,
  306. message: message,
  307. showCancelButton: true,
  308. showInput: true,
  309. $type: 'prompt'
  310. }, options));
  311. };
  312. MessageBox.close = function () {
  313. instance.value = false;
  314. msgQueue = [];
  315. currentMsg = null;
  316. };
  317. exports.default = MessageBox;
  318. exports.MessageBox = MessageBox;
  319. /***/ },
  320. /***/ 201:
  321. /***/ function(module, exports, __webpack_require__) {
  322. var Component = __webpack_require__(3)(
  323. /* script */
  324. __webpack_require__(202),
  325. /* template */
  326. __webpack_require__(203),
  327. /* scopeId */
  328. null,
  329. /* cssModules */
  330. null
  331. )
  332. module.exports = Component.exports
  333. /***/ },
  334. /***/ 202:
  335. /***/ function(module, exports, __webpack_require__) {
  336. 'use strict';
  337. exports.__esModule = true;
  338. var _popup = __webpack_require__(132);
  339. var _popup2 = _interopRequireDefault(_popup);
  340. var _locale = __webpack_require__(60);
  341. var _locale2 = _interopRequireDefault(_locale);
  342. var _input = __webpack_require__(9);
  343. var _input2 = _interopRequireDefault(_input);
  344. var _button = __webpack_require__(137);
  345. var _button2 = _interopRequireDefault(_button);
  346. var _dom = __webpack_require__(117);
  347. var _locale3 = __webpack_require__(61);
  348. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  349. //
  350. //
  351. //
  352. //
  353. //
  354. //
  355. //
  356. //
  357. //
  358. //
  359. //
  360. //
  361. //
  362. //
  363. //
  364. //
  365. //
  366. //
  367. //
  368. //
  369. //
  370. //
  371. //
  372. //
  373. //
  374. //
  375. //
  376. //
  377. //
  378. //
  379. //
  380. //
  381. //
  382. //
  383. //
  384. //
  385. //
  386. //
  387. var typeMap = {
  388. success: 'circle-check',
  389. info: 'information',
  390. warning: 'warning',
  391. error: 'circle-cross'
  392. };
  393. exports.default = {
  394. mixins: [_popup2.default, _locale2.default],
  395. props: {
  396. modal: {
  397. default: true
  398. },
  399. lockScroll: {
  400. default: true
  401. },
  402. showClose: {
  403. type: Boolean,
  404. default: true
  405. },
  406. closeOnClickModal: {
  407. default: true
  408. },
  409. closeOnPressEscape: {
  410. default: true
  411. }
  412. },
  413. components: {
  414. ElInput: _input2.default,
  415. ElButton: _button2.default
  416. },
  417. computed: {
  418. typeClass: function typeClass() {
  419. return this.type && typeMap[this.type] ? 'el-icon-' + typeMap[this.type] : '';
  420. },
  421. confirmButtonClasses: function confirmButtonClasses() {
  422. return 'el-button--primary ' + this.confirmButtonClass;
  423. },
  424. cancelButtonClasses: function cancelButtonClasses() {
  425. return '' + this.cancelButtonClass;
  426. }
  427. },
  428. methods: {
  429. getSafeClose: function getSafeClose() {
  430. var _this = this;
  431. var currentId = this.uid;
  432. return function () {
  433. _this.$nextTick(function () {
  434. if (currentId === _this.uid) _this.doClose();
  435. });
  436. };
  437. },
  438. doClose: function doClose() {
  439. var _this2 = this;
  440. if (!this.value) return;
  441. this.value = false;
  442. this._closing = true;
  443. this.onClose && this.onClose();
  444. if (this.lockScroll) {
  445. setTimeout(function () {
  446. if (_this2.modal && _this2.bodyOverflow !== 'hidden') {
  447. document.body.style.overflow = _this2.bodyOverflow;
  448. document.body.style.paddingRight = _this2.bodyPaddingRight;
  449. }
  450. _this2.bodyOverflow = null;
  451. _this2.bodyPaddingRight = null;
  452. }, 200);
  453. }
  454. this.opened = false;
  455. if (!this.transition) {
  456. this.doAfterClose();
  457. }
  458. if (this.action) this.callback(this.action, this);
  459. },
  460. handleWrapperClick: function handleWrapperClick() {
  461. if (this.closeOnClickModal) {
  462. this.action = '';
  463. this.doClose();
  464. }
  465. },
  466. handleAction: function handleAction(action) {
  467. if (this.$type === 'prompt' && action === 'confirm' && !this.validate()) {
  468. return;
  469. }
  470. this.action = action;
  471. if (typeof this.beforeClose === 'function') {
  472. this.close = this.getSafeClose();
  473. this.beforeClose(action, this, this.close);
  474. } else {
  475. this.doClose();
  476. }
  477. },
  478. validate: function validate() {
  479. if (this.$type === 'prompt') {
  480. var inputPattern = this.inputPattern;
  481. if (inputPattern && !inputPattern.test(this.inputValue || '')) {
  482. this.editorErrorMessage = this.inputErrorMessage || (0, _locale3.t)('el.messagebox.error');
  483. (0, _dom.addClass)(this.$refs.input.$el.querySelector('input'), 'invalid');
  484. return false;
  485. }
  486. var inputValidator = this.inputValidator;
  487. if (typeof inputValidator === 'function') {
  488. var validateResult = inputValidator(this.inputValue);
  489. if (validateResult === false) {
  490. this.editorErrorMessage = this.inputErrorMessage || (0, _locale3.t)('el.messagebox.error');
  491. (0, _dom.addClass)(this.$refs.input.$el.querySelector('input'), 'invalid');
  492. return false;
  493. }
  494. if (typeof validateResult === 'string') {
  495. this.editorErrorMessage = validateResult;
  496. return false;
  497. }
  498. }
  499. }
  500. this.editorErrorMessage = '';
  501. (0, _dom.removeClass)(this.$refs.input.$el.querySelector('input'), 'invalid');
  502. return true;
  503. }
  504. },
  505. watch: {
  506. inputValue: {
  507. immediate: true,
  508. handler: function handler(val) {
  509. var _this3 = this;
  510. this.$nextTick(function (_) {
  511. if (_this3.$type === 'prompt' && val !== null) {
  512. _this3.validate();
  513. }
  514. });
  515. }
  516. },
  517. value: function value(val) {
  518. var _this4 = this;
  519. if (val) this.uid++;
  520. if (this.$type === 'alert' || this.$type === 'confirm') {
  521. this.$nextTick(function () {
  522. _this4.$refs.confirm.$el.focus();
  523. });
  524. }
  525. if (this.$type !== 'prompt') return;
  526. if (val) {
  527. setTimeout(function () {
  528. if (_this4.$refs.input && _this4.$refs.input.$el) {
  529. _this4.$refs.input.$el.querySelector('input').focus();
  530. }
  531. }, 500);
  532. } else {
  533. this.editorErrorMessage = '';
  534. (0, _dom.removeClass)(this.$refs.input.$el.querySelector('input'), 'invalid');
  535. }
  536. }
  537. },
  538. data: function data() {
  539. return {
  540. uid: 1,
  541. title: undefined,
  542. message: '',
  543. type: '',
  544. customClass: '',
  545. showInput: false,
  546. inputValue: null,
  547. inputPlaceholder: '',
  548. inputPattern: null,
  549. inputValidator: null,
  550. inputErrorMessage: '',
  551. showConfirmButton: true,
  552. showCancelButton: false,
  553. action: '',
  554. confirmButtonText: '',
  555. cancelButtonText: '',
  556. confirmButtonLoading: false,
  557. cancelButtonLoading: false,
  558. confirmButtonClass: '',
  559. confirmButtonDisabled: false,
  560. cancelButtonClass: '',
  561. editorErrorMessage: null,
  562. callback: null
  563. };
  564. }
  565. };
  566. /***/ },
  567. /***/ 203:
  568. /***/ function(module, exports) {
  569. module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
  570. return _c('transition', {
  571. attrs: {
  572. "name": "msgbox-fade"
  573. }
  574. }, [_c('div', {
  575. directives: [{
  576. name: "show",
  577. rawName: "v-show",
  578. value: (_vm.value),
  579. expression: "value"
  580. }],
  581. staticClass: "el-message-box__wrapper",
  582. on: {
  583. "click": function($event) {
  584. if ($event.target !== $event.currentTarget) { return; }
  585. _vm.handleWrapperClick($event)
  586. }
  587. }
  588. }, [_c('div', {
  589. staticClass: "el-message-box",
  590. class: _vm.customClass
  591. }, [(_vm.title !== undefined) ? _c('div', {
  592. staticClass: "el-message-box__header"
  593. }, [_c('div', {
  594. staticClass: "el-message-box__title"
  595. }, [_vm._v(_vm._s(_vm.title || _vm.t('el.messagebox.title')))]), (_vm.showClose) ? _c('i', {
  596. staticClass: "el-message-box__close el-icon-close",
  597. on: {
  598. "click": function($event) {
  599. _vm.handleAction('cancel')
  600. }
  601. }
  602. }) : _vm._e()]) : _vm._e(), (_vm.message !== '') ? _c('div', {
  603. staticClass: "el-message-box__content"
  604. }, [_c('div', {
  605. staticClass: "el-message-box__status",
  606. class: [_vm.typeClass]
  607. }), _c('div', {
  608. staticClass: "el-message-box__message",
  609. style: ({
  610. 'margin-left': _vm.typeClass ? '50px' : '0'
  611. })
  612. }, [_c('p', [_vm._v(_vm._s(_vm.message))])]), _c('div', {
  613. directives: [{
  614. name: "show",
  615. rawName: "v-show",
  616. value: (_vm.showInput),
  617. expression: "showInput"
  618. }],
  619. staticClass: "el-message-box__input"
  620. }, [_c('el-input', {
  621. directives: [{
  622. name: "model",
  623. rawName: "v-model",
  624. value: (_vm.inputValue),
  625. expression: "inputValue"
  626. }],
  627. ref: "input",
  628. attrs: {
  629. "placeholder": _vm.inputPlaceholder
  630. },
  631. domProps: {
  632. "value": (_vm.inputValue)
  633. },
  634. on: {
  635. "input": function($event) {
  636. _vm.inputValue = $event
  637. }
  638. },
  639. nativeOn: {
  640. "keyup": function($event) {
  641. if (_vm._k($event.keyCode, "enter", 13)) { return; }
  642. _vm.handleAction('confirm')
  643. }
  644. }
  645. }), _c('div', {
  646. staticClass: "el-message-box__errormsg",
  647. style: ({
  648. visibility: !!_vm.editorErrorMessage ? 'visible' : 'hidden'
  649. })
  650. }, [_vm._v(_vm._s(_vm.editorErrorMessage))])], 1)]) : _vm._e(), _c('div', {
  651. staticClass: "el-message-box__btns"
  652. }, [_c('el-button', {
  653. directives: [{
  654. name: "show",
  655. rawName: "v-show",
  656. value: (_vm.showCancelButton),
  657. expression: "showCancelButton"
  658. }],
  659. class: [_vm.cancelButtonClasses],
  660. attrs: {
  661. "loading": _vm.cancelButtonLoading
  662. },
  663. nativeOn: {
  664. "click": function($event) {
  665. _vm.handleAction('cancel')
  666. }
  667. }
  668. }, [_vm._v("\n " + _vm._s(_vm.cancelButtonText || _vm.t('el.messagebox.cancel')) + "\n ")]), _c('el-button', {
  669. directives: [{
  670. name: "show",
  671. rawName: "v-show",
  672. value: (_vm.showConfirmButton),
  673. expression: "showConfirmButton"
  674. }],
  675. ref: "confirm",
  676. class: [_vm.confirmButtonClasses],
  677. attrs: {
  678. "loading": _vm.confirmButtonLoading
  679. },
  680. nativeOn: {
  681. "click": function($event) {
  682. _vm.handleAction('confirm')
  683. }
  684. }
  685. }, [_vm._v("\n " + _vm._s(_vm.confirmButtonText || _vm.t('el.messagebox.confirm')) + "\n ")])], 1)])])])
  686. },staticRenderFns: []}
  687. /***/ }
  688. /******/ });