@qrvey/utils 1.4.0-4 → 1.4.0-5

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 (114) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/column_format/helpers/defineTableChartFormat.js +3 -3
  3. package/dist/cjs/columns/helpers/getDatasetColumn.js +1 -3
  4. package/dist/cjs/dates/adapters/mdyDateToDate.d.ts +1 -1
  5. package/dist/cjs/dates/adapters/mdyDateToDate.js +12 -5
  6. package/dist/cjs/dates/adapters/monthYearToDate.d.ts +1 -1
  7. package/dist/cjs/dates/adapters/monthYearToDate.js +8 -7
  8. package/dist/cjs/dates/adapters/quarterYearToDate.d.ts +1 -1
  9. package/dist/cjs/dates/adapters/quarterYearToDate.js +8 -7
  10. package/dist/cjs/dates/adapters/weekYearToDate.d.ts +1 -1
  11. package/dist/cjs/dates/adapters/weekYearToDate.js +20 -19
  12. package/dist/cjs/dates/adapters/yearToDate.d.ts +1 -1
  13. package/dist/cjs/dates/adapters/yearToDate.js +7 -6
  14. package/dist/cjs/dates/constants/DATE_FORMAT_BY_PROPERTY.d.ts +16 -0
  15. package/dist/cjs/dates/constants/DATE_FORMAT_BY_PROPERTY.js +21 -0
  16. package/dist/cjs/dates/helpers/getDateFormatByProperty.js +2 -31
  17. package/dist/cjs/dates/helpers/getDateFormatRegularExpressionInArray.d.ts +2 -1
  18. package/dist/cjs/dates/helpers/getDateFormatRegularExpressionInArray.js +2 -7
  19. package/dist/cjs/dates/helpers/getDatePickerPickLevel.js +7 -1
  20. package/dist/cjs/dates/helpers/getSeparatorByDateFormat.js +1 -18
  21. package/dist/cjs/dates/helpers/index.d.ts +0 -1
  22. package/dist/cjs/dates/helpers/index.js +0 -1
  23. package/dist/cjs/dates/helpers/validateDate.js +14 -3
  24. package/dist/cjs/dates/range/getDateRange.js +15 -25
  25. package/dist/cjs/dates/relative/RelativeStatementAdapter.js +15 -10
  26. package/dist/cjs/dates/relative/helpers/getStatementCase.js +10 -7
  27. package/dist/cjs/filters/adapters/adaptDateGroupingProperty.js +9 -13
  28. package/dist/cjs/filters/adapters/logicToUI.js +1 -2
  29. package/dist/cjs/filters/adapters/transformFilters.js +1 -3
  30. package/dist/cjs/filters/helpers/OLD_getAggFilters.js +1 -3
  31. package/dist/cjs/filters/helpers/backend/buildFilters.js +5 -2
  32. package/dist/cjs/filters/helpers/backend/getBackendGroupValue.js +1 -2
  33. package/dist/cjs/filters/helpers/backend/getBackendValues.js +53 -31
  34. package/dist/cjs/filters/helpers/backend/getLogicByDatasetsColumns.d.ts +2 -2
  35. package/dist/cjs/filters/helpers/backend/getLogicByDatasetsColumns.js +57 -20
  36. package/dist/cjs/filters/helpers/common/excludeFiltersByParams.js +1 -2
  37. package/dist/cjs/filters/helpers/common/getFiltersByDatasetsColumns.js +28 -18
  38. package/dist/cjs/filters/helpers/common/getFiltersByParams.js +1 -2
  39. package/dist/cjs/filters/helpers/getAggFiltersFromFilterData.js +0 -1
  40. package/dist/cjs/filters/helpers/getScopesByHierarchy.js +7 -5
  41. package/dist/cjs/filters/helpers/ui/getUIValues.js +76 -85
  42. package/dist/cjs/filters/interfaces/functions/IFFGetLogicByDatasetsColumns.d.ts +3 -0
  43. package/dist/cjs/filters/services/UChartApi.d.ts +17 -3
  44. package/dist/cjs/filters/services/UChartApi.js +49 -26
  45. package/dist/cjs/filters/services/UChartPaginationApi.d.ts +17 -3
  46. package/dist/cjs/filters/services/UChartPaginationApi.js +45 -24
  47. package/dist/cjs/general/mix/isNaNV2.d.ts +10 -3
  48. package/dist/cjs/general/mix/isNaNV2.js +11 -4
  49. package/dist/cjs/general/string/parseUrl.js +2 -2
  50. package/dist/cjs/globalization/helpers/getI18nCalendar.js +10 -7
  51. package/dist/cjs/globalization/service/i18nextBuilder.js +1 -3
  52. package/dist/cjs/globalization/service/initI18n.js +1 -12
  53. package/dist/cjs/qrvey/helpers/getDataAnswersByColumn.js +6 -5
  54. package/dist/cjs/qrvey/helpers/getExpressionAnswers.js +15 -11
  55. package/dist/cjs/tokens/isTokenLabel.js +1 -2
  56. package/dist/column_format/helpers/defineTableChartFormat.js +3 -3
  57. package/dist/columns/helpers/getDatasetColumn.js +1 -3
  58. package/dist/dates/adapters/mdyDateToDate.d.ts +1 -1
  59. package/dist/dates/adapters/mdyDateToDate.js +12 -5
  60. package/dist/dates/adapters/monthYearToDate.d.ts +1 -1
  61. package/dist/dates/adapters/monthYearToDate.js +8 -7
  62. package/dist/dates/adapters/quarterYearToDate.d.ts +1 -1
  63. package/dist/dates/adapters/quarterYearToDate.js +8 -7
  64. package/dist/dates/adapters/weekYearToDate.d.ts +1 -1
  65. package/dist/dates/adapters/weekYearToDate.js +20 -19
  66. package/dist/dates/adapters/yearToDate.d.ts +1 -1
  67. package/dist/dates/adapters/yearToDate.js +7 -6
  68. package/dist/dates/constants/DATE_FORMAT_BY_PROPERTY.d.ts +16 -0
  69. package/dist/dates/constants/DATE_FORMAT_BY_PROPERTY.js +18 -0
  70. package/dist/dates/helpers/getDateFormatByProperty.js +2 -31
  71. package/dist/dates/helpers/getDateFormatRegularExpressionInArray.d.ts +2 -1
  72. package/dist/dates/helpers/getDateFormatRegularExpressionInArray.js +2 -7
  73. package/dist/dates/helpers/getDatePickerPickLevel.js +7 -1
  74. package/dist/dates/helpers/getSeparatorByDateFormat.js +1 -18
  75. package/dist/dates/helpers/index.d.ts +0 -1
  76. package/dist/dates/helpers/index.js +0 -1
  77. package/dist/dates/helpers/validateDate.js +14 -3
  78. package/dist/dates/range/getDateRange.js +15 -25
  79. package/dist/dates/relative/RelativeStatementAdapter.js +15 -10
  80. package/dist/dates/relative/helpers/getStatementCase.js +10 -7
  81. package/dist/filters/adapters/adaptDateGroupingProperty.js +9 -13
  82. package/dist/filters/adapters/logicToUI.js +1 -2
  83. package/dist/filters/adapters/transformFilters.js +1 -3
  84. package/dist/filters/helpers/OLD_getAggFilters.js +1 -3
  85. package/dist/filters/helpers/backend/buildFilters.js +5 -2
  86. package/dist/filters/helpers/backend/getBackendGroupValue.js +1 -2
  87. package/dist/filters/helpers/backend/getBackendValues.js +53 -31
  88. package/dist/filters/helpers/backend/getLogicByDatasetsColumns.d.ts +2 -2
  89. package/dist/filters/helpers/backend/getLogicByDatasetsColumns.js +56 -19
  90. package/dist/filters/helpers/common/excludeFiltersByParams.js +1 -2
  91. package/dist/filters/helpers/common/getFiltersByDatasetsColumns.js +28 -18
  92. package/dist/filters/helpers/common/getFiltersByParams.js +1 -2
  93. package/dist/filters/helpers/getAggFiltersFromFilterData.js +0 -1
  94. package/dist/filters/helpers/getScopesByHierarchy.js +7 -5
  95. package/dist/filters/helpers/ui/getUIValues.js +76 -85
  96. package/dist/filters/interfaces/functions/IFFGetLogicByDatasetsColumns.d.ts +3 -0
  97. package/dist/filters/services/UChartApi.d.ts +17 -3
  98. package/dist/filters/services/UChartApi.js +49 -26
  99. package/dist/filters/services/UChartPaginationApi.d.ts +17 -3
  100. package/dist/filters/services/UChartPaginationApi.js +45 -24
  101. package/dist/general/mix/isNaNV2.d.ts +10 -3
  102. package/dist/general/mix/isNaNV2.js +11 -4
  103. package/dist/general/string/parseUrl.js +2 -2
  104. package/dist/globalization/helpers/getI18nCalendar.js +10 -7
  105. package/dist/globalization/service/i18nextBuilder.js +1 -3
  106. package/dist/globalization/service/initI18n.js +1 -12
  107. package/dist/qrvey/helpers/getDataAnswersByColumn.js +6 -5
  108. package/dist/qrvey/helpers/getExpressionAnswers.js +14 -10
  109. package/dist/tokens/isTokenLabel.js +1 -2
  110. package/package.json +4 -4
  111. package/dist/cjs/dates/helpers/validateDateByDateFormat.d.ts +0 -8
  112. package/dist/cjs/dates/helpers/validateDateByDateFormat.js +0 -27
  113. package/dist/dates/helpers/validateDateByDateFormat.d.ts +0 -8
  114. package/dist/dates/helpers/validateDateByDateFormat.js +0 -23
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # [@qrvey/utils](https://bitbucket.org/qrvey/qrvey_utils/wiki/Home) *1.4.0-4*
1
+ # [@qrvey/utils](https://bitbucket.org/qrvey/qrvey_utils/wiki/Home) *1.4.0-5*
2
2
 
