From e563279faff32b0ca359cd373d4d55c85cc08793 Mon Sep 17 00:00:00 2001 From: Daniel Triendl Date: Mon, 3 Oct 2022 09:52:08 +0200 Subject: [PATCH] Bump version to 9.0.3 --- 3CX_TAPI.user.js | 5195 +++++++++++++++++++++++++++++++++++++++++----- package.json | 2 +- 2 files changed, 4685 insertions(+), 512 deletions(-) diff --git a/3CX_TAPI.user.js b/3CX_TAPI.user.js index 5b00897..362bf30 100644 --- a/3CX_TAPI.user.js +++ b/3CX_TAPI.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name 3CX TAPI // @namespace http://cp-solutions.at -// @version 9.0.2 +// @version 9.0.3 // @author Daniel Triendl // @copyright Copyright 2021 CP Solutions GmbH // @source https://source.cp-austria.at/git/CPATRD/3cx_tapi.git @@ -9,8 +9,8 @@ // @match https://192.168.0.154:5001/webclient* // @match https://cpsolution.my3cx.at:5001/webclient* // @require https://cdn.jsdelivr.net/gh/CoeJoder/waitForKeyElements.js@v1.2/waitForKeyElements.js -// @require https://cdn.jsdelivr.net/npm/axios@0.21.1/dist/axios.min.js -// @require https://cdn.jsdelivr.net/npm/axios-userscript-adapter@0.1.4/dist/axiosGmxhrAdapter.min.js +// @require https://cdn.jsdelivr.net/npm/axios@0.27.2/dist/axios.min.js +// @require https://cdn.jsdelivr.net/npm/axios-userscript-adapter@0.1.12/dist/axiosGmxhrAdapter.min.js // @grant GM.xmlHttpRequest // @grant GM.notification // @grant GM.getValue @@ -114,70 +114,6 @@ exports.mergeDateTimeComponent = mergeDateTimeComponent; /***/ }), -/***/ "./node_modules/chrono-node/dist/calculation/weeks.js": -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -"use strict"; - - -var __importDefault = this && this.__importDefault || function (mod) { - return mod && mod.__esModule ? mod : { - "default": mod - }; -}; - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.toDayJSClosestWeekday = exports.toDayJSWeekday = void 0; - -const dayjs_1 = __importDefault(__webpack_require__("./node_modules/dayjs/dayjs.min.js")); - -function toDayJSWeekday(refDate, offset, modifier) { - if (!modifier) { - return toDayJSClosestWeekday(refDate, offset); - } - - let date = dayjs_1.default(refDate); - - switch (modifier) { - case "this": - date = date.day(offset); - break; - - case "next": - date = date.day(offset + 7); - break; - - case "last": - date = date.day(offset - 7); - break; - } - - return date; -} - -exports.toDayJSWeekday = toDayJSWeekday; - -function toDayJSClosestWeekday(refDate, offset) { - let date = dayjs_1.default(refDate); - const refOffset = date.day(); - - if (Math.abs(offset - 7 - refOffset) < Math.abs(offset - refOffset)) { - date = date.day(offset - 7); - } else if (Math.abs(offset + 7 - refOffset) < Math.abs(offset - refOffset)) { - date = date.day(offset + 7); - } else { - date = date.day(offset); - } - - return date; -} - -exports.toDayJSClosestWeekday = toDayJSClosestWeekday; - -/***/ }), - /***/ "./node_modules/chrono-node/dist/calculation/years.js": /***/ (function(__unused_webpack_module, exports, __webpack_require__) { @@ -426,6 +362,106 @@ exports.MergingRefiner = MergingRefiner; /***/ }), +/***/ "./node_modules/chrono-node/dist/common/calculation/weekdays.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.getBackwardDaysToWeekday = exports.getDaysForwardToWeekday = exports.getDaysToWeekdayClosest = exports.getDaysToWeekday = exports.createParsingComponentsAtWeekday = void 0; + +const index_1 = __webpack_require__("./node_modules/chrono-node/dist/index.js"); + +const results_1 = __webpack_require__("./node_modules/chrono-node/dist/results.js"); + +const timeunits_1 = __webpack_require__("./node_modules/chrono-node/dist/utils/timeunits.js"); + +function createParsingComponentsAtWeekday(reference, weekday, modifier) { + const refDate = reference.getDateWithAdjustedTimezone(); + const daysToWeekday = getDaysToWeekday(refDate, weekday, modifier); + let components = new results_1.ParsingComponents(reference); + components = timeunits_1.addImpliedTimeUnits(components, { + "day": daysToWeekday + }); + components.assign("weekday", weekday); + return components; +} + +exports.createParsingComponentsAtWeekday = createParsingComponentsAtWeekday; + +function getDaysToWeekday(refDate, weekday, modifier) { + const refWeekday = refDate.getDay(); + + switch (modifier) { + case "this": + return getDaysForwardToWeekday(refDate, weekday); + + case "last": + return getBackwardDaysToWeekday(refDate, weekday); + + case "next": + if (refWeekday == index_1.Weekday.SUNDAY) { + return weekday == index_1.Weekday.SUNDAY ? 7 : weekday; + } + + if (refWeekday == index_1.Weekday.SATURDAY) { + if (weekday == index_1.Weekday.SATURDAY) return 7; + if (weekday == index_1.Weekday.SUNDAY) return 8; + return 1 + weekday; + } + + if (weekday < refWeekday && weekday != index_1.Weekday.SUNDAY) { + return getDaysForwardToWeekday(refDate, weekday); + } else { + return getDaysForwardToWeekday(refDate, weekday) + 7; + } + + } + + return getDaysToWeekdayClosest(refDate, weekday); +} + +exports.getDaysToWeekday = getDaysToWeekday; + +function getDaysToWeekdayClosest(refDate, weekday) { + const backward = getBackwardDaysToWeekday(refDate, weekday); + const forward = getDaysForwardToWeekday(refDate, weekday); + return forward < -backward ? forward : backward; +} + +exports.getDaysToWeekdayClosest = getDaysToWeekdayClosest; + +function getDaysForwardToWeekday(refDate, weekday) { + const refWeekday = refDate.getDay(); + let forwardCount = weekday - refWeekday; + + if (forwardCount < 0) { + forwardCount += 7; + } + + return forwardCount; +} + +exports.getDaysForwardToWeekday = getDaysForwardToWeekday; + +function getBackwardDaysToWeekday(refDate, weekday) { + const refWeekday = refDate.getDay(); + let backwardCount = weekday - refWeekday; + + if (backwardCount >= 0) { + backwardCount -= 7; + } + + return backwardCount; +} + +exports.getBackwardDaysToWeekday = getBackwardDaysToWeekday; + +/***/ }), + /***/ "./node_modules/chrono-node/dist/common/casualReferences.js": /***/ (function(__unused_webpack_module, exports, __webpack_require__) { @@ -441,7 +477,7 @@ var __importDefault = this && this.__importDefault || function (mod) { Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.tonight = exports.tomorrow = exports.yesterday = exports.today = exports.now = void 0; +exports.noon = exports.morning = exports.midnight = exports.yesterdayEvening = exports.evening = exports.lastNight = exports.tonight = exports.theDayAfter = exports.tomorrow = exports.theDayBefore = exports.yesterday = exports.today = exports.now = void 0; const results_1 = __webpack_require__("./node_modules/chrono-node/dist/results.js"); @@ -456,7 +492,11 @@ function now(reference) { const component = new results_1.ParsingComponents(reference, {}); dayjs_2.assignSimilarDate(component, targetDate); dayjs_2.assignSimilarTime(component, targetDate); - component.assign("timezoneOffset", targetDate.utcOffset()); + + if (reference.timezoneOffset !== null) { + component.assign("timezoneOffset", targetDate.utcOffset()); + } + return component; } @@ -473,24 +513,33 @@ function today(reference) { exports.today = today; function yesterday(reference) { + return theDayBefore(reference, 1); +} + +exports.yesterday = yesterday; + +function theDayBefore(reference, numDay) { + return theDayAfter(reference, -numDay); +} + +exports.theDayBefore = theDayBefore; + +function tomorrow(reference) { + return theDayAfter(reference, 1); +} + +exports.tomorrow = tomorrow; + +function theDayAfter(reference, nDays) { let targetDate = dayjs_1.default(reference.instant); const component = new results_1.ParsingComponents(reference, {}); - targetDate = targetDate.add(-1, "day"); + targetDate = targetDate.add(nDays, "day"); dayjs_2.assignSimilarDate(component, targetDate); dayjs_2.implySimilarTime(component, targetDate); return component; } -exports.yesterday = yesterday; - -function tomorrow(reference) { - const targetDate = dayjs_1.default(reference.instant); - const component = new results_1.ParsingComponents(reference, {}); - dayjs_2.assignTheNextDay(component, targetDate); - return component; -} - -exports.tomorrow = tomorrow; +exports.theDayAfter = theDayAfter; function tonight(reference, implyHour = 22) { const targetDate = dayjs_1.default(reference.instant); @@ -503,6 +552,70 @@ function tonight(reference, implyHour = 22) { exports.tonight = tonight; +function lastNight(reference, implyHour = 0) { + let targetDate = dayjs_1.default(reference.instant); + const component = new results_1.ParsingComponents(reference, {}); + + if (targetDate.hour() < 6) { + targetDate = targetDate.add(-1, "day"); + } + + dayjs_2.assignSimilarDate(component, targetDate); + component.imply("hour", implyHour); + return component; +} + +exports.lastNight = lastNight; + +function evening(reference, implyHour = 20) { + const component = new results_1.ParsingComponents(reference, {}); + component.imply("meridiem", index_1.Meridiem.PM); + component.imply("hour", implyHour); + return component; +} + +exports.evening = evening; + +function yesterdayEvening(reference, implyHour = 20) { + let targetDate = dayjs_1.default(reference.instant); + const component = new results_1.ParsingComponents(reference, {}); + targetDate = targetDate.add(-1, "day"); + dayjs_2.assignSimilarDate(component, targetDate); + component.imply("hour", implyHour); + component.imply("meridiem", index_1.Meridiem.PM); + return component; +} + +exports.yesterdayEvening = yesterdayEvening; + +function midnight(reference) { + const component = new results_1.ParsingComponents(reference, {}); + component.imply("hour", 0); + component.imply("minute", 0); + component.imply("second", 0); + return component; +} + +exports.midnight = midnight; + +function morning(reference, implyHour = 6) { + const component = new results_1.ParsingComponents(reference, {}); + component.imply("meridiem", index_1.Meridiem.AM); + component.imply("hour", implyHour); + return component; +} + +exports.morning = morning; + +function noon(reference) { + const component = new results_1.ParsingComponents(reference, {}); + component.imply("meridiem", index_1.Meridiem.AM); + component.imply("hour", 12); + return component; +} + +exports.noon = noon; + /***/ }), /***/ "./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js": @@ -522,6 +635,10 @@ class AbstractParserWithWordBoundaryChecking { this.cachedPattern = null; } + patternLeftBoundary() { + return `(\\W|^)`; + } + pattern(context) { const innerPattern = this.innerPattern(context); @@ -529,13 +646,15 @@ class AbstractParserWithWordBoundaryChecking { return this.cachedPattern; } - this.cachedPattern = new RegExp(`(\\W|^)${innerPattern.source}`, innerPattern.flags); + this.cachedPattern = new RegExp(`${this.patternLeftBoundary()}${innerPattern.source}`, innerPattern.flags); this.cachedInnerPattern = innerPattern; return this.cachedPattern; } extract(context, match) { - const header = match[1]; + var _a; + + const header = (_a = match[1]) !== null && _a !== void 0 ? _a : ""; match.index = match.index + header.length; match[0] = match[0].substring(header.length); @@ -565,12 +684,12 @@ exports.AbstractTimeExpressionParser = void 0; const index_1 = __webpack_require__("./node_modules/chrono-node/dist/index.js"); -function primaryTimePattern(primaryPrefix, primarySuffix) { - return new RegExp("(^|\\s|T|\\b)" + `${primaryPrefix}` + "(\\d{1,4})" + "(?:" + "(?:\\.|\\:|\\:)" + "(\\d{1,2})" + "(?:" + "(?:\\:|\\:)" + "(\\d{2})" + "(?:\\.(\\d{1,6}))?" + ")?" + ")?" + "(?:\\s*(a\\.m\\.|p\\.m\\.|am?|pm?))?" + `${primarySuffix}`, "i"); +function primaryTimePattern(leftBoundary, primaryPrefix, primarySuffix, flags) { + return new RegExp(`${leftBoundary}` + `${primaryPrefix}` + `(\\d{1,4})` + `(?:` + `(?:\\.|:|:)` + `(\\d{1,2})` + `(?:` + `(?::|:)` + `(\\d{2})` + `(?:\\.(\\d{1,6}))?` + `)?` + `)?` + `(?:\\s*(a\\.m\\.|p\\.m\\.|am?|pm?))?` + `${primarySuffix}`, flags); } function followingTimePatten(followingPhase, followingSuffix) { - return new RegExp(`^(${followingPhase})` + "(\\d{1,4})" + "(?:" + "(?:\\.|\\:|\\:)" + "(\\d{1,2})" + "(?:" + "(?:\\.|\\:|\\:)" + "(\\d{1,2})(?:\\.(\\d{1,6}))?" + ")?" + ")?" + "(?:\\s*(a\\.m\\.|p\\.m\\.|am?|pm?))?" + `${followingSuffix}`, "i"); + return new RegExp(`^(${followingPhase})` + `(\\d{1,4})` + `(?:` + `(?:\\.|\\:|\\:)` + `(\\d{1,2})` + `(?:` + `(?:\\.|\\:|\\:)` + `(\\d{1,2})(?:\\.(\\d{1,6}))?` + `)?` + `)?` + `(?:\\s*(a\\.m\\.|p\\.m\\.|am?|pm?))?` + `${followingSuffix}`, "i"); } const HOUR_GROUP = 2; @@ -590,12 +709,20 @@ class AbstractTimeExpressionParser { this.strictMode = strictMode; } + patternFlags() { + return "i"; + } + + primaryPatternLeftBoundary() { + return `(^|\\s|T|\\b)`; + } + primarySuffix() { - return "(?=\\W|$)"; + return `(?=\\W|$)`; } followingSuffix() { - return "(?=\\W|$)"; + return `(?=\\W|$)`; } pattern(context) { @@ -618,6 +745,10 @@ class AbstractTimeExpressionParser { const followingPattern = this.getFollowingTimePatternThroughCache(); const followingMatch = followingPattern.exec(remainingText); + if (text.match(/^\d{3,4}/) && followingMatch && followingMatch[0].match(/^\s*([+-])\s*\d{2,4}$/)) { + return null; + } + if (!followingMatch || followingMatch[0].match(/^\s*([+-])\s*\d{3,4}$/)) { return this.checkAndReturnWithoutFollowingPattern(result); } @@ -824,6 +955,10 @@ class AbstractTimeExpressionParser { return null; } + if (result.text.match(/^\d\d\d+$/)) { + return null; + } + if (result.text.match(/\d[apAP]$/)) { return null; } @@ -889,7 +1024,7 @@ class AbstractTimeExpressionParser { return this.cachedPrimaryTimePattern; } - this.cachedPrimaryTimePattern = primaryTimePattern(primaryPrefix, primarySuffix); + this.cachedPrimaryTimePattern = primaryTimePattern(this.primaryPatternLeftBoundary(), primaryPrefix, primarySuffix, this.patternFlags()); this.cachedPrimaryPrefix = primaryPrefix; this.cachedPrimarySuffix = primarySuffix; return this.cachedPrimaryTimePattern; @@ -988,7 +1123,7 @@ class ISOFormatParser extends AbstractParserWithWordBoundary_1.AbstractParserWit } -exports.default = ISOFormatParser; +exports["default"] = ISOFormatParser; /***/ }), @@ -1073,7 +1208,7 @@ class SlashDateFormatParser { } -exports.default = SlashDateFormatParser; +exports["default"] = SlashDateFormatParser; /***/ }), @@ -1143,7 +1278,7 @@ class AbstractMergeDateRangeRefiner extends abstractRefiners_1.MergingRefiner { } -exports.default = AbstractMergeDateRangeRefiner; +exports["default"] = AbstractMergeDateRangeRefiner; /***/ }), @@ -1175,7 +1310,7 @@ class ENMergeDateTimeRefiner extends abstractRefiners_1.MergingRefiner { } -exports.default = ENMergeDateTimeRefiner; +exports["default"] = ENMergeDateTimeRefiner; /***/ }), @@ -1410,7 +1545,7 @@ class ExtractTimezoneAbbrRefiner { } context.debug(() => { - console.log(`Extracting timezone: '${timezoneAbbr}' into : ${extractedTimezoneOffset}`); + console.log(`Extracting timezone: '${timezoneAbbr}' into: ${extractedTimezoneOffset} for: ${result.start}`); }); const currentTimezoneOffset = result.start.get("timezoneOffset"); @@ -1424,6 +1559,12 @@ class ExtractTimezoneAbbrRefiner { } } + if (result.start.isOnlyDate()) { + if (timezoneAbbr != match[1]) { + return; + } + } + result.text += match[0]; if (!result.start.isCertain("timezoneOffset")) { @@ -1439,7 +1580,7 @@ class ExtractTimezoneAbbrRefiner { } -exports.default = ExtractTimezoneAbbrRefiner; +exports["default"] = ExtractTimezoneAbbrRefiner; /***/ }), @@ -1452,7 +1593,7 @@ exports.default = ExtractTimezoneAbbrRefiner; Object.defineProperty(exports, "__esModule", ({ value: true })); -const TIMEZONE_OFFSET_PATTERN = new RegExp("^\\s*(?:(?:GMT|UTC)\\s?)?([+-])(\\d{1,2})(?::?(\\d{2}))?", "i"); +const TIMEZONE_OFFSET_PATTERN = new RegExp("^\\s*(?:\\(?(?:GMT|UTC)\\s?)?([+-])(\\d{1,2})(?::?(\\d{2}))?\\)?", "i"); const TIMEZONE_OFFSET_SIGN_GROUP = 1; const TIMEZONE_OFFSET_HOUR_OFFSET_GROUP = 2; const TIMEZONE_OFFSET_MINUTE_OFFSET_GROUP = 3; @@ -1478,6 +1619,10 @@ class ExtractTimezoneOffsetRefiner { const minuteOffset = parseInt(match[TIMEZONE_OFFSET_MINUTE_OFFSET_GROUP] || "0"); let timezoneOffset = hourOffset * 60 + minuteOffset; + if (timezoneOffset > 14 * 60) { + return; + } + if (match[TIMEZONE_OFFSET_SIGN_GROUP] === "-") { timezoneOffset = -timezoneOffset; } @@ -1494,7 +1639,7 @@ class ExtractTimezoneOffsetRefiner { } -exports.default = ExtractTimezoneOffsetRefiner; +exports["default"] = ExtractTimezoneOffsetRefiner; /***/ }), @@ -1542,7 +1687,7 @@ class ForwardDateRefiner { } if (result.start.isOnlyWeekdayComponent() && refMoment.isAfter(result.start.dayjs())) { - if (refMoment.day() > result.start.get("weekday")) { + if (refMoment.day() >= result.start.get("weekday")) { refMoment = refMoment.day(result.start.get("weekday") + 7); } else { refMoment = refMoment.day(result.start.get("weekday")); @@ -1576,7 +1721,7 @@ class ForwardDateRefiner { } -exports.default = ForwardDateRefiner; +exports["default"] = ForwardDateRefiner; /***/ }), @@ -1613,7 +1758,7 @@ class MergeWeekdayComponentRefiner extends abstractRefiners_1.MergingRefiner { } -exports.default = MergeWeekdayComponentRefiner; +exports["default"] = MergeWeekdayComponentRefiner; /***/ }), @@ -1658,7 +1803,7 @@ class OverlapRemovalRefiner { } -exports.default = OverlapRemovalRefiner; +exports["default"] = OverlapRemovalRefiner; /***/ }), @@ -1729,7 +1874,7 @@ class UnlikelyFormatFilter extends abstractRefiners_1.Filter { } -exports.default = UnlikelyFormatFilter; +exports["default"] = UnlikelyFormatFilter; /***/ }), @@ -1821,7 +1966,7 @@ var __importStar = this && this.__importStar || function (mod) { Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.parseDate = exports.parse = exports.casual = exports.strict = exports.nl = exports.pt = exports.ja = exports.fr = exports.de = exports.Meridiem = exports.Chrono = exports.en = void 0; +exports.parseDate = exports.parse = exports.casual = exports.strict = exports.ru = exports.zh = exports.nl = exports.pt = exports.ja = exports.fr = exports.de = exports.Weekday = exports.Meridiem = exports.Chrono = exports.en = void 0; const en = __importStar(__webpack_require__("./node_modules/chrono-node/dist/locales/en/index.js")); @@ -1842,6 +1987,18 @@ var Meridiem; Meridiem[Meridiem["PM"] = 1] = "PM"; })(Meridiem = exports.Meridiem || (exports.Meridiem = {})); +var Weekday; + +(function (Weekday) { + Weekday[Weekday["SUNDAY"] = 0] = "SUNDAY"; + Weekday[Weekday["MONDAY"] = 1] = "MONDAY"; + Weekday[Weekday["TUESDAY"] = 2] = "TUESDAY"; + Weekday[Weekday["WEDNESDAY"] = 3] = "WEDNESDAY"; + Weekday[Weekday["THURSDAY"] = 4] = "THURSDAY"; + Weekday[Weekday["FRIDAY"] = 5] = "FRIDAY"; + Weekday[Weekday["SATURDAY"] = 6] = "SATURDAY"; +})(Weekday = exports.Weekday || (exports.Weekday = {})); + const de = __importStar(__webpack_require__("./node_modules/chrono-node/dist/locales/de/index.js")); exports.de = de; @@ -1861,6 +2018,14 @@ exports.pt = pt; const nl = __importStar(__webpack_require__("./node_modules/chrono-node/dist/locales/nl/index.js")); exports.nl = nl; + +const zh = __importStar(__webpack_require__("./node_modules/chrono-node/dist/locales/zh/index.js")); + +exports.zh = zh; + +const ru = __importStar(__webpack_require__("./node_modules/chrono-node/dist/locales/ru/index.js")); + +exports.ru = ru; exports.strict = en.strict; exports.casual = en.casual; @@ -1911,9 +2076,12 @@ exports.WEEKDAY_DICTIONARY = { }; exports.MONTH_DICTIONARY = { "januar": 1, + "jänner": 1, + "janner": 1, "jan": 1, "jan.": 1, "februar": 2, + "feber": 2, "feb": 2, "feb.": 2, "märz": 3, @@ -1952,6 +2120,10 @@ exports.MONTH_DICTIONARY = { }; exports.INTEGER_WORD_DICTIONARY = { "eins": 1, + "eine": 1, + "einem": 1, + "einen": 1, + "einer": 1, "zwei": 2, "drei": 3, "vier": 4, @@ -1967,30 +2139,38 @@ exports.INTEGER_WORD_DICTIONARY = { "zwoelf": 12 }; exports.TIME_UNIT_DICTIONARY = { - sec: "second", - second: "second", - seconds: "second", + sek: "second", + sekunde: "second", + sekunden: "second", min: "minute", - mins: "minute", minute: "minute", - minutes: "minute", + minuten: "minute", h: "hour", - hr: "hour", - hrs: "hour", - hour: "hour", - hours: "hour", - day: "d", - days: "d", - week: "week", - weeks: "week", - month: "month", - months: "month", - y: "year", - yr: "year", - year: "year", - years: "year" + std: "hour", + stunde: "hour", + stunden: "hour", + tag: "d", + tage: "d", + tagen: "d", + woche: "week", + wochen: "week", + monat: "month", + monate: "month", + monaten: "month", + monats: "month", + quartal: "quarter", + quartals: "quarter", + quartale: "quarter", + quartalen: "quarter", + a: "year", + j: "year", + jr: "year", + jahr: "year", + jahre: "year", + jahren: "year", + jahres: "year" }; -exports.NUMBER_PATTERN = `(?:${pattern_1.matchAnyPattern(exports.INTEGER_WORD_DICTIONARY)}|[0-9]+|[0-9]+\\.[0-9]+|half(?:\\s*an?)?|an?(?:\\s*few)?|few|several|a?\\s*couple\\s*(?:of)?)`; +exports.NUMBER_PATTERN = `(?:${pattern_1.matchAnyPattern(exports.INTEGER_WORD_DICTIONARY)}|[0-9]+|[0-9]+\\.[0-9]+|half(?:\\s*an?)?|an?\\b(?:\\s*few)?|few|several|a?\\s*couple\\s*(?:of)?)`; function parseNumberPattern(match) { const num = match.toLowerCase(); @@ -2013,7 +2193,7 @@ function parseNumberPattern(match) { } exports.parseNumberPattern = parseNumberPattern; -exports.YEAR_PATTERN = `(?:[0-9]{1,4}(?:\\s*[vn]\\.?\\s*C(?:hr)?\\.?)?)`; +exports.YEAR_PATTERN = `(?:[0-9]{1,4}(?:\\s*[vn]\\.?\\s*(?:C(?:hr)?|(?:u\\.?|d\\.?(?:\\s*g\\.?)?)?\\s*Z)\\.?|\\s*(?:u\\.?|d\\.?(?:\\s*g\\.)?)\\s*Z\\.?)?)`; function parseYear(match) { if (/v/i.test(match)) { @@ -2024,6 +2204,10 @@ function parseYear(match) { return parseInt(match.replace(/[^0-9]+/gi, "")); } + if (/z/i.test(match)) { + return parseInt(match.replace(/[^0-9]+/gi, "")); + } + const rawYearNumber = parseInt(match); return years_1.findMostLikelyADYear(rawYearNumber); } @@ -2086,6 +2270,8 @@ const DETimeExpressionParser_1 = __importDefault(__webpack_require__("./node_mod const DEWeekdayParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/de/parsers/DEWeekdayParser.js")); +const DESpecificTimeExpressionParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/de/parsers/DESpecificTimeExpressionParser.js")); + const DEMergeDateRangeRefiner_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/de/refiners/DEMergeDateRangeRefiner.js")); const DEMergeDateTimeRefiner_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/de/refiners/DEMergeDateTimeRefiner.js")); @@ -2096,6 +2282,8 @@ const DECasualTimeParser_1 = __importDefault(__webpack_require__("./node_modules const DEMonthNameLittleEndianParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/de/parsers/DEMonthNameLittleEndianParser.js")); +const DETimeUnitRelativeFormatParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/de/parsers/DETimeUnitRelativeFormatParser.js")); + exports.casual = new chrono_1.Chrono(createCasualConfiguration()); exports.strict = new chrono_1.Chrono(createConfiguration(true)); @@ -2115,6 +2303,7 @@ function createCasualConfiguration(littleEndian = true) { const option = createConfiguration(false, littleEndian); option.parsers.unshift(new DECasualTimeParser_1.default()); option.parsers.unshift(new DECasualDateParser_1.default()); + option.parsers.unshift(new DETimeUnitRelativeFormatParser_1.default()); return option; } @@ -2122,7 +2311,7 @@ exports.createCasualConfiguration = createCasualConfiguration; function createConfiguration(strictMode = true, littleEndian = true) { return configurations_1.includeCommonConfiguration({ - parsers: [new ISOFormatParser_1.default(), new SlashDateFormatParser_1.default(littleEndian), new DETimeExpressionParser_1.default(), new DEMonthNameLittleEndianParser_1.default(), new DEWeekdayParser_1.default()], + parsers: [new ISOFormatParser_1.default(), new SlashDateFormatParser_1.default(littleEndian), new DETimeExpressionParser_1.default(), new DESpecificTimeExpressionParser_1.default(), new DEMonthNameLittleEndianParser_1.default(), new DEWeekdayParser_1.default()], refiners: [new DEMergeDateRangeRefiner_1.default(), new DEMergeDateTimeRefiner_1.default()] }, strictMode); } @@ -2257,7 +2446,7 @@ class DECasualDateParser extends AbstractParserWithWordBoundary_1.AbstractParser } -exports.default = DECasualDateParser; +exports["default"] = DECasualDateParser; /***/ }), @@ -2364,7 +2553,7 @@ class DECasualTimeParser extends AbstractParserWithWordBoundary_1.AbstractParser } -exports.default = DECasualTimeParser; +exports["default"] = DECasualTimeParser; /***/ }), @@ -2431,7 +2620,139 @@ class DEMonthNameLittleEndianParser extends AbstractParserWithWordBoundary_1.Abs } -exports.default = DEMonthNameLittleEndianParser; +exports["default"] = DEMonthNameLittleEndianParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/de/parsers/DESpecificTimeExpressionParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const index_1 = __webpack_require__("./node_modules/chrono-node/dist/index.js"); + +const FIRST_REG_PATTERN = new RegExp("(^|\\s|T)" + "(?:(?:um|von)\\s*)?" + "(\\d{1,2})(?:h|:)?" + "(?:(\\d{1,2})(?:m|:)?)?" + "(?:(\\d{1,2})(?:s)?)?" + "(?:\\s*Uhr)?" + "(?:\\s*(morgens|vormittags|nachmittags|abends|nachts|am\\s+(?:Morgen|Vormittag|Nachmittag|Abend)|in\\s+der\\s+Nacht))?" + "(?=\\W|$)", "i"); +const SECOND_REG_PATTERN = new RegExp("^\\s*(\\-|\\–|\\~|\\〜|bis(?:\\s+um)?|\\?)\\s*" + "(\\d{1,2})(?:h|:)?" + "(?:(\\d{1,2})(?:m|:)?)?" + "(?:(\\d{1,2})(?:s)?)?" + "(?:\\s*Uhr)?" + "(?:\\s*(morgens|vormittags|nachmittags|abends|nachts|am\\s+(?:Morgen|Vormittag|Nachmittag|Abend)|in\\s+der\\s+Nacht))?" + "(?=\\W|$)", "i"); +const HOUR_GROUP = 2; +const MINUTE_GROUP = 3; +const SECOND_GROUP = 4; +const AM_PM_HOUR_GROUP = 5; + +class DESpecificTimeExpressionParser { + pattern(context) { + return FIRST_REG_PATTERN; + } + + extract(context, match) { + const result = context.createParsingResult(match.index + match[1].length, match[0].substring(match[1].length)); + + if (result.text.match(/^\d{4}$/)) { + match.index += match[0].length; + return null; + } + + result.start = DESpecificTimeExpressionParser.extractTimeComponent(result.start.clone(), match); + + if (!result.start) { + match.index += match[0].length; + return null; + } + + const remainingText = context.text.substring(match.index + match[0].length); + const secondMatch = SECOND_REG_PATTERN.exec(remainingText); + + if (secondMatch) { + result.end = DESpecificTimeExpressionParser.extractTimeComponent(result.start.clone(), secondMatch); + + if (result.end) { + result.text += secondMatch[0]; + } + } + + return result; + } + + static extractTimeComponent(extractingComponents, match) { + let hour = 0; + let minute = 0; + let meridiem = null; + hour = parseInt(match[HOUR_GROUP]); + + if (match[MINUTE_GROUP] != null) { + minute = parseInt(match[MINUTE_GROUP]); + } + + if (minute >= 60 || hour > 24) { + return null; + } + + if (hour >= 12) { + meridiem = index_1.Meridiem.PM; + } + + if (match[AM_PM_HOUR_GROUP] != null) { + if (hour > 12) return null; + const ampm = match[AM_PM_HOUR_GROUP].toLowerCase(); + + if (ampm.match(/morgen|vormittag/)) { + meridiem = index_1.Meridiem.AM; + + if (hour == 12) { + hour = 0; + } + } + + if (ampm.match(/nachmittag|abend/)) { + meridiem = index_1.Meridiem.PM; + + if (hour != 12) { + hour += 12; + } + } + + if (ampm.match(/nacht/)) { + if (hour == 12) { + meridiem = index_1.Meridiem.AM; + hour = 0; + } else if (hour < 6) { + meridiem = index_1.Meridiem.AM; + } else { + meridiem = index_1.Meridiem.PM; + hour += 12; + } + } + } + + extractingComponents.assign("hour", hour); + extractingComponents.assign("minute", minute); + + if (meridiem !== null) { + extractingComponents.assign("meridiem", meridiem); + } else { + if (hour < 12) { + extractingComponents.imply("meridiem", index_1.Meridiem.AM); + } else { + extractingComponents.imply("meridiem", index_1.Meridiem.PM); + } + } + + if (match[SECOND_GROUP] != null) { + const second = parseInt(match[SECOND_GROUP]); + if (second >= 60) return null; + extractingComponents.assign("second", second); + } + + return extractingComponents; + } + +} + +exports["default"] = DESpecificTimeExpressionParser; /***/ }), @@ -2447,8 +2768,6 @@ Object.defineProperty(exports, "__esModule", ({ const AbstractTimeExpressionParser_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractTimeExpressionParser.js"); -const index_1 = __webpack_require__("./node_modules/chrono-node/dist/index.js"); - class DETimeExpressionParser extends AbstractTimeExpressionParser_1.AbstractTimeExpressionParser { primaryPrefix() { return "(?:(?:um|von)\\s*)?"; @@ -2458,39 +2777,71 @@ class DETimeExpressionParser extends AbstractTimeExpressionParser_1.AbstractTime return "\\s*(?:\\-|\\–|\\~|\\〜|bis)\\s*"; } - primarySuffix() { - return "(?:\\s*uhr)?(?:\\s*(?:morgens|vormittags|nachmittags|abends|nachts))?(?=\\W|$)"; - } - extractPrimaryTimeComponents(context, match) { - const components = super.extractPrimaryTimeComponents(context, match); - - if (components) { - if (match[0].endsWith("morgens") || match[0].endsWith("vormittags")) { - components.assign("meridiem", index_1.Meridiem.AM); - const hour = components.get("hour"); - - if (hour < 12) { - components.assign("hour", components.get("hour")); - } - } - - if (match[0].endsWith("nachmittags") || match[0].endsWith("abends") || match[0].endsWith("nachts")) { - components.assign("meridiem", index_1.Meridiem.PM); - const hour = components.get("hour"); - - if (hour < 12) { - components.assign("hour", components.get("hour") + 12); - } - } + if (match[0].match(/^\s*\d{4}\s*$/)) { + return null; } - return components; + return super.extractPrimaryTimeComponents(context, match); } } -exports.default = DETimeExpressionParser; +exports["default"] = DETimeExpressionParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/de/parsers/DETimeUnitRelativeFormatParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const constants_1 = __webpack_require__("./node_modules/chrono-node/dist/locales/de/constants.js"); + +const results_1 = __webpack_require__("./node_modules/chrono-node/dist/results.js"); + +const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); + +const timeunits_1 = __webpack_require__("./node_modules/chrono-node/dist/utils/timeunits.js"); + +const pattern_1 = __webpack_require__("./node_modules/chrono-node/dist/utils/pattern.js"); + +class DETimeUnitAgoFormatParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { + constructor() { + super(); + } + + innerPattern() { + return new RegExp(`(?:\\s*((?:nächste|kommende|folgende|letzte|vergangene|vorige|vor(?:her|an)gegangene)(?:s|n|m|r)?|vor|in)\\s*)?` + `(${constants_1.NUMBER_PATTERN})?` + `(?:\\s*(nächste|kommende|folgende|letzte|vergangene|vorige|vor(?:her|an)gegangene)(?:s|n|m|r)?)?` + `\\s*(${pattern_1.matchAnyPattern(constants_1.TIME_UNIT_DICTIONARY)})`, "i"); + } + + innerExtract(context, match) { + const num = match[2] ? constants_1.parseNumberPattern(match[2]) : 1; + const unit = constants_1.TIME_UNIT_DICTIONARY[match[4].toLowerCase()]; + let timeUnits = {}; + timeUnits[unit] = num; + let modifier = match[1] || match[3] || ""; + modifier = modifier.toLowerCase(); + + if (!modifier) { + return; + } + + if (/vor/.test(modifier) || /letzte/.test(modifier) || /vergangen/.test(modifier)) { + timeUnits = timeunits_1.reverseTimeUnits(timeUnits); + } + + return results_1.ParsingComponents.createRelativeFromReference(context.reference, timeUnits); + } + +} + +exports["default"] = DETimeUnitAgoFormatParser; /***/ }), @@ -2510,7 +2861,7 @@ const pattern_1 = __webpack_require__("./node_modules/chrono-node/dist/utils/pat const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); -const weeks_1 = __webpack_require__("./node_modules/chrono-node/dist/calculation/weeks.js"); +const weekdays_1 = __webpack_require__("./node_modules/chrono-node/dist/common/calculation/weekdays.js"); const PATTERN = new RegExp("(?:(?:\\,|\\(|\\()\\s*)?" + "(?:a[mn]\\s*?)?" + "(?:(diese[mn]|letzte[mn]|n(?:ä|ae)chste[mn])\\s*)?" + `(${pattern_1.matchAnyPattern(constants_1.WEEKDAY_DICTIONARY)})` + "(?:\\s*(?:\\,|\\)|\\)))?" + "(?:\\s*(diese|letzte|n(?:ä|ae)chste)\\s*woche)?" + "(?=\\W|$)", "i"); const PREFIX_GROUP = 1; @@ -2540,13 +2891,12 @@ class DEWeekdayParser extends AbstractParserWithWordBoundary_1.AbstractParserWit modifier = "this"; } - const date = weeks_1.toDayJSWeekday(context.refDate, offset, modifier); - return context.createParsingComponents().assign("weekday", offset).imply("day", date.date()).imply("month", date.month() + 1).imply("year", date.year()); + return weekdays_1.createParsingComponentsAtWeekday(context.reference, offset, modifier); } } -exports.default = DEWeekdayParser; +exports["default"] = DEWeekdayParser; /***/ }), @@ -2575,7 +2925,7 @@ class DEMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner_1.default { } -exports.default = DEMergeDateRangeRefiner; +exports["default"] = DEMergeDateRangeRefiner; /***/ }), @@ -2604,7 +2954,7 @@ class DEMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner_1.default { } -exports.default = DEMergeDateTimeRefiner; +exports["default"] = DEMergeDateTimeRefiner; /***/ }), @@ -2766,12 +3116,15 @@ exports.TIME_UNIT_DICTIONARY = { weeks: "week", month: "month", months: "month", + qtr: "quarter", + quarter: "quarter", + quarters: "quarter", y: "year", yr: "year", year: "year", years: "year" }; -exports.NUMBER_PATTERN = `(?:${pattern_1.matchAnyPattern(exports.INTEGER_WORD_DICTIONARY)}|[0-9]+|[0-9]+\\.[0-9]+|half(?:\\s*an?)?|an?(?:\\s*few)?|few|several|a?\\s*couple\\s*(?:of)?)`; +exports.NUMBER_PATTERN = `(?:${pattern_1.matchAnyPattern(exports.INTEGER_WORD_DICTIONARY)}|[0-9]+|[0-9]+\\.[0-9]+|half(?:\\s{0,2}an?)?|an?\\b(?:\\s{0,2}few)?|few|several|a?\\s{0,2}couple\\s{0,2}(?:of)?)`; function parseNumberPattern(match) { const num = match.toLowerCase(); @@ -2808,7 +3161,7 @@ function parseOrdinalNumberPattern(match) { } exports.parseOrdinalNumberPattern = parseOrdinalNumberPattern; -exports.YEAR_PATTERN = `(?:[1-9][0-9]{0,3}\\s*(?:BE|AD|BC|BCE|CE)|[1-2][0-9]{3}|[5-9][0-9])`; +exports.YEAR_PATTERN = `(?:[1-9][0-9]{0,3}\\s{0,2}(?:BE|AD|BC|BCE|CE)|[1-2][0-9]{3}|[5-9][0-9])`; function parseYear(match) { if (/BE/i.test(match)) { @@ -2831,9 +3184,9 @@ function parseYear(match) { } exports.parseYear = parseYear; -const SINGLE_TIME_UNIT_PATTERN = `(${exports.NUMBER_PATTERN})\\s{0,5}(${pattern_1.matchAnyPattern(exports.TIME_UNIT_DICTIONARY)})\\s{0,5}`; +const SINGLE_TIME_UNIT_PATTERN = `(${exports.NUMBER_PATTERN})\\s{0,3}(${pattern_1.matchAnyPattern(exports.TIME_UNIT_DICTIONARY)})`; const SINGLE_TIME_UNIT_REGEX = new RegExp(SINGLE_TIME_UNIT_PATTERN, "i"); -exports.TIME_UNITS_PATTERN = pattern_1.repeatedTimeunitPattern(`(?:(?:about|around)\\s*)?`, SINGLE_TIME_UNIT_PATTERN); +exports.TIME_UNITS_PATTERN = pattern_1.repeatedTimeunitPattern(`(?:(?:about|around)\\s{0,3})?`, SINGLE_TIME_UNIT_PATTERN); function parseTimeUnits(timeunitText) { const fragments = {}; @@ -2842,7 +3195,7 @@ function parseTimeUnits(timeunitText) { while (match) { collectDateTimeFragment(fragments, match); - remainingText = remainingText.substring(match[0].length); + remainingText = remainingText.substring(match[0].length).trim(); match = SINGLE_TIME_UNIT_REGEX.exec(remainingText); } @@ -2914,6 +3267,8 @@ const SlashDateFormatParser_1 = __importDefault(__webpack_require__("./node_modu const ENTimeUnitCasualRelativeFormatParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/en/parsers/ENTimeUnitCasualRelativeFormatParser.js")); +const ENMergeRelativeDateRefiner_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/en/refiners/ENMergeRelativeDateRefiner.js")); + exports.casual = new chrono_1.Chrono(createCasualConfiguration(false)); exports.strict = new chrono_1.Chrono(createConfiguration(true, false)); exports.GB = new chrono_1.Chrono(createConfiguration(false, true)); @@ -2945,7 +3300,7 @@ exports.createCasualConfiguration = createCasualConfiguration; function createConfiguration(strictMode = true, littleEndian = false) { return configurations_1.includeCommonConfiguration({ parsers: [new SlashDateFormatParser_1.default(littleEndian), new ENTimeUnitWithinFormatParser_1.default(), new ENMonthNameLittleEndianParser_1.default(), new ENMonthNameMiddleEndianParser_1.default(), new ENWeekdayParser_1.default(), new ENCasualYearMonthDayParser_1.default(), new ENSlashMonthFormatParser_1.default(), new ENTimeExpressionParser_1.default(strictMode), new ENTimeUnitAgoFormatParser_1.default(strictMode), new ENTimeUnitLaterFormatParser_1.default(strictMode)], - refiners: [new ENMergeDateTimeRefiner_1.default(), new ENMergeDateRangeRefiner_1.default()] + refiners: [new ENMergeRelativeDateRefiner_1.default(), new ENMergeDateTimeRefiner_1.default(), new ENMergeDateRangeRefiner_1.default()] }, strictMode); } @@ -3057,7 +3412,7 @@ class ENCasualDateParser extends AbstractParserWithWordBoundary_1.AbstractParser } -exports.default = ENCasualDateParser; +exports["default"] = ENCasualDateParser; /***/ }), @@ -3085,7 +3440,7 @@ const dayjs_1 = __importDefault(__webpack_require__("./node_modules/dayjs/dayjs. const dayjs_2 = __webpack_require__("./node_modules/chrono-node/dist/utils/dayjs.js"); -const PATTERN = /(?:this)?\s*(morning|afternoon|evening|night|midnight|noon)(?=\W|$)/i; +const PATTERN = /(?:this)?\s{0,3}(morning|afternoon|evening|night|midnight|noon)(?=\W|$)/i; class ENCasualTimeParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { innerPattern() { @@ -3131,7 +3486,7 @@ class ENCasualTimeParser extends AbstractParserWithWordBoundary_1.AbstractParser } -exports.default = ENCasualTimeParser; +exports["default"] = ENCasualTimeParser; /***/ }), @@ -3180,7 +3535,7 @@ class ENCasualYearMonthDayParser extends AbstractParserWithWordBoundary_1.Abstra } -exports.default = ENCasualYearMonthDayParser; +exports["default"] = ENCasualYearMonthDayParser; /***/ }), @@ -3206,7 +3561,7 @@ const pattern_1 = __webpack_require__("./node_modules/chrono-node/dist/utils/pat const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); -const PATTERN = new RegExp("(?:on\\s*?)?" + `(${constants_3.ORDINAL_NUMBER_PATTERN})` + "(?:\\s*" + "(?:to|\\-|\\–|until|through|till|\\s)\\s*" + `(${constants_3.ORDINAL_NUMBER_PATTERN})` + ")?" + "(?:-|/|\\s*(?:of)?\\s*)" + "(" + pattern_1.matchAnyPattern(constants_1.MONTH_DICTIONARY) + ")" + "(?:" + "(?:-|/|,?\\s*)" + `(${constants_2.YEAR_PATTERN}(?![^\\s]\\d))` + ")?" + "(?=\\W|$)", "i"); +const PATTERN = new RegExp(`(?:on\\s{0,3})?` + `(${constants_3.ORDINAL_NUMBER_PATTERN})` + `(?:` + `\\s{0,3}(?:to|\\-|\\–|until|through|till)?\\s{0,3}` + `(${constants_3.ORDINAL_NUMBER_PATTERN})` + ")?" + `(?:-|/|\\s{0,3}(?:of)?\\s{0,3})` + `(${pattern_1.matchAnyPattern(constants_1.MONTH_DICTIONARY)})` + "(?:" + `(?:-|/|,?\\s{0,3})` + `(${constants_2.YEAR_PATTERN}(?![^\\s]\\d))` + ")?" + "(?=\\W|$)", "i"); const DATE_GROUP = 1; const DATE_TO_GROUP = 2; const MONTH_NAME_GROUP = 3; @@ -3249,7 +3604,7 @@ class ENMonthNameLittleEndianParser extends AbstractParserWithWordBoundary_1.Abs } -exports.default = ENMonthNameLittleEndianParser; +exports["default"] = ENMonthNameLittleEndianParser; /***/ }), @@ -3321,7 +3676,7 @@ class ENMonthNameMiddleEndianParser extends AbstractParserWithWordBoundary_1.Abs } -exports.default = ENMonthNameMiddleEndianParser; +exports["default"] = ENMonthNameMiddleEndianParser; /***/ }), @@ -3380,7 +3735,7 @@ class ENMonthNameParser extends AbstractParserWithWordBoundary_1.AbstractParserW } -exports.default = ENMonthNameParser; +exports["default"] = ENMonthNameParser; /***/ }), @@ -3410,7 +3765,7 @@ const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chr const pattern_1 = __webpack_require__("./node_modules/chrono-node/dist/utils/pattern.js"); -const PATTERN = new RegExp(`(this|next|last|past)\\s*(${pattern_1.matchAnyPattern(constants_1.TIME_UNIT_DICTIONARY)})(?=\\s*)` + "(?=\\W|$)", "i"); +const PATTERN = new RegExp(`(this|last|past|next|after\\s*this)\\s*(${pattern_1.matchAnyPattern(constants_1.TIME_UNIT_DICTIONARY)})(?=\\s*)` + "(?=\\W|$)", "i"); const MODIFIER_WORD_GROUP = 1; const RELATIVE_WORD_GROUP = 2; @@ -3424,20 +3779,20 @@ class ENRelativeDateFormatParser extends AbstractParserWithWordBoundary_1.Abstra const unitWord = match[RELATIVE_WORD_GROUP].toLowerCase(); const timeunit = constants_1.TIME_UNIT_DICTIONARY[unitWord]; - if (modifier == "next") { + if (modifier == "next" || modifier.startsWith("after")) { const timeUnits = {}; timeUnits[timeunit] = 1; - return results_1.ParsingComponents.createRelativeFromRefInstant(context.refDate, timeUnits); + return results_1.ParsingComponents.createRelativeFromReference(context.reference, timeUnits); } if (modifier == "last" || modifier == "past") { const timeUnits = {}; timeUnits[timeunit] = -1; - return results_1.ParsingComponents.createRelativeFromRefInstant(context.refDate, timeUnits); + return results_1.ParsingComponents.createRelativeFromReference(context.reference, timeUnits); } const components = context.createParsingComponents(); - let date = dayjs_1.default(context.refDate); + let date = dayjs_1.default(context.reference.instant); if (unitWord.match(/week/i)) { date = date.add(-date.get("d"), "d"); @@ -3462,7 +3817,7 @@ class ENRelativeDateFormatParser extends AbstractParserWithWordBoundary_1.Abstra } -exports.default = ENRelativeDateFormatParser; +exports["default"] = ENRelativeDateFormatParser; /***/ }), @@ -3495,7 +3850,7 @@ class ENSlashMonthFormatParser extends AbstractParserWithWordBoundary_1.Abstract } -exports.default = ENSlashMonthFormatParser; +exports["default"] = ENSlashMonthFormatParser; /***/ }), @@ -3569,7 +3924,7 @@ class ENTimeExpressionParser extends AbstractTimeExpressionParser_1.AbstractTime } -exports.default = ENTimeExpressionParser; +exports["default"] = ENTimeExpressionParser; /***/ }), @@ -3591,8 +3946,8 @@ const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chr const timeunits_1 = __webpack_require__("./node_modules/chrono-node/dist/utils/timeunits.js"); -const PATTERN = new RegExp("" + "(" + constants_1.TIME_UNITS_PATTERN + ")" + "(?:ago|before|earlier)(?=(?:\\W|$))", "i"); -const STRICT_PATTERN = new RegExp("" + "(" + constants_1.TIME_UNITS_PATTERN + ")" + "ago(?=(?:\\W|$))", "i"); +const PATTERN = new RegExp(`(${constants_1.TIME_UNITS_PATTERN})\\s{0,5}(?:ago|before|earlier)(?=(?:\\W|$))`, "i"); +const STRICT_PATTERN = new RegExp(`(${constants_1.TIME_UNITS_PATTERN})\\s{0,5}ago(?=(?:\\W|$))`, "i"); class ENTimeUnitAgoFormatParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { constructor(strictMode) { @@ -3607,12 +3962,12 @@ class ENTimeUnitAgoFormatParser extends AbstractParserWithWordBoundary_1.Abstrac innerExtract(context, match) { const timeUnits = constants_1.parseTimeUnits(match[1]); const outputTimeUnits = timeunits_1.reverseTimeUnits(timeUnits); - return results_1.ParsingComponents.createRelativeFromRefInstant(context.refDate, outputTimeUnits); + return results_1.ParsingComponents.createRelativeFromReference(context.reference, outputTimeUnits); } } -exports.default = ENTimeUnitAgoFormatParser; +exports["default"] = ENTimeUnitAgoFormatParser; /***/ }), @@ -3634,7 +3989,7 @@ const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chr const timeunits_1 = __webpack_require__("./node_modules/chrono-node/dist/utils/timeunits.js"); -const PATTERN = new RegExp(`(this|last|past|next|\\+|-)\\s*(${constants_1.TIME_UNITS_PATTERN})(?=\\W|$)`, "i"); +const PATTERN = new RegExp(`(this|last|past|next|after|\\+|-)\\s*(${constants_1.TIME_UNITS_PATTERN})(?=\\W|$)`, "i"); class ENTimeUnitCasualRelativeFormatParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { innerPattern() { @@ -3653,12 +4008,12 @@ class ENTimeUnitCasualRelativeFormatParser extends AbstractParserWithWordBoundar break; } - return results_1.ParsingComponents.createRelativeFromRefInstant(context.refDate, timeUnits); + return results_1.ParsingComponents.createRelativeFromReference(context.reference, timeUnits); } } -exports.default = ENTimeUnitCasualRelativeFormatParser; +exports["default"] = ENTimeUnitCasualRelativeFormatParser; /***/ }), @@ -3678,7 +4033,7 @@ const results_1 = __webpack_require__("./node_modules/chrono-node/dist/results.j const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); -const PATTERN = new RegExp("" + "(" + constants_1.TIME_UNITS_PATTERN + ")" + "(later|after|from now|henceforth|forward|out)" + "(?=(?:\\W|$))", "i"); +const PATTERN = new RegExp(`(${constants_1.TIME_UNITS_PATTERN})\\s{0,5}(?:later|after|from now|henceforth|forward|out)` + "(?=(?:\\W|$))", "i"); const STRICT_PATTERN = new RegExp("" + "(" + constants_1.TIME_UNITS_PATTERN + ")" + "(later|from now)" + "(?=(?:\\W|$))", "i"); const GROUP_NUM_TIMEUNITS = 1; @@ -3694,12 +4049,12 @@ class ENTimeUnitLaterFormatParser extends AbstractParserWithWordBoundary_1.Abstr innerExtract(context, match) { const fragments = constants_1.parseTimeUnits(match[GROUP_NUM_TIMEUNITS]); - return results_1.ParsingComponents.createRelativeFromRefInstant(context.refDate, fragments); + return results_1.ParsingComponents.createRelativeFromReference(context.reference, fragments); } } -exports.default = ENTimeUnitLaterFormatParser; +exports["default"] = ENTimeUnitLaterFormatParser; /***/ }), @@ -3729,12 +4084,12 @@ class ENTimeUnitWithinFormatParser extends AbstractParserWithWordBoundary_1.Abst innerExtract(context, match) { const timeUnits = constants_1.parseTimeUnits(match[1]); - return results_1.ParsingComponents.createRelativeFromRefInstant(context.refDate, timeUnits); + return results_1.ParsingComponents.createRelativeFromReference(context.reference, timeUnits); } } -exports.default = ENTimeUnitWithinFormatParser; +exports["default"] = ENTimeUnitWithinFormatParser; /***/ }), @@ -3754,7 +4109,7 @@ const pattern_1 = __webpack_require__("./node_modules/chrono-node/dist/utils/pat const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); -const weeks_1 = __webpack_require__("./node_modules/chrono-node/dist/calculation/weeks.js"); +const weekdays_1 = __webpack_require__("./node_modules/chrono-node/dist/common/calculation/weekdays.js"); const PATTERN = new RegExp("(?:(?:\\,|\\(|\\()\\s*)?" + "(?:on\\s*?)?" + "(?:(this|last|past|next)\\s*)?" + `(${pattern_1.matchAnyPattern(constants_1.WEEKDAY_DICTIONARY)})` + "(?:\\s*(?:\\,|\\)|\\)))?" + "(?:\\s*(this|last|past|next)\\s*week)?" + "(?=\\W|$)", "i"); const PREFIX_GROUP = 1; @@ -3768,7 +4123,7 @@ class ENWeekdayParser extends AbstractParserWithWordBoundary_1.AbstractParserWit innerExtract(context, match) { const dayOfWeek = match[WEEKDAY_GROUP].toLowerCase(); - const offset = constants_1.WEEKDAY_DICTIONARY[dayOfWeek]; + const weekday = constants_1.WEEKDAY_DICTIONARY[dayOfWeek]; const prefix = match[PREFIX_GROUP]; const postfix = match[POSTFIX_GROUP]; let modifierWord = prefix || postfix; @@ -3784,13 +4139,12 @@ class ENWeekdayParser extends AbstractParserWithWordBoundary_1.AbstractParserWit modifier = "this"; } - const date = weeks_1.toDayJSWeekday(context.refDate, offset, modifier); - return context.createParsingComponents().assign("weekday", offset).imply("day", date.date()).imply("month", date.month() + 1).imply("year", date.year()); + return weekdays_1.createParsingComponentsAtWeekday(context.reference, weekday, modifier); } } -exports.default = ENWeekdayParser; +exports["default"] = ENWeekdayParser; /***/ }), @@ -3819,7 +4173,7 @@ class ENMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner_1.default { } -exports.default = ENMergeDateRangeRefiner; +exports["default"] = ENMergeDateRangeRefiner; /***/ }), @@ -3848,7 +4202,67 @@ class ENMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner_1.default { } -exports.default = ENMergeDateTimeRefiner; +exports["default"] = ENMergeDateTimeRefiner; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/en/refiners/ENMergeRelativeDateRefiner.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const abstractRefiners_1 = __webpack_require__("./node_modules/chrono-node/dist/common/abstractRefiners.js"); + +const results_1 = __webpack_require__("./node_modules/chrono-node/dist/results.js"); + +const constants_1 = __webpack_require__("./node_modules/chrono-node/dist/locales/en/constants.js"); + +const timeunits_1 = __webpack_require__("./node_modules/chrono-node/dist/utils/timeunits.js"); + +function hasImpliedEarlierReferenceDate(result) { + return result.text.match(/\s+(before|from)$/i) != null; +} + +function hasImpliedLaterReferenceDate(result) { + return result.text.match(/\s+(after|since)$/i) != null; +} + +class ENMergeRelativeDateRefiner extends abstractRefiners_1.MergingRefiner { + patternBetween() { + return /^\s*$/i; + } + + shouldMergeResults(textBetween, currentResult, nextResult) { + if (!textBetween.match(this.patternBetween())) { + return false; + } + + if (!hasImpliedEarlierReferenceDate(currentResult) && !hasImpliedLaterReferenceDate(currentResult)) { + return false; + } + + return !!nextResult.start.get("day") && !!nextResult.start.get("month") && !!nextResult.start.get("year"); + } + + mergeResults(textBetween, currentResult, nextResult) { + let timeUnits = constants_1.parseTimeUnits(currentResult.text); + + if (hasImpliedEarlierReferenceDate(currentResult)) { + timeUnits = timeunits_1.reverseTimeUnits(timeUnits); + } + + const components = results_1.ParsingComponents.createRelativeFromReference(new results_1.ReferenceWithTimezone(nextResult.start.date()), timeUnits); + return new results_1.ParsingResult(nextResult.reference, currentResult.index, `${currentResult.text}${textBetween}${nextResult.text}`, components); + } + +} + +exports["default"] = ENMergeRelativeDateRefiner; /***/ }), @@ -3961,7 +4375,7 @@ exports.TIME_UNIT_DICTIONARY = { "année": "year", "années": "year" }; -exports.NUMBER_PATTERN = `(?:${pattern_1.matchAnyPattern(exports.INTEGER_WORD_DICTIONARY)}|[0-9]+|[0-9]+\\.[0-9]+|une?|quelques?|demi-?)`; +exports.NUMBER_PATTERN = `(?:${pattern_1.matchAnyPattern(exports.INTEGER_WORD_DICTIONARY)}|[0-9]+|[0-9]+\\.[0-9]+|une?\\b|quelques?|demi-?)`; function parseNumberPattern(match) { const num = match.toLowerCase(); @@ -4224,7 +4638,7 @@ class FRCasualDateParser extends AbstractParserWithWordBoundary_1.AbstractParser } -exports.default = FRCasualDateParser; +exports["default"] = FRCasualDateParser; /***/ }), @@ -4288,7 +4702,7 @@ class FRCasualTimeParser extends AbstractParserWithWordBoundary_1.AbstractParser } -exports.default = FRCasualTimeParser; +exports["default"] = FRCasualTimeParser; /***/ }), @@ -4357,7 +4771,7 @@ class FRMonthNameLittleEndianParser extends AbstractParserWithWordBoundary_1.Abs } -exports.default = FRMonthNameLittleEndianParser; +exports["default"] = FRMonthNameLittleEndianParser; /***/ }), @@ -4477,7 +4891,7 @@ class FRSpecificTimeExpressionParser { } -exports.default = FRSpecificTimeExpressionParser; +exports["default"] = FRSpecificTimeExpressionParser; /***/ }), @@ -4512,7 +4926,7 @@ class FRTimeExpressionParser extends AbstractTimeExpressionParser_1.AbstractTime } -exports.default = FRTimeExpressionParser; +exports["default"] = FRTimeExpressionParser; /***/ }), @@ -4546,12 +4960,12 @@ class FRTimeUnitAgoFormatParser extends AbstractParserWithWordBoundary_1.Abstrac innerExtract(context, match) { const timeUnits = constants_1.parseTimeUnits(match[1]); const outputTimeUnits = timeunits_1.reverseTimeUnits(timeUnits); - return results_1.ParsingComponents.createRelativeFromRefInstant(context.refDate, outputTimeUnits); + return results_1.ParsingComponents.createRelativeFromReference(context.reference, outputTimeUnits); } } -exports.default = FRTimeUnitAgoFormatParser; +exports["default"] = FRTimeUnitAgoFormatParser; /***/ }), @@ -4600,12 +5014,12 @@ class FRTimeUnitAgoFormatParser extends AbstractParserWithWordBoundary_1.Abstrac timeUnits = timeunits_1.reverseTimeUnits(timeUnits); } - return results_1.ParsingComponents.createRelativeFromRefInstant(context.refDate, timeUnits); + return results_1.ParsingComponents.createRelativeFromReference(context.reference, timeUnits); } } -exports.default = FRTimeUnitAgoFormatParser; +exports["default"] = FRTimeUnitAgoFormatParser; /***/ }), @@ -4627,17 +5041,17 @@ const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chr class FRTimeUnitWithinFormatParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { innerPattern() { - return new RegExp(`(?:dans|en|pour|pendant)\\s*(${constants_1.TIME_UNITS_PATTERN})(?=\\W|$)`, "i"); + return new RegExp(`(?:dans|en|pour|pendant|de)\\s*(${constants_1.TIME_UNITS_PATTERN})(?=\\W|$)`, "i"); } innerExtract(context, match) { const timeUnits = constants_1.parseTimeUnits(match[1]); - return results_1.ParsingComponents.createRelativeFromRefInstant(context.refDate, timeUnits); + return results_1.ParsingComponents.createRelativeFromReference(context.reference, timeUnits); } } -exports.default = FRTimeUnitWithinFormatParser; +exports["default"] = FRTimeUnitWithinFormatParser; /***/ }), @@ -4657,7 +5071,7 @@ const pattern_1 = __webpack_require__("./node_modules/chrono-node/dist/utils/pat const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); -const weeks_1 = __webpack_require__("./node_modules/chrono-node/dist/calculation/weeks.js"); +const weekdays_1 = __webpack_require__("./node_modules/chrono-node/dist/common/calculation/weekdays.js"); const PATTERN = new RegExp("(?:(?:\\,|\\(|\\()\\s*)?" + "(?:(?:ce)\\s*)?" + `(${pattern_1.matchAnyPattern(constants_1.WEEKDAY_DICTIONARY)})` + "(?:\\s*(?:\\,|\\)|\\)))?" + "(?:\\s*(dernier|prochain)\\s*)?" + "(?=\\W|\\d|$)", "i"); const WEEKDAY_GROUP = 1; @@ -4670,9 +5084,9 @@ class FRWeekdayParser extends AbstractParserWithWordBoundary_1.AbstractParserWit innerExtract(context, match) { const dayOfWeek = match[WEEKDAY_GROUP].toLowerCase(); - const offset = constants_1.WEEKDAY_DICTIONARY[dayOfWeek]; + const weekday = constants_1.WEEKDAY_DICTIONARY[dayOfWeek]; - if (offset === undefined) { + if (weekday === undefined) { return null; } @@ -4687,13 +5101,12 @@ class FRWeekdayParser extends AbstractParserWithWordBoundary_1.AbstractParserWit modifier = "next"; } - const date = weeks_1.toDayJSWeekday(context.refDate, offset, modifier); - return context.createParsingComponents().assign("weekday", offset).imply("day", date.date()).imply("month", date.month() + 1).imply("year", date.year()); + return weekdays_1.createParsingComponentsAtWeekday(context.reference, weekday, modifier); } } -exports.default = FRWeekdayParser; +exports["default"] = FRWeekdayParser; /***/ }), @@ -4722,7 +5135,7 @@ class FRMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner_1.default { } -exports.default = FRMergeDateRangeRefiner; +exports["default"] = FRMergeDateRangeRefiner; /***/ }), @@ -4751,7 +5164,7 @@ class FRMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner_1.default { } -exports.default = FRMergeDateTimeRefiner; +exports["default"] = FRMergeDateTimeRefiner; /***/ }), @@ -4931,7 +5344,7 @@ class JPCasualDateParser { } -exports.default = JPCasualDateParser; +exports["default"] = JPCasualDateParser; /***/ }), @@ -5006,7 +5419,7 @@ class JPStandardParser { } -exports.default = JPStandardParser; +exports["default"] = JPStandardParser; /***/ }), @@ -5035,7 +5448,7 @@ class JPMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner_1.default { } -exports.default = JPMergeDateRangeRefiner; +exports["default"] = JPMergeDateRangeRefiner; /***/ }), @@ -5181,11 +5594,14 @@ exports.TIME_UNIT_DICTIONARY = { min: "minute", mins: "minute", minute: "minute", + minuut: "minute", minuten: "minute", + minuutje: "minute", h: "hour", hr: "hour", hrs: "hour", uur: "hour", + u: "hour", uren: "hour", dag: "d", dagen: "d", @@ -5197,20 +5613,20 @@ exports.TIME_UNIT_DICTIONARY = { jr: "year", jaren: "year" }; -exports.NUMBER_PATTERN = `(?:${pattern_1.matchAnyPattern(exports.INTEGER_WORD_DICTIONARY)}|[0-9]+|[0-9]+\\.[0-9]+|een?|halve?)`; +exports.NUMBER_PATTERN = `(?:${pattern_1.matchAnyPattern(exports.INTEGER_WORD_DICTIONARY)}|[0-9]+|[0-9]+[\\.,][0-9]+|halve?|half|paar)`; function parseNumberPattern(match) { const num = match.toLowerCase(); if (exports.INTEGER_WORD_DICTIONARY[num] !== undefined) { return exports.INTEGER_WORD_DICTIONARY[num]; - } else if (num === "een") { - return 1; - } else if (num.match(/halve?/)) { + } else if (num === "paar") { + return 2; + } else if (num === "half" || num.match(/halve?/)) { return 0.5; } - return parseFloat(num); + return parseFloat(num.replace(",", ".")); } exports.parseNumberPattern = parseNumberPattern; @@ -5321,6 +5737,14 @@ const NLCasualYearMonthDayParser_1 = __importDefault(__webpack_require__("./node const NLCasualDateTimeParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/nl/parsers/NLCasualDateTimeParser.js")); +const NLTimeUnitCasualRelativeFormatParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/nl/parsers/NLTimeUnitCasualRelativeFormatParser.js")); + +const NLRelativeDateFormatParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/nl/parsers/NLRelativeDateFormatParser.js")); + +const NLTimeUnitAgoFormatParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/nl/parsers/NLTimeUnitAgoFormatParser.js")); + +const NLTimeUnitLaterFormatParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/nl/parsers/NLTimeUnitLaterFormatParser.js")); + exports.casual = new chrono_1.Chrono(createCasualConfiguration()); exports.strict = new chrono_1.Chrono(createConfiguration(true)); @@ -5341,6 +5765,9 @@ function createCasualConfiguration(littleEndian = true) { option.parsers.unshift(new NLCasualDateParser_1.default()); option.parsers.unshift(new NLCasualTimeParser_1.default()); option.parsers.unshift(new NLCasualDateTimeParser_1.default()); + option.parsers.unshift(new NLMonthNameParser_1.default()); + option.parsers.unshift(new NLRelativeDateFormatParser_1.default()); + option.parsers.unshift(new NLTimeUnitCasualRelativeFormatParser_1.default()); return option; } @@ -5348,7 +5775,7 @@ exports.createCasualConfiguration = createCasualConfiguration; function createConfiguration(strictMode = true, littleEndian = true) { return configurations_1.includeCommonConfiguration({ - parsers: [new SlashDateFormatParser_1.default(littleEndian), new NLMonthNameMiddleEndianParser_1.default(), new NLMonthNameParser_1.default(), new NLTimeExpressionParser_1.default(), new NLTimeUnitWithinFormatParser_1.default(), new NLSlashMonthFormatParser_1.default(), new NLWeekdayParser_1.default(), new NLCasualYearMonthDayParser_1.default()], + parsers: [new SlashDateFormatParser_1.default(littleEndian), new NLTimeUnitWithinFormatParser_1.default(), new NLMonthNameMiddleEndianParser_1.default(), new NLMonthNameParser_1.default(), new NLWeekdayParser_1.default(), new NLCasualYearMonthDayParser_1.default(), new NLSlashMonthFormatParser_1.default(), new NLTimeExpressionParser_1.default(strictMode), new NLTimeUnitAgoFormatParser_1.default(strictMode), new NLTimeUnitLaterFormatParser_1.default(strictMode)], refiners: [new NLMergeDateTimeRefiner_1.default(), new NLMergeDateRangeRefiner_1.default()] }, strictMode); } @@ -5432,7 +5859,7 @@ class NLCasualDateParser extends AbstractParserWithWordBoundary_1.AbstractParser } -exports.default = NLCasualDateParser; +exports["default"] = NLCasualDateParser; /***/ }), @@ -5515,7 +5942,7 @@ class NLCasualDateTimeParser extends AbstractParserWithWordBoundary_1.AbstractPa } -exports.default = NLCasualDateTimeParser; +exports["default"] = NLCasualDateTimeParser; /***/ }), @@ -5599,7 +6026,7 @@ class NLCasualTimeParser extends AbstractParserWithWordBoundary_1.AbstractParser } -exports.default = NLCasualTimeParser; +exports["default"] = NLCasualTimeParser; /***/ }), @@ -5648,7 +6075,7 @@ class NLCasualYearMonthDayParser extends AbstractParserWithWordBoundary_1.Abstra } -exports.default = NLCasualYearMonthDayParser; +exports["default"] = NLCasualYearMonthDayParser; /***/ }), @@ -5721,7 +6148,7 @@ class NLMonthNameMiddleEndianParser extends AbstractParserWithWordBoundary_1.Abs } -exports.default = NLMonthNameMiddleEndianParser; +exports["default"] = NLMonthNameMiddleEndianParser; /***/ }), @@ -5774,7 +6201,89 @@ class NLMonthNameParser extends AbstractParserWithWordBoundary_1.AbstractParserW } -exports.default = NLMonthNameParser; +exports["default"] = NLMonthNameParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/nl/parsers/NLRelativeDateFormatParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +var __importDefault = this && this.__importDefault || function (mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; +}; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const constants_1 = __webpack_require__("./node_modules/chrono-node/dist/locales/nl/constants.js"); + +const results_1 = __webpack_require__("./node_modules/chrono-node/dist/results.js"); + +const dayjs_1 = __importDefault(__webpack_require__("./node_modules/dayjs/dayjs.min.js")); + +const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); + +const pattern_1 = __webpack_require__("./node_modules/chrono-node/dist/utils/pattern.js"); + +const PATTERN = new RegExp(`(dit|deze|komende|volgend|volgende|afgelopen|vorige)\\s*(${pattern_1.matchAnyPattern(constants_1.TIME_UNIT_DICTIONARY)})(?=\\s*)` + "(?=\\W|$)", "i"); +const MODIFIER_WORD_GROUP = 1; +const RELATIVE_WORD_GROUP = 2; + +class NLRelativeDateFormatParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { + innerPattern() { + return PATTERN; + } + + innerExtract(context, match) { + const modifier = match[MODIFIER_WORD_GROUP].toLowerCase(); + const unitWord = match[RELATIVE_WORD_GROUP].toLowerCase(); + const timeunit = constants_1.TIME_UNIT_DICTIONARY[unitWord]; + + if (modifier == "volgend" || modifier == "volgende" || modifier == "komende") { + const timeUnits = {}; + timeUnits[timeunit] = 1; + return results_1.ParsingComponents.createRelativeFromReference(context.reference, timeUnits); + } + + if (modifier == "afgelopen" || modifier == "vorige") { + const timeUnits = {}; + timeUnits[timeunit] = -1; + return results_1.ParsingComponents.createRelativeFromReference(context.reference, timeUnits); + } + + const components = context.createParsingComponents(); + let date = dayjs_1.default(context.reference.instant); + + if (unitWord.match(/week/i)) { + date = date.add(-date.get("d"), "d"); + components.imply("day", date.date()); + components.imply("month", date.month() + 1); + components.imply("year", date.year()); + } else if (unitWord.match(/maand/i)) { + date = date.add(-date.date() + 1, "d"); + components.imply("day", date.date()); + components.assign("year", date.year()); + components.assign("month", date.month() + 1); + } else if (unitWord.match(/jaar/i)) { + date = date.add(-date.date() + 1, "d"); + date = date.add(-date.month(), "month"); + components.imply("day", date.date()); + components.imply("month", date.month() + 1); + components.assign("year", date.year()); + } + + return components; + } + +} + +exports["default"] = NLRelativeDateFormatParser; /***/ }), @@ -5807,7 +6316,7 @@ class NLSlashMonthFormatParser extends AbstractParserWithWordBoundary_1.Abstract } -exports.default = NLSlashMonthFormatParser; +exports["default"] = NLSlashMonthFormatParser; /***/ }), @@ -5832,6 +6341,10 @@ class NLTimeExpressionParser extends AbstractTimeExpressionParser_1.AbstractTime return "\\s*(?:\\-|\\–|\\~|\\〜|om|\\?)\\s*"; } + primarySuffix() { + return "(?:\\s*(?:uur))?(?!/)(?=\\W|$)"; + } + extractPrimaryTimeComponents(context, match) { if (match[0].match(/^\s*\d{4}\s*$/)) { return null; @@ -5842,7 +6355,137 @@ class NLTimeExpressionParser extends AbstractTimeExpressionParser_1.AbstractTime } -exports.default = NLTimeExpressionParser; +exports["default"] = NLTimeExpressionParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/nl/parsers/NLTimeUnitAgoFormatParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const constants_1 = __webpack_require__("./node_modules/chrono-node/dist/locales/nl/constants.js"); + +const results_1 = __webpack_require__("./node_modules/chrono-node/dist/results.js"); + +const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); + +const timeunits_1 = __webpack_require__("./node_modules/chrono-node/dist/utils/timeunits.js"); + +const PATTERN = new RegExp("" + "(" + constants_1.TIME_UNITS_PATTERN + ")" + "(?:geleden|voor|eerder)(?=(?:\\W|$))", "i"); +const STRICT_PATTERN = new RegExp("" + "(" + constants_1.TIME_UNITS_PATTERN + ")" + "geleden(?=(?:\\W|$))", "i"); + +class NLTimeUnitAgoFormatParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { + constructor(strictMode) { + super(); + this.strictMode = strictMode; + } + + innerPattern() { + return this.strictMode ? STRICT_PATTERN : PATTERN; + } + + innerExtract(context, match) { + const timeUnits = constants_1.parseTimeUnits(match[1]); + const outputTimeUnits = timeunits_1.reverseTimeUnits(timeUnits); + return results_1.ParsingComponents.createRelativeFromReference(context.reference, outputTimeUnits); + } + +} + +exports["default"] = NLTimeUnitAgoFormatParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/nl/parsers/NLTimeUnitCasualRelativeFormatParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const constants_1 = __webpack_require__("./node_modules/chrono-node/dist/locales/nl/constants.js"); + +const results_1 = __webpack_require__("./node_modules/chrono-node/dist/results.js"); + +const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); + +const timeunits_1 = __webpack_require__("./node_modules/chrono-node/dist/utils/timeunits.js"); + +const PATTERN = new RegExp(`(deze|vorige|afgelopen|komende|over|\\+|-)\\s*(${constants_1.TIME_UNITS_PATTERN})(?=\\W|$)`, "i"); + +class NLTimeUnitCasualRelativeFormatParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { + innerPattern() { + return PATTERN; + } + + innerExtract(context, match) { + const prefix = match[1].toLowerCase(); + let timeUnits = constants_1.parseTimeUnits(match[2]); + + switch (prefix) { + case "vorige": + case "afgelopen": + case "-": + timeUnits = timeunits_1.reverseTimeUnits(timeUnits); + break; + } + + return results_1.ParsingComponents.createRelativeFromReference(context.reference, timeUnits); + } + +} + +exports["default"] = NLTimeUnitCasualRelativeFormatParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/nl/parsers/NLTimeUnitLaterFormatParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const constants_1 = __webpack_require__("./node_modules/chrono-node/dist/locales/nl/constants.js"); + +const results_1 = __webpack_require__("./node_modules/chrono-node/dist/results.js"); + +const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); + +const PATTERN = new RegExp("" + "(" + constants_1.TIME_UNITS_PATTERN + ")" + "(later|na|vanaf nu|voortaan|vooruit|uit)" + "(?=(?:\\W|$))", "i"); +const STRICT_PATTERN = new RegExp("" + "(" + constants_1.TIME_UNITS_PATTERN + ")" + "(later|vanaf nu)" + "(?=(?:\\W|$))", "i"); +const GROUP_NUM_TIMEUNITS = 1; + +class NLTimeUnitLaterFormatParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { + constructor(strictMode) { + super(); + this.strictMode = strictMode; + } + + innerPattern() { + return this.strictMode ? STRICT_PATTERN : PATTERN; + } + + innerExtract(context, match) { + const fragments = constants_1.parseTimeUnits(match[GROUP_NUM_TIMEUNITS]); + return results_1.ParsingComponents.createRelativeFromReference(context.reference, fragments); + } + +} + +exports["default"] = NLTimeUnitLaterFormatParser; /***/ }), @@ -5869,12 +6512,12 @@ class NLTimeUnitWithinFormatParser extends AbstractParserWithWordBoundary_1.Abst innerExtract(context, match) { const timeUnits = constants_1.parseTimeUnits(match[1]); - return results_1.ParsingComponents.createRelativeFromRefInstant(context.refDate, timeUnits); + return results_1.ParsingComponents.createRelativeFromReference(context.reference, timeUnits); } } -exports.default = NLTimeUnitWithinFormatParser; +exports["default"] = NLTimeUnitWithinFormatParser; /***/ }), @@ -5894,7 +6537,7 @@ const pattern_1 = __webpack_require__("./node_modules/chrono-node/dist/utils/pat const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); -const weeks_1 = __webpack_require__("./node_modules/chrono-node/dist/calculation/weeks.js"); +const weekdays_1 = __webpack_require__("./node_modules/chrono-node/dist/common/calculation/weekdays.js"); const PATTERN = new RegExp("(?:(?:\\,|\\(|\\()\\s*)?" + "(?:op\\s*?)?" + "(?:(deze|vorige|volgende)\\s*(?:week\\s*)?)?" + `(${pattern_1.matchAnyPattern(constants_1.WEEKDAY_DICTIONARY)})` + "(?=\\W|$)", "i"); const PREFIX_GROUP = 1; @@ -5908,7 +6551,7 @@ class NLWeekdayParser extends AbstractParserWithWordBoundary_1.AbstractParserWit innerExtract(context, match) { const dayOfWeek = match[WEEKDAY_GROUP].toLowerCase(); - const offset = constants_1.WEEKDAY_DICTIONARY[dayOfWeek]; + const weekday = constants_1.WEEKDAY_DICTIONARY[dayOfWeek]; const prefix = match[PREFIX_GROUP]; const postfix = match[POSTFIX_GROUP]; let modifierWord = prefix || postfix; @@ -5924,13 +6567,12 @@ class NLWeekdayParser extends AbstractParserWithWordBoundary_1.AbstractParserWit modifier = "this"; } - const date = weeks_1.toDayJSWeekday(context.refDate, offset, modifier); - return context.createParsingComponents().assign("weekday", offset).imply("day", date.date()).imply("month", date.month() + 1).imply("year", date.year()); + return weekdays_1.createParsingComponentsAtWeekday(context.reference, weekday, modifier); } } -exports.default = NLWeekdayParser; +exports["default"] = NLWeekdayParser; /***/ }), @@ -5959,7 +6601,7 @@ class NLMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner_1.default { } -exports.default = NLMergeDateRangeRefiner; +exports["default"] = NLMergeDateRangeRefiner; /***/ }), @@ -5988,7 +6630,7 @@ class NLMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner_1.default { } -exports.default = NLMergeDateTimeRefiner; +exports["default"] = NLMergeDateTimeRefiner; /***/ }), @@ -6238,7 +6880,7 @@ class PTCasualDateParser extends AbstractParserWithWordBoundary_1.AbstractParser } -exports.default = PTCasualDateParser; +exports["default"] = PTCasualDateParser; /***/ }), @@ -6310,7 +6952,7 @@ class PTCasualTimeParser extends AbstractParserWithWordBoundary_1.AbstractParser } -exports.default = PTCasualTimeParser; +exports["default"] = PTCasualTimeParser; /***/ }), @@ -6377,7 +7019,7 @@ class PTMonthNameLittleEndianParser extends AbstractParserWithWordBoundary_1.Abs } -exports.default = PTMonthNameLittleEndianParser; +exports["default"] = PTMonthNameLittleEndianParser; /***/ }), @@ -6404,7 +7046,7 @@ class PTTimeExpressionParser extends AbstractTimeExpressionParser_1.AbstractTime } -exports.default = PTTimeExpressionParser; +exports["default"] = PTTimeExpressionParser; /***/ }), @@ -6424,7 +7066,7 @@ const pattern_1 = __webpack_require__("./node_modules/chrono-node/dist/utils/pat const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); -const weeks_1 = __webpack_require__("./node_modules/chrono-node/dist/calculation/weeks.js"); +const weekdays_1 = __webpack_require__("./node_modules/chrono-node/dist/common/calculation/weekdays.js"); const PATTERN = new RegExp("(?:(?:\\,|\\(|\\()\\s*)?" + "(?:(este|esta|passado|pr[oó]ximo)\\s*)?" + `(${pattern_1.matchAnyPattern(constants_1.WEEKDAY_DICTIONARY)})` + "(?:\\s*(?:\\,|\\)|\\)))?" + "(?:\\s*(este|esta|passado|pr[óo]ximo)\\s*semana)?" + "(?=\\W|\\d|$)", "i"); const PREFIX_GROUP = 1; @@ -6438,9 +7080,9 @@ class PTWeekdayParser extends AbstractParserWithWordBoundary_1.AbstractParserWit innerExtract(context, match) { const dayOfWeek = match[WEEKDAY_GROUP].toLowerCase(); - const offset = constants_1.WEEKDAY_DICTIONARY[dayOfWeek]; + const weekday = constants_1.WEEKDAY_DICTIONARY[dayOfWeek]; - if (offset === undefined) { + if (weekday === undefined) { return null; } @@ -6458,13 +7100,12 @@ class PTWeekdayParser extends AbstractParserWithWordBoundary_1.AbstractParserWit modifier = "this"; } - const date = weeks_1.toDayJSWeekday(context.refDate, offset, modifier); - return context.createParsingComponents().assign("weekday", offset).imply("day", date.date()).imply("month", date.month() + 1).imply("year", date.year()); + return weekdays_1.createParsingComponentsAtWeekday(context.reference, weekday, modifier); } } -exports.default = PTWeekdayParser; +exports["default"] = PTWeekdayParser; /***/ }), @@ -6493,7 +7134,7 @@ class PTMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner_1.default { } -exports.default = PTMergeDateRangeRefiner; +exports["default"] = PTMergeDateRangeRefiner; /***/ }), @@ -6522,7 +7163,3388 @@ class PTMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner_1.default { } -exports.default = PTMergeDateTimeRefiner; +exports["default"] = PTMergeDateTimeRefiner; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/ru/constants.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.parseTimeUnits = exports.TIME_UNITS_PATTERN = exports.parseYear = exports.YEAR_PATTERN = exports.parseOrdinalNumberPattern = exports.ORDINAL_NUMBER_PATTERN = exports.parseNumberPattern = exports.NUMBER_PATTERN = exports.TIME_UNIT_DICTIONARY = exports.ORDINAL_WORD_DICTIONARY = exports.INTEGER_WORD_DICTIONARY = exports.MONTH_DICTIONARY = exports.FULL_MONTH_NAME_DICTIONARY = exports.WEEKDAY_DICTIONARY = exports.REGEX_PARTS = void 0; + +const pattern_1 = __webpack_require__("./node_modules/chrono-node/dist/utils/pattern.js"); + +const years_1 = __webpack_require__("./node_modules/chrono-node/dist/calculation/years.js"); + +exports.REGEX_PARTS = { + leftBoundary: "([^\\p{L}\\p{N}_]|^)", + rightBoundary: "(?=[^\\p{L}\\p{N}_]|$)", + flags: "iu" +}; +exports.WEEKDAY_DICTIONARY = { + воскресенье: 0, + воскресенья: 0, + вск: 0, + "вск.": 0, + понедельник: 1, + понедельника: 1, + пн: 1, + "пн.": 1, + вторник: 2, + вторника: 2, + вт: 2, + "вт.": 2, + среда: 3, + среды: 3, + среду: 3, + ср: 3, + "ср.": 3, + четверг: 4, + четверга: 4, + чт: 4, + "чт.": 4, + пятница: 5, + пятницу: 5, + пятницы: 5, + пт: 5, + "пт.": 5, + суббота: 6, + субботу: 6, + субботы: 6, + сб: 6, + "сб.": 6 +}; +exports.FULL_MONTH_NAME_DICTIONARY = { + январь: 1, + января: 1, + январе: 1, + февраль: 2, + февраля: 2, + феврале: 2, + март: 3, + марта: 3, + марте: 3, + апрель: 4, + апреля: 4, + апреле: 4, + май: 5, + мая: 5, + мае: 5, + июнь: 6, + июня: 6, + июне: 6, + июль: 7, + июля: 7, + июле: 7, + август: 8, + августа: 8, + августе: 8, + сентябрь: 9, + сентября: 9, + сентябре: 9, + октябрь: 10, + октября: 10, + октябре: 10, + ноябрь: 11, + ноября: 11, + ноябре: 11, + декабрь: 12, + декабря: 12, + декабре: 12 +}; +exports.MONTH_DICTIONARY = Object.assign(Object.assign({}, exports.FULL_MONTH_NAME_DICTIONARY), { + янв: 1, + "янв.": 1, + фев: 2, + "фев.": 2, + мар: 3, + "мар.": 3, + апр: 4, + "апр.": 4, + авг: 8, + "авг.": 8, + сен: 9, + "сен.": 9, + окт: 10, + "окт.": 10, + ноя: 11, + "ноя.": 11, + дек: 12, + "дек.": 12 +}); +exports.INTEGER_WORD_DICTIONARY = { + один: 1, + одна: 1, + одной: 1, + одну: 1, + две: 2, + два: 2, + двух: 2, + три: 3, + трех: 3, + трёх: 3, + четыре: 4, + четырех: 4, + четырёх: 4, + пять: 5, + пяти: 5, + шесть: 6, + шести: 6, + семь: 7, + семи: 7, + восемь: 8, + восьми: 8, + девять: 9, + девяти: 9, + десять: 10, + десяти: 10, + одиннадцать: 11, + одиннадцати: 11, + двенадцать: 12, + двенадцати: 12 +}; +exports.ORDINAL_WORD_DICTIONARY = { + первое: 1, + первого: 1, + второе: 2, + второго: 2, + третье: 3, + третьего: 3, + четвертое: 4, + четвертого: 4, + пятое: 5, + пятого: 5, + шестое: 6, + шестого: 6, + седьмое: 7, + седьмого: 7, + восьмое: 8, + восьмого: 8, + девятое: 9, + девятого: 9, + десятое: 10, + десятого: 10, + одиннадцатое: 11, + одиннадцатого: 11, + двенадцатое: 12, + двенадцатого: 12, + тринадцатое: 13, + тринадцатого: 13, + четырнадцатое: 14, + четырнадцатого: 14, + пятнадцатое: 15, + пятнадцатого: 15, + шестнадцатое: 16, + шестнадцатого: 16, + семнадцатое: 17, + семнадцатого: 17, + восемнадцатое: 18, + восемнадцатого: 18, + девятнадцатое: 19, + девятнадцатого: 19, + двадцатое: 20, + двадцатого: 20, + "двадцать первое": 21, + "двадцать первого": 21, + "двадцать второе": 22, + "двадцать второго": 22, + "двадцать третье": 23, + "двадцать третьего": 23, + "двадцать четвертое": 24, + "двадцать четвертого": 24, + "двадцать пятое": 25, + "двадцать пятого": 25, + "двадцать шестое": 26, + "двадцать шестого": 26, + "двадцать седьмое": 27, + "двадцать седьмого": 27, + "двадцать восьмое": 28, + "двадцать восьмого": 28, + "двадцать девятое": 29, + "двадцать девятого": 29, + "тридцатое": 30, + "тридцатого": 30, + "тридцать первое": 31, + "тридцать первого": 31 +}; +exports.TIME_UNIT_DICTIONARY = { + сек: "second", + секунда: "second", + секунд: "second", + секунды: "second", + секунду: "second", + секундочка: "second", + секундочки: "second", + секундочек: "second", + секундочку: "second", + мин: "minute", + минута: "minute", + минут: "minute", + минуты: "minute", + минуту: "minute", + минуток: "minute", + минутки: "minute", + минутку: "minute", + час: "hour", + часов: "hour", + часа: "hour", + часу: "hour", + часиков: "hour", + часика: "hour", + часике: "hour", + часик: "hour", + день: "d", + дня: "d", + дней: "d", + суток: "d", + сутки: "d", + неделя: "week", + неделе: "week", + недели: "week", + неделю: "week", + недель: "week", + недельке: "week", + недельки: "week", + неделек: "week", + месяц: "month", + месяце: "month", + месяцев: "month", + месяца: "month", + квартал: "quarter", + квартале: "quarter", + кварталов: "quarter", + год: "year", + года: "year", + году: "year", + годов: "year", + лет: "year", + годик: "year", + годика: "year", + годиков: "year" +}; +exports.NUMBER_PATTERN = `(?:${pattern_1.matchAnyPattern(exports.INTEGER_WORD_DICTIONARY)}|[0-9]+|[0-9]+\\.[0-9]+|пол|несколько|пар(?:ы|у)|\\s{0,3})`; + +function parseNumberPattern(match) { + const num = match.toLowerCase(); + + if (exports.INTEGER_WORD_DICTIONARY[num] !== undefined) { + return exports.INTEGER_WORD_DICTIONARY[num]; + } + + if (num.match(/несколько/)) { + return 3; + } else if (num.match(/пол/)) { + return 0.5; + } else if (num.match(/пар/)) { + return 2; + } else if (num === "") { + return 1; + } + + return parseFloat(num); +} + +exports.parseNumberPattern = parseNumberPattern; +exports.ORDINAL_NUMBER_PATTERN = `(?:${pattern_1.matchAnyPattern(exports.ORDINAL_WORD_DICTIONARY)}|[0-9]{1,2}(?:го|ого|е|ое)?)`; + +function parseOrdinalNumberPattern(match) { + let num = match.toLowerCase(); + + if (exports.ORDINAL_WORD_DICTIONARY[num] !== undefined) { + return exports.ORDINAL_WORD_DICTIONARY[num]; + } + + return parseInt(num); +} + +exports.parseOrdinalNumberPattern = parseOrdinalNumberPattern; +const year = "(?:\\s+(?:году|года|год|г|г.))?"; +exports.YEAR_PATTERN = `(?:[1-9][0-9]{0,3}${year}\\s*(?:н.э.|до н.э.|н. э.|до н. э.)|[1-2][0-9]{3}${year}|[5-9][0-9]${year})`; + +function parseYear(match) { + if (/(год|года|г|г.)/i.test(match)) { + match = match.replace(/(год|года|г|г.)/i, ""); + } + + if (/(до н.э.|до н. э.)/i.test(match)) { + match = match.replace(/(до н.э.|до н. э.)/i, ""); + return -parseInt(match); + } + + if (/(н. э.|н.э.)/i.test(match)) { + match = match.replace(/(н. э.|н.э.)/i, ""); + return parseInt(match); + } + + const rawYearNumber = parseInt(match); + return years_1.findMostLikelyADYear(rawYearNumber); +} + +exports.parseYear = parseYear; +const SINGLE_TIME_UNIT_PATTERN = `(${exports.NUMBER_PATTERN})\\s{0,3}(${pattern_1.matchAnyPattern(exports.TIME_UNIT_DICTIONARY)})`; +const SINGLE_TIME_UNIT_REGEX = new RegExp(SINGLE_TIME_UNIT_PATTERN, "i"); +exports.TIME_UNITS_PATTERN = pattern_1.repeatedTimeunitPattern(`(?:(?:около|примерно)\\s{0,3})?`, SINGLE_TIME_UNIT_PATTERN); + +function parseTimeUnits(timeunitText) { + const fragments = {}; + let remainingText = timeunitText; + let match = SINGLE_TIME_UNIT_REGEX.exec(remainingText); + + while (match) { + collectDateTimeFragment(fragments, match); + remainingText = remainingText.substring(match[0].length).trim(); + match = SINGLE_TIME_UNIT_REGEX.exec(remainingText); + } + + return fragments; +} + +exports.parseTimeUnits = parseTimeUnits; + +function collectDateTimeFragment(fragments, match) { + const num = parseNumberPattern(match[1]); + const unit = exports.TIME_UNIT_DICTIONARY[match[2].toLowerCase()]; + fragments[unit] = num; +} + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/ru/index.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +var __importDefault = this && this.__importDefault || function (mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; +}; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.createConfiguration = exports.createCasualConfiguration = exports.parseDate = exports.parse = exports.strict = exports.casual = void 0; + +const RUTimeUnitWithinFormatParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/ru/parsers/RUTimeUnitWithinFormatParser.js")); + +const RUMonthNameLittleEndianParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/ru/parsers/RUMonthNameLittleEndianParser.js")); + +const RUMonthNameParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/ru/parsers/RUMonthNameParser.js")); + +const RUTimeExpressionParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/ru/parsers/RUTimeExpressionParser.js")); + +const RUTimeUnitAgoFormatParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/ru/parsers/RUTimeUnitAgoFormatParser.js")); + +const RUMergeDateRangeRefiner_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/ru/refiners/RUMergeDateRangeRefiner.js")); + +const RUMergeDateTimeRefiner_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/ru/refiners/RUMergeDateTimeRefiner.js")); + +const configurations_1 = __webpack_require__("./node_modules/chrono-node/dist/configurations.js"); + +const RUCasualDateParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/ru/parsers/RUCasualDateParser.js")); + +const RUCasualTimeParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/ru/parsers/RUCasualTimeParser.js")); + +const RUWeekdayParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/ru/parsers/RUWeekdayParser.js")); + +const RURelativeDateFormatParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/ru/parsers/RURelativeDateFormatParser.js")); + +const chrono_1 = __webpack_require__("./node_modules/chrono-node/dist/chrono.js"); + +const SlashDateFormatParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/common/parsers/SlashDateFormatParser.js")); + +const RUTimeUnitCasualRelativeFormatParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.js")); + +exports.casual = new chrono_1.Chrono(createCasualConfiguration()); +exports.strict = new chrono_1.Chrono(createConfiguration(true)); + +function parse(text, ref, option) { + return exports.casual.parse(text, ref, option); +} + +exports.parse = parse; + +function parseDate(text, ref, option) { + return exports.casual.parseDate(text, ref, option); +} + +exports.parseDate = parseDate; + +function createCasualConfiguration() { + const option = createConfiguration(false); + option.parsers.unshift(new RUCasualDateParser_1.default()); + option.parsers.unshift(new RUCasualTimeParser_1.default()); + option.parsers.unshift(new RUMonthNameParser_1.default()); + option.parsers.unshift(new RURelativeDateFormatParser_1.default()); + option.parsers.unshift(new RUTimeUnitCasualRelativeFormatParser_1.default()); + return option; +} + +exports.createCasualConfiguration = createCasualConfiguration; + +function createConfiguration(strictMode = true) { + return configurations_1.includeCommonConfiguration({ + parsers: [new SlashDateFormatParser_1.default(true), new RUTimeUnitWithinFormatParser_1.default(), new RUMonthNameLittleEndianParser_1.default(), new RUWeekdayParser_1.default(), new RUTimeExpressionParser_1.default(strictMode), new RUTimeUnitAgoFormatParser_1.default()], + refiners: [new RUMergeDateTimeRefiner_1.default(), new RUMergeDateRangeRefiner_1.default()] + }, strictMode); +} + +exports.createConfiguration = createConfiguration; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/ru/parsers/RUCasualDateParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { + enumerable: true, + get: function () { + return m[k]; + } + }); +} : function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +}); + +var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) { + Object.defineProperty(o, "default", { + enumerable: true, + value: v + }); +} : function (o, v) { + o["default"] = v; +}); + +var __importStar = this && this.__importStar || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + + __setModuleDefault(result, mod); + + return result; +}; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); + +const references = __importStar(__webpack_require__("./node_modules/chrono-node/dist/common/casualReferences.js")); + +const constants_1 = __webpack_require__("./node_modules/chrono-node/dist/locales/ru/constants.js"); + +const PATTERN = new RegExp(`(?:с|со)?\\s*(сегодня|вчера|завтра|послезавтра|позавчера)${constants_1.REGEX_PARTS.rightBoundary}`, constants_1.REGEX_PARTS.flags); + +class RUCasualDateParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { + patternLeftBoundary() { + return constants_1.REGEX_PARTS.leftBoundary; + } + + innerPattern(context) { + return PATTERN; + } + + innerExtract(context, match) { + const lowerText = match[1].toLowerCase(); + const component = context.createParsingComponents(); + + switch (lowerText) { + case "сегодня": + return references.today(context.reference); + + case "вчера": + return references.yesterday(context.reference); + + case "завтра": + return references.tomorrow(context.reference); + + case "послезавтра": + return references.theDayAfter(context.reference, 2); + + case "позавчера": + return references.theDayBefore(context.reference, 2); + } + + return component; + } + +} + +exports["default"] = RUCasualDateParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/ru/parsers/RUCasualTimeParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { + enumerable: true, + get: function () { + return m[k]; + } + }); +} : function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +}); + +var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) { + Object.defineProperty(o, "default", { + enumerable: true, + value: v + }); +} : function (o, v) { + o["default"] = v; +}); + +var __importStar = this && this.__importStar || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + + __setModuleDefault(result, mod); + + return result; +}; + +var __importDefault = this && this.__importDefault || function (mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; +}; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); + +const references = __importStar(__webpack_require__("./node_modules/chrono-node/dist/common/casualReferences.js")); + +const dayjs_1 = __webpack_require__("./node_modules/chrono-node/dist/utils/dayjs.js"); + +const dayjs_2 = __importDefault(__webpack_require__("./node_modules/dayjs/dayjs.min.js")); + +const constants_1 = __webpack_require__("./node_modules/chrono-node/dist/locales/ru/constants.js"); + +const PATTERN = new RegExp(`(сейчас|прошлым\\s*вечером|прошлой\\s*ночью|следующей\\s*ночью|сегодня\\s*ночью|этой\\s*ночью|ночью|этим утром|утром|утра|в\\s*полдень|вечером|вечера|в\\s*полночь)` + `${constants_1.REGEX_PARTS.rightBoundary}`, constants_1.REGEX_PARTS.flags); + +class RUCasualTimeParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { + patternLeftBoundary() { + return constants_1.REGEX_PARTS.leftBoundary; + } + + innerPattern() { + return PATTERN; + } + + innerExtract(context, match) { + let targetDate = dayjs_2.default(context.refDate); + const lowerText = match[0].toLowerCase(); + const component = context.createParsingComponents(); + + if (lowerText === "сейчас") { + return references.now(context.reference); + } + + if (lowerText === "вечером" || lowerText === "вечера") { + return references.evening(context.reference); + } + + if (lowerText.endsWith("утром") || lowerText.endsWith("утра")) { + return references.morning(context.reference); + } + + if (lowerText.match(/в\s*полдень/)) { + return references.noon(context.reference); + } + + if (lowerText.match(/прошлой\s*ночью/)) { + return references.lastNight(context.reference); + } + + if (lowerText.match(/прошлым\s*вечером/)) { + return references.yesterdayEvening(context.reference); + } + + if (lowerText.match(/следующей\s*ночью/)) { + const daysToAdd = targetDate.hour() < 22 ? 1 : 2; + targetDate = targetDate.add(daysToAdd, "day"); + dayjs_1.assignSimilarDate(component, targetDate); + component.imply("hour", 0); + } + + if (lowerText.match(/в\s*полночь/) || lowerText.endsWith("ночью")) { + return references.midnight(context.reference); + } + + return component; + } + +} + +exports["default"] = RUCasualTimeParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/ru/parsers/RUMonthNameLittleEndianParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const years_1 = __webpack_require__("./node_modules/chrono-node/dist/calculation/years.js"); + +const constants_1 = __webpack_require__("./node_modules/chrono-node/dist/locales/ru/constants.js"); + +const constants_2 = __webpack_require__("./node_modules/chrono-node/dist/locales/ru/constants.js"); + +const constants_3 = __webpack_require__("./node_modules/chrono-node/dist/locales/ru/constants.js"); + +const pattern_1 = __webpack_require__("./node_modules/chrono-node/dist/utils/pattern.js"); + +const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); + +const PATTERN = new RegExp(`(?:с)?\\s*(${constants_3.ORDINAL_NUMBER_PATTERN})` + `(?:` + `\\s{0,3}(?:по|-|–|до)?\\s{0,3}` + `(${constants_3.ORDINAL_NUMBER_PATTERN})` + `)?` + `(?:-|\\/|\\s{0,3}(?:of)?\\s{0,3})` + `(${pattern_1.matchAnyPattern(constants_1.MONTH_DICTIONARY)})` + `(?:` + `(?:-|\\/|,?\\s{0,3})` + `(${constants_2.YEAR_PATTERN}(?![^\\s]\\d))` + `)?` + `${constants_1.REGEX_PARTS.rightBoundary}`, constants_1.REGEX_PARTS.flags); +const DATE_GROUP = 1; +const DATE_TO_GROUP = 2; +const MONTH_NAME_GROUP = 3; +const YEAR_GROUP = 4; + +class RUMonthNameLittleEndianParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { + patternLeftBoundary() { + return constants_1.REGEX_PARTS.leftBoundary; + } + + innerPattern() { + return PATTERN; + } + + innerExtract(context, match) { + const result = context.createParsingResult(match.index, match[0]); + const month = constants_1.MONTH_DICTIONARY[match[MONTH_NAME_GROUP].toLowerCase()]; + const day = constants_3.parseOrdinalNumberPattern(match[DATE_GROUP]); + + if (day > 31) { + match.index = match.index + match[DATE_GROUP].length; + return null; + } + + result.start.assign("month", month); + result.start.assign("day", day); + + if (match[YEAR_GROUP]) { + const yearNumber = constants_2.parseYear(match[YEAR_GROUP]); + result.start.assign("year", yearNumber); + } else { + const year = years_1.findYearClosestToRef(context.refDate, day, month); + result.start.imply("year", year); + } + + if (match[DATE_TO_GROUP]) { + const endDate = constants_3.parseOrdinalNumberPattern(match[DATE_TO_GROUP]); + result.end = result.start.clone(); + result.end.assign("day", endDate); + } + + return result; + } + +} + +exports["default"] = RUMonthNameLittleEndianParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/ru/parsers/RUMonthNameParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const constants_1 = __webpack_require__("./node_modules/chrono-node/dist/locales/ru/constants.js"); + +const years_1 = __webpack_require__("./node_modules/chrono-node/dist/calculation/years.js"); + +const pattern_1 = __webpack_require__("./node_modules/chrono-node/dist/utils/pattern.js"); + +const constants_2 = __webpack_require__("./node_modules/chrono-node/dist/locales/ru/constants.js"); + +const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); + +const PATTERN = new RegExp(`((?:в)\\s*)?` + `(${pattern_1.matchAnyPattern(constants_1.MONTH_DICTIONARY)})` + `\\s*` + `(?:` + `[,-]?\\s*(${constants_2.YEAR_PATTERN})?` + `)?` + `(?=[^\\s\\w]|\\s+[^0-9]|\\s+$|$)`, constants_1.REGEX_PARTS.flags); +const MONTH_NAME_GROUP = 2; +const YEAR_GROUP = 3; + +class RUMonthNameParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { + patternLeftBoundary() { + return constants_1.REGEX_PARTS.leftBoundary; + } + + innerPattern() { + return PATTERN; + } + + innerExtract(context, match) { + const monthName = match[MONTH_NAME_GROUP].toLowerCase(); + + if (match[0].length <= 3 && !constants_1.FULL_MONTH_NAME_DICTIONARY[monthName]) { + return null; + } + + const result = context.createParsingResult(match.index, match.index + match[0].length); + result.start.imply("day", 1); + const month = constants_1.MONTH_DICTIONARY[monthName]; + result.start.assign("month", month); + + if (match[YEAR_GROUP]) { + const year = constants_2.parseYear(match[YEAR_GROUP]); + result.start.assign("year", year); + } else { + const year = years_1.findYearClosestToRef(context.refDate, 1, month); + result.start.imply("year", year); + } + + return result; + } + +} + +exports["default"] = RUMonthNameParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/ru/parsers/RURelativeDateFormatParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +var __importDefault = this && this.__importDefault || function (mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; +}; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const constants_1 = __webpack_require__("./node_modules/chrono-node/dist/locales/ru/constants.js"); + +const results_1 = __webpack_require__("./node_modules/chrono-node/dist/results.js"); + +const dayjs_1 = __importDefault(__webpack_require__("./node_modules/dayjs/dayjs.min.js")); + +const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); + +const pattern_1 = __webpack_require__("./node_modules/chrono-node/dist/utils/pattern.js"); + +const PATTERN = new RegExp(`(в прошлом|на прошлой|на следующей|в следующем|на этой|в этом)\\s*(${pattern_1.matchAnyPattern(constants_1.TIME_UNIT_DICTIONARY)})(?=\\s*)${constants_1.REGEX_PARTS.rightBoundary}`, constants_1.REGEX_PARTS.flags); +const MODIFIER_WORD_GROUP = 1; +const RELATIVE_WORD_GROUP = 2; + +class RURelativeDateFormatParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { + patternLeftBoundary() { + return constants_1.REGEX_PARTS.leftBoundary; + } + + innerPattern() { + return PATTERN; + } + + innerExtract(context, match) { + const modifier = match[MODIFIER_WORD_GROUP].toLowerCase(); + const unitWord = match[RELATIVE_WORD_GROUP].toLowerCase(); + const timeunit = constants_1.TIME_UNIT_DICTIONARY[unitWord]; + + if (modifier == "на следующей" || modifier == "в следующем") { + const timeUnits = {}; + timeUnits[timeunit] = 1; + return results_1.ParsingComponents.createRelativeFromReference(context.reference, timeUnits); + } + + if (modifier == "в прошлом" || modifier == "на прошлой") { + const timeUnits = {}; + timeUnits[timeunit] = -1; + return results_1.ParsingComponents.createRelativeFromReference(context.reference, timeUnits); + } + + const components = context.createParsingComponents(); + let date = dayjs_1.default(context.reference.instant); + + if (timeunit.match(/week/i)) { + date = date.add(-date.get("d"), "d"); + components.imply("day", date.date()); + components.imply("month", date.month() + 1); + components.imply("year", date.year()); + } else if (timeunit.match(/month/i)) { + date = date.add(-date.date() + 1, "d"); + components.imply("day", date.date()); + components.assign("year", date.year()); + components.assign("month", date.month() + 1); + } else if (timeunit.match(/year/i)) { + date = date.add(-date.date() + 1, "d"); + date = date.add(-date.month(), "month"); + components.imply("day", date.date()); + components.imply("month", date.month() + 1); + components.assign("year", date.year()); + } + + return components; + } + +} + +exports["default"] = RURelativeDateFormatParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/ru/parsers/RUTimeExpressionParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const index_1 = __webpack_require__("./node_modules/chrono-node/dist/index.js"); + +const AbstractTimeExpressionParser_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractTimeExpressionParser.js"); + +const constants_1 = __webpack_require__("./node_modules/chrono-node/dist/locales/ru/constants.js"); + +class RUTimeExpressionParser extends AbstractTimeExpressionParser_1.AbstractTimeExpressionParser { + constructor(strictMode) { + super(strictMode); + } + + patternFlags() { + return constants_1.REGEX_PARTS.flags; + } + + primaryPatternLeftBoundary() { + return `(^|\\s|T|(?:[^\\p{L}\\p{N}_]))`; + } + + followingPhase() { + return `\\s*(?:\\-|\\–|\\~|\\〜|до|и|по|\\?)\\s*`; + } + + primaryPrefix() { + return `(?:(?:в|с)\\s*)??`; + } + + primarySuffix() { + return `(?:\\s*(?:утра|вечера|после полудня))?(?!\\/)${constants_1.REGEX_PARTS.rightBoundary}`; + } + + extractPrimaryTimeComponents(context, match) { + const components = super.extractPrimaryTimeComponents(context, match); + + if (components) { + if (match[0].endsWith("вечера")) { + const hour = components.get("hour"); + + if (hour >= 6 && hour < 12) { + components.assign("hour", components.get("hour") + 12); + components.assign("meridiem", index_1.Meridiem.PM); + } else if (hour < 6) { + components.assign("meridiem", index_1.Meridiem.AM); + } + } + + if (match[0].endsWith("после полудня")) { + components.assign("meridiem", index_1.Meridiem.PM); + const hour = components.get("hour"); + + if (hour >= 0 && hour <= 6) { + components.assign("hour", components.get("hour") + 12); + } + } + + if (match[0].endsWith("утра")) { + components.assign("meridiem", index_1.Meridiem.AM); + const hour = components.get("hour"); + + if (hour < 12) { + components.assign("hour", components.get("hour")); + } + } + } + + return components; + } + +} + +exports["default"] = RUTimeExpressionParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/ru/parsers/RUTimeUnitAgoFormatParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const constants_1 = __webpack_require__("./node_modules/chrono-node/dist/locales/ru/constants.js"); + +const results_1 = __webpack_require__("./node_modules/chrono-node/dist/results.js"); + +const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); + +const timeunits_1 = __webpack_require__("./node_modules/chrono-node/dist/utils/timeunits.js"); + +const PATTERN = new RegExp(`(${constants_1.TIME_UNITS_PATTERN})\\s{0,5}назад(?=(?:\\W|$))`, constants_1.REGEX_PARTS.flags); + +class RUTimeUnitAgoFormatParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { + patternLeftBoundary() { + return constants_1.REGEX_PARTS.leftBoundary; + } + + innerPattern() { + return PATTERN; + } + + innerExtract(context, match) { + const timeUnits = constants_1.parseTimeUnits(match[1]); + const outputTimeUnits = timeunits_1.reverseTimeUnits(timeUnits); + return results_1.ParsingComponents.createRelativeFromReference(context.reference, outputTimeUnits); + } + +} + +exports["default"] = RUTimeUnitAgoFormatParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/ru/parsers/RUTimeUnitCasualRelativeFormatParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const constants_1 = __webpack_require__("./node_modules/chrono-node/dist/locales/ru/constants.js"); + +const results_1 = __webpack_require__("./node_modules/chrono-node/dist/results.js"); + +const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); + +const timeunits_1 = __webpack_require__("./node_modules/chrono-node/dist/utils/timeunits.js"); + +const PATTERN = new RegExp(`(эти|последние|прошлые|следующие|после|через|\\+|-)\\s*(${constants_1.TIME_UNITS_PATTERN})${constants_1.REGEX_PARTS.rightBoundary}`, constants_1.REGEX_PARTS.flags); + +class RUTimeUnitCasualRelativeFormatParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { + patternLeftBoundary() { + return constants_1.REGEX_PARTS.leftBoundary; + } + + innerPattern() { + return PATTERN; + } + + innerExtract(context, match) { + const prefix = match[1].toLowerCase(); + let timeUnits = constants_1.parseTimeUnits(match[2]); + + switch (prefix) { + case "последние": + case "прошлые": + case "-": + timeUnits = timeunits_1.reverseTimeUnits(timeUnits); + break; + } + + return results_1.ParsingComponents.createRelativeFromReference(context.reference, timeUnits); + } + +} + +exports["default"] = RUTimeUnitCasualRelativeFormatParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/ru/parsers/RUTimeUnitWithinFormatParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const constants_1 = __webpack_require__("./node_modules/chrono-node/dist/locales/ru/constants.js"); + +const results_1 = __webpack_require__("./node_modules/chrono-node/dist/results.js"); + +const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); + +const PATTERN = `(?:(?:около|примерно)\\s*(?:~\\s*)?)?(${constants_1.TIME_UNITS_PATTERN})${constants_1.REGEX_PARTS.rightBoundary}`; +const PATTERN_WITH_PREFIX = new RegExp(`(?:в течение|в течении)\\s*${PATTERN}`, constants_1.REGEX_PARTS.flags); +const PATTERN_WITHOUT_PREFIX = new RegExp(PATTERN, "i"); + +class RUTimeUnitWithinFormatParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { + patternLeftBoundary() { + return constants_1.REGEX_PARTS.leftBoundary; + } + + innerPattern(context) { + return context.option.forwardDate ? PATTERN_WITHOUT_PREFIX : PATTERN_WITH_PREFIX; + } + + innerExtract(context, match) { + const timeUnits = constants_1.parseTimeUnits(match[1]); + return results_1.ParsingComponents.createRelativeFromReference(context.reference, timeUnits); + } + +} + +exports["default"] = RUTimeUnitWithinFormatParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/ru/parsers/RUWeekdayParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const constants_1 = __webpack_require__("./node_modules/chrono-node/dist/locales/ru/constants.js"); + +const pattern_1 = __webpack_require__("./node_modules/chrono-node/dist/utils/pattern.js"); + +const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); + +const weekdays_1 = __webpack_require__("./node_modules/chrono-node/dist/common/calculation/weekdays.js"); + +const PATTERN = new RegExp(`(?:(?:,|\\(|()\\s*)?` + `(?:в\\s*?)?` + `(?:(эту|этот|прошлый|прошлую|следующий|следующую|следующего)\\s*)?` + `(${pattern_1.matchAnyPattern(constants_1.WEEKDAY_DICTIONARY)})` + `(?:\\s*(?:,|\\)|)))?` + `(?:\\s*на\\s*(этой|прошлой|следующей)\\s*неделе)?` + `${constants_1.REGEX_PARTS.rightBoundary}`, constants_1.REGEX_PARTS.flags); +const PREFIX_GROUP = 1; +const WEEKDAY_GROUP = 2; +const POSTFIX_GROUP = 3; + +class RUWeekdayParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { + innerPattern() { + return PATTERN; + } + + patternLeftBoundary() { + return constants_1.REGEX_PARTS.leftBoundary; + } + + innerExtract(context, match) { + const dayOfWeek = match[WEEKDAY_GROUP].toLowerCase(); + const weekday = constants_1.WEEKDAY_DICTIONARY[dayOfWeek]; + const prefix = match[PREFIX_GROUP]; + const postfix = match[POSTFIX_GROUP]; + let modifierWord = prefix || postfix; + modifierWord = modifierWord || ""; + modifierWord = modifierWord.toLowerCase(); + let modifier = null; + + if (modifierWord == "прошлый" || modifierWord == "прошлую" || modifierWord == "прошлой") { + modifier = "last"; + } else if (modifierWord == "следующий" || modifierWord == "следующую" || modifierWord == "следующей" || modifierWord == "следующего") { + modifier = "next"; + } else if (modifierWord == "этот" || modifierWord == "эту" || modifierWord == "этой") { + modifier = "this"; + } + + return weekdays_1.createParsingComponentsAtWeekday(context.reference, weekday, modifier); + } + +} + +exports["default"] = RUWeekdayParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/ru/refiners/RUMergeDateRangeRefiner.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +var __importDefault = this && this.__importDefault || function (mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; +}; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const AbstractMergeDateRangeRefiner_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/common/refiners/AbstractMergeDateRangeRefiner.js")); + +class RUMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner_1.default { + patternBetween() { + return /^\s*(и до|и по|до|по|-)\s*$/i; + } + +} + +exports["default"] = RUMergeDateRangeRefiner; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/ru/refiners/RUMergeDateTimeRefiner.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +var __importDefault = this && this.__importDefault || function (mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; +}; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const AbstractMergeDateTimeRefiner_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/common/refiners/AbstractMergeDateTimeRefiner.js")); + +class RUMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner_1.default { + patternBetween() { + return new RegExp(`^\\s*(T|в|,|-)?\\s*$`); + } + +} + +exports["default"] = RUMergeDateTimeRefiner; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/zh/hans/constants.js": +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.zhStringToYear = exports.zhStringToNumber = exports.WEEKDAY_OFFSET = exports.NUMBER = void 0; +exports.NUMBER = { + "零": 0, + "〇": 0, + "一": 1, + "二": 2, + "两": 2, + "三": 3, + "四": 4, + "五": 5, + "六": 6, + "七": 7, + "八": 8, + "九": 9, + "十": 10 +}; +exports.WEEKDAY_OFFSET = { + "天": 0, + "日": 0, + "一": 1, + "二": 2, + "三": 3, + "四": 4, + "五": 5, + "六": 6 +}; + +function zhStringToNumber(text) { + let number = 0; + + for (let i = 0; i < text.length; i++) { + const char = text[i]; + + if (char === "十") { + number = number === 0 ? exports.NUMBER[char] : number * exports.NUMBER[char]; + } else { + number += exports.NUMBER[char]; + } + } + + return number; +} + +exports.zhStringToNumber = zhStringToNumber; + +function zhStringToYear(text) { + let string = ""; + + for (let i = 0; i < text.length; i++) { + const char = text[i]; + string = string + exports.NUMBER[char]; + } + + return parseInt(string); +} + +exports.zhStringToYear = zhStringToYear; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/zh/hans/index.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +var __importDefault = this && this.__importDefault || function (mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; +}; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.createConfiguration = exports.createCasualConfiguration = exports.parseDate = exports.parse = exports.strict = exports.casual = exports.hans = void 0; + +const chrono_1 = __webpack_require__("./node_modules/chrono-node/dist/chrono.js"); + +const ExtractTimezoneOffsetRefiner_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/common/refiners/ExtractTimezoneOffsetRefiner.js")); + +const configurations_1 = __webpack_require__("./node_modules/chrono-node/dist/configurations.js"); + +const ZHHansCasualDateParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/zh/hans/parsers/ZHHansCasualDateParser.js")); + +const ZHHansDateParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/zh/hans/parsers/ZHHansDateParser.js")); + +const ZHHansDeadlineFormatParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/zh/hans/parsers/ZHHansDeadlineFormatParser.js")); + +const ZHHansRelationWeekdayParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/zh/hans/parsers/ZHHansRelationWeekdayParser.js")); + +const ZHHansTimeExpressionParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/zh/hans/parsers/ZHHansTimeExpressionParser.js")); + +const ZHHansWeekdayParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/zh/hans/parsers/ZHHansWeekdayParser.js")); + +const ZHHansMergeDateRangeRefiner_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/zh/hans/refiners/ZHHansMergeDateRangeRefiner.js")); + +const ZHHansMergeDateTimeRefiner_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/zh/hans/refiners/ZHHansMergeDateTimeRefiner.js")); + +exports.hans = new chrono_1.Chrono(createCasualConfiguration()); +exports.casual = new chrono_1.Chrono(createCasualConfiguration()); +exports.strict = new chrono_1.Chrono(createConfiguration()); + +function parse(text, ref, option) { + return exports.casual.parse(text, ref, option); +} + +exports.parse = parse; + +function parseDate(text, ref, option) { + return exports.casual.parseDate(text, ref, option); +} + +exports.parseDate = parseDate; + +function createCasualConfiguration() { + const option = createConfiguration(); + option.parsers.unshift(new ZHHansCasualDateParser_1.default()); + return option; +} + +exports.createCasualConfiguration = createCasualConfiguration; + +function createConfiguration() { + const configuration = configurations_1.includeCommonConfiguration({ + parsers: [new ZHHansDateParser_1.default(), new ZHHansRelationWeekdayParser_1.default(), new ZHHansWeekdayParser_1.default(), new ZHHansTimeExpressionParser_1.default(), new ZHHansDeadlineFormatParser_1.default()], + refiners: [new ZHHansMergeDateRangeRefiner_1.default(), new ZHHansMergeDateTimeRefiner_1.default()] + }); + configuration.refiners = configuration.refiners.filter(refiner => !(refiner instanceof ExtractTimezoneOffsetRefiner_1.default)); + return configuration; +} + +exports.createConfiguration = createConfiguration; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/zh/hans/parsers/ZHHansCasualDateParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +var __importDefault = this && this.__importDefault || function (mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; +}; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const dayjs_1 = __importDefault(__webpack_require__("./node_modules/dayjs/dayjs.min.js")); + +const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); + +const NOW_GROUP = 1; +const DAY_GROUP_1 = 2; +const TIME_GROUP_1 = 3; +const TIME_GROUP_2 = 4; +const DAY_GROUP_3 = 5; +const TIME_GROUP_3 = 6; + +class ZHHansCasualDateParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { + innerPattern(context) { + return new RegExp("(现在|立(?:刻|即)|即刻)|" + "(今|明|前|大前|后|大后|昨)(早|晚)|" + "(上(?:午)|早(?:上)|下(?:午)|晚(?:上)|夜(?:晚)?|中(?:午)|凌(?:晨))|" + "(今|明|前|大前|后|大后|昨)(?:日|天)" + "(?:[\\s|,|,]*)" + "(?:(上(?:午)|早(?:上)|下(?:午)|晚(?:上)|夜(?:晚)?|中(?:午)|凌(?:晨)))?", "i"); + } + + innerExtract(context, match) { + const index = match.index; + const result = context.createParsingResult(index, match[0]); + const refMoment = dayjs_1.default(context.refDate); + let startMoment = refMoment; + + if (match[NOW_GROUP]) { + result.start.imply("hour", refMoment.hour()); + result.start.imply("minute", refMoment.minute()); + result.start.imply("second", refMoment.second()); + result.start.imply("millisecond", refMoment.millisecond()); + } else if (match[DAY_GROUP_1]) { + const day1 = match[DAY_GROUP_1]; + const time1 = match[TIME_GROUP_1]; + + if (day1 == "明") { + if (refMoment.hour() > 1) { + startMoment = startMoment.add(1, "day"); + } + } else if (day1 == "昨") { + startMoment = startMoment.add(-1, "day"); + } else if (day1 == "前") { + startMoment = startMoment.add(-2, "day"); + } else if (day1 == "大前") { + startMoment = startMoment.add(-3, "day"); + } else if (day1 == "后") { + startMoment = startMoment.add(2, "day"); + } else if (day1 == "大后") { + startMoment = startMoment.add(3, "day"); + } + + if (time1 == "早") { + result.start.imply("hour", 6); + } else if (time1 == "晚") { + result.start.imply("hour", 22); + result.start.imply("meridiem", 1); + } + } else if (match[TIME_GROUP_2]) { + const timeString2 = match[TIME_GROUP_2]; + const time2 = timeString2[0]; + + if (time2 == "早" || time2 == "上") { + result.start.imply("hour", 6); + } else if (time2 == "下") { + result.start.imply("hour", 15); + result.start.imply("meridiem", 1); + } else if (time2 == "中") { + result.start.imply("hour", 12); + result.start.imply("meridiem", 1); + } else if (time2 == "夜" || time2 == "晚") { + result.start.imply("hour", 22); + result.start.imply("meridiem", 1); + } else if (time2 == "凌") { + result.start.imply("hour", 0); + } + } else if (match[DAY_GROUP_3]) { + const day3 = match[DAY_GROUP_3]; + + if (day3 == "明") { + if (refMoment.hour() > 1) { + startMoment = startMoment.add(1, "day"); + } + } else if (day3 == "昨") { + startMoment = startMoment.add(-1, "day"); + } else if (day3 == "前") { + startMoment = startMoment.add(-2, "day"); + } else if (day3 == "大前") { + startMoment = startMoment.add(-3, "day"); + } else if (day3 == "后") { + startMoment = startMoment.add(2, "day"); + } else if (day3 == "大后") { + startMoment = startMoment.add(3, "day"); + } + + const timeString3 = match[TIME_GROUP_3]; + + if (timeString3) { + const time3 = timeString3[0]; + + if (time3 == "早" || time3 == "上") { + result.start.imply("hour", 6); + } else if (time3 == "下") { + result.start.imply("hour", 15); + result.start.imply("meridiem", 1); + } else if (time3 == "中") { + result.start.imply("hour", 12); + result.start.imply("meridiem", 1); + } else if (time3 == "夜" || time3 == "晚") { + result.start.imply("hour", 22); + result.start.imply("meridiem", 1); + } else if (time3 == "凌") { + result.start.imply("hour", 0); + } + } + } + + result.start.assign("day", startMoment.date()); + result.start.assign("month", startMoment.month() + 1); + result.start.assign("year", startMoment.year()); + return result; + } + +} + +exports["default"] = ZHHansCasualDateParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/zh/hans/parsers/ZHHansDateParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +var __importDefault = this && this.__importDefault || function (mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; +}; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const dayjs_1 = __importDefault(__webpack_require__("./node_modules/dayjs/dayjs.min.js")); + +const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); + +const constants_1 = __webpack_require__("./node_modules/chrono-node/dist/locales/zh/hans/constants.js"); + +const YEAR_GROUP = 1; +const MONTH_GROUP = 2; +const DAY_GROUP = 3; + +class ZHHansDateParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { + innerPattern() { + return new RegExp("(" + "\\d{2,4}|" + "[" + Object.keys(constants_1.NUMBER).join("") + "]{4}|" + "[" + Object.keys(constants_1.NUMBER).join("") + "]{2}" + ")?" + "(?:\\s*)" + "(?:年)?" + "(?:[\\s|,|,]*)" + "(" + "\\d{1,2}|" + "[" + Object.keys(constants_1.NUMBER).join("") + "]{1,3}" + ")" + "(?:\\s*)" + "(?:月)" + "(?:\\s*)" + "(" + "\\d{1,2}|" + "[" + Object.keys(constants_1.NUMBER).join("") + "]{1,3}" + ")?" + "(?:\\s*)" + "(?:日|号)?"); + } + + innerExtract(context, match) { + const startMoment = dayjs_1.default(context.refDate); + const result = context.createParsingResult(match.index, match[0]); + let month = parseInt(match[MONTH_GROUP]); + if (isNaN(month)) month = constants_1.zhStringToNumber(match[MONTH_GROUP]); + result.start.assign("month", month); + + if (match[DAY_GROUP]) { + let day = parseInt(match[DAY_GROUP]); + if (isNaN(day)) day = constants_1.zhStringToNumber(match[DAY_GROUP]); + result.start.assign("day", day); + } else { + result.start.imply("day", startMoment.date()); + } + + if (match[YEAR_GROUP]) { + let year = parseInt(match[YEAR_GROUP]); + if (isNaN(year)) year = constants_1.zhStringToYear(match[YEAR_GROUP]); + result.start.assign("year", year); + } else { + result.start.imply("year", startMoment.year()); + } + + return result; + } + +} + +exports["default"] = ZHHansDateParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/zh/hans/parsers/ZHHansDeadlineFormatParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +var __importDefault = this && this.__importDefault || function (mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; +}; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const dayjs_1 = __importDefault(__webpack_require__("./node_modules/dayjs/dayjs.min.js")); + +const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); + +const constants_1 = __webpack_require__("./node_modules/chrono-node/dist/locales/zh/hans/constants.js"); + +const PATTERN = new RegExp("(\\d+|[" + Object.keys(constants_1.NUMBER).join("") + "]+|半|几)(?:\\s*)" + "(?:个)?" + "(秒(?:钟)?|分钟|小时|钟|日|天|星期|礼拜|月|年)" + "(?:(?:之|过)?后|(?:之)?内)", "i"); +const NUMBER_GROUP = 1; +const UNIT_GROUP = 2; + +class ZHHansDeadlineFormatParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { + innerPattern() { + return PATTERN; + } + + innerExtract(context, match) { + const result = context.createParsingResult(match.index, match[0]); + let number = parseInt(match[NUMBER_GROUP]); + + if (isNaN(number)) { + number = constants_1.zhStringToNumber(match[NUMBER_GROUP]); + } + + if (isNaN(number)) { + const string = match[NUMBER_GROUP]; + + if (string === "几") { + number = 3; + } else if (string === "半") { + number = 0.5; + } else { + return null; + } + } + + let date = dayjs_1.default(context.refDate); + const unit = match[UNIT_GROUP]; + const unitAbbr = unit[0]; + + if (unitAbbr.match(/[日天星礼月年]/)) { + if (unitAbbr == "日" || unitAbbr == "天") { + date = date.add(number, "d"); + } else if (unitAbbr == "星" || unitAbbr == "礼") { + date = date.add(number * 7, "d"); + } else if (unitAbbr == "月") { + date = date.add(number, "month"); + } else if (unitAbbr == "年") { + date = date.add(number, "year"); + } + + result.start.assign("year", date.year()); + result.start.assign("month", date.month() + 1); + result.start.assign("day", date.date()); + return result; + } + + if (unitAbbr == "秒") { + date = date.add(number, "second"); + } else if (unitAbbr == "分") { + date = date.add(number, "minute"); + } else if (unitAbbr == "小" || unitAbbr == "钟") { + date = date.add(number, "hour"); + } + + result.start.imply("year", date.year()); + result.start.imply("month", date.month() + 1); + result.start.imply("day", date.date()); + result.start.assign("hour", date.hour()); + result.start.assign("minute", date.minute()); + result.start.assign("second", date.second()); + return result; + } + +} + +exports["default"] = ZHHansDeadlineFormatParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/zh/hans/parsers/ZHHansRelationWeekdayParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +var __importDefault = this && this.__importDefault || function (mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; +}; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const dayjs_1 = __importDefault(__webpack_require__("./node_modules/dayjs/dayjs.min.js")); + +const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); + +const constants_1 = __webpack_require__("./node_modules/chrono-node/dist/locales/zh/hans/constants.js"); + +const PATTERN = new RegExp("(?上|下|这)(?:个)?(?:星期|礼拜|周)(?" + Object.keys(constants_1.WEEKDAY_OFFSET).join("|") + ")"); + +class ZHHansRelationWeekdayParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { + innerPattern() { + return PATTERN; + } + + innerExtract(context, match) { + const result = context.createParsingResult(match.index, match[0]); + const dayOfWeek = match.groups.weekday; + const offset = constants_1.WEEKDAY_OFFSET[dayOfWeek]; + if (offset === undefined) return null; + let modifier = null; + const prefix = match.groups.prefix; + + if (prefix == "上") { + modifier = "last"; + } else if (prefix == "下") { + modifier = "next"; + } else if (prefix == "这") { + modifier = "this"; + } + + let startMoment = dayjs_1.default(context.refDate); + let startMomentFixed = false; + const refOffset = startMoment.day(); + + if (modifier == "last" || modifier == "past") { + startMoment = startMoment.day(offset - 7); + startMomentFixed = true; + } else if (modifier == "next") { + startMoment = startMoment.day(offset + 7); + startMomentFixed = true; + } else if (modifier == "this") { + startMoment = startMoment.day(offset); + } else { + if (Math.abs(offset - 7 - refOffset) < Math.abs(offset - refOffset)) { + startMoment = startMoment.day(offset - 7); + } else if (Math.abs(offset + 7 - refOffset) < Math.abs(offset - refOffset)) { + startMoment = startMoment.day(offset + 7); + } else { + startMoment = startMoment.day(offset); + } + } + + result.start.assign("weekday", offset); + + if (startMomentFixed) { + result.start.assign("day", startMoment.date()); + result.start.assign("month", startMoment.month() + 1); + result.start.assign("year", startMoment.year()); + } else { + result.start.imply("day", startMoment.date()); + result.start.imply("month", startMoment.month() + 1); + result.start.imply("year", startMoment.year()); + } + + return result; + } + +} + +exports["default"] = ZHHansRelationWeekdayParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/zh/hans/parsers/ZHHansTimeExpressionParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +var __importDefault = this && this.__importDefault || function (mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; +}; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const dayjs_1 = __importDefault(__webpack_require__("./node_modules/dayjs/dayjs.min.js")); + +const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); + +const constants_1 = __webpack_require__("./node_modules/chrono-node/dist/locales/zh/hans/constants.js"); + +const FIRST_REG_PATTERN = new RegExp("(?:从|自)?" + "(?:" + "(今|明|前|大前|后|大后|昨)(早|朝|晚)|" + "(上(?:午)|早(?:上)|下(?:午)|晚(?:上)|夜(?:晚)?|中(?:午)|凌(?:晨))|" + "(今|明|前|大前|后|大后|昨)(?:日|天)" + "(?:[\\s,,]*)" + "(?:(上(?:午)|早(?:上)|下(?:午)|晚(?:上)|夜(?:晚)?|中(?:午)|凌(?:晨)))?" + ")?" + "(?:[\\s,,]*)" + "(?:(\\d+|[" + Object.keys(constants_1.NUMBER).join("") + "]+)(?:\\s*)(?:点|时|:|:)" + "(?:\\s*)" + "(\\d+|半|正|整|[" + Object.keys(constants_1.NUMBER).join("") + "]+)?(?:\\s*)(?:分|:|:)?" + "(?:\\s*)" + "(\\d+|[" + Object.keys(constants_1.NUMBER).join("") + "]+)?(?:\\s*)(?:秒)?)" + "(?:\\s*(A.M.|P.M.|AM?|PM?))?", "i"); +const SECOND_REG_PATTERN = new RegExp("(?:^\\s*(?:到|至|\\-|\\–|\\~|\\〜)\\s*)" + "(?:" + "(今|明|前|大前|后|大后|昨)(早|朝|晚)|" + "(上(?:午)|早(?:上)|下(?:午)|晚(?:上)|夜(?:晚)?|中(?:午)|凌(?:晨))|" + "(今|明|前|大前|后|大后|昨)(?:日|天)" + "(?:[\\s,,]*)" + "(?:(上(?:午)|早(?:上)|下(?:午)|晚(?:上)|夜(?:晚)?|中(?:午)|凌(?:晨)))?" + ")?" + "(?:[\\s,,]*)" + "(?:(\\d+|[" + Object.keys(constants_1.NUMBER).join("") + "]+)(?:\\s*)(?:点|时|:|:)" + "(?:\\s*)" + "(\\d+|半|正|整|[" + Object.keys(constants_1.NUMBER).join("") + "]+)?(?:\\s*)(?:分|:|:)?" + "(?:\\s*)" + "(\\d+|[" + Object.keys(constants_1.NUMBER).join("") + "]+)?(?:\\s*)(?:秒)?)" + "(?:\\s*(A.M.|P.M.|AM?|PM?))?", "i"); +const DAY_GROUP_1 = 1; +const ZH_AM_PM_HOUR_GROUP_1 = 2; +const ZH_AM_PM_HOUR_GROUP_2 = 3; +const DAY_GROUP_3 = 4; +const ZH_AM_PM_HOUR_GROUP_3 = 5; +const HOUR_GROUP = 6; +const MINUTE_GROUP = 7; +const SECOND_GROUP = 8; +const AM_PM_HOUR_GROUP = 9; + +class ZHHansTimeExpressionParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { + innerPattern() { + return FIRST_REG_PATTERN; + } + + innerExtract(context, match) { + if (match.index > 0 && context.text[match.index - 1].match(/\w/)) { + return null; + } + + const refMoment = dayjs_1.default(context.refDate); + const result = context.createParsingResult(match.index, match[0]); + const startMoment = refMoment.clone(); + + if (match[DAY_GROUP_1]) { + const day1 = match[DAY_GROUP_1]; + + if (day1 == "明") { + if (refMoment.hour() > 1) { + startMoment.add(1, "day"); + } + } else if (day1 == "昨") { + startMoment.add(-1, "day"); + } else if (day1 == "前") { + startMoment.add(-2, "day"); + } else if (day1 == "大前") { + startMoment.add(-3, "day"); + } else if (day1 == "后") { + startMoment.add(2, "day"); + } else if (day1 == "大后") { + startMoment.add(3, "day"); + } + + result.start.assign("day", startMoment.date()); + result.start.assign("month", startMoment.month() + 1); + result.start.assign("year", startMoment.year()); + } else if (match[DAY_GROUP_3]) { + const day3 = match[DAY_GROUP_3]; + + if (day3 == "明") { + startMoment.add(1, "day"); + } else if (day3 == "昨") { + startMoment.add(-1, "day"); + } else if (day3 == "前") { + startMoment.add(-2, "day"); + } else if (day3 == "大前") { + startMoment.add(-3, "day"); + } else if (day3 == "后") { + startMoment.add(2, "day"); + } else if (day3 == "大后") { + startMoment.add(3, "day"); + } + + result.start.assign("day", startMoment.date()); + result.start.assign("month", startMoment.month() + 1); + result.start.assign("year", startMoment.year()); + } else { + result.start.imply("day", startMoment.date()); + result.start.imply("month", startMoment.month() + 1); + result.start.imply("year", startMoment.year()); + } + + let hour = 0; + let minute = 0; + let meridiem = -1; + + if (match[SECOND_GROUP]) { + let second = parseInt(match[SECOND_GROUP]); + + if (isNaN(second)) { + second = constants_1.zhStringToNumber(match[SECOND_GROUP]); + } + + if (second >= 60) return null; + result.start.assign("second", second); + } + + hour = parseInt(match[HOUR_GROUP]); + + if (isNaN(hour)) { + hour = constants_1.zhStringToNumber(match[HOUR_GROUP]); + } + + if (match[MINUTE_GROUP]) { + if (match[MINUTE_GROUP] == "半") { + minute = 30; + } else if (match[MINUTE_GROUP] == "正" || match[MINUTE_GROUP] == "整") { + minute = 0; + } else { + minute = parseInt(match[MINUTE_GROUP]); + + if (isNaN(minute)) { + minute = constants_1.zhStringToNumber(match[MINUTE_GROUP]); + } + } + } else if (hour > 100) { + minute = hour % 100; + hour = Math.floor(hour / 100); + } + + if (minute >= 60) { + return null; + } + + if (hour > 24) { + return null; + } + + if (hour >= 12) { + meridiem = 1; + } + + if (match[AM_PM_HOUR_GROUP]) { + if (hour > 12) return null; + const ampm = match[AM_PM_HOUR_GROUP][0].toLowerCase(); + + if (ampm == "a") { + meridiem = 0; + if (hour == 12) hour = 0; + } + + if (ampm == "p") { + meridiem = 1; + if (hour != 12) hour += 12; + } + } else if (match[ZH_AM_PM_HOUR_GROUP_1]) { + const zhAMPMString1 = match[ZH_AM_PM_HOUR_GROUP_1]; + const zhAMPM1 = zhAMPMString1[0]; + + if (zhAMPM1 == "早") { + meridiem = 0; + if (hour == 12) hour = 0; + } else if (zhAMPM1 == "晚") { + meridiem = 1; + if (hour != 12) hour += 12; + } + } else if (match[ZH_AM_PM_HOUR_GROUP_2]) { + const zhAMPMString2 = match[ZH_AM_PM_HOUR_GROUP_2]; + const zhAMPM2 = zhAMPMString2[0]; + + if (zhAMPM2 == "上" || zhAMPM2 == "早" || zhAMPM2 == "凌") { + meridiem = 0; + if (hour == 12) hour = 0; + } else if (zhAMPM2 == "下" || zhAMPM2 == "晚") { + meridiem = 1; + if (hour != 12) hour += 12; + } + } else if (match[ZH_AM_PM_HOUR_GROUP_3]) { + const zhAMPMString3 = match[ZH_AM_PM_HOUR_GROUP_3]; + const zhAMPM3 = zhAMPMString3[0]; + + if (zhAMPM3 == "上" || zhAMPM3 == "早" || zhAMPM3 == "凌") { + meridiem = 0; + if (hour == 12) hour = 0; + } else if (zhAMPM3 == "下" || zhAMPM3 == "晚") { + meridiem = 1; + if (hour != 12) hour += 12; + } + } + + result.start.assign("hour", hour); + result.start.assign("minute", minute); + + if (meridiem >= 0) { + result.start.assign("meridiem", meridiem); + } else { + if (hour < 12) { + result.start.imply("meridiem", 0); + } else { + result.start.imply("meridiem", 1); + } + } + + match = SECOND_REG_PATTERN.exec(context.text.substring(result.index + result.text.length)); + + if (!match) { + if (result.text.match(/^\d+$/)) { + return null; + } + + return result; + } + + const endMoment = startMoment.clone(); + result.end = context.createParsingComponents(); + + if (match[DAY_GROUP_1]) { + const day1 = match[DAY_GROUP_1]; + + if (day1 == "明") { + if (refMoment.hour() > 1) { + endMoment.add(1, "day"); + } + } else if (day1 == "昨") { + endMoment.add(-1, "day"); + } else if (day1 == "前") { + endMoment.add(-2, "day"); + } else if (day1 == "大前") { + endMoment.add(-3, "day"); + } else if (day1 == "后") { + endMoment.add(2, "day"); + } else if (day1 == "大后") { + endMoment.add(3, "day"); + } + + result.end.assign("day", endMoment.date()); + result.end.assign("month", endMoment.month() + 1); + result.end.assign("year", endMoment.year()); + } else if (match[DAY_GROUP_3]) { + const day3 = match[DAY_GROUP_3]; + + if (day3 == "明") { + endMoment.add(1, "day"); + } else if (day3 == "昨") { + endMoment.add(-1, "day"); + } else if (day3 == "前") { + endMoment.add(-2, "day"); + } else if (day3 == "大前") { + endMoment.add(-3, "day"); + } else if (day3 == "后") { + endMoment.add(2, "day"); + } else if (day3 == "大后") { + endMoment.add(3, "day"); + } + + result.end.assign("day", endMoment.date()); + result.end.assign("month", endMoment.month() + 1); + result.end.assign("year", endMoment.year()); + } else { + result.end.imply("day", endMoment.date()); + result.end.imply("month", endMoment.month() + 1); + result.end.imply("year", endMoment.year()); + } + + hour = 0; + minute = 0; + meridiem = -1; + + if (match[SECOND_GROUP]) { + let second = parseInt(match[SECOND_GROUP]); + + if (isNaN(second)) { + second = constants_1.zhStringToNumber(match[SECOND_GROUP]); + } + + if (second >= 60) return null; + result.end.assign("second", second); + } + + hour = parseInt(match[HOUR_GROUP]); + + if (isNaN(hour)) { + hour = constants_1.zhStringToNumber(match[HOUR_GROUP]); + } + + if (match[MINUTE_GROUP]) { + if (match[MINUTE_GROUP] == "半") { + minute = 30; + } else if (match[MINUTE_GROUP] == "正" || match[MINUTE_GROUP] == "整") { + minute = 0; + } else { + minute = parseInt(match[MINUTE_GROUP]); + + if (isNaN(minute)) { + minute = constants_1.zhStringToNumber(match[MINUTE_GROUP]); + } + } + } else if (hour > 100) { + minute = hour % 100; + hour = Math.floor(hour / 100); + } + + if (minute >= 60) { + return null; + } + + if (hour > 24) { + return null; + } + + if (hour >= 12) { + meridiem = 1; + } + + if (match[AM_PM_HOUR_GROUP]) { + if (hour > 12) return null; + const ampm = match[AM_PM_HOUR_GROUP][0].toLowerCase(); + + if (ampm == "a") { + meridiem = 0; + if (hour == 12) hour = 0; + } + + if (ampm == "p") { + meridiem = 1; + if (hour != 12) hour += 12; + } + + if (!result.start.isCertain("meridiem")) { + if (meridiem == 0) { + result.start.imply("meridiem", 0); + + if (result.start.get("hour") == 12) { + result.start.assign("hour", 0); + } + } else { + result.start.imply("meridiem", 1); + + if (result.start.get("hour") != 12) { + result.start.assign("hour", result.start.get("hour") + 12); + } + } + } + } else if (match[ZH_AM_PM_HOUR_GROUP_1]) { + const zhAMPMString1 = match[ZH_AM_PM_HOUR_GROUP_1]; + const zhAMPM1 = zhAMPMString1[0]; + + if (zhAMPM1 == "早") { + meridiem = 0; + if (hour == 12) hour = 0; + } else if (zhAMPM1 == "晚") { + meridiem = 1; + if (hour != 12) hour += 12; + } + } else if (match[ZH_AM_PM_HOUR_GROUP_2]) { + const zhAMPMString2 = match[ZH_AM_PM_HOUR_GROUP_2]; + const zhAMPM2 = zhAMPMString2[0]; + + if (zhAMPM2 == "上" || zhAMPM2 == "早" || zhAMPM2 == "凌") { + meridiem = 0; + if (hour == 12) hour = 0; + } else if (zhAMPM2 == "下" || zhAMPM2 == "晚") { + meridiem = 1; + if (hour != 12) hour += 12; + } + } else if (match[ZH_AM_PM_HOUR_GROUP_3]) { + const zhAMPMString3 = match[ZH_AM_PM_HOUR_GROUP_3]; + const zhAMPM3 = zhAMPMString3[0]; + + if (zhAMPM3 == "上" || zhAMPM3 == "早" || zhAMPM3 == "凌") { + meridiem = 0; + if (hour == 12) hour = 0; + } else if (zhAMPM3 == "下" || zhAMPM3 == "晚") { + meridiem = 1; + if (hour != 12) hour += 12; + } + } + + result.text = result.text + match[0]; + result.end.assign("hour", hour); + result.end.assign("minute", minute); + + if (meridiem >= 0) { + result.end.assign("meridiem", meridiem); + } else { + const startAtPM = result.start.isCertain("meridiem") && result.start.get("meridiem") == 1; + + if (startAtPM && result.start.get("hour") > hour) { + result.end.imply("meridiem", 0); + } else if (hour > 12) { + result.end.imply("meridiem", 1); + } + } + + if (result.end.date().getTime() < result.start.date().getTime()) { + result.end.imply("day", result.end.get("day") + 1); + } + + return result; + } + +} + +exports["default"] = ZHHansTimeExpressionParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/zh/hans/parsers/ZHHansWeekdayParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +var __importDefault = this && this.__importDefault || function (mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; +}; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const dayjs_1 = __importDefault(__webpack_require__("./node_modules/dayjs/dayjs.min.js")); + +const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); + +const constants_1 = __webpack_require__("./node_modules/chrono-node/dist/locales/zh/hans/constants.js"); + +const PATTERN = new RegExp("(?:星期|礼拜|周)(?" + Object.keys(constants_1.WEEKDAY_OFFSET).join("|") + ")"); + +class ZHHansWeekdayParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { + innerPattern() { + return PATTERN; + } + + innerExtract(context, match) { + const result = context.createParsingResult(match.index, match[0]); + const dayOfWeek = match.groups.weekday; + const offset = constants_1.WEEKDAY_OFFSET[dayOfWeek]; + if (offset === undefined) return null; + let startMoment = dayjs_1.default(context.refDate); + const startMomentFixed = false; + const refOffset = startMoment.day(); + + if (Math.abs(offset - 7 - refOffset) < Math.abs(offset - refOffset)) { + startMoment = startMoment.day(offset - 7); + } else if (Math.abs(offset + 7 - refOffset) < Math.abs(offset - refOffset)) { + startMoment = startMoment.day(offset + 7); + } else { + startMoment = startMoment.day(offset); + } + + result.start.assign("weekday", offset); + + if (startMomentFixed) { + result.start.assign("day", startMoment.date()); + result.start.assign("month", startMoment.month() + 1); + result.start.assign("year", startMoment.year()); + } else { + result.start.imply("day", startMoment.date()); + result.start.imply("month", startMoment.month() + 1); + result.start.imply("year", startMoment.year()); + } + + return result; + } + +} + +exports["default"] = ZHHansWeekdayParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/zh/hans/refiners/ZHHansMergeDateRangeRefiner.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +var __importDefault = this && this.__importDefault || function (mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; +}; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const AbstractMergeDateRangeRefiner_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/common/refiners/AbstractMergeDateRangeRefiner.js")); + +class ZHHansMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner_1.default { + patternBetween() { + return /^\s*(至|到|-|~|~|-|ー)\s*$/i; + } + +} + +exports["default"] = ZHHansMergeDateRangeRefiner; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/zh/hans/refiners/ZHHansMergeDateTimeRefiner.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +var __importDefault = this && this.__importDefault || function (mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; +}; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const AbstractMergeDateTimeRefiner_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/common/refiners/AbstractMergeDateTimeRefiner.js")); + +class ZHHansMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner_1.default { + patternBetween() { + return /^\s*$/i; + } + +} + +exports["default"] = ZHHansMergeDateTimeRefiner; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/zh/hant/constants.js": +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.zhStringToYear = exports.zhStringToNumber = exports.WEEKDAY_OFFSET = exports.NUMBER = void 0; +exports.NUMBER = { + "零": 0, + "一": 1, + "二": 2, + "兩": 2, + "三": 3, + "四": 4, + "五": 5, + "六": 6, + "七": 7, + "八": 8, + "九": 9, + "十": 10, + "廿": 20, + "卅": 30 +}; +exports.WEEKDAY_OFFSET = { + "天": 0, + "日": 0, + "一": 1, + "二": 2, + "三": 3, + "四": 4, + "五": 5, + "六": 6 +}; + +function zhStringToNumber(text) { + let number = 0; + + for (let i = 0; i < text.length; i++) { + const char = text[i]; + + if (char === "十") { + number = number === 0 ? exports.NUMBER[char] : number * exports.NUMBER[char]; + } else { + number += exports.NUMBER[char]; + } + } + + return number; +} + +exports.zhStringToNumber = zhStringToNumber; + +function zhStringToYear(text) { + let string = ""; + + for (let i = 0; i < text.length; i++) { + const char = text[i]; + string = string + exports.NUMBER[char]; + } + + return parseInt(string); +} + +exports.zhStringToYear = zhStringToYear; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/zh/hant/index.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +var __importDefault = this && this.__importDefault || function (mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; +}; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.createConfiguration = exports.createCasualConfiguration = exports.parseDate = exports.parse = exports.strict = exports.casual = exports.hant = void 0; + +const chrono_1 = __webpack_require__("./node_modules/chrono-node/dist/chrono.js"); + +const ExtractTimezoneOffsetRefiner_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/common/refiners/ExtractTimezoneOffsetRefiner.js")); + +const configurations_1 = __webpack_require__("./node_modules/chrono-node/dist/configurations.js"); + +const ZHHantCasualDateParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/zh/hant/parsers/ZHHantCasualDateParser.js")); + +const ZHHantDateParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/zh/hant/parsers/ZHHantDateParser.js")); + +const ZHHantDeadlineFormatParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/zh/hant/parsers/ZHHantDeadlineFormatParser.js")); + +const ZHHantRelationWeekdayParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/zh/hant/parsers/ZHHantRelationWeekdayParser.js")); + +const ZHHantTimeExpressionParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/zh/hant/parsers/ZHHantTimeExpressionParser.js")); + +const ZHHantWeekdayParser_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/zh/hant/parsers/ZHHantWeekdayParser.js")); + +const ZHHantMergeDateRangeRefiner_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/zh/hant/refiners/ZHHantMergeDateRangeRefiner.js")); + +const ZHHantMergeDateTimeRefiner_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/locales/zh/hant/refiners/ZHHantMergeDateTimeRefiner.js")); + +exports.hant = new chrono_1.Chrono(createCasualConfiguration()); +exports.casual = new chrono_1.Chrono(createCasualConfiguration()); +exports.strict = new chrono_1.Chrono(createConfiguration()); + +function parse(text, ref, option) { + return exports.casual.parse(text, ref, option); +} + +exports.parse = parse; + +function parseDate(text, ref, option) { + return exports.casual.parseDate(text, ref, option); +} + +exports.parseDate = parseDate; + +function createCasualConfiguration() { + const option = createConfiguration(); + option.parsers.unshift(new ZHHantCasualDateParser_1.default()); + return option; +} + +exports.createCasualConfiguration = createCasualConfiguration; + +function createConfiguration() { + const configuration = configurations_1.includeCommonConfiguration({ + parsers: [new ZHHantDateParser_1.default(), new ZHHantRelationWeekdayParser_1.default(), new ZHHantWeekdayParser_1.default(), new ZHHantTimeExpressionParser_1.default(), new ZHHantDeadlineFormatParser_1.default()], + refiners: [new ZHHantMergeDateRangeRefiner_1.default(), new ZHHantMergeDateTimeRefiner_1.default()] + }); + configuration.refiners = configuration.refiners.filter(refiner => !(refiner instanceof ExtractTimezoneOffsetRefiner_1.default)); + return configuration; +} + +exports.createConfiguration = createConfiguration; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/zh/hant/parsers/ZHHantCasualDateParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +var __importDefault = this && this.__importDefault || function (mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; +}; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const dayjs_1 = __importDefault(__webpack_require__("./node_modules/dayjs/dayjs.min.js")); + +const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); + +const NOW_GROUP = 1; +const DAY_GROUP_1 = 2; +const TIME_GROUP_1 = 3; +const TIME_GROUP_2 = 4; +const DAY_GROUP_3 = 5; +const TIME_GROUP_3 = 6; + +class ZHHantCasualDateParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { + innerPattern(context) { + return new RegExp("(而家|立(?:刻|即)|即刻)|" + "(今|明|前|大前|後|大後|聽|昨|尋|琴)(早|朝|晚)|" + "(上(?:午|晝)|朝(?:早)|早(?:上)|下(?:午|晝)|晏(?:晝)|晚(?:上)|夜(?:晚)?|中(?:午)|凌(?:晨))|" + "(今|明|前|大前|後|大後|聽|昨|尋|琴)(?:日|天)" + "(?:[\\s|,|,]*)" + "(?:(上(?:午|晝)|朝(?:早)|早(?:上)|下(?:午|晝)|晏(?:晝)|晚(?:上)|夜(?:晚)?|中(?:午)|凌(?:晨)))?", "i"); + } + + innerExtract(context, match) { + const index = match.index; + const result = context.createParsingResult(index, match[0]); + const refMoment = dayjs_1.default(context.refDate); + let startMoment = refMoment; + + if (match[NOW_GROUP]) { + result.start.imply("hour", refMoment.hour()); + result.start.imply("minute", refMoment.minute()); + result.start.imply("second", refMoment.second()); + result.start.imply("millisecond", refMoment.millisecond()); + } else if (match[DAY_GROUP_1]) { + const day1 = match[DAY_GROUP_1]; + const time1 = match[TIME_GROUP_1]; + + if (day1 == "明" || day1 == "聽") { + if (refMoment.hour() > 1) { + startMoment = startMoment.add(1, "day"); + } + } else if (day1 == "昨" || day1 == "尋" || day1 == "琴") { + startMoment = startMoment.add(-1, "day"); + } else if (day1 == "前") { + startMoment = startMoment.add(-2, "day"); + } else if (day1 == "大前") { + startMoment = startMoment.add(-3, "day"); + } else if (day1 == "後") { + startMoment = startMoment.add(2, "day"); + } else if (day1 == "大後") { + startMoment = startMoment.add(3, "day"); + } + + if (time1 == "早" || time1 == "朝") { + result.start.imply("hour", 6); + } else if (time1 == "晚") { + result.start.imply("hour", 22); + result.start.imply("meridiem", 1); + } + } else if (match[TIME_GROUP_2]) { + const timeString2 = match[TIME_GROUP_2]; + const time2 = timeString2[0]; + + if (time2 == "早" || time2 == "朝" || time2 == "上") { + result.start.imply("hour", 6); + } else if (time2 == "下" || time2 == "晏") { + result.start.imply("hour", 15); + result.start.imply("meridiem", 1); + } else if (time2 == "中") { + result.start.imply("hour", 12); + result.start.imply("meridiem", 1); + } else if (time2 == "夜" || time2 == "晚") { + result.start.imply("hour", 22); + result.start.imply("meridiem", 1); + } else if (time2 == "凌") { + result.start.imply("hour", 0); + } + } else if (match[DAY_GROUP_3]) { + const day3 = match[DAY_GROUP_3]; + + if (day3 == "明" || day3 == "聽") { + if (refMoment.hour() > 1) { + startMoment = startMoment.add(1, "day"); + } + } else if (day3 == "昨" || day3 == "尋" || day3 == "琴") { + startMoment = startMoment.add(-1, "day"); + } else if (day3 == "前") { + startMoment = startMoment.add(-2, "day"); + } else if (day3 == "大前") { + startMoment = startMoment.add(-3, "day"); + } else if (day3 == "後") { + startMoment = startMoment.add(2, "day"); + } else if (day3 == "大後") { + startMoment = startMoment.add(3, "day"); + } + + const timeString3 = match[TIME_GROUP_3]; + + if (timeString3) { + const time3 = timeString3[0]; + + if (time3 == "早" || time3 == "朝" || time3 == "上") { + result.start.imply("hour", 6); + } else if (time3 == "下" || time3 == "晏") { + result.start.imply("hour", 15); + result.start.imply("meridiem", 1); + } else if (time3 == "中") { + result.start.imply("hour", 12); + result.start.imply("meridiem", 1); + } else if (time3 == "夜" || time3 == "晚") { + result.start.imply("hour", 22); + result.start.imply("meridiem", 1); + } else if (time3 == "凌") { + result.start.imply("hour", 0); + } + } + } + + result.start.assign("day", startMoment.date()); + result.start.assign("month", startMoment.month() + 1); + result.start.assign("year", startMoment.year()); + return result; + } + +} + +exports["default"] = ZHHantCasualDateParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/zh/hant/parsers/ZHHantDateParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +var __importDefault = this && this.__importDefault || function (mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; +}; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const dayjs_1 = __importDefault(__webpack_require__("./node_modules/dayjs/dayjs.min.js")); + +const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); + +const constants_1 = __webpack_require__("./node_modules/chrono-node/dist/locales/zh/hant/constants.js"); + +const YEAR_GROUP = 1; +const MONTH_GROUP = 2; +const DAY_GROUP = 3; + +class ZHHantDateParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { + innerPattern() { + return new RegExp("(" + "\\d{2,4}|" + "[" + Object.keys(constants_1.NUMBER).join("") + "]{4}|" + "[" + Object.keys(constants_1.NUMBER).join("") + "]{2}" + ")?" + "(?:\\s*)" + "(?:年)?" + "(?:[\\s|,|,]*)" + "(" + "\\d{1,2}|" + "[" + Object.keys(constants_1.NUMBER).join("") + "]{1,2}" + ")" + "(?:\\s*)" + "(?:月)" + "(?:\\s*)" + "(" + "\\d{1,2}|" + "[" + Object.keys(constants_1.NUMBER).join("") + "]{1,2}" + ")?" + "(?:\\s*)" + "(?:日|號)?"); + } + + innerExtract(context, match) { + const startMoment = dayjs_1.default(context.refDate); + const result = context.createParsingResult(match.index, match[0]); + let month = parseInt(match[MONTH_GROUP]); + if (isNaN(month)) month = constants_1.zhStringToNumber(match[MONTH_GROUP]); + result.start.assign("month", month); + + if (match[DAY_GROUP]) { + let day = parseInt(match[DAY_GROUP]); + if (isNaN(day)) day = constants_1.zhStringToNumber(match[DAY_GROUP]); + result.start.assign("day", day); + } else { + result.start.imply("day", startMoment.date()); + } + + if (match[YEAR_GROUP]) { + let year = parseInt(match[YEAR_GROUP]); + if (isNaN(year)) year = constants_1.zhStringToYear(match[YEAR_GROUP]); + result.start.assign("year", year); + } else { + result.start.imply("year", startMoment.year()); + } + + return result; + } + +} + +exports["default"] = ZHHantDateParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/zh/hant/parsers/ZHHantDeadlineFormatParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +var __importDefault = this && this.__importDefault || function (mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; +}; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const dayjs_1 = __importDefault(__webpack_require__("./node_modules/dayjs/dayjs.min.js")); + +const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); + +const constants_1 = __webpack_require__("./node_modules/chrono-node/dist/locales/zh/hant/constants.js"); + +const PATTERN = new RegExp("(\\d+|[" + Object.keys(constants_1.NUMBER).join("") + "]+|半|幾)(?:\\s*)" + "(?:個)?" + "(秒(?:鐘)?|分鐘|小時|鐘|日|天|星期|禮拜|月|年)" + "(?:(?:之|過)?後|(?:之)?內)", "i"); +const NUMBER_GROUP = 1; +const UNIT_GROUP = 2; + +class ZHHantDeadlineFormatParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { + innerPattern() { + return PATTERN; + } + + innerExtract(context, match) { + const result = context.createParsingResult(match.index, match[0]); + let number = parseInt(match[NUMBER_GROUP]); + + if (isNaN(number)) { + number = constants_1.zhStringToNumber(match[NUMBER_GROUP]); + } + + if (isNaN(number)) { + const string = match[NUMBER_GROUP]; + + if (string === "幾") { + number = 3; + } else if (string === "半") { + number = 0.5; + } else { + return null; + } + } + + let date = dayjs_1.default(context.refDate); + const unit = match[UNIT_GROUP]; + const unitAbbr = unit[0]; + + if (unitAbbr.match(/[日天星禮月年]/)) { + if (unitAbbr == "日" || unitAbbr == "天") { + date = date.add(number, "d"); + } else if (unitAbbr == "星" || unitAbbr == "禮") { + date = date.add(number * 7, "d"); + } else if (unitAbbr == "月") { + date = date.add(number, "month"); + } else if (unitAbbr == "年") { + date = date.add(number, "year"); + } + + result.start.assign("year", date.year()); + result.start.assign("month", date.month() + 1); + result.start.assign("day", date.date()); + return result; + } + + if (unitAbbr == "秒") { + date = date.add(number, "second"); + } else if (unitAbbr == "分") { + date = date.add(number, "minute"); + } else if (unitAbbr == "小" || unitAbbr == "鐘") { + date = date.add(number, "hour"); + } + + result.start.imply("year", date.year()); + result.start.imply("month", date.month() + 1); + result.start.imply("day", date.date()); + result.start.assign("hour", date.hour()); + result.start.assign("minute", date.minute()); + result.start.assign("second", date.second()); + return result; + } + +} + +exports["default"] = ZHHantDeadlineFormatParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/zh/hant/parsers/ZHHantRelationWeekdayParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +var __importDefault = this && this.__importDefault || function (mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; +}; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const dayjs_1 = __importDefault(__webpack_require__("./node_modules/dayjs/dayjs.min.js")); + +const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); + +const constants_1 = __webpack_require__("./node_modules/chrono-node/dist/locales/zh/hant/constants.js"); + +const PATTERN = new RegExp("(?上|今|下|這|呢)(?:個)?(?:星期|禮拜|週)(?" + Object.keys(constants_1.WEEKDAY_OFFSET).join("|") + ")"); + +class ZHHantRelationWeekdayParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { + innerPattern() { + return PATTERN; + } + + innerExtract(context, match) { + const result = context.createParsingResult(match.index, match[0]); + const dayOfWeek = match.groups.weekday; + const offset = constants_1.WEEKDAY_OFFSET[dayOfWeek]; + if (offset === undefined) return null; + let modifier = null; + const prefix = match.groups.prefix; + + if (prefix == "上") { + modifier = "last"; + } else if (prefix == "下") { + modifier = "next"; + } else if (prefix == "今" || prefix == "這" || prefix == "呢") { + modifier = "this"; + } + + let startMoment = dayjs_1.default(context.refDate); + let startMomentFixed = false; + const refOffset = startMoment.day(); + + if (modifier == "last" || modifier == "past") { + startMoment = startMoment.day(offset - 7); + startMomentFixed = true; + } else if (modifier == "next") { + startMoment = startMoment.day(offset + 7); + startMomentFixed = true; + } else if (modifier == "this") { + startMoment = startMoment.day(offset); + } else { + if (Math.abs(offset - 7 - refOffset) < Math.abs(offset - refOffset)) { + startMoment = startMoment.day(offset - 7); + } else if (Math.abs(offset + 7 - refOffset) < Math.abs(offset - refOffset)) { + startMoment = startMoment.day(offset + 7); + } else { + startMoment = startMoment.day(offset); + } + } + + result.start.assign("weekday", offset); + + if (startMomentFixed) { + result.start.assign("day", startMoment.date()); + result.start.assign("month", startMoment.month() + 1); + result.start.assign("year", startMoment.year()); + } else { + result.start.imply("day", startMoment.date()); + result.start.imply("month", startMoment.month() + 1); + result.start.imply("year", startMoment.year()); + } + + return result; + } + +} + +exports["default"] = ZHHantRelationWeekdayParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/zh/hant/parsers/ZHHantTimeExpressionParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +var __importDefault = this && this.__importDefault || function (mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; +}; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const dayjs_1 = __importDefault(__webpack_require__("./node_modules/dayjs/dayjs.min.js")); + +const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); + +const constants_1 = __webpack_require__("./node_modules/chrono-node/dist/locales/zh/hant/constants.js"); + +const FIRST_REG_PATTERN = new RegExp("(?:由|從|自)?" + "(?:" + "(今|明|前|大前|後|大後|聽|昨|尋|琴)(早|朝|晚)|" + "(上(?:午|晝)|朝(?:早)|早(?:上)|下(?:午|晝)|晏(?:晝)|晚(?:上)|夜(?:晚)?|中(?:午)|凌(?:晨))|" + "(今|明|前|大前|後|大後|聽|昨|尋|琴)(?:日|天)" + "(?:[\\s,,]*)" + "(?:(上(?:午|晝)|朝(?:早)|早(?:上)|下(?:午|晝)|晏(?:晝)|晚(?:上)|夜(?:晚)?|中(?:午)|凌(?:晨)))?" + ")?" + "(?:[\\s,,]*)" + "(?:(\\d+|[" + Object.keys(constants_1.NUMBER).join("") + "]+)(?:\\s*)(?:點|時|:|:)" + "(?:\\s*)" + "(\\d+|半|正|整|[" + Object.keys(constants_1.NUMBER).join("") + "]+)?(?:\\s*)(?:分|:|:)?" + "(?:\\s*)" + "(\\d+|[" + Object.keys(constants_1.NUMBER).join("") + "]+)?(?:\\s*)(?:秒)?)" + "(?:\\s*(A.M.|P.M.|AM?|PM?))?", "i"); +const SECOND_REG_PATTERN = new RegExp("(?:^\\s*(?:到|至|\\-|\\–|\\~|\\〜)\\s*)" + "(?:" + "(今|明|前|大前|後|大後|聽|昨|尋|琴)(早|朝|晚)|" + "(上(?:午|晝)|朝(?:早)|早(?:上)|下(?:午|晝)|晏(?:晝)|晚(?:上)|夜(?:晚)?|中(?:午)|凌(?:晨))|" + "(今|明|前|大前|後|大後|聽|昨|尋|琴)(?:日|天)" + "(?:[\\s,,]*)" + "(?:(上(?:午|晝)|朝(?:早)|早(?:上)|下(?:午|晝)|晏(?:晝)|晚(?:上)|夜(?:晚)?|中(?:午)|凌(?:晨)))?" + ")?" + "(?:[\\s,,]*)" + "(?:(\\d+|[" + Object.keys(constants_1.NUMBER).join("") + "]+)(?:\\s*)(?:點|時|:|:)" + "(?:\\s*)" + "(\\d+|半|正|整|[" + Object.keys(constants_1.NUMBER).join("") + "]+)?(?:\\s*)(?:分|:|:)?" + "(?:\\s*)" + "(\\d+|[" + Object.keys(constants_1.NUMBER).join("") + "]+)?(?:\\s*)(?:秒)?)" + "(?:\\s*(A.M.|P.M.|AM?|PM?))?", "i"); +const DAY_GROUP_1 = 1; +const ZH_AM_PM_HOUR_GROUP_1 = 2; +const ZH_AM_PM_HOUR_GROUP_2 = 3; +const DAY_GROUP_3 = 4; +const ZH_AM_PM_HOUR_GROUP_3 = 5; +const HOUR_GROUP = 6; +const MINUTE_GROUP = 7; +const SECOND_GROUP = 8; +const AM_PM_HOUR_GROUP = 9; + +class ZHHantTimeExpressionParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { + innerPattern() { + return FIRST_REG_PATTERN; + } + + innerExtract(context, match) { + if (match.index > 0 && context.text[match.index - 1].match(/\w/)) { + return null; + } + + const refMoment = dayjs_1.default(context.refDate); + const result = context.createParsingResult(match.index, match[0]); + const startMoment = refMoment.clone(); + + if (match[DAY_GROUP_1]) { + var day1 = match[DAY_GROUP_1]; + + if (day1 == "明" || day1 == "聽") { + if (refMoment.hour() > 1) { + startMoment.add(1, "day"); + } + } else if (day1 == "昨" || day1 == "尋" || day1 == "琴") { + startMoment.add(-1, "day"); + } else if (day1 == "前") { + startMoment.add(-2, "day"); + } else if (day1 == "大前") { + startMoment.add(-3, "day"); + } else if (day1 == "後") { + startMoment.add(2, "day"); + } else if (day1 == "大後") { + startMoment.add(3, "day"); + } + + result.start.assign("day", startMoment.date()); + result.start.assign("month", startMoment.month() + 1); + result.start.assign("year", startMoment.year()); + } else if (match[DAY_GROUP_3]) { + var day3 = match[DAY_GROUP_3]; + + if (day3 == "明" || day3 == "聽") { + startMoment.add(1, "day"); + } else if (day3 == "昨" || day3 == "尋" || day3 == "琴") { + startMoment.add(-1, "day"); + } else if (day3 == "前") { + startMoment.add(-2, "day"); + } else if (day3 == "大前") { + startMoment.add(-3, "day"); + } else if (day3 == "後") { + startMoment.add(2, "day"); + } else if (day3 == "大後") { + startMoment.add(3, "day"); + } + + result.start.assign("day", startMoment.date()); + result.start.assign("month", startMoment.month() + 1); + result.start.assign("year", startMoment.year()); + } else { + result.start.imply("day", startMoment.date()); + result.start.imply("month", startMoment.month() + 1); + result.start.imply("year", startMoment.year()); + } + + let hour = 0; + let minute = 0; + let meridiem = -1; + + if (match[SECOND_GROUP]) { + var second = parseInt(match[SECOND_GROUP]); + + if (isNaN(second)) { + second = constants_1.zhStringToNumber(match[SECOND_GROUP]); + } + + if (second >= 60) return null; + result.start.assign("second", second); + } + + hour = parseInt(match[HOUR_GROUP]); + + if (isNaN(hour)) { + hour = constants_1.zhStringToNumber(match[HOUR_GROUP]); + } + + if (match[MINUTE_GROUP]) { + if (match[MINUTE_GROUP] == "半") { + minute = 30; + } else if (match[MINUTE_GROUP] == "正" || match[MINUTE_GROUP] == "整") { + minute = 0; + } else { + minute = parseInt(match[MINUTE_GROUP]); + + if (isNaN(minute)) { + minute = constants_1.zhStringToNumber(match[MINUTE_GROUP]); + } + } + } else if (hour > 100) { + minute = hour % 100; + hour = Math.floor(hour / 100); + } + + if (minute >= 60) { + return null; + } + + if (hour > 24) { + return null; + } + + if (hour >= 12) { + meridiem = 1; + } + + if (match[AM_PM_HOUR_GROUP]) { + if (hour > 12) return null; + var ampm = match[AM_PM_HOUR_GROUP][0].toLowerCase(); + + if (ampm == "a") { + meridiem = 0; + if (hour == 12) hour = 0; + } + + if (ampm == "p") { + meridiem = 1; + if (hour != 12) hour += 12; + } + } else if (match[ZH_AM_PM_HOUR_GROUP_1]) { + var zhAMPMString1 = match[ZH_AM_PM_HOUR_GROUP_1]; + var zhAMPM1 = zhAMPMString1[0]; + + if (zhAMPM1 == "朝" || zhAMPM1 == "早") { + meridiem = 0; + if (hour == 12) hour = 0; + } else if (zhAMPM1 == "晚") { + meridiem = 1; + if (hour != 12) hour += 12; + } + } else if (match[ZH_AM_PM_HOUR_GROUP_2]) { + var zhAMPMString2 = match[ZH_AM_PM_HOUR_GROUP_2]; + var zhAMPM2 = zhAMPMString2[0]; + + if (zhAMPM2 == "上" || zhAMPM2 == "朝" || zhAMPM2 == "早" || zhAMPM2 == "凌") { + meridiem = 0; + if (hour == 12) hour = 0; + } else if (zhAMPM2 == "下" || zhAMPM2 == "晏" || zhAMPM2 == "晚") { + meridiem = 1; + if (hour != 12) hour += 12; + } + } else if (match[ZH_AM_PM_HOUR_GROUP_3]) { + var zhAMPMString3 = match[ZH_AM_PM_HOUR_GROUP_3]; + var zhAMPM3 = zhAMPMString3[0]; + + if (zhAMPM3 == "上" || zhAMPM3 == "朝" || zhAMPM3 == "早" || zhAMPM3 == "凌") { + meridiem = 0; + if (hour == 12) hour = 0; + } else if (zhAMPM3 == "下" || zhAMPM3 == "晏" || zhAMPM3 == "晚") { + meridiem = 1; + if (hour != 12) hour += 12; + } + } + + result.start.assign("hour", hour); + result.start.assign("minute", minute); + + if (meridiem >= 0) { + result.start.assign("meridiem", meridiem); + } else { + if (hour < 12) { + result.start.imply("meridiem", 0); + } else { + result.start.imply("meridiem", 1); + } + } + + match = SECOND_REG_PATTERN.exec(context.text.substring(result.index + result.text.length)); + + if (!match) { + if (result.text.match(/^\d+$/)) { + return null; + } + + return result; + } + + const endMoment = startMoment.clone(); + result.end = context.createParsingComponents(); + + if (match[DAY_GROUP_1]) { + var day1 = match[DAY_GROUP_1]; + + if (day1 == "明" || day1 == "聽") { + if (refMoment.hour() > 1) { + endMoment.add(1, "day"); + } + } else if (day1 == "昨" || day1 == "尋" || day1 == "琴") { + endMoment.add(-1, "day"); + } else if (day1 == "前") { + endMoment.add(-2, "day"); + } else if (day1 == "大前") { + endMoment.add(-3, "day"); + } else if (day1 == "後") { + endMoment.add(2, "day"); + } else if (day1 == "大後") { + endMoment.add(3, "day"); + } + + result.end.assign("day", endMoment.date()); + result.end.assign("month", endMoment.month() + 1); + result.end.assign("year", endMoment.year()); + } else if (match[DAY_GROUP_3]) { + var day3 = match[DAY_GROUP_3]; + + if (day3 == "明" || day3 == "聽") { + endMoment.add(1, "day"); + } else if (day3 == "昨" || day3 == "尋" || day3 == "琴") { + endMoment.add(-1, "day"); + } else if (day3 == "前") { + endMoment.add(-2, "day"); + } else if (day3 == "大前") { + endMoment.add(-3, "day"); + } else if (day3 == "後") { + endMoment.add(2, "day"); + } else if (day3 == "大後") { + endMoment.add(3, "day"); + } + + result.end.assign("day", endMoment.date()); + result.end.assign("month", endMoment.month() + 1); + result.end.assign("year", endMoment.year()); + } else { + result.end.imply("day", endMoment.date()); + result.end.imply("month", endMoment.month() + 1); + result.end.imply("year", endMoment.year()); + } + + hour = 0; + minute = 0; + meridiem = -1; + + if (match[SECOND_GROUP]) { + var second = parseInt(match[SECOND_GROUP]); + + if (isNaN(second)) { + second = constants_1.zhStringToNumber(match[SECOND_GROUP]); + } + + if (second >= 60) return null; + result.end.assign("second", second); + } + + hour = parseInt(match[HOUR_GROUP]); + + if (isNaN(hour)) { + hour = constants_1.zhStringToNumber(match[HOUR_GROUP]); + } + + if (match[MINUTE_GROUP]) { + if (match[MINUTE_GROUP] == "半") { + minute = 30; + } else if (match[MINUTE_GROUP] == "正" || match[MINUTE_GROUP] == "整") { + minute = 0; + } else { + minute = parseInt(match[MINUTE_GROUP]); + + if (isNaN(minute)) { + minute = constants_1.zhStringToNumber(match[MINUTE_GROUP]); + } + } + } else if (hour > 100) { + minute = hour % 100; + hour = Math.floor(hour / 100); + } + + if (minute >= 60) { + return null; + } + + if (hour > 24) { + return null; + } + + if (hour >= 12) { + meridiem = 1; + } + + if (match[AM_PM_HOUR_GROUP]) { + if (hour > 12) return null; + var ampm = match[AM_PM_HOUR_GROUP][0].toLowerCase(); + + if (ampm == "a") { + meridiem = 0; + if (hour == 12) hour = 0; + } + + if (ampm == "p") { + meridiem = 1; + if (hour != 12) hour += 12; + } + + if (!result.start.isCertain("meridiem")) { + if (meridiem == 0) { + result.start.imply("meridiem", 0); + + if (result.start.get("hour") == 12) { + result.start.assign("hour", 0); + } + } else { + result.start.imply("meridiem", 1); + + if (result.start.get("hour") != 12) { + result.start.assign("hour", result.start.get("hour") + 12); + } + } + } + } else if (match[ZH_AM_PM_HOUR_GROUP_1]) { + var zhAMPMString1 = match[ZH_AM_PM_HOUR_GROUP_1]; + var zhAMPM1 = zhAMPMString1[0]; + + if (zhAMPM1 == "朝" || zhAMPM1 == "早") { + meridiem = 0; + if (hour == 12) hour = 0; + } else if (zhAMPM1 == "晚") { + meridiem = 1; + if (hour != 12) hour += 12; + } + } else if (match[ZH_AM_PM_HOUR_GROUP_2]) { + var zhAMPMString2 = match[ZH_AM_PM_HOUR_GROUP_2]; + var zhAMPM2 = zhAMPMString2[0]; + + if (zhAMPM2 == "上" || zhAMPM2 == "朝" || zhAMPM2 == "早" || zhAMPM2 == "凌") { + meridiem = 0; + if (hour == 12) hour = 0; + } else if (zhAMPM2 == "下" || zhAMPM2 == "晏" || zhAMPM2 == "晚") { + meridiem = 1; + if (hour != 12) hour += 12; + } + } else if (match[ZH_AM_PM_HOUR_GROUP_3]) { + var zhAMPMString3 = match[ZH_AM_PM_HOUR_GROUP_3]; + var zhAMPM3 = zhAMPMString3[0]; + + if (zhAMPM3 == "上" || zhAMPM3 == "朝" || zhAMPM3 == "早" || zhAMPM3 == "凌") { + meridiem = 0; + if (hour == 12) hour = 0; + } else if (zhAMPM3 == "下" || zhAMPM3 == "晏" || zhAMPM3 == "晚") { + meridiem = 1; + if (hour != 12) hour += 12; + } + } + + result.text = result.text + match[0]; + result.end.assign("hour", hour); + result.end.assign("minute", minute); + + if (meridiem >= 0) { + result.end.assign("meridiem", meridiem); + } else { + const startAtPM = result.start.isCertain("meridiem") && result.start.get("meridiem") == 1; + + if (startAtPM && result.start.get("hour") > hour) { + result.end.imply("meridiem", 0); + } else if (hour > 12) { + result.end.imply("meridiem", 1); + } + } + + if (result.end.date().getTime() < result.start.date().getTime()) { + result.end.imply("day", result.end.get("day") + 1); + } + + return result; + } + +} + +exports["default"] = ZHHantTimeExpressionParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/zh/hant/parsers/ZHHantWeekdayParser.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +var __importDefault = this && this.__importDefault || function (mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; +}; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const dayjs_1 = __importDefault(__webpack_require__("./node_modules/dayjs/dayjs.min.js")); + +const AbstractParserWithWordBoundary_1 = __webpack_require__("./node_modules/chrono-node/dist/common/parsers/AbstractParserWithWordBoundary.js"); + +const constants_1 = __webpack_require__("./node_modules/chrono-node/dist/locales/zh/hant/constants.js"); + +const PATTERN = new RegExp("(?:星期|禮拜|週)(?" + Object.keys(constants_1.WEEKDAY_OFFSET).join("|") + ")"); + +class ZHHantWeekdayParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { + innerPattern() { + return PATTERN; + } + + innerExtract(context, match) { + const result = context.createParsingResult(match.index, match[0]); + const dayOfWeek = match.groups.weekday; + const offset = constants_1.WEEKDAY_OFFSET[dayOfWeek]; + if (offset === undefined) return null; + let startMoment = dayjs_1.default(context.refDate); + const startMomentFixed = false; + const refOffset = startMoment.day(); + + if (Math.abs(offset - 7 - refOffset) < Math.abs(offset - refOffset)) { + startMoment = startMoment.day(offset - 7); + } else if (Math.abs(offset + 7 - refOffset) < Math.abs(offset - refOffset)) { + startMoment = startMoment.day(offset + 7); + } else { + startMoment = startMoment.day(offset); + } + + result.start.assign("weekday", offset); + + if (startMomentFixed) { + result.start.assign("day", startMoment.date()); + result.start.assign("month", startMoment.month() + 1); + result.start.assign("year", startMoment.year()); + } else { + result.start.imply("day", startMoment.date()); + result.start.imply("month", startMoment.month() + 1); + result.start.imply("year", startMoment.year()); + } + + return result; + } + +} + +exports["default"] = ZHHantWeekdayParser; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/zh/hant/refiners/ZHHantMergeDateRangeRefiner.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +var __importDefault = this && this.__importDefault || function (mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; +}; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const AbstractMergeDateRangeRefiner_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/common/refiners/AbstractMergeDateRangeRefiner.js")); + +class ZHHantMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner_1.default { + patternBetween() { + return /^\s*(至|到|\-|\~|~|-|ー)\s*$/i; + } + +} + +exports["default"] = ZHHantMergeDateRangeRefiner; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/zh/hant/refiners/ZHHantMergeDateTimeRefiner.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +var __importDefault = this && this.__importDefault || function (mod) { + return mod && mod.__esModule ? mod : { + "default": mod + }; +}; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); + +const AbstractMergeDateTimeRefiner_1 = __importDefault(__webpack_require__("./node_modules/chrono-node/dist/common/refiners/AbstractMergeDateTimeRefiner.js")); + +class ZHHantMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner_1.default { + patternBetween() { + return /^\s*$/i; + } + +} + +exports["default"] = ZHHantMergeDateTimeRefiner; + +/***/ }), + +/***/ "./node_modules/chrono-node/dist/locales/zh/index.js": +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + + +var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { + enumerable: true, + get: function () { + return m[k]; + } + }); +} : function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +}); + +var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) { + Object.defineProperty(o, "default", { + enumerable: true, + value: v + }); +} : function (o, v) { + o["default"] = v; +}); + +var __exportStar = this && this.__exportStar || function (m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; + +var __importStar = this && this.__importStar || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + + __setModuleDefault(result, mod); + + return result; +}; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.hans = void 0; + +__exportStar(__webpack_require__("./node_modules/chrono-node/dist/locales/zh/hant/index.js"), exports); + +exports.hans = __importStar(__webpack_require__("./node_modules/chrono-node/dist/locales/zh/hans/index.js")); /***/ }), @@ -6555,19 +10577,34 @@ dayjs_1.default.extend(quarterOfYear_1.default); class ReferenceWithTimezone { constructor(input) { - var _a, _b; + var _a; input = input !== null && input !== void 0 ? input : new Date(); if (input instanceof Date) { this.instant = input; - this.timezoneOffset = -input.getTimezoneOffset(); } else { this.instant = (_a = input.instant) !== null && _a !== void 0 ? _a : new Date(); - this.timezoneOffset = timezone_1.toTimezoneOffset((_b = input.timezone) !== null && _b !== void 0 ? _b : -this.instant.getTimezoneOffset()); + this.timezoneOffset = timezone_1.toTimezoneOffset(input.timezone); } } + getDateWithAdjustedTimezone() { + return new Date(this.instant.getTime() + this.getSystemTimezoneAdjustmentMinute(this.instant) * 60000); + } + + getSystemTimezoneAdjustmentMinute(date, overrideTimezoneOffset) { + var _a; + + if (!date || date.getTime() < 0) { + date = new Date(); + } + + const currentTimezoneOffset = -date.getTimezoneOffset(); + const targetTimezoneOffset = (_a = overrideTimezoneOffset !== null && overrideTimezoneOffset !== void 0 ? overrideTimezoneOffset : this.timezoneOffset) !== null && _a !== void 0 ? _a : currentTimezoneOffset; + return currentTimezoneOffset - targetTimezoneOffset; + } + } exports.ReferenceWithTimezone = ReferenceWithTimezone; @@ -6677,7 +10714,7 @@ class ParsingComponents { } toString() { - return `[ParsingComponents {knownValues: ${JSON.stringify(this.knownValues)}, impliedValues: ${JSON.stringify(this.impliedValues)}}]`; + return `[ParsingComponents {knownValues: ${JSON.stringify(this.knownValues)}, impliedValues: ${JSON.stringify(this.impliedValues)}}, reference: ${JSON.stringify(this.reference)}]`; } dayjs() { @@ -6686,7 +10723,8 @@ class ParsingComponents { date() { const date = this.dateWithoutTimezoneAdjustment(); - return new Date(date.getTime() + this.getSystemTimezoneAdjustmentMinute() * 60000); + const timezoneAdjustment = this.reference.getSystemTimezoneAdjustmentMinute(date, this.get("timezoneOffset")); + return new Date(date.getTime() + timezoneAdjustment * 60000); } dateWithoutTimezoneAdjustment() { @@ -6695,31 +10733,28 @@ class ParsingComponents { return date; } - getSystemTimezoneAdjustmentMinute() { - var _a; - - const currentTimezoneOffset = -new Date().getTimezoneOffset(); - const targetTimezoneOffset = (_a = this.get("timezoneOffset")) !== null && _a !== void 0 ? _a : this.reference.timezoneOffset; - return currentTimezoneOffset - targetTimezoneOffset; - } - - static createRelativeFromRefInstant(refInstant, fragments) { - let date = dayjs_1.default(refInstant); + static createRelativeFromReference(reference, fragments) { + let date = dayjs_1.default(reference.instant); for (const key in fragments) { date = date.add(fragments[key], key); } - const reference = new ReferenceWithTimezone(refInstant); const components = new ParsingComponents(reference); if (fragments["hour"] || fragments["minute"] || fragments["second"]) { dayjs_2.assignSimilarTime(components, date); dayjs_2.assignSimilarDate(components, date); - components.assign("timezoneOffset", -refInstant.getTimezoneOffset()); + + if (reference.timezoneOffset !== null) { + components.assign("timezoneOffset", -reference.instant.getTimezoneOffset()); + } } else { dayjs_2.implySimilarTime(components, date); - components.imply("timezoneOffset", -refInstant.getTimezoneOffset()); + + if (reference.timezoneOffset !== null) { + components.imply("timezoneOffset", -reference.instant.getTimezoneOffset()); + } if (fragments["d"]) { components.assign("day", date.date()); @@ -6911,7 +10946,7 @@ exports.TIMEZONE_ABBR_MAP = { MHT: 720, MMT: 390, MSD: 240, - MSK: 240, + MSK: 180, MST: -420, MUT: 240, MVT: 300, @@ -6992,11 +11027,15 @@ exports.TIMEZONE_ABBR_MAP = { function toTimezoneOffset(timezoneInput) { var _a; + if (timezoneInput === null || timezoneInput === undefined) { + return null; + } + if (typeof timezoneInput === "number") { return timezoneInput; } - return (_a = exports.TIMEZONE_ABBR_MAP[timezoneInput]) !== null && _a !== void 0 ? _a : 0; + return (_a = exports.TIMEZONE_ABBR_MAP[timezoneInput]) !== null && _a !== void 0 ? _a : null; } exports.toTimezoneOffset = toTimezoneOffset; @@ -7004,7 +11043,7 @@ exports.toTimezoneOffset = toTimezoneOffset; /***/ }), /***/ "./node_modules/chrono-node/dist/utils/dayjs.js": -/***/ (function(__unused_webpack_module, exports) { +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; @@ -7014,6 +11053,8 @@ Object.defineProperty(exports, "__esModule", ({ })); exports.implySimilarTime = exports.assignSimilarTime = exports.assignSimilarDate = exports.assignTheNextDay = void 0; +const index_1 = __webpack_require__("./node_modules/chrono-node/dist/index.js"); + function assignTheNextDay(component, targetDayJs) { targetDayJs = targetDayJs.add(1, "day"); assignSimilarDate(component, targetDayJs); @@ -7035,6 +11076,12 @@ function assignSimilarTime(component, targetDayJs) { component.assign("minute", targetDayJs.minute()); component.assign("second", targetDayJs.second()); component.assign("millisecond", targetDayJs.millisecond()); + + if (component.get("hour") < 12) { + component.assign("meridiem", index_1.Meridiem.AM); + } else { + component.assign("meridiem", index_1.Meridiem.PM); + } } exports.assignSimilarTime = assignSimilarTime; @@ -7063,7 +11110,7 @@ exports.matchAnyPattern = exports.extractTerms = exports.repeatedTimeunitPattern function repeatedTimeunitPattern(prefix, singleTimeunitPattern) { const singleTimeunitPatternNoCapture = singleTimeunitPattern.replace(/\((?!\?)/g, "(?:"); - return `${prefix}${singleTimeunitPatternNoCapture}\\s*(?:,?\\s{0,5}${singleTimeunitPatternNoCapture}){0,10}`; + return `${prefix}${singleTimeunitPatternNoCapture}\\s{0,5}(?:,?\\s{0,5}${singleTimeunitPatternNoCapture}){0,10}`; } exports.repeatedTimeunitPattern = repeatedTimeunitPattern; @@ -7152,38 +11199,56 @@ exports.addImpliedTimeUnits = addImpliedTimeUnits; MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ -// css base code, injected by the css-loader -// eslint-disable-next-line func-names module.exports = function (cssWithMappingToString) { var list = []; // return the list of modules as css string list.toString = function toString() { return this.map(function (item) { - var content = cssWithMappingToString(item); + var content = ""; + var needLayer = typeof item[5] !== "undefined"; + + if (item[4]) { + content += "@supports (".concat(item[4], ") {"); + } if (item[2]) { - return "@media ".concat(item[2], " {").concat(content, "}"); + content += "@media ".concat(item[2], " {"); + } + + if (needLayer) { + content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {"); + } + + content += cssWithMappingToString(item); + + if (needLayer) { + content += "}"; + } + + if (item[2]) { + content += "}"; + } + + if (item[4]) { + content += "}"; } return content; }).join(""); }; // import a list of modules into the list - // eslint-disable-next-line func-names - list.i = function (modules, mediaQuery, dedupe) { + list.i = function i(modules, media, dedupe, supports, layer) { if (typeof modules === "string") { - // eslint-disable-next-line no-param-reassign - modules = [[null, modules, ""]]; + modules = [[null, modules, undefined]]; } var alreadyImportedModules = {}; if (dedupe) { - for (var i = 0; i < this.length; i++) { - // eslint-disable-next-line prefer-destructuring - var id = this[i][0]; + for (var k = 0; k < this.length; k++) { + var id = this[k][0]; if (id != null) { alreadyImportedModules[id] = true; @@ -7191,19 +11256,37 @@ module.exports = function (cssWithMappingToString) { } } - for (var _i = 0; _i < modules.length; _i++) { - var item = [].concat(modules[_i]); + for (var _k = 0; _k < modules.length; _k++) { + var item = [].concat(modules[_k]); if (dedupe && alreadyImportedModules[item[0]]) { - // eslint-disable-next-line no-continue continue; } - if (mediaQuery) { - if (!item[2]) { - item[2] = mediaQuery; + if (typeof layer !== "undefined") { + if (typeof item[5] === "undefined") { + item[5] = layer; } else { - item[2] = "".concat(mediaQuery, " and ").concat(item[2]); + item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}"); + item[5] = layer; + } + } + + if (media) { + if (!item[2]) { + item[2] = media; + } else { + item[1] = "@media ".concat(item[2], " {").concat(item[1], "}"); + item[2] = media; + } + } + + if (supports) { + if (!item[4]) { + item[4] = "".concat(supports); + } else { + item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}"); + item[4] = supports; } } @@ -7216,6 +11299,18 @@ module.exports = function (cssWithMappingToString) { /***/ }), +/***/ "./node_modules/css-loader/dist/runtime/noSourceMaps.js": +/***/ (function(module) { + +"use strict"; + + +module.exports = function (i) { + return i[1]; +}; + +/***/ }), + /***/ "./node_modules/dayjs/dayjs.min.js": /***/ (function(module) { @@ -7592,11 +11687,14 @@ module.exports = function (cssWithMappingToString) { /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); // Imports -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]}); + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); // Module ___CSS_LOADER_EXPORT___.push([module.id, ".tapi-search-result {\n color: #000;\n padding: 5px;\n}\n\n.tapi-search-result:hover, .tapi-search-result-selected {\n background-color: #E7E6E6;\n}\n\n", ""]); // Exports @@ -7609,11 +11707,14 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".tapi-search-result {\n color: #000 /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); // Imports -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]}); + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); // Module ___CSS_LOADER_EXPORT___.push([module.id, ".tapi-dropdown {\n position: relative;\n display: inline-block;\n}\n\n.tapi-dropdown-content {\n display: none;\n position: absolute;\n min-width: 200px;\n overflow: auto;\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n z-index: 1;\n color: #000;\n background-color: #fff;\n}\n\n.show {\n display: block;\n}\n", ""]); // Exports @@ -7623,58 +11724,18 @@ ___CSS_LOADER_EXPORT___.push([module.id, ".tapi-dropdown {\n position: relati /***/ }), /***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js": -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { +/***/ (function(module) { "use strict"; -var isOldIE = function isOldIE() { - var memo; - return function memorize() { - if (typeof memo === 'undefined') { - // Test for IE <= 9 as proposed by Browserhacks - // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805 - // Tests for existence of standard globals is to allow style-loader - // to operate correctly into non-standard environments - // @see https://github.com/webpack-contrib/style-loader/issues/177 - memo = Boolean(window && document && document.all && !window.atob); - } - - return memo; - }; -}(); - -var getTarget = function getTarget() { - var memo = {}; - return function memorize(target) { - if (typeof memo[target] === 'undefined') { - var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself - - if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) { - try { - // This will throw an exception if access to iframe is blocked - // due to cross-origin restrictions - styleTarget = styleTarget.contentDocument.head; - } catch (e) { - // istanbul ignore next - styleTarget = null; - } - } - - memo[target] = styleTarget; - } - - return memo[target]; - }; -}(); - -var stylesInDom = []; +var stylesInDOM = []; function getIndexByIdentifier(identifier) { var result = -1; - for (var i = 0; i < stylesInDom.length; i++) { - if (stylesInDom[i].identifier === identifier) { + for (var i = 0; i < stylesInDOM.length; i++) { + if (stylesInDOM[i].identifier === identifier) { result = i; break; } @@ -7693,20 +11754,24 @@ function modulesToDom(list, options) { var count = idCountMap[id] || 0; var identifier = "".concat(id, " ").concat(count); idCountMap[id] = count + 1; - var index = getIndexByIdentifier(identifier); + var indexByIdentifier = getIndexByIdentifier(identifier); var obj = { css: item[1], media: item[2], - sourceMap: item[3] + sourceMap: item[3], + supports: item[4], + layer: item[5] }; - if (index !== -1) { - stylesInDom[index].references++; - stylesInDom[index].updater(obj); + if (indexByIdentifier !== -1) { + stylesInDOM[indexByIdentifier].references++; + stylesInDOM[indexByIdentifier].updater(obj); } else { - stylesInDom.push({ + var updater = addElementStyle(obj, options); + options.byIndex = i; + stylesInDOM.splice(i, 0, { identifier: identifier, - updater: addStyle(obj, options), + updater: updater, references: 1 }); } @@ -7717,165 +11782,36 @@ function modulesToDom(list, options) { return identifiers; } -function insertStyleElement(options) { - var style = document.createElement('style'); - var attributes = options.attributes || {}; +function addElementStyle(obj, options) { + var api = options.domAPI(options); + api.update(obj); - if (typeof attributes.nonce === 'undefined') { - var nonce = true ? __webpack_require__.nc : 0; - - if (nonce) { - attributes.nonce = nonce; - } - } - - Object.keys(attributes).forEach(function (key) { - style.setAttribute(key, attributes[key]); - }); - - if (typeof options.insert === 'function') { - options.insert(style); - } else { - var target = getTarget(options.insert || 'head'); - - if (!target) { - throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid."); - } - - target.appendChild(style); - } - - return style; -} - -function removeStyleElement(style) { - // istanbul ignore if - if (style.parentNode === null) { - return false; - } - - style.parentNode.removeChild(style); -} -/* istanbul ignore next */ - - -var replaceText = function replaceText() { - var textStore = []; - return function replace(index, replacement) { - textStore[index] = replacement; - return textStore.filter(Boolean).join('\n'); - }; -}(); - -function applyToSingletonTag(style, index, remove, obj) { - var css = remove ? '' : obj.media ? "@media ".concat(obj.media, " {").concat(obj.css, "}") : obj.css; // For old IE - - /* istanbul ignore if */ - - if (style.styleSheet) { - style.styleSheet.cssText = replaceText(index, css); - } else { - var cssNode = document.createTextNode(css); - var childNodes = style.childNodes; - - if (childNodes[index]) { - style.removeChild(childNodes[index]); - } - - if (childNodes.length) { - style.insertBefore(cssNode, childNodes[index]); - } else { - style.appendChild(cssNode); - } - } -} - -function applyToTag(style, options, obj) { - var css = obj.css; - var media = obj.media; - var sourceMap = obj.sourceMap; - - if (media) { - style.setAttribute('media', media); - } else { - style.removeAttribute('media'); - } - - if (sourceMap && typeof btoa !== 'undefined') { - css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */"); - } // For old IE - - /* istanbul ignore if */ - - - if (style.styleSheet) { - style.styleSheet.cssText = css; - } else { - while (style.firstChild) { - style.removeChild(style.firstChild); - } - - style.appendChild(document.createTextNode(css)); - } -} - -var singleton = null; -var singletonCounter = 0; - -function addStyle(obj, options) { - var style; - var update; - var remove; - - if (options.singleton) { - var styleIndex = singletonCounter++; - style = singleton || (singleton = insertStyleElement(options)); - update = applyToSingletonTag.bind(null, style, styleIndex, false); - remove = applyToSingletonTag.bind(null, style, styleIndex, true); - } else { - style = insertStyleElement(options); - update = applyToTag.bind(null, style, options); - - remove = function remove() { - removeStyleElement(style); - }; - } - - update(obj); - return function updateStyle(newObj) { + var updater = function updater(newObj) { if (newObj) { - if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) { + if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) { return; } - update(obj = newObj); + api.update(obj = newObj); } else { - remove(); + api.remove(); } }; + + return updater; } module.exports = function (list, options) { - options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of