@qrvey/utils 1.10.0-timezone-2 → 1.10.1

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 (208) hide show
  1. package/README.md +2193 -1527
  2. package/dist/cjs/columns/constants/COLUMN_PROPERTIES.d.ts +1 -1
  3. package/dist/cjs/columns/constants/COLUMN_PROPERTY_LABEL.d.ts +1 -0
  4. package/dist/cjs/columns/constants/COMPOUND_COLUMN_PROPERTY_LABEL.d.ts +1 -0
  5. package/dist/cjs/columns/constants/COMPOUND_COLUMN_PROPERTY_LABEL.js +1 -0
  6. package/dist/cjs/columns/helpers/isNumericalColumn.js +3 -1
  7. package/dist/cjs/dates/adapters/ISOToNumericOffset.js +6 -1
  8. package/dist/cjs/dates/adapters/dateToHms.js +5 -7
  9. package/dist/cjs/dates/adapters/dateToMdyDate.d.ts +2 -1
  10. package/dist/cjs/dates/adapters/dateToMdyDate.js +9 -3
  11. package/dist/cjs/dates/adapters/dateToMonthYear.d.ts +2 -1
  12. package/dist/cjs/dates/adapters/dateToMonthYear.js +6 -2
  13. package/dist/cjs/dates/adapters/dateToQuarterYear.d.ts +2 -1
  14. package/dist/cjs/dates/adapters/dateToQuarterYear.js +6 -2
  15. package/dist/cjs/dates/adapters/dateToWeekYear.d.ts +2 -1
  16. package/dist/cjs/dates/adapters/dateToWeekYear.js +6 -2
  17. package/dist/cjs/dates/adapters/dateToYear.d.ts +2 -1
  18. package/dist/cjs/dates/adapters/dateToYear.js +6 -2
  19. package/dist/cjs/dates/adapters/hmsToDate.d.ts +2 -1
  20. package/dist/cjs/dates/adapters/hmsToDate.js +6 -2
  21. package/dist/cjs/dates/adapters/mdyDateToDate.d.ts +2 -1
  22. package/dist/cjs/dates/adapters/mdyDateToDate.js +7 -2
  23. package/dist/cjs/dates/adapters/monthYearToDate.d.ts +2 -1
  24. package/dist/cjs/dates/adapters/monthYearToDate.js +6 -2
  25. package/dist/cjs/dates/adapters/numericOffsetToISO.d.ts +1 -1
  26. package/dist/cjs/dates/adapters/numericOffsetToISO.js +15 -8
  27. package/dist/cjs/dates/adapters/quarterYearToDate.d.ts +2 -1
  28. package/dist/cjs/dates/adapters/quarterYearToDate.js +6 -2
  29. package/dist/cjs/dates/adapters/weekYearToDate.d.ts +2 -1
  30. package/dist/cjs/dates/adapters/weekYearToDate.js +6 -2
  31. package/dist/cjs/dates/adapters/yearToDate.d.ts +2 -1
  32. package/dist/cjs/dates/adapters/yearToDate.js +6 -2
  33. package/dist/cjs/dates/constants/TIMEZONE_TYPE.d.ts +5 -0
  34. package/dist/cjs/dates/constants/TIMEZONE_TYPE.js +9 -0
  35. package/dist/cjs/dates/helpers/getDateByDateFormat.d.ts +2 -1
  36. package/dist/cjs/dates/helpers/getDateByDateFormat.js +6 -6
  37. package/dist/cjs/dates/helpers/getDateByTimezone.d.ts +3 -3
  38. package/dist/cjs/dates/helpers/getDateByTimezone.js +12 -27
  39. package/dist/cjs/dates/helpers/getDateByTimezoneOffset.d.ts +1 -1
  40. package/dist/cjs/dates/helpers/getDateByTimezoneOffset.js +14 -6
  41. package/dist/cjs/dates/helpers/getDefaultDateSettings.d.ts +7 -0
  42. package/dist/cjs/dates/helpers/getDefaultDateSettings.js +17 -0
  43. package/dist/cjs/dates/helpers/getFormattedDateByFormat.d.ts +2 -1
  44. package/dist/cjs/dates/helpers/getFormattedDateByFormat.js +7 -7
  45. package/dist/cjs/dates/helpers/getTimezoneObject.d.ts +8 -1
  46. package/dist/cjs/dates/helpers/getTimezoneObject.js +98 -14
  47. package/dist/cjs/dates/helpers/getTimezoneOffsetByType.d.ts +13 -0
  48. package/dist/cjs/dates/helpers/getTimezoneOffsetByType.js +27 -0
  49. package/dist/cjs/dates/helpers/getUTCFormatByOffset.d.ts +7 -0
  50. package/dist/cjs/dates/helpers/getUTCFormatByOffset.js +19 -0
  51. package/dist/cjs/dates/helpers/index.d.ts +4 -1
  52. package/dist/cjs/dates/helpers/index.js +4 -1
  53. package/dist/cjs/dates/helpers/isValidPotentialDate.d.ts +1 -0
  54. package/dist/cjs/dates/helpers/isValidPotentialDate.js +14 -5
  55. package/dist/cjs/dates/interfaces/IBTimezone.d.ts +7 -0
  56. package/dist/cjs/dates/interfaces/IBTimezoneType.d.ts +2 -0
  57. package/dist/cjs/dates/interfaces/IDFDateToHmsSettings.d.ts +2 -1
  58. package/dist/cjs/dates/interfaces/IDTimezone.d.ts +3 -0
  59. package/dist/cjs/dates/interfaces/IDTimezoneType.d.ts +2 -0
  60. package/dist/cjs/dates/interfaces/IDTimezoneType.js +2 -0
  61. package/dist/cjs/dates/interfaces/IDateSettings.d.ts +5 -0
  62. package/dist/cjs/dates/interfaces/IDateSettings.js +2 -0
  63. package/dist/cjs/dates/interfaces/index.d.ts +4 -1
  64. package/dist/cjs/dates/interfaces/index.js +4 -1
  65. package/dist/cjs/filters/helpers/backend/buildExpression.js +1 -0
  66. package/dist/cjs/filters/services/Filters.api.js +1 -1
  67. package/dist/cjs/format/format.js +11 -0
  68. package/dist/cjs/format/localization.js +10 -1
  69. package/dist/cjs/general/array/getArrayByProperty.d.ts +1 -1
  70. package/dist/cjs/general/array/getUniqueArray.d.ts +1 -1
  71. package/dist/cjs/general/array/getUniqueArray.js +2 -0
  72. package/dist/cjs/general/mix/isEmpty.js +2 -0
  73. package/dist/cjs/general/mix/isNaNV2.d.ts +1 -0
  74. package/dist/cjs/general/mix/isNaNV2.js +7 -2
  75. package/dist/cjs/general/numeric/getSign.js +1 -1
  76. package/dist/cjs/general/object/applyTimezoneDeep.d.ts +1 -1
  77. package/dist/cjs/general/object/applyTimezoneDeep.js +10 -10
  78. package/dist/cjs/general/object/isObject.js +3 -1
  79. package/dist/cjs/general/object/mergeDeep.d.ts +6 -0
  80. package/dist/cjs/general/object/mergeDeep.js +12 -10
  81. package/dist/cjs/general/object/objectCopy.d.ts +1 -1
  82. package/dist/cjs/general/object/removeUndefinedDeep.js +6 -3
  83. package/dist/cjs/general/string/padLeadingZeros.d.ts +28 -1
  84. package/dist/cjs/general/string/padLeadingZeros.js +75 -7
  85. package/dist/cjs/globalization/interfaces/common/II18nColumnProperties.d.ts +1 -0
  86. package/dist/cjs/globalization/interfaces/dashboard/II18nDashboardToast.d.ts +1 -0
  87. package/dist/cjs/globalization/interfaces/dashboard/II18nDashboardTooltips.d.ts +1 -0
  88. package/dist/cjs/globalization/labels/common/I18N_COLUMN_PROPERTY_LABEL.js +1 -0
  89. package/dist/cjs/globalization/labels/dashboard/I18N_DASHBOARD.js +2 -0
  90. package/dist/cjs/globalization/labels/filters/I18N_RELATIVE_CONTAINER.js +1 -1
  91. package/dist/cjs/globalization/labels/formula_builder/I18N_FORMULA_BUILDER.js +5 -5
  92. package/dist/cjs/globalization/labels/panel/I18N_PANEL.js +1 -1
  93. package/dist/cjs/interfaces/format/IFormatConfig.Interface.d.ts +1 -1
  94. package/dist/cjs/qrvey/helpers/transformValue.js +35 -14
  95. package/dist/cjs/qrvey/interfaces/IBDataset.d.ts +1 -1
  96. package/dist/cjs/qrvey/interfaces/IBModel.d.ts +4 -1
  97. package/dist/cjs/qrvey/interfaces/index.d.ts +0 -1
  98. package/dist/cjs/qrvey/interfaces/index.js +0 -1
  99. package/dist/cjs/services/adapters/BTimezoneToUITimezone.d.ts +6 -1
  100. package/dist/cjs/services/adapters/BTimezoneToUITimezone.js +10 -1
  101. package/dist/columns/constants/COLUMN_PROPERTIES.d.ts +1 -1
  102. package/dist/columns/constants/COLUMN_PROPERTY_LABEL.d.ts +1 -0
  103. package/dist/columns/constants/COMPOUND_COLUMN_PROPERTY_LABEL.d.ts +1 -0
  104. package/dist/columns/constants/COMPOUND_COLUMN_PROPERTY_LABEL.js +1 -0
  105. package/dist/columns/helpers/isNumericalColumn.js +3 -1
  106. package/dist/dates/adapters/ISOToNumericOffset.js +6 -1
  107. package/dist/dates/adapters/dateToHms.js +5 -7
  108. package/dist/dates/adapters/dateToMdyDate.d.ts +2 -1
  109. package/dist/dates/adapters/dateToMdyDate.js +9 -3
  110. package/dist/dates/adapters/dateToMonthYear.d.ts +2 -1
  111. package/dist/dates/adapters/dateToMonthYear.js +6 -2
  112. package/dist/dates/adapters/dateToQuarterYear.d.ts +2 -1
  113. package/dist/dates/adapters/dateToQuarterYear.js +6 -2
  114. package/dist/dates/adapters/dateToWeekYear.d.ts +2 -1
  115. package/dist/dates/adapters/dateToWeekYear.js +6 -2
  116. package/dist/dates/adapters/dateToYear.d.ts +2 -1
  117. package/dist/dates/adapters/dateToYear.js +6 -2
  118. package/dist/dates/adapters/hmsToDate.d.ts +2 -1
  119. package/dist/dates/adapters/hmsToDate.js +6 -2
  120. package/dist/dates/adapters/mdyDateToDate.d.ts +2 -1
  121. package/dist/dates/adapters/mdyDateToDate.js +7 -2
  122. package/dist/dates/adapters/monthYearToDate.d.ts +2 -1
  123. package/dist/dates/adapters/monthYearToDate.js +6 -2
  124. package/dist/dates/adapters/numericOffsetToISO.d.ts +1 -1
  125. package/dist/dates/adapters/numericOffsetToISO.js +15 -8
  126. package/dist/dates/adapters/quarterYearToDate.d.ts +2 -1
  127. package/dist/dates/adapters/quarterYearToDate.js +6 -2
  128. package/dist/dates/adapters/weekYearToDate.d.ts +2 -1
  129. package/dist/dates/adapters/weekYearToDate.js +6 -2
  130. package/dist/dates/adapters/yearToDate.d.ts +2 -1
  131. package/dist/dates/adapters/yearToDate.js +6 -2
  132. package/dist/dates/constants/TIMEZONE_TYPE.d.ts +5 -0
  133. package/dist/dates/constants/TIMEZONE_TYPE.js +6 -0
  134. package/dist/dates/helpers/getDateByDateFormat.d.ts +2 -1
  135. package/dist/dates/helpers/getDateByDateFormat.js +6 -6
  136. package/dist/dates/helpers/getDateByTimezone.d.ts +3 -3
  137. package/dist/dates/helpers/getDateByTimezone.js +12 -27
  138. package/dist/dates/helpers/getDateByTimezoneOffset.d.ts +1 -1
  139. package/dist/dates/helpers/getDateByTimezoneOffset.js +11 -6
  140. package/dist/dates/helpers/getDefaultDateSettings.d.ts +7 -0
  141. package/dist/dates/helpers/getDefaultDateSettings.js +13 -0
  142. package/dist/dates/helpers/getFormattedDateByFormat.d.ts +2 -1
  143. package/dist/dates/helpers/getFormattedDateByFormat.js +7 -7
  144. package/dist/dates/helpers/getTimezoneObject.d.ts +8 -1
  145. package/dist/dates/helpers/getTimezoneObject.js +97 -13
  146. package/dist/dates/helpers/getTimezoneOffsetByType.d.ts +13 -0
  147. package/dist/dates/helpers/getTimezoneOffsetByType.js +23 -0
  148. package/dist/dates/helpers/getUTCFormatByOffset.d.ts +7 -0
  149. package/dist/dates/helpers/getUTCFormatByOffset.js +15 -0
  150. package/dist/dates/helpers/index.d.ts +4 -1
  151. package/dist/dates/helpers/index.js +4 -1
  152. package/dist/dates/helpers/isValidPotentialDate.d.ts +1 -0
  153. package/dist/dates/helpers/isValidPotentialDate.js +14 -5
  154. package/dist/dates/interfaces/IBTimezone.d.ts +7 -0
  155. package/dist/dates/interfaces/IBTimezoneType.d.ts +2 -0
  156. package/dist/dates/interfaces/IDFDateToHmsSettings.d.ts +2 -1
  157. package/dist/dates/interfaces/IDTimezone.d.ts +3 -0
  158. package/dist/dates/interfaces/IDTimezoneType.d.ts +2 -0
  159. package/dist/dates/interfaces/IDTimezoneType.js +1 -0
  160. package/dist/dates/interfaces/IDateSettings.d.ts +5 -0
  161. package/dist/dates/interfaces/IDateSettings.js +1 -0
  162. package/dist/dates/interfaces/index.d.ts +4 -1
  163. package/dist/dates/interfaces/index.js +4 -1
  164. package/dist/filters/helpers/backend/buildExpression.js +1 -0
  165. package/dist/filters/services/Filters.api.js +1 -1
  166. package/dist/format/format.js +11 -0
  167. package/dist/format/localization.js +10 -1
  168. package/dist/general/array/getArrayByProperty.d.ts +1 -1
  169. package/dist/general/array/getUniqueArray.d.ts +1 -1
  170. package/dist/general/array/getUniqueArray.js +2 -0
  171. package/dist/general/mix/isEmpty.js +2 -0
  172. package/dist/general/mix/isNaNV2.d.ts +1 -0
  173. package/dist/general/mix/isNaNV2.js +7 -2
  174. package/dist/general/numeric/getSign.js +1 -1
  175. package/dist/general/object/applyTimezoneDeep.d.ts +1 -1
  176. package/dist/general/object/applyTimezoneDeep.js +10 -10
  177. package/dist/general/object/isObject.js +3 -1
  178. package/dist/general/object/mergeDeep.d.ts +6 -0
  179. package/dist/general/object/mergeDeep.js +12 -10
  180. package/dist/general/object/objectCopy.d.ts +1 -1
  181. package/dist/general/object/removeUndefinedDeep.js +6 -3
  182. package/dist/general/string/padLeadingZeros.d.ts +28 -1
  183. package/dist/general/string/padLeadingZeros.js +75 -7
  184. package/dist/globalization/interfaces/common/II18nColumnProperties.d.ts +1 -0
  185. package/dist/globalization/interfaces/dashboard/II18nDashboardToast.d.ts +1 -0
  186. package/dist/globalization/interfaces/dashboard/II18nDashboardTooltips.d.ts +1 -0
  187. package/dist/globalization/labels/common/I18N_COLUMN_PROPERTY_LABEL.js +1 -0
  188. package/dist/globalization/labels/dashboard/I18N_DASHBOARD.js +2 -0
  189. package/dist/globalization/labels/filters/I18N_RELATIVE_CONTAINER.js +1 -1
  190. package/dist/globalization/labels/formula_builder/I18N_FORMULA_BUILDER.js +5 -5
  191. package/dist/globalization/labels/panel/I18N_PANEL.js +1 -1
  192. package/dist/interfaces/format/IFormatConfig.Interface.d.ts +1 -1
  193. package/dist/qrvey/helpers/transformValue.js +35 -14
  194. package/dist/qrvey/interfaces/IBDataset.d.ts +1 -1
  195. package/dist/qrvey/interfaces/IBModel.d.ts +4 -1
  196. package/dist/qrvey/interfaces/index.d.ts +0 -1
  197. package/dist/qrvey/interfaces/index.js +0 -1
  198. package/dist/services/adapters/BTimezoneToUITimezone.d.ts +6 -1
  199. package/dist/services/adapters/BTimezoneToUITimezone.js +10 -1
  200. package/package.json +4 -3
  201. package/dist/cjs/dates/interfaces/IGetDateByTimezoneSettings.d.ts +0 -6
  202. package/dist/cjs/qrvey/interfaces/IBTimezone.d.ts +0 -4
  203. package/dist/dates/interfaces/IGetDateByTimezoneSettings.d.ts +0 -6
  204. package/dist/qrvey/interfaces/IBTimezone.d.ts +0 -4
  205. /package/dist/cjs/{qrvey → dates}/interfaces/IBTimezone.js +0 -0
  206. /package/dist/cjs/dates/interfaces/{IGetDateByTimezoneSettings.js → IBTimezoneType.js} +0 -0
  207. /package/dist/{qrvey → dates}/interfaces/IBTimezone.js +0 -0
  208. /package/dist/dates/interfaces/{IGetDateByTimezoneSettings.js → IBTimezoneType.js} +0 -0