3
3
  > Helper, Utils for all Qrvey Projects
4
4
 
@@ -41,8 +41,8 @@ const defineTableChartFormat = (column, settings) => {
41
41
  return STRING_FORMAT_1.STRING_FORMAT.NONE;
42
42
  }
43
43
  else if (hasDefaultFormat) {
44
- const columnDefaultFormat = defaultFormat || outputFormat;
45
- return Object.assign(Object.assign({}, defaultFormat), { format: defaultText, originalFormat: Object.assign({}, columnDefaultFormat) });
44
+ const columnDefaultFormat = defaultFormat || outputFormat || { type: 'DATE', format: 'MM/DD/YYYY' };
45
+ return Object.assign(Object.assign({}, defaultFormat), { format: defaultText, originalFormat: Object.assign({}, columnDefaultFormat), type: "DATE" });
46
46
  }
47
47
  else {
48
48
  return selectedFormat;
@@ -55,7 +55,7 @@ const defineTableChartFormat = (column, settings) => {
55
55
  if ((aggregate === null || aggregate === void 0 ? void 0 : aggregate.label) === __1.AGGREGATE.COUNT ||
56
56
  (aggregate === null || aggregate === void 0 ? void 0 : aggregate.label) === __1.AGGREGATE.DISTINCTCOUNT)
57
57
  return defaultNumeric;
58
- return defaultFormat;
58
+ return defaultFormat || defaultNumeric;
59
59
  }
60
60
  return selectedFormat;
61
61
  }
@@ -6,9 +6,7 @@ function getDatasetColumn(column, dataset) {
6
6
  if ((0, isEmpty_1.isEmpty)(column) || (0, isEmpty_1.isEmpty)(dataset))
7
7
  return;
8
8
  const columns = getDatasetColumns(dataset);
9
- if ((0, isEmpty_1.isEmpty)(column))
10
- return;
11
- return columns.find((c) => c.id === column.id);
9
+ return columns.find((c) => c.id === column.id && c.qrveyid === column.qrveyid);
12
10
  }
13
11
  exports.getDatasetColumn = getDatasetColumn;
