ifc-expressions 2.1.1 → 2.2.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -1
- package/dist/cjs/E.js.map +1 -1
- package/dist/cjs/IfcExpression.js.map +1 -1
- package/dist/cjs/compiler/ExprCompiler.js.map +1 -1
- package/dist/cjs/error/ExceptionToExprEvalErrorMapper.js.map +1 -1
- package/dist/cjs/error/MissingFunctionArgumentException.js.map +1 -1
- package/dist/cjs/error/SpuriousFunctionArgumentException.js.map +1 -1
- package/dist/cjs/error/mapper/SpuriousFunctionArgumentExceptionMapper.js.map +1 -1
- package/dist/cjs/error/value/DateFormatException.js +10 -0
- package/dist/cjs/error/value/DateFormatException.js.map +1 -0
- package/dist/cjs/expression/boolean/AndExpr.js.map +1 -1
- package/dist/cjs/expression/boolean/BinaryBooleanOpExpr.js.map +1 -1
- package/dist/cjs/expression/boolean/LogicalLiteralExpr.js.map +1 -1
- package/dist/cjs/expression/boolean/NotExpr.js.map +1 -1
- package/dist/cjs/expression/boolean/OrExpr.js.map +1 -1
- package/dist/cjs/expression/boolean/XorExpr.js.map +1 -1
- package/dist/cjs/expression/function/Func.js +2 -0
- package/dist/cjs/expression/function/Func.js.map +1 -1
- package/dist/cjs/expression/function/IfcExpressionFunctions.js +12 -0
- package/dist/cjs/expression/function/IfcExpressionFunctions.js.map +1 -1
- package/dist/cjs/expression/function/arg/FuncArgArray.js.map +1 -1
- package/dist/cjs/expression/function/arg/FuncArgBase.js +9 -2
- package/dist/cjs/expression/function/arg/FuncArgBase.js.map +1 -1
- package/dist/cjs/expression/function/arg/FuncArgIfcDateString.js +34 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcDateString.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcDateTime.js +27 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcDateTime.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcDateTimeString.js +35 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcDateTimeString.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcDuration.js +27 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcDuration.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcDurationString.js +30 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcDurationString.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcTimeStamp.js +27 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcTimeStamp.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcTimeStampNumeric.js +28 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcTimeStampNumeric.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcTimeString.js +34 -0
- package/dist/cjs/expression/function/arg/FuncArgIfcTimeString.js.map +1 -0
- package/dist/cjs/expression/function/arg/FuncArgLogicalOrBoolean.js.map +1 -1
- package/dist/cjs/expression/function/arg/FuncArgRegexFlag.js.map +1 -1
- package/dist/cjs/expression/function/arg/FuncArgUnion.js +32 -0
- package/dist/cjs/expression/function/arg/FuncArgUnion.js.map +1 -0
- package/dist/cjs/expression/function/impl/ADDDURATION.js +53 -0
- package/dist/cjs/expression/function/impl/ADDDURATION.js.map +1 -0
- package/dist/cjs/expression/function/impl/AT.js.map +1 -1
- package/dist/cjs/expression/function/impl/ApplyRegex.js.map +1 -1
- package/dist/cjs/expression/function/impl/FuncBooleanBinary.js.map +1 -1
- package/dist/cjs/expression/function/impl/IF.js.map +1 -1
- package/dist/cjs/expression/function/impl/NOT.js.map +1 -1
- package/dist/cjs/expression/function/impl/ReplacePattern.js.map +1 -1
- package/dist/cjs/expression/function/impl/SPLIT.js.map +1 -1
- package/dist/cjs/expression/function/impl/SUBSTRING.js.map +1 -1
- package/dist/cjs/expression/function/impl/TOBOOLEAN.js +0 -1
- package/dist/cjs/expression/function/impl/TOBOOLEAN.js.map +1 -1
- package/dist/cjs/expression/function/impl/TOIFCDATE.js +33 -0
- package/dist/cjs/expression/function/impl/TOIFCDATE.js.map +1 -0
- package/dist/cjs/expression/function/impl/TOIFCDATETIME.js +36 -0
- package/dist/cjs/expression/function/impl/TOIFCDATETIME.js.map +1 -0
- package/dist/cjs/expression/function/impl/TOIFCDURATION.js +21 -0
- package/dist/cjs/expression/function/impl/TOIFCDURATION.js.map +1 -0
- package/dist/cjs/expression/function/impl/TOIFCTIME.js +33 -0
- package/dist/cjs/expression/function/impl/TOIFCTIME.js.map +1 -0
- package/dist/cjs/expression/function/impl/TOIFCTIMESTAMP.js +36 -0
- package/dist/cjs/expression/function/impl/TOIFCTIMESTAMP.js.map +1 -0
- package/dist/cjs/expression/function/impl/TOLOGICAL.js.map +1 -1
- package/dist/cjs/expression/function/impl/TONUMERIC.js +0 -1
- package/dist/cjs/expression/function/impl/TONUMERIC.js.map +1 -1
- package/dist/cjs/type/Types.js +35 -0
- package/dist/cjs/type/Types.js.map +1 -1
- package/dist/cjs/util/TextSpan.js +0 -1
- package/dist/cjs/util/TextSpan.js.map +1 -1
- package/dist/cjs/value/BooleanValue.js.map +1 -1
- package/dist/cjs/value/ExpressionValue.js.map +1 -1
- package/dist/cjs/value/IfcDateTimeValue.js +194 -0
- package/dist/cjs/value/IfcDateTimeValue.js.map +1 -0
- package/dist/cjs/value/IfcDateValue.js +68 -0
- package/dist/cjs/value/IfcDateValue.js.map +1 -0
- package/dist/cjs/value/IfcDurationValue.js +149 -0
- package/dist/cjs/value/IfcDurationValue.js.map +1 -0
- package/dist/cjs/value/IfcTimeStampValue.js +62 -0
- package/dist/cjs/value/IfcTimeStampValue.js.map +1 -0
- package/dist/cjs/value/IfcTimeValue.js +93 -0
- package/dist/cjs/value/IfcTimeValue.js.map +1 -0
- package/dist/cjs/value/LogicalValue.js.map +1 -1
- package/dist/cjs/value/NonBoxedValueTypes.js +3 -0
- package/dist/cjs/value/NonBoxedValueTypes.js.map +1 -0
- package/dist/cjs/value/Value.js.map +1 -1
- package/dist/error/value/DateFormatException.d.ts +3 -0
- package/dist/expression/function/Func.d.ts +3 -0
- package/dist/expression/function/arg/FuncArgBase.d.ts +1 -0
- package/dist/expression/function/arg/FuncArgIfcDateString.d.ts +11 -0
- package/dist/expression/function/arg/FuncArgIfcDateTime.d.ts +11 -0
- package/dist/expression/function/arg/FuncArgIfcDateTimeString.d.ts +11 -0
- package/dist/expression/function/arg/FuncArgIfcDuration.d.ts +11 -0
- package/dist/expression/function/arg/FuncArgIfcDurationString.d.ts +11 -0
- package/dist/expression/function/arg/FuncArgIfcTimeStamp.d.ts +11 -0
- package/dist/expression/function/arg/FuncArgIfcTimeStampNumeric.d.ts +11 -0
- package/dist/expression/function/arg/FuncArgIfcTimeString.d.ts +11 -0
- package/dist/expression/function/arg/FuncArgUnion.d.ts +14 -0
- package/dist/expression/function/impl/ADDDURATION.d.ts +10 -0
- package/dist/expression/function/impl/TOBOOLEAN.d.ts +0 -1
- package/dist/expression/function/impl/TOIFCDATE.d.ts +10 -0
- package/dist/expression/function/impl/TOIFCDATETIME.d.ts +10 -0
- package/dist/expression/function/impl/TOIFCDURATION.d.ts +10 -0
- package/dist/expression/function/impl/TOIFCTIME.d.ts +10 -0
- package/dist/expression/function/impl/TOIFCTIMESTAMP.d.ts +10 -0
- package/dist/expression/function/impl/TONUMERIC.d.ts +0 -1
- package/dist/mjs/E.js.map +1 -1
- package/dist/mjs/IfcExpression.js.map +1 -1
- package/dist/mjs/compiler/ExprCompiler.js.map +1 -1
- package/dist/mjs/error/ExceptionToExprEvalErrorMapper.js.map +1 -1
- package/dist/mjs/error/MissingFunctionArgumentException.js.map +1 -1
- package/dist/mjs/error/SpuriousFunctionArgumentException.js.map +1 -1
- package/dist/mjs/error/mapper/SpuriousFunctionArgumentExceptionMapper.js.map +1 -1
- package/dist/mjs/error/value/DateFormatException.js +6 -0
- package/dist/mjs/error/value/DateFormatException.js.map +1 -0
- package/dist/mjs/expression/boolean/AndExpr.js.map +1 -1
- package/dist/mjs/expression/boolean/BinaryBooleanOpExpr.js.map +1 -1
- package/dist/mjs/expression/boolean/LogicalLiteralExpr.js.map +1 -1
- package/dist/mjs/expression/boolean/NotExpr.js.map +1 -1
- package/dist/mjs/expression/boolean/OrExpr.js.map +1 -1
- package/dist/mjs/expression/boolean/XorExpr.js.map +1 -1
- package/dist/mjs/expression/function/Func.js +2 -0
- package/dist/mjs/expression/function/Func.js.map +1 -1
- package/dist/mjs/expression/function/IfcExpressionFunctions.js +12 -0
- package/dist/mjs/expression/function/IfcExpressionFunctions.js.map +1 -1
- package/dist/mjs/expression/function/arg/FuncArgArray.js.map +1 -1
- package/dist/mjs/expression/function/arg/FuncArgBase.js +10 -3
- package/dist/mjs/expression/function/arg/FuncArgBase.js.map +1 -1
- package/dist/mjs/expression/function/arg/FuncArgIfcDateString.js +30 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcDateString.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcDateTime.js +23 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcDateTime.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcDateTimeString.js +31 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcDateTimeString.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcDuration.js +23 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcDuration.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcDurationString.js +26 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcDurationString.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcTimeStamp.js +23 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcTimeStamp.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcTimeStampNumeric.js +24 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcTimeStampNumeric.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcTimeString.js +30 -0
- package/dist/mjs/expression/function/arg/FuncArgIfcTimeString.js.map +1 -0
- package/dist/mjs/expression/function/arg/FuncArgLogicalOrBoolean.js.map +1 -1
- package/dist/mjs/expression/function/arg/FuncArgRegexFlag.js.map +1 -1
- package/dist/mjs/expression/function/arg/FuncArgUnion.js +28 -0
- package/dist/mjs/expression/function/arg/FuncArgUnion.js.map +1 -0
- package/dist/mjs/expression/function/impl/ADDDURATION.js +49 -0
- package/dist/mjs/expression/function/impl/ADDDURATION.js.map +1 -0
- package/dist/mjs/expression/function/impl/AT.js.map +1 -1
- package/dist/mjs/expression/function/impl/ApplyRegex.js.map +1 -1
- package/dist/mjs/expression/function/impl/FuncBooleanBinary.js.map +1 -1
- package/dist/mjs/expression/function/impl/IF.js.map +1 -1
- package/dist/mjs/expression/function/impl/NOT.js.map +1 -1
- package/dist/mjs/expression/function/impl/ReplacePattern.js.map +1 -1
- package/dist/mjs/expression/function/impl/SPLIT.js.map +1 -1
- package/dist/mjs/expression/function/impl/SUBSTRING.js.map +1 -1
- package/dist/mjs/expression/function/impl/TOBOOLEAN.js +0 -1
- package/dist/mjs/expression/function/impl/TOBOOLEAN.js.map +1 -1
- package/dist/mjs/expression/function/impl/TOIFCDATE.js +29 -0
- package/dist/mjs/expression/function/impl/TOIFCDATE.js.map +1 -0
- package/dist/mjs/expression/function/impl/TOIFCDATETIME.js +32 -0
- package/dist/mjs/expression/function/impl/TOIFCDATETIME.js.map +1 -0
- package/dist/mjs/expression/function/impl/TOIFCDURATION.js +17 -0
- package/dist/mjs/expression/function/impl/TOIFCDURATION.js.map +1 -0
- package/dist/mjs/expression/function/impl/TOIFCTIME.js +29 -0
- package/dist/mjs/expression/function/impl/TOIFCTIME.js.map +1 -0
- package/dist/mjs/expression/function/impl/TOIFCTIMESTAMP.js +32 -0
- package/dist/mjs/expression/function/impl/TOIFCTIMESTAMP.js.map +1 -0
- package/dist/mjs/expression/function/impl/TOLOGICAL.js.map +1 -1
- package/dist/mjs/expression/function/impl/TONUMERIC.js +0 -1
- package/dist/mjs/expression/function/impl/TONUMERIC.js.map +1 -1
- package/dist/mjs/type/Types.js +35 -0
- package/dist/mjs/type/Types.js.map +1 -1
- package/dist/mjs/util/TextSpan.js +0 -1
- package/dist/mjs/util/TextSpan.js.map +1 -1
- package/dist/mjs/value/BooleanValue.js.map +1 -1
- package/dist/mjs/value/ExpressionValue.js.map +1 -1
- package/dist/mjs/value/IfcDateTimeValue.js +186 -0
- package/dist/mjs/value/IfcDateTimeValue.js.map +1 -0
- package/dist/mjs/value/IfcDateValue.js +64 -0
- package/dist/mjs/value/IfcDateValue.js.map +1 -0
- package/dist/mjs/value/IfcDurationValue.js +142 -0
- package/dist/mjs/value/IfcDurationValue.js.map +1 -0
- package/dist/mjs/value/IfcTimeStampValue.js +58 -0
- package/dist/mjs/value/IfcTimeStampValue.js.map +1 -0
- package/dist/mjs/value/IfcTimeValue.js +86 -0
- package/dist/mjs/value/IfcTimeValue.js.map +1 -0
- package/dist/mjs/value/LogicalValue.js.map +1 -1
- package/dist/mjs/value/NonBoxedValueTypes.js +2 -0
- package/dist/mjs/value/NonBoxedValueTypes.js.map +1 -0
- package/dist/mjs/value/Value.js.map +1 -1
- package/dist/type/Types.d.ts +15 -0
- package/dist/value/ExpressionValue.d.ts +6 -1
- package/dist/value/IfcDateTimeValue.d.ts +44 -0
- package/dist/value/IfcDateValue.d.ts +24 -0
- package/dist/value/IfcDurationValue.d.ts +53 -0
- package/dist/value/IfcTimeStampValue.d.ts +18 -0
- package/dist/value/IfcTimeValue.d.ts +27 -0
- package/dist/value/NonBoxedValueTypes.d.ts +6 -0
- package/dist/value/Value.d.ts +2 -1
- package/package.json +1 -1
|
@@ -0,0 +1,93 @@
|
|
|
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
|
+
exports.IfcTimeValue = void 0;
|
|
7
|
+
const Types_js_1 = require("../type/Types.js");
|
|
8
|
+
const IfcExpressionUtils_js_1 = require("../util/IfcExpressionUtils.js");
|
|
9
|
+
const DateFormatException_js_1 = require("../error/value/DateFormatException.js");
|
|
10
|
+
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
11
|
+
class IfcTimeValue {
|
|
12
|
+
constructor(value) {
|
|
13
|
+
var parsed = IfcTimeValue.parseIfcDate(value);
|
|
14
|
+
this.utcDateValue = parsed.utcDate;
|
|
15
|
+
this.originalTimeZoneHours = parsed.originalTimeZoneHours;
|
|
16
|
+
this.originalTimeZoneMinutes = parsed.originalTimeZoneMinutes;
|
|
17
|
+
this.secondFraction = parsed.secondFraction;
|
|
18
|
+
this.stringRepresentation = value;
|
|
19
|
+
}
|
|
20
|
+
static parseIfcDate(value) {
|
|
21
|
+
let match = value.match(this.regex);
|
|
22
|
+
if ((0, IfcExpressionUtils_js_1.isNullish)(match)) {
|
|
23
|
+
throw new DateFormatException_js_1.DateFormatException("Not an IfcTime: " + value);
|
|
24
|
+
}
|
|
25
|
+
let [wholeString, hours, minutes, seconds, fractionSeconds, timeZoneWhole, timeZoneSign, timeZoneHours, timeZoneMinutes,] = match;
|
|
26
|
+
var utcDate = new Date(0);
|
|
27
|
+
utcDate.setUTCHours(Number.parseInt(hours));
|
|
28
|
+
utcDate.setUTCMinutes(Number.parseInt(minutes));
|
|
29
|
+
utcDate.setUTCSeconds(Number.parseInt(seconds));
|
|
30
|
+
var secondFraction = (0, IfcExpressionUtils_js_1.isNullish)(fractionSeconds)
|
|
31
|
+
? new decimal_js_1.default("0")
|
|
32
|
+
: new decimal_js_1.default("0" + fractionSeconds); //arbitrary precision fractions
|
|
33
|
+
var originalZoneSign = (0, IfcExpressionUtils_js_1.isNullish)(timeZoneSign)
|
|
34
|
+
? 0
|
|
35
|
+
: timeZoneSign === "+"
|
|
36
|
+
? 1
|
|
37
|
+
: -1;
|
|
38
|
+
var originalTimeZoneHours = originalZoneSign *
|
|
39
|
+
((0, IfcExpressionUtils_js_1.isNullish)(timeZoneHours) ? 0 : Number.parseInt(timeZoneHours));
|
|
40
|
+
var originalTimeZoneMinutes = originalZoneSign *
|
|
41
|
+
((0, IfcExpressionUtils_js_1.isNullish)(timeZoneMinutes) ? 0 : Number.parseInt(timeZoneMinutes));
|
|
42
|
+
utcDate.setUTCHours(utcDate.getUTCHours() - originalTimeZoneHours);
|
|
43
|
+
utcDate.setUTCMinutes(utcDate.getUTCMinutes() - originalTimeZoneMinutes);
|
|
44
|
+
return {
|
|
45
|
+
utcDate,
|
|
46
|
+
secondFraction,
|
|
47
|
+
originalTimeZoneHours,
|
|
48
|
+
originalTimeZoneMinutes,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
static of(value) {
|
|
52
|
+
return new IfcTimeValue(value);
|
|
53
|
+
}
|
|
54
|
+
getValue() {
|
|
55
|
+
return this;
|
|
56
|
+
}
|
|
57
|
+
getType() {
|
|
58
|
+
return Types_js_1.Type.IFC_TIME;
|
|
59
|
+
}
|
|
60
|
+
static isIfcTimeValueType(arg) {
|
|
61
|
+
return (arg instanceof IfcTimeValue ||
|
|
62
|
+
(!(0, IfcExpressionUtils_js_1.isNullish)(arg.stringRepresentation) &&
|
|
63
|
+
!(0, IfcExpressionUtils_js_1.isNullish)(arg.stringRepresentation.match(IfcTimeValue.regex))));
|
|
64
|
+
}
|
|
65
|
+
static isValidStringRepresentation(str) {
|
|
66
|
+
return !(0, IfcExpressionUtils_js_1.isNullish)(str.match(this.regex));
|
|
67
|
+
}
|
|
68
|
+
equals(other) {
|
|
69
|
+
return (IfcTimeValue.isIfcTimeValueType(other) &&
|
|
70
|
+
this.utcDateValue.getTime() === other.utcDateValue.getTime() &&
|
|
71
|
+
this.secondFraction.eq(other.secondFraction));
|
|
72
|
+
}
|
|
73
|
+
toString() {
|
|
74
|
+
return this.stringRepresentation;
|
|
75
|
+
}
|
|
76
|
+
compareTo(other) {
|
|
77
|
+
var diff = this.utcDateValue.getTime() - other.utcDateValue.getTime();
|
|
78
|
+
if (diff != 0) {
|
|
79
|
+
return diff;
|
|
80
|
+
}
|
|
81
|
+
var diffD = this.secondFraction.minus(other.secondFraction);
|
|
82
|
+
if (diffD.isZero()) {
|
|
83
|
+
return 0;
|
|
84
|
+
}
|
|
85
|
+
if (diffD.lt(0)) {
|
|
86
|
+
return -1;
|
|
87
|
+
}
|
|
88
|
+
return 1;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
exports.IfcTimeValue = IfcTimeValue;
|
|
92
|
+
IfcTimeValue.regex = /^([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|(?<=23:59:)60)(\.\d+)?(Z|([+\-])(0[0-9]|1[0-2])(?::?([0-5][0-9]))?)?$/;
|
|
93
|
+
//# sourceMappingURL=IfcTimeValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/value/IfcTimeValue.ts"],"names":[],"mappings":"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","file":"value/IfcTimeValue.js","sourcesContent":["import { Value } from \"./Value.js\";\nimport { Comparable } from \"./Comparable.js\";\nimport { ExprType } from \"../type/ExprType.js\";\nimport { Type } from \"../type/Types.js\";\nimport { isNullish } from \"../util/IfcExpressionUtils.js\";\nimport { DateFormatException } from \"../error/value/DateFormatException.js\";\nimport Decimal from \"decimal.js\";\n\nexport class IfcTimeValue\n implements Value<IfcTimeValue>, Comparable<IfcTimeValue>\n{\n private readonly utcDateValue: Date;\n private readonly stringRepresentation;\n private readonly originalTimeZoneHours: number; // hours ahead of (+) or behind (-) UTC\n private readonly originalTimeZoneMinutes: number; // minutes ahead of (+) or behind (-) UTC\n private readonly secondFraction: Decimal;\n private static readonly regex =\n /^([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|(?<=23:59:)60)(\\.\\d+)?(Z|([+\\-])(0[0-9]|1[0-2])(?::?([0-5][0-9]))?)?$/;\n\n constructor(value: string) {\n var parsed = IfcTimeValue.parseIfcDate(value);\n this.utcDateValue = parsed.utcDate;\n this.originalTimeZoneHours = parsed.originalTimeZoneHours;\n this.originalTimeZoneMinutes = parsed.originalTimeZoneMinutes;\n this.secondFraction = parsed.secondFraction;\n this.stringRepresentation = value;\n }\n\n public static parseIfcDate(value: string): {\n utcDate: Date;\n secondFraction: Decimal;\n originalTimeZoneHours?: number;\n originalTimeZoneMinutes?: number;\n } {\n let match = value.match(this.regex);\n if (isNullish(match)) {\n throw new DateFormatException(\"Not an IfcTime: \" + value);\n }\n let [\n wholeString,\n hours,\n minutes,\n seconds,\n fractionSeconds,\n timeZoneWhole,\n timeZoneSign,\n timeZoneHours,\n timeZoneMinutes,\n ] = match;\n var utcDate = new Date(0);\n utcDate.setUTCHours(Number.parseInt(hours));\n utcDate.setUTCMinutes(Number.parseInt(minutes));\n utcDate.setUTCSeconds(Number.parseInt(seconds));\n var secondFraction = isNullish(fractionSeconds)\n ? new Decimal(\"0\")\n : new Decimal(\"0\" + fractionSeconds); //arbitrary precision fractions\n var originalZoneSign = isNullish(timeZoneSign)\n ? 0\n : timeZoneSign === \"+\"\n ? 1\n : -1;\n var originalTimeZoneHours =\n originalZoneSign *\n (isNullish(timeZoneHours) ? 0 : Number.parseInt(timeZoneHours));\n var originalTimeZoneMinutes =\n originalZoneSign *\n (isNullish(timeZoneMinutes) ? 0 : Number.parseInt(timeZoneMinutes));\n utcDate.setUTCHours(utcDate.getUTCHours() - originalTimeZoneHours);\n utcDate.setUTCMinutes(utcDate.getUTCMinutes() - originalTimeZoneMinutes);\n return {\n utcDate,\n secondFraction,\n originalTimeZoneHours,\n originalTimeZoneMinutes,\n };\n }\n\n public static of(value: string): IfcTimeValue {\n return new IfcTimeValue(value);\n }\n\n getValue(): IfcTimeValue {\n return this;\n }\n\n getType(): ExprType {\n return Type.IFC_TIME;\n }\n\n static isIfcTimeValueType(arg: any): arg is IfcTimeValue {\n return (\n arg instanceof IfcTimeValue ||\n (!isNullish(arg.stringRepresentation) &&\n !isNullish(arg.stringRepresentation.match(IfcTimeValue.regex)))\n );\n }\n\n public static isValidStringRepresentation(str: string): boolean {\n return !isNullish(str.match(this.regex));\n }\n\n equals(other: Value<any>): boolean {\n return (\n IfcTimeValue.isIfcTimeValueType(other) &&\n this.utcDateValue.getTime() === other.utcDateValue.getTime() &&\n this.secondFraction.eq(other.secondFraction)\n );\n }\n\n toString(): string {\n return this.stringRepresentation;\n }\n\n compareTo(other: IfcTimeValue): number {\n var diff = this.utcDateValue.getTime() - other.utcDateValue.getTime();\n if (diff != 0) {\n return diff;\n }\n var diffD = this.secondFraction.minus(other.secondFraction);\n if (diffD.isZero()) {\n return 0;\n }\n if (diffD.lt(0)) {\n return -1;\n }\n return 1;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/value/LogicalValue.ts"],"names":[],"mappings":";;;AAEA,+CAAwC;AACxC,uDAAiD;AAKjD,MAAa,YAAY;IASvB,YAAoB,KAAc;QAChC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;IAEM,MAAM,CAAC,IAAI;QAChB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAEM,MAAM,CAAC,KAAK;QACjB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAEM,MAAM,CAAC,OAAO;QACnB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAEM,MAAM,CAAC,EAAE,CAAC,KAAc;QAC7B,QAAQ,KAAK,EAAE;YACb,KAAK,IAAI,CAAC,aAAa;gBACrB,OAAO,IAAI,CAAC,qBAAqB,CAAC;YACpC,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,mBAAmB,CAAC;YAClC,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,kBAAkB,CAAC;SAClC;QACD,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC;IACpC,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC;IACrC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,GAAQ;QACvB,OAAO,GAAG,KAAK,SAAS,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,GAAQ;QACvB,OAAO,OAAO,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,GAAG,CAAC,KAAkC;QACpC,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,IAAI,UAAU,KAAK,KAAK,EAAE;YACvD,OAAO,YAAY,CAAC,KAAK,EAAE,CAAC;SAC7B;QACD,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,UAAU,KAAK,YAAY,CAAC,aAAa,EAAE;YACjE,OAAO,YAAY,CAAC,OAAO,EAAE,CAAC;SAC/B;QACD,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,EAAE,CAAC,KAAkC;QACnC,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI,EAAE;YACrD,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC;SAC5B;QACD,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,UAAU,KAAK,YAAY,CAAC,aAAa,EAAE;YACjE,OAAO,YAAY,CAAC,OAAO,EAAE,CAAC;SAC/B;QACD,OAAO,YAAY,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED,GAAG,CAAC,KAAkC;QACpC,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,UAAU,KAAK,YAAY,CAAC,aAAa,EAAE;YACjE,OAAO,YAAY,CAAC,OAAO,EAAE,CAAC;SAC/B;QACD,OAAO,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,CAAC,KAAkC;QACxC,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAI,UAAU,KAAK,IAAI,EAAE;YACvB,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC;SAC5B;QACD,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;YACpB,OAAO,YAAY,CAAC,OAAO,EAAE,CAAC;SAC/B;QACD,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAClB,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC;SAC5B;QACD,OAAO,YAAY,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAEM,GAAG;QACR,QAAQ,IAAI,CAAC,YAAY,EAAE;YACzB,KAAK,YAAY,CAAC,aAAa;gBAC7B,OAAO,YAAY,CAAC,qBAAqB,CAAC;YAC5C,KAAK,IAAI;gBACP,OAAO,YAAY,CAAC,mBAAmB,CAAC;YAC1C,KAAK,KAAK;gBACR,OAAO,YAAY,CAAC,kBAAkB,CAAC;SAC1C;QACD,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,CAAC,KAAiB;QACtB,IAAI,YAAY,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE;YAC1C,OAAO,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,CAAC;SACjD;aAAM,IAAI,8BAAY,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE;YACjD,OAAO,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,CAAC;SACjD;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO;QACL,OAAO,eAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,SAAS,CAAC,KAAmB;QAC3B,QAAQ,IAAI,CAAC,YAAY,EAAE;YACzB,KAAK,IAAI;gBACP,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,KAAK,KAAK;gBACR,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpE,KAAK,SAAS;gBACZ,OAAO,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACrC;QACD,MAAM,IAAI,KAAK,CACb,wCAAwC,IAAI,CAAC,YAAY,OAAO,KAAK,CAAC,YAAY,EAAE,CACrF,CAAC;IACJ,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,YAAY,KAAK,YAAY,CAAC,aAAa;YACrD,CAAC,CAAC,YAAY,CAAC,aAAa;YAC5B,CAAC,CAAC,IAAI,CAAC,YAAY;gBACnB,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,OAAO,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,kBAAkB,CAAC,GAAQ;QACvC,OAAO,CACL,CAAC,OAAO,GAAG,CAAC,YAAY,KAAK,WAAW;YACtC,OAAO,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC;YACxC,GAAG,CAAC,YAAY,KAAK,YAAY,CAAC,aAAa,CAChD,CAAC;IACJ,CAAC;;AA9JH,oCA+JC;AA9JwB,0BAAa,GAAG,SAAS,CAAC;AAEzB,+BAAkB,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;AAC5C,gCAAmB,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;AAC9C,kCAAqB,GAAG,IAAI,YAAY,CAC9D,YAAY,CAAC,aAAa,CAC3B,CAAC","file":"value/LogicalValue.js","sourcesContent":["import { Value } from \"./Value.js\";\nimport { ExprType } from \"../type/ExprType.js\";\nimport { Type } from \"../type/Types.js\";\nimport { BooleanValue } from \"./BooleanValue\";\nimport { Comparable } from \"./Comparable\";\n\nexport type Logical = boolean | \"UNKNOWN\";\n\nexport class LogicalValue implements Value<Logical>, Comparable<LogicalValue> {\n public static readonly UNKNOWN_VALUE = \"UNKNOWN\";\n private readonly logicalValue: Logical;\n private static readonly LOGICAL_VALUE_TRUE = new LogicalValue(true);\n private static readonly LOGICAL_VALUE_FALSE = new LogicalValue(false);\n private static readonly LOGICAL_VALUE_UNKNOWN = new LogicalValue(\n LogicalValue.UNKNOWN_VALUE\n );\n\n private constructor(value: Logical) {\n this.logicalValue = value;\n }\n\n public static true(): LogicalValue {\n return this.LOGICAL_VALUE_TRUE;\n }\n\n public static false(): LogicalValue {\n return this.LOGICAL_VALUE_FALSE;\n }\n\n public static unknown(): LogicalValue {\n return this.LOGICAL_VALUE_UNKNOWN;\n }\n\n public static of(value: Logical): LogicalValue {\n switch (value) {\n case this.UNKNOWN_VALUE:\n return this.LOGICAL_VALUE_UNKNOWN;\n case false:\n return this.LOGICAL_VALUE_FALSE;\n case true:\n return this.LOGICAL_VALUE_TRUE;\n }\n throw new Error(`Cannot get logical value of ${value}`);\n }\n\n getValue(): Logical {\n return this.logicalValue;\n }\n\n isTrue(): boolean {\n return this.logicalValue === true;\n }\n\n isFalse(): boolean {\n return this.logicalValue === false;\n }\n\n isUnknown(): boolean {\n return this.logicalValue === \"UNKNOWN\";\n }\n\n static isUnknown(val: any): boolean {\n return val === \"UNKNOWN\";\n }\n\n static isLogical(val: any): val is Logical {\n return typeof val === \"boolean\" || this.isUnknown(val);\n }\n\n and(other: LogicalValue | BooleanValue): LogicalValue {\n const otherValue = other.getValue();\n if (this.logicalValue === false || otherValue === false) {\n return LogicalValue.false();\n }\n if (this.isUnknown() || otherValue === LogicalValue.UNKNOWN_VALUE) {\n return LogicalValue.unknown();\n }\n return LogicalValue.true();\n }\n\n or(other: LogicalValue | BooleanValue): LogicalValue {\n const otherValue = other.getValue();\n if (this.logicalValue === true || otherValue === true) {\n return LogicalValue.true();\n }\n if (this.isUnknown() || otherValue === LogicalValue.UNKNOWN_VALUE) {\n return LogicalValue.unknown();\n }\n return LogicalValue.false();\n }\n\n xor(other: LogicalValue | BooleanValue): LogicalValue {\n const otherValue = other.getValue();\n if (this.isUnknown() || otherValue === LogicalValue.UNKNOWN_VALUE) {\n return LogicalValue.unknown();\n }\n return LogicalValue.of(this.logicalValue !== other.getValue());\n }\n\n implies(other: LogicalValue | BooleanValue): LogicalValue {\n const otherValue = other.getValue();\n if (otherValue === true) {\n return LogicalValue.true();\n }\n if (this.isUnknown()) {\n return LogicalValue.unknown();\n }\n if (this.isFalse()) {\n return LogicalValue.true();\n }\n return LogicalValue.of(otherValue);\n }\n\n public not(): LogicalValue {\n switch (this.logicalValue) {\n case LogicalValue.UNKNOWN_VALUE:\n return LogicalValue.LOGICAL_VALUE_UNKNOWN;\n case true:\n return LogicalValue.LOGICAL_VALUE_FALSE;\n case false:\n return LogicalValue.LOGICAL_VALUE_TRUE;\n }\n throw new Error(`Cannot invert logical value ${this.logicalValue}`);\n }\n\n equals(other: Value<any>): boolean {\n if (LogicalValue.isLogicalValueType(other)) {\n return this.logicalValue === other.logicalValue;\n } else if (BooleanValue.isBooleanValueType(other)) {\n return this.logicalValue === other.booleanValue;\n }\n return false;\n }\n\n getType(): ExprType {\n return Type.LOGICAL;\n }\n\n compareTo(other: LogicalValue): number {\n switch (this.logicalValue) {\n case true:\n return other.isTrue() ? 0 : 1;\n case false:\n return other.isTrue() ? -1 : other.logicalValue === false ? 0 : 1;\n case \"UNKNOWN\":\n return other.isUnknown() ? 0 : -1;\n }\n throw new Error(\n `Unexpected logical value comparison: ${this.logicalValue} vs ${other.logicalValue}`\n );\n }\n\n toString(): string {\n return this.logicalValue === LogicalValue.UNKNOWN_VALUE\n ? LogicalValue.UNKNOWN_VALUE\n : this.logicalValue\n ? \"TRUE\"\n : \"FALSE\";\n }\n\n public static isLogicalValueType(arg: any): arg is LogicalValue {\n return (\n (typeof arg.logicalValue !== \"undefined\" &&\n typeof arg.logicalValue === \"boolean\") ||\n arg.logicalValue === LogicalValue.UNKNOWN_VALUE\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/value/LogicalValue.ts"],"names":[],"mappings":"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","file":"value/LogicalValue.js","sourcesContent":["import { Value } from \"./Value.js\";\nimport { ExprType } from \"../type/ExprType.js\";\nimport { Type } from \"../type/Types.js\";\nimport { BooleanValue } from \"./BooleanValue.js\";\nimport { Comparable } from \"./Comparable.js\";\n\nexport type Logical = boolean | \"UNKNOWN\";\n\nexport class LogicalValue implements Value<Logical>, Comparable<LogicalValue> {\n public static readonly UNKNOWN_VALUE = \"UNKNOWN\";\n private readonly logicalValue: Logical;\n private static readonly LOGICAL_VALUE_TRUE = new LogicalValue(true);\n private static readonly LOGICAL_VALUE_FALSE = new LogicalValue(false);\n private static readonly LOGICAL_VALUE_UNKNOWN = new LogicalValue(\n LogicalValue.UNKNOWN_VALUE\n );\n\n private constructor(value: Logical) {\n this.logicalValue = value;\n }\n\n public static true(): LogicalValue {\n return this.LOGICAL_VALUE_TRUE;\n }\n\n public static false(): LogicalValue {\n return this.LOGICAL_VALUE_FALSE;\n }\n\n public static unknown(): LogicalValue {\n return this.LOGICAL_VALUE_UNKNOWN;\n }\n\n public static of(value: Logical): LogicalValue {\n switch (value) {\n case this.UNKNOWN_VALUE:\n return this.LOGICAL_VALUE_UNKNOWN;\n case false:\n return this.LOGICAL_VALUE_FALSE;\n case true:\n return this.LOGICAL_VALUE_TRUE;\n }\n throw new Error(`Cannot get logical value of ${value}`);\n }\n\n getValue(): Logical {\n return this.logicalValue;\n }\n\n isTrue(): boolean {\n return this.logicalValue === true;\n }\n\n isFalse(): boolean {\n return this.logicalValue === false;\n }\n\n isUnknown(): boolean {\n return this.logicalValue === \"UNKNOWN\";\n }\n\n static isUnknown(val: any): boolean {\n return val === \"UNKNOWN\";\n }\n\n static isLogical(val: any): val is Logical {\n return typeof val === \"boolean\" || this.isUnknown(val);\n }\n\n and(other: LogicalValue | BooleanValue): LogicalValue {\n const otherValue = other.getValue();\n if (this.logicalValue === false || otherValue === false) {\n return LogicalValue.false();\n }\n if (this.isUnknown() || otherValue === LogicalValue.UNKNOWN_VALUE) {\n return LogicalValue.unknown();\n }\n return LogicalValue.true();\n }\n\n or(other: LogicalValue | BooleanValue): LogicalValue {\n const otherValue = other.getValue();\n if (this.logicalValue === true || otherValue === true) {\n return LogicalValue.true();\n }\n if (this.isUnknown() || otherValue === LogicalValue.UNKNOWN_VALUE) {\n return LogicalValue.unknown();\n }\n return LogicalValue.false();\n }\n\n xor(other: LogicalValue | BooleanValue): LogicalValue {\n const otherValue = other.getValue();\n if (this.isUnknown() || otherValue === LogicalValue.UNKNOWN_VALUE) {\n return LogicalValue.unknown();\n }\n return LogicalValue.of(this.logicalValue !== other.getValue());\n }\n\n implies(other: LogicalValue | BooleanValue): LogicalValue {\n const otherValue = other.getValue();\n if (otherValue === true) {\n return LogicalValue.true();\n }\n if (this.isUnknown()) {\n return LogicalValue.unknown();\n }\n if (this.isFalse()) {\n return LogicalValue.true();\n }\n return LogicalValue.of(otherValue);\n }\n\n public not(): LogicalValue {\n switch (this.logicalValue) {\n case LogicalValue.UNKNOWN_VALUE:\n return LogicalValue.LOGICAL_VALUE_UNKNOWN;\n case true:\n return LogicalValue.LOGICAL_VALUE_FALSE;\n case false:\n return LogicalValue.LOGICAL_VALUE_TRUE;\n }\n throw new Error(`Cannot invert logical value ${this.logicalValue}`);\n }\n\n equals(other: Value<any>): boolean {\n if (LogicalValue.isLogicalValueType(other)) {\n return this.logicalValue === other.logicalValue;\n } else if (BooleanValue.isBooleanValueType(other)) {\n return this.logicalValue === other.booleanValue;\n }\n return false;\n }\n\n getType(): ExprType {\n return Type.LOGICAL;\n }\n\n compareTo(other: LogicalValue): number {\n switch (this.logicalValue) {\n case true:\n return other.isTrue() ? 0 : 1;\n case false:\n return other.isTrue() ? -1 : other.logicalValue === false ? 0 : 1;\n case \"UNKNOWN\":\n return other.isUnknown() ? 0 : -1;\n }\n throw new Error(\n `Unexpected logical value comparison: ${this.logicalValue} vs ${other.logicalValue}`\n );\n }\n\n toString(): string {\n return this.logicalValue === LogicalValue.UNKNOWN_VALUE\n ? LogicalValue.UNKNOWN_VALUE\n : this.logicalValue\n ? \"TRUE\"\n : \"FALSE\";\n }\n\n public static isLogicalValueType(arg: any): arg is LogicalValue {\n return (\n (typeof arg.logicalValue !== \"undefined\" &&\n typeof arg.logicalValue === \"boolean\") ||\n arg.logicalValue === LogicalValue.UNKNOWN_VALUE\n );\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/value/NonBoxedValueTypes.ts"],"names":[],"mappings":"","file":"value/NonBoxedValueTypes.js","sourcesContent":["import { IfcDateTimeValue } from \"./IfcDateTimeValue.js\";\nimport { IfcDateValue } from \"./IfcDateValue.js\";\nimport { IfcTimeValue } from \"./IfcTimeValue.js\";\nimport { IfcDurationValue } from \"./IfcDurationValue.js\";\nimport { IfcTimeStampValue } from \"./IfcTimeStampValue.js\";\n\nexport type NonBoxedValueTypes =\n | IfcDateValue\n | IfcDateTimeValue\n | IfcTimeValue\n | IfcDurationValue\n | IfcTimeStampValue;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/value/Value.ts"],"names":[],"mappings":"","file":"value/Value.js","sourcesContent":["import { BoxedValueTypes } from \"./BoxedValueTypes.js\";\nimport { ExprType } from \"../type/ExprType.js\";\n\nexport interface Value<\n T extends\n | BoxedValueTypes\n | Array<Value<BoxedValueTypes | Array<Value<BoxedValueTypes>>>>\n> {\n getValue(): T;\n equals(other: Value<any>): boolean;\n toString();\n getType(): ExprType;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/value/Value.ts"],"names":[],"mappings":"","file":"value/Value.js","sourcesContent":["import { BoxedValueTypes } from \"./BoxedValueTypes.js\";\nimport { ExprType } from \"../type/ExprType.js\";\nimport { NonBoxedValueTypes } from \"./NonBoxedValueTypes.js\";\n\nexport interface Value<\n T extends\n | NonBoxedValueTypes\n | BoxedValueTypes\n | Array<Value<BoxedValueTypes | Array<Value<BoxedValueTypes>>>>\n> {\n getValue(): T;\n equals(other: Value<any>): boolean;\n toString();\n getType(): ExprType;\n}\n"]}
|
|
@@ -16,6 +16,7 @@ export declare abstract class Func {
|
|
|
16
16
|
evaluate(callingExpr: FunctionExpr, funcArgs: Array<ExprEvalResult<ExpressionValue>>): ExprEvalResult<ExpressionValue>;
|
|
17
17
|
/**
|
|
18
18
|
* Subclasses must provide the funcation evaluation code here.
|
|
19
|
+
* @param callingExpr
|
|
19
20
|
* @param evaluatedArguments
|
|
20
21
|
* @protected
|
|
21
22
|
*/
|
|
@@ -23,6 +24,7 @@ export declare abstract class Func {
|
|
|
23
24
|
/**
|
|
24
25
|
* Override to transform individual arguments if needed. After this step, if any of the ExprEvalResult objects in the
|
|
25
26
|
* returned array is an ExprEvalError, the function evaluation fails.
|
|
27
|
+
* @param callingExpr
|
|
26
28
|
* @param evaluatedArguments
|
|
27
29
|
* @protected
|
|
28
30
|
*/
|
|
@@ -30,6 +32,7 @@ export declare abstract class Func {
|
|
|
30
32
|
/**
|
|
31
33
|
* Gets the argument values from the list of provided arguments in the form of 'name' -> ExprEvalResult (which may contain errors).
|
|
32
34
|
* Generates an error if a required value is missing.
|
|
35
|
+
* @param callingExpr
|
|
33
36
|
* @param provided
|
|
34
37
|
* @protected
|
|
35
38
|
*/
|
|
@@ -5,6 +5,7 @@ import { FunctionExpr } from "../FunctionExpr.js";
|
|
|
5
5
|
export declare abstract class FuncArgBase<T> extends FuncArg<T> {
|
|
6
6
|
protected constructor(required: boolean, name: string, defaultValue?: T);
|
|
7
7
|
transformValue(callingExpr: FunctionExpr, invocationValue: ExprEvalResult<ExpressionValue>): ExprEvalResult<ExpressionValue>;
|
|
8
|
+
private errorIfNullish;
|
|
8
9
|
/**
|
|
9
10
|
* Override to type-check the successfully evaluated invocationValue.
|
|
10
11
|
* @protected
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { StringValue } from "../../../value/StringValue.js";
|
|
2
|
+
import { ExprEvalResult, ExprEvalSuccess } from "../../ExprEvalResult.js";
|
|
3
|
+
import { FunctionExpr } from "../FunctionExpr.js";
|
|
4
|
+
import { ExpressionValue } from "../../../value/ExpressionValue.js";
|
|
5
|
+
import { ExprType } from "../../../type/ExprType.js";
|
|
6
|
+
import { FuncArgBase } from "./FuncArgBase.js";
|
|
7
|
+
export declare class FuncArgIfcDateString extends FuncArgBase<StringValue> {
|
|
8
|
+
constructor(required: boolean, name: string, defaultValue?: StringValue);
|
|
9
|
+
getType(): ExprType;
|
|
10
|
+
protected transformForTypeCheck(callingExpr: FunctionExpr, invocationValue: ExprEvalSuccess<ExpressionValue>): ExprEvalResult<ExpressionValue>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ExprEvalResult, ExprEvalSuccess } from "../../ExprEvalResult.js";
|
|
2
|
+
import { FunctionExpr } from "../FunctionExpr.js";
|
|
3
|
+
import { ExpressionValue } from "../../../value/ExpressionValue.js";
|
|
4
|
+
import { ExprType } from "../../../type/ExprType.js";
|
|
5
|
+
import { IfcDateTimeValue } from "../../../value/IfcDateTimeValue.js";
|
|
6
|
+
import { FuncArgBase } from "./FuncArgBase.js";
|
|
7
|
+
export declare class FuncArgIfcDateTime extends FuncArgBase<IfcDateTimeValue> {
|
|
8
|
+
constructor(required: boolean, name: string, defaultValue?: IfcDateTimeValue);
|
|
9
|
+
getType(): ExprType;
|
|
10
|
+
protected transformForTypeCheck(callingExpr: FunctionExpr, invocationValue: ExprEvalSuccess<ExpressionValue>): ExprEvalResult<ExpressionValue>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { StringValue } from "../../../value/StringValue.js";
|
|
2
|
+
import { ExprEvalResult, ExprEvalSuccess } from "../../ExprEvalResult.js";
|
|
3
|
+
import { FunctionExpr } from "../FunctionExpr.js";
|
|
4
|
+
import { ExpressionValue } from "../../../value/ExpressionValue.js";
|
|
5
|
+
import { ExprType } from "../../../type/ExprType.js";
|
|
6
|
+
import { FuncArgBase } from "./FuncArgBase.js";
|
|
7
|
+
export declare class FuncArgIfcDateTimeString extends FuncArgBase<StringValue> {
|
|
8
|
+
constructor(required: boolean, name: string, defaultValue?: StringValue);
|
|
9
|
+
getType(): ExprType;
|
|
10
|
+
protected transformForTypeCheck(callingExpr: FunctionExpr, invocationValue: ExprEvalSuccess<ExpressionValue>): ExprEvalResult<ExpressionValue>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ExprEvalResult, ExprEvalSuccess } from "../../ExprEvalResult.js";
|
|
2
|
+
import { FunctionExpr } from "../FunctionExpr.js";
|
|
3
|
+
import { ExpressionValue } from "../../../value/ExpressionValue.js";
|
|
4
|
+
import { ExprType } from "../../../type/ExprType.js";
|
|
5
|
+
import { IfcDurationValue } from "../../../value/IfcDurationValue.js";
|
|
6
|
+
import { FuncArgBase } from "./FuncArgBase.js";
|
|
7
|
+
export declare class FuncArgIfcDuration extends FuncArgBase<IfcDurationValue> {
|
|
8
|
+
constructor(required: boolean, name: string, defaultValue?: IfcDurationValue);
|
|
9
|
+
getType(): ExprType;
|
|
10
|
+
protected transformForTypeCheck(callingExpr: FunctionExpr, invocationValue: ExprEvalSuccess<ExpressionValue>): ExprEvalResult<ExpressionValue>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FuncArgString } from "./FuncArgString.js";
|
|
2
|
+
import { StringValue } from "../../../value/StringValue.js";
|
|
3
|
+
import { ExprEvalResult, ExprEvalSuccess } from "../../ExprEvalResult.js";
|
|
4
|
+
import { FunctionExpr } from "../FunctionExpr.js";
|
|
5
|
+
import { ExpressionValue } from "../../../value/ExpressionValue.js";
|
|
6
|
+
import { ExprType } from "../../../type/ExprType.js";
|
|
7
|
+
export declare class FuncArgIfcDurationString extends FuncArgString {
|
|
8
|
+
constructor(required: boolean, name: string, defaultValue?: StringValue);
|
|
9
|
+
getType(): ExprType;
|
|
10
|
+
protected transformForTypeCheck(callingExpr: FunctionExpr, invocationValue: ExprEvalSuccess<ExpressionValue>): ExprEvalResult<ExpressionValue>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ExprEvalResult, ExprEvalSuccess } from "../../ExprEvalResult.js";
|
|
2
|
+
import { FunctionExpr } from "../FunctionExpr.js";
|
|
3
|
+
import { ExpressionValue } from "../../../value/ExpressionValue.js";
|
|
4
|
+
import { ExprType } from "../../../type/ExprType.js";
|
|
5
|
+
import { IfcTimeStampValue } from "../../../value/IfcTimeStampValue.js";
|
|
6
|
+
import { FuncArgBase } from "./FuncArgBase.js";
|
|
7
|
+
export declare class FuncArgIfcTimeStamp extends FuncArgBase<IfcTimeStampValue> {
|
|
8
|
+
constructor(required: boolean, name: string, defaultValue?: IfcTimeStampValue);
|
|
9
|
+
getType(): ExprType;
|
|
10
|
+
protected transformForTypeCheck(callingExpr: FunctionExpr, invocationValue: ExprEvalSuccess<ExpressionValue>): ExprEvalResult<ExpressionValue>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ExprEvalResult, ExprEvalSuccess } from "../../ExprEvalResult.js";
|
|
2
|
+
import { FunctionExpr } from "../FunctionExpr.js";
|
|
3
|
+
import { ExpressionValue } from "../../../value/ExpressionValue.js";
|
|
4
|
+
import { FuncArgNumeric } from "./FuncArgNumeric.js";
|
|
5
|
+
import { NumericValue } from "../../../value/NumericValue.js";
|
|
6
|
+
import { ExprType } from "../../../type/ExprType.js";
|
|
7
|
+
export declare class FuncArgIfcTimeStampNumeric extends FuncArgNumeric {
|
|
8
|
+
constructor(required: boolean, name: string, defaultValue?: NumericValue);
|
|
9
|
+
getType(): ExprType;
|
|
10
|
+
protected transformForTypeCheck(callingExpr: FunctionExpr, invocationValue: ExprEvalSuccess<ExpressionValue>): ExprEvalResult<ExpressionValue>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { StringValue } from "../../../value/StringValue.js";
|
|
2
|
+
import { ExprEvalResult, ExprEvalSuccess } from "../../ExprEvalResult.js";
|
|
3
|
+
import { FunctionExpr } from "../FunctionExpr.js";
|
|
4
|
+
import { ExpressionValue } from "../../../value/ExpressionValue.js";
|
|
5
|
+
import { ExprType } from "../../../type/ExprType.js";
|
|
6
|
+
import { FuncArgBase } from "./FuncArgBase.js";
|
|
7
|
+
export declare class FuncArgIfcTimeString extends FuncArgBase<StringValue> {
|
|
8
|
+
constructor(required: boolean, name: string, defaultValue?: StringValue);
|
|
9
|
+
getType(): ExprType;
|
|
10
|
+
protected transformForTypeCheck(callingExpr: FunctionExpr, invocationValue: ExprEvalSuccess<ExpressionValue>): ExprEvalResult<ExpressionValue>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { FuncArg } from "../FuncArg.js";
|
|
2
|
+
import { FunctionExpr } from "../FunctionExpr.js";
|
|
3
|
+
import { ExprEvalResult } from "../../ExprEvalResult.js";
|
|
4
|
+
import { ExpressionValue } from "../../../value/ExpressionValue.js";
|
|
5
|
+
import { ExprType } from "../../../type/ExprType.js";
|
|
6
|
+
type UnpackConstructor<T> = T extends new (boolean: any, string: any) => FuncArg<infer U> ? U : never;
|
|
7
|
+
export declare class FuncArgUnion<T> extends FuncArg<T> {
|
|
8
|
+
private readonly options;
|
|
9
|
+
constructor(...options: FuncArg<T>[]);
|
|
10
|
+
static of<T extends new (boolean: any, string: any) => FuncArg<any>>(required: boolean, name: string, constructors: T[]): FuncArgUnion<UnpackConstructor<T>>;
|
|
11
|
+
transformValue(callingExpr: FunctionExpr, invocationValue: ExprEvalResult<ExpressionValue>): ExprEvalResult<ExpressionValue>;
|
|
12
|
+
getType(): ExprType;
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Func } from "../Func.js";
|
|
2
|
+
import { ExpressionValue } from "../../../value/ExpressionValue.js";
|
|
3
|
+
import { ExprEvalResult } from "../../ExprEvalResult.js";
|
|
4
|
+
import { ExprType } from "../../../type/ExprType.js";
|
|
5
|
+
import { FunctionExpr } from "../FunctionExpr.js";
|
|
6
|
+
export declare class ADDDURATION extends Func {
|
|
7
|
+
constructor();
|
|
8
|
+
protected calculateResult(callingExpr: FunctionExpr, evaluatedArguments: Map<string, ExpressionValue>): ExprEvalResult<ExpressionValue>;
|
|
9
|
+
getReturnType(argumentTypes: Array<ExprType>): ExprType;
|
|
10
|
+
}
|
|
@@ -4,7 +4,6 @@ import { ExprEvalResult } from "../../ExprEvalResult.js";
|
|
|
4
4
|
import { ExprType } from "../../../type/ExprType.js";
|
|
5
5
|
import { FunctionExpr } from "../FunctionExpr.js";
|
|
6
6
|
export declare class TOBOOLEAN extends Func {
|
|
7
|
-
private static readonly KEY_OBJECT;
|
|
8
7
|
constructor();
|
|
9
8
|
protected calculateResult(callingExpr: FunctionExpr, evaluatedArguments: Map<string, ExpressionValue>): ExprEvalResult<ExpressionValue>;
|
|
10
9
|
private convert;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Func } from "../Func.js";
|
|
2
|
+
import { ExpressionValue } from "../../../value/ExpressionValue.js";
|
|
3
|
+
import { ExprEvalResult } from "../../ExprEvalResult.js";
|
|
4
|
+
import { ExprType } from "../../../type/ExprType.js";
|
|
5
|
+
import { FunctionExpr } from "../FunctionExpr.js";
|
|
6
|
+
export declare class TOIFCDATE extends Func {
|
|
7
|
+
constructor();
|
|
8
|
+
protected calculateResult(callingExpr: FunctionExpr, evaluatedArguments: Map<string, ExpressionValue>): ExprEvalResult<ExpressionValue>;
|
|
9
|
+
getReturnType(argumentTypes: Array<ExprType>): ExprType;
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Func } from "../Func.js";
|
|
2
|
+
import { ExpressionValue } from "../../../value/ExpressionValue.js";
|
|
3
|
+
import { ExprEvalResult } from "../../ExprEvalResult.js";
|
|
4
|
+
import { ExprType } from "../../../type/ExprType.js";
|
|
5
|
+
import { FunctionExpr } from "../FunctionExpr.js";
|
|
6
|
+
export declare class TOIFCDATETIME extends Func {
|
|
7
|
+
constructor();
|
|
8
|
+
protected calculateResult(callingExpr: FunctionExpr, evaluatedArguments: Map<string, ExpressionValue>): ExprEvalResult<ExpressionValue>;
|
|
9
|
+
getReturnType(argumentTypes: Array<ExprType>): ExprType;
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Func } from "../Func.js";
|
|
2
|
+
import { ExpressionValue } from "../../../value/ExpressionValue.js";
|
|
3
|
+
import { ExprEvalResult } from "../../ExprEvalResult.js";
|
|
4
|
+
import { ExprType } from "../../../type/ExprType.js";
|
|
5
|
+
import { FunctionExpr } from "../FunctionExpr.js";
|
|
6
|
+
export declare class TOIFCDURATION extends Func {
|
|
7
|
+
constructor();
|
|
8
|
+
protected calculateResult(callingExpr: FunctionExpr, evaluatedArguments: Map<string, ExpressionValue>): ExprEvalResult<ExpressionValue>;
|
|
9
|
+
getReturnType(argumentTypes: Array<ExprType>): ExprType;
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Func } from "../Func.js";
|
|
2
|
+
import { ExpressionValue } from "../../../value/ExpressionValue.js";
|
|
3
|
+
import { ExprEvalResult } from "../../ExprEvalResult.js";
|
|
4
|
+
import { ExprType } from "../../../type/ExprType.js";
|
|
5
|
+
import { FunctionExpr } from "../FunctionExpr.js";
|
|
6
|
+
export declare class TOIFCTIME extends Func {
|
|
7
|
+
constructor();
|
|
8
|
+
protected calculateResult(callingExpr: FunctionExpr, evaluatedArguments: Map<string, ExpressionValue>): ExprEvalResult<ExpressionValue>;
|
|
9
|
+
getReturnType(argumentTypes: Array<ExprType>): ExprType;
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Func } from "../Func.js";
|
|
2
|
+
import { ExpressionValue } from "../../../value/ExpressionValue.js";
|
|
3
|
+
import { ExprEvalResult } from "../../ExprEvalResult.js";
|
|
4
|
+
import { ExprType } from "../../../type/ExprType.js";
|
|
5
|
+
import { FunctionExpr } from "../FunctionExpr.js";
|
|
6
|
+
export declare class TOIFCTIMESTAMP extends Func {
|
|
7
|
+
constructor();
|
|
8
|
+
protected calculateResult(callingExpr: FunctionExpr, evaluatedArguments: Map<string, ExpressionValue>): ExprEvalResult<ExpressionValue>;
|
|
9
|
+
getReturnType(argumentTypes: Array<ExprType>): ExprType;
|
|
10
|
+
}
|
|
@@ -4,7 +4,6 @@ import { ExprEvalResult } from "../../ExprEvalResult.js";
|
|
|
4
4
|
import { ExprType } from "../../../type/ExprType.js";
|
|
5
5
|
import { FunctionExpr } from "../FunctionExpr.js";
|
|
6
6
|
export declare class TONUMERIC extends Func {
|
|
7
|
-
private static readonly KEY_OBJECT;
|
|
8
7
|
constructor();
|
|
9
8
|
protected calculateResult(callingExpr: FunctionExpr, evaluatedArguments: Map<string, ExpressionValue>): ExprEvalResult<ExpressionValue>;
|
|
10
9
|
private convert;
|
package/dist/mjs/E.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["E.ts"],"names":[],"mappings":"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","file":"E.js","sourcesContent":["import { ArrayExpr } from \"./expression/structure/ArrayExpr.js\";\nimport { Expr } from \"./expression/Expr.js\";\nimport { StringConcatExpr } from \"./expression/string/StringConcatExpr.js\";\nimport { StringLiteralExpr } from \"./expression/string/StringLiteralExpr.js\";\nimport { ElemObjectReferenceExpr } from \"./expression/reference/ElemObjectReferenceExpr.js\";\nimport { PropObjectReferenceExpr } from \"./expression/reference/PropObjectReferenceExpr.js\";\nimport { NumericValue } from \"./value/NumericValue.js\";\nimport { DivideExpr } from \"./expression/numeric/DivideExpr.js\";\nimport { StringValue } from \"./value/StringValue.js\";\nimport { MinusExpr } from \"./expression/numeric/MinusExpr.js\";\nimport { MultiplyExpr } from \"./expression/numeric/MultiplyExpr.js\";\nimport { PlusExpr } from \"./expression/numeric/PlusExpr.js\";\nimport { NumericLiteralExpr } from \"./expression/numeric/NumericLiteralExpr.js\";\nimport { Decimal } from \"decimal.js\";\nimport { ParenthesisExpr } from \"./expression/structure/ParenthesisExpr.js\";\nimport { PowerExpr } from \"./expression/numeric/PowerExpr.js\";\nimport { UnaryMinusExpr } from \"./expression/numeric/UnaryMinusExpr.js\";\nimport { FunctionExpr } from \"./expression/function/FunctionExpr.js\";\nimport { BooleanValue } from \"./value/BooleanValue.js\";\nimport { AndExpr } from \"./expression/boolean/AndExpr.js\";\nimport { OrExpr } from \"./expression/boolean/OrExpr.js\";\nimport { XorExpr } from \"./expression/boolean/XorExpr.js\";\nimport { BooleanLiteralExpr } from \"./expression/boolean/BooleanLiteralExpr.js\";\nimport { NotExpr } from \"./expression/boolean/NotExpr.js\";\nimport { Logical } from \"./value/LogicalValue\";\nimport { LogicalLiteralExpr } from \"./expression/boolean/LogicalLiteralExpr\";\n\nexport class E {\n public static array(...elements: Array<Expr<any>>): ArrayExpr {\n return new ArrayExpr(elements);\n }\n public static concat(\n left: Expr<StringValue>,\n right: Expr<StringValue>\n ): StringConcatExpr {\n return new StringConcatExpr(left, right);\n }\n public static string(literal: string): StringLiteralExpr {\n return new StringLiteralExpr(literal);\n }\n public static element() {\n return new ElemObjectReferenceExpr();\n }\n public static property() {\n return new PropObjectReferenceExpr();\n }\n public static div(\n left: Expr<NumericValue>,\n right: Expr<NumericValue>\n ): DivideExpr {\n return new DivideExpr(left, right);\n }\n public static minus(\n left: Expr<NumericValue>,\n right: Expr<NumericValue>\n ): MinusExpr {\n return new MinusExpr(left, right);\n }\n public static multiply(\n left: Expr<NumericValue>,\n right: Expr<NumericValue>\n ): MultiplyExpr {\n return new MultiplyExpr(left, right);\n }\n public static plus(\n left: Expr<NumericValue>,\n right: Expr<NumericValue>\n ): PlusExpr {\n return new PlusExpr(left, right);\n }\n public static number(literal: number | string | Decimal): NumericLiteralExpr {\n return new NumericLiteralExpr(literal);\n }\n public static parenthesis(\n numericExpression: Expr<NumericValue>\n ): ParenthesisExpr {\n return new ParenthesisExpr(numericExpression);\n }\n public static power(\n base: Expr<NumericValue>,\n power: Expr<NumericValue>\n ): PowerExpr {\n return new PowerExpr(base, power);\n }\n public static unaryMinus(numExpr: Expr<NumericValue>): UnaryMinusExpr {\n return new UnaryMinusExpr(numExpr);\n }\n public static fun(\n functionName: string,\n ...funcArgs: Array<Expr<any>>\n ): FunctionExpr {\n return new FunctionExpr(functionName, funcArgs);\n }\n public static and(\n left: Expr<BooleanValue>,\n right: Expr<BooleanValue>\n ): AndExpr {\n return new AndExpr(left, right);\n }\n public static or(\n left: Expr<BooleanValue>,\n right: Expr<BooleanValue>\n ): OrExpr {\n return new OrExpr(left, right);\n }\n public static xor(\n left: Expr<BooleanValue>,\n right: Expr<BooleanValue>\n ): XorExpr {\n return new XorExpr(left, right);\n }\n public static boolean(literal: boolean) {\n return new BooleanLiteralExpr(literal);\n }\n public static logical(literal: Logical) {\n return new LogicalLiteralExpr(literal);\n }\n public static not(booleanExpr: Expr<BooleanValue>): NotExpr {\n return new NotExpr(booleanExpr);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["E.ts"],"names":[],"mappings":"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","file":"E.js","sourcesContent":["import { ArrayExpr } from \"./expression/structure/ArrayExpr.js\";\nimport { Expr } from \"./expression/Expr.js\";\nimport { StringConcatExpr } from \"./expression/string/StringConcatExpr.js\";\nimport { StringLiteralExpr } from \"./expression/string/StringLiteralExpr.js\";\nimport { ElemObjectReferenceExpr } from \"./expression/reference/ElemObjectReferenceExpr.js\";\nimport { PropObjectReferenceExpr } from \"./expression/reference/PropObjectReferenceExpr.js\";\nimport { NumericValue } from \"./value/NumericValue.js\";\nimport { DivideExpr } from \"./expression/numeric/DivideExpr.js\";\nimport { StringValue } from \"./value/StringValue.js\";\nimport { MinusExpr } from \"./expression/numeric/MinusExpr.js\";\nimport { MultiplyExpr } from \"./expression/numeric/MultiplyExpr.js\";\nimport { PlusExpr } from \"./expression/numeric/PlusExpr.js\";\nimport { NumericLiteralExpr } from \"./expression/numeric/NumericLiteralExpr.js\";\nimport { Decimal } from \"decimal.js\";\nimport { ParenthesisExpr } from \"./expression/structure/ParenthesisExpr.js\";\nimport { PowerExpr } from \"./expression/numeric/PowerExpr.js\";\nimport { UnaryMinusExpr } from \"./expression/numeric/UnaryMinusExpr.js\";\nimport { FunctionExpr } from \"./expression/function/FunctionExpr.js\";\nimport { BooleanValue } from \"./value/BooleanValue.js\";\nimport { AndExpr } from \"./expression/boolean/AndExpr.js\";\nimport { OrExpr } from \"./expression/boolean/OrExpr.js\";\nimport { XorExpr } from \"./expression/boolean/XorExpr.js\";\nimport { BooleanLiteralExpr } from \"./expression/boolean/BooleanLiteralExpr.js\";\nimport { NotExpr } from \"./expression/boolean/NotExpr.js\";\nimport { Logical } from \"./value/LogicalValue.js\";\nimport { LogicalLiteralExpr } from \"./expression/boolean/LogicalLiteralExpr.js\";\n\nexport class E {\n public static array(...elements: Array<Expr<any>>): ArrayExpr {\n return new ArrayExpr(elements);\n }\n public static concat(\n left: Expr<StringValue>,\n right: Expr<StringValue>\n ): StringConcatExpr {\n return new StringConcatExpr(left, right);\n }\n public static string(literal: string): StringLiteralExpr {\n return new StringLiteralExpr(literal);\n }\n public static element() {\n return new ElemObjectReferenceExpr();\n }\n public static property() {\n return new PropObjectReferenceExpr();\n }\n public static div(\n left: Expr<NumericValue>,\n right: Expr<NumericValue>\n ): DivideExpr {\n return new DivideExpr(left, right);\n }\n public static minus(\n left: Expr<NumericValue>,\n right: Expr<NumericValue>\n ): MinusExpr {\n return new MinusExpr(left, right);\n }\n public static multiply(\n left: Expr<NumericValue>,\n right: Expr<NumericValue>\n ): MultiplyExpr {\n return new MultiplyExpr(left, right);\n }\n public static plus(\n left: Expr<NumericValue>,\n right: Expr<NumericValue>\n ): PlusExpr {\n return new PlusExpr(left, right);\n }\n public static number(literal: number | string | Decimal): NumericLiteralExpr {\n return new NumericLiteralExpr(literal);\n }\n public static parenthesis(\n numericExpression: Expr<NumericValue>\n ): ParenthesisExpr {\n return new ParenthesisExpr(numericExpression);\n }\n public static power(\n base: Expr<NumericValue>,\n power: Expr<NumericValue>\n ): PowerExpr {\n return new PowerExpr(base, power);\n }\n public static unaryMinus(numExpr: Expr<NumericValue>): UnaryMinusExpr {\n return new UnaryMinusExpr(numExpr);\n }\n public static fun(\n functionName: string,\n ...funcArgs: Array<Expr<any>>\n ): FunctionExpr {\n return new FunctionExpr(functionName, funcArgs);\n }\n public static and(\n left: Expr<BooleanValue>,\n right: Expr<BooleanValue>\n ): AndExpr {\n return new AndExpr(left, right);\n }\n public static or(\n left: Expr<BooleanValue>,\n right: Expr<BooleanValue>\n ): OrExpr {\n return new OrExpr(left, right);\n }\n public static xor(\n left: Expr<BooleanValue>,\n right: Expr<BooleanValue>\n ): XorExpr {\n return new XorExpr(left, right);\n }\n public static boolean(literal: boolean) {\n return new BooleanLiteralExpr(literal);\n }\n public static logical(literal: Logical) {\n return new LogicalLiteralExpr(literal);\n }\n public static not(booleanExpr: Expr<BooleanValue>): NotExpr {\n return new NotExpr(booleanExpr);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["IfcExpression.ts"],"names":[],"mappings":"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","file":"IfcExpression.js","sourcesContent":["import {\n CharStream,\n CommonTokenStream,\n ErrorListener,\n ParserRuleContext,\n ParseTreeWalker,\n Token,\n} from \"antlr4\";\nimport { ExprCompiler } from \"./compiler/ExprCompiler.js\";\nimport { IfcExpressionErrorListener } from \"./IfcExpressionErrorListener.js\";\nimport { IfcExpressionValidationListener } from \"./compiler/IfcExpressionValidationListener.js\";\n\nimport { isNullish, isPresent } from \"./util/IfcExpressionUtils.js\";\nimport { IfcExpressionContext } from \"./context/IfcExpressionContext.js\";\nimport { Expr } from \"./expression/Expr.js\";\n\nimport { IfcElementAccessor } from \"./context/IfcElementAccessor.js\";\nimport { Value } from \"./value/Value.js\";\nimport { StringValue } from \"./value/StringValue.js\";\nimport { NumericValue } from \"./value/NumericValue.js\";\nimport { BooleanValue } from \"./value/BooleanValue.js\";\nimport { LogicalValue } from \"./value/LogicalValue.js\";\nimport { ReferenceValue } from \"./value/ReferenceValue.js\";\nimport { IfcPropertySetAccessor } from \"./context/IfcPropertySetAccessor.js\";\nimport { IfcPropertyAccessor } from \"./context/IfcPropertyAccessor.js\";\nimport { IfcRootObjectAccessor } from \"./context/IfcRootObjectAccessor.js\";\nimport { IfcTypeObjectAccessor } from \"./context/IfcTypeObjectAccessor.js\";\nimport { NamedObjectAccessor } from \"./context/NamedObjectAccessor.js\";\nimport IfcExpressionParser from \"./gen/parser/IfcExpressionParser.js\";\nimport IfcExpressionVisitor from \"./gen/parser/IfcExpressionVisitor.js\";\nimport IfcExpressionLexer from \"./gen/parser/IfcExpressionLexer.js\";\nimport { ObjectAccessor } from \"./context/ObjectAccessor.js\";\nimport { IfcExpressionEvaluationException } from \"./expression/IfcExpressionEvaluationException.js\";\nimport type { ExpressionValue } from \"./value/ExpressionValue.js\";\nimport type { BoxedValueTypes } from \"./value/BoxedValueTypes.js\";\nimport {\n ExprEvalError,\n ExprEvalResult,\n isExprEvalError,\n isExprEvalSuccess,\n} from \"./expression/ExprEvalResult.js\";\nimport { ExprKind } from \"./expression/ExprKind.js\";\nimport { ValidationException } from \"./error/ValidationException.js\";\nimport { TypeManager } from \"./compiler/TypeManager.js\";\nimport { mapException } from \"./error/ExceptionToExprEvalErrorMapper.js\";\nimport { NopContext } from \"./context/NopContext.js\";\nimport { ExprToTextInputLinker } from \"./compiler/ExprToTextInputLinker.js\";\nimport { TextSpan } from \"./util/TextSpan.js\";\nimport { ExprFacade } from \"./expression/ExprFacade\";\n\nexport {\n IfcElementAccessor,\n IfcExpressionContext,\n Value,\n StringValue,\n BooleanValue,\n LogicalValue,\n NumericValue,\n ExpressionValue,\n ReferenceValue,\n IfcPropertySetAccessor,\n IfcPropertyAccessor,\n IfcRootObjectAccessor,\n IfcTypeObjectAccessor,\n NamedObjectAccessor,\n ObjectAccessor,\n Expr,\n ExprCompiler,\n ExprKind,\n IfcExpressionEvaluationException,\n IfcExpressionErrorListener,\n IfcExpressionVisitor,\n isPresent,\n isNullish,\n ExprEvalResult,\n ExprEvalError,\n isExprEvalError,\n isExprEvalSuccess,\n ExprToTextInputLinker,\n ExprFacade,\n};\n\nexport type { BoxedValueTypes };\n\nexport class IfcExpressionParseResult {\n private readonly _input: string;\n private readonly _typeManager: TypeManager;\n private readonly _parseTree: ParserRuleContext;\n\n constructor(input: string, typeManager: TypeManager, exprContext) {\n this._typeManager = typeManager;\n this._parseTree = exprContext;\n this._input = input;\n }\n\n get typeManager(): TypeManager {\n return this._typeManager;\n }\n\n get parseTree(): ParserRuleContext {\n return this._parseTree;\n }\n\n get input(): string {\n return this._input;\n }\n}\n\nexport class IfcExpression {\n /**\n * Parses the input and returns a parse result, which contains the parse tree, the type information per parse tree node, and the input.\n * @param input\n * @param errorListener\n * @return the parse result, which can subequently be compiled into an Expr using compile().\n */\n public static parse(\n input: string,\n errorListener?: ErrorListener<Token | number>\n ): IfcExpressionParseResult {\n const chars = new CharStream(input); // replace this with a FileStream as required\n const lexer = new IfcExpressionLexer(chars);\n const tokens = new CommonTokenStream(lexer);\n const parser = new IfcExpressionParser(tokens);\n lexer.removeErrorListeners();\n parser.removeErrorListeners();\n const myErrorListener = new IfcExpressionErrorListener();\n if (isPresent(errorListener)) {\n lexer.addErrorListener(errorListener);\n parser.addErrorListener(errorListener);\n }\n lexer.addErrorListener(myErrorListener);\n parser.addErrorListener(myErrorListener);\n let expr;\n expr = parser.expr();\n const validationListener = new IfcExpressionValidationListener();\n if (!myErrorListener.isErrorOccurred()) {\n const walker = new ParseTreeWalker();\n try {\n walker.walk(validationListener, expr);\n } catch (e) {\n if (e instanceof ValidationException) {\n if (errorListener instanceof IfcExpressionErrorListener) {\n errorListener.validationException(e);\n }\n myErrorListener.validationException(e);\n }\n }\n }\n return new IfcExpressionParseResult(\n input,\n validationListener.getTypeManager(),\n expr\n );\n }\n\n /**\n * Compiles the specified parseResult into an Expr.\n * @param parseResult\n * @return the Expression (Expr), which can be evaluated to obtain its result.\n */\n public static compile(\n parseResult: IfcExpressionParseResult\n ): ExprFacade<ExpressionValue> {\n const compiler = new ExprCompiler(parseResult.typeManager);\n const expr = compiler.visit(parseResult.parseTree);\n ExprToTextInputLinker.linkTextToExpressions(\n parseResult.input,\n expr,\n compiler.getExprManager()\n );\n return new ExprFacade(expr);\n }\n\n /**\n * Evaluates the specified input expression and returns the evaluation result. The parse\n * and compile steps are done internally.\n *\n * @param expression: the input expression\n * @param context: the context required for accessing the IFC model\n * @return the result (or an error object).\n */\n public static evaluate(\n expression: string,\n context: IfcExpressionContext = new NopContext()\n ): ExprEvalResult<ExpressionValue> {\n const errorListener = new IfcExpressionErrorListener();\n const parseResult = IfcExpression.parse(expression, errorListener);\n if (errorListener.isErrorOccurred()) {\n return mapException(errorListener.getException());\n }\n const compiledExpression = this.compile(parseResult);\n return compiledExpression.evaluate(context);\n }\n\n public static formatError(input: string, error: ExprEvalError) {\n const lines = [\"** Error **\"];\n if (!isNullish(error[\"textSpan\"])) {\n const span: TextSpan = error[\"textSpan\"];\n const underlined = span.underline(input, \"^\");\n const startString = \"Input: \";\n const indented = this.indent(underlined, startString.length);\n const replaced = startString + indented.substr(startString.length);\n replaced.split(\"\\n\").forEach((line) => lines.push(line));\n }\n lines.push(\"Problem: \" + error.message);\n return lines.join(\"\\n\");\n }\n\n private static indent(s: string, by: number) {\n return s\n .split(\"\\n\")\n .map((line) => \" \".repeat(by) + line)\n .join(\"\\n\");\n }\n\n public static evaluateExpression(\n expr: ExprFacade<ExpressionValue>,\n context: IfcExpressionContext = new NopContext()\n ) {\n return expr.evaluate(context);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["IfcExpression.ts"],"names":[],"mappings":"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","file":"IfcExpression.js","sourcesContent":["import {\n CharStream,\n CommonTokenStream,\n ErrorListener,\n ParserRuleContext,\n ParseTreeWalker,\n Token,\n} from \"antlr4\";\nimport { ExprCompiler } from \"./compiler/ExprCompiler.js\";\nimport { IfcExpressionErrorListener } from \"./IfcExpressionErrorListener.js\";\nimport { IfcExpressionValidationListener } from \"./compiler/IfcExpressionValidationListener.js\";\n\nimport { isNullish, isPresent } from \"./util/IfcExpressionUtils.js\";\nimport { IfcExpressionContext } from \"./context/IfcExpressionContext.js\";\nimport { Expr } from \"./expression/Expr.js\";\n\nimport { IfcElementAccessor } from \"./context/IfcElementAccessor.js\";\nimport { Value } from \"./value/Value.js\";\nimport { StringValue } from \"./value/StringValue.js\";\nimport { NumericValue } from \"./value/NumericValue.js\";\nimport { BooleanValue } from \"./value/BooleanValue.js\";\nimport { LogicalValue } from \"./value/LogicalValue.js\";\nimport { ReferenceValue } from \"./value/ReferenceValue.js\";\nimport { IfcPropertySetAccessor } from \"./context/IfcPropertySetAccessor.js\";\nimport { IfcPropertyAccessor } from \"./context/IfcPropertyAccessor.js\";\nimport { IfcRootObjectAccessor } from \"./context/IfcRootObjectAccessor.js\";\nimport { IfcTypeObjectAccessor } from \"./context/IfcTypeObjectAccessor.js\";\nimport { NamedObjectAccessor } from \"./context/NamedObjectAccessor.js\";\nimport IfcExpressionParser from \"./gen/parser/IfcExpressionParser.js\";\nimport IfcExpressionVisitor from \"./gen/parser/IfcExpressionVisitor.js\";\nimport IfcExpressionLexer from \"./gen/parser/IfcExpressionLexer.js\";\nimport { ObjectAccessor } from \"./context/ObjectAccessor.js\";\nimport { IfcExpressionEvaluationException } from \"./expression/IfcExpressionEvaluationException.js\";\nimport type { ExpressionValue } from \"./value/ExpressionValue.js\";\nimport type { BoxedValueTypes } from \"./value/BoxedValueTypes.js\";\nimport {\n ExprEvalError,\n ExprEvalResult,\n isExprEvalError,\n isExprEvalSuccess,\n} from \"./expression/ExprEvalResult.js\";\nimport { ExprKind } from \"./expression/ExprKind.js\";\nimport { ValidationException } from \"./error/ValidationException.js\";\nimport { TypeManager } from \"./compiler/TypeManager.js\";\nimport { mapException } from \"./error/ExceptionToExprEvalErrorMapper.js\";\nimport { NopContext } from \"./context/NopContext.js\";\nimport { ExprToTextInputLinker } from \"./compiler/ExprToTextInputLinker.js\";\nimport { TextSpan } from \"./util/TextSpan.js\";\nimport { ExprFacade } from \"./expression/ExprFacade.js\";\n\nexport {\n IfcElementAccessor,\n IfcExpressionContext,\n Value,\n StringValue,\n BooleanValue,\n LogicalValue,\n NumericValue,\n ExpressionValue,\n ReferenceValue,\n IfcPropertySetAccessor,\n IfcPropertyAccessor,\n IfcRootObjectAccessor,\n IfcTypeObjectAccessor,\n NamedObjectAccessor,\n ObjectAccessor,\n Expr,\n ExprCompiler,\n ExprKind,\n IfcExpressionEvaluationException,\n IfcExpressionErrorListener,\n IfcExpressionVisitor,\n isPresent,\n isNullish,\n ExprEvalResult,\n ExprEvalError,\n isExprEvalError,\n isExprEvalSuccess,\n ExprToTextInputLinker,\n ExprFacade,\n};\n\nexport type { BoxedValueTypes };\n\nexport class IfcExpressionParseResult {\n private readonly _input: string;\n private readonly _typeManager: TypeManager;\n private readonly _parseTree: ParserRuleContext;\n\n constructor(input: string, typeManager: TypeManager, exprContext) {\n this._typeManager = typeManager;\n this._parseTree = exprContext;\n this._input = input;\n }\n\n get typeManager(): TypeManager {\n return this._typeManager;\n }\n\n get parseTree(): ParserRuleContext {\n return this._parseTree;\n }\n\n get input(): string {\n return this._input;\n }\n}\n\nexport class IfcExpression {\n /**\n * Parses the input and returns a parse result, which contains the parse tree, the type information per parse tree node, and the input.\n * @param input\n * @param errorListener\n * @return the parse result, which can subequently be compiled into an Expr using compile().\n */\n public static parse(\n input: string,\n errorListener?: ErrorListener<Token | number>\n ): IfcExpressionParseResult {\n const chars = new CharStream(input); // replace this with a FileStream as required\n const lexer = new IfcExpressionLexer(chars);\n const tokens = new CommonTokenStream(lexer);\n const parser = new IfcExpressionParser(tokens);\n lexer.removeErrorListeners();\n parser.removeErrorListeners();\n const myErrorListener = new IfcExpressionErrorListener();\n if (isPresent(errorListener)) {\n lexer.addErrorListener(errorListener);\n parser.addErrorListener(errorListener);\n }\n lexer.addErrorListener(myErrorListener);\n parser.addErrorListener(myErrorListener);\n let expr;\n expr = parser.expr();\n const validationListener = new IfcExpressionValidationListener();\n if (!myErrorListener.isErrorOccurred()) {\n const walker = new ParseTreeWalker();\n try {\n walker.walk(validationListener, expr);\n } catch (e) {\n if (e instanceof ValidationException) {\n if (errorListener instanceof IfcExpressionErrorListener) {\n errorListener.validationException(e);\n }\n myErrorListener.validationException(e);\n }\n }\n }\n return new IfcExpressionParseResult(\n input,\n validationListener.getTypeManager(),\n expr\n );\n }\n\n /**\n * Compiles the specified parseResult into an Expr.\n * @param parseResult\n * @return the Expression (Expr), which can be evaluated to obtain its result.\n */\n public static compile(\n parseResult: IfcExpressionParseResult\n ): ExprFacade<ExpressionValue> {\n const compiler = new ExprCompiler(parseResult.typeManager);\n const expr = compiler.visit(parseResult.parseTree);\n ExprToTextInputLinker.linkTextToExpressions(\n parseResult.input,\n expr,\n compiler.getExprManager()\n );\n return new ExprFacade(expr);\n }\n\n /**\n * Evaluates the specified input expression and returns the evaluation result. The parse\n * and compile steps are done internally.\n *\n * @param expression: the input expression\n * @param context: the context required for accessing the IFC model\n * @return the result (or an error object).\n */\n public static evaluate(\n expression: string,\n context: IfcExpressionContext = new NopContext()\n ): ExprEvalResult<ExpressionValue> {\n const errorListener = new IfcExpressionErrorListener();\n const parseResult = IfcExpression.parse(expression, errorListener);\n if (errorListener.isErrorOccurred()) {\n return mapException(errorListener.getException());\n }\n const compiledExpression = this.compile(parseResult);\n return compiledExpression.evaluate(context);\n }\n\n public static formatError(input: string, error: ExprEvalError) {\n const lines = [\"** Error **\"];\n if (!isNullish(error[\"textSpan\"])) {\n const span: TextSpan = error[\"textSpan\"];\n const underlined = span.underline(input, \"^\");\n const startString = \"Input: \";\n const indented = this.indent(underlined, startString.length);\n const replaced = startString + indented.substr(startString.length);\n replaced.split(\"\\n\").forEach((line) => lines.push(line));\n }\n lines.push(\"Problem: \" + error.message);\n return lines.join(\"\\n\");\n }\n\n private static indent(s: string, by: number) {\n return s\n .split(\"\\n\")\n .map((line) => \" \".repeat(by) + line)\n .join(\"\\n\");\n }\n\n public static evaluateExpression(\n expr: ExprFacade<ExpressionValue>,\n context: IfcExpressionContext = new NopContext()\n ) {\n return expr.evaluate(context);\n }\n}\n"]}
|