1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.LEAD_CLASS = void 0;
- exports["default"] = isValidCandidate;
- var _constants = require("../constants.js");
- var _util = require("./util.js");
- var _utf = require("./utf-8.js");
- var OPENING_PARENS = "(\\[\uFF08\uFF3B";
- var CLOSING_PARENS = ")\\]\uFF09\uFF3D";
- var NON_PARENS = "[^".concat(OPENING_PARENS).concat(CLOSING_PARENS, "]");
- var LEAD_CLASS = "[".concat(OPENING_PARENS).concat(_constants.PLUS_CHARS, "]");
- exports.LEAD_CLASS = LEAD_CLASS;
- var LEAD_CLASS_LEADING = new RegExp('^' + LEAD_CLASS);
- var BRACKET_PAIR_LIMIT = (0, _util.limit)(0, 3);
- var MATCHING_BRACKETS_ENTIRE = new RegExp('^' + "(?:[" + OPENING_PARENS + "])?" + "(?:" + NON_PARENS + "+" + "[" + CLOSING_PARENS + "])?" + NON_PARENS + "+" + "(?:[" + OPENING_PARENS + "]" + NON_PARENS + "+[" + CLOSING_PARENS + "])" + BRACKET_PAIR_LIMIT + NON_PARENS + "*" + '$');
- var PUB_PAGES = /\d{1,5}-+\d{1,5}\s{0,4}\(\d{1,4}/;
- function isValidCandidate(candidate, offset, text, leniency) {
-
-
- if (!MATCHING_BRACKETS_ENTIRE.test(candidate) || PUB_PAGES.test(candidate)) {
- return;
- }
-
- if (leniency !== 'POSSIBLE') {
-
-
-
- if (offset > 0 && !LEAD_CLASS_LEADING.test(candidate)) {
- var previousChar = text[offset - 1];
- if ((0, _utf.isInvalidPunctuationSymbol)(previousChar) || (0, _utf.isLatinLetter)(previousChar)) {
- return false;
- }
- }
- var lastCharIndex = offset + candidate.length;
- if (lastCharIndex < text.length) {
- var nextChar = text[lastCharIndex];
- if ((0, _utf.isInvalidPunctuationSymbol)(nextChar) || (0, _utf.isLatinLetter)(nextChar)) {
- return false;
- }
- }
- }
- return true;
- }
|