14
12
  function getDatasetColumns(dataset) {
@@ -2,6 +2,6 @@
2
2
  * Transforms String Date from a [mm/dd/yyyy] format to Date object.
3
3
  * @param monthYearDate String of [mm/dd/yyyy] date
4
4
  * @param time Flag to parse the object date to milliseconds.
5
- * @returns The date object or the date in milliseconds
5
+ * @returns The date object or the date in milliseconds. If the argument is an unexpected date, the function will return the same value
6
6
  */
7
7
  export declare function mdyDateToDate(date: string, time?: boolean): string | Date | number;
@@ -9,13 +9,20 @@ const validateDate_1 = require("../helpers/validateDate");
9
9
  * Transforms String Date from a [mm/dd/yyyy] format to Date object.
10
10
  * @param monthYearDate String of [mm/dd/yyyy] date
11
11
  * @param time Flag to parse the object date to milliseconds.
12
- * @returns The date object or the date in milliseconds
12
+ * @returns The date object or the date in milliseconds. If the argument is an unexpected date, the function will return the same value
13
13
  */
14
14
  function mdyDateToDate(date, time = false) {
15
- if ((0, isEmpty_1.isEmpty)(date) || (0, isTokenLabel_1.isTokenLabel)(date))
15
+ if ((0, isEmpty_1.isEmpty)(date) ||
16
+ (0, isTokenLabel_1.isTokenLabel)(date) ||
17
+ typeof date !== "string" ||
18
+ !validatingDate(date))
16
19
  return date;
17
- if ((0, validateDate_1.validateDate)(date, DATE_FORMAT_1.DATE_FORMAT.DAY)) {
18
- return time ? +new Date(date) : new Date(date);
19
- }
20
+ return time ? +new Date(date) : new Date(date);
20
21
  }
21
22
  exports.mdyDateToDate = mdyDateToDate;
23
+ function validatingDate(date) {
24
+ return ((0, validateDate_1.validateDate)(date, DATE_FORMAT_1.DATE_FORMAT.DAY) ||
25
+ (0, validateDate_1.validateDate)(date, DATE_FORMAT_1.DATE_FORMAT.HOUR) ||
26
+ (0, validateDate_1.validateDate)(date, DATE_FORMAT_1.DATE_FORMAT.MINUTE) ||
27
+ (0, validateDate_1.validateDate)(date, DATE_FORMAT_1.DATE_FORMAT.SECOND));
28
+ }
@@ -2,6 +2,6 @@
2
2
  * Transforms String Date from a [Month Year] format to Date object.
3
3
  * @param monthYearDate String of [Month Year] date
4
4
  * @param time Flag to parse the object date to milliseconds.
5
- * @returns The date object or the date in milliseconds
5
+ * @returns The date object or the date in milliseconds. If the argument is an unexpected date, the function will return the same value
6
6
  */
7
7
  export declare function monthYearToDate(monthYearDate: string, time?: boolean): string | Date | number;
@@ -10,15 +10,16 @@ const validateDate_1 = require("../helpers/validateDate");
10
10
  * Transforms String Date from a [Month Year] format to Date object.
11
11
  * @param monthYearDate String of [Month Year] date
12
12
  * @param time Flag to parse the object date to milliseconds.
13
- * @returns The date object or the date in milliseconds
13
+ * @returns The date object or the date in milliseconds. If the argument is an unexpected date, the function will return the same value
14
14
  */
15
15
  function monthYearToDate(monthYearDate, time = false) {
16
- if ((0, isEmpty_1.isEmpty)(monthYearDate) || (0, isTokenLabel_1.isTokenLabel)(monthYearDate))
16
+ if ((0, isEmpty_1.isEmpty)(monthYearDate) ||
17
+ (0, isTokenLabel_1.isTokenLabel)(monthYearDate) ||
18
+ typeof monthYearDate !== "string" ||
19
+ !(0, validateDate_1.validateDate)(monthYearDate, DATE_FORMAT_1.DATE_FORMAT.MONTH))
17
20
  return monthYearDate;
18
- if ((0, validateDate_1.validateDate)(monthYearDate, DATE_FORMAT_1.DATE_FORMAT.MONTH)) {
19
- const [month, year] = monthYearDate.split(" ");
20
- const start = new Date(+year, DATE_YEAR_MONTHS_1.DATE_YEAR_MONTHS.indexOf(month), 1);
21
- return time ? +start : start;
22
- }
21
+ const [month, year] = monthYearDate.split(" ");
22
+ const start = new Date(+year, DATE_YEAR_MONTHS_1.DATE_YEAR_MONTHS.indexOf(month), 1);
23
+ return time ? +start : start;
23
24
  }
24
25
  exports.monthYearToDate = monthYearToDate;
@@ -2,6 +2,6 @@
2
2
  * Transforms String Date from a [Quarter Year] format to Date object.
3
3
  * @param quarterYearDate String of [Quarter Year] date
4
4
  * @param time Flag to parse the object date to milliseconds.
5
- * @returns The date object or the date in milliseconds
5
+ * @returns The date object or the date in milliseconds. If the argument is an unexpected date, the function will return the same value.
6
6
  */
7
7
  export declare function quarterYearToDate(quarterYearDate: string, time?: boolean): string | Date | number;
@@ -10,15 +10,16 @@ const validateDate_1 = require("../helpers/validateDate");
10
10
  * Transforms String Date from a [Quarter Year] format to Date object.
11
11
  * @param quarterYearDate String of [Quarter Year] date
12
12
  * @param time Flag to parse the object date to milliseconds.
13
- * @returns The date object or the date in milliseconds
13
+ * @returns The date object or the date in milliseconds. If the argument is an unexpected date, the function will return the same value.
14
14
  */
15
15
  function quarterYearToDate(quarterYearDate, time = false) {
16
- if ((0, isEmpty_1.isEmpty)(quarterYearDate) || (0, isTokenLabel_1.isTokenLabel)(quarterYearDate))
16
+ if ((0, isEmpty_1.isEmpty)(quarterYearDate) ||
17
+ (0, isTokenLabel_1.isTokenLabel)(quarterYearDate) ||
18
+ typeof quarterYearDate !== "string" ||
19
+ !(0, validateDate_1.validateDate)(quarterYearDate, DATE_FORMAT_1.DATE_FORMAT.QUARTER))
17
20
  return quarterYearDate;
18
- if ((0, validateDate_1.validateDate)(quarterYearDate, DATE_FORMAT_1.DATE_FORMAT.QUARTER)) {
19
- const [quarter, year] = quarterYearDate.split(" ");
20
- const start = new Date(+year, DATE_YEAR_QUARTERS_RANGE_1.DATE_YEAR_QUARTERS_RANGE[quarter].initial, 1);
21
- return time ? +start : start;
22
- }
21
+ const [quarter, year] = quarterYearDate.split(" ");
22
+ const start = new Date(+year, DATE_YEAR_QUARTERS_RANGE_1.DATE_YEAR_QUARTERS_RANGE[quarter].initial, 1);
23
+ return time ? +start : start;
23
24
  }
24
25
  exports.quarterYearToDate = quarterYearToDate;
@@ -2,6 +2,6 @@
2
2
  * Transforms String Date from a [Week Year] format to Date object.
3
3
  * @param date String of [Week Year] date
4
4
  * @param time Flag to parse the object date to milliseconds.
5
- * @returns The date object or the date in milliseconds
5
+ * @returns The date object or the date in milliseconds. If the argument is an unexpected date, the function will return the same value.
6
6
  */
7
7
  export declare function weekYearToDate(weekYear: string, time?: boolean): string | Date | number;
@@ -10,27 +10,28 @@ const validateDate_1 = require("../helpers/validateDate");
10
10
  * Transforms String Date from a [Week Year] format to Date object.
11
11
  * @param date String of [Week Year] date
12
12
  * @param time Flag to parse the object date to milliseconds.
13
- * @returns The date object or the date in milliseconds
13
+ * @returns The date object or the date in milliseconds. If the argument is an unexpected date, the function will return the same value.
14
14
  */
15
15
  function weekYearToDate(weekYear, time = false) {
16
- if ((0, isEmpty_1.isEmpty)(weekYear) || (0, isTokenLabel_1.isTokenLabel)(weekYear))
16
+ if ((0, isEmpty_1.isEmpty)(weekYear) ||
17
+ (0, isTokenLabel_1.isTokenLabel)(weekYear) ||
18
+ typeof weekYear !== "string" ||
19
+ !(0, validateDate_1.validateDate)(weekYear, DATE_FORMAT_1.DATE_FORMAT.WEEK))
17
20
  return weekYear;
18
- if ((0, validateDate_1.validateDate)(weekYear, DATE_FORMAT_1.DATE_FORMAT.WEEK)) {
19
- const [week, year] = weekYear.split(" ");
20
- const weekNumber = Number(week.substring(1));
21
- const dateObj = new Date(+year, 1, 1);
22
- const numOfdaysPastSinceLastSunday = dateObj.getDay();
23
- dateObj.setDate(dateObj.getDate() - numOfdaysPastSinceLastSunday);
24
- const weekNoToday = (0, getWeek_1.getWeek)(dateObj).week;
25
- const weeksInTheFuture = weekNumber - weekNoToday;
26
- dateObj.setDate(dateObj.getDate() + 7 * weeksInTheFuture);
27
- const date = new Date(dateObj.getMonth() +
28
- 1 +
29
- "/" +
30
- dateObj.getDate() +
31
- "/" +
32
- dateObj.getFullYear());
33
- return time ? +date : date;
34
- }
21
+ const [week, year] = weekYear.split(" ");
22
+ const weekNumber = Number(week.substring(1));
23
+ const dateObj = new Date(+year, 1, 1);
24
+ const numOfdaysPastSinceLastSunday = dateObj.getDay();
25
+ dateObj.setDate(dateObj.getDate() - numOfdaysPastSinceLastSunday);
26
+ const weekNoToday = (0, getWeek_1.getWeek)(dateObj).week;
27
+ const weeksInTheFuture = weekNumber - weekNoToday;
28
+ dateObj.setDate(dateObj.getDate() + 7 * weeksInTheFuture);
29
+ const date = new Date(dateObj.getMonth() +
30
+ 1 +
31
+ "/" +
32
+ dateObj.getDate() +
33
+ "/" +
34
+ dateObj.getFullYear());
35
+ return time ? +date : date;
35
36
  }
36
37
  exports.weekYearToDate = weekYearToDate;
@@ -2,6 +2,6 @@
2
2
  * Transforms String Date from a [Year] format to Date object.
3
3
  * @param yearDate String of [Year] date
4
4
  * @param time Flag to parse the object date to milliseconds.
5
- * @returns The date object or the date in milliseconds
5
+ * @returns The date object or the date in milliseconds. If the argument is an unexpected date, the function will return the same value.
6
6
  */
7
7
  export declare function yearToDate(yearDate: string, time?: boolean): string | Date | number;
@@ -9,14 +9,15 @@ const validateDate_1 = require("../helpers/validateDate");
9
9
  * Transforms String Date from a [Year] format to Date object.
10
10
  * @param yearDate String of [Year] date
11
11
  * @param time Flag to parse the object date to milliseconds.
12
- * @returns The date object or the date in milliseconds
12
+ * @returns The date object or the date in milliseconds. If the argument is an unexpected date, the function will return the same value.
13
13
  */
14
14
  function yearToDate(yearDate, time = false) {
15
- if ((0, isEmpty_1.isEmpty)(yearDate) || (0, isTokenLabel_1.isTokenLabel)(yearDate))
15
+ if ((0, isEmpty_1.isEmpty)(yearDate) ||
16
+ (0, isTokenLabel_1.isTokenLabel)(yearDate) ||
17
+ typeof yearDate !== "string" ||
18
+ !(0, validateDate_1.validateDate)(yearDate, DATE_FORMAT_1.DATE_FORMAT.YEAR))
16
19
  return yearDate;
17
- if ((0, validateDate_1.validateDate)(yearDate, DATE_FORMAT_1.DATE_FORMAT.YEAR)) {
18
- const start = new Date(+yearDate, 0, 1);
19
- return time ? +start : start;
20
- }
20
+ const start = new Date(+yearDate, 0, 1);
21
+ return time ? +start : start;
21
22
  }
22
23
  exports.yearToDate = yearToDate;
@@ -0,0 +1,16 @@
1
+ export declare const DATE_FORMAT_BY_PROPERTY: {
2
+ year: string;
3
+ month: string;
4
+ quarter: string;
5
+ week: string;
6
+ day: string;
7
+ hour: string;
8
+ minute: string;
9
+ second: string;
10
+ day_only: string;
11
+ month_only: string;
12
+ quarter_only: string;
13
+ hour_only: string;
14
+ minute_only: string;
15
+ second_only: string;
16
+ };
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DATE_FORMAT_BY_PROPERTY = void 0;
4
+ const COLUMN_PROPERTY_1 = require("../../columns/constants/COLUMN_PROPERTY");
5
+ const DATE_FORMAT_1 = require("./DATE_FORMAT");
6
+ exports.DATE_FORMAT_BY_PROPERTY = {
7
+ [COLUMN_PROPERTY_1.COLUMN_PROPERTY.YEAR]: DATE_FORMAT_1.DATE_FORMAT.YEAR,
8
+ [COLUMN_PROPERTY_1.COLUMN_PROPERTY.MONTH]: DATE_FORMAT_1.DATE_FORMAT.MONTH,
9
+ [COLUMN_PROPERTY_1.COLUMN_PROPERTY.QUARTER]: DATE_FORMAT_1.DATE_FORMAT.QUARTER,
10
+ [COLUMN_PROPERTY_1.COLUMN_PROPERTY.WEEK]: DATE_FORMAT_1.DATE_FORMAT.WEEK,
11
+ [COLUMN_PROPERTY_1.COLUMN_PROPERTY.DAY]: DATE_FORMAT_1.DATE_FORMAT.DAY,
12
+ [COLUMN_PROPERTY_1.COLUMN_PROPERTY.HOUR]: DATE_FORMAT_1.DATE_FORMAT.HOUR,
13
+ [COLUMN_PROPERTY_1.COLUMN_PROPERTY.MINUTE]: DATE_FORMAT_1.DATE_FORMAT.MINUTE,
14
+ [COLUMN_PROPERTY_1.COLUMN_PROPERTY.SECOND]: DATE_FORMAT_1.DATE_FORMAT.SECOND,
15
+ [COLUMN_PROPERTY_1.COLUMN_PROPERTY.MONTH_DAY]: DATE_FORMAT_1.DATE_FORMAT.MONTH_DAY,
16
+ [COLUMN_PROPERTY_1.COLUMN_PROPERTY.YEAR_MONTH]: DATE_FORMAT_1.DATE_FORMAT.YEAR_MONTH,
17
+ [COLUMN_PROPERTY_1.COLUMN_PROPERTY.YEAR_QUARTER]: DATE_FORMAT_1.DATE_FORMAT.YEAR_QUARTER,
18
+ [COLUMN_PROPERTY_1.COLUMN_PROPERTY.DAY_HOUR]: DATE_FORMAT_1.DATE_FORMAT.DAY_HOUR,
19
+ [COLUMN_PROPERTY_1.COLUMN_PROPERTY.HOUR_MINUTE]: DATE_FORMAT_1.DATE_FORMAT.HOUR_MINUTE,
20
+ [COLUMN_PROPERTY_1.COLUMN_PROPERTY.MINUTE_SECOND]: DATE_FORMAT_1.DATE_FORMAT.MINUTE_SECOND,
21
+ };
@@ -1,42 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getDateFormatByProperty = void 0;
4
- const COLUMN_PROPERTY_1 = require("../../columns/constants/COLUMN_PROPERTY");
5
- const DATE_FORMAT_1 = require("../constants/DATE_FORMAT");
4
+ const DATE_FORMAT_BY_PROPERTY_1 = require("../constants/DATE_FORMAT_BY_PROPERTY");
6
5
  /**
7
6
  * Gets the date format by the given property
8
7
  * @param property The Column Property
9
8
  * @returns The date format
10
9
  */
11
10
  function getDateFormatByProperty(property) {
12
- return property === COLUMN_PROPERTY_1.COLUMN_PROPERTY.YEAR
13
- ? DATE_FORMAT_1.DATE_FORMAT.YEAR
14
- : property === COLUMN_PROPERTY_1.COLUMN_PROPERTY.MONTH
15
- ? DATE_FORMAT_1.DATE_FORMAT.MONTH
16
- : property === COLUMN_PROPERTY_1.COLUMN_PROPERTY.QUARTER
17
- ? DATE_FORMAT_1.DATE_FORMAT.QUARTER
18
- : property === COLUMN_PROPERTY_1.COLUMN_PROPERTY.WEEK
19
- ? DATE_FORMAT_1.DATE_FORMAT.WEEK
20
- : property === COLUMN_PROPERTY_1.COLUMN_PROPERTY.DAY
21
- ? DATE_FORMAT_1.DATE_FORMAT.DAY
22
- : property === COLUMN_PROPERTY_1.COLUMN_PROPERTY.HOUR
23
- ? DATE_FORMAT_1.DATE_FORMAT.HOUR
24
- : property === COLUMN_PROPERTY_1.COLUMN_PROPERTY.MINUTE
25
- ? DATE_FORMAT_1.DATE_FORMAT.MINUTE
26
- : property === COLUMN_PROPERTY_1.COLUMN_PROPERTY.SECOND
27
- ? DATE_FORMAT_1.DATE_FORMAT.SECOND
28
- : property === COLUMN_PROPERTY_1.COLUMN_PROPERTY.MONTH_DAY
29
- ? DATE_FORMAT_1.DATE_FORMAT.MONTH_DAY
30
- : property === COLUMN_PROPERTY_1.COLUMN_PROPERTY.YEAR_MONTH
31
- ? DATE_FORMAT_1.DATE_FORMAT.YEAR_MONTH
32
- : property === COLUMN_PROPERTY_1.COLUMN_PROPERTY.YEAR_QUARTER
33
- ? DATE_FORMAT_1.DATE_FORMAT.YEAR_QUARTER
34
- : property === COLUMN_PROPERTY_1.COLUMN_PROPERTY.DAY_HOUR
35
- ? DATE_FORMAT_1.DATE_FORMAT.DAY_HOUR
36
- : property === COLUMN_PROPERTY_1.COLUMN_PROPERTY.HOUR_MINUTE
37
- ? DATE_FORMAT_1.DATE_FORMAT.HOUR_MINUTE
38
- : property === COLUMN_PROPERTY_1.COLUMN_PROPERTY.MINUTE_SECOND
39
- ? DATE_FORMAT_1.DATE_FORMAT.MINUTE_SECOND
40
- : undefined;
11
+ return DATE_FORMAT_BY_PROPERTY_1.DATE_FORMAT_BY_PROPERTY[property];
41
12
  }
42
13
  exports.getDateFormatByProperty = getDateFormatByProperty;
@@ -1,6 +1,7 @@
1
1
  import { IDateFormat } from "../interfaces/IDateFormat";
2
2
  /**
3
- * Gets an array of regular expressions by the given date format
3
+ * Gets an array of regular expressions by the given date format.
4
+ * Day date format is the default
4
5
  * @param dateFormat the date format
5
6
  * @returns an array of regular expressions
6
7
  */
@@ -4,7 +4,8 @@ exports.getDateFormatRegularExpressionInArray = void 0;
4
4
  const DATE_FORMAT_1 = require("../constants/DATE_FORMAT");
5
5
  const DATE_REGULAR_EXPRESSION_1 = require("../constants/DATE_REGULAR_EXPRESSION");
6
6
  /**
7
- * Gets an array of regular expressions by the given date format
7
+ * Gets an array of regular expressions by the given date format.
8
+ * Day date format is the default
8
9
  * @param dateFormat the date format
9
10
  * @returns an array of regular expressions
10
11
  */
@@ -21,12 +22,6 @@ function getDateFormatRegularExpressionInArray(dateFormat = DATE_FORMAT_1.DATE_F
21
22
  ];
22
23
  case DATE_FORMAT_1.DATE_FORMAT.WEEK:
23
24
  return [DATE_REGULAR_EXPRESSION_1.DATE_REGULAR_EXPRESSION.YEAR_WEEK, DATE_REGULAR_EXPRESSION_1.DATE_REGULAR_EXPRESSION.YEAR];
24
- case DATE_FORMAT_1.DATE_FORMAT.DAY:
25
- return [
26
- DATE_REGULAR_EXPRESSION_1.DATE_REGULAR_EXPRESSION.YEAR_MONTH_NUMBER,
27
- DATE_REGULAR_EXPRESSION_1.DATE_REGULAR_EXPRESSION.MONTH_DAY,
28
- DATE_REGULAR_EXPRESSION_1.DATE_REGULAR_EXPRESSION.YEAR,
29
- ];
30
25
  case DATE_FORMAT_1.DATE_FORMAT.DAY_TIME:
31
26
  return [DATE_REGULAR_EXPRESSION_1.DATE_REGULAR_EXPRESSION.DAY_TIME];
32
27
  case DATE_FORMAT_1.DATE_FORMAT.HOUR:
@@ -8,6 +8,12 @@ const DATE_FORMAT_1 = require("../constants/DATE_FORMAT");
8
8
  * @returns {number} A number of the pick level setting
9
9
  */
10
10
  function getDatePickerPickLevel(format) {
11
- return format === DATE_FORMAT_1.DATE_FORMAT.YEAR ? 2 : format === DATE_FORMAT_1.DATE_FORMAT.MONTH ? 1 : 0;
11
+ if (format === DATE_FORMAT_1.DATE_FORMAT.YEAR) {
12
+ return 2;
13
+ }
14
+ else if (format === DATE_FORMAT_1.DATE_FORMAT.MONTH) {
15
+ return 1;
16
+ }
17
+ return 0;
12
18
  }
13
19
  exports.getDatePickerPickLevel = getDatePickerPickLevel;
@@ -8,23 +8,6 @@ const DATE_FORMAT_1 = require("../constants/DATE_FORMAT");
8
8
  * @returns a separator string
9
9
  */
10
10
  function getSeparatorByDateFormat(format = DATE_FORMAT_1.DATE_FORMAT.DAY) {
11
- return format === DATE_FORMAT_1.DATE_FORMAT.YEAR ||
12
- format === DATE_FORMAT_1.DATE_FORMAT.DAY_TIME ||
13
- format === DATE_FORMAT_1.DATE_FORMAT.MONTH_DAY ||
14
- format === DATE_FORMAT_1.DATE_FORMAT.YEAR_MONTH ||
15
- format === DATE_FORMAT_1.DATE_FORMAT.YEAR_QUARTER ||
16
- format === DATE_FORMAT_1.DATE_FORMAT.YEAR_WEEK ||
17
- format === DATE_FORMAT_1.DATE_FORMAT.DAY_HOUR ||
18
- format === DATE_FORMAT_1.DATE_FORMAT.HOUR_MINUTE ||
19
- format === DATE_FORMAT_1.DATE_FORMAT.MINUTE_SECOND
20
- ? " "
21
- : format === DATE_FORMAT_1.DATE_FORMAT.MONTH ||
22
- format === DATE_FORMAT_1.DATE_FORMAT.QUARTER ||
23
- format === DATE_FORMAT_1.DATE_FORMAT.WEEK ||
24
- format === DATE_FORMAT_1.DATE_FORMAT.HOUR ||
25
- format === DATE_FORMAT_1.DATE_FORMAT.MINUTE ||
26
- format === DATE_FORMAT_1.DATE_FORMAT.SECOND
27
- ? " "
28
- : "/";
11
+ return format === DATE_FORMAT_1.DATE_FORMAT.DAY ? "/" : " ";
29
12
  }
30
13
  exports.getSeparatorByDateFormat = getSeparatorByDateFormat;
@@ -7,4 +7,3 @@ export * from "./getSeparatorByDateFormat";
7
7
  export * from "./includeDateTokens";
8
8
  export * from "./getWeek";
9
9
  export * from "./validateDate";
10
- export * from "./validateDateByDateFormat";
@@ -23,4 +23,3 @@ __exportStar(require("./getSeparatorByDateFormat"), exports);
23
23
  __exportStar(require("./includeDateTokens"), exports);
24
24
  __exportStar(require("./getWeek"), exports);
25
25
  __exportStar(require("./validateDate"), exports);
26
- __exportStar(require("./validateDateByDateFormat"), exports);
@@ -4,7 +4,8 @@ exports.validateDate = void 0;
4
4
  const isEmpty_1 = require("../../general/mix/isEmpty");
5
5
  const isTokenLabel_1 = require("../../tokens/isTokenLabel");
6
6
  const DATE_FORMAT_1 = require("../constants/DATE_FORMAT");
7
- const validateDateByDateFormat_1 = require("./validateDateByDateFormat");
7
+ const getDateFormatRegularExpressionInArray_1 = require("./getDateFormatRegularExpressionInArray");
8
+ const getSeparatorByDateFormat_1 = require("./getSeparatorByDateFormat");
8
9
  /**
9
10
  * Validate a string date depending on giving format
10
11
  * - If the string is a token label, the function lets it pass.
@@ -15,10 +16,20 @@ const validateDateByDateFormat_1 = require("./validateDateByDateFormat");
15
16
  * @returns True if it is valid or not. Undefined if date is undefined
16
17
  */
17
18
  function validateDate(date, format = DATE_FORMAT_1.DATE_FORMAT.DAY) {
18
- if ((0, isEmpty_1.isEmpty)(date))
19
+ if ((0, isEmpty_1.isEmpty)(date) || typeof date !== "string")
19
20
  return false;
20
21
  if ((0, isTokenLabel_1.isTokenLabel)(date))
21
22
  return true;
22
- return (0, validateDateByDateFormat_1.validateDateByDateFormat)(date, format);
23
+ const resultValidation = [];
24
+ const separator = (0, getSeparatorByDateFormat_1.getSeparatorByDateFormat)(format);
25
+ const separatedDate = separator === "" ? [date] : date.split(separator);
26
+ const regularExpression = (0, getDateFormatRegularExpressionInArray_1.getDateFormatRegularExpressionInArray)(format);
27
+ if (regularExpression.length !== separatedDate.length)
28
+ return false;
29
+ for (let i = 0; i < separatedDate.length; i++) {
30
+ resultValidation.push((0, isTokenLabel_1.isTokenLabel)(separatedDate[i]) ||
31
+ new RegExp(regularExpression[i], "g").test(separatedDate[i]));
32
+ }
33
+ return resultValidation.every((validValue) => validValue);
23
34
  }
24
35
  exports.validateDate = validateDate;
@@ -39,7 +39,6 @@ const isValidDateObject_1 = require("../helpers/isValidDateObject");
39
39
  * }
