@qrvey/utils 1.2.10-0 → 1.2.10-3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -5850
- package/dist/cjs/charts/constants/index.js +5 -1
- package/dist/cjs/charts/helpers/index.js +5 -1
- package/dist/cjs/charts/index.js +5 -1
- package/dist/cjs/charts/interfaces/index.js +5 -1
- package/dist/cjs/columns/constants/index.js +5 -1
- package/dist/cjs/columns/helpers/getModelColumn.js +1 -1
- package/dist/cjs/columns/helpers/index.js +5 -1
- package/dist/cjs/columns/index.js +5 -1
- package/dist/cjs/columns/interfaces/index.js +5 -1
- package/dist/cjs/constants/index.js +5 -1
- package/dist/cjs/dates/adapters/index.js +5 -1
- package/dist/cjs/dates/constants/index.js +5 -1
- package/dist/cjs/dates/helpers/index.js +5 -1
- package/dist/cjs/dates/index.js +5 -1
- package/dist/cjs/dates/interfaces/index.js +5 -1
- package/dist/cjs/dates/range/index.js +5 -1
- package/dist/cjs/dates/relative/constants/index.js +5 -1
- package/dist/cjs/dates/relative/constants/ui/index.js +5 -1
- package/dist/cjs/dates/relative/helpers/dayjs-module.js +5 -1
- package/dist/cjs/dates/relative/helpers/index.js +5 -1
- package/dist/cjs/dates/relative/index.js +5 -1
- package/dist/cjs/dates/relative/interfaces/index.js +5 -1
- package/dist/cjs/dates/relative/interfaces/ui/index.js +5 -1
- package/dist/cjs/filters/adapters/UIToFD.js +2 -1
- package/dist/cjs/filters/adapters/adaptDateGroupingProperty.d.ts +2 -2
- package/dist/cjs/filters/adapters/adaptDateGroupingProperty.js +2 -2
- package/dist/cjs/filters/adapters/index.js +5 -1
- package/dist/cjs/filters/classes/index.js +5 -1
- package/dist/cjs/filters/constants/backend/index.js +5 -1
- package/dist/cjs/filters/constants/builder/index.js +5 -1
- package/dist/cjs/filters/constants/common/index.js +5 -1
- package/dist/cjs/filters/constants/index.js +5 -1
- package/dist/cjs/filters/constants/panel/index.js +5 -1
- package/dist/cjs/filters/helpers/applyHierarchyForAggFilters.d.ts +3 -3
- package/dist/cjs/filters/helpers/applyHierarchyForAggFilters.js +3 -3
- package/dist/cjs/filters/helpers/backend/getAggFiltersBySummaryIndex.d.ts +5 -3
- package/dist/cjs/filters/helpers/backend/getAggFiltersBySummaryIndex.js +5 -3
- package/dist/cjs/filters/helpers/backend/getBackendValues.js +3 -1
- package/dist/cjs/filters/helpers/backend/index.js +5 -1
- package/dist/cjs/filters/helpers/builder/index.js +5 -1
- package/dist/cjs/filters/helpers/common/getMergeFiltersSettings.js +4 -3
- package/dist/cjs/filters/helpers/common/index.js +5 -1
- package/dist/cjs/filters/helpers/common/mergeFilters.d.ts +1 -1
- package/dist/cjs/filters/helpers/common/mergeFilters.js +25 -9
- package/dist/cjs/filters/helpers/getAggFiltersFromFilterData.d.ts +5 -4
- package/dist/cjs/filters/helpers/getAggFiltersFromFilterData.js +5 -5
- package/dist/cjs/filters/helpers/index.js +5 -1
- package/dist/cjs/filters/helpers/ui/getUIValues.d.ts +4 -5
- package/dist/cjs/filters/helpers/ui/getUIValues.js +4 -5
- package/dist/cjs/filters/helpers/ui/index.js +5 -1
- package/dist/cjs/filters/index.js +5 -1
- package/dist/cjs/filters/interfaces/backend/index.js +5 -1
- package/dist/cjs/filters/interfaces/builder/index.js +5 -1
- package/dist/cjs/filters/interfaces/common/index.js +5 -1
- package/dist/cjs/filters/interfaces/functions/IFFiltersMergeFilters.d.ts +1 -0
- package/dist/cjs/filters/interfaces/functions/index.js +5 -1
- package/dist/cjs/filters/interfaces/index.js +5 -1
- package/dist/cjs/filters/interfaces/panel/index.js +5 -1
- package/dist/cjs/filters/interfaces/ui/index.js +5 -1
- package/dist/cjs/filters/services/index.js +5 -1
- package/dist/cjs/format/index.js +5 -1
- package/dist/cjs/format/localization.js +4 -3
- package/dist/cjs/formulas/constants/index.js +5 -1
- package/dist/cjs/formulas/index.js +5 -1
- package/dist/cjs/formulas/interfaces/index.js +5 -1
- package/dist/cjs/general/array/index.js +5 -1
- package/dist/cjs/general/function/index.js +5 -1
- package/dist/cjs/general/index.js +5 -1
- package/dist/cjs/general/mix/index.js +5 -1
- package/dist/cjs/general/object/get.d.ts +0 -20
- package/dist/cjs/general/object/get.js +0 -20
- package/dist/cjs/general/object/index.js +5 -1
- package/dist/cjs/general/string/index.js +5 -1
- package/dist/cjs/globalization/helpers/index.js +5 -1
- package/dist/cjs/globalization/index.js +5 -1
- package/dist/cjs/globalization/interfaces/bucket_builder/index.js +5 -1
- package/dist/cjs/globalization/interfaces/calendar/index.js +5 -1
- package/dist/cjs/globalization/interfaces/chart_builder/II18nChartBuilderConditionalFormatting.d.ts +2 -0
- package/dist/cjs/globalization/interfaces/chart_builder/index.js +5 -1
- package/dist/cjs/globalization/interfaces/columns/index.js +5 -1
- package/dist/cjs/globalization/interfaces/common/index.js +5 -1
- package/dist/cjs/globalization/interfaces/cross_tabs/index.js +5 -1
- package/dist/cjs/globalization/interfaces/dashboard/index.js +5 -1
- package/dist/cjs/globalization/interfaces/filters/index.js +5 -1
- package/dist/cjs/globalization/interfaces/formula_builder/index.js +5 -1
- package/dist/cjs/globalization/interfaces/index.js +5 -1
- package/dist/cjs/globalization/interfaces/panel/index.js +5 -1
- package/dist/cjs/globalization/interfaces/style_themes/index.js +5 -1
- package/dist/cjs/globalization/interfaces/table_charts/index.js +5 -1
- package/dist/cjs/globalization/labels/bucket_builder/index.js +5 -1
- package/dist/cjs/globalization/labels/calendar/index.js +5 -1
- package/dist/cjs/globalization/labels/chart_builder/I18N_CHART_BUILDER_FORMAT_OPTIONS.js +2 -0
- package/dist/cjs/globalization/labels/chart_builder/index.js +5 -1
- package/dist/cjs/globalization/labels/columns/index.js +5 -1
- package/dist/cjs/globalization/labels/common/index.js +5 -1
- package/dist/cjs/globalization/labels/cross_tabs/index.js +5 -1
- package/dist/cjs/globalization/labels/dashboard/index.js +5 -1
- package/dist/cjs/globalization/labels/filters/index.js +5 -1
- package/dist/cjs/globalization/labels/formula_builder/index.js +5 -1
- package/dist/cjs/globalization/labels/index.js +5 -1
- package/dist/cjs/globalization/labels/panel/index.js +5 -1
- package/dist/cjs/globalization/labels/style_themes/index.js +5 -1
- package/dist/cjs/globalization/labels/table_charts/index.js +5 -1
- package/dist/cjs/globalization/service/index.js +5 -1
- package/dist/cjs/index.js +5 -1
- package/dist/cjs/interfaces/format/index.js +5 -1
- package/dist/cjs/interfaces/general/index.d.ts +0 -1
- package/dist/cjs/interfaces/general/index.js +5 -2
- package/dist/cjs/interfaces/index.js +5 -1
- package/dist/cjs/qrvey/constants/index.js +5 -1
- package/dist/cjs/qrvey/helpers/getLookupAnswers.js +1 -2
- package/dist/cjs/qrvey/helpers/index.js +5 -1
- package/dist/cjs/qrvey/index.js +5 -1
- package/dist/cjs/qrvey/interfaces/index.js +5 -1
- package/dist/cjs/services/adapters/index.js +5 -1
- package/dist/cjs/services/api/getAllDatasets.api.d.ts +2 -2
- package/dist/cjs/services/api/getDatasetColumns.api.d.ts +2 -2
- package/dist/cjs/services/api/getDatasetsByIds.api.d.ts +2 -2
- package/dist/cjs/services/api/index.js +5 -1
- package/dist/cjs/services/constants/index.js +5 -1
- package/dist/cjs/services/helpers/index.js +5 -1
- package/dist/cjs/services/index.js +5 -1
- package/dist/cjs/services/interfaces/index.js +5 -1
- package/dist/cjs/stencil/decorators/index.js +5 -1
- package/dist/cjs/stencil/index.js +5 -1
- package/dist/cjs/stencil/util/index.js +5 -1
- package/dist/cjs/tokens/index.js +5 -1
- package/dist/cjs/typescript/decorators/index.js +5 -1
- package/dist/cjs/typescript/index.js +5 -1
- package/dist/columns/helpers/getModelColumn.js +1 -1
- package/dist/filters/adapters/UIToFD.js +2 -1
- package/dist/filters/adapters/adaptDateGroupingProperty.d.ts +2 -2
- package/dist/filters/adapters/adaptDateGroupingProperty.js +2 -2
- package/dist/filters/helpers/applyHierarchyForAggFilters.d.ts +3 -3
- package/dist/filters/helpers/applyHierarchyForAggFilters.js +3 -3
- package/dist/filters/helpers/backend/getAggFiltersBySummaryIndex.d.ts +5 -3
- package/dist/filters/helpers/backend/getAggFiltersBySummaryIndex.js +5 -3
- package/dist/filters/helpers/backend/getBackendValues.js +3 -1
- package/dist/filters/helpers/common/getMergeFiltersSettings.js +4 -3
- package/dist/filters/helpers/common/mergeFilters.d.ts +1 -1
- package/dist/filters/helpers/common/mergeFilters.js +25 -9
- package/dist/filters/helpers/getAggFiltersFromFilterData.d.ts +5 -4
- package/dist/filters/helpers/getAggFiltersFromFilterData.js +5 -5
- package/dist/filters/helpers/ui/getUIValues.d.ts +4 -5
- package/dist/filters/helpers/ui/getUIValues.js +4 -5
- package/dist/filters/interfaces/functions/IFFiltersMergeFilters.d.ts +1 -0
- package/dist/format/localization.js +4 -3
- package/dist/general/object/get.d.ts +0 -20
- package/dist/general/object/get.js +0 -20
- package/dist/globalization/interfaces/chart_builder/II18nChartBuilderConditionalFormatting.d.ts +2 -0
- package/dist/globalization/labels/chart_builder/I18N_CHART_BUILDER_FORMAT_OPTIONS.js +2 -0
- package/dist/interfaces/general/index.d.ts +0 -1
- package/dist/interfaces/general/index.js +0 -1
- package/dist/qrvey/helpers/getLookupAnswers.js +1 -2
- package/dist/services/api/getAllDatasets.api.d.ts +2 -2
- package/dist/services/api/getDatasetColumns.api.d.ts +2 -2
- package/dist/services/api/getDatasetsByIds.api.d.ts +2 -2
- package/jsdoc.config.json +14 -0
- package/package.json +13 -11
- package/prepareToPublish.js +2 -1
- package/publishing.js +180 -0
- package/src/columns/helpers/getModelColumn.ts +1 -1
- package/src/filters/adapters/UIToFD.ts +2 -1
- package/src/filters/adapters/adaptDateGroupingProperty.ts +2 -2
- package/src/filters/helpers/applyHierarchyForAggFilters.ts +3 -3
- package/src/filters/helpers/backend/getAggFiltersBySummaryIndex.ts +5 -3
- package/src/filters/helpers/backend/getBackendValues.ts +3 -1
- package/src/filters/helpers/common/getMergeFiltersSettings.ts +1 -0
- package/src/filters/helpers/common/mergeFilters.ts +34 -9
- package/src/filters/helpers/getAggFiltersFromFilterData.ts +5 -5
- package/src/filters/helpers/ui/getUIValues.ts +4 -5
- package/src/filters/interfaces/functions/IFFiltersMergeFilters.ts +1 -0
- package/src/format/localization.ts +2 -1
- package/src/general/object/get.ts +0 -22
- package/src/globalization/interfaces/chart_builder/II18nChartBuilderConditionalFormatting.ts +2 -0
- package/src/globalization/labels/chart_builder/I18N_CHART_BUILDER_FORMAT_OPTIONS.ts +2 -0
- package/src/interfaces/general/index.ts +0 -1
- package/src/services/api/getAllDatasets.api.ts +2 -2
- package/src/services/api/getDatasetColumns.api.ts +2 -2
- package/src/services/api/getDatasetsByIds.api.ts +2 -2
- package/dist/cjs/interfaces/general/IGeneralWidgetConfig.d.ts +0 -12
- package/dist/cjs/interfaces/general/IGeneralWidgetConfig.js +0 -2
- package/dist/interfaces/general/IGeneralWidgetConfig.d.ts +0 -12
- package/dist/interfaces/general/IGeneralWidgetConfig.js +0 -1
- package/src/interfaces/general/IGeneralWidgetConfig.ts +0 -12
package/publishing.js
ADDED
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
// IN DEVELOPMENT
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
const fs = require('fs');
|
|
5
|
+
const util = require('util');
|
|
6
|
+
const childProcess = require('child_process');
|
|
7
|
+
const exec = util.promisify(childProcess.exec);
|
|
8
|
+
const spawn = childProcess.spawn;
|
|
9
|
+
const proc = require('process');
|
|
10
|
+
const readline = require("readline");
|
|
11
|
+
const rl = readline.createInterface({
|
|
12
|
+
input: proc.stdin,
|
|
13
|
+
output: proc.stdout
|
|
14
|
+
});
|
|
15
|
+
const question = util.promisify(rl.question).bind(rl);
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
async function execute(command) {
|
|
19
|
+
console.log(command);
|
|
20
|
+
const response = await exec(command);
|
|
21
|
+
console.log('response', response);
|
|
22
|
+
if (response.error != null) {
|
|
23
|
+
throw new Error(response.error);
|
|
24
|
+
}
|
|
25
|
+
if (response.stderr != null && response.stderr !== '') {
|
|
26
|
+
console.error(response.stderr);
|
|
27
|
+
}
|
|
28
|
+
if (response.stdout != null && response.stdout !== '') {
|
|
29
|
+
console.log(response.stdout);
|
|
30
|
+
}
|
|
31
|
+
return response;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
//todo: fix the spawning function to wait for the second process to finish and then continue the next code
|
|
35
|
+
async function spawning(command, sArguments) {
|
|
36
|
+
const newProcess = await new Promise(function (resolve, reject) {
|
|
37
|
+
spawn(command, sArguments, { shell: true });
|
|
38
|
+
newProcess.stdout.on("data", data => {
|
|
39
|
+
console.log(`stdout: ${data}`);
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
newProcess.stderr.on("data", data => {
|
|
43
|
+
console.log(`stderr: ${data}`);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
newProcess.on('error', (error) => {
|
|
47
|
+
reject();
|
|
48
|
+
throw new Error(error.message);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
newProcess.on("close", code => {
|
|
52
|
+
if (code == '1') {
|
|
53
|
+
reject();
|
|
54
|
+
throw new Error(`child process exited with code ${code}`);
|
|
55
|
+
}
|
|
56
|
+
resolve();
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
async function openingPackageJson(settings) {
|
|
62
|
+
console.log('>>> Opening package.json file...');
|
|
63
|
+
const packageJson = await fs.readFileSync(settings.packagePath, 'utf8');
|
|
64
|
+
const packageObject = JSON.parse(packageJson);
|
|
65
|
+
if (packageObject != null) {
|
|
66
|
+
console.log(`The current version is ${packageObject.version}`);
|
|
67
|
+
return packageObject.version;
|
|
68
|
+
}
|
|
69
|
+
return '';
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
async function cleaningProject(settings) {
|
|
73
|
+
console.log('>>> Cleaning project...');
|
|
74
|
+
await execute(`rm -f ${settings.packageLockPath}`);
|
|
75
|
+
await execute(`rm -f -R ${settings.nodeModulesPath}`);
|
|
76
|
+
await execute(`rm -f -R ${settings.distPath}`);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
async function buildingBundle(_settings) {
|
|
80
|
+
console.log('>>> Installing Dependencies...');
|
|
81
|
+
await execute('npm install');
|
|
82
|
+
|
|
83
|
+
console.log('>>> Generating Build...');
|
|
84
|
+
await execute('npm run build');
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
async function generatingDocument(settings) {
|
|
88
|
+
console.log('>>> Generating Document...');
|
|
89
|
+
await execute(`doxdox './dist/.+\\.js' --output ${settings.docsFileName} --ignore './dist/cjs/.+\\.js' --package ${settings.packagePath}`);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
async function pushingChanges(settings) {
|
|
93
|
+
console.log('>>> Commiting and Pushing Docs changes...');
|
|
94
|
+
|
|
95
|
+
const stdout = await execute('git rev-parse --abbrev-ref HEAD');
|
|
96
|
+
await execute(`git add ${settings.docsPath}`);
|
|
97
|
+
await execute(`git commit -m "📝 docs: Updated docs${settings.packageVersion !== '' ? ' for ' + settings.packageVersion : ''}"`);
|
|
98
|
+
await execute(`git push -u origin ${stdout}`);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
async function revertChanges(settings) {
|
|
102
|
+
console.log('>>> Checking for modifications...');
|
|
103
|
+
console.warn(`>>> Unstaging posible changes from ${settings.docsFileName} file`);
|
|
104
|
+
await execute(`git restore --staged ${settings.docsPath}`);
|
|
105
|
+
console.warn(`>>> Discarting posible changes of ${settings.docsFileName} file`);
|
|
106
|
+
await execute(`git checkout -- ${settings.docsPath}`);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
async function startPublishingVersion(settings) {
|
|
110
|
+
await callingPublisher(settings);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
async function callingPublisher(settings) {
|
|
114
|
+
console.log('>>> Calling Publisher');
|
|
115
|
+
let anyBranch = '', tag = '';
|
|
116
|
+
const anyBranchIndex = proc.argv.findIndex(function (argv) { return argv.includes('--np-any-branch='); });
|
|
117
|
+
const tagIndex = proc.argv.findIndex(function (argv) { return argv.includes('--np-tag='); });
|
|
118
|
+
if (anyBranchIndex > -1) {
|
|
119
|
+
const anyBranchArg = proc.argv[anyBranchIndex].split('--np-any-branch=');
|
|
120
|
+
anyBranch = anyBranchArg[1] == null || anyBranchArg[1] === '' ? '' : '--any-branch';
|
|
121
|
+
}
|
|
122
|
+
if (tagIndex > -1) {
|
|
123
|
+
const tagArg = proc.argv[tagIndex].split('--np-tag=');
|
|
124
|
+
tag = tagArg[1] == null || tagArg[1] === '' ? '' : proc.argv[tagIndex].replace('--np-tag=', '--tag=');
|
|
125
|
+
}
|
|
126
|
+
// await execute(`np ${settings.newVersion} ${anyBranch} ${tag}`);
|
|
127
|
+
await spawning(`np ${settings.newVersion}`, [anyBranch, tag]);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
async function startGeneratingDocs(settings) {
|
|
131
|
+
console.log('>>> Starting of the Docs generation.');
|
|
132
|
+
|
|
133
|
+
await generatingDocument(settings);
|
|
134
|
+
await pushingChanges(settings);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
async function getNewVersion() {
|
|
138
|
+
let newVersion;
|
|
139
|
+
const versionIndex = proc.argv.findIndex(function (argv) { return argv.includes('--np-new-version='); });
|
|
140
|
+
if (versionIndex > -1) {
|
|
141
|
+
const versionArg = proc.argv[versionIndex].split('--np-new-version=');
|
|
142
|
+
newVersion = versionArg[1] == null || versionArg[1] === '' ? undefined : versionArg[1];
|
|
143
|
+
}
|
|
144
|
+
if (newVersion == null) {
|
|
145
|
+
newVersion = question('No version provided. Type the new version: ');
|
|
146
|
+
}
|
|
147
|
+
return newVersion;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
async function init() {
|
|
151
|
+
let settings = {
|
|
152
|
+
distPath: './dist',
|
|
153
|
+
docsPath: './README.md',
|
|
154
|
+
docsFileName: 'README.md',
|
|
155
|
+
newVersion: undefined,
|
|
156
|
+
nodeModulesPath: './node_modules',
|
|
157
|
+
packageLockPath: './package-lock.json',
|
|
158
|
+
packagePath: './package.json',
|
|
159
|
+
packageVersion: '',
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
console.log('Welcome. The publishing operationg will begin.');
|
|
163
|
+
try {
|
|
164
|
+
settings["packageVersion"] = await openingPackageJson(settings);
|
|
165
|
+
settings["newVersion"] = await getNewVersion();
|
|
166
|
+
|
|
167
|
+
await cleaningProject(settings);
|
|
168
|
+
await buildingBundle(settings);
|
|
169
|
+
await startPublishingVersion(settings);
|
|
170
|
+
await startGeneratingDocs(settings);
|
|
171
|
+
console.info('Finished Publishing');
|
|
172
|
+
} catch (err) {
|
|
173
|
+
console.error('Error: ', err);
|
|
174
|
+
await revertChanges(settings);
|
|
175
|
+
} finally {
|
|
176
|
+
console.log('Execution finished');
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
init();
|
|
@@ -24,6 +24,6 @@ export function getModelColumn(column: Partial<IColumn>, model: IModel): IColumn
|
|
|
24
24
|
* @returns the question data array from model object
|
|
25
25
|
*/
|
|
26
26
|
function getQuestionData(model: IModel): IColumn[] {
|
|
27
|
-
debugger
|
|
27
|
+
// debugger
|
|
28
28
|
return _get(model, 'questions.data', []);
|
|
29
29
|
}
|
|
@@ -27,9 +27,10 @@ import { IFUScope } from "../interfaces/ui/IFUScope";
|
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
29
|
* Builds the Fitler Data structure from UI filter data
|
|
30
|
+
* @private
|
|
30
31
|
* @param uFilterData The UI filter Data object
|
|
31
32
|
* @param version the version of the structure
|
|
32
|
-
* @returns
|
|
33
|
+
* @returns a Filter Data structure
|
|
33
34
|
*/
|
|
34
35
|
function UI21ToFD(uFilterData: IFUData, version): IFSData {
|
|
35
36
|
return {
|
|
@@ -5,8 +5,8 @@ import { DATE_DISTINCT_TIME_PROPERTY } from "../../dates/constants/DATE_DISTINCT
|
|
|
5
5
|
/**
|
|
6
6
|
* [TODO: For 2022, eliminate this adapter]
|
|
7
7
|
* Get the new property base on the old date grouping properties
|
|
8
|
-
* @param property
|
|
9
|
-
* @returns
|
|
8
|
+
* @param property the property to be adapted
|
|
9
|
+
* @returns a adapted property
|
|
10
10
|
*/
|
|
11
11
|
export function adaptDateGroupingProperty(property: IFProperty | any): IFProperty {
|
|
12
12
|
return property === 'p&quarter' ? DATE_DISTINCT_PROPERTY.YEAR_QUARTER :
|
|
@@ -9,9 +9,9 @@ import { getScopesByHierarchy } from "./getScopesByHierarchy";
|
|
|
9
9
|
/**
|
|
10
10
|
* [TODO: Make a proper description for this function]
|
|
11
11
|
* @param chartSettings Chart Settings for the Filter Builder
|
|
12
|
-
* @param scopes
|
|
13
|
-
* @param currentScope
|
|
14
|
-
* @returns
|
|
12
|
+
* @param scopes the pair id/label scopes
|
|
13
|
+
* @param currentScope the scope to be validated
|
|
14
|
+
* @returns the chart settings
|
|
15
15
|
*/
|
|
16
16
|
export function applyHierarchyForAggFilters(chartSettings: IFUChartSettings, scopes: IFSScopeID[] = [], currentScope: IFScope = FILTER_SCOPE.GLOBAL): IFUChartSettings {
|
|
17
17
|
if (isEmpty(chartSettings)) return;
|
|
@@ -2,10 +2,12 @@ import { filterNestedTree } from "../../../general/array/filterNestedTree";
|
|
|
2
2
|
import { IFBFilterAggregate } from "../../interfaces/backend/IFBFilterAggregate";
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
+
* @todo Make a proper description for this function
|
|
5
6
|
*
|
|
6
|
-
*
|
|
7
|
-
* @param
|
|
8
|
-
* @
|
|
7
|
+
* Gets the aggFilters structure by an index
|
|
8
|
+
* @param aggFilters The aggFilter Structure
|
|
9
|
+
* @param summaryIndex an index
|
|
10
|
+
* @returns a new aggFilters structure
|
|
9
11
|
*/
|
|
10
12
|
export function getAggFiltersBySummaryIndex(aggFilters: IFBFilterAggregate, summaryIndex: number): IFBFilterAggregate {
|
|
11
13
|
if (!aggFilters) return undefined;
|
|
@@ -75,9 +75,10 @@ export function getBackendValues(filter: IFSFilter): IFBackendExpressionValue[]
|
|
|
75
75
|
|
|
76
76
|
/**
|
|
77
77
|
* Gets the expression values. Depending on the column type
|
|
78
|
+
* @private
|
|
78
79
|
* @param values a collection of filter values
|
|
79
80
|
* @param filter The filter structure
|
|
80
|
-
* @returns
|
|
81
|
+
* @returns Expression values
|
|
81
82
|
*/
|
|
82
83
|
function getResultValues(values: IFSValue[], filter: IFSFilter): IFBExpressionValue[] {
|
|
83
84
|
return (values || []).map((value: IFSValue) => {
|
|
@@ -93,6 +94,7 @@ function getResultValues(values: IFSValue[], filter: IFSFilter): IFBExpressionVa
|
|
|
93
94
|
|
|
94
95
|
/**
|
|
95
96
|
* Gets the Ranking values.
|
|
97
|
+
* @private
|
|
96
98
|
* @param values a collection of filter values in the ranking structure
|
|
97
99
|
* @param rankingGroupIndex determine the value by this index to build and return it
|
|
98
100
|
* @returns Expression values for ranking
|
|
@@ -7,6 +7,7 @@ import { IFFiltersMergeFilters } from "../../interfaces/functions/IFFiltersMerge
|
|
|
7
7
|
*/
|
|
8
8
|
export function getMergeFiltersSettings(settings?: IFFiltersMergeFilters): IFFiltersMergeFilters {
|
|
9
9
|
return {
|
|
10
|
+
overwriteFilterProps: settings?.overwriteFilterProps ?? true,
|
|
10
11
|
overwriteValues: settings?.overwriteValues ?? false,
|
|
11
12
|
setGroupedColumnOperator: settings?.setGroupedColumnOperator ?? true
|
|
12
13
|
};
|
|
@@ -11,6 +11,7 @@ import { IFSValueRelativeDate } from "../../interfaces/common/IFSValueRelativeDa
|
|
|
11
11
|
import { IFFiltersMergeFilters } from "../../interfaces/functions/IFFiltersMergeFilters";
|
|
12
12
|
import { IFValue } from "../../interfaces/IFValue";
|
|
13
13
|
import { IFUData } from "../../interfaces/ui/IFUData";
|
|
14
|
+
import { getFilterid } from "./getFilterid";
|
|
14
15
|
import { getMergeFiltersSettings } from "./getMergeFiltersSettings";
|
|
15
16
|
import { isInValidator } from "./isInValidator";
|
|
16
17
|
import { isNullValidator } from "./isNullValidator";
|
|
@@ -24,7 +25,7 @@ import { resolveScopeConditions } from "./resolveScopeConditions";
|
|
|
24
25
|
* Merge filter data structures in a new one. The first Filter Data passed in the argument has the priority
|
|
25
26
|
* @param filterData1 The target filter data
|
|
26
27
|
* @param filterData2 the filter data to be merged
|
|
27
|
-
* @param
|
|
28
|
+
* @param settings configuration of the mergeFilter
|
|
28
29
|
* @returns a new filter data structure
|
|
29
30
|
*/
|
|
30
31
|
export function mergeFilters(filterData1: IFSData | IFUData, filterData2: IFSData | IFUData, settings?: IFFiltersMergeFilters): IFSData | IFUData {
|
|
@@ -50,7 +51,7 @@ export function mergeFilters(filterData1: IFSData | IFUData, filterData2: IFSDat
|
|
|
50
51
|
* Gets a new scope structure array by merging two scope structures
|
|
51
52
|
* @param scopes1 the target scope structure
|
|
52
53
|
* @param scopes2 the scope to be merged
|
|
53
|
-
* @param
|
|
54
|
+
* @param settings configuration of the mergeFilter
|
|
54
55
|
* @returns a new scope structure array
|
|
55
56
|
*/
|
|
56
57
|
function mergeScopes(scopes1: IFSScope[] = [], scopes2: IFSScope[] = [], settings?: IFFiltersMergeFilters): IFSScope[] {
|
|
@@ -75,7 +76,7 @@ function mergeScopes(scopes1: IFSScope[] = [], scopes2: IFSScope[] = [], setting
|
|
|
75
76
|
* Gets a new dataset structure array by merging two dataset structures
|
|
76
77
|
* @param datasets1 the target dataset structure
|
|
77
78
|
* @param datasets2 the dataset to be merged
|
|
78
|
-
* @param
|
|
79
|
+
* @param settings configuration of the mergeFilter
|
|
79
80
|
* @returns a new dataset structure array
|
|
80
81
|
*/
|
|
81
82
|
function mergeDatasets(datasets1: IFSDataset[] = [], datasets2: IFSDataset[] = [], settings?: IFFiltersMergeFilters): IFSDataset[] {
|
|
@@ -100,18 +101,20 @@ function mergeDatasets(datasets1: IFSDataset[] = [], datasets2: IFSDataset[] = [
|
|
|
100
101
|
* Gets a new filter structure array by merging two filter structures
|
|
101
102
|
* @param filters1 the target filter structure
|
|
102
103
|
* @param filters2 the filter to be merged
|
|
103
|
-
* @param
|
|
104
|
+
* @param settings configuration of the mergeFilter
|
|
104
105
|
* @returns a new filter structure array
|
|
105
106
|
*/
|
|
106
107
|
function mergeFilterss(filters1: IFSFilter[] = [], filters2: IFSFilter[] = [], settings?: IFFiltersMergeFilters): IFSFilter[] {
|
|
107
108
|
let newFilters = filters1.reduce((filters: IFSFilter[], filter1: IFSFilter) => {
|
|
108
109
|
const filter2Index = filters2.findIndex(filter2 => resolveFilterConditions(filter2, { column: filter1.column, dateSection: filter1.dateSection, panelid: filter1.extras.panelid, property: filter1.property, validator: filter1.validator }));
|
|
109
110
|
if (filter2Index > -1) {
|
|
110
|
-
filter1 = { ...filter1, values: mergeValues(filter1, filters2[filter2Index], settings
|
|
111
|
+
filter1 = { ...filter1, values: mergeValues(filter1, filters2[filter2Index], settings) };
|
|
112
|
+
filter1 = mergeFilterProps(filter1, filters2[filter2Index], settings);
|
|
111
113
|
filters2.splice(filter2Index, 1);
|
|
112
114
|
} else {
|
|
113
115
|
filter1 = { ...filter1, operator: settings.setGroupedColumnOperator ? FILTER_GROUPED_COLUMN_OPERATOR : filter1.operator };
|
|
114
116
|
}
|
|
117
|
+
filter1.filterid = getFilterid(filter1);
|
|
115
118
|
filters.push(filter1);
|
|
116
119
|
return filters;
|
|
117
120
|
}, [] as IFSFilter[]);
|
|
@@ -120,20 +123,42 @@ function mergeFilterss(filters1: IFSFilter[] = [], filters2: IFSFilter[] = [], s
|
|
|
120
123
|
return newFilters;
|
|
121
124
|
}
|
|
122
125
|
|
|
126
|
+
/**
|
|
127
|
+
* Gets a new filter structure when the setting is configured
|
|
128
|
+
* @param filter1 the target filter structure
|
|
129
|
+
* @param filter2 the filter to be used to merge the values
|
|
130
|
+
* @param settings configuration of the mergeFilter
|
|
131
|
+
* @returns a new filter structure with overwritted props
|
|
132
|
+
*/
|
|
133
|
+
function mergeFilterProps(filter1: IFSFilter, filter2: IFSFilter, settings?: IFFiltersMergeFilters) {
|
|
134
|
+
if (settings.overwriteFilterProps) {
|
|
135
|
+
filter1 = {
|
|
136
|
+
...filter1,
|
|
137
|
+
extras: filter2.extras,
|
|
138
|
+
enabled: filter2.enabled || filter1.enabled,
|
|
139
|
+
filterid: filter2.filterid,
|
|
140
|
+
lookupDisplayIndex: filter2.lookupDisplayIndex,
|
|
141
|
+
nullValues: filter2.nullValues,
|
|
142
|
+
selectAll: filter2.selectAll,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
return filter1;
|
|
146
|
+
}
|
|
147
|
+
|
|
123
148
|
/**
|
|
124
149
|
* Gets a new value structure array by merging two value structures
|
|
125
150
|
* @param filter1 the target filter structure
|
|
126
151
|
* @param filter2 the filter to be used to merge the values
|
|
127
|
-
* @param
|
|
152
|
+
* @param settings configuration of the mergeFilter
|
|
128
153
|
* @returns a new value structure array
|
|
129
154
|
*/
|
|
130
|
-
function mergeValues(filter1: IFSFilter, filter2: IFSFilter,
|
|
155
|
+
function mergeValues(filter1: IFSFilter, filter2: IFSFilter, settings?: IFFiltersMergeFilters): IFValue[] {
|
|
131
156
|
if (isEmpty(filter1) && isEmpty(filter2)) return [];
|
|
132
157
|
|
|
133
158
|
let newValues = [];
|
|
134
159
|
let filter1Values = filter1.values || [];
|
|
135
|
-
const filter2Values =
|
|
136
|
-
if (!
|
|
160
|
+
const filter2Values = filter2.values || [];
|
|
161
|
+
if (!settings.overwriteValues) {
|
|
137
162
|
if (isInValidator(filter1.validator)) {
|
|
138
163
|
newValues = filter2Values.reduce((values: IFValue[], value2: IFSValueRelativeDate) => {
|
|
139
164
|
const value1Index = (filter1Values as IFSValueRelativeDate[]).findIndex(value1 => value2.anchor === value1.anchor && value2.cursor === value1.cursor && value2.includeCurrent === value1.includeCurrent && value2.isCalendarDate === value1.isCalendarDate && value2.number === value1.number && value2.unit === value1.unit);
|
|
@@ -4,12 +4,12 @@ import { IFSData } from "../interfaces/common/IFSData";
|
|
|
4
4
|
import { getFiltersByAggregateColumn } from "./common/getFiltersByAggregateColumn";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
8
|
-
* @
|
|
9
|
-
* @param
|
|
10
|
-
* @
|
|
7
|
+
* @todo FIX AGGREGATE FILTERS
|
|
8
|
+
* @private
|
|
9
|
+
* @param filterData
|
|
10
|
+
* @param _summaries
|
|
11
|
+
* @returns the aggFilters structure
|
|
11
12
|
*/
|
|
12
|
-
// [TODO: FILTERS - FIX AGGREGATE FILTERS]
|
|
13
13
|
export function getAggFiltersFromFilterData(filterData: IFSData, _summaries: any[]): IFBFilterAggregate {
|
|
14
14
|
filterData = { ...getFiltersByAggregateColumn(filterData) };
|
|
15
15
|
if (isEmpty(filterData)) return;
|
|
@@ -16,11 +16,10 @@ import { getI18nDateGroupLabel } from "../../../globalization/helpers/getI18nDat
|
|
|
16
16
|
import { IDateColumnPropertyType } from "../../../columns/interfaces/IDateColumnPropertyType";
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
20
|
-
* @param filter
|
|
21
|
-
* @param
|
|
22
|
-
* @
|
|
23
|
-
* @returns
|
|
19
|
+
* Gets the UI Values generated depending on the validator
|
|
20
|
+
* @param filter the filter structure
|
|
21
|
+
* @param settings a settings for this function
|
|
22
|
+
* @returns the UI Values
|
|
24
23
|
*/
|
|
25
24
|
export function getUIValues(filter: IFSFilter, settings?: IFUUIValueSettings): IFUValue[] {
|
|
26
25
|
settings = getUiValuesSettings(settings);
|
|
@@ -29,7 +29,8 @@ export const formatWithLocale = (value: any, outputFormat: IFormatOutputFormat,
|
|
|
29
29
|
|
|
30
30
|
function formatLocaleDate(value: any, outputFormat: IFormatOutputFormat, config: IFormatConfig) {
|
|
31
31
|
const { lang = LANG_DEFAULT, options } = config;
|
|
32
|
-
const
|
|
32
|
+
const dateValue = value?.replace('.000Z', '');
|
|
33
|
+
const dateParam = new Date(dateValue);
|
|
33
34
|
let langOpts = options;
|
|
34
35
|
if (outputFormat?.originalFormat) {
|
|
35
36
|
const { format } = outputFormat.originalFormat;
|
|
@@ -42,25 +42,3 @@ function validateToReturnDefaultValue(baseObject: any, path: string | string[]):
|
|
|
42
42
|
path == null ||
|
|
43
43
|
(typeof path !== 'string' && !Array.isArray(path));
|
|
44
44
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
*
|
|
49
|
-
* /**
|
|
50
|
-
* Like lodash _.get.
|
|
51
|
-
* Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
|
|
52
|
-
* @param baseObject The object to query
|
|
53
|
-
* @param path The path of the property to get.
|
|
54
|
-
* @param defaultValue The value returned for undefined resolved values.
|
|
55
|
-
* @returns the resolved value.
|
|
56
|
-
export function get(baseObject: any, path: string, defaultValue?: any): any {
|
|
57
|
-
function fn() {
|
|
58
|
-
try {
|
|
59
|
-
const value = eval(`this.${path}`.replace('.[', '['));
|
|
60
|
-
return typeof value !== 'undefined' ? value : defaultValue;
|
|
61
|
-
} catch (e) { return defaultValue; }
|
|
62
|
-
}
|
|
63
|
-
return fn.apply(baseObject, null);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getArrayByProperty } from "../../general/array/getArrayByProperty";
|
|
2
2
|
import { isEmpty } from "../../general/mix/isEmpty";
|
|
3
|
-
import {
|
|
3
|
+
import { IWidgetConfig } from "../../interfaces/general/IWidgetConfig";
|
|
4
4
|
import { IDataset } from "../../qrvey/interfaces/IDataset";
|
|
5
5
|
import { getAllQrveys } from "./getAllQrveys.api";
|
|
6
6
|
import { getDatasetsByIds } from "./getDatasetsByIds.api";
|
|
@@ -15,7 +15,7 @@ import { getDatasetsByIds } from "./getDatasetsByIds.api";
|
|
|
15
15
|
* @param qrveyids Collection of Qrvey IDs for returning a set of available datasets
|
|
16
16
|
* @returns a promise that if it is resolved displays a collection of dataset info.
|
|
17
17
|
*/
|
|
18
|
-
export function getAllDatasets(config:
|
|
18
|
+
export function getAllDatasets(config: IWidgetConfig, qrveyids?: string[]): Promise<IDataset[]> {
|
|
19
19
|
if (Array.isArray(qrveyids) && isEmpty(qrveyids)) {
|
|
20
20
|
return Promise.resolve([] as IDataset[]);
|
|
21
21
|
} else if (Array.isArray(qrveyids) && !isEmpty(qrveyids)) {
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { IGeneralWidgetConfig } from '../../interfaces/general/IGeneralWidgetConfig';
|
|
2
1
|
import { IDataset } from '../../qrvey/interfaces/IDataset';
|
|
3
2
|
import { CHART_ENDPOINT } from '../constants/CHART_ENDPOINT';
|
|
4
3
|
import Request from '../helpers/Request';
|
|
5
4
|
import { BDatasetsToUIDatasets } from '../adapters/BDatasetsToUIDatasets.adapter';
|
|
6
5
|
import { getDefaultQuestionListOptionsAttributes } from '../helpers/getDefaultQuestionListOptionsAttributes';
|
|
7
6
|
import { chooseLang } from '../../format/localization';
|
|
7
|
+
import { IWidgetConfig } from '../../interfaces/general/IWidgetConfig';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Get a dataset by Qrvey ID
|
|
11
11
|
* @param qrveyid The Qrvey ID
|
|
12
12
|
* @returns a promise
|
|
13
13
|
*/
|
|
14
|
-
export function getDatasetColumns(config:
|
|
14
|
+
export function getDatasetColumns(config: IWidgetConfig, qrveyid?: string): Promise<IDataset[]> {
|
|
15
15
|
const lang = chooseLang(config);
|
|
16
16
|
return Request.post({ ...config, qrveyid, endpoint: CHART_ENDPOINT }, '/question/list', {
|
|
17
17
|
optionsAttributes: getDefaultQuestionListOptionsAttributes(),
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { IGeneralWidgetConfig } from '../../interfaces/general/IGeneralWidgetConfig';
|
|
2
1
|
import { IDataset } from '../../qrvey/interfaces/IDataset';
|
|
3
2
|
import Request from '../helpers/Request';
|
|
4
3
|
import { BDatasetsToUIDatasets } from '../adapters/BDatasetsToUIDatasets.adapter';
|
|
@@ -6,13 +5,14 @@ import { isEmpty } from '../../general/mix/isEmpty';
|
|
|
6
5
|
import { chooseLang } from '../../format/localization';
|
|
7
6
|
import { getDefaultQuestionListOptionsAttributes } from '../helpers/getDefaultQuestionListOptionsAttributes';
|
|
8
7
|
import { QUESTION_LIST_BULK_ENDPOINT } from '../constants/QUESTION_LIST_BULK_ENDPOINT';
|
|
8
|
+
import { IWidgetConfig } from '../../interfaces/general/IWidgetConfig';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Get a dataset by Qrvey ID
|
|
12
12
|
* @param qrveyid The Qrvey ID
|
|
13
13
|
* @returns a promise
|
|
14
14
|
*/
|
|
15
|
-
export function getDatasetsByIds(config:
|
|
15
|
+
export function getDatasetsByIds(config: IWidgetConfig, qrveyids: string[] = []): Promise<IDataset[]> {
|
|
16
16
|
if (Array.isArray(qrveyids) && !isEmpty(qrveyids)) {
|
|
17
17
|
const lang = chooseLang(config);
|
|
18
18
|
return Request.post({ ...config, endpoint: QUESTION_LIST_BULK_ENDPOINT }, '', {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|