\n';
};
_proto.tablerow = function tablerow(content) {
return '
\n' + content + '
\n';
};
_proto.tablecell = function tablecell(content, flags) {
var type = flags.header ? 'th' : 'td';
var tag = flags.align ? '<' + type + ' align="' + flags.align + '">' : '<' + type + '>';
return tag + content + '' + type + '>\n';
} // span level renderer
;
_proto.strong = function strong(text) {
return '' + text + '';
};
_proto.em = function em(text) {
return '' + text + '';
};
_proto.codespan = function codespan(text) {
return '' + text + '';
};
_proto.br = function br() {
return this.options.xhtml ? ' ' : ' ';
};
_proto.del = function del(text) {
return '' + text + '';
};
_proto.link = function link(href, title, text) {
href = cleanUrl$1(this.options.sanitize, this.options.baseUrl, href);
if (href === null) {
return text;
}
var out = '' + text + '';
return out;
};
_proto.image = function image(href, title, text) {
href = cleanUrl$1(this.options.sanitize, this.options.baseUrl, href);
if (href === null) {
return text;
}
var out = '' : '>';
return out;
};
_proto.text = function text(_text) {
return _text;
};
return Renderer;
}();
/**
* TextRenderer
* returns only the textual part of the token
*/
var TextRenderer_1 = /*#__PURE__*/function () {
function TextRenderer() {}
var _proto = TextRenderer.prototype;
// no need for block level renderers
_proto.strong = function strong(text) {
return text;
};
_proto.em = function em(text) {
return text;
};
_proto.codespan = function codespan(text) {
return text;
};
_proto.del = function del(text) {
return text;
};
_proto.html = function html(text) {
return text;
};
_proto.text = function text(_text) {
return _text;
};
_proto.link = function link(href, title, text) {
return '' + text;
};
_proto.image = function image(href, title, text) {
return '' + text;
};
_proto.br = function br() {
return '';
};
return TextRenderer;
}();
/**
* Slugger generates header id
*/
var Slugger_1 = /*#__PURE__*/function () {
function Slugger() {
this.seen = {};
}
/**
* Convert string to unique id
*/
var _proto = Slugger.prototype;
_proto.slug = function slug(value) {
var slug = value.toLowerCase().trim() // remove html tags
.replace(/<[!\/a-z].*?>/ig, '') // remove unwanted chars
.replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g, '').replace(/\s/g, '-');
if (this.seen.hasOwnProperty(slug)) {
var originalSlug = slug;
do {
this.seen[originalSlug]++;
slug = originalSlug + '-' + this.seen[originalSlug];
} while (this.seen.hasOwnProperty(slug));
}
this.seen[slug] = 0;
return slug;
};
return Slugger;
}();
var defaults$4 = defaults.defaults;
var unescape$1 = helpers.unescape;
/**
* Parsing & Compiling
*/
var Parser_1 = /*#__PURE__*/function () {
function Parser(options) {
this.options = options || defaults$4;
this.options.renderer = this.options.renderer || new Renderer_1();
this.renderer = this.options.renderer;
this.renderer.options = this.options;
this.textRenderer = new TextRenderer_1();
this.slugger = new Slugger_1();
}
/**
* Static Parse Method
*/
Parser.parse = function parse(tokens, options) {
var parser = new Parser(options);
return parser.parse(tokens);
}
/**
* Parse Loop
*/
;
var _proto = Parser.prototype;
_proto.parse = function parse(tokens, top) {
if (top === void 0) {
top = true;
}
var out = '',
i,
j,
k,
l2,
l3,
row,
cell,
header,
body,
token,
ordered,
start,
loose,
itemBody,
item,
checked,
task,
checkbox;
var l = tokens.length;
for (i = 0; i < l; i++) {
token = tokens[i];
switch (token.type) {
case 'space':
{
continue;
}
case 'hr':
{
out += this.renderer.hr();
continue;
}
case 'heading':
{
out += this.renderer.heading(this.parseInline(token.tokens), token.depth, unescape$1(this.parseInline(token.tokens, this.textRenderer)), this.slugger);
continue;
}
case 'code':
{
out += this.renderer.code(token.text, token.lang, token.escaped);
continue;
}
case 'table':
{
header = ''; // header
cell = '';
l2 = token.header.length;
for (j = 0; j < l2; j++) {
cell += this.renderer.tablecell(this.parseInline(token.tokens.header[j]), {
header: true,
align: token.align[j]
});
}
header += this.renderer.tablerow(cell);
body = '';
l2 = token.cells.length;
for (j = 0; j < l2; j++) {
row = token.tokens.cells[j];
cell = '';
l3 = row.length;
for (k = 0; k < l3; k++) {
cell += this.renderer.tablecell(this.parseInline(row[k]), {
header: false,
align: token.align[k]
});
}
body += this.renderer.tablerow(cell);
}
out += this.renderer.table(header, body);
continue;
}
case 'blockquote':
{
body = this.parse(token.tokens);
out += this.renderer.blockquote(body);
continue;
}
case 'list':
{
ordered = token.ordered;
start = token.start;
loose = token.loose;
l2 = token.items.length;
body = '';
for (j = 0; j < l2; j++) {
item = token.items[j];
checked = item.checked;
task = item.task;
itemBody = '';
if (item.task) {
checkbox = this.renderer.checkbox(checked);
if (loose) {
if (item.tokens.length > 0 && item.tokens[0].type === 'text') {
item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;
if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {
item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;
}
} else {
item.tokens.unshift({
type: 'text',
text: checkbox
});
}
} else {
itemBody += checkbox;
}
}
itemBody += this.parse(item.tokens, loose);
body += this.renderer.listitem(itemBody, task, checked);
}
out += this.renderer.list(body, ordered, start);
continue;
}
case 'html':
{
// TODO parse inline content if parameter markdown=1
out += this.renderer.html(token.text);
continue;
}
case 'paragraph':
{
out += this.renderer.paragraph(this.parseInline(token.tokens));
continue;
}
case 'text':
{
body = token.tokens ? this.parseInline(token.tokens) : token.text;
while (i + 1 < l && tokens[i + 1].type === 'text') {
token = tokens[++i];
body += '\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);
}
out += top ? this.renderer.paragraph(body) : body;
continue;
}
default:
{
var errMsg = 'Token with "' + token.type + '" type was not found.';
if (this.options.silent) {
console.error(errMsg);
return;
} else {
throw new Error(errMsg);
}
}
}
}
return out;
}
/**
* Parse Inline Tokens
*/
;
_proto.parseInline = function parseInline(tokens, renderer) {
renderer = renderer || this.renderer;
var out = '',
i,
token;
var l = tokens.length;
for (i = 0; i < l; i++) {
token = tokens[i];
switch (token.type) {
case 'escape':
{
out += renderer.text(token.text);
break;
}
case 'html':
{
out += renderer.html(token.text);
break;
}
case 'link':
{
out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));
break;
}
case 'image':
{
out += renderer.image(token.href, token.title, token.text);
break;
}
case 'strong':
{
out += renderer.strong(this.parseInline(token.tokens, renderer));
break;
}
case 'em':
{
out += renderer.em(this.parseInline(token.tokens, renderer));
break;
}
case 'codespan':
{
out += renderer.codespan(token.text);
break;
}
case 'br':
{
out += renderer.br();
break;
}
case 'del':
{
out += renderer.del(this.parseInline(token.tokens, renderer));
break;
}
case 'text':
{
out += renderer.text(token.text);
break;
}
default:
{
var errMsg = 'Token with "' + token.type + '" type was not found.';
if (this.options.silent) {
console.error(errMsg);
return;
} else {
throw new Error(errMsg);
}
}
}
}
return out;
};
return Parser;
}();
var merge$2 = helpers.merge,
checkSanitizeDeprecation$1 = helpers.checkSanitizeDeprecation,
escape$2 = helpers.escape;
var getDefaults = defaults.getDefaults,
changeDefaults = defaults.changeDefaults,
defaults$5 = defaults.defaults;
/**
* Marked
*/
function marked(src, opt, callback) {
// throw error in case of non string input
if (typeof src === 'undefined' || src === null) {
throw new Error('marked(): input parameter is undefined or null');
}
if (typeof src !== 'string') {
throw new Error('marked(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');
}
if (typeof opt === 'function') {
callback = opt;
opt = null;
}
opt = merge$2({}, marked.defaults, opt || {});
checkSanitizeDeprecation$1(opt);
if (callback) {
var highlight = opt.highlight;
var tokens;
try {
tokens = Lexer_1.lex(src, opt);
} catch (e) {
return callback(e);
}
var done = function done(err) {
var out;
if (!err) {
try {
out = Parser_1.parse(tokens, opt);
} catch (e) {
err = e;
}
}
opt.highlight = highlight;
return err ? callback(err) : callback(null, out);
};
if (!highlight || highlight.length < 3) {
return done();
}
delete opt.highlight;
if (!tokens.length) return done();
var pending = 0;
marked.walkTokens(tokens, function (token) {
if (token.type === 'code') {
pending++;
setTimeout(function () {
highlight(token.text, token.lang, function (err, code) {
if (err) {
return done(err);
}
if (code != null && code !== token.text) {
token.text = code;
token.escaped = true;
}
pending--;
if (pending === 0) {
done();
}
});
}, 0);
}
});
if (pending === 0) {
done();
}
return;
}
try {
var _tokens = Lexer_1.lex(src, opt);
if (opt.walkTokens) {
marked.walkTokens(_tokens, opt.walkTokens);
}
return Parser_1.parse(_tokens, opt);
} catch (e) {
e.message += '\nPlease report this to https://github.com/markedjs/marked.';
if (opt.silent) {
return '
An error occurred:
' + escape$2(e.message + '', true) + '
';
}
throw e;
}
}
/**
* Options
*/
marked.options = marked.setOptions = function (opt) {
merge$2(marked.defaults, opt);
changeDefaults(marked.defaults);
return marked;
};
marked.getDefaults = getDefaults;
marked.defaults = defaults$5;
/**
* Use Extension
*/
marked.use = function (extension) {
var opts = merge$2({}, extension);
if (extension.renderer) {
(function () {
var renderer = marked.defaults.renderer || new Renderer_1();
var _loop = function _loop(prop) {
var prevRenderer = renderer[prop];
renderer[prop] = function () {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
var ret = extension.renderer[prop].apply(renderer, args);
if (ret === false) {
ret = prevRenderer.apply(renderer, args);
}
return ret;
};
};
for (var prop in extension.renderer) {
_loop(prop);
}
opts.renderer = renderer;
})();
}
if (extension.tokenizer) {
(function () {
var tokenizer = marked.defaults.tokenizer || new Tokenizer_1();
var _loop2 = function _loop2(prop) {
var prevTokenizer = tokenizer[prop];
tokenizer[prop] = function () {
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
args[_key2] = arguments[_key2];
}
var ret = extension.tokenizer[prop].apply(tokenizer, args);
if (ret === false) {
ret = prevTokenizer.apply(tokenizer, args);
}
return ret;
};
};
for (var prop in extension.tokenizer) {
_loop2(prop);
}
opts.tokenizer = tokenizer;
})();
}
if (extension.walkTokens) {
var walkTokens = marked.defaults.walkTokens;
opts.walkTokens = function (token) {
extension.walkTokens(token);
if (walkTokens) {
walkTokens(token);
}
};
}
marked.setOptions(opts);
};
/**
* Run callback for every token
*/
marked.walkTokens = function (tokens, callback) {
for (var _iterator = _createForOfIteratorHelperLoose(tokens), _step; !(_step = _iterator()).done;) {
var token = _step.value;
callback(token);
switch (token.type) {
case 'table':
{
for (var _iterator2 = _createForOfIteratorHelperLoose(token.tokens.header), _step2; !(_step2 = _iterator2()).done;) {
var cell = _step2.value;
marked.walkTokens(cell, callback);
}
for (var _iterator3 = _createForOfIteratorHelperLoose(token.tokens.cells), _step3; !(_step3 = _iterator3()).done;) {
var row = _step3.value;
for (var _iterator4 = _createForOfIteratorHelperLoose(row), _step4; !(_step4 = _iterator4()).done;) {
var _cell = _step4.value;
marked.walkTokens(_cell, callback);
}
}
break;
}
case 'list':
{
marked.walkTokens(token.items, callback);
break;
}
default:
{
if (token.tokens) {
marked.walkTokens(token.tokens, callback);
}
}
}
}
};
/**
* Expose
*/
marked.Parser = Parser_1;
marked.parser = Parser_1.parse;
marked.Renderer = Renderer_1;
marked.TextRenderer = TextRenderer_1;
marked.Lexer = Lexer_1;
marked.lexer = Lexer_1.lex;
marked.Tokenizer = Tokenizer_1;
marked.Slugger = Slugger_1;
marked.parse = marked;
var marked_1 = marked;
return marked_1;
})));
/***/ }),
/***/ "Etsf":
/*!*************************************************!*\
!*** ./src/pages/RestFul/index.tsx + 3 modules ***!
\*************************************************/
/*! exports provided: default */
/*! all exports used */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/helpers/esm/defineProperty.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/helpers/esm/objectSpread2.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/helpers/esm/slicedToArray.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/regenerator/index.js (<- Module is not an ECMAScript module) */
/*! ModuleConcatenation bailout: Cannot concat with ./src/pages/RestFul/components/LeftBar/index.less?modules (<- Module is not an ECMAScript module) */
/*! ModuleConcatenation bailout: Cannot concat with ./src/pages/RestFul/index.less?modules (<- Module is not an ECMAScript module) */
/*! ModuleConcatenation bailout: Cannot concat with ./src/.umi-production/core/umiExports.ts */
/*! ModuleConcatenation bailout: Cannot concat with ./src/components/RenderHtml/index.tsx */
/*! ModuleConcatenation bailout: Cannot concat with ./src/service/restful.ts */
/*! ModuleConcatenation bailout: Cannot concat with ./src/utils/authority.ts */
/*! ModuleConcatenation bailout: Cannot concat with ./src/utils/fetch.ts */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/breadcrumb/index.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/breadcrumb/style/index.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/col/index.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/col/style/index.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/form/index.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/form/style/index.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/input/index.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/input/style/index.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/message/index.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/message/style/index.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/modal/index.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/modal/style/index.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/popover/index.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/popover/style/index.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/row/index.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/row/style/index.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/tooltip/index.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/tooltip/style/index.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/tree-select/index.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/tree-select/style/index.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/tree/index.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/antd/es/tree/style/index.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/react-router-dom/esm/react-router-dom.js */
/*! ModuleConcatenation bailout: Cannot concat with ./node_modules/react-router/esm/react-router.js */
/*! ModuleConcatenation bailout: Cannot concat with external "window.React" (<- Module is not an ECMAScript module) */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// EXTERNAL MODULE: ./node_modules/antd/es/tooltip/style/index.js
var style = __webpack_require__("5Dmo");
// EXTERNAL MODULE: ./node_modules/antd/es/tooltip/index.js + 1 modules
var tooltip = __webpack_require__("3S7+");
// EXTERNAL MODULE: ./node_modules/antd/es/row/style/index.js
var row_style = __webpack_require__("14J3");
// EXTERNAL MODULE: ./node_modules/antd/es/row/index.js
var row = __webpack_require__("BMrR");
// EXTERNAL MODULE: ./node_modules/antd/es/col/style/index.js
var col_style = __webpack_require__("jCWc");
// EXTERNAL MODULE: ./node_modules/antd/es/col/index.js
var col = __webpack_require__("kPKH");
// EXTERNAL MODULE: ./node_modules/antd/es/breadcrumb/style/index.js
var breadcrumb_style = __webpack_require__("sPJy");
// EXTERNAL MODULE: ./node_modules/antd/es/breadcrumb/index.js + 3 modules
var breadcrumb = __webpack_require__("bE4q");
// EXTERNAL MODULE: ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/helpers/esm/objectSpread2.js
var objectSpread2 = __webpack_require__("k1fw");
// EXTERNAL MODULE: ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js
var asyncToGenerator = __webpack_require__("9og8");
// EXTERNAL MODULE: ./node_modules/antd/es/form/style/index.js
var form_style = __webpack_require__("y8nQ");
// EXTERNAL MODULE: ./node_modules/antd/es/form/index.js + 11 modules
var es_form = __webpack_require__("Vl3Y");
// EXTERNAL MODULE: ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules
var slicedToArray = __webpack_require__("tJVT");
// EXTERNAL MODULE: ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js + 1 modules
var objectWithoutProperties = __webpack_require__("PpiC");
// EXTERNAL MODULE: ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/regenerator/index.js
var regenerator = __webpack_require__("WmNS");
var regenerator_default = /*#__PURE__*/__webpack_require__.n(regenerator);
// EXTERNAL MODULE: external "window.React"
var external_window_React_ = __webpack_require__("cDcd");
var external_window_React_default = /*#__PURE__*/__webpack_require__.n(external_window_React_);
// EXTERNAL MODULE: ./node_modules/react-router-dom/esm/react-router-dom.js
var react_router_dom = __webpack_require__("55Ip");
// EXTERNAL MODULE: ./src/.umi-production/core/umiExports.ts + 17 modules
var umiExports = __webpack_require__("9kvl");
// EXTERNAL MODULE: ./src/components/RenderHtml/index.tsx + 1 modules
var RenderHtml = __webpack_require__("9Bee");
// EXTERNAL MODULE: ./src/utils/authority.ts
var authority = __webpack_require__("xKgJ");
// EXTERNAL MODULE: ./src/pages/RestFul/index.less?modules
var RestFulmodules = __webpack_require__("U/Y8");
var RestFulmodules_default = /*#__PURE__*/__webpack_require__.n(RestFulmodules);
// EXTERNAL MODULE: ./node_modules/antd/es/popover/style/index.js
var popover_style = __webpack_require__("Q9mQ");
// EXTERNAL MODULE: ./node_modules/antd/es/popover/index.js
var popover = __webpack_require__("diRs");
// EXTERNAL MODULE: ./node_modules/antd/es/message/style/index.js
var message_style = __webpack_require__("miYZ");
// EXTERNAL MODULE: ./node_modules/antd/es/message/index.js + 1 modules
var message = __webpack_require__("tsqr");
// EXTERNAL MODULE: ./node_modules/antd/es/modal/style/index.js
var modal_style = __webpack_require__("2qtc");
// EXTERNAL MODULE: ./node_modules/antd/es/modal/index.js + 7 modules
var modal = __webpack_require__("kLXV");
// EXTERNAL MODULE: ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules
var toConsumableArray = __webpack_require__("oBTY");
// EXTERNAL MODULE: ./node_modules/antd/es/tree/style/index.js
var tree_style = __webpack_require__("ozfa");
// EXTERNAL MODULE: ./node_modules/antd/es/tree/index.js + 3 modules
var tree = __webpack_require__("MJZm");
// EXTERNAL MODULE: ./node_modules/antd/es/input/style/index.js
var input_style = __webpack_require__("5NDa");
// EXTERNAL MODULE: ./node_modules/antd/es/input/index.js + 3 modules
var input = __webpack_require__("5rEg");
// EXTERNAL MODULE: ./node_modules/@umijs/babel-preset-umi/node_modules/@babel/runtime/helpers/esm/defineProperty.js
var defineProperty = __webpack_require__("jrin");
// EXTERNAL MODULE: ./node_modules/antd/es/tree-select/style/index.js
var tree_select_style = __webpack_require__("nRaC");
// EXTERNAL MODULE: ./node_modules/antd/es/tree-select/index.js
var tree_select = __webpack_require__("5RzL");
// EXTERNAL MODULE: ./src/utils/fetch.ts
var fetch = __webpack_require__("ErOA");
// EXTERNAL MODULE: ./node_modules/react-router/esm/react-router.js
var react_router = __webpack_require__("Ty5D");
// CONCATENATED MODULE: ./src/pages/RestFul/components/LeftBar/AddCategory.tsx
var TreeNode = tree_select["a" /* default */].TreeNode;
var AddCategory_PublishShixun = function PublishShixun(_ref) {
var restful = _ref.restful,
loading = _ref.loading,
dispatch = _ref.dispatch;
var params = Object(react_router["i" /* useParams */])();
var location = Object(react_router["h" /* useLocation */])();
var _useState = Object(external_window_React_["useState"])(false),
_useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
confirmLoading = _useState2[0],
setConfirmLoading = _useState2[1];
var _useState3 = Object(external_window_React_["useState"])(),
_useState4 = Object(slicedToArray["a" /* default */])(_useState3, 2),
categoryId = _useState4[0],
setCategoryId = _useState4[1];
var actionTabs = restful.actionTabs;
var _Form$useForm = es_form["a" /* default */].useForm(),
_Form$useForm2 = Object(slicedToArray["a" /* default */])(_Form$useForm, 1),
form = _Form$useForm2[0];
Object(external_window_React_["useEffect"])(function () {
if (restful.actionTabs.key == '新建同级目录') {
form.resetFields();
}
;
}, [restful.actionTabs.key]);
if (restful.actionTabs.key !== '新建同级目录') return null;
return /*#__PURE__*/external_window_React_default.a.createElement(modal["a" /* default */], {
centered: true,
title: "\u65B0\u5EFA\u76EE\u5F55",
visible: restful.actionTabs.key === '新建同级目录' ? true : false,
okText: "\u786E\u5B9A",
cancelText: "\u53D6\u6D88",
bodyStyle: {
minHeight: 150
},
confirmLoading: confirmLoading,
onOk: /*#__PURE__*/Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
var formValue, fetchUrl, res;
return regenerator_default.a.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return form.validateFields();
case 2:
formValue = form.getFieldValue();
setConfirmLoading(true);
fetchUrl = "/api/restfuls.json";
_context.next = 7;
return Object(fetch["a" /* default */])(fetchUrl, {
method: 'post',
body: Object(objectSpread2["a" /* default */])({
file_type: 1
}, formValue)
});
case 7:
res = _context.sent;
if (res.status === 0) {
message["b" /* default */].success('添加成功');
dispatch({
type: 'restful/setActionTabs',
payload: {}
});
dispatch({
type: 'restful/getRestful'
});
}
setConfirmLoading(false);
case 10:
case "end":
return _context.stop();
}
}
}, _callee);
})),
onCancel: function onCancel() {
dispatch({
type: 'restful/setActionTabs',
payload: {}
});
}
}, /*#__PURE__*/external_window_React_default.a.createElement("div", {
className: "pl30 pr30"
}, /*#__PURE__*/external_window_React_default.a.createElement(es_form["a" /* default */], {
form: form,
initialValues: Object(defineProperty["a" /* default */])({}, 'name', "")
}, /*#__PURE__*/external_window_React_default.a.createElement(es_form["a" /* default */].Item, {
name: "name",
rules: [{
required: true,
message: "请输入目录名称"
}]
}, /*#__PURE__*/external_window_React_default.a.createElement(row["a" /* default */], {
className: "mt30"
}, /*#__PURE__*/external_window_React_default.a.createElement(col["a" /* default */], {
flex: "80px",
className: "font14"
}, "\u76EE\u5F55\u540D\u79F0\uFF1A"), /*#__PURE__*/external_window_React_default.a.createElement(col["a" /* default */], {
flex: "1"
}, /*#__PURE__*/external_window_React_default.a.createElement(input["a" /* default */], {
placeholder: "\u8BF7\u8F93\u5165\u540D\u79F0\uFF0C\u6700\u5927\u9650\u523660\u4E2A\u5B57\u7B26 ",
maxLength: 60
})))))));
};
/* harmony default export */ var AddCategory = (Object(umiExports["a" /* connect */])(function (_ref4) {
var restful = _ref4.restful,
loading = _ref4.loading;
return {
restful: restful,
loading: loading
};
})(AddCategory_PublishShixun));
// CONCATENATED MODULE: ./src/pages/RestFul/components/LeftBar/Rename.tsx
var Rename_TreeNode = tree_select["a" /* default */].TreeNode;
var Rename_PublishShixun = function PublishShixun(_ref) {
var restful = _ref.restful,
loading = _ref.loading,
dispatch = _ref.dispatch;
var params = Object(react_router["i" /* useParams */])();
var location = Object(react_router["h" /* useLocation */])();
var _useState = Object(external_window_React_["useState"])(false),
_useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
confirmLoading = _useState2[0],
setConfirmLoading = _useState2[1];
var _useState3 = Object(external_window_React_["useState"])(),
_useState4 = Object(slicedToArray["a" /* default */])(_useState3, 2),
categoryId = _useState4[0],
setCategoryId = _useState4[1];
var actionTabs = restful.actionTabs;
var _Form$useForm = es_form["a" /* default */].useForm(),
_Form$useForm2 = Object(slicedToArray["a" /* default */])(_Form$useForm, 1),
form = _Form$useForm2[0];
Object(external_window_React_["useEffect"])(function () {
if (restful.actionTabs.key == '重命名') {
form.resetFields();
form.setFieldsValue({
name: restful.actionTabs.data.title
});
}
;
}, [restful.actionTabs.key]);
if (restful.actionTabs.key !== '重命名') return null;
return /*#__PURE__*/external_window_React_default.a.createElement(modal["a" /* default */], {
centered: true,
title: "\u91CD\u547D\u540D",
visible: restful.actionTabs.key === '重命名' ? true : false,
okText: "\u786E\u5B9A",
cancelText: "\u53D6\u6D88",
bodyStyle: {
minHeight: 150
},
confirmLoading: confirmLoading,
onOk: /*#__PURE__*/Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
var formValue, fetchUrl, res;
return regenerator_default.a.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return form.validateFields();
case 2:
formValue = form.getFieldValue();
setConfirmLoading(true);
fetchUrl = "/api/restfuls/".concat(restful.actionTabs.data.id, ".json");
_context.next = 7;
return Object(fetch["a" /* default */])(fetchUrl, {
method: 'put',
body: Object(objectSpread2["a" /* default */])({
file_type: 1
}, formValue)
});
case 7:
res = _context.sent;
if (res.status === 0) {
message["b" /* default */].success('修改成功');
dispatch({
type: 'restful/setActionTabs',
payload: {}
});
dispatch({
type: 'restful/getRestful'
});
}
setConfirmLoading(false);
case 10:
case "end":
return _context.stop();
}
}
}, _callee);
})),
onCancel: function onCancel() {
dispatch({
type: 'restful/setActionTabs',
payload: {}
});
}
}, /*#__PURE__*/external_window_React_default.a.createElement("div", {
className: "pl30 pr30"
}, /*#__PURE__*/external_window_React_default.a.createElement(es_form["a" /* default */], {
form: form,
initialValues: Object(defineProperty["a" /* default */])({}, 'name', "")
}, /*#__PURE__*/external_window_React_default.a.createElement(row["a" /* default */], {
className: "mt30"
}, /*#__PURE__*/external_window_React_default.a.createElement(col["a" /* default */], {
flex: "80px",
className: "font14"
}, "\u76EE\u5F55\u540D\u79F0\uFF1A"), /*#__PURE__*/external_window_React_default.a.createElement(col["a" /* default */], {
flex: "1"
}, /*#__PURE__*/external_window_React_default.a.createElement(es_form["a" /* default */].Item, {
name: "name",
rules: [{
required: true,
message: "请输入新名称"
}]
}, /*#__PURE__*/external_window_React_default.a.createElement(input["a" /* default */], {
placeholder: "\u8BF7\u8F93\u5165\u540D\u79F0\uFF0C\u6700\u5927\u9650\u523660\u4E2A\u5B57\u7B26 ",
maxLength: 60
})))))));
};
/* harmony default export */ var Rename = (Object(umiExports["a" /* connect */])(function (_ref4) {
var restful = _ref4.restful,
loading = _ref4.loading;
return {
restful: restful,
loading: loading
};
})(Rename_PublishShixun));
// EXTERNAL MODULE: ./src/service/restful.ts
var service_restful = __webpack_require__("s7vb");
// EXTERNAL MODULE: ./src/pages/RestFul/components/LeftBar/index.less?modules
var LeftBarmodules = __webpack_require__("P48q");
var LeftBarmodules_default = /*#__PURE__*/__webpack_require__.n(LeftBarmodules);
// CONCATENATED MODULE: ./src/pages/RestFul/components/LeftBar/index.tsx
var Search = input["a" /* default */].Search;
var DirectoryTree = tree["a" /* default */].DirectoryTree;
var LeftBar_UserPage = function UserPage(_ref) {
var user = _ref.user,
globalSetting = _ref.globalSetting,
loading = _ref.loading,
dispatch = _ref.dispatch,
restful = _ref.restful,
props = Object(objectWithoutProperties["a" /* default */])(_ref, ["user", "globalSetting", "loading", "dispatch", "restful"]);
var _useState = Object(external_window_React_["useState"])({
content: "",
message: "",
status: 0,
contacts: [],
address: "",
data: []
}),
_useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
data = _useState2[0],
setData = _useState2[1];
var _useState3 = Object(external_window_React_["useState"])(true),
_useState4 = Object(slicedToArray["a" /* default */])(_useState3, 2),
isLoading = _useState4[0],
setIsLoading = _useState4[1];
var _Form$useForm = es_form["a" /* default */].useForm(),
_Form$useForm2 = Object(slicedToArray["a" /* default */])(_Form$useForm, 1),
form = _Form$useForm2[0];
var _useState5 = Object(external_window_React_["useState"])(""),
_useState6 = Object(slicedToArray["a" /* default */])(_useState5, 2),
value = _useState6[0],
setValue = _useState6[1];
var _useState7 = Object(external_window_React_["useState"])([{
id: 1,
name: "新建文件"
}, {
id: 2,
name: "新建同级目录"
}, {
id: 3,
name: "重命名"
}, {
id: 4,
name: "编辑"
}, {
id: 5,
name: "删除"
}]),
_useState8 = Object(slicedToArray["a" /* default */])(_useState7, 1),
actionData = _useState8[0];
var _useState9 = Object(external_window_React_["useState"])([]),
_useState10 = Object(slicedToArray["a" /* default */])(_useState9, 2),
expandedKeys = _useState10[0],
setExpandedKeys = _useState10[1];
var _useState11 = Object(external_window_React_["useState"])([]),
_useState12 = Object(slicedToArray["a" /* default */])(_useState11, 2),
selectedKeys = _useState12[0],
setSelectedKeys = _useState12[1];
var _useState13 = Object(external_window_React_["useState"])(false),
_useState14 = Object(slicedToArray["a" /* default */])(_useState13, 2),
autoExpandParent = _useState14[0],
setAutoExpandParent = _useState14[1];
var _useState15 = Object(external_window_React_["useState"])([// {
// title: '数据字典',
// id: 1,
// key: '0-0',
// children: [
// { title: '课程基本信息 ', key: '0-0-0', isLeaf: true },
// { title: '课堂任务排序列表', key: '0-0-1', isLeaf: true },
// ],
// }
]),
_useState16 = Object(slicedToArray["a" /* default */])(_useState15, 2),
treeData = _useState16[0],
setTreedata = _useState16[1];
Object(external_window_React_["useEffect"])(function () {
var _restful$restful;
if ((_restful$restful = restful.restful) !== null && _restful$restful !== void 0 && _restful$restful.data) {
var _restful$restful2, _restful$restful3, _restful$restful3$dat;
setTreedata(Object(toConsumableArray["a" /* default */])((_restful$restful2 = restful.restful) === null || _restful$restful2 === void 0 ? void 0 : _restful$restful2.data));
var id = 0;
var pathId;
(_restful$restful3 = restful.restful) === null || _restful$restful3 === void 0 ? void 0 : (_restful$restful3$dat = _restful$restful3.data) === null || _restful$restful3$dat === void 0 ? void 0 : _restful$restful3$dat.map(function (item) {
var _item$children;
if (item.id == props.match.params.id) {
id = item.id;
}
if (item.file_type == 0 && !pathId) pathId = item.id;
item === null || item === void 0 ? void 0 : (_item$children = item.children) === null || _item$children === void 0 ? void 0 : _item$children.map(function (i) {
if (!pathId) pathId = i.id;
if (i.id == props.match.params.id) {
id = item.id;
}
});
if (!item.children && !pathId) pathId = item.id;
});
if (!props.match.params.id && pathId) {
props.history.push("/ch/rest/".concat(pathId));
return;
}
if (id) {
setTimeout(function () {
setExpandedKeys([id]);
setSelectedKeys([Number(props.match.params.id || pathId)]);
}, 200);
}
}
}, [restful.restful]);
var onSelect = function onSelect(keys, info) {
if (info.node.file_type === 0) props.history.push("/ch/rest/".concat(keys[0]));else setSelectedKeys(Object(toConsumableArray["a" /* default */])(keys));
console.log('Trigger Select', keys, info);
};
var onExpand = function onExpand(e) {
setExpandedKeys(e);
console.log('Trigger Expand', e);
};
var _content = function content(data) {
return /*#__PURE__*/external_window_React_default.a.createElement("div", null, actionData.map(function (item, key) {
return /*#__PURE__*/external_window_React_default.a.createElement("p", {
key: item.id,
className: "current",
onClick: function onClick() {
switch (item.id) {
case 1:
props.history.push("/ch/rest/edit/".concat(data.id, "/0"));
break;
case 2:
case 3:
dispatch({
type: "restful/setActionTabs",
payload: {
key: item.name,
data: data
}
});
break;
case 4:
document.location.href = "/ch/rest/edit/".concat(data.pid || 0, "/").concat(data.id);
break;
case 5:
modal["a" /* default */].confirm({
title: "提示",
content: "是否确定删除?",
onOk: function () {
var _onOk = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
var res;
return regenerator_default.a.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return Object(service_restful["a" /* deleteRestFul */])({
id: data.id
});
case 2:
res = _context.sent;
if ((res === null || res === void 0 ? void 0 : res.status) == 0) {
message["b" /* default */].success("删除成功");
dispatch({
type: "restful/getRestful"
});
}
case 4:
case "end":
return _context.stop();
}
}
}, _callee);
}));
function onOk() {
return _onOk.apply(this, arguments);
}
return onOk;
}()
});
break;
}
}
}, item.name);
}).filter(function (item) {
return !!item;
}).filter(function (item) {
if (data.pid || data.file_type == 0) {
return item.key > 3;
} else {
return item.key != 4;
}
}));
};
var loop = function loop(data) {
return data.map(function (item) {
var index = item.title.indexOf(value);
var beforeStr = item.title.substr(0, index);
var afterStr = item.title.substr(index + value.length); // console.log("item:", value, value != '', item.title, index)
var _title = /*#__PURE__*/external_window_React_default.a.createElement("span", null, beforeStr, /*#__PURE__*/external_window_React_default.a.createElement("span", {
className: "c-blue"
}, value), afterStr, Object(authority["o" /* isCommonSuperAdminOrOperation */])() && /*#__PURE__*/external_window_React_default.a.createElement(popover["a" /* default */], {
placement: "right",
title: value,
content: function content() {
return _content(item);
},
trigger: "hover"
}, /*#__PURE__*/external_window_React_default.a.createElement("span", {
className: "iconfont icon-sandian ".concat(LeftBarmodules_default.a.actions)
})));
if (value !== '') {
var _item$children2;
if (index === -1 && !((_item$children2 = item.children) !== null && _item$children2 !== void 0 && _item$children2.length)) {
return null;
}
}
if (item.children && item.file_type === 1) {
return Object(objectSpread2["a" /* default */])(Object(objectSpread2["a" /* default */])({}, item), {}, {
title: _title,
key: item.key,
children: loop(item.children)
});
}
return Object(objectSpread2["a" /* default */])(Object(objectSpread2["a" /* default */])({}, item), {}, {
title: _title,
key: item.key,
isLeaf: true
});
}).filter(function (item) {
return !!item;
});
};
var getParentKey = function getParentKey(key, tree) {
var parentKey;
for (var i = 0; i < tree.length; i++) {
var node = tree[i];
if (node.children) {
if (node.children.some(function (item) {
return item.key === key;
})) {
parentKey = node.key;
} else if (getParentKey(key, node.children)) {
parentKey = getParentKey(key, node.children);
}
}
}
return parentKey;
};
var onChange = function onChange(e) {
var value = e.target.value;
var expandedKeys = treeData.map(function (item) {
if (item !== null && item !== void 0 && item.children) {
var _item$children$filter;
if (!!(item !== null && item !== void 0 && (_item$children$filter = item.children.filter(function (i) {
return i.title.indexOf(value) > -1 ? true : false;
})) !== null && _item$children$filter !== void 0 && _item$children$filter.length)) {
return item.id;
}
return null;
}
return null;
});
setValue(value);
setAutoExpandParent(true);
console.log("expandedKeys:", expandedKeys);
setExpandedKeys(expandedKeys);
};
console.log("loop(treeData):", loop(treeData));
return /*#__PURE__*/external_window_React_default.a.createElement("div", {
className: LeftBarmodules_default.a.tree
}, /*#__PURE__*/external_window_React_default.a.createElement(Search, {
style: {
marginBottom: 8
},
placeholder: "\u8F93\u5165\u5173\u952E\u5B57\u68C0\u7D22",
onChange: onChange
}), /*#__PURE__*/external_window_React_default.a.createElement(DirectoryTree, {
multiple: true,
defaultExpandAll: true,
onSelect: onSelect,
onExpand: onExpand,
expandedKeys: expandedKeys,
selectedKeys: selectedKeys,
autoExpandParent: autoExpandParent,
treeData: loop(treeData)
}), /*#__PURE__*/external_window_React_default.a.createElement(AddCategory, null), /*#__PURE__*/external_window_React_default.a.createElement(Rename, null));
};
/* harmony default export */ var LeftBar = (Object(umiExports["a" /* connect */])(function (_ref2) {
var user = _ref2.user,
loading = _ref2.loading,
globalSetting = _ref2.globalSetting,
restful = _ref2.restful;
return {
user: user,
globalSetting: globalSetting,
restful: restful,
loading: loading.models.index
};
})(LeftBar_UserPage));
// CONCATENATED MODULE: ./src/pages/RestFul/index.tsx
var RestFul_UserPage = function UserPage(_ref) {
var _restful$restfulDetai, _restful$restfulDetai2;
var user = _ref.user,
globalSetting = _ref.globalSetting,
loading = _ref.loading,
dispatch = _ref.dispatch,
restful = _ref.restful,
props = Object(objectWithoutProperties["a" /* default */])(_ref, ["user", "globalSetting", "loading", "dispatch", "restful"]);
var _useState = Object(external_window_React_["useState"])({
content: "",
message: "",
status: 0,
contacts: [],
address: "",
data: []
}),
_useState2 = Object(slicedToArray["a" /* default */])(_useState, 2),
data = _useState2[0],
setData = _useState2[1];
var _useState3 = Object(external_window_React_["useState"])(true),
_useState4 = Object(slicedToArray["a" /* default */])(_useState3, 2),
isLoading = _useState4[0],
setIsLoading = _useState4[1];
var _Form$useForm = es_form["a" /* default */].useForm(),
_Form$useForm2 = Object(slicedToArray["a" /* default */])(_Form$useForm, 1),
form = _Form$useForm2[0];
var params = props.match.params;
var getData = /*#__PURE__*/function () {
var _ref2 = Object(asyncToGenerator["a" /* default */])( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
return regenerator_default.a.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
dispatch({
type: "restful/getRestful"
});
if (params.id) {
dispatch({
type: "restful/getRestfulDetail",
payload: Object(objectSpread2["a" /* default */])({}, params)
});
}
case 2:
case "end":
return _context.stop();
}
}
}, _callee);
}));
return function getData() {
return _ref2.apply(this, arguments);
};
}();
Object(external_window_React_["useEffect"])(function () {
setIsLoading(true);
getData();
}, [params.id]);
var addFolder = function addFolder() {
dispatch({
type: "restful/setActionTabs",
payload: {
key: "新建同级目录" // data: data
}
});
};
var getCategoryId = function getCategoryId() {
var _restful$restful;
if ((_restful$restful = restful.restful) !== null && _restful$restful !== void 0 && _restful$restful.data) {
var _restful$restful2, _restful$restful2$dat;
var pathId = 0;
(_restful$restful2 = restful.restful) === null || _restful$restful2 === void 0 ? void 0 : (_restful$restful2$dat = _restful$restful2.data) === null || _restful$restful2$dat === void 0 ? void 0 : _restful$restful2$dat.map(function (item) {
var _item$children;
item === null || item === void 0 ? void 0 : (_item$children = item.children) === null || _item$children === void 0 ? void 0 : _item$children.map(function (i) {
if (i.id == props.match.params.id) {
pathId = item.id;
}
});
if (!item.children && !pathId) pathId = item.id;
});
return pathId;
}
return 0;
};
return /*#__PURE__*/external_window_React_default.a.createElement("section", null, /*#__PURE__*/external_window_React_default.a.createElement("aside", {
className: "edu-container mt20"
}, /*#__PURE__*/external_window_React_default.a.createElement(breadcrumb["a" /* default */], null, /*#__PURE__*/external_window_React_default.a.createElement(breadcrumb["a" /* default */].Item, null, /*#__PURE__*/external_window_React_default.a.createElement(react_router_dom["a" /* Link */], {
to: '/'
}, "\u9996\u9875")), /*#__PURE__*/external_window_React_default.a.createElement(breadcrumb["a" /* default */].Item, null, /*#__PURE__*/external_window_React_default.a.createElement(react_router_dom["a" /* Link */], {
to: '/ch/rest'
}, "API\u6587\u6863"))), /*#__PURE__*/external_window_React_default.a.createElement("div", {
className: "mt20"
}, /*#__PURE__*/external_window_React_default.a.createElement(row["a" /* default */], {
gutter: [20, 20]
}, /*#__PURE__*/external_window_React_default.a.createElement(col["a" /* default */], {
flex: "300px"
}, /*#__PURE__*/external_window_React_default.a.createElement(LeftBar, props)), /*#__PURE__*/external_window_React_default.a.createElement(col["a" /* default */], {
flex: "1"
}, /*#__PURE__*/external_window_React_default.a.createElement("div", {
className: RestFulmodules_default.a.info
}, /*#__PURE__*/external_window_React_default.a.createElement("h1", {
style: {
fontSize: 28,
paddingBottom: 15,
borderBottom: "1px solid #eaeaea",
textAlign: "center"
}
}, (_restful$restfulDetai = restful.restfulDetail) === null || _restful$restfulDetai === void 0 ? void 0 : _restful$restfulDetai.name), /*#__PURE__*/external_window_React_default.a.createElement(RenderHtml["a" /* default */], {
value: (_restful$restfulDetai2 = restful.restfulDetail) === null || _restful$restfulDetai2 === void 0 ? void 0 : _restful$restfulDetai2.description
}))))), Object(authority["o" /* isCommonSuperAdminOrOperation */])() && /*#__PURE__*/external_window_React_default.a.createElement("div", {
className: RestFulmodules_default.a.bar
}, /*#__PURE__*/external_window_React_default.a.createElement(row["a" /* default */], null, !!getCategoryId() && /*#__PURE__*/external_window_React_default.a.createElement(col["a" /* default */], null, /*#__PURE__*/external_window_React_default.a.createElement(tooltip["a" /* default */], {
title: "\u7F16\u8F91\u6587\u4EF6"
}, /*#__PURE__*/external_window_React_default.a.createElement(react_router_dom["a" /* Link */], {
to: "/ch/rest/edit/".concat(getCategoryId(), "/").concat(props.match.params.id),
className: "icon-zhongmingming current"
}))), /*#__PURE__*/external_window_React_default.a.createElement(col["a" /* default */], null, /*#__PURE__*/external_window_React_default.a.createElement(tooltip["a" /* default */], {
title: "\u6DFB\u52A0\u6587\u4EF6"
}, /*#__PURE__*/external_window_React_default.a.createElement(react_router_dom["a" /* Link */], {
to: "/ch/rest/edit/".concat(getCategoryId(), "/0"),
className: "icon-tianjiatimu current"
}))), /*#__PURE__*/external_window_React_default.a.createElement(col["a" /* default */], null, /*#__PURE__*/external_window_React_default.a.createElement(tooltip["a" /* default */], {
title: "\u65B0\u5EFA\u6587\u4EF6\u5939"
}, /*#__PURE__*/external_window_React_default.a.createElement("span", {
className: "icon-wenjianjia1 current",
onClick: addFolder
})))))));
};
/* harmony default export */ var RestFul = __webpack_exports__["default"] = (Object(umiExports["a" /* connect */])(function (_ref3) {
var user = _ref3.user,
loading = _ref3.loading,
globalSetting = _ref3.globalSetting,
restful = _ref3.restful;
return {
user: user,
globalSetting: globalSetting,
restful: restful,
loading: loading.models.index
};
})(RestFul_UserPage));
/***/ }),
/***/ "NvD2":
/*!******************************************************!*\
!*** ./node_modules/rc-tree/es/utils/conductUtil.js ***!
\******************************************************/
/*! exports provided: isCheckDisabled, conductCheck */
/*! exports used: conductCheck */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export isCheckDisabled */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return conductCheck; });
/* harmony import */ var rc_util_es_warning__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rc-util/es/warning */ "Kwbf");
function removeFromCheckedKeys(halfCheckedKeys, checkedKeys) {
var filteredKeys = new Set();
halfCheckedKeys.forEach(function (key) {
if (!checkedKeys.has(key)) {
filteredKeys.add(key);
}
});
return filteredKeys;
}
function isCheckDisabled(node) {
var _ref = node || {},
disabled = _ref.disabled,
disableCheckbox = _ref.disableCheckbox,
checkable = _ref.checkable;
return !!(disabled || disableCheckbox) || checkable === false;
} // Fill miss keys
function fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled) {
var checkedKeys = new Set(keys);
var halfCheckedKeys = new Set(); // Add checked keys top to bottom
for (var level = 0; level <= maxLevel; level += 1) {
var entities = levelEntities.get(level) || new Set();
entities.forEach(function (entity) {
var key = entity.key,
node = entity.node,
_entity$children = entity.children,
children = _entity$children === void 0 ? [] : _entity$children;
if (checkedKeys.has(key) && !syntheticGetCheckDisabled(node)) {
children.filter(function (childEntity) {
return !syntheticGetCheckDisabled(childEntity.node);
}).forEach(function (childEntity) {
checkedKeys.add(childEntity.key);
});
}
});
} // Add checked keys from bottom to top
var visitedKeys = new Set();
for (var _level = maxLevel; _level >= 0; _level -= 1) {
var _entities = levelEntities.get(_level) || new Set();
_entities.forEach(function (entity) {
var parent = entity.parent,
node = entity.node; // Skip if no need to check
if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {
return;
} // Skip if parent is disabled
if (syntheticGetCheckDisabled(entity.parent.node)) {
visitedKeys.add(parent.key);
return;
}
var allChecked = true;
var partialChecked = false;
(parent.children || []).filter(function (childEntity) {
return !syntheticGetCheckDisabled(childEntity.node);
}).forEach(function (_ref2) {
var key = _ref2.key;
var checked = checkedKeys.has(key);
if (allChecked && !checked) {
allChecked = false;
}
if (!partialChecked && (checked || halfCheckedKeys.has(key))) {
partialChecked = true;
}
});
if (allChecked) {
checkedKeys.add(parent.key);
}
if (partialChecked) {
halfCheckedKeys.add(parent.key);
}
visitedKeys.add(parent.key);
});
}
return {
checkedKeys: Array.from(checkedKeys),
halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))
};
} // Remove useless key
function cleanConductCheck(keys, halfKeys, levelEntities, maxLevel, syntheticGetCheckDisabled) {
var checkedKeys = new Set(keys);
var halfCheckedKeys = new Set(halfKeys); // Remove checked keys from top to bottom
for (var level = 0; level <= maxLevel; level += 1) {
var entities = levelEntities.get(level) || new Set();
entities.forEach(function (entity) {
var key = entity.key,
node = entity.node,
_entity$children2 = entity.children,
children = _entity$children2 === void 0 ? [] : _entity$children2;
if (!checkedKeys.has(key) && !halfCheckedKeys.has(key) && !syntheticGetCheckDisabled(node)) {
children.filter(function (childEntity) {
return !syntheticGetCheckDisabled(childEntity.node);
}).forEach(function (childEntity) {
checkedKeys.delete(childEntity.key);
});
}
});
} // Remove checked keys form bottom to top
halfCheckedKeys = new Set();
var visitedKeys = new Set();
for (var _level2 = maxLevel; _level2 >= 0; _level2 -= 1) {
var _entities2 = levelEntities.get(_level2) || new Set();
_entities2.forEach(function (entity) {
var parent = entity.parent,
node = entity.node; // Skip if no need to check
if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {
return;
} // Skip if parent is disabled
if (syntheticGetCheckDisabled(entity.parent.node)) {
visitedKeys.add(parent.key);
return;
}
var allChecked = true;
var partialChecked = false;
(parent.children || []).filter(function (childEntity) {
return !syntheticGetCheckDisabled(childEntity.node);
}).forEach(function (_ref3) {
var key = _ref3.key;
var checked = checkedKeys.has(key);
if (allChecked && !checked) {
allChecked = false;
}
if (!partialChecked && (checked || halfCheckedKeys.has(key))) {
partialChecked = true;
}
});
if (!allChecked) {
checkedKeys.delete(parent.key);
}
if (partialChecked) {
halfCheckedKeys.add(parent.key);
}
visitedKeys.add(parent.key);
});
}
return {
checkedKeys: Array.from(checkedKeys),
halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))
};
}
/**
* Conduct with keys.
* @param keyList current key list
* @param keyEntities key - dataEntity map
* @param mode `fill` to fill missing key, `clean` to remove useless key
*/
function conductCheck(keyList, checked, keyEntities, getCheckDisabled) {
var warningMissKeys = [];
var syntheticGetCheckDisabled;
if (getCheckDisabled) {
syntheticGetCheckDisabled = getCheckDisabled;
} else {
syntheticGetCheckDisabled = isCheckDisabled;
} // We only handle exist keys
var keys = new Set(keyList.filter(function (key) {
var hasEntity = !!keyEntities[key];
if (!hasEntity) {
warningMissKeys.push(key);
}
return hasEntity;
}));
var levelEntities = new Map();
var maxLevel = 0; // Convert entities by level for calculation
Object.keys(keyEntities).forEach(function (key) {
var entity = keyEntities[key];
var level = entity.level;
var levelSet = levelEntities.get(level);
if (!levelSet) {
levelSet = new Set();
levelEntities.set(level, levelSet);
}
levelSet.add(entity);
maxLevel = Math.max(maxLevel, level);
});
Object(rc_util_es_warning__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(!warningMissKeys.length, "Tree missing follow keys: ".concat(warningMissKeys.slice(0, 100).map(function (key) {
return "'".concat(key, "'");
}).join(', ')));
var result;
if (checked === true) {
result = fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled);
} else {
result = cleanConductCheck(keys, checked.halfCheckedKeys, levelEntities, maxLevel, syntheticGetCheckDisabled);
}
return result;
}
/***/ }),
/***/ "OZM5":
/*!*****************************************!*\
!*** ./node_modules/rc-tree/es/util.js ***!
\*****************************************/
/*! exports provided: arrDel, arrAdd, posToArr, getPosition, isTreeNode, getDragNodesKeys, calcDropPosition, calcSelectedKeys, convertDataToTree, parseCheckedKeys, conductExpandParent, getDataAndAria */
/*! exports used: arrAdd, arrDel, calcDropPosition, calcSelectedKeys, conductExpandParent, getDataAndAria, getDragNodesKeys, getPosition, isTreeNode, parseCheckedKeys, posToArr */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return arrDel; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return arrAdd; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return posToArr; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return getPosition; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return isTreeNode; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return getDragNodesKeys; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return calcDropPosition; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return calcSelectedKeys; });
/* unused harmony export convertDataToTree */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return parseCheckedKeys; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return conductExpandParent; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return getDataAndAria; });
/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ "KQm4");
/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ "U8pU");
/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ "Ff2n");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ "cDcd");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var rc_util_es_warning__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rc-util/es/warning */ "Kwbf");
/* harmony import */ var _TreeNode__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./TreeNode */ "WaYH");
/**
* Legacy code. Should avoid to use if you are new to import these code.
*/
var DRAG_SIDE_RANGE = 0.25;
var DRAG_MIN_GAP = 2;
function arrDel(list, value) {
var clone = list.slice();
var index = clone.indexOf(value);
if (index >= 0) {
clone.splice(index, 1);
}
return clone;
}
function arrAdd(list, value) {
var clone = list.slice();
if (clone.indexOf(value) === -1) {
clone.push(value);
}
return clone;
}
function posToArr(pos) {
return pos.split('-');
}
function getPosition(level, index) {
return "".concat(level, "-").concat(index);
}
function isTreeNode(node) {
return node && node.type && node.type.isTreeNode;
}
function getDragNodesKeys(dragNodeKey, keyEntities) {
var dragNodesKeys = [dragNodeKey];
var entity = keyEntities[dragNodeKey];
function dig() {
var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
list.forEach(function (_ref) {
var key = _ref.key,
children = _ref.children;
dragNodesKeys.push(key);
dig(children);
});
}
dig(entity.children);
return dragNodesKeys;
} // Only used when drag, not affect SSR.
function calcDropPosition(event, treeNode) {
var clientY = event.clientY;
var _treeNode$selectHandl = treeNode.selectHandle.getBoundingClientRect(),
top = _treeNode$selectHandl.top,
bottom = _treeNode$selectHandl.bottom,
height = _treeNode$selectHandl.height;
var des = Math.max(height * DRAG_SIDE_RANGE, DRAG_MIN_GAP);
if (clientY <= top + des) {
return -1;
}
if (clientY >= bottom - des) {
return 1;
}
return 0;
}
/**
* Return selectedKeys according with multiple prop
* @param selectedKeys
* @param props
* @returns [string]
*/
function calcSelectedKeys(selectedKeys, props) {
if (!selectedKeys) return undefined;
var multiple = props.multiple;
if (multiple) {
return selectedKeys.slice();
}
if (selectedKeys.length) {
return [selectedKeys[0]];
}
return selectedKeys;
}
var internalProcessProps = function internalProcessProps(props) {
return props;
};
function convertDataToTree(treeData, processor) {
if (!treeData) return [];
var _ref2 = processor || {},
_ref2$processProps = _ref2.processProps,
processProps = _ref2$processProps === void 0 ? internalProcessProps : _ref2$processProps;
var list = Array.isArray(treeData) ? treeData : [treeData];
return list.map(function (_ref3) {
var children = _ref3.children,
props = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(_ref3, ["children"]);
var childrenNodes = convertDataToTree(children, processor);
return react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(_TreeNode__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"], Object.assign({}, processProps(props)), childrenNodes);
});
}
/**
* Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style
*/
function parseCheckedKeys(keys) {
if (!keys) {
return null;
} // Convert keys to object format
var keyProps;
if (Array.isArray(keys)) {
// [Legacy] Follow the api doc
keyProps = {
checkedKeys: keys,
halfCheckedKeys: undefined
};
} else if (Object(_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(keys) === 'object') {
keyProps = {
checkedKeys: keys.checked || undefined,
halfCheckedKeys: keys.halfChecked || undefined
};
} else {
Object(rc_util_es_warning__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])(false, '`checkedKeys` is not an array or an object');
return null;
}
return keyProps;
}
/**
* If user use `autoExpandParent` we should get the list of parent node
* @param keyList
* @param keyEntities
*/
function conductExpandParent(keyList, keyEntities) {
var expandedKeys = new Set();
function conductUp(key) {
if (expandedKeys.has(key)) return;
var entity = keyEntities[key];
if (!entity) return;
expandedKeys.add(key);
var parent = entity.parent,
node = entity.node;
if (node.disabled) return;
if (parent) {
conductUp(parent.key);
}
}
(keyList || []).forEach(function (key) {
conductUp(key);
});
return Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(expandedKeys);
}
/**
* Returns only the data- and aria- key/value pairs
*/
function getDataAndAria(props) {
var omitProps = {};
Object.keys(props).forEach(function (key) {
if (key.startsWith('data-') || key.startsWith('aria-')) {
omitProps[key] = props[key];
}
});
return omitProps;
}
/***/ }),
/***/ "P48q":
/*!*****************************************************************!*\
!*** ./src/pages/RestFul/components/LeftBar/index.less?modules ***!
\*****************************************************************/
/*! no static exports found */
/*! exports used: default */
/*! ModuleConcatenation bailout: Module is not an ECMAScript module */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
module.exports = {"flex_box_center":"flex_box_center___BHtvi","flex_space_between":"flex_space_between___1noDr","flex_box_vertical_center":"flex_box_vertical_center___2UDAc","flex_box_center_end":"flex_box_center_end___2j8--","flex_box_column":"flex_box_column___3X60k","tree":"tree___2kCYs","actions":"actions___10Q_6"};
/***/ }),
/***/ "SJMd":
/*!****************************************************!*\
!*** ./node_modules/code-prettify/src/prettify.js ***!
\****************************************************/
/*! no static exports found */
/*! ModuleConcatenation bailout: Module is not an ECMAScript module */
/***/ (function(module, exports) {
/**
* @license
* Copyright (C) 2006 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @fileoverview
* some functions for browser-side pretty printing of code contained in html.
*
*
* For a fairly comprehensive set of languages see the
* README
* file that came with this source. At a minimum, the lexer should work on a
* number of languages including C and friends, Java, Python, Bash, SQL, HTML,
* XML, CSS, Javascript, and Makefiles. It works passably on Ruby, PHP and Awk
* and a subset of Perl, but, because of commenting conventions, doesn't work on
* Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class.
*
* Usage:
*
include this source file in an html page via
* {@code }
*
define style rules. See the example page for examples.
*
mark the {@code
} and {@code } tags in your source with
* {@code class=prettyprint.}
* You can also use the (html deprecated) {@code } tag, but the pretty
* printer needs to do more substantial DOM manipulations to support that, so
* some css styles may not be preserved.
*
* That's it. I wanted to keep the API as simple as possible, so there's no
* need to specify which language the code is in, but if you wish, you can add
* another class to the {@code
} or {@code } element to specify the
* language, as in {@code
}. Any class that
* starts with "lang-" followed by a file extension, specifies the file type.
* See the "lang-*.js" files in this directory for code that implements
* per-language file handlers.
*
* Change log:
* cbeust, 2006/08/22
*
* Java annotations (start with "@") are now captured as literals ("lit")
*
* @requires console
*/
// JSLint declarations
/*global console, document, navigator, setTimeout, window, define */
/**
* @typedef {!Array.}
* Alternating indices and the decorations that should be inserted there.
* The indices are monotonically increasing.
*/
var DecorationsT;
/**
* @typedef {!{
* sourceNode: !Element,
* pre: !(number|boolean),
* langExtension: ?string,
* numberLines: ?(number|boolean),
* sourceCode: ?string,
* spans: ?(Array.),
* basePos: ?number,
* decorations: ?DecorationsT
* }}
*
*
sourceNode
the element containing the source
*
sourceCode
source as plain text
*
pre
truthy if white-space in text nodes
* should be considered significant.
*
spans
alternating span start indices into source
* and the text node or element (e.g. {@code }) corresponding to that
* span.
*
decorations
an array of style classes preceded
* by the position at which they start in job.sourceCode in order
*
basePos
integer position of this.sourceCode in the larger chunk of
* source.
*
alternating span start indices into source
* and the text node or element (e.g. {@code }) corresponding to that
* span.
*
*/
var SourceSpansT;
/** @define {boolean} */
var IN_GLOBAL_SCOPE = false;
var HACK_TO_FIX_JS_INCLUDE_PL;
/**
* {@type !{
* 'createSimpleLexer': function (Array, Array): (function (JobT)),
* 'registerLangHandler': function (function (JobT), Array.),
* 'PR_ATTRIB_NAME': string,
* 'PR_ATTRIB_NAME': string,
* 'PR_ATTRIB_VALUE': string,
* 'PR_COMMENT': string,
* 'PR_DECLARATION': string,
* 'PR_KEYWORD': string,
* 'PR_LITERAL': string,
* 'PR_NOCODE': string,
* 'PR_PLAIN': string,
* 'PR_PUNCTUATION': string,
* 'PR_SOURCE': string,
* 'PR_STRING': string,
* 'PR_TAG': string,
* 'PR_TYPE': string,
* 'prettyPrintOne': function (string, string, number|boolean),
* 'prettyPrint': function (?function, ?(HTMLElement|HTMLDocument))
* }}
* @const
*/
var PR;
/**
* Split {@code prettyPrint} into multiple timeouts so as not to interfere with
* UI events.
* If set to {@code false}, {@code prettyPrint()} is synchronous.
*/
window['PR_SHOULD_USE_CONTINUATION'] = true;
/**
* Pretty print a chunk of code.
* @param {string} sourceCodeHtml The HTML to pretty print.
* @param {string} opt_langExtension The language name to use.
* Typically, a filename extension like 'cpp' or 'java'.
* @param {number|boolean} opt_numberLines True to number lines,
* or the 1-indexed number of the first line in sourceCodeHtml.
* @return {string} code as html, but prettier
*/
var prettyPrintOne;
/**
* Find all the {@code
} and {@code } tags in the DOM with
* {@code class=prettyprint} and prettify them.
*
* @param {Function} opt_whenDone called when prettifying is done.
* @param {HTMLElement|HTMLDocument} opt_root an element or document
* containing all the elements to pretty print.
* Defaults to {@code document.body}.
*/
var prettyPrint;
(function () {
var win = window;
// Keyword lists for various languages.
// We use things that coerce to strings to make them compact when minified
// and to defeat aggressive optimizers that fold large string constants.
var FLOW_CONTROL_KEYWORDS = ["break,continue,do,else,for,if,return,while"];
var C_KEYWORDS = [FLOW_CONTROL_KEYWORDS,"auto,case,char,const,default," +
"double,enum,extern,float,goto,inline,int,long,register,restrict,short,signed," +
"sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];
var COMMON_KEYWORDS = [C_KEYWORDS,"catch,class,delete,false,import," +
"new,operator,private,protected,public,this,throw,true,try,typeof"];
var CPP_KEYWORDS = [COMMON_KEYWORDS,"alignas,alignof,align_union,asm,axiom,bool," +
"concept,concept_map,const_cast,constexpr,decltype,delegate," +
"dynamic_cast,explicit,export,friend,generic,late_check," +
"mutable,namespace,noexcept,noreturn,nullptr,property,reinterpret_cast,static_assert," +
"static_cast,template,typeid,typename,using,virtual,where"];
var JAVA_KEYWORDS = [COMMON_KEYWORDS,
"abstract,assert,boolean,byte,extends,finally,final,implements,import," +
"instanceof,interface,null,native,package,strictfp,super,synchronized," +
"throws,transient"];
var CSHARP_KEYWORDS = [COMMON_KEYWORDS,
"abstract,add,alias,as,ascending,async,await,base,bool,by,byte,checked,decimal,delegate,descending," +
"dynamic,event,finally,fixed,foreach,from,get,global,group,implicit,in,interface," +
"internal,into,is,join,let,lock,null,object,out,override,orderby,params," +
"partial,readonly,ref,remove,sbyte,sealed,select,set,stackalloc,string,select,uint,ulong," +
"unchecked,unsafe,ushort,value,var,virtual,where,yield"];
var COFFEE_KEYWORDS = "all,and,by,catch,class,else,extends,false,finally," +
"for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then," +
"throw,true,try,unless,until,when,while,yes";
var JSCRIPT_KEYWORDS = [COMMON_KEYWORDS,
"abstract,async,await,constructor,debugger,enum,eval,export,function," +
"get,implements,instanceof,interface,let,null,set,undefined,var,with," +
"yield,Infinity,NaN"];
var PERL_KEYWORDS = "caller,delete,die,do,dump,elsif,eval,exit,foreach,for," +
"goto,if,import,last,local,my,next,no,our,print,package,redo,require," +
"sub,undef,unless,until,use,wantarray,while,BEGIN,END";
var PYTHON_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "and,as,assert,class,def,del," +
"elif,except,exec,finally,from,global,import,in,is,lambda," +
"nonlocal,not,or,pass,print,raise,try,with,yield," +
"False,True,None"];
var RUBY_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "alias,and,begin,case,class," +
"def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo," +
"rescue,retry,self,super,then,true,undef,unless,until,when,yield," +
"BEGIN,END"];
var SH_KEYWORDS = [FLOW_CONTROL_KEYWORDS, "case,done,elif,esac,eval,fi," +
"function,in,local,set,then,until"];
var ALL_KEYWORDS = [
CPP_KEYWORDS, CSHARP_KEYWORDS, JAVA_KEYWORDS, JSCRIPT_KEYWORDS,
PERL_KEYWORDS, PYTHON_KEYWORDS, RUBY_KEYWORDS, SH_KEYWORDS];
var C_TYPES = /^(DIR|FILE|array|vector|(de|priority_)?queue|(forward_)?list|stack|(const_)?(reverse_)?iterator|(unordered_)?(multi)?(set|map)|bitset|u?(int|float)\d*)\b/;
// token style names. correspond to css classes
/**
* token style for a string literal
* @const
*/
var PR_STRING = 'str';
/**
* token style for a keyword
* @const
*/
var PR_KEYWORD = 'kwd';
/**
* token style for a comment
* @const
*/
var PR_COMMENT = 'com';
/**
* token style for a type
* @const
*/
var PR_TYPE = 'typ';
/**
* token style for a literal value. e.g. 1, null, true.
* @const
*/
var PR_LITERAL = 'lit';
/**
* token style for a punctuation string.
* @const
*/
var PR_PUNCTUATION = 'pun';
/**
* token style for plain text.
* @const
*/
var PR_PLAIN = 'pln';
/**
* token style for an sgml tag.
* @const
*/
var PR_TAG = 'tag';
/**
* token style for a markup declaration such as a DOCTYPE.
* @const
*/
var PR_DECLARATION = 'dec';
/**
* token style for embedded source.
* @const
*/
var PR_SOURCE = 'src';
/**
* token style for an sgml attribute name.
* @const
*/
var PR_ATTRIB_NAME = 'atn';
/**
* token style for an sgml attribute value.
* @const
*/
var PR_ATTRIB_VALUE = 'atv';
/**
* A class that indicates a section of markup that is not code, e.g. to allow
* embedding of line numbers within code listings.
* @const
*/
var PR_NOCODE = 'nocode';
/**
* A set of tokens that can precede a regular expression literal in
* javascript
* http://web.archive.org/web/20070717142515/http://www.mozilla.org/js/language/js20/rationale/syntax.html
* has the full list, but I've removed ones that might be problematic when
* seen in languages that don't support regular expression literals.
*
*
Specifically, I've removed any keywords that can't precede a regexp
* literal in a syntactically legal javascript program, and I've removed the
* "in" keyword since it's not a keyword in many languages, and might be used
* as a count of inches.
*
*
The link above does not accurately describe EcmaScript rules since
* it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works
* very well in practice.
*
* @private
* @const
*/
var REGEXP_PRECEDER_PATTERN = '(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<=?|>>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*';
// CAVEAT: this does not properly handle the case where a regular
// expression immediately follows another since a regular expression may
// have flags for case-sensitivity and the like. Having regexp tokens
// adjacent is not valid in any language I'm aware of, so I'm punting.
// TODO: maybe style special characters inside a regexp as punctuation.
/**
* Given a group of {@link RegExp}s, returns a {@code RegExp} that globally
* matches the union of the sets of strings matched by the input RegExp.
* Since it matches globally, if the input strings have a start-of-input
* anchor (/^.../), it is ignored for the purposes of unioning.
* @param {Array.} regexs non multiline, non-global regexs.
* @return {RegExp} a global regex.
*/
function combinePrefixPatterns(regexs) {
var capturedGroupIndex = 0;
var needToFoldCase = false;
var ignoreCase = false;
for (var i = 0, n = regexs.length; i < n; ++i) {
var regex = regexs[i];
if (regex.ignoreCase) {
ignoreCase = true;
} else if (/[a-z]/i.test(regex.source.replace(
/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) {
needToFoldCase = true;
ignoreCase = false;
break;
}
}
var escapeCharToCodeUnit = {
'b': 8,
't': 9,
'n': 0xa,
'v': 0xb,
'f': 0xc,
'r': 0xd
};
function decodeEscape(charsetPart) {
var cc0 = charsetPart.charCodeAt(0);
if (cc0 !== 92 /* \\ */) {
return cc0;
}
var c1 = charsetPart.charAt(1);
cc0 = escapeCharToCodeUnit[c1];
if (cc0) {
return cc0;
} else if ('0' <= c1 && c1 <= '7') {
return parseInt(charsetPart.substring(1), 8);
} else if (c1 === 'u' || c1 === 'x') {
return parseInt(charsetPart.substring(2), 16);
} else {
return charsetPart.charCodeAt(1);
}
}
function encodeEscape(charCode) {
if (charCode < 0x20) {
return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16);
}
var ch = String.fromCharCode(charCode);
return (ch === '\\' || ch === '-' || ch === ']' || ch === '^')
? "\\" + ch : ch;
}
function caseFoldCharset(charSet) {
var charsetParts = charSet.substring(1, charSet.length - 1).match(
new RegExp(
'\\\\u[0-9A-Fa-f]{4}'
+ '|\\\\x[0-9A-Fa-f]{2}'
+ '|\\\\[0-3][0-7]{0,2}'
+ '|\\\\[0-7]{1,2}'
+ '|\\\\[\\s\\S]'
+ '|-'
+ '|[^-\\\\]',
'g'));
var ranges = [];
var inverse = charsetParts[0] === '^';
var out = ['['];
if (inverse) { out.push('^'); }
for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) {
var p = charsetParts[i];
if (/\\[bdsw]/i.test(p)) { // Don't muck with named groups.
out.push(p);
} else {
var start = decodeEscape(p);
var end;
if (i + 2 < n && '-' === charsetParts[i + 1]) {
end = decodeEscape(charsetParts[i + 2]);
i += 2;
} else {
end = start;
}
ranges.push([start, end]);
// If the range might intersect letters, then expand it.
// This case handling is too simplistic.
// It does not deal with non-latin case folding.
// It works for latin source code identifiers though.
if (!(end < 65 || start > 122)) {
if (!(end < 65 || start > 90)) {
ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]);
}
if (!(end < 97 || start > 122)) {
ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]);
}
}
}
}
// [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]]
// -> [[1, 12], [14, 14], [16, 17]]
ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1] - a[1]); });
var consolidatedRanges = [];
var lastRange = [];
for (var i = 0; i < ranges.length; ++i) {
var range = ranges[i];
if (range[0] <= lastRange[1] + 1) {
lastRange[1] = Math.max(lastRange[1], range[1]);
} else {
consolidatedRanges.push(lastRange = range);
}
}
for (var i = 0; i < consolidatedRanges.length; ++i) {
var range = consolidatedRanges[i];
out.push(encodeEscape(range[0]));
if (range[1] > range[0]) {
if (range[1] + 1 > range[0]) { out.push('-'); }
out.push(encodeEscape(range[1]));
}
}
out.push(']');
return out.join('');
}
function allowAnywhereFoldCaseAndRenumberGroups(regex) {
// Split into character sets, escape sequences, punctuation strings
// like ('(', '(?:', ')', '^'), and runs of characters that do not
// include any of the above.
var parts = regex.source.match(
new RegExp(
'(?:'
+ '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]' // a character set
+ '|\\\\u[A-Fa-f0-9]{4}' // a unicode escape
+ '|\\\\x[A-Fa-f0-9]{2}' // a hex escape
+ '|\\\\[0-9]+' // a back-reference or octal escape
+ '|\\\\[^ux0-9]' // other escape sequence
+ '|\\(\\?[:!=]' // start of a non-capturing group
+ '|[\\(\\)\\^]' // start/end of a group, or line start
+ '|[^\\x5B\\x5C\\(\\)\\^]+' // run of other characters
+ ')',
'g'));
var n = parts.length;
// Maps captured group numbers to the number they will occupy in
// the output or to -1 if that has not been determined, or to
// undefined if they need not be capturing in the output.
var capturedGroups = [];
// Walk over and identify back references to build the capturedGroups
// mapping.
for (var i = 0, groupIndex = 0; i < n; ++i) {
var p = parts[i];
if (p === '(') {
// groups are 1-indexed, so max group index is count of '('
++groupIndex;
} else if ('\\' === p.charAt(0)) {
var decimalValue = +p.substring(1);
if (decimalValue) {
if (decimalValue <= groupIndex) {
capturedGroups[decimalValue] = -1;
} else {
// Replace with an unambiguous escape sequence so that
// an octal escape sequence does not turn into a backreference
// to a capturing group from an earlier regex.
parts[i] = encodeEscape(decimalValue);
}
}
}
}
// Renumber groups and reduce capturing groups to non-capturing groups
// where possible.
for (var i = 1; i < capturedGroups.length; ++i) {
if (-1 === capturedGroups[i]) {
capturedGroups[i] = ++capturedGroupIndex;
}
}
for (var i = 0, groupIndex = 0; i < n; ++i) {
var p = parts[i];
if (p === '(') {
++groupIndex;
if (!capturedGroups[groupIndex]) {
parts[i] = '(?:';
}
} else if ('\\' === p.charAt(0)) {
var decimalValue = +p.substring(1);
if (decimalValue && decimalValue <= groupIndex) {
parts[i] = '\\' + capturedGroups[decimalValue];
}
}
}
// Remove any prefix anchors so that the output will match anywhere.
// ^^ really does mean an anchored match though.
for (var i = 0; i < n; ++i) {
if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; }
}
// Expand letters to groups to handle mixing of case-sensitive and
// case-insensitive patterns if necessary.
if (regex.ignoreCase && needToFoldCase) {
for (var i = 0; i < n; ++i) {
var p = parts[i];
var ch0 = p.charAt(0);
if (p.length >= 2 && ch0 === '[') {
parts[i] = caseFoldCharset(p);
} else if (ch0 !== '\\') {
// TODO: handle letters in numeric escapes.
parts[i] = p.replace(
/[a-zA-Z]/g,
function (ch) {
var cc = ch.charCodeAt(0);
return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']';
});
}
}
}
return parts.join('');
}
var rewritten = [];
for (var i = 0, n = regexs.length; i < n; ++i) {
var regex = regexs[i];
if (regex.global || regex.multiline) { throw new Error('' + regex); }
rewritten.push(
'(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')');
}
return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g');
}
/**
* Split markup into a string of source code and an array mapping ranges in
* that string to the text nodes in which they appear.
*
*
* where #1 is a reference to the {@code "print "} text node above, and so
* on for the other text nodes.
*
*
*
* The {@code} spans array is an array of pairs. Even elements are the start
* indices of substrings, and odd elements are the text nodes (or BR elements)
* that contain the text for those substrings.
* Substrings continue until the next index or the end of the source.
*
*
* @param {Node} node an HTML DOM subtree containing source-code.
* @param {boolean|number} isPreformatted truthy if white-space in
* text nodes should be considered significant.
* @return {SourceSpansT} source code and the nodes in which they occur.
*/
function extractSourceSpans(node, isPreformatted) {
var nocode = /(?:^|\s)nocode(?:\s|$)/;
var chunks = [];
var length = 0;
var spans = [];
var k = 0;
function walk(node) {
var type = node.nodeType;
if (type == 1) { // Element
if (nocode.test(node.className)) { return; }
for (var child = node.firstChild; child; child = child.nextSibling) {
walk(child);
}
var nodeName = node.nodeName.toLowerCase();
if ('br' === nodeName || 'li' === nodeName) {
chunks[k] = '\n';
spans[k << 1] = length++;
spans[(k++ << 1) | 1] = node;
}
} else if (type == 3 || type == 4) { // Text
var text = node.nodeValue;
if (text.length) {
if (!isPreformatted) {
text = text.replace(/[ \t\r\n]+/g, ' ');
} else {
text = text.replace(/\r\n?/g, '\n'); // Normalize newlines.
}
// TODO: handle tabs here?
chunks[k] = text;
spans[k << 1] = length;
length += text.length;
spans[(k++ << 1) | 1] = node;
}
}
}
walk(node);
return {
sourceCode: chunks.join('').replace(/\n$/, ''),
spans: spans
};
}
/**
* Apply the given language handler to sourceCode and add the resulting
* decorations to out.
* @param {!Element} sourceNode
* @param {number} basePos the index of sourceCode within the chunk of source
* whose decorations are already present on out.
* @param {string} sourceCode
* @param {function(JobT)} langHandler
* @param {DecorationsT} out
*/
function appendDecorations(
sourceNode, basePos, sourceCode, langHandler, out) {
if (!sourceCode) { return; }
/** @type {JobT} */
var job = {
sourceNode: sourceNode,
pre: 1,
langExtension: null,
numberLines: null,
sourceCode: sourceCode,
spans: null,
basePos: basePos,
decorations: null
};
langHandler(job);
out.push.apply(out, job.decorations);
}
var notWs = /\S/;
/**
* Given an element, if it contains only one child element and any text nodes
* it contains contain only space characters, return the sole child element.
* Otherwise returns undefined.
*
* This is meant to return the CODE element in {@code
} when
* there is a single child element that contains all the non-space textual
* content, but not to return anything where there are multiple child elements
* as in {@code
......
} or when there
* is textual content.
*/
function childContentWrapper(element) {
var wrapper = undefined;
for (var c = element.firstChild; c; c = c.nextSibling) {
var type = c.nodeType;
wrapper = (type === 1) // Element Node
? (wrapper ? element : c)
: (type === 3) // Text Node
? (notWs.test(c.nodeValue) ? element : wrapper)
: wrapper;
}
return wrapper === element ? undefined : wrapper;
}
/** Given triples of [style, pattern, context] returns a lexing function,
* The lexing function interprets the patterns to find token boundaries and
* returns a decoration list of the form
* [index_0, style_0, index_1, style_1, ..., index_n, style_n]
* where index_n is an index into the sourceCode, and style_n is a style
* constant like PR_PLAIN. index_n-1 <= index_n, and style_n-1 applies to
* all characters in sourceCode[index_n-1:index_n].
*
* The stylePatterns is a list whose elements have the form
* [style : string, pattern : RegExp, DEPRECATED, shortcut : string].
*
* Style is a style constant like PR_PLAIN, or can be a string of the
* form 'lang-FOO', where FOO is a language extension describing the
* language of the portion of the token in $1 after pattern executes.
* E.g., if style is 'lang-lisp', and group 1 contains the text
* '(hello (world))', then that portion of the token will be passed to the
* registered lisp handler for formatting.
* The text before and after group 1 will be restyled using this decorator
* so decorators should take care that this doesn't result in infinite
* recursion. For example, the HTML lexer rule for SCRIPT elements looks
* something like ['lang-js', /<[s]cript>(.+?)<\/script>/]. This may match
* '