40
40
  */
41
41
  function getDateRange(value, dateGroupLabel = "DAY", withTime = true) {
42
- const range = {};
43
42
  const upperCaseDateGroup = dateGroupLabel.toUpperCase();
44
43
  const [timeFrom, timeTo] = withTime
45
44
  ? getStringTimeRange(value, upperCaseDateGroup)
@@ -50,62 +49,53 @@ function getDateRange(value, dateGroupLabel = "DAY", withTime = true) {
50
49
  const yearRange = !isToken
51
50
  ? getYearRange(value)
52
51
  : { from: `01/01/${value}`, to: `12/31/${value}` };
53
- range.from = `${yearRange.from}${timeFrom}`;
54
- range.to = `${yearRange.to}${timeTo}`;
55
- break;
52
+ return getRange(`${yearRange.from}${timeFrom}`, `${yearRange.to}${timeTo}`);
56
53
  }
57
54
  case "QUARTER": {
58
55
  const quarterRange = !isToken
59
56
  ? getQuarterRange(value)
60
57
  : { from: value, to: value };
61
- range.from = `${quarterRange.from}${timeFrom}`;
62
- range.to = `${quarterRange.to}${timeTo}`;
63
- break;
58
+ return getRange(`${quarterRange.from}${timeFrom}`, `${quarterRange.to}${timeTo}`);
64
59
  }
65
60
  case "MONTH": {
66
- const monthRange = monthInclideTokens(value)
61
+ const monthRange = monthIncludeTokens(value)
67
62
  ? getMonthRangeWithToken(value)
68
63
  : getMonthRange(value);
69
- range.from = `${monthRange.from}${timeFrom}`;
70
- range.to = `${monthRange.to}${timeTo}`;
71
- break;
64
+ return getRange(`${monthRange.from}${timeFrom}`, `${monthRange.to}${timeTo}`);
72
65
  }
73
66
  case "WEEK": {
74
67
  const weekRange = !isToken
75
68
  ? getWeekRange(value)
76
69
  : { from: value, to: value };
77
- range.from = `${weekRange.from}${timeFrom}`;
78
- range.to = `${weekRange.to}${timeTo}`;
79
- break;
70
+ return getRange(`${weekRange.from}${timeFrom}`, `${weekRange.to}${timeTo}`);
80
71
  }
81
72
  case "HOUR": {
82
73
  const hourRange = !isToken
83
74
  ? getHourRange(value)
84
75
  : { from: value, to: value };
85
- range.from = hourRange.from;
86
- range.to = hourRange.to;
87
- break;
76
+ return getRange(hourRange.from, hourRange.to);
88
77
  }
89
78
  case "MINUTE": {
90
79
  const minuteRange = !isToken
91
80
  ? getMinuteRange(value)
92
81
  : { from: value, to: value };
93
- range.from = minuteRange.from;
94
- range.to = minuteRange.to;
95
- break;
82
+ return getRange(minuteRange.from, minuteRange.to);
96
83
  }
97
84
  default: {
98
85
  const dayFrom = new Date(value);
99
86
  const dayTo = new Date(value);
100
87
  const includTokens = includeTokens(value, "/");
101
- range.from = `${!includTokens ? getStringDate(dayFrom) : value}${timeFrom}`;
102
- range.to = `${!includTokens ? getStringDate(dayTo) : value}${timeTo}`;
103
- break;
88
+ return getRange(`${!includTokens ? getStringDate(dayFrom) : value}${timeFrom}`, `${!includTokens ? getStringDate(dayTo) : value}${timeTo}`);
104
89
  }
105
90
  }
