@iobroker/adapter-react
Version:
React classes to develop admin interfaces for ioBroker with react.
145 lines (120 loc) • 3.75 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _react = _interopRequireDefault(require("react"));
var _copyToClipboard = _interopRequireDefault(require("./copy-to-clipboard"));
/**
* Copyright 2018-2022 bluefox <dogafox@gmail.com>
*
* MIT License
*
**/
var MDUtils = /*#__PURE__*/function () {
function MDUtils() {
(0, _classCallCheck2["default"])(this, MDUtils);
}
(0, _createClass2["default"])(MDUtils, null, [{
key: "text2link",
value: function text2link(text) {
var m = text.match(/\d+\.\)\s/);
if (m) {
text = text.replace(m[0], m[0].replace(/\s/, ' '));
}
return text.replace(/[^a-zA-Zа-яА-Я0-9]/g, '').trim().replace(/\s/g, '').toLowerCase();
}
}, {
key: "openLink",
value: function openLink(url, target) {
if (target === 'this') {
window.location = url;
} else {
window.open(url, target || '_blank');
}
}
}, {
key: "getTitle",
value: function getTitle(text) {
var _MDUtils$extractHeade = MDUtils.extractHeader(text),
body = _MDUtils$extractHeade.body,
header = _MDUtils$extractHeade.header;
if (!header.title) {
// remove {docsify-bla}
body = body.replace(/{[^}]*}/g, '');
body = body.trim();
var lines = body.replace(/\r/g, '').split('\n');
for (var i = 0; i < lines.length; i++) {
if (lines[i].startsWith('# ')) {
return lines[i].substring(2).trim();
}
}
return '';
} else {
return header.title;
}
}
}, {
key: "extractHeader",
value: function extractHeader(text) {
var attrs = {};
if (text.substring(0, 3) === '---') {
var pos = text.substring(3).indexOf('\n---');
if (pos !== -1) {
var _header = text.substring(3, pos + 3);
var lines = _header.replace(/\r/g, '').split('\n');
lines.forEach(function (line) {
if (!line.trim()) {
return;
}
var pos = line.indexOf(':');
if (pos !== -1) {
var attr = line.substring(0, pos).trim();
attrs[attr] = line.substring(pos + 1).trim();
attrs[attr] = attrs[attr].replace(/^['"]|['"]$/g, '');
if (attrs[attr] === 'true') {
attrs[attr] = true;
} else if (attrs[attr] === 'false') {
attrs[attr] = false;
} else if (parseFloat(attrs[attr]).toString() === attrs[attr]) {
attrs[attr] = parseFloat(attrs[attr]);
}
} else {
attrs[line.trim()] = true;
}
});
text = text.substring(pos + 7);
}
}
return {
header: attrs,
body: text
};
}
}, {
key: "removeDocsify",
value: function removeDocsify(text) {
var m = text.match(/{docsify-[^}]*}/g);
if (m) {
m.forEach(function (doc) {
return text = text.replace(doc, '');
});
}
return text;
}
}, {
key: "onCopy",
value: function onCopy(e, text) {
(0, _copyToClipboard["default"])(text);
e && e.stopPropagation();
e && e.preventDefault();
}
}]);
return MDUtils;
}();
var _default = MDUtils;
exports["default"] = _default;
//# sourceMappingURL=MDUtils.js.map
;