@bolttech/form-engine-core 0.0.2-beta.2 → 0.0.2-beta.3
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/index.esm.js +33 -10
- package/package.json +1 -1
package/index.esm.js
CHANGED
|
@@ -1962,6 +1962,16 @@ const conditions = (value, validations) => {
|
|
|
1962
1962
|
return !result;
|
|
1963
1963
|
};
|
|
1964
1964
|
|
|
1965
|
+
/**
|
|
1966
|
+
* @internal
|
|
1967
|
+
* Parses date value to avoid type format errors.
|
|
1968
|
+
*
|
|
1969
|
+
* @param {string} value - the value to be parsed into a valid date.
|
|
1970
|
+
* @returns {string | null} - returns a pareable string format or null to handle validation exceptions.
|
|
1971
|
+
*/
|
|
1972
|
+
const parseDateValue = value => {
|
|
1973
|
+
return (value === null || value === void 0 ? void 0 : value.toString()) ? value.toString() : null;
|
|
1974
|
+
};
|
|
1965
1975
|
/**
|
|
1966
1976
|
* @internal
|
|
1967
1977
|
* Validates if a date string matches a specific date format.
|
|
@@ -1986,6 +1996,7 @@ const conditions = (value, validations) => {
|
|
|
1986
1996
|
* invalidStringDate("1997/25/07", "MMDDYYYY");
|
|
1987
1997
|
*/
|
|
1988
1998
|
const invalidStringDate = (value, format) => {
|
|
1999
|
+
if (parseDateValue(value) === null) return false;
|
|
1989
2000
|
if (!value.includes('/') && !value.includes('-') || !format) {
|
|
1990
2001
|
return true;
|
|
1991
2002
|
}
|
|
@@ -2038,15 +2049,21 @@ const getIntervalsDate = (date, intervals) => {
|
|
|
2038
2049
|
* console.log(formattedDate2); // '12/01/2023'
|
|
2039
2050
|
*/
|
|
2040
2051
|
const dateRearrangeMapper = {
|
|
2041
|
-
DDMMYYYY:
|
|
2052
|
+
DDMMYYYY: val => {
|
|
2053
|
+
const value = parseDateValue(val);
|
|
2054
|
+
if (value === null) return '';
|
|
2042
2055
|
const dateParts = value.split(value.includes('/') ? '/' : '-');
|
|
2043
2056
|
return `${dateParts[1]}/${dateParts[0]}/${dateParts[2]}`;
|
|
2044
2057
|
},
|
|
2045
|
-
YYYYMMDD:
|
|
2058
|
+
YYYYMMDD: val => {
|
|
2059
|
+
const value = parseDateValue(val);
|
|
2060
|
+
if (value === null) return '';
|
|
2046
2061
|
const dateParts = value.split(value.includes('/') ? '/' : '-');
|
|
2047
2062
|
return `${dateParts[1]}/${dateParts[2]}/${dateParts[0]}`;
|
|
2048
2063
|
},
|
|
2049
|
-
YYYYDDMM:
|
|
2064
|
+
YYYYDDMM: val => {
|
|
2065
|
+
const value = parseDateValue(val);
|
|
2066
|
+
if (value === null) return '';
|
|
2050
2067
|
const dateParts = value.split(value.includes('/') ? '/' : '-');
|
|
2051
2068
|
return `${dateParts[2]}/${dateParts[1]}/${dateParts[0]}`;
|
|
2052
2069
|
},
|
|
@@ -2079,6 +2096,7 @@ const dateRearrangeMapper = {
|
|
|
2079
2096
|
*/
|
|
2080
2097
|
const betweenDates = (value, validations) => {
|
|
2081
2098
|
var _a;
|
|
2099
|
+
if (parseDateValue(value) === null) return false;
|
|
2082
2100
|
let fail = false;
|
|
2083
2101
|
if (((_a = validations.betweenDates) === null || _a === void 0 ? void 0 : _a.length) != 2) return false;
|
|
2084
2102
|
for (const validation of validations.betweenDates) {
|
|
@@ -2124,23 +2142,27 @@ const betweenDates = (value, validations) => {
|
|
|
2124
2142
|
* ```
|
|
2125
2143
|
*/
|
|
2126
2144
|
const date = (value, validations) => {
|
|
2127
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
2145
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
2146
|
+
if (parseDateValue(value) === null) return true;
|
|
2128
2147
|
if (!((_b = (_a = validations.date) === null || _a === void 0 ? void 0 : _a.target) === null || _b === void 0 ? void 0 : _b.value) && !((_d = (_c = validations.date) === null || _c === void 0 ? void 0 : _c.origin) === null || _d === void 0 ? void 0 : _d.intervals)) {
|
|
2129
2148
|
return false;
|
|
2130
2149
|
}
|
|
2131
|
-
const originValue = validations.date.origin.value || value;
|
|
2150
|
+
const originValue = parseDateValue(validations.date.origin.value || value);
|
|
2151
|
+
if (originValue === null) return false;
|
|
2132
2152
|
const mappedValue = dateRearrangeMapper[(_e = validations.date) === null || _e === void 0 ? void 0 : _e.origin.format](originValue).toString();
|
|
2133
2153
|
let originDate = new Date(mappedValue);
|
|
2134
2154
|
let targetDate = new Date();
|
|
2135
2155
|
let target = new Date();
|
|
2136
|
-
|
|
2137
|
-
|
|
2156
|
+
const targetValue = parseDateValue((_g = (_f = validations === null || validations === void 0 ? void 0 : validations.date) === null || _f === void 0 ? void 0 : _f.target) === null || _g === void 0 ? void 0 : _g.value);
|
|
2157
|
+
if (targetValue === null) return false;
|
|
2158
|
+
if ((_j = (_h = validations.date) === null || _h === void 0 ? void 0 : _h.target) === null || _j === void 0 ? void 0 : _j.format) {
|
|
2159
|
+
target = new Date(dateRearrangeMapper[(_l = (_k = validations.date) === null || _k === void 0 ? void 0 : _k.target) === null || _l === void 0 ? void 0 : _l.format](targetValue).toString());
|
|
2138
2160
|
targetDate = target;
|
|
2139
2161
|
}
|
|
2140
2162
|
if (validations.date.origin.intervals) {
|
|
2141
2163
|
targetDate = getIntervalsDate(originDate, validations.date.origin.intervals);
|
|
2142
2164
|
const date = new Date();
|
|
2143
|
-
if (((
|
|
2165
|
+
if (((_m = validations.date.target) === null || _m === void 0 ? void 0 : _m.value) && target) {
|
|
2144
2166
|
date.setDate(target.getDate());
|
|
2145
2167
|
date.setMonth(target.getMonth());
|
|
2146
2168
|
}
|
|
@@ -2149,7 +2171,7 @@ const date = (value, validations) => {
|
|
|
2149
2171
|
if (validations.date.onlyValidDate && (!(targetDate instanceof Date && isFinite(targetDate)) || !(targetDate instanceof Date && isFinite(originDate)) || originValue.length < 8)) {
|
|
2150
2172
|
return true;
|
|
2151
2173
|
}
|
|
2152
|
-
if (invalidStringDate(mappedValue, (
|
|
2174
|
+
if (invalidStringDate(mappedValue, (_o = validations.date) === null || _o === void 0 ? void 0 : _o.origin.format)) {
|
|
2153
2175
|
return false;
|
|
2154
2176
|
}
|
|
2155
2177
|
const originTimestamp = originDate.getTime();
|
|
@@ -2162,7 +2184,7 @@ const date = (value, validations) => {
|
|
|
2162
2184
|
'===': originTimestamp === targetTimestamp,
|
|
2163
2185
|
'!==': originTimestamp !== targetTimestamp
|
|
2164
2186
|
};
|
|
2165
|
-
return operationsMapper[(
|
|
2187
|
+
return operationsMapper[(_p = validations.date) === null || _p === void 0 ? void 0 : _p.operator];
|
|
2166
2188
|
};
|
|
2167
2189
|
/**
|
|
2168
2190
|
* @function validDate
|
|
@@ -2184,6 +2206,7 @@ const date = (value, validations) => {
|
|
|
2184
2206
|
* ```
|
|
2185
2207
|
*/
|
|
2186
2208
|
const validDate = (value, validations) => {
|
|
2209
|
+
if (parseDateValue(value) === null) return false;
|
|
2187
2210
|
if (!validations.validDate || !value) return false;
|
|
2188
2211
|
if (/[^a-zA-Z0-9\s-]/.test(value)) return true;
|
|
2189
2212
|
const dateParts = dateRearrangeMapper[validations.validDate](value).toString().split(/[/-]/);
|