106
- return range;
107
91
  }
108
92
  exports.getDateRange = getDateRange;
93
+ function getRange(from, to) {
94
+ return {
95
+ from,
96
+ to,
97
+ };
98
+ }
109
99
  function getStringTimeRange(value, dateGroupLabel) {
110
100
  const addLeadingZero = (unit) => `${unit < 10 ? "0" : ""}${unit}`;
111
101
  const dateValue = new Date(value);
@@ -240,7 +230,7 @@ function getMonthRangeWithToken(value) {
240
230
  to: `${monthToReturn}/{{LAST_DAY_MONTH}}/${year}`,
241
231
  };
242
232
  }
243
- function monthInclideTokens(value) {
233
+ function monthIncludeTokens(value) {
244
234
  const [month, year] = value.split(" ");
245
235
  return (0, isTokenLabel_1.isTokenLabel)(month) || (0, isTokenLabel_1.isTokenLabel)(year);
246
236
  }
@@ -54,11 +54,13 @@ class RelativeStatementAdapter {
54
54
  if (typeof this.statement === "string")
55
55
  return RelativeStatementAdapter.replaceNowToken(this.statement, this.now);
56
56
  const value = this._statementToRange();
57
- const path = this.cursor === RELATIVE_CURSOR_1.RELATIVE_CURSOR.LAST
58
- ? "gte"
59
- : this.cursor === RELATIVE_CURSOR_1.RELATIVE_CURSOR.NEXT
60
- ? "lte"
61
- : "";
57
+ let path = "";
58
+ if (this.cursor === RELATIVE_CURSOR_1.RELATIVE_CURSOR.LAST) {
59
+ path = "gte";
60
+ }
61
+ else if (this.cursor === RELATIVE_CURSOR_1.RELATIVE_CURSOR.NEXT) {
62
+ path = "lte";
63
+ }
62
64
  return (0, get_1._get)(value, path, new Date());
63
65
  }
64
66
  /**
@@ -194,11 +196,14 @@ class RelativeStatementAdapter {
194
196
  const startOrEndOf = resolveAsCalendar
195
197
  ? loweredUnit
196
198
  : DATE_GROUPING_PROPERTY_1.DATE_GROUPING_PROPERTY.DAY;
197
- return (setTo === COMMON_1.COMMON_CONSTANTS.START
198
- ? date.startOf(startOrEndOf)
199
- : setTo === COMMON_1.COMMON_CONSTANTS.END
200
- ? date.endOf(startOrEndOf)
201
- : date).format(DATE_FORMATS_1.DATETIME_FORMAT);
199
+ let absoluteDate = date;
200
+ if (setTo === COMMON_1.COMMON_CONSTANTS.START) {
201
+ absoluteDate = date.startOf(startOrEndOf);
202
+ }
203
+ else if (setTo === COMMON_1.COMMON_CONSTANTS.END) {
204
+ absoluteDate = date.endOf(startOrEndOf);
205
+ }
206
+ return absoluteDate.format(DATE_FORMATS_1.DATETIME_FORMAT);
202
207
  }
203
208
  }
204
209
  exports.default = RelativeStatementAdapter;
@@ -9,12 +9,15 @@ const COMMON_1 = require("../constants/COMMON");
9
9
  * @returns {number}
10
10
  */
11
11
  function getStatementCase(includeCurrent, isCalendarDate) {
12
- return includeCurrent && isCalendarDate
13
- ? COMMON_1.COMMON_CONSTANTS.INCLUSIVE_AND_CALENDAR
14
- : !includeCurrent && isCalendarDate
15
- ? COMMON_1.COMMON_CONSTANTS.EXCLUSIVE_AND_CALENDAR
16
- : !includeCurrent && !isCalendarDate
17
- ? COMMON_1.COMMON_CONSTANTS.EXCLUSIVE_AND_ROLLING
18
- : COMMON_1.COMMON_CONSTANTS.INCLUSIVE_AND_ROLLING;
12
+ if (includeCurrent && isCalendarDate) {
13
+ return COMMON_1.COMMON_CONSTANTS.INCLUSIVE_AND_CALENDAR;
14
+ }
15
+ else if (!includeCurrent && isCalendarDate) {
16
+ return COMMON_1.COMMON_CONSTANTS.EXCLUSIVE_AND_CALENDAR;
17
+ }
18
+ else if (!includeCurrent && !isCalendarDate) {
19
+ return COMMON_1.COMMON_CONSTANTS.EXCLUSIVE_AND_ROLLING;
20
+ }
21
+ return COMMON_1.COMMON_CONSTANTS.INCLUSIVE_AND_ROLLING;
19
22
  }
20
23
  exports.getStatementCase = getStatementCase;
@@ -10,18 +10,14 @@ const DATE_DISTINCT_TIME_PROPERTY_1 = require("../../dates/constants/DATE_DISTIN
10
10
  * @returns a adapted property
11
11
  */
12
12
  function adaptDateGroupingProperty(property) {
13
- return property === "p&quarter"
14
- ? DATE_DISTINCT_PROPERTY_1.DATE_DISTINCT_PROPERTY.YEAR_QUARTER
15
- : property === "p&month"
16
- ? DATE_DISTINCT_PROPERTY_1.DATE_DISTINCT_PROPERTY.YEAR_MONTH
17
- : property === "p&day"
18
- ? DATE_DISTINCT_PROPERTY_1.DATE_DISTINCT_PROPERTY.MONTH_DAY
19
- : property === "p&hour"
20
- ? DATE_DISTINCT_TIME_PROPERTY_1.DATE_DISTINCT_TIME_PROPERTY.DAY_HOUR
21
- : property === "p&minute"
22
- ? DATE_DISTINCT_TIME_PROPERTY_1.DATE_DISTINCT_TIME_PROPERTY.HOUR_MINUTE
23
- : property === "p&second"
24
- ? DATE_DISTINCT_TIME_PROPERTY_1.DATE_DISTINCT_TIME_PROPERTY.MINUTE_SECOND
25
- : property;
13
+ return ODD_PROPERTY[property];
26
14
  }
27
15
  exports.adaptDateGroupingProperty = adaptDateGroupingProperty;
16
+ const ODD_PROPERTY = {
17
+ "p&quarter": DATE_DISTINCT_PROPERTY_1.DATE_DISTINCT_PROPERTY.YEAR_QUARTER,
18
+ "p&month": DATE_DISTINCT_PROPERTY_1.DATE_DISTINCT_PROPERTY.YEAR_MONTH,
19
+ "p&day": DATE_DISTINCT_PROPERTY_1.DATE_DISTINCT_PROPERTY.MONTH_DAY,
20
+ "p&hour": DATE_DISTINCT_TIME_PROPERTY_1.DATE_DISTINCT_TIME_PROPERTY.DAY_HOUR,
21
+ "p&minute": DATE_DISTINCT_TIME_PROPERTY_1.DATE_DISTINCT_TIME_PROPERTY.HOUR_MINUTE,
22
+ "p&second": DATE_DISTINCT_TIME_PROPERTY_1.DATE_DISTINCT_TIME_PROPERTY.MINUTE_SECOND,
23
+ };