@atlaskit/editor-wikimarkup-transformer
Version:
Wiki markup transformer for JIRA and Confluence
100 lines (98 loc) • 3.16 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getSurroundingSymbols = exports.StringBuffer = void 0;
exports.hasAnyOfMarks = hasAnyOfMarks;
exports.isBlank = isBlank;
exports.isDigit = isDigit;
exports.isNotBlank = isNotBlank;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
/**
* Check if the node has certain marks
*/
function hasAnyOfMarks(node, types) {
return node.marks.findIndex(function (m) {
return types.findIndex(function (t) {
return m.type.name === t;
}) !== -1;
}) !== -1;
}
function isDigit(value) {
// Ignored via go/ees005
// eslint-disable-next-line require-unicode-regexp
return !!value.match(/^\d$/);
}
function isBlank(value) {
return value === null || value.trim() === '';
}
function isNotBlank(value) {
return !isBlank(value);
}
/**
* ESS-2375 Returns the beginning and closing symbol to parse a token
*/
var getSurroundingSymbols = exports.getSurroundingSymbols = function getSurroundingSymbols(trimmedInput, openingText, closingText) {
var openingSymbol = trimmedInput.startsWith("{".concat(openingText, "}")) ? "{".concat(openingText, "}") : openingText;
var endIndex = trimmedInput.indexOf(closingText, openingSymbol === "{".concat(openingText, "}") ? openingText.length + 2 : openingText.length);
var closingSymbol = endIndex > -1 && trimmedInput.charAt(endIndex - 1) === '{' && trimmedInput.charAt(endIndex + closingText.length) === '}' ? "{".concat(closingText, "}") : closingText;
return {
openingSymbol: openingSymbol,
closingSymbol: closingSymbol
};
};
var StringBuffer = exports.StringBuffer = /*#__PURE__*/function () {
function StringBuffer() {
var buffer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
(0, _classCallCheck2.default)(this, StringBuffer);
this.buffer = buffer;
}
return (0, _createClass2.default)(StringBuffer, [{
key: "indexOf",
value: function indexOf(value) {
return this.buffer.indexOf(value);
}
}, {
key: "lastIndexOf",
value: function lastIndexOf(value) {
return this.buffer.lastIndexOf(value);
}
}, {
key: "charAt",
value: function charAt(index) {
return this.buffer.charAt(index);
}
}, {
key: "length",
value: function length() {
return this.buffer.length;
}
}, {
key: "delete",
value: function _delete(start, end) {
this.buffer = this.buffer.substring(0, start) + this.buffer.substring(end);
}
}, {
key: "append",
value: function append(value) {
this.buffer += value;
}
}, {
key: "substring",
value: function substring(start, end) {
return this.buffer.substring(start, end);
}
}, {
key: "deleteCharAt",
value: function deleteCharAt(index) {
this.delete(index, index + 1);
}
}, {
key: "toString",
value: function toString() {
return this.buffer;
}
}]);
}();