@@ -14,21 +14,21 @@ const mdyDateToDate_1 = require("../adapters/mdyDateToDate");
14
14
  * @param time flag to convert the formatted date to miliseconds
15
15
  * @returns a Date object, milisecond time or the same value if date format does not match.
16
16
  */
17
- function getDateByDateFormat(date, format, time = false) {
17
+ function getDateByDateFormat(date, format, settings) {
18
18
  switch (format) {
19
19
  case DATE_FORMAT_1.DATE_FORMAT.YEAR:
20
- return (0, yearToDate_1.yearToDate)(date, time);
20
+ return (0, yearToDate_1.yearToDate)(date, settings);
21
21
  case DATE_FORMAT_1.DATE_FORMAT.MONTH:
22
- return (0, monthYearToDate_1.monthYearToDate)(date, time);
22
+ return (0, monthYearToDate_1.monthYearToDate)(date, settings);
23
23
  case DATE_FORMAT_1.DATE_FORMAT.QUARTER:
24
- return (0, quarterYearToDate_1.quarterYearToDate)(date, time);
24
+ return (0, quarterYearToDate_1.quarterYearToDate)(date, settings);
25
25
  case DATE_FORMAT_1.DATE_FORMAT.WEEK:
26
- return (0, weekYearToDate_1.weekYearToDate)(date, time);
26
+ return (0, weekYearToDate_1.weekYearToDate)(date, settings);
27
27
  case DATE_FORMAT_1.DATE_FORMAT.DAY:
28
28
  case DATE_FORMAT_1.DATE_FORMAT.HOUR:
29
29
  case DATE_FORMAT_1.DATE_FORMAT.MINUTE:
30
30
  case DATE_FORMAT_1.DATE_FORMAT.SECOND:
31
- return (0, mdyDateToDate_1.mdyDateToDate)(date, time);
31
+ return (0, mdyDateToDate_1.mdyDateToDate)(date, settings);
32
32
  default:
33
33
  return date;
34
34
  }
@@ -1,8 +1,8 @@
1
- import { IGetDateByTimezoneSettings } from "../interfaces/IGetDateByTimezoneSettings";
1
+ import { IDTimezone } from "../interfaces/IDTimezone";
2
2
  /**
3
3
  * Gets a date value in the given timezone
4
4
  * @param {string} date the date
5
- * @param {IGetDateByTimezoneSettings} settings The settings of the getDateByTimezone function
5
+ * @param {IDTimezone} timezone the timezone object
6
6
  * @returns {string} A transformed value
7
7
  */
8
- export declare function getDateByTimezone(date: string, settings: IGetDateByTimezoneSettings): string;
8
+ export declare function getDateByTimezone(date: string | number | Date, timezone: IDTimezone): string | number | Date;
@@ -2,38 +2,23 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getDateByTimezone = void 0;
4
4
  const isEmpty_1 = require("../../general/mix/isEmpty");
5
- const DATE_GROUPING_TIME_PROPERTY_1 = require("../constants/DATE_GROUPING_TIME_PROPERTY");
6
- const getDateByDateFormat_1 = require("./getDateByDateFormat");
5
+ const DATE_FORMAT_1 = require("../constants/DATE_FORMAT");
7
6
  const getDateByTimezoneOffset_1 = require("./getDateByTimezoneOffset");
8
- const getDateFormatByProperty_1 = require("./getDateFormatByProperty");
9
- const getFormattedDateByFormat_1 = require("./getFormattedDateByFormat");
7
+ const getTimezoneObject_1 = require("./getTimezoneObject");
8
+ const isValidPotentialDate_1 = require("./isValidPotentialDate");
9
+ const validateDate_1 = require("./validateDate");
10
10
  /**
11
11
  * Gets a date value in the given timezone
12
12
  * @param {string} date the date
13
- * @param {IGetDateByTimezoneSettings} settings The settings of the getDateByTimezone function
13
+ * @param {IDTimezone} timezone the timezone object
14
14
  * @returns {string} A transformed value
15
15
  */
16
- function getDateByTimezone(date, settings) {
17
- const defaultSettings = getDefaultSettings(settings);
18
- const isDateTime = [
19
- DATE_GROUPING_TIME_PROPERTY_1.DATE_GROUPING_TIME_PROPERTY.HOUR,
20
- DATE_GROUPING_TIME_PROPERTY_1.DATE_GROUPING_TIME_PROPERTY.MINUTE,
21
- DATE_GROUPING_TIME_PROPERTY_1.DATE_GROUPING_TIME_PROPERTY.SECOND,
22
- ].includes(defaultSettings.property);
23
- if (!(0, isEmpty_1.isEmpty)(defaultSettings.timezone.offset) && isDateTime) {
24
- const dateFormat = (0, getDateFormatByProperty_1.getDateFormatByProperty)(defaultSettings.property);
25
- const formattedDate = (0, getDateByDateFormat_1.getDateByDateFormat)(date, dateFormat);
26
- const timezonedDate = (0, getDateByTimezoneOffset_1.getDateByTimezoneOffset)(formattedDate, defaultSettings.timezone.offset);
27
- return (0, getFormattedDateByFormat_1.getFormattedDateByFormat)(timezonedDate, dateFormat);
28
- }
29
- return date;
16
+ function getDateByTimezone(date, timezone) {
17
+ const defaultTimezone = (0, getTimezoneObject_1.getTimezoneObject)(timezone);
18
+ if ((0, isEmpty_1.isEmpty)(timezone === null || timezone === void 0 ? void 0 : timezone.offset) ||
19
+ !(0, isValidPotentialDate_1.isValidPotentialDate)(date) ||
20
+ (typeof date === "string" && !(0, validateDate_1.validateDate)(date, DATE_FORMAT_1.DATE_FORMAT.SECOND)))
21
+ return date;
22
+ return (0, getDateByTimezoneOffset_1.getDateByTimezoneOffset)(date, defaultTimezone.offset);
30
23
  }
31
24
  exports.getDateByTimezone = getDateByTimezone;
32
- function getDefaultSettings(settings) {
33
- return {
34
- property: settings.property,
35
- timezone: (settings === null || settings === void 0 ? void 0 : settings.timezone) || {
36
- offset: undefined,
37
- },
38
- };
39
- }
@@ -4,4 +4,4 @@
4
4
  * @param date String, object or millisencond number of the date
5
5
  * @returns updated Date object
6
6
  */
7
- export declare function getDateByTimezoneOffset(date: string | Date | number, offset?: number | string): Date;
7
+ export declare function getDateByTimezoneOffset(date: string | Date | number, offset?: number | string): string | Date | number;
@@ -1,7 +1,10 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.getDateByTimezoneOffset = void 0;
4
- const isEmpty_1 = require("../../general/mix/isEmpty");
7
+ const dayjs_1 = __importDefault(require("dayjs"));
5
8
  const ISOToNumericOffset_1 = require("../adapters/ISOToNumericOffset");
6
9
  const DATE_FORMAT_1 = require("../constants/DATE_FORMAT");
7
10
  const isValidPotentialDate_1 = require("./isValidPotentialDate");
@@ -14,12 +17,17 @@ const validateDate_1 = require("./validateDate");
14
17
  */
15
18
  function getDateByTimezoneOffset(date, offset) {
16
19
  if (!(0, isValidPotentialDate_1.isValidPotentialDate)(date) ||
17
- (typeof date === "string" && !(0, validateDate_1.validateDate)(date, DATE_FORMAT_1.DATE_FORMAT.DAY)))
20
+ (typeof date === "string" && !(0, validateDate_1.validateDate)(date, DATE_FORMAT_1.DATE_FORMAT.SECOND)))
18
21
  return date;
19
22
  const dt = new Date(date.valueOf());
20
- const newOffset = (0, isEmpty_1.isEmpty)(offset) || offset === "browser"
21
- ? dt.getTimezoneOffset()
22
- : (0, ISOToNumericOffset_1.ISOToNumericOffset)(offset);
23
- return new Date(+dt + newOffset * 1000 * 60);
23
+ const newOffset = (0, ISOToNumericOffset_1.ISOToNumericOffset)(offset);
24
+ const timezonedDate = new Date(+dt + newOffset * 1000 * 60);
25
+ if (typeof date === "string") {
26
+ return (0, dayjs_1.default)(timezonedDate).format(DATE_FORMAT_1.DATE_FORMAT.SECOND);
27
+ }
28
+ else if (typeof date === "number") {
29
+ return +timezonedDate;
30
+ }
31
+ return timezonedDate;
24
32
  }
25
33
  exports.getDateByTimezoneOffset = getDateByTimezoneOffset;
@@ -0,0 +1,7 @@
1
+ import { IDateSettings } from "../interfaces/IDateSettings";
2
+ /**
3
+ * Gets the default properties for Date Settings object
4
+ * @param settings the date settings
5
+ * @returns a new object with the date settings.
6
+ */
7
+ export declare function getDefaultDateSettings(settings: IDateSettings): IDateSettings;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDefaultDateSettings = void 0;
4
+ const getTimezoneObject_1 = require("./getTimezoneObject");
5
+ /**
6
+ * Gets the default properties for Date Settings object
7
+ * @param settings the date settings
8
+ * @returns a new object with the date settings.
9
+ */
10
+ function getDefaultDateSettings(settings) {
11
+ var _a;
12
+ return {
13
+ convertMiliseconds: (_a = settings === null || settings === void 0 ? void 0 : settings.convertMiliseconds) !== null && _a !== void 0 ? _a : false,
14
+ timezone: (0, getTimezoneObject_1.getTimezoneObject)(settings === null || settings === void 0 ? void 0 : settings.timezone),
15
+ };
16
+ }
17
+ exports.getDefaultDateSettings = getDefaultDateSettings;
@@ -1,4 +1,5 @@
1
1
  import { IDateFormat } from "../interfaces/IDateFormat";
2
+ import { IDateSettings } from "../interfaces/IDateSettings";
2
3
  /**
3
4
  * A Date object, string or millisecond number are gotten in order to convert it in an formatted string date
4
5
  * - Some strings are valid
@@ -6,4 +7,4 @@ import { IDateFormat } from "../interfaces/IDateFormat";
6
7
  * @param format The date format
7
8
  * @returns a formmatted date or the same value if format does not match
8
9
  */
9
- export declare function getFormattedDateByFormat(date: string | Date | number, format: IDateFormat): string | Date | number;
10
+ export declare function getFormattedDateByFormat(date: string | Date | number, format: IDateFormat, settings?: IDateSettings): string | Date | number;
@@ -14,22 +14,22 @@ const DATE_FORMAT_1 = require("../constants/DATE_FORMAT");
14
14
  * @param format The date format
15
15
  * @returns a formmatted date or the same value if format does not match
16
16
  */
17
- function getFormattedDateByFormat(date, format) {
17
+ function getFormattedDateByFormat(date, format, settings) {
18
18
  switch (format) {
19
19
  case DATE_FORMAT_1.DATE_FORMAT.YEAR:
20
- return (0, dateToYear_1.dateToYear)(date);
20
+ return (0, dateToYear_1.dateToYear)(date, settings);
21
21
  case DATE_FORMAT_1.DATE_FORMAT.MONTH:
22
- return (0, dateToMonthYear_1.dateToMonthYear)(date);
22
+ return (0, dateToMonthYear_1.dateToMonthYear)(date, settings);
23
23
  case DATE_FORMAT_1.DATE_FORMAT.QUARTER:
24
- return (0, dateToQuarterYear_1.dateToQuarterYear)(date);
24
+ return (0, dateToQuarterYear_1.dateToQuarterYear)(date, settings);
25
25
  case DATE_FORMAT_1.DATE_FORMAT.WEEK:
26
- return (0, dateToWeekYear_1.dateToWeekYear)(date);
26
+ return (0, dateToWeekYear_1.dateToWeekYear)(date, settings);
27
27
  case DATE_FORMAT_1.DATE_FORMAT.DAY:
28
- return (0, dateToMdyDate_1.dateToMdyDate)(date);
28
+ return (0, dateToMdyDate_1.dateToMdyDate)(date, settings);
29
29
  case DATE_FORMAT_1.DATE_FORMAT.HOUR:
30
30
  case DATE_FORMAT_1.DATE_FORMAT.MINUTE:
31
31
  case DATE_FORMAT_1.DATE_FORMAT.SECOND:
32
- return (0, dateToMdyDate_1.dateToMdyDate)(date, true);
32
+ return (0, dateToMdyDate_1.dateToMdyDate)(date, Object.assign(Object.assign({}, settings), { convertMiliseconds: true }));
33
33
  default:
34
34
  return date;
35
35
  }
@@ -1,4 +1,11 @@
1
1
  import { IDataset } from "../../qrvey/interfaces/IDataset";
2
2
  import { IModel } from "../../qrvey/interfaces/IModel";
3
3
  import { IDTimezone } from "../interfaces/IDTimezone";
4
- export declare function getTimezoneObject(timezone: IDTimezone, model: IModel | IDataset): IDTimezone;
4
+ /**
5
+ * Gets the timezone object by the given argument or the model object
6
+ * - In any case, the offset is prioritized to override other properties.
7
+ * @param {IDTimezone} timezone the timezone object
8
+ * @param {IModel | IDataset} model the info of the dataset (model)
9
+ * @returns a new timezone object
10
+ */
11
+ export declare function getTimezoneObject(timezone: IDTimezone, model?: IModel | IDataset): IDTimezone;
@@ -2,23 +2,107 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getTimezoneObject = void 0;
4
4
  const isEmpty_1 = require("../../general/mix/isEmpty");
5
+ const isNaNV2_1 = require("../../general/mix/isNaNV2");
6
+ const TIMEZONE_TYPE_1 = require("../constants/TIMEZONE_TYPE");
7
+ const getTimezoneOffsetByType_1 = require("./getTimezoneOffsetByType");
8
+ const getUTCFormatByOffset_1 = require("./getUTCFormatByOffset");
9
+ const isValidISOOffset_1 = require("./isValidISOOffset");
10
+ /**
11
+ * Gets the timezone object by the given argument or the model object
12
+ * - In any case, the offset is prioritized to override other properties.
13
+ * @param {IDTimezone} timezone the timezone object
14
+ * @param {IModel | IDataset} model the info of the dataset (model)
15
+ * @returns a new timezone object
16
+ */
5
17
  function getTimezoneObject(timezone, model) {
6
- var _a;
7
- let newTimezone = {
8
- offset: "+00:00",
18
+ const offset = getOffset(timezone, model);
19
+ const type = getType(timezone, model, offset);
20
+ const resultingOffset = (0, getTimezoneOffsetByType_1.getTimezoneOffsetByType)({ offset, type });
21
+ const utc = getUTC({ offset: resultingOffset, type });
22
+ return {
23
+ offset: resultingOffset,
24
+ type,
25
+ utc,
9
26
  };
10
- if ((0, isEmpty_1.isEmpty)(timezone)) {
11
- if (!(0, isEmpty_1.isEmpty)(model)) {
12
- newTimezone = {
13
- offset: ((_a = model.timezone) === null || _a === void 0 ? void 0 : _a.offset) || newTimezone.offset,
14
- };
15
- }
27
+ }
28
+ exports.getTimezoneObject = getTimezoneObject;
29
+ /**
30
+ * Gets the offset of the timezone by the given objects
31
+ * - Searchs the first argument
32
+ * - If the timezone is empty, in the model timezone is searched
33
+ * - If it does not exist in any, a default one is set.
34
+ * @param {IDTimezone} timezone The timezone object
35
+ * @param {IModel | IDataset} model The model info
36
+ * @returns {IDTimezoneOffset} the offset of the objects
37
+ */
38
+ function getOffset(timezone, model) {
39
+ var _a;
40
+ let offset;
41
+ if (!(0, isEmpty_1.isEmpty)(timezone === null || timezone === void 0 ? void 0 : timezone.offset)) {
42
+ offset = timezone.offset;
43
+ }
44
+ else if (!(0, isEmpty_1.isEmpty)((_a = model === null || model === void 0 ? void 0 : model.timezone) === null || _a === void 0 ? void 0 : _a.offset)) {
45
+ offset = model.timezone.offset;
16
46
  }
17
47
  else {
18
- newTimezone = {
19
- offset: (timezone === null || timezone === void 0 ? void 0 : timezone.offset) || newTimezone.offset,
20
- };
48
+ offset = "+00:00";
21
49
  }
22
- return newTimezone;
50
+ return offset;
51
+ }
52
+ /**
53
+ * Gets the type of the timezone
54
+ * - Searchs the first argument
55
+ * - If it does not exist, asking for the timezone offset in order to prioritized the offset above all.
56
+ * - If the timezone is empty, in the model timezone is searched.
57
+ * - If it does not exist in any, a default one is set.
58
+ * @param {IDTimezone} timezone The timezone object
59
+ * @param {IModel | IDataset} model The model info
60
+ * @param {IDTimezoneOffset} offset a default offset if the validation are not satisfied
61
+ * @returns {IDTimezoneType} the rigth type of the timezone
62
+ */
63
+ function getType(timezone, model, offset) {
64
+ var _a;
65
+ let type;
66
+ if (!(0, isEmpty_1.isEmpty)(timezone === null || timezone === void 0 ? void 0 : timezone.type)) {
67
+ type = timezone.type;
68
+ }
69
+ else if (!(0, isEmpty_1.isEmpty)(timezone === null || timezone === void 0 ? void 0 : timezone.offset)) {
70
+ type = getTypeByOffset(timezone === null || timezone === void 0 ? void 0 : timezone.offset);
71
+ }
72
+ else if (!(0, isEmpty_1.isEmpty)((_a = model === null || model === void 0 ? void 0 : model.timezone) === null || _a === void 0 ? void 0 : _a.type)) {
73
+ type = model.timezone.type;
74
+ }
75
+ if ((0, isEmpty_1.isEmpty)(type)) {
76
+ type = getTypeByOffset(offset);
77
+ }
78
+ return type;
79
+ }
80
+ /**
81
+ * Gets the type by a offset
82
+ * - For a offset=0 the type is default
83
+ * - For a offset="browser" the type is browser
84
+ * - For a valid offset different to previous ones, the type is fixed;
85
+ * - Anything else, it is considered default.
86
+ * @param {IDTimezoneOffset} offset a given offset
87
+ * @returns {IDTimezoneType} the right timezone type for the offset
88
+ */
89
+ function getTypeByOffset(offset) {
90
+ if (offset === "+00:00") {
91
+ return TIMEZONE_TYPE_1.TIMEZONE_TYPE.DEFAULT;
92
+ }
93
+ else if (offset === "browser") {
94
+ return TIMEZONE_TYPE_1.TIMEZONE_TYPE.BROWSER;
95
+ }
96
+ else if ((0, isValidISOOffset_1.isValidISOOffset)(offset) || !(0, isNaNV2_1.isNaNV2)(offset)) {
97
+ return TIMEZONE_TYPE_1.TIMEZONE_TYPE.FIXED;
98
+ }
99
+ return TIMEZONE_TYPE_1.TIMEZONE_TYPE.DEFAULT;
100
+ }
101
+ /**
102
+ * Gets the UTC string by the timezone object
103
+ * @param {IDTimezone} timezone the timezone object
104
+ * @returns {string} the label of the UTC value
105
+ */
106
+ function getUTC(timezone) {
107
+ return (0, getUTCFormatByOffset_1.getUTCFormatByOffset)(timezone);
23
108
  }
24
- exports.getTimezoneObject = getTimezoneObject;
@@ -0,0 +1,13 @@
1
+ import { IBTimezone } from "../interfaces/IBTimezone";
2
+ import { IDTimezone } from "../interfaces/IDTimezone";
3
+ import { IDTimezoneOffset } from "../interfaces/IDTimezoneOffset";
4
+ /**
5
+ * Gets the timezone offset by the timezone type.
6
+ * For browser types, it is calculated by a Date instance
7
+ * Default types is UTC-0
8
+ * Undefined or Fixed types is gotten by the offset property
9
+ * @param {IDTimezoneType} type the timezone type
10
+ * @param {IDTimezone | IBTimezone} timezone the timezone object
11
+ * @returns {IDTimezoneOffset} the offset of the timezone
12
+ */
13
+ export declare function getTimezoneOffsetByType(timezone: IDTimezone | IBTimezone): IDTimezoneOffset;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTimezoneOffsetByType = void 0;
4
+ const isEmpty_1 = require("../../general/mix/isEmpty");
5
+ const numericOffsetToISO_1 = require("../adapters/numericOffsetToISO");
6
+ const TIMEZONE_TYPE_1 = require("../constants/TIMEZONE_TYPE");
7
+ /**
8
+ * Gets the timezone offset by the timezone type.
9
+ * For browser types, it is calculated by a Date instance
10
+ * Default types is UTC-0
11
+ * Undefined or Fixed types is gotten by the offset property
12
+ * @param {IDTimezoneType} type the timezone type
13
+ * @param {IDTimezone | IBTimezone} timezone the timezone object
14
+ * @returns {IDTimezoneOffset} the offset of the timezone
15
+ */
16
+ function getTimezoneOffsetByType(timezone) {
17
+ if ((0, isEmpty_1.isEmpty)(timezone))
18
+ return "+00:00";
19
+ if (timezone.type === TIMEZONE_TYPE_1.TIMEZONE_TYPE.BROWSER) {
20
+ return (0, numericOffsetToISO_1.numericOffsetToISO)("browser");
21
+ }
22
+ else if (timezone.type === TIMEZONE_TYPE_1.TIMEZONE_TYPE.DEFAULT) {
23
+ return "+00:00";
24
+ }
25
+ return timezone.offset || timezone.numericOffset || "+00:00";
26
+ }
27
+ exports.getTimezoneOffsetByType = getTimezoneOffsetByType;
@@ -0,0 +1,7 @@
1
+ import { IDTimezone } from "../interfaces/IDTimezone";
2
+ /**
3
+ * Gets the UTC format dependeing on the given offset
4
+ * @param {IDTimezone} timezone the timezone object
5
+ * @returns {string} an string with the UTC format
6
+ */
7
+ export declare function getUTCFormatByOffset(timezone: IDTimezone, minified?: boolean): string;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getUTCFormatByOffset = void 0;
4
+ const general_1 = require("../../general");
5
+ const numericOffsetToISO_1 = require("../adapters/numericOffsetToISO");
6
+ /**
7
+ * Gets the UTC format dependeing on the given offset
8
+ * @param {IDTimezone} timezone the timezone object
9
+ * @returns {string} an string with the UTC format
10
+ */
11
+ function getUTCFormatByOffset(timezone, minified = false) {
12
+ const newMinified = !(0, general_1.isEmpty)(minified) && typeof minified === "boolean" ? minified : false;
13
+ let newOffset = (0, numericOffsetToISO_1.numericOffsetToISO)(timezone === null || timezone === void 0 ? void 0 : timezone.offset, !newMinified);
14
+ if (newMinified && newOffset.search(":00") > -1) {
15
+ newOffset = newOffset.slice(0, newOffset.indexOf(":"));
16
+ }
17
+ return `UTC${newOffset}`;
18
+ }
19
+ exports.getUTCFormatByOffset = getUTCFormatByOffset;
@@ -1,15 +1,18 @@
1
1
  export * from "./areIncludedDateTokens";
2
2
  export * from "./getDateByDateFormat";
3
3
  export * from "./getDateByTimezone";
4
+ export * from "./getDateByTimezoneOffset";
4
5
  export * from "./getDateFormatByProperty";
5
6
  export * from "./getDateFormatRegularExpressionInArray";
6
7
  export * from "./getDatePickerPickLevel";
7
8
  export * from "./getDateRange";
9
+ export * from "./getDefaultDateSettings";
8
10
  export * from "./getFormattedDateByFormat";
9
11
  export * from "./getSeparatorByDateFormat";
10
12
  export * from "./getTimezoneObject";
13
+ export * from "./getTimezoneOffsetByType";
14
+ export * from "./getUTCFormatByOffset";
11
15
  export * from "./getWeek";
12
16
  export * from "./isValidDateObject";
13
17
  export * from "./isValidPotentialDate";
14
- export * from "./getDateByTimezoneOffset";
15
18
  export * from "./validateDate";
@@ -17,15 +17,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./areIncludedDateTokens"), exports);
18
18
  __exportStar(require("./getDateByDateFormat"), exports);
19
19
  __exportStar(require("./getDateByTimezone"), exports);
20
+ __exportStar(require("./getDateByTimezoneOffset"), exports);
20
21
  __exportStar(require("./getDateFormatByProperty"), exports);
21
22
  __exportStar(require("./getDateFormatRegularExpressionInArray"), exports);
22
23
  __exportStar(require("./getDatePickerPickLevel"), exports);
23
24
  __exportStar(require("./getDateRange"), exports);
25
+ __exportStar(require("./getDefaultDateSettings"), exports);
24
26
  __exportStar(require("./getFormattedDateByFormat"), exports);
25
27
  __exportStar(require("./getSeparatorByDateFormat"), exports);
26
28
  __exportStar(require("./getTimezoneObject"), exports);
29
+ __exportStar(require("./getTimezoneOffsetByType"), exports);
30
+ __exportStar(require("./getUTCFormatByOffset"), exports);
27
31
  __exportStar(require("./getWeek"), exports);
28
32
  __exportStar(require("./isValidDateObject"), exports);
29
33
  __exportStar(require("./isValidPotentialDate"), exports);
30
- __exportStar(require("./getDateByTimezoneOffset"), exports);
31
34
  __exportStar(require("./validateDate"), exports);
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * Checks if the given date is allowed to continue the process for adapting dates
3
+ * - If the string is a token or a combination of tokens is not valid
3
4
  * @param {string | Date | number} date String, object or millisencond number of the date
4
5
  * @returns true: the date is valid.
5
6
  */
@@ -2,17 +2,26 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isValidPotentialDate = void 0;
4
4
  const isEmpty_1 = require("../../general/mix/isEmpty");
5
- const isTokenLabel_1 = require("../../tokens/isTokenLabel");
5
+ const DATE_FORMATS_1 = require("../constants/DATE_FORMATS");
6
+ const areIncludedDateTokens_1 = require("./areIncludedDateTokens");
6
7
  /**
7
8
  * Checks if the given date is allowed to continue the process for adapting dates
9
+ * - If the string is a token or a combination of tokens is not valid
8
10
  * @param {string | Date | number} date String, object or millisencond number of the date
9
11
  * @returns true: the date is valid.
10
12
  */
11
13
  function isValidPotentialDate(date) {
12
14
  return (!(0, isEmpty_1.isEmpty)(date) &&
13
- !(0, isTokenLabel_1.isTokenLabel)(date) &&
14
- ((date instanceof Date && !isNaN(date)) ||
15
- typeof date === "string" ||
16
- typeof date === "number"));
15
+ !includingDateTokens(date) &&
16
+ (isDateInstance(date) || isStringDate(date) || typeof date === "number"));
17
17
  }
18
18
  exports.isValidPotentialDate = isValidPotentialDate;
19
+ function includingDateTokens(date) {
20
+ return DATE_FORMATS_1.DATE_FORMATS.some((dateFormat) => (0, areIncludedDateTokens_1.areIncludedDateTokens)(date, dateFormat));
21
+ }
22
+ function isDateInstance(date) {
23
+ return date instanceof Date && !isNaN(date);
24
+ }
25
+ function isStringDate(date) {
26
+ return (typeof date === "string" && new Date(date).toString() !== "Invalid Date");
27
+ }
@@ -0,0 +1,7 @@
1
+ import { IBTimezoneType } from "./IBTimezoneType";
2
+ export interface IBTimezone {
3
+ numericOffset: number;
4
+ offset: string;
5
+ timezoneid?: string;
6
+ type: IBTimezoneType;
7
+ }
@@ -0,0 +1,2 @@
1
+ import { TIMEZONE_TYPE } from "../constants/TIMEZONE_TYPE";
2
+ export type IBTimezoneType = TIMEZONE_TYPE;
@@ -1,4 +1,5 @@
1
- export interface IDFDateToHmsSettings {
1
+ import { IDateSettings } from "./IDateSettings";
2
+ export interface IDFDateToHmsSettings extends IDateSettings {
2
3
  omitHour?: boolean;
3
4
  omitMinute?: boolean;
4
5
  omitSecond?: boolean;
@@ -1,4 +1,7 @@
1
1
  import { IDTimezoneOffset } from "./IDTimezoneOffset";
2
+ import { IDTimezoneType } from "./IDTimezoneType";
2
3
  export interface IDTimezone {
3
4
  offset: IDTimezoneOffset;
5
+ type?: IDTimezoneType;
6
+ utc?: string;
4
7
  }
@@ -0,0 +1,2 @@
1
+ import { IBTimezoneType } from "./IBTimezoneType";
2
+ export type IDTimezoneType = IBTimezoneType;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,5 @@
1
+ import { IDTimezone } from "./IDTimezone";
2
+ export interface IDateSettings {
3
+ timezone?: IDTimezone;
4
+ convertMiliseconds?: boolean;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,6 +1,9 @@
1
+ export * from "./IBTimezone";
2
+ export * from "./IBTimezoneType";
1
3
  export * from "./IDateFormat";
2
4
  export * from "./IDateGroupingProperty";
5
+ export * from "./IDateSettings";
3
6
  export * from "./IDFDateToHmsSettings";
4
7
  export * from "./IDTimezone";
5
8
  export * from "./IDTimezoneOffset";
6
- export * from "./IGetDateByTimezoneSettings";
9
+ export * from "./IDTimezoneType";
@@ -14,9 +14,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./IBTimezone"), exports);
18
+ __exportStar(require("./IBTimezoneType"), exports);
17
19
  __exportStar(require("./IDateFormat"), exports);
18
20
  __exportStar(require("./IDateGroupingProperty"), exports);
21
+ __exportStar(require("./IDateSettings"), exports);
19
22
  __exportStar(require("./IDFDateToHmsSettings"), exports);
20
23
  __exportStar(require("./IDTimezone"), exports);
21
24
  __exportStar(require("./IDTimezoneOffset"), exports);
22
- __exportStar(require("./IGetDateByTimezoneSettings"), exports);
25
+ __exportStar(require("./IDTimezoneType"), exports);
@@ -16,6 +16,7 @@ function buildExpression(filter) {
16
16
  const expression = {
17
17
  groupValue: (0, getBackendGroupValue_1.getBackendGroupValue)(filter),
18
18
  questionid: filter.column.id,
19
+ questionType: filter.column.type,
19
20
  property: (0, getBackendProperty_1.getBackendProperty)(filter),
20
21
  validationType: (0, getBackendValidator_1.getBackendValidator)(filter),
21
22
  value: (0, getBackendValues_1.getBackendValues)(filter),
@@ -103,7 +103,7 @@ class FiltersApi {
103
103
  else {
104
104
  api = this.chartPaginationApi;
105
105
  }
106
- return api.getChartResult(this.config, FiltersApi.getFilter(config), FiltersApi.getLogic(config), FiltersApi.getChartRequest(config), resetApi);
106
+ return api.getChartResult(Object.assign(Object.assign({}, this.config), { timezone: config.widgetConfig.timezone }), FiltersApi.getFilter(config), FiltersApi.getLogic(config), FiltersApi.getChartRequest(config), resetApi);
107
107
  });
108
108
  }
109
109
  static getLogic(config) {
@@ -7,9 +7,14 @@ exports.defineFormat = exports.validateColumnType = exports.parseFormulaType = e
7
7
  const d3_format_1 = require("d3-format");
8
8
  const dayjs_1 = __importDefault(require("dayjs"));
9
9
  const definition_1 = require("./definition");
10
+ //* *dayjs plugins */
10
11
  const isoWeek_1 = __importDefault(require("dayjs/plugin/isoWeek"));
11
12
  const advancedFormat_1 = __importDefault(require("dayjs/plugin/advancedFormat"));
12
13
  const utc_1 = __importDefault(require("dayjs/plugin/utc"));
14
+ const weekYear_1 = __importDefault(require("dayjs/plugin/weekYear"));
15
+ const weekOfYear_1 = __importDefault(require("dayjs/plugin/weekOfYear"));
16
+ const updateLocale_1 = __importDefault(require("dayjs/plugin/updateLocale"));
17
+ //* * end dayjs plugin imports */
13
18
  const isEmpty_1 = require("../general/mix/isEmpty");
14
19
  const get_1 = require("../general/object/get");
15
20
  const COLUMN_1 = require("../columns/constants/COLUMN");
@@ -18,9 +23,15 @@ const localization_1 = require("./localization");
18
23
  const isObject_1 = require("../general/object/isObject");
19
24
  const DURATION_PARTS_LIST_1 = require("../column_format/constants/DURATION_PARTS_LIST");
20
25
  const cloneDeep_1 = require("../general/object/cloneDeep");
26
+ dayjs_1.default.extend(updateLocale_1.default);
27
+ dayjs_1.default.updateLocale("en", {
28
+ yearStart: 4,
29
+ });
21
30
  dayjs_1.default.extend(isoWeek_1.default); // Add support for iso week format https://github.com/iamkun/dayjs/issues/1328
22
31
  dayjs_1.default.extend(advancedFormat_1.default); // Add support to advanced formats https://day.js.org/docs/en/plugin/advanced-format
23
32
  dayjs_1.default.extend(utc_1.default);
33
+ dayjs_1.default.extend(weekYear_1.default);
34
+ dayjs_1.default.extend(weekOfYear_1.default);
24
35
  /**
25
36
  * Apply to the given date format to a date value
26
37
  * @param bytes type number