@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.
Files changed (2) hide show
  1. package/index.esm.js +33 -10
  2. 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: value => {
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: value => {
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: value => {
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
- if ((_g = (_f = validations.date) === null || _f === void 0 ? void 0 : _f.target) === null || _g === void 0 ? void 0 : _g.format) {
2137
- target = new Date(dateRearrangeMapper[(_j = (_h = validations.date) === null || _h === void 0 ? void 0 : _h.target) === null || _j === void 0 ? void 0 : _j.format](validations.date.target.value).toString());
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 (((_k = validations.date.target) === null || _k === void 0 ? void 0 : _k.value) && target) {
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, (_l = validations.date) === null || _l === void 0 ? void 0 : _l.origin.format)) {
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[(_m = validations.date) === null || _m === void 0 ? void 0 : _m.operator];
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(/[/-]/);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bolttech/form-engine-core",
3
- "version": "0.0.2-beta.02",
3
+ "version": "0.0.2-beta.03",
4
4
  "module": "./index.esm.js",
5
5
  "type": "module",
6
6
  "main": "./index.esm.js",