@qrvey/utils 1.10.0-0 → 1.10.0-timezone-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/dates/adapters/ISOToNumericOffset.d.ts +6 -0
- package/dist/cjs/dates/adapters/ISOToNumericOffset.js +19 -0
- package/dist/cjs/dates/adapters/index.d.ts +2 -0
- package/dist/cjs/dates/adapters/index.js +2 -0
- package/dist/cjs/dates/adapters/numericOffsetToISO.d.ts +6 -0
- package/dist/cjs/dates/adapters/numericOffsetToISO.js +27 -0
- package/dist/cjs/dates/constants/ISO_8601_REGEX.d.ts +1 -0
- package/dist/cjs/dates/constants/ISO_8601_REGEX.js +4 -0
- package/dist/cjs/dates/constants/index.d.ts +1 -0
- package/dist/cjs/dates/constants/index.js +1 -0
- package/dist/cjs/dates/helpers/getDateByTimezoneOffset.d.ts +7 -0
- package/dist/cjs/dates/helpers/getDateByTimezoneOffset.js +25 -0
- package/dist/cjs/dates/helpers/index.d.ts +1 -1
- package/dist/cjs/dates/helpers/index.js +1 -1
- package/dist/cjs/dates/helpers/isValidISOOffset.d.ts +7 -0
- package/dist/cjs/dates/helpers/isValidISOOffset.js +17 -0
- package/dist/cjs/dates/interfaces/IDTimezoneOffset.d.ts +1 -0
- package/dist/cjs/dates/interfaces/IDTimezoneOffset.js +2 -0
- package/dist/cjs/dates/interfaces/index.d.ts +1 -0
- package/dist/cjs/dates/interfaces/index.js +1 -0
- package/dist/cjs/filters/helpers/builder/getFilterBuilderGeneralConfig.js +1 -1
- package/dist/cjs/filters/helpers/common/index.d.ts +1 -0
- package/dist/cjs/filters/helpers/common/index.js +1 -0
- package/dist/cjs/filters/helpers/common/setTimezoneToFilters.d.ts +4 -0
- package/dist/cjs/filters/helpers/common/setTimezoneToFilters.js +17 -0
- package/dist/cjs/filters/interfaces/ui/IFUTransformFilterValuesSettings.d.ts +2 -0
- package/dist/cjs/filters/services/Filters.api.js +1 -1
- package/dist/cjs/general/index.d.ts +1 -0
- package/dist/cjs/general/index.js +1 -0
- package/dist/cjs/general/numeric/getSign.d.ts +6 -0
- package/dist/cjs/general/numeric/getSign.js +12 -0
- package/dist/cjs/general/numeric/index.d.ts +1 -0
- package/dist/cjs/general/numeric/index.js +17 -0
- package/dist/cjs/interfaces/general/IWidgetConfig.d.ts +2 -1
- package/dist/cjs/qrvey/helpers/transformValue.js +24 -1
- package/dist/cjs/qrvey/interfaces/IBDataset.d.ts +2 -0
- package/dist/cjs/qrvey/interfaces/IBTimezone.d.ts +4 -0
- package/dist/cjs/qrvey/interfaces/IBTimezone.js +2 -0
- package/dist/cjs/qrvey/interfaces/IDataset.d.ts +3 -1
- package/dist/cjs/qrvey/interfaces/ITransformValueSettings.d.ts +2 -0
- package/dist/cjs/qrvey/interfaces/index.d.ts +1 -0
- package/dist/cjs/qrvey/interfaces/index.js +1 -0
- package/dist/cjs/services/adapters/BDatasetsToUIDatasets.adapter.js +9 -5
- package/dist/cjs/services/helpers/Request.d.ts +1 -1
- package/dist/cjs/services/helpers/Request.js +6 -5
- package/dist/dates/adapters/ISOToNumericOffset.d.ts +6 -0
- package/dist/dates/adapters/ISOToNumericOffset.js +15 -0
- package/dist/dates/adapters/index.d.ts +2 -0
- package/dist/dates/adapters/index.js +2 -0
- package/dist/dates/adapters/numericOffsetToISO.d.ts +6 -0
- package/dist/dates/adapters/numericOffsetToISO.js +23 -0
- package/dist/dates/constants/ISO_8601_REGEX.d.ts +1 -0
- package/dist/dates/constants/ISO_8601_REGEX.js +1 -0
- package/dist/dates/constants/index.d.ts +1 -0
- package/dist/dates/constants/index.js +1 -0
- package/dist/dates/helpers/getDateByTimezoneOffset.d.ts +7 -0
- package/dist/dates/helpers/getDateByTimezoneOffset.js +21 -0
- package/dist/dates/helpers/index.d.ts +1 -1
- package/dist/dates/helpers/index.js +1 -1
- package/dist/dates/helpers/isValidISOOffset.d.ts +7 -0
- package/dist/dates/helpers/isValidISOOffset.js +13 -0
- package/dist/dates/interfaces/IDTimezoneOffset.d.ts +1 -0
- package/dist/dates/interfaces/IDTimezoneOffset.js +1 -0
- package/dist/dates/interfaces/index.d.ts +1 -0
- package/dist/dates/interfaces/index.js +1 -0
- package/dist/filters/helpers/builder/getFilterBuilderGeneralConfig.js +1 -1
- package/dist/filters/helpers/common/index.d.ts +1 -0
- package/dist/filters/helpers/common/index.js +1 -0
- package/dist/filters/helpers/common/setTimezoneToFilters.d.ts +4 -0
- package/dist/filters/helpers/common/setTimezoneToFilters.js +13 -0
- package/dist/filters/interfaces/ui/IFUTransformFilterValuesSettings.d.ts +2 -0
- package/dist/filters/services/Filters.api.js +1 -1
- package/dist/general/index.d.ts +1 -0
- package/dist/general/index.js +1 -0
- package/dist/general/numeric/getSign.d.ts +6 -0
- package/dist/general/numeric/getSign.js +8 -0
- package/dist/general/numeric/index.d.ts +1 -0
- package/dist/general/numeric/index.js +1 -0
- package/dist/interfaces/general/IWidgetConfig.d.ts +2 -1
- package/dist/qrvey/helpers/transformValue.js +24 -1
- package/dist/qrvey/interfaces/IBDataset.d.ts +2 -0
- package/dist/qrvey/interfaces/IBTimezone.d.ts +4 -0
- package/dist/qrvey/interfaces/IBTimezone.js +1 -0
- package/dist/qrvey/interfaces/IDataset.d.ts +3 -1
- package/dist/qrvey/interfaces/ITransformValueSettings.d.ts +2 -0
- package/dist/qrvey/interfaces/index.d.ts +1 -0
- package/dist/qrvey/interfaces/index.js +1 -0
- package/dist/services/adapters/BDatasetsToUIDatasets.adapter.js +9 -5
- package/dist/services/helpers/Request.d.ts +1 -1
- package/dist/services/helpers/Request.js +6 -5
- package/package.json +5 -5
- package/dist/cjs/dates/helpers/adjustTimezone.d.ts +0 -6
- package/dist/cjs/dates/helpers/adjustTimezone.js +0 -19
- package/dist/dates/helpers/adjustTimezone.d.ts +0 -6
- package/dist/dates/helpers/adjustTimezone.js +0 -15
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ISOToNumericOffset = void 0;
|
|
4
|
+
const isNaNV2_1 = require("../../general/mix/isNaNV2");
|
|
5
|
+
const isValidISOOffset_1 = require("../helpers/isValidISOOffset");
|
|
6
|
+
/**
|
|
7
|
+
* Gets the numeric offset (minutes) from the ISO offset (string)
|
|
8
|
+
* @param {string} offset the timezone offset
|
|
9
|
+
* @returns {number} the offset in minutes
|
|
10
|
+
*/
|
|
11
|
+
function ISOToNumericOffset(offset) {
|
|
12
|
+
if (typeof offset === "number" || !(0, isNaNV2_1.isNaNV2)(offset))
|
|
13
|
+
return +offset;
|
|
14
|
+
if (!(0, isValidISOOffset_1.isValidISOOffset)(offset))
|
|
15
|
+
return 0;
|
|
16
|
+
const [hours, minutes] = offset.split(":").map(Number);
|
|
17
|
+
return hours * 60 + minutes;
|
|
18
|
+
}
|
|
19
|
+
exports.ISOToNumericOffset = ISOToNumericOffset;
|
|
@@ -5,8 +5,10 @@ export * from "./dateToQuarterYear";
|
|
|
5
5
|
export * from "./dateToWeekYear";
|
|
6
6
|
export * from "./dateToYear";
|
|
7
7
|
export * from "./hmsToDate";
|
|
8
|
+
export * from "./ISOToNumericOffset";
|
|
8
9
|
export * from "./mdyDateToDate";
|
|
9
10
|
export * from "./monthYearToDate";
|
|
11
|
+
export * from "./numericOffsetToISO";
|
|
10
12
|
export * from "./quarterYearToDate";
|
|
11
13
|
export * from "./weekYearToDate";
|
|
12
14
|
export * from "./yearToDate";
|
|
@@ -21,8 +21,10 @@ __exportStar(require("./dateToQuarterYear"), exports);
|
|
|
21
21
|
__exportStar(require("./dateToWeekYear"), exports);
|
|
22
22
|
__exportStar(require("./dateToYear"), exports);
|
|
23
23
|
__exportStar(require("./hmsToDate"), exports);
|
|
24
|
+
__exportStar(require("./ISOToNumericOffset"), exports);
|
|
24
25
|
__exportStar(require("./mdyDateToDate"), exports);
|
|
25
26
|
__exportStar(require("./monthYearToDate"), exports);
|
|
27
|
+
__exportStar(require("./numericOffsetToISO"), exports);
|
|
26
28
|
__exportStar(require("./quarterYearToDate"), exports);
|
|
27
29
|
__exportStar(require("./weekYearToDate"), exports);
|
|
28
30
|
__exportStar(require("./yearToDate"), exports);
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.numericOffsetToISO = void 0;
|
|
4
|
+
const isNaNV2_1 = require("../../general/mix/isNaNV2");
|
|
5
|
+
const getSign_1 = require("../../general/numeric/getSign");
|
|
6
|
+
const padLeadingZeros_1 = require("../../general/string/padLeadingZeros");
|
|
7
|
+
const isValidISOOffset_1 = require("../helpers/isValidISOOffset");
|
|
8
|
+
/**
|
|
9
|
+
* Gets the ISO offset From the numeric offset (minutes)
|
|
10
|
+
* @param {number} offset the timezone offset
|
|
11
|
+
* @returns {string} the offset in minutes
|
|
12
|
+
*/
|
|
13
|
+
function numericOffsetToISO(offset) {
|
|
14
|
+
let newOffset = offset;
|
|
15
|
+
if (typeof offset === "string" && (0, isValidISOOffset_1.isValidISOOffset)(offset))
|
|
16
|
+
return String(newOffset);
|
|
17
|
+
if (typeof offset !== "number" && (0, isNaNV2_1.isNaNV2)(offset))
|
|
18
|
+
return "+00:00";
|
|
19
|
+
if (typeof offset === "string" && !(0, isNaNV2_1.isNaNV2)(offset))
|
|
20
|
+
newOffset = +offset;
|
|
21
|
+
const sign = (0, getSign_1.getSign)(newOffset);
|
|
22
|
+
newOffset = Math.abs(newOffset);
|
|
23
|
+
const hours = (0, padLeadingZeros_1.padLeadingZeros)(Math.floor(newOffset / 60), 2);
|
|
24
|
+
const minutes = (0, padLeadingZeros_1.padLeadingZeros)(newOffset % 60, 2);
|
|
25
|
+
return `${sign}${hours}:${minutes}`;
|
|
26
|
+
}
|
|
27
|
+
exports.numericOffsetToISO = numericOffsetToISO;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const ISO_8601_REGEX: RegExp;
|
|
@@ -38,6 +38,7 @@ export * from "./DATE_YEAR_MONTHS_MMMM";
|
|
|
38
38
|
export * from "./DATE_YEAR_QUARTERS";
|
|
39
39
|
export * from "./DATE_YEAR_QUARTERS_RANGE";
|
|
40
40
|
export * from "./DATETIME_COLUMN_FORMAT";
|
|
41
|
+
export * from "./ISO_8601_REGEX";
|
|
41
42
|
export * from "./TIME_GROUPING_PROPERTY_INFO_LIST";
|
|
42
43
|
export * from "./TIME_GROUPING_PROPERTY_INFO";
|
|
43
44
|
export * from "./TIME_GROUPING_PROPERTY_LABEL";
|
|
@@ -54,6 +54,7 @@ __exportStar(require("./DATE_YEAR_MONTHS_MMMM"), exports);
|
|
|
54
54
|
__exportStar(require("./DATE_YEAR_QUARTERS"), exports);
|
|
55
55
|
__exportStar(require("./DATE_YEAR_QUARTERS_RANGE"), exports);
|
|
56
56
|
__exportStar(require("./DATETIME_COLUMN_FORMAT"), exports);
|
|
57
|
+
__exportStar(require("./ISO_8601_REGEX"), exports);
|
|
57
58
|
__exportStar(require("./TIME_GROUPING_PROPERTY_INFO_LIST"), exports);
|
|
58
59
|
__exportStar(require("./TIME_GROUPING_PROPERTY_INFO"), exports);
|
|
59
60
|
__exportStar(require("./TIME_GROUPING_PROPERTY_LABEL"), exports);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gets a Date with the given offset of the Timezone.
|
|
3
|
+
* No given an offset the default is going to be set by the browser
|
|
4
|
+
* @param date String, object or millisencond number of the date
|
|
5
|
+
* @returns updated Date object
|
|
6
|
+
*/
|
|
7
|
+
export declare function getDateByTimezoneOffset(date: string | Date | number, offset?: number | string): Date;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDateByTimezoneOffset = void 0;
|
|
4
|
+
const isEmpty_1 = require("../../general/mix/isEmpty");
|
|
5
|
+
const ISOToNumericOffset_1 = require("../adapters/ISOToNumericOffset");
|
|
6
|
+
const DATE_FORMAT_1 = require("../constants/DATE_FORMAT");
|
|
7
|
+
const isValidPotentialDate_1 = require("./isValidPotentialDate");
|
|
8
|
+
const validateDate_1 = require("./validateDate");
|
|
9
|
+
/**
|
|
10
|
+
* Gets a Date with the given offset of the Timezone.
|
|
11
|
+
* No given an offset the default is going to be set by the browser
|
|
12
|
+
* @param date String, object or millisencond number of the date
|
|
13
|
+
* @returns updated Date object
|
|
14
|
+
*/
|
|
15
|
+
function getDateByTimezoneOffset(date, offset) {
|
|
16
|
+
if (!(0, isValidPotentialDate_1.isValidPotentialDate)(date) ||
|
|
17
|
+
(typeof date === "string" && !(0, validateDate_1.validateDate)(date, DATE_FORMAT_1.DATE_FORMAT.DAY)))
|
|
18
|
+
return date;
|
|
19
|
+
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);
|
|
24
|
+
}
|
|
25
|
+
exports.getDateByTimezoneOffset = getDateByTimezoneOffset;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export * from "./adjustTimezone";
|
|
2
1
|
export * from "./areIncludedDateTokens";
|
|
3
2
|
export * from "./getDateByDateFormat";
|
|
4
3
|
export * from "./getDateFormatByProperty";
|
|
@@ -10,4 +9,5 @@ export * from "./getSeparatorByDateFormat";
|
|
|
10
9
|
export * from "./getWeek";
|
|
11
10
|
export * from "./isValidDateObject";
|
|
12
11
|
export * from "./isValidPotentialDate";
|
|
12
|
+
export * from "./getDateByTimezoneOffset";
|
|
13
13
|
export * from "./validateDate";
|
|
@@ -14,7 +14,6 @@ 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("./adjustTimezone"), exports);
|
|
18
17
|
__exportStar(require("./areIncludedDateTokens"), exports);
|
|
19
18
|
__exportStar(require("./getDateByDateFormat"), exports);
|
|
20
19
|
__exportStar(require("./getDateFormatByProperty"), exports);
|
|
@@ -26,4 +25,5 @@ __exportStar(require("./getSeparatorByDateFormat"), exports);
|
|
|
26
25
|
__exportStar(require("./getWeek"), exports);
|
|
27
26
|
__exportStar(require("./isValidDateObject"), exports);
|
|
28
27
|
__exportStar(require("./isValidPotentialDate"), exports);
|
|
28
|
+
__exportStar(require("./getDateByTimezoneOffset"), exports);
|
|
29
29
|
__exportStar(require("./validateDate"), exports);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validate if offset uses a valid ISO 8601 offset specification
|
|
3
|
+
* - If the given offset is a numeric, returns an invalid flag.
|
|
4
|
+
* @param {string} offset the timezone offset
|
|
5
|
+
* @returns {boolean} true if the given offset is valid
|
|
6
|
+
*/
|
|
7
|
+
export declare function isValidISOOffset(offset: number | string): boolean;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isValidISOOffset = void 0;
|
|
4
|
+
const ISO_8601_REGEX_1 = require("../constants/ISO_8601_REGEX");
|
|
5
|
+
/**
|
|
6
|
+
* Validate if offset uses a valid ISO 8601 offset specification
|
|
7
|
+
* - If the given offset is a numeric, returns an invalid flag.
|
|
8
|
+
* @param {string} offset the timezone offset
|
|
9
|
+
* @returns {boolean} true if the given offset is valid
|
|
10
|
+
*/
|
|
11
|
+
function isValidISOOffset(offset) {
|
|
12
|
+
if (typeof offset !== "string")
|
|
13
|
+
return false;
|
|
14
|
+
const newOffset = (offset || "").trim();
|
|
15
|
+
return ISO_8601_REGEX_1.ISO_8601_REGEX.test(newOffset);
|
|
16
|
+
}
|
|
17
|
+
exports.isValidISOOffset = isValidISOOffset;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type IDTimezoneOffset = number | string;
|
|
@@ -17,3 +17,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./IDateFormat"), exports);
|
|
18
18
|
__exportStar(require("./IDateGroupingProperty"), exports);
|
|
19
19
|
__exportStar(require("./IDFDateToHmsSettings"), exports);
|
|
20
|
+
__exportStar(require("./IDTimezoneOffset"), exports);
|
|
@@ -14,7 +14,7 @@ function getFilterBuilderGeneralConfig(config = {}) {
|
|
|
14
14
|
domain: config.domain,
|
|
15
15
|
i18n: config.i18n,
|
|
16
16
|
qv_token: config.qv_token,
|
|
17
|
-
|
|
17
|
+
timezoneOffset: (0, getAttribute_1.getAttribute)(config, "timezone_offset") || config.timezoneOffset,
|
|
18
18
|
userid: (0, getAttribute_1.getAttribute)(config, "user_id") || config.userid,
|
|
19
19
|
};
|
|
20
20
|
}
|
|
@@ -44,3 +44,4 @@ __exportStar(require("./mergeValues"), exports);
|
|
|
44
44
|
__exportStar(require("./resolveDatasetConditions"), exports);
|
|
45
45
|
__exportStar(require("./resolveFilterConditions"), exports);
|
|
46
46
|
__exportStar(require("./resolveScopeConditions"), exports);
|
|
47
|
+
__exportStar(require("./setTimezoneToFilters"), exports);
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { IDTimezoneOffset } from "../../../dates/interfaces/IDTimezoneOffset";
|
|
2
|
+
import { IFSData } from "../../interfaces/common/IFSData";
|
|
3
|
+
import { IFUData } from "../../interfaces/ui/IFUData";
|
|
4
|
+
export declare function setTimezoneToFilters(filterData: IFSData, timezoneOffset: IDTimezoneOffset): IFUData | IFSData;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setTimezoneToFilters = void 0;
|
|
4
|
+
const isEmpty_1 = require("../../../general/mix/isEmpty");
|
|
5
|
+
const transformFilterValues_1 = require("../ui/transformFilterValues");
|
|
6
|
+
function setTimezoneToFilters(filterData, timezoneOffset) {
|
|
7
|
+
if ((0, isEmpty_1.isEmpty)(filterData) ||
|
|
8
|
+
(0, isEmpty_1.isEmpty)(filterData.scopes) ||
|
|
9
|
+
!Array.isArray(filterData.scopes))
|
|
10
|
+
return filterData;
|
|
11
|
+
return Object.assign(Object.assign({}, filterData), { scopes: filterData.scopes.map((scope) => (Object.assign(Object.assign({}, scope), { datasets: scope.datasets.map((dataset) => (Object.assign(Object.assign({}, dataset), { filters: dataset.filters.map((filter) => (Object.assign(Object.assign({}, filter), { values: (0, transformFilterValues_1.transformFilterValues)(filter, {
|
|
12
|
+
timezoneOffset,
|
|
13
|
+
translate: undefined,
|
|
14
|
+
i18n: undefined,
|
|
15
|
+
}) }))) }))) }))) });
|
|
16
|
+
}
|
|
17
|
+
exports.setTimezoneToFilters = setTimezoneToFilters;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { IDTimezoneOffset } from "../../../dates/interfaces/IDTimezoneOffset";
|
|
1
2
|
import { II18nConfig } from "../../../globalization/interfaces/II18nConfig";
|
|
2
3
|
import { II18nServiceTranslate } from "../../../globalization/interfaces/II18nServiceTranslate";
|
|
3
4
|
export interface IFUTransformFilterValuesSettings {
|
|
5
|
+
timezoneOffset: IDTimezoneOffset;
|
|
4
6
|
translate: II18nServiceTranslate;
|
|
5
7
|
i18n: II18nConfig;
|
|
6
8
|
suffixTranslateLabel?: string;
|
|
@@ -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), { timezoneOffset: 0 }), FiltersApi.getFilter(config), FiltersApi.getLogic(config), FiltersApi.getChartRequest(config), resetApi);
|
|
107
107
|
});
|
|
108
108
|
}
|
|
109
109
|
static getLogic(config) {
|
|
@@ -17,5 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./array/index"), exports);
|
|
18
18
|
__exportStar(require("./function/index"), exports);
|
|
19
19
|
__exportStar(require("./mix/index"), exports);
|
|
20
|
+
__exportStar(require("./numeric/index"), exports);
|
|
20
21
|
__exportStar(require("./object/index"), exports);
|
|
21
22
|
__exportStar(require("./string/index"), exports);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSign = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Gets the numeric sign of a given number
|
|
6
|
+
* @param {number} num the number
|
|
7
|
+
* @returns {string} an string with the sign
|
|
8
|
+
*/
|
|
9
|
+
function getSign(num) {
|
|
10
|
+
return Math.sign(num) > -1 ? "+" : "-";
|
|
11
|
+
}
|
|
12
|
+
exports.getSign = getSign;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./getSign";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./getSign"), exports);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { IDTimezoneOffset } from "../../dates/interfaces/IDTimezoneOffset";
|
|
1
2
|
import { II18nConfig } from "../../globalization/interfaces/II18nConfig";
|
|
2
3
|
export interface IWidgetConfig {
|
|
3
4
|
appid?: string;
|
|
@@ -5,6 +6,6 @@ export interface IWidgetConfig {
|
|
|
5
6
|
domain: string;
|
|
6
7
|
i18n?: II18nConfig;
|
|
7
8
|
qv_token?: string;
|
|
8
|
-
|
|
9
|
+
timezoneOffset?: IDTimezoneOffset;
|
|
9
10
|
userid?: string;
|
|
10
11
|
}
|
|
@@ -6,6 +6,10 @@ const isDateColumn_1 = require("../../columns/helpers/isDateColumn");
|
|
|
6
6
|
const isNumericalColumn_1 = require("../../columns/helpers/isNumericalColumn");
|
|
7
7
|
const DATE_GROUPING_PROPERTY_1 = require("../../dates/constants/DATE_GROUPING_PROPERTY");
|
|
8
8
|
const DATE_GROUPING_TIME_PROPERTY_1 = require("../../dates/constants/DATE_GROUPING_TIME_PROPERTY");
|
|
9
|
+
const getDateByDateFormat_1 = require("../../dates/helpers/getDateByDateFormat");
|
|
10
|
+
const getDateFormatByProperty_1 = require("../../dates/helpers/getDateFormatByProperty");
|
|
11
|
+
const getFormattedDateByFormat_1 = require("../../dates/helpers/getFormattedDateByFormat");
|
|
12
|
+
const getDateByTimezoneOffset_1 = require("../../dates/helpers/getDateByTimezoneOffset");
|
|
9
13
|
const format_1 = require("../../format/format");
|
|
10
14
|
const isEmpty_1 = require("../../general/mix/isEmpty");
|
|
11
15
|
const getI18nDateGroupLabel_1 = require("../../globalization/helpers/getI18nDateGroupLabel");
|
|
@@ -19,7 +23,8 @@ const getValueWithSuffixes_1 = require("./getValueWithSuffixes");
|
|
|
19
23
|
function transformValue(value, settings) {
|
|
20
24
|
if ((0, isEmpty_1.isEmpty)(value))
|
|
21
25
|
return value;
|
|
22
|
-
const
|
|
26
|
+
const timezonedValue = getTimezoneValue(value, settings);
|
|
27
|
+
const valueWithI18n = (0, getI18nDateGroupLabel_1.getI18nDateGroupLabel)(timezonedValue, settings.property, settings.translate);
|
|
23
28
|
const valueWithLocalization = (0, format_1.addFormat)(valueWithI18n, getOutputFormat(settings), getFormatConfig(settings));
|
|
24
29
|
return (0, getValueWithSuffixes_1.getValueWithSuffixes)(valueWithLocalization, {
|
|
25
30
|
suffixTranslateLabel: settings.suffixTranslateLabel,
|
|
@@ -27,6 +32,24 @@ function transformValue(value, settings) {
|
|
|
27
32
|
});
|
|
28
33
|
}
|
|
29
34
|
exports.transformValue = transformValue;
|
|
35
|
+
/**
|
|
36
|
+
* Gets a date value in the given timezone
|
|
37
|
+
* @param {string} value the date
|
|
38
|
+
* @param {ITransformValueSettings} settings The settings of the transformValue function
|
|
39
|
+
* @returns {string} A transformed value
|
|
40
|
+
*/
|
|
41
|
+
function getTimezoneValue(value, settings) {
|
|
42
|
+
const isDateTime = [
|
|
43
|
+
DATE_GROUPING_TIME_PROPERTY_1.DATE_GROUPING_TIME_PROPERTY.HOUR,
|
|
44
|
+
DATE_GROUPING_TIME_PROPERTY_1.DATE_GROUPING_TIME_PROPERTY.MINUTE,
|
|
45
|
+
DATE_GROUPING_TIME_PROPERTY_1.DATE_GROUPING_TIME_PROPERTY.SECOND,
|
|
46
|
+
].includes(settings.property);
|
|
47
|
+
if (isDateTime) {
|
|
48
|
+
const dateFormat = (0, getDateFormatByProperty_1.getDateFormatByProperty)(settings.property);
|
|
49
|
+
return (0, getFormattedDateByFormat_1.getFormattedDateByFormat)((0, getDateByTimezoneOffset_1.getDateByTimezoneOffset)((0, getDateByDateFormat_1.getDateByDateFormat)(value, dateFormat), settings === null || settings === void 0 ? void 0 : settings.timezoneOffset), dateFormat);
|
|
50
|
+
}
|
|
51
|
+
return value;
|
|
52
|
+
}
|
|
30
53
|
/**
|
|
31
54
|
* Gets the outputformat settings
|
|
32
55
|
* @param settings The settings of the transformValue function
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IBColumn } from "../../columns/interfaces/IBColumn";
|
|
2
|
+
import { IBTimezone } from "./IBTimezone";
|
|
2
3
|
/**
|
|
3
4
|
* Structure for Dataset in the frontend side of Qrvey App
|
|
4
5
|
*/
|
|
@@ -7,4 +8,5 @@ export interface IBDataset {
|
|
|
7
8
|
name?: string;
|
|
8
9
|
options?: IBColumn[];
|
|
9
10
|
qrveyid: string;
|
|
11
|
+
timezone?: IBTimezone;
|
|
10
12
|
}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { IColumn } from "../../columns/interfaces/IColumn";
|
|
2
|
+
import { IDTimezoneOffset } from "../../dates/interfaces/IDTimezoneOffset";
|
|
2
3
|
import { IBDataset } from "./IBDataset";
|
|
3
4
|
/**
|
|
4
5
|
* Structure for Dataset in the frontend side of Qrvey App
|
|
5
6
|
*/
|
|
6
|
-
export interface IDataset extends Omit<IBDataset, "name" | "options"> {
|
|
7
|
+
export interface IDataset extends Omit<IBDataset, "name" | "options" | "timezone"> {
|
|
7
8
|
label?: string;
|
|
8
9
|
options?: IColumn[];
|
|
10
|
+
timezone?: IDTimezoneOffset;
|
|
9
11
|
}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { IColumn } from "../../columns/interfaces/IColumn";
|
|
2
2
|
import { IColumnPropertyType } from "../../columns/interfaces/IColumnPropertyType";
|
|
3
|
+
import { IDTimezoneOffset } from "../../dates/interfaces/IDTimezoneOffset";
|
|
3
4
|
import { II18nConfig } from "../../globalization/interfaces/II18nConfig";
|
|
4
5
|
import { II18nServiceTranslate } from "../../globalization/interfaces/II18nServiceTranslate";
|
|
5
6
|
export interface ITransformValueSettings {
|
|
6
7
|
column: IColumn;
|
|
7
8
|
property: IColumnPropertyType;
|
|
9
|
+
timezoneOffset: IDTimezoneOffset;
|
|
8
10
|
translate: II18nServiceTranslate;
|
|
9
11
|
i18n: II18nConfig;
|
|
10
12
|
suffixTranslateLabel?: string;
|
|
@@ -4,6 +4,7 @@ export * from "./IBDataset";
|
|
|
4
4
|
export * from "./IBModel";
|
|
5
5
|
export * from "./IBModelBranchesMapBranch";
|
|
6
6
|
export * from "./IBModelData";
|
|
7
|
+
export * from "./IBTimezone";
|
|
7
8
|
export * from "./ICalculation";
|
|
8
9
|
export * from "./ICalculationInfo";
|
|
9
10
|
export * from "./ICalculationType";
|
|
@@ -20,6 +20,7 @@ __exportStar(require("./IBDataset"), exports);
|
|
|
20
20
|
__exportStar(require("./IBModel"), exports);
|
|
21
21
|
__exportStar(require("./IBModelBranchesMapBranch"), exports);
|
|
22
22
|
__exportStar(require("./IBModelData"), exports);
|
|
23
|
+
__exportStar(require("./IBTimezone"), exports);
|
|
23
24
|
__exportStar(require("./ICalculation"), exports);
|
|
24
25
|
__exportStar(require("./ICalculationInfo"), exports);
|
|
25
26
|
__exportStar(require("./ICalculationType"), exports);
|
|
@@ -4,10 +4,14 @@ exports.BDatasetsToUIDatasets = void 0;
|
|
|
4
4
|
const getAttribute_1 = require("../../general/object/getAttribute");
|
|
5
5
|
const BColumnsToUIColumns_adapter_1 = require("./BColumnsToUIColumns.adapter");
|
|
6
6
|
function BDatasetsToUIDatasets(datasets = []) {
|
|
7
|
-
return datasets.map((dataset) =>
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
return datasets.map((dataset) => {
|
|
8
|
+
var _a, _b;
|
|
9
|
+
return ({
|
|
10
|
+
qrveyid: (0, getAttribute_1.getAttribute)(dataset, "qrvey_id"),
|
|
11
|
+
label: dataset.name,
|
|
12
|
+
options: (0, BColumnsToUIColumns_adapter_1.BColumnsToUIColumns)(dataset.options, dataset),
|
|
13
|
+
timezone: ((_a = dataset.timezone) === null || _a === void 0 ? void 0 : _a.offset) || ((_b = dataset.timezone) === null || _b === void 0 ? void 0 : _b.numericOffset),
|
|
14
|
+
});
|
|
15
|
+
});
|
|
12
16
|
}
|
|
13
17
|
exports.BDatasetsToUIDatasets = BDatasetsToUIDatasets;
|
|
@@ -2,7 +2,7 @@ export default class Request {
|
|
|
2
2
|
static checkStatus(response: any): Promise<any>;
|
|
3
3
|
static hasQvToken(config: any): boolean;
|
|
4
4
|
static getQvToken(config: any): any;
|
|
5
|
-
static
|
|
5
|
+
static getTimezoneOffset(config: any): string;
|
|
6
6
|
static hasApiKey(config: any): boolean;
|
|
7
7
|
static getApiKey(config: any): any;
|
|
8
8
|
static makeUrl(config: any, url: any, params?: any): string;
|
|
@@ -9,6 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const numericOffsetToISO_1 = require("../../dates/adapters/numericOffsetToISO");
|
|
12
13
|
const getAttribute_1 = require("../../general/object/getAttribute");
|
|
13
14
|
const serialize_1 = require("../../general/object/serialize");
|
|
14
15
|
const parseUrl_1 = require("../../general/string/parseUrl");
|
|
@@ -26,8 +27,8 @@ class Request {
|
|
|
26
27
|
static getQvToken(config) {
|
|
27
28
|
return (0, getAttribute_1.getAttribute)(config, "qv_token");
|
|
28
29
|
}
|
|
29
|
-
static
|
|
30
|
-
return (0, getAttribute_1.getAttribute)(config, "
|
|
30
|
+
static getTimezoneOffset(config) {
|
|
31
|
+
return (0, numericOffsetToISO_1.numericOffsetToISO)((0, getAttribute_1.getAttribute)(config, "timezone_offset"));
|
|
31
32
|
}
|
|
32
33
|
static hasApiKey(config) {
|
|
33
34
|
return !!this.getApiKey(config);
|
|
@@ -70,9 +71,9 @@ class Request {
|
|
|
70
71
|
cfg.credentials = "include";
|
|
71
72
|
}
|
|
72
73
|
}
|
|
73
|
-
const
|
|
74
|
-
if (
|
|
75
|
-
cfg.headers["q-timezone-control"] = `offset=${
|
|
74
|
+
const timezoneOffset = this.getTimezoneOffset(reqData.config);
|
|
75
|
+
if (timezoneOffset) {
|
|
76
|
+
cfg.headers["q-timezone-control"] = `offset=${timezoneOffset}`;
|
|
76
77
|
}
|
|
77
78
|
// AbortSignal (https://developers.google.com/web/updates/2017/09/abortable-fetch)
|
|
78
79
|
if (reqData.config && reqData.config.signal) {
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { isNaNV2 } from "../../general/mix/isNaNV2";
|
|
2
|
+
import { isValidISOOffset } from "../helpers/isValidISOOffset";
|
|
3
|
+
/**
|
|
4
|
+
* Gets the numeric offset (minutes) from the ISO offset (string)
|
|
5
|
+
* @param {string} offset the timezone offset
|
|
6
|
+
* @returns {number} the offset in minutes
|
|
7
|
+
*/
|
|
8
|
+
export function ISOToNumericOffset(offset) {
|
|
9
|
+
if (typeof offset === "number" || !isNaNV2(offset))
|
|
10
|
+
return +offset;
|
|
11
|
+
if (!isValidISOOffset(offset))
|
|
12
|
+
return 0;
|
|
13
|
+
const [hours, minutes] = offset.split(":").map(Number);
|
|
14
|
+
return hours * 60 + minutes;
|
|
15
|
+
}
|
|
@@ -5,8 +5,10 @@ export * from "./dateToQuarterYear";
|
|
|
5
5
|
export * from "./dateToWeekYear";
|
|
6
6
|
export * from "./dateToYear";
|
|
7
7
|
export * from "./hmsToDate";
|
|
8
|
+
export * from "./ISOToNumericOffset";
|
|
8
9
|
export * from "./mdyDateToDate";
|
|
9
10
|
export * from "./monthYearToDate";
|
|
11
|
+
export * from "./numericOffsetToISO";
|
|
10
12
|
export * from "./quarterYearToDate";
|
|
11
13
|
export * from "./weekYearToDate";
|
|
12
14
|
export * from "./yearToDate";
|
|
@@ -5,8 +5,10 @@ export * from "./dateToQuarterYear";
|
|
|
5
5
|
export * from "./dateToWeekYear";
|
|
6
6
|
export * from "./dateToYear";
|
|
7
7
|
export * from "./hmsToDate";
|
|
8
|
+
export * from "./ISOToNumericOffset";
|
|
8
9
|
export * from "./mdyDateToDate";
|
|
9
10
|
export * from "./monthYearToDate";
|
|
11
|
+
export * from "./numericOffsetToISO";
|
|
10
12
|
export * from "./quarterYearToDate";
|
|
11
13
|
export * from "./weekYearToDate";
|
|
12
14
|
export * from "./yearToDate";
|