UNPKG

@iobroker/adapter-react

Version:

React classes to develop admin interfaces for ioBroker with react.

145 lines (120 loc) 3.75 kB
"use strict"; 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/, '&nbsp;')); } 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