@qrvey/utils 1.15.0-8 → 1.15.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/columns/constants/COLUMN_ICON.js +32 -32
- package/dist/cjs/columns/helpers/index.d.ts +1 -0
- package/dist/cjs/columns/helpers/index.js +1 -0
- package/dist/cjs/columns/helpers/isNumericalColumn.d.ts +1 -1
- package/dist/cjs/columns/helpers/isNumericalColumn.js +1 -1
- package/dist/cjs/columns/helpers/isStringColumn.d.ts +7 -0
- package/dist/cjs/columns/helpers/isStringColumn.js +19 -0
- package/dist/cjs/dates/relative/RelativeStatementAdapter.js +2 -1
- package/dist/cjs/elements/helpers/fixed.d.ts +96 -0
- package/dist/cjs/elements/helpers/fixed.js +248 -0
- package/dist/cjs/elements/helpers/gridStrategy.d.ts +29 -0
- package/dist/cjs/elements/helpers/gridStrategy.js +83 -0
- package/dist/cjs/elements/helpers/index.d.ts +3 -0
- package/dist/cjs/elements/helpers/index.js +22 -0
- package/dist/cjs/elements/helpers/responsive.d.ts +87 -0
- package/dist/cjs/elements/helpers/responsive.js +166 -0
- package/dist/cjs/elements/index.d.ts +2 -0
- package/dist/cjs/elements/index.js +18 -0
- package/dist/cjs/elements/interfaces/ICanvasGrid.d.ts +5 -0
- package/dist/cjs/elements/interfaces/ICanvasGrid.js +9 -0
- package/dist/cjs/elements/interfaces/IFixedPosition.d.ts +5 -0
- package/dist/cjs/elements/interfaces/IFixedPosition.js +2 -0
- package/dist/cjs/elements/interfaces/IVemCore.d.ts +29 -0
- package/dist/cjs/elements/interfaces/IVemCore.js +3 -0
- package/dist/cjs/elements/interfaces/IVemPosition.d.ts +44 -0
- package/dist/cjs/elements/interfaces/IVemPosition.js +8 -0
- package/dist/cjs/elements/interfaces/index.d.ts +4 -0
- package/dist/cjs/elements/interfaces/index.js +20 -0
- package/dist/cjs/elements/utils/element.d.ts +4 -0
- package/dist/cjs/elements/utils/element.js +28 -0
- package/dist/cjs/elements/utils/fixed.position.d.ts +12 -0
- package/dist/cjs/elements/utils/fixed.position.js +86 -0
- package/dist/cjs/elements/utils/general.d.ts +15 -0
- package/dist/cjs/elements/utils/general.js +20 -0
- package/dist/cjs/elements/utils/overlap.d.ts +63 -0
- package/dist/cjs/elements/utils/overlap.js +99 -0
- package/dist/cjs/elements/utils/position.d.ts +4 -0
- package/dist/cjs/elements/utils/position.js +5 -0
- package/dist/cjs/filters/adapters/FDToLogic.js +2 -1
- package/dist/cjs/filters/helpers/backend/buildExpression.js +1 -0
- package/dist/cjs/filters/helpers/backend/buildFilters.d.ts +5 -0
- package/dist/cjs/filters/helpers/backend/buildFilters.js +23 -1
- package/dist/cjs/filters/helpers/backend/getBackendValues.js +4 -1
- package/dist/cjs/filters/helpers/getAvailableScopesIDsByConfig.js +1 -0
- package/dist/cjs/filters/helpers/settings/getFilterSettings.js +1 -1
- package/dist/cjs/filters/interfaces/backend/IFBExpression.js +0 -1
- package/dist/cjs/general/array/getUniqueSimpleArray.d.ts +6 -0
- package/dist/cjs/general/array/getUniqueSimpleArray.js +14 -0
- package/dist/cjs/general/array/index.d.ts +1 -0
- package/dist/cjs/general/array/index.js +1 -0
- package/dist/cjs/general/string/index.d.ts +4 -0
- package/dist/cjs/general/string/index.js +4 -0
- package/dist/cjs/general/string/secureHTML.d.ts +8 -0
- package/dist/cjs/general/string/secureHTML.js +13 -0
- package/dist/cjs/general/string/strategies/XSSEstrictedSanitizer.d.ts +8 -0
- package/dist/cjs/general/string/strategies/XSSEstrictedSanitizer.js +23 -0
- package/dist/cjs/general/string/strategies/XSSSanitizer.d.ts +8 -0
- package/dist/cjs/general/string/strategies/XSSSanitizer.js +19 -0
- package/dist/cjs/general/string/urlValidator.d.ts +10 -0
- package/dist/cjs/general/string/urlValidator.js +38 -0
- package/dist/cjs/globalization/interfaces/chart_builder/II18nChartBuilderSorting.d.ts +2 -0
- package/dist/cjs/globalization/interfaces/export/II18nExportingModal.d.ts +6 -0
- package/dist/cjs/globalization/interfaces/export/II18nExportingModalApplyButtonLabel.d.ts +1 -0
- package/dist/cjs/globalization/labels/chart_builder/I18N_CHART_BUILDER_GENERAL_OPTIONS.js +2 -0
- package/dist/cjs/globalization/labels/export/I18N_EXPORT_MODAL.js +10 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/interfaces/SatinizerStrategy.d.ts +3 -0
- package/dist/cjs/interfaces/SatinizerStrategy.js +2 -0
- package/dist/cjs/themes/constants/AUTOMATIC_GLOBAL_CSS_VARIABLES_FOR_LIGHT.js +3 -3
- package/dist/columns/constants/COLUMN_ICON.js +32 -32
- package/dist/columns/helpers/index.d.ts +1 -0
- package/dist/columns/helpers/index.js +1 -0
- package/dist/columns/helpers/isNumericalColumn.d.ts +1 -1
- package/dist/columns/helpers/isNumericalColumn.js +1 -1
- package/dist/columns/helpers/isStringColumn.d.ts +7 -0
- package/dist/columns/helpers/isStringColumn.js +15 -0
- package/dist/dates/relative/RelativeStatementAdapter.js +2 -1
- package/dist/elements/helpers/fixed.d.ts +96 -0
- package/dist/elements/helpers/fixed.js +236 -0
- package/dist/elements/helpers/gridStrategy.d.ts +29 -0
- package/dist/elements/helpers/gridStrategy.js +78 -0
- package/dist/elements/helpers/index.d.ts +3 -0
- package/dist/elements/helpers/index.js +3 -0
- package/dist/elements/helpers/responsive.d.ts +87 -0
- package/dist/elements/helpers/responsive.js +155 -0
- package/dist/elements/index.d.ts +2 -0
- package/dist/elements/index.js +2 -0
- package/dist/elements/interfaces/ICanvasGrid.d.ts +5 -0
- package/dist/elements/interfaces/ICanvasGrid.js +6 -0
- package/dist/elements/interfaces/IFixedPosition.d.ts +5 -0
- package/dist/elements/interfaces/IFixedPosition.js +1 -0
- package/dist/elements/interfaces/IVemCore.d.ts +29 -0
- package/dist/elements/interfaces/IVemCore.js +1 -0
- package/dist/elements/interfaces/IVemPosition.d.ts +44 -0
- package/dist/elements/interfaces/IVemPosition.js +5 -0
- package/dist/elements/interfaces/index.d.ts +4 -0
- package/dist/elements/interfaces/index.js +4 -0
- package/dist/elements/utils/element.d.ts +4 -0
- package/dist/elements/utils/element.js +24 -0
- package/dist/elements/utils/fixed.position.d.ts +12 -0
- package/dist/elements/utils/fixed.position.js +72 -0
- package/dist/elements/utils/general.d.ts +15 -0
- package/dist/elements/utils/general.js +16 -0
- package/dist/elements/utils/overlap.d.ts +63 -0
- package/dist/elements/utils/overlap.js +95 -0
- package/dist/elements/utils/position.d.ts +4 -0
- package/dist/elements/utils/position.js +1 -0
- package/dist/filters/adapters/FDToLogic.js +2 -1
- package/dist/filters/helpers/backend/buildExpression.js +1 -0
- package/dist/filters/helpers/backend/buildFilters.d.ts +5 -0
- package/dist/filters/helpers/backend/buildFilters.js +23 -1
- package/dist/filters/helpers/backend/getBackendValues.js +4 -1
- package/dist/filters/helpers/getAvailableScopesIDsByConfig.js +1 -0
- package/dist/filters/helpers/settings/getFilterSettings.js +1 -1
- package/dist/filters/interfaces/backend/IFBExpression.js +0 -1
- package/dist/general/array/getUniqueSimpleArray.d.ts +6 -0
- package/dist/general/array/getUniqueSimpleArray.js +10 -0
- package/dist/general/array/index.d.ts +1 -0
- package/dist/general/array/index.js +1 -0
- package/dist/general/string/index.d.ts +4 -0
- package/dist/general/string/index.js +4 -0
- package/dist/general/string/secureHTML.d.ts +8 -0
- package/dist/general/string/secureHTML.js +9 -0
- package/dist/general/string/strategies/XSSEstrictedSanitizer.d.ts +8 -0
- package/dist/general/string/strategies/XSSEstrictedSanitizer.js +19 -0
- package/dist/general/string/strategies/XSSSanitizer.d.ts +8 -0
- package/dist/general/string/strategies/XSSSanitizer.js +15 -0
- package/dist/general/string/urlValidator.d.ts +10 -0
- package/dist/general/string/urlValidator.js +34 -0
- package/dist/globalization/interfaces/chart_builder/II18nChartBuilderSorting.d.ts +2 -0
- package/dist/globalization/interfaces/export/II18nExportingModal.d.ts +6 -0
- package/dist/globalization/interfaces/export/II18nExportingModalApplyButtonLabel.d.ts +1 -0
- package/dist/globalization/labels/chart_builder/I18N_CHART_BUILDER_GENERAL_OPTIONS.js +2 -0
- package/dist/globalization/labels/export/I18N_EXPORT_MODAL.js +10 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/interfaces/SatinizerStrategy.d.ts +3 -0
- package/dist/interfaces/SatinizerStrategy.js +1 -0
- package/dist/themes/constants/AUTOMATIC_GLOBAL_CSS_VARIABLES_FOR_LIGHT.js +3 -3
- package/package.json +3 -2
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OverlapIntervalTree = void 0;
|
|
4
|
+
/**
|
|
5
|
+
*
|
|
6
|
+
*/
|
|
7
|
+
class OverlapIntervalTree {
|
|
8
|
+
/**
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
constructor() {
|
|
12
|
+
this.root = undefined;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
*
|
|
16
|
+
* @param startX
|
|
17
|
+
* @param endX
|
|
18
|
+
* @param startY
|
|
19
|
+
* @param endY
|
|
20
|
+
*/
|
|
21
|
+
insert(startX, endX, startY, endY) {
|
|
22
|
+
this.root = this._insert(this.root, startX, endX, startY, endY);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
*
|
|
26
|
+
* @param startX
|
|
27
|
+
* @param endX
|
|
28
|
+
* @param startY
|
|
29
|
+
* @param endY
|
|
30
|
+
*/
|
|
31
|
+
_initNode(startX, endX, startY, endY) {
|
|
32
|
+
return {
|
|
33
|
+
startX,
|
|
34
|
+
endX,
|
|
35
|
+
startY,
|
|
36
|
+
endY,
|
|
37
|
+
maxEndX: endX,
|
|
38
|
+
maxEndY: endY,
|
|
39
|
+
left: undefined,
|
|
40
|
+
right: undefined,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
*
|
|
45
|
+
* @param node
|
|
46
|
+
* @param startX
|
|
47
|
+
* @param endX
|
|
48
|
+
* @param startY
|
|
49
|
+
* @param endY
|
|
50
|
+
*/
|
|
51
|
+
_insert(node, startX, endX, startY, endY) {
|
|
52
|
+
if (node === undefined) {
|
|
53
|
+
return this._initNode(startX, endX, startY, endY);
|
|
54
|
+
}
|
|
55
|
+
if (startY < node.startY) {
|
|
56
|
+
node.left = this._insert(node.left, startX, endX, startY, endY);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
node.right = this._insert(node.right, startX, endX, startY, endY);
|
|
60
|
+
}
|
|
61
|
+
node.maxEndX = Math.max(node.maxEndX, endX);
|
|
62
|
+
node.maxEndY = Math.max(node.maxEndY, endY);
|
|
63
|
+
return node;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
*
|
|
67
|
+
* @param startX
|
|
68
|
+
* @param endX
|
|
69
|
+
* @param startY
|
|
70
|
+
* @param endY
|
|
71
|
+
*/
|
|
72
|
+
overlaps(startX, endX, startY, endY) {
|
|
73
|
+
return this._overlaps(this.root, startX, endX, startY, endY);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
*
|
|
77
|
+
* @param node
|
|
78
|
+
* @param startX
|
|
79
|
+
* @param endX
|
|
80
|
+
* @param startY
|
|
81
|
+
* @param endY
|
|
82
|
+
*/
|
|
83
|
+
_overlaps(node, startX, endX, startY, endY) {
|
|
84
|
+
if (node === undefined) {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
if (startX <= node.endX &&
|
|
88
|
+
endX >= node.startX &&
|
|
89
|
+
startY <= node.endY &&
|
|
90
|
+
endY >= node.startY) {
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
if (node.left !== undefined && node.left.maxEndY >= startY) {
|
|
94
|
+
return this._overlaps(node.left, startX, endX, startY, endY);
|
|
95
|
+
}
|
|
96
|
+
return this._overlaps(node.right, startX, endX, startY, endY);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
exports.OverlapIntervalTree = OverlapIntervalTree;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { CanvasDevice } from "../interfaces/ICanvasGrid";
|
|
2
|
+
import { Vem } from "../interfaces/IVemCore";
|
|
3
|
+
import { VemPosition, VemPositionType } from "../interfaces/IVemPosition";
|
|
4
|
+
export declare const setElementPosition: <T extends VemPositionType = VemPositionType>(baseElement: Vem<unknown, T>, type: T, device: CanvasDevice, position: VemPosition) => Vem<unknown, T>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setElementPosition = void 0;
|
|
4
|
+
const setElementPosition = (baseElement, type, device, position) => (Object.assign(Object.assign({}, baseElement), { position: Object.assign(Object.assign({}, baseElement.position), { [type]: Object.assign(Object.assign({}, baseElement.position[type]), { [device]: position }) }) }));
|
|
5
|
+
exports.setElementPosition = setElementPosition;
|
|
@@ -38,7 +38,8 @@ function getLogicBodyFromFD21(filterData) {
|
|
|
38
38
|
filters = filters.concat(expressions);
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
|
-
|
|
41
|
+
if (!(0, isEmpty_1.isEmpty)(filters))
|
|
42
|
+
logics.push(Object.assign(Object.assign({}, logic), { filters }));
|
|
42
43
|
return logics;
|
|
43
44
|
}, []);
|
|
44
45
|
}
|
|
@@ -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
|
+
qrveyid: filter.column.qrveyid,
|
|
19
20
|
questionType: filter.column.type,
|
|
20
21
|
property: (0, getBackendProperty_1.getBackendProperty)(filter),
|
|
21
22
|
validationType: (0, getBackendValidator_1.getBackendValidator)(filter),
|
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
import { IFBFilter } from "../../interfaces/backend/IFBFilter";
|
|
2
2
|
import { IFSFilter } from "../../interfaces/common/IFSFilter";
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* @param filters
|
|
6
|
+
* @param groupColumns
|
|
7
|
+
*/
|
|
3
8
|
export declare function buildFilters(filters: IFSFilter[], groupColumns?: boolean): IFBFilter[];
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.buildFilters = void 0;
|
|
4
|
+
const buildExpression_1 = require("./buildExpression");
|
|
4
5
|
const isEmpty_1 = require("../../../general/mix/isEmpty");
|
|
5
6
|
const hasProperty_1 = require("../../../general/object/hasProperty");
|
|
6
7
|
const FILTER_OPERATOR_1 = require("../../constants/common/FILTER_OPERATOR");
|
|
7
|
-
|
|
8
|
+
/**
|
|
9
|
+
*
|
|
10
|
+
* @param filters
|
|
11
|
+
* @param groupColumns
|
|
12
|
+
*/
|
|
8
13
|
function buildFilters(filters, groupColumns = false) {
|
|
9
14
|
const expression = numericExpression(filters, groupColumns);
|
|
10
15
|
const orOperators = expression.split("+");
|
|
@@ -28,6 +33,8 @@ function buildFilters(filters, groupColumns = false) {
|
|
|
28
33
|
return getColumnExpressions(group, getFilter);
|
|
29
34
|
})
|
|
30
35
|
.filter(Boolean);
|
|
36
|
+
if ((0, isEmpty_1.isEmpty)(expressions))
|
|
37
|
+
return [];
|
|
31
38
|
if (orOperators.length > 1) {
|
|
32
39
|
return [
|
|
33
40
|
{
|
|
@@ -42,6 +49,11 @@ function buildFilters(filters, groupColumns = false) {
|
|
|
42
49
|
return [{ operator: FILTER_OPERATOR_1.FILTER_OPERATOR.AND, expressions }];
|
|
43
50
|
}
|
|
44
51
|
exports.buildFilters = buildFilters;
|
|
52
|
+
/**
|
|
53
|
+
*
|
|
54
|
+
* @param group
|
|
55
|
+
* @param getFilter
|
|
56
|
+
*/
|
|
45
57
|
function getColumnExpressions(group, getFilter) {
|
|
46
58
|
const columnOrOperators = group.split("/");
|
|
47
59
|
if (columnOrOperators.length > 1) {
|
|
@@ -54,12 +66,22 @@ function getColumnExpressions(group, getFilter) {
|
|
|
54
66
|
}
|
|
55
67
|
return getFilter(group);
|
|
56
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
*
|
|
71
|
+
* @param operator
|
|
72
|
+
* @param priority
|
|
73
|
+
*/
|
|
57
74
|
function logicToNumeric(operator, priority = false) {
|
|
58
75
|
if (operator === FILTER_OPERATOR_1.FILTER_OPERATOR.AND) {
|
|
59
76
|
return "*";
|
|
60
77
|
}
|
|
61
78
|
return priority ? "/" : "+";
|
|
62
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
*
|
|
82
|
+
* @param filters
|
|
83
|
+
* @param groupColumns
|
|
84
|
+
*/
|
|
63
85
|
function numericExpression(filters, groupColumns = false) {
|
|
64
86
|
let expression = "";
|
|
65
87
|
filters.forEach((item, index) => {
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getBackendValues = void 0;
|
|
4
4
|
const COLUMN_1 = require("../../../columns/constants/COLUMN");
|
|
5
5
|
const flattenDeep_1 = require("../../../general/array/flattenDeep");
|
|
6
|
+
const isEmpty_1 = require("../../../general/mix/isEmpty");
|
|
6
7
|
const FILTER_VALIDATOR_1 = require("../../constants/common/FILTER_VALIDATOR");
|
|
7
8
|
const FILTER_VALIDATOR_INFO_1 = require("../../constants/common/FILTER_VALIDATOR_INFO");
|
|
8
9
|
const isRankingFilter_1 = require("../common/isRankingFilter");
|
|
@@ -86,7 +87,9 @@ function getNullValues(values, filter) {
|
|
|
86
87
|
return addValue ? [FILTER_VALIDATOR_INFO_1.FILTER_VALIDATOR_INFO[filter.validator].label] : [];
|
|
87
88
|
}
|
|
88
89
|
function getInValues(values) {
|
|
89
|
-
return values
|
|
90
|
+
return values
|
|
91
|
+
.map((value) => (Object.assign(Object.assign({}, getValue(value, value)), { anchor: (0, isEmpty_1.isEmpty)(value.anchor) ? undefined : value.anchor })))
|
|
92
|
+
.filter(Boolean);
|
|
90
93
|
}
|
|
91
94
|
function getValue(objectValue, value) {
|
|
92
95
|
return objectValue.enabled ? value : undefined;
|
|
@@ -15,6 +15,7 @@ function getAvailableScopesIDsByConfig(config = {}) {
|
|
|
15
15
|
tabid: (0, getAttribute_1.getAttribute)(config, "tab_id") || config.tabid,
|
|
16
16
|
pageid: (0, getAttribute_1.getAttribute)(config, "page_id") || config.pageid,
|
|
17
17
|
defaultid: (0, getAttribute_1.getAttribute)(config, "default_id") || config.defaultid,
|
|
18
|
+
panelid: (0, getAttribute_1.getAttribute)(config, "panel_id") || config.panelid,
|
|
18
19
|
};
|
|
19
20
|
}
|
|
20
21
|
exports.getAvailableScopesIDsByConfig = getAvailableScopesIDsByConfig;
|
|
@@ -19,7 +19,6 @@ const getScopesToDisplay_1 = require("./getScopesToDisplay");
|
|
|
19
19
|
*/
|
|
20
20
|
function getFilterSettings(filterSettings, allowedScopes = [], otherSettings) {
|
|
21
21
|
let settings = (0, mergeDeep_1.mergeDeep)(FILTER_SETTINGS_DEFAULT_1.FILTER_SETTINGS_DEFAULT, (0, objectCopy_1.objectCopy)(filterSettings));
|
|
22
|
-
settings = (0, mergeDeep_1.mergeDeep)(settings, otherSettings);
|
|
23
22
|
const scopesSettings = (0, getScopesToDisplay_1.getScopesToDisplay)(settings).filter((scope) => allowedScopes.includes(scope.id));
|
|
24
23
|
if (scopesSettings.length > 1) {
|
|
25
24
|
settings = getFilterSettingsByMultipleScopes(settings, allowedScopes);
|
|
@@ -30,6 +29,7 @@ function getFilterSettings(filterSettings, allowedScopes = [], otherSettings) {
|
|
|
30
29
|
else {
|
|
31
30
|
settings = getFilterSettingsByNoScopes(settings);
|
|
32
31
|
}
|
|
32
|
+
settings = (0, mergeDeep_1.mergeDeep)(settings, otherSettings);
|
|
33
33
|
return settings;
|
|
34
34
|
}
|
|
35
35
|
exports.getFilterSettings = getFilterSettings;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getUniqueSimpleArray = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Get unique vaues from an Array of primitive JS types
|
|
6
|
+
* @param arr Array of primitive types
|
|
7
|
+
* @returns the new array with unique items
|
|
8
|
+
*/
|
|
9
|
+
function getUniqueSimpleArray(arr) {
|
|
10
|
+
if (!Array.isArray(arr))
|
|
11
|
+
return arr;
|
|
12
|
+
return Array.from(new Set(arr));
|
|
13
|
+
}
|
|
14
|
+
exports.getUniqueSimpleArray = getUniqueSimpleArray;
|
|
@@ -5,6 +5,7 @@ export * from "./getArrayByProperty";
|
|
|
5
5
|
export * from "./filterNestedTree";
|
|
6
6
|
export * from "./getFirstIndexFromArray";
|
|
7
7
|
export * from "./getUniqueArray";
|
|
8
|
+
export * from "./getUniqueSimpleArray";
|
|
8
9
|
export * from "./howManyByParam";
|
|
9
10
|
export * from "./getLastIndexFromArray";
|
|
10
11
|
export * from "./intersectObjectArrays";
|
|
@@ -21,6 +21,7 @@ __exportStar(require("./getArrayByProperty"), exports);
|
|
|
21
21
|
__exportStar(require("./filterNestedTree"), exports);
|
|
22
22
|
__exportStar(require("./getFirstIndexFromArray"), exports);
|
|
23
23
|
__exportStar(require("./getUniqueArray"), exports);
|
|
24
|
+
__exportStar(require("./getUniqueSimpleArray"), exports);
|
|
24
25
|
__exportStar(require("./howManyByParam"), exports);
|
|
25
26
|
__exportStar(require("./getLastIndexFromArray"), exports);
|
|
26
27
|
__exportStar(require("./intersectObjectArrays"), exports);
|
|
@@ -2,3 +2,7 @@ export * from "./capitalize";
|
|
|
2
2
|
export * from "./padLeadingZeros";
|
|
3
3
|
export * from "./parseUrl";
|
|
4
4
|
export * from "./camelize";
|
|
5
|
+
export * from "./secureHTML";
|
|
6
|
+
export * from "./strategies/XSSSanitizer";
|
|
7
|
+
export * from "./strategies/XSSEstrictedSanitizer";
|
|
8
|
+
export * from "./urlValidator";
|
|
@@ -18,3 +18,7 @@ __exportStar(require("./capitalize"), exports);
|
|
|
18
18
|
__exportStar(require("./padLeadingZeros"), exports);
|
|
19
19
|
__exportStar(require("./parseUrl"), exports);
|
|
20
20
|
__exportStar(require("./camelize"), exports);
|
|
21
|
+
__exportStar(require("./secureHTML"), exports);
|
|
22
|
+
__exportStar(require("./strategies/XSSSanitizer"), exports);
|
|
23
|
+
__exportStar(require("./strategies/XSSEstrictedSanitizer"), exports);
|
|
24
|
+
__exportStar(require("./urlValidator"), exports);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { SanitizerStrategy } from "../../interfaces/SatinizerStrategy";
|
|
2
|
+
/**
|
|
3
|
+
* Sanitizes HTML using the provided strategy.
|
|
4
|
+
* @param {string} html - HTML to sanitize.
|
|
5
|
+
* @param {SanitizerStrategy} sanitizer - Sanitization strategy.
|
|
6
|
+
* @returns {string} - Sanitized HTML.
|
|
7
|
+
*/
|
|
8
|
+
export declare const secureHTML: (html: string, sanitizer: SanitizerStrategy) => string;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.secureHTML = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Sanitizes HTML using the provided strategy.
|
|
6
|
+
* @param {string} html - HTML to sanitize.
|
|
7
|
+
* @param {SanitizerStrategy} sanitizer - Sanitization strategy.
|
|
8
|
+
* @returns {string} - Sanitized HTML.
|
|
9
|
+
*/
|
|
10
|
+
const secureHTML = (html, sanitizer) => {
|
|
11
|
+
return sanitizer.sanitize(html);
|
|
12
|
+
};
|
|
13
|
+
exports.secureHTML = secureHTML;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IFilterXSSOptions } from "xss";
|
|
2
|
+
import { SanitizerStrategy } from "../../../interfaces/SatinizerStrategy";
|
|
3
|
+
export declare class XSSEstrictedSanitizer implements SanitizerStrategy {
|
|
4
|
+
private attributesBlackList;
|
|
5
|
+
private options;
|
|
6
|
+
constructor(options?: IFilterXSSOptions, attributesBlackList?: string[]);
|
|
7
|
+
sanitize(html: string): string;
|
|
8
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.XSSEstrictedSanitizer = void 0;
|
|
4
|
+
const xss_1 = require("xss");
|
|
5
|
+
class XSSEstrictedSanitizer {
|
|
6
|
+
constructor(options, attributesBlackList = []) {
|
|
7
|
+
this.attributesBlackList = attributesBlackList;
|
|
8
|
+
this.options = Object.assign({ css: false, onIgnoreTagAttr: (_tag, name, value) => {
|
|
9
|
+
if (this.attributesBlackList.includes(name)) {
|
|
10
|
+
return ""; // Elimina el atributo si está en la lista negra
|
|
11
|
+
}
|
|
12
|
+
return `${name}="${value}"`; // Mantiene el atributo si no está en la lista negra
|
|
13
|
+
}, onIgnoreTag: (tag, _html, _options) => {
|
|
14
|
+
if (["script", "iframe"].includes(tag)) {
|
|
15
|
+
return ""; // Elimina los <script>
|
|
16
|
+
}
|
|
17
|
+
}, escapeHtml: (str) => str }, options);
|
|
18
|
+
}
|
|
19
|
+
sanitize(html) {
|
|
20
|
+
return (0, xss_1.filterXSS)(html, this.options);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.XSSEstrictedSanitizer = XSSEstrictedSanitizer;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IFilterXSSOptions } from "xss";
|
|
2
|
+
import { SanitizerStrategy } from "../../../interfaces/SatinizerStrategy";
|
|
3
|
+
export declare class XSSSanitizer implements SanitizerStrategy {
|
|
4
|
+
private attributesBlackList;
|
|
5
|
+
private options;
|
|
6
|
+
constructor(options?: IFilterXSSOptions, attributesBlackList?: string[]);
|
|
7
|
+
sanitize(html: string): string;
|
|
8
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.XSSSanitizer = void 0;
|
|
4
|
+
const xss_1 = require("xss");
|
|
5
|
+
class XSSSanitizer {
|
|
6
|
+
constructor(options, attributesBlackList = []) {
|
|
7
|
+
this.attributesBlackList = attributesBlackList;
|
|
8
|
+
this.options = Object.assign({ css: false, onIgnoreTagAttr: (tag, name, value) => {
|
|
9
|
+
if (!this.attributesBlackList.includes(name)) {
|
|
10
|
+
return `${name}="${value}"`;
|
|
11
|
+
}
|
|
12
|
+
return "";
|
|
13
|
+
} }, options);
|
|
14
|
+
}
|
|
15
|
+
sanitize(html) {
|
|
16
|
+
return (0, xss_1.filterXSS)(html, this.options);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.XSSSanitizer = XSSSanitizer;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare class URLValidator {
|
|
2
|
+
private validDomains;
|
|
3
|
+
private validProtocols;
|
|
4
|
+
constructor(domains?: string[], protocols?: string[]);
|
|
5
|
+
setValidDomains(domains?: string[]): this;
|
|
6
|
+
setValidProtocols(protocols?: string[]): this;
|
|
7
|
+
validate(url: string): boolean;
|
|
8
|
+
private isValidProtocol;
|
|
9
|
+
private isValidDomain;
|
|
10
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.URLValidator = void 0;
|
|
4
|
+
class URLValidator {
|
|
5
|
+
constructor(domains = [], protocols = ["http", "https"]) {
|
|
6
|
+
this.validDomains = domains;
|
|
7
|
+
this.validProtocols = protocols;
|
|
8
|
+
}
|
|
9
|
+
setValidDomains(domains = []) {
|
|
10
|
+
this.validDomains = domains;
|
|
11
|
+
return this;
|
|
12
|
+
}
|
|
13
|
+
setValidProtocols(protocols = []) {
|
|
14
|
+
this.validProtocols = protocols;
|
|
15
|
+
return this;
|
|
16
|
+
}
|
|
17
|
+
validate(url) {
|
|
18
|
+
try {
|
|
19
|
+
const urlObj = new URL(url);
|
|
20
|
+
return (this.isValidProtocol(urlObj.protocol) &&
|
|
21
|
+
(this.validDomains.length === 0 || this.isValidDomain(urlObj.hostname)));
|
|
22
|
+
}
|
|
23
|
+
catch (_a) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
isValidProtocol(protocol) {
|
|
28
|
+
const normalizedProtocol = protocol.replace(":", "").toLowerCase();
|
|
29
|
+
return this.validProtocols.includes(normalizedProtocol);
|
|
30
|
+
}
|
|
31
|
+
isValidDomain(domain) {
|
|
32
|
+
if (this.validDomains.length === 0) {
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
return this.validDomains.some((validDomain) => domain.endsWith(validDomain));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.URLValidator = URLValidator;
|
|
@@ -7,16 +7,20 @@ export interface I18nExportingModal {
|
|
|
7
7
|
cancel_button_label: string;
|
|
8
8
|
error_messages: II18nExportingModalErrorMessages;
|
|
9
9
|
file_name_label: string;
|
|
10
|
+
new_dataset_name_label: string;
|
|
11
|
+
new_dataset_name_placeholder: string;
|
|
10
12
|
recurrence: II18nExportingModalRecurrence;
|
|
11
13
|
time_stamp: II18nExportingModalTimeStamp;
|
|
12
14
|
time_zone_label: string;
|
|
13
15
|
title_label: string;
|
|
16
|
+
title_new_dataset: string;
|
|
14
17
|
uniqueness_concatenate: string;
|
|
15
18
|
toast_messages: {
|
|
16
19
|
failed_scheduling: string;
|
|
17
20
|
successful_scheduling: string;
|
|
18
21
|
};
|
|
19
22
|
pivoting_export: {
|
|
23
|
+
source_label: string;
|
|
20
24
|
dataset_label: string;
|
|
21
25
|
filter_label: string;
|
|
22
26
|
pivoting: {
|
|
@@ -28,12 +32,14 @@ export interface I18nExportingModal {
|
|
|
28
32
|
columns_section: {
|
|
29
33
|
title: string;
|
|
30
34
|
subtitle: string;
|
|
35
|
+
subtitle_new_dataset: string;
|
|
31
36
|
select_all_label: string;
|
|
32
37
|
dataset_columns: string;
|
|
33
38
|
pivot_columns_label: string;
|
|
34
39
|
pivot_columns_sublabel: string;
|
|
35
40
|
};
|
|
36
41
|
columns_to_export_label: string;
|
|
42
|
+
columns_to_create_dataset_label: string;
|
|
37
43
|
no_results_found: string;
|
|
38
44
|
};
|
|
39
45
|
schedule: {
|
|
@@ -102,6 +102,8 @@ exports.I18N_CHART_BUILDER_GENERAL_OPTIONS = {
|
|
|
102
102
|
sorting_by_calculated_value: "Sorting by Calculated Value",
|
|
103
103
|
title: "Sorting",
|
|
104
104
|
value: "Value",
|
|
105
|
+
empty_row_message: "Add rows to apply sorting",
|
|
106
|
+
empty_column_message: "Add columns to apply sorting",
|
|
105
107
|
},
|
|
106
108
|
menu_actions: {
|
|
107
109
|
title: "Self-service Options",
|
|
@@ -5,12 +5,17 @@ exports.EXPORTING_MODAL = void 0;
|
|
|
5
5
|
* @deprecated since version 1.12.0; Qrvey version 8.3. Those default poroperties will be replaced by Qrvey Globalization JSON
|
|
6
6
|
*/
|
|
7
7
|
exports.EXPORTING_MODAL = {
|
|
8
|
-
apply_button_label: {
|
|
8
|
+
apply_button_label: {
|
|
9
|
+
export_now: "Export Now",
|
|
10
|
+
create_dataset: "Create Dataset",
|
|
11
|
+
},
|
|
9
12
|
cancel_button_label: "Cancel",
|
|
10
13
|
error_messages: {
|
|
11
14
|
special_characters: "Special characters are not allowed in file name.",
|
|
12
15
|
},
|
|
13
16
|
file_name_label: "File Name",
|
|
17
|
+
new_dataset_name_label: "New Dataset Name",
|
|
18
|
+
new_dataset_name_placeholder: "Type",
|
|
14
19
|
recurrence: {
|
|
15
20
|
label: "Recurrence",
|
|
16
21
|
value: { does_not_repeat: "Does not repeat" },
|
|
@@ -22,12 +27,14 @@ exports.EXPORTING_MODAL = {
|
|
|
22
27
|
},
|
|
23
28
|
time_zone_label: "Time Zone",
|
|
24
29
|
title_label: "Export",
|
|
30
|
+
title_new_dataset: "New Dataset",
|
|
25
31
|
uniqueness_concatenate: "For Uniqueness Concatenate",
|
|
26
32
|
toast_messages: {
|
|
27
33
|
failed_scheduling: "The export could not be scheduled at this time.",
|
|
28
34
|
successful_scheduling: "The export of {{fileName}} has been scheduled successfully.",
|
|
29
35
|
},
|
|
30
36
|
pivoting_export: {
|
|
37
|
+
source_label: "Source",
|
|
31
38
|
dataset_label: "Dataset",
|
|
32
39
|
filter_label: "Filter",
|
|
33
40
|
pivoting: {
|
|
@@ -39,12 +46,14 @@ exports.EXPORTING_MODAL = {
|
|
|
39
46
|
columns_section: {
|
|
40
47
|
title: "Columns",
|
|
41
48
|
subtitle: "(Select columns to export)",
|
|
49
|
+
subtitle_new_dataset: "(Select columns for new dataset)",
|
|
42
50
|
select_all_label: "Add All Columns",
|
|
43
51
|
dataset_columns: "Dataset Columns",
|
|
44
52
|
pivot_columns_label: "Pivot Columns",
|
|
45
53
|
pivot_columns_sublabel: "Displaying only the first 100 results.",
|
|
46
54
|
},
|
|
47
55
|
columns_to_export_label: "Columns to export",
|
|
56
|
+
columns_to_create_dataset_label: "Dataset columns",
|
|
48
57
|
no_results_found: "No results found",
|
|
49
58
|
},
|
|
50
59
|
schedule: {
|
package/dist/cjs/index.d.ts
CHANGED
package/dist/cjs/index.js
CHANGED
|
@@ -32,3 +32,4 @@ __exportStar(require("./typescript/index"), exports);
|
|
|
32
32
|
__exportStar(require("./tokens/index"), exports);
|
|
33
33
|
__exportStar(require("./column_format/index"), exports);
|
|
34
34
|
__exportStar(require("./themes/index"), exports);
|
|
35
|
+
__exportStar(require("./elements/index"), exports);
|
|
@@ -6,10 +6,10 @@ const GLOBAL_CSS_VARIABLES_1 = require("./GLOBAL_CSS_VARIABLES");
|
|
|
6
6
|
* Collection of CSS Variables for Light Themes and its assigned values.
|
|
7
7
|
*/
|
|
8
8
|
exports.AUTOMATIC_GLOBAL_CSS_VARIABLES_FOR_LIGHT = {
|
|
9
|
-
[GLOBAL_CSS_VARIABLES_1.GLOBAL_CSS_VARIABLES.HEADER_BACKGROUND_COLOR]: "#
|
|
9
|
+
[GLOBAL_CSS_VARIABLES_1.GLOBAL_CSS_VARIABLES.HEADER_BACKGROUND_COLOR]: "#F7F8FB",
|
|
10
10
|
[GLOBAL_CSS_VARIABLES_1.GLOBAL_CSS_VARIABLES.BACKGROUND_OPACITY_BLACK_COLOR]: "#FFFFFF10",
|
|
11
|
-
[GLOBAL_CSS_VARIABLES_1.GLOBAL_CSS_VARIABLES.BORDER_COLOR]: "#
|
|
12
|
-
[GLOBAL_CSS_VARIABLES_1.GLOBAL_CSS_VARIABLES.DIVIDER_COLOR]: "#
|
|
11
|
+
[GLOBAL_CSS_VARIABLES_1.GLOBAL_CSS_VARIABLES.BORDER_COLOR]: "#00000017",
|
|
12
|
+
[GLOBAL_CSS_VARIABLES_1.GLOBAL_CSS_VARIABLES.DIVIDER_COLOR]: "#00000010",
|
|
13
13
|
[GLOBAL_CSS_VARIABLES_1.GLOBAL_CSS_VARIABLES.HOVER_COLOR]: "#00000010",
|
|
14
14
|
[GLOBAL_CSS_VARIABLES_1.GLOBAL_CSS_VARIABLES.PLACEHOLDER_COLOR]: "#00000070",
|
|
15
15
|
[GLOBAL_CSS_VARIABLES_1.GLOBAL_CSS_VARIABLES.PILLS_BACKGROUND_COLOR]: "#FFFFFF40",
|