1 | "use strict";
|
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
|
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
|
4 | };
|
5 | Object.defineProperty(exports, "__esModule", { value: true });
|
6 | const AbstractParserWithWordBoundary_1 = require("../../../common/parsers/AbstractParserWithWordBoundary");
|
7 | const index_1 = require("../../../index");
|
8 | const dayjs_1 = require("../../../utils/dayjs");
|
9 | const dayjs_2 = __importDefault(require("dayjs"));
|
10 | const DATE_GROUP = 1;
|
11 | const TIME_OF_DAY_GROUP = 2;
|
12 | class NLCasualDateTimeParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking {
|
13 | innerPattern(context) {
|
14 | return /(gisteren|morgen|van)(ochtend|middag|namiddag|avond|nacht)(?=\W|$)/i;
|
15 | }
|
16 | innerExtract(context, match) {
|
17 | const dateText = match[DATE_GROUP].toLowerCase();
|
18 | const timeText = match[TIME_OF_DAY_GROUP].toLowerCase();
|
19 | const component = context.createParsingComponents();
|
20 | const targetDate = dayjs_2.default(context.refDate);
|
21 | switch (dateText) {
|
22 | case "gisteren":
|
23 | dayjs_1.assignSimilarDate(component, targetDate.add(-1, "day"));
|
24 | break;
|
25 | case "van":
|
26 | dayjs_1.assignSimilarDate(component, targetDate);
|
27 | break;
|
28 | case "morgen":
|
29 | dayjs_1.assignTheNextDay(component, targetDate);
|
30 | break;
|
31 | }
|
32 | switch (timeText) {
|
33 | case "ochtend":
|
34 | component.imply("meridiem", index_1.Meridiem.AM);
|
35 | component.imply("hour", 6);
|
36 | break;
|
37 | case "middag":
|
38 | component.imply("meridiem", index_1.Meridiem.AM);
|
39 | component.imply("hour", 12);
|
40 | break;
|
41 | case "namiddag":
|
42 | component.imply("meridiem", index_1.Meridiem.PM);
|
43 | component.imply("hour", 15);
|
44 | break;
|
45 | case "avond":
|
46 | component.imply("meridiem", index_1.Meridiem.PM);
|
47 | component.imply("hour", 20);
|
48 | break;
|
49 | }
|
50 | return component;
|
51 | }
|
52 | }
|
53 | exports.default = NLCasualDateTimeParser;
|