@qrvey/utils 1.3.0-14 → 1.3.0-17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/.eslintrc.json +2 -0
  2. package/dist/cjs/columns/helpers/getDatasetColumnByDatasets.js +1 -1
  3. package/dist/cjs/filters/adapters/FDToLogic.js +3 -3
  4. package/dist/cjs/filters/helpers/common/getFiltersByDatasetsColumns.js +7 -2
  5. package/dist/cjs/globalization/helpers/getI18nDateGroupLabel.js +1 -1
  6. package/dist/cjs/globalization/interfaces/chart_builder/II18nChartBuilderStyleOptions.d.ts +10 -0
  7. package/dist/cjs/globalization/labels/chart_builder/I18N_CHART_BUILDER_STYLE_OPTIONS.js +10 -0
  8. package/dist/cjs/services/adapters/BBranchesMapToUIBranchesMap.adapter.js +3 -3
  9. package/dist/cjs/services/adapters/BColumnsToUIColumns.adapter.js +5 -4
  10. package/dist/cjs/services/adapters/BDatasetsToUIDatasets.adapter.js +3 -2
  11. package/dist/columns/helpers/getDatasetColumnByDatasets.js +1 -1
  12. package/dist/filters/adapters/FDToLogic.js +3 -3
  13. package/dist/filters/helpers/common/getFiltersByDatasetsColumns.js +7 -2
  14. package/dist/globalization/helpers/getI18nDateGroupLabel.js +1 -1
  15. package/dist/globalization/interfaces/chart_builder/II18nChartBuilderStyleOptions.d.ts +10 -0
  16. package/dist/globalization/labels/chart_builder/I18N_CHART_BUILDER_STYLE_OPTIONS.js +10 -0
  17. package/dist/services/adapters/BBranchesMapToUIBranchesMap.adapter.js +3 -3
  18. package/dist/services/adapters/BColumnsToUIColumns.adapter.js +5 -4
  19. package/dist/services/adapters/BDatasetsToUIDatasets.adapter.js +3 -2
  20. package/package.json +1 -1
  21. package/src/columns/helpers/getDatasetColumnByDatasets.ts +1 -1
  22. package/src/filters/adapters/FDToLogic.ts +5 -5
  23. package/src/filters/helpers/common/getFiltersByDatasetsColumns.ts +7 -2
  24. package/src/globalization/helpers/getI18nDateGroupLabel.ts +1 -1
  25. package/src/globalization/interfaces/chart_builder/II18nChartBuilderStyleOptions.ts +10 -0
  26. package/src/globalization/labels/chart_builder/I18N_CHART_BUILDER_STYLE_OPTIONS.ts +10 -0
  27. package/src/services/adapters/BBranchesMapToUIBranchesMap.adapter.ts +3 -3
  28. package/src/services/adapters/BColumnsToUIColumns.adapter.ts +5 -4
  29. package/src/services/adapters/BDatasetsToUIDatasets.adapter.ts +3 -2
package/.eslintrc.json CHANGED
@@ -20,7 +20,9 @@
20
20
  "comma-spacing": "off",
21
21
  "semi": "off",
22
22
  "no-unused-vars": "off",
23
+ "no-shadow": "off",
23
24
 
25
+ "@typescript-eslint/no-shadow": ["error"],
24
26
  "@typescript-eslint/no-inferrable-types": "warn",
25
27
  "@typescript-eslint/object-curly-spacing": ["warn", "always"],
26
28
  "@typescript-eslint/no-extra-semi": ["warn"],
@@ -13,7 +13,7 @@ const getDatasetColumn_1 = require("./getDatasetColumn");
13
13
  function getDatasetColumnByDatasets(column, datasets) {
14
14
  if ((0, isEmpty_1.isEmpty)(column) || (0, isEmpty_1.isEmpty)(datasets))
15
15
  return;
16
- const dataset = datasets.find(dataset => dataset.qrveyid === column.qrveyid);
16
+ const dataset = datasets.find(_dataset => _dataset.qrveyid === column.qrveyid);
17
17
  return (0, getDatasetColumn_1.getDatasetColumn)(column, dataset);
18
18
  }
19
19
  exports.getDatasetColumnByDatasets = getDatasetColumnByDatasets;
@@ -29,8 +29,9 @@ exports.FDToLogic = FDToLogic;
29
29
  * @returns a filter logic array
30
30
  */
31
31
  function getLogicBodyFromFD21(filterData) {
32
- let logics = [];
33
- logics = filterData.scopes.reduce((logics, scope) => {
32
+ if ((0, isEmpty_1.isEmpty)(filterData))
33
+ return [];
34
+ return filterData.scopes.reduce((logics, scope) => {
34
35
  const logic = buildLogic(scope);
35
36
  let filters = [];
36
37
  if (scope.datasets.length > 0) {
@@ -42,7 +43,6 @@ function getLogicBodyFromFD21(filterData) {
42
43
  logics.push(Object.assign(Object.assign({}, logic), { filters }));
43
44
  return logics;
44
45
  }, []);
45
- return logics;
46
46
  }
47
47
  function buildLogic(scopeSection) {
48
48
  return {
@@ -12,8 +12,10 @@ const isEmpty_1 = require("../../../general/mix/isEmpty");
12
12
  function getFiltersByDatasetsColumns(data, datasets = []) {
13
13
  if ((0, isEmpty_1.isEmpty)(data) || (0, isEmpty_1.isEmpty)(data.scopes))
14
14
  return;
15
- return Object.assign(Object.assign({}, data), { scopes: data.scopes.map(scope => (Object.assign(Object.assign({}, scope), { datasets: scope.datasets.map(filterDataset => {
16
- const dataset = datasets.find(data => data.qrveyid === filterDataset.qrveyid);
15
+ if ((0, isEmpty_1.isEmpty)(datasets))
16
+ return data;
17
+ const newData = Object.assign(Object.assign({}, data), { scopes: data.scopes.map(scope => (Object.assign(Object.assign({}, scope), { datasets: scope.datasets.map(filterDataset => {
18
+ const dataset = datasets.find(_data => _data.qrveyid === filterDataset.qrveyid);
17
19
  if (!(0, isEmpty_1.isEmpty)(dataset)) {
18
20
  return Object.assign(Object.assign({}, filterDataset), { filters: filterDataset.filters.map(filter => {
19
21
  const column = (dataset.options || []).find(cInfo => cInfo.id === filter.column.id && cInfo.qrveyid === filter.column.qrveyid);
@@ -23,5 +25,8 @@ function getFiltersByDatasetsColumns(data, datasets = []) {
23
25
  }).filter(Boolean) });
24
26
  }
25
27
  }).filter(dataset => !(0, isEmpty_1.isEmpty)(dataset) && dataset.filters.length > 0) }))).filter(scope => !(0, isEmpty_1.isEmpty)(scope) && scope.datasets.length > 0) });
28
+ if (!(0, isEmpty_1.isEmpty)(newData) && newData.scopes.length > 0) {
29
+ return newData;
30
+ }
26
31
  }
27
32
  exports.getFiltersByDatasetsColumns = getFiltersByDatasetsColumns;
@@ -29,7 +29,7 @@ function getI18nMonthLabel(label, translate) {
29
29
  }
30
30
  function getI18nYearMonthLabel(label, translate) {
31
31
  if (!(0, isTokenLabel_1.isTokenLabel)(label) && !(0, isEmpty_1.isEmpty)(translate)) {
32
- const month = getI18nMonthPropertyByIndex(DATE_YEAR_MONTHS_1.DATE_YEAR_MONTHS.findIndex(month => month === label));
32
+ const month = getI18nMonthPropertyByIndex(DATE_YEAR_MONTHS_1.DATE_YEAR_MONTHS.findIndex(_month => _month === label));
33
33
  if (!(0, isEmpty_1.isEmpty)(month))
34
34
  label = translate('common.date_grouping.' + month + '_mmm');
35
35
  }
@@ -11,6 +11,16 @@ export interface II18nChartBuilderStyleOptions {
11
11
  chart_type_disabled_message: string;
12
12
  comparision_color: string;
13
13
  data_labels_check: string;
14
+ data_labels_clustering: string;
15
+ data_labels_format: string;
16
+ data_labels_position: string;
17
+ data_labels_position_inside: string;
18
+ data_labels_position_outside: string;
19
+ data_labels_show_as: string;
20
+ data_labels_show_as_category: string;
21
+ data_labels_show_as_percentage: string;
22
+ data_labels_show_as_placeholder: string;
23
+ data_labels_show_as_value: string;
14
24
  default_format_title: string;
15
25
  display_outliers_check: string;
16
26
  line_opacity: string;
@@ -15,6 +15,16 @@ exports.I18N_CHART_BUILDER_STYLE_OPTIONS = {
15
15
  chart_type_disabled_message: '<i>Type</i> selection is disabled because stacked type configuration is in use.',
16
16
  comparision_color: 'Comparision Color',
17
17
  data_labels_check: 'Data Labels',
18
+ data_labels_clustering: '<i>Clustering</i> is inactive, enable it to use <i>{{text}}</i>.',
19
+ data_labels_format: '<i>% Difference</i> is active, disable it to set a different formatting.',
20
+ data_labels_position: 'Label Position',
21
+ data_labels_position_inside: 'Inside',
22
+ data_labels_position_outside: 'Outside',
23
+ data_labels_show_as: 'Show as',
24
+ data_labels_show_as_category: 'Category',
25
+ data_labels_show_as_percentage: 'Percentage',
26
+ data_labels_show_as_placeholder: 'Select Option',
27
+ data_labels_show_as_value: 'Value',
18
28
  default_format_title: 'Format',
19
29
  display_outliers_check: 'Display Outliers',
20
30
  line_opacity: 'Line Opacity',
@@ -11,9 +11,9 @@ const BColumnsToUIColumns_adapter_1 = require("./BColumnsToUIColumns.adapter");
11
11
  function BBranchesMapToUIBranchesMap(branchesMap) {
12
12
  if ((0, isEmpty_1.isEmpty)(branchesMap))
13
13
  return [];
14
- return branchesMap.map(branchesMap => ({
15
- questionid: branchesMap.questionid,
16
- branches: branchesMap.branches.map(branch => ({
14
+ return branchesMap.map(branchMap => ({
15
+ questionid: branchMap.questionid,
16
+ branches: branchMap.branches.map(branch => ({
17
17
  columns: (0, BColumnsToUIColumns_adapter_1.BColumnsToUIColumns)(branch.questions.data)
18
18
  }))
19
19
  }));
@@ -1,25 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BColumnsToUIColumns = void 0;
4
+ const getAttribute_1 = require("../../general/object/getAttribute");
4
5
  function BColumnsToUIColumns(columns = [], dataset) {
5
6
  return columns.map(column => ({
6
7
  answers: column.answers,
7
- bucketid: column.bucketId,
8
+ bucketid: (0, getAttribute_1.getAttribute)(column, 'bucket_id'),
8
9
  expressionCategory: column.activeCat,
9
10
  expressionNegative: column.negative,
10
11
  expressionPositive: column.positive,
11
12
  expressionWords: column.words,
12
- formulaid: column.formulaId,
13
+ formulaid: (0, getAttribute_1.getAttribute)(column, 'formula_id'),
13
14
  formulaType: column.formulaType,
14
15
  geogroup: column.geogroup,
15
16
  id: column.id,
16
17
  imageUploadOption: column.imageUploadOption,
17
18
  label: column.text,
18
19
  linked: column.linked,
19
- linkid: (dataset === null || dataset === void 0 ? void 0 : dataset.linkid) || column.linkid,
20
+ linkid: (0, getAttribute_1.getAttribute)(dataset, 'link_id') || (0, getAttribute_1.getAttribute)(column, 'link_id'),
20
21
  outputFormat: column.outputFormat,
21
22
  property: column.property,
22
- qrveyid: (dataset === null || dataset === void 0 ? void 0 : dataset.qrveyid) || column.qrveyid,
23
+ qrveyid: (0, getAttribute_1.getAttribute)(dataset, 'qrvey_id') || (0, getAttribute_1.getAttribute)(column, 'qrvey_id'),
23
24
  slidebarValue: column.sliderVal,
24
25
  lookupValue: column.value,
25
26
  type: column.type,
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BDatasetsToUIDatasets = void 0;
4
+ const getAttribute_1 = require("../../general/object/getAttribute");
4
5
  const BColumnsToUIColumns_adapter_1 = require("./BColumnsToUIColumns.adapter");
5
6
  function BDatasetsToUIDatasets(datasets = []) {
6
7
  return datasets.map(dataset => ({
7
- qrveyid: dataset.qrveyid,
8
+ qrveyid: (0, getAttribute_1.getAttribute)(dataset, 'qrvey_id'),
8
9
  label: dataset.name,
9
- linkid: dataset.linkid,
10
+ linkid: (0, getAttribute_1.getAttribute)(dataset, 'link_id'),
10
11
  options: (0, BColumnsToUIColumns_adapter_1.BColumnsToUIColumns)(dataset.options, dataset),
11
12
  }));
12
13
  }
@@ -10,6 +10,6 @@ import { getDatasetColumn } from "./getDatasetColumn";
10
10
  export function getDatasetColumnByDatasets(column, datasets) {
11
11
  if (isEmpty(column) || isEmpty(datasets))
12
12
  return;
13
- const dataset = datasets.find(dataset => dataset.qrveyid === column.qrveyid);
13
+ const dataset = datasets.find(_dataset => _dataset.qrveyid === column.qrveyid);
14
14
  return getDatasetColumn(column, dataset);
15
15
  }
@@ -25,8 +25,9 @@ export function FDToLogic(filterData) {
25
25
  * @returns a filter logic array
26
26
  */
27
27
  function getLogicBodyFromFD21(filterData) {
28
- let logics = [];
29
- logics = filterData.scopes.reduce((logics, scope) => {
28
+ if (isEmpty(filterData))
29
+ return [];
30
+ return filterData.scopes.reduce((logics, scope) => {
30
31
  const logic = buildLogic(scope);
31
32
  let filters = [];
32
33
  if (scope.datasets.length > 0) {
@@ -38,7 +39,6 @@ function getLogicBodyFromFD21(filterData) {
38
39
  logics.push(Object.assign(Object.assign({}, logic), { filters }));
39
40
  return logics;
40
41
  }, []);
41
- return logics;
42
42
  }
43
43
  function buildLogic(scopeSection) {
44
44
  return {
@@ -9,8 +9,10 @@ import { isEmpty } from "../../../general/mix/isEmpty";
9
9
  export function getFiltersByDatasetsColumns(data, datasets = []) {
10
10
  if (isEmpty(data) || isEmpty(data.scopes))
11
11
  return;
12
- return Object.assign(Object.assign({}, data), { scopes: data.scopes.map(scope => (Object.assign(Object.assign({}, scope), { datasets: scope.datasets.map(filterDataset => {
13
- const dataset = datasets.find(data => data.qrveyid === filterDataset.qrveyid);
12
+ if (isEmpty(datasets))
13
+ return data;
14
+ const newData = Object.assign(Object.assign({}, data), { scopes: data.scopes.map(scope => (Object.assign(Object.assign({}, scope), { datasets: scope.datasets.map(filterDataset => {
15
+ const dataset = datasets.find(_data => _data.qrveyid === filterDataset.qrveyid);
14
16
  if (!isEmpty(dataset)) {
15
17
  return Object.assign(Object.assign({}, filterDataset), { filters: filterDataset.filters.map(filter => {
16
18
  const column = (dataset.options || []).find(cInfo => cInfo.id === filter.column.id && cInfo.qrveyid === filter.column.qrveyid);
@@ -20,4 +22,7 @@ export function getFiltersByDatasetsColumns(data, datasets = []) {
20
22
  }).filter(Boolean) });
21
23
  }
22
24
  }).filter(dataset => !isEmpty(dataset) && dataset.filters.length > 0) }))).filter(scope => !isEmpty(scope) && scope.datasets.length > 0) });
25
+ if (!isEmpty(newData) && newData.scopes.length > 0) {
26
+ return newData;
27
+ }
23
28
  }
@@ -25,7 +25,7 @@ function getI18nMonthLabel(label, translate) {
25
25
  }
26
26
  function getI18nYearMonthLabel(label, translate) {
27
27
  if (!isTokenLabel(label) && !isEmpty(translate)) {
28
- const month = getI18nMonthPropertyByIndex(DATE_YEAR_MONTHS.findIndex(month => month === label));
28
+ const month = getI18nMonthPropertyByIndex(DATE_YEAR_MONTHS.findIndex(_month => _month === label));
29
29
  if (!isEmpty(month))
30
30
  label = translate('common.date_grouping.' + month + '_mmm');
31
31
  }
@@ -11,6 +11,16 @@ export interface II18nChartBuilderStyleOptions {
11
11
  chart_type_disabled_message: string;
12
12
  comparision_color: string;
13
13
  data_labels_check: string;
14
+ data_labels_clustering: string;
15
+ data_labels_format: string;
16
+ data_labels_position: string;
17
+ data_labels_position_inside: string;
18
+ data_labels_position_outside: string;
19
+ data_labels_show_as: string;
20
+ data_labels_show_as_category: string;
21
+ data_labels_show_as_percentage: string;
22
+ data_labels_show_as_placeholder: string;
23
+ data_labels_show_as_value: string;
14
24
  default_format_title: string;
15
25
  display_outliers_check: string;
16
26
  line_opacity: string;
@@ -12,6 +12,16 @@ export const I18N_CHART_BUILDER_STYLE_OPTIONS = {
12
12
  chart_type_disabled_message: '<i>Type</i> selection is disabled because stacked type configuration is in use.',
13
13
  comparision_color: 'Comparision Color',
14
14
  data_labels_check: 'Data Labels',
15
+ data_labels_clustering: '<i>Clustering</i> is inactive, enable it to use <i>{{text}}</i>.',
16
+ data_labels_format: '<i>% Difference</i> is active, disable it to set a different formatting.',
17
+ data_labels_position: 'Label Position',
18
+ data_labels_position_inside: 'Inside',
19
+ data_labels_position_outside: 'Outside',
20
+ data_labels_show_as: 'Show as',
21
+ data_labels_show_as_category: 'Category',
22
+ data_labels_show_as_percentage: 'Percentage',
23
+ data_labels_show_as_placeholder: 'Select Option',
24
+ data_labels_show_as_value: 'Value',
15
25
  default_format_title: 'Format',
16
26
  display_outliers_check: 'Display Outliers',
17
27
  line_opacity: 'Line Opacity',
@@ -8,9 +8,9 @@ import { BColumnsToUIColumns } from "./BColumnsToUIColumns.adapter";
8
8
  export function BBranchesMapToUIBranchesMap(branchesMap) {
9
9
  if (isEmpty(branchesMap))
10
10
  return [];
11
- return branchesMap.map(branchesMap => ({
12
- questionid: branchesMap.questionid,
13
- branches: branchesMap.branches.map(branch => ({
11
+ return branchesMap.map(branchMap => ({
12
+ questionid: branchMap.questionid,
13
+ branches: branchMap.branches.map(branch => ({
14
14
  columns: BColumnsToUIColumns(branch.questions.data)
15
15
  }))
16
16
  }));
@@ -1,22 +1,23 @@
1
+ import { getAttribute } from "../../general/object/getAttribute";
1
2
  export function BColumnsToUIColumns(columns = [], dataset) {
2
3
  return columns.map(column => ({
3
4
  answers: column.answers,
4
- bucketid: column.bucketId,
5
+ bucketid: getAttribute(column, 'bucket_id'),
5
6
  expressionCategory: column.activeCat,
6
7
  expressionNegative: column.negative,
7
8
  expressionPositive: column.positive,
8
9
  expressionWords: column.words,
9
- formulaid: column.formulaId,
10
+ formulaid: getAttribute(column, 'formula_id'),
10
11
  formulaType: column.formulaType,
11
12
  geogroup: column.geogroup,
12
13
  id: column.id,
13
14
  imageUploadOption: column.imageUploadOption,
14
15
  label: column.text,
15
16
  linked: column.linked,
16
- linkid: (dataset === null || dataset === void 0 ? void 0 : dataset.linkid) || column.linkid,
17
+ linkid: getAttribute(dataset, 'link_id') || getAttribute(column, 'link_id'),
17
18
  outputFormat: column.outputFormat,
18
19
  property: column.property,
19
- qrveyid: (dataset === null || dataset === void 0 ? void 0 : dataset.qrveyid) || column.qrveyid,
20
+ qrveyid: getAttribute(dataset, 'qrvey_id') || getAttribute(column, 'qrvey_id'),
20
21
  slidebarValue: column.sliderVal,
21
22
  lookupValue: column.value,
22
23
  type: column.type,
@@ -1,9 +1,10 @@
1
+ import { getAttribute } from "../../general/object/getAttribute";
1
2
  import { BColumnsToUIColumns } from "./BColumnsToUIColumns.adapter";
2
3
  export function BDatasetsToUIDatasets(datasets = []) {
3
4
  return datasets.map(dataset => ({
4
- qrveyid: dataset.qrveyid,
5
+ qrveyid: getAttribute(dataset, 'qrvey_id'),
5
6
  label: dataset.name,
6
- linkid: dataset.linkid,
7
+ linkid: getAttribute(dataset, 'link_id'),
7
8
  options: BColumnsToUIColumns(dataset.options, dataset),
8
9
  }));
9
10
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qrvey/utils",
3
- "version": "1.3.0-14",
3
+ "version": "1.3.0-17",
4
4
  "description": "Helper, Utils for all Qrvey Projects",
5
5
  "homepage": "https://bitbucket.org/qrvey/qrvey_utils/wiki/Home",
6
6
  "main": "dist/index.js",
@@ -14,6 +14,6 @@ import { getDatasetColumn } from "./getDatasetColumn";
14
14
  export function getDatasetColumnByDatasets(column: Partial<IColumn>, datasets: IDataset[]): IColumn {
15
15
  if (isEmpty(column) || isEmpty(datasets)) return;
16
16
 
17
- const dataset = datasets.find(dataset => dataset.qrveyid === column.qrveyid);
17
+ const dataset = datasets.find(_dataset => _dataset.qrveyid === column.qrveyid);
18
18
  return getDatasetColumn(column, dataset);
19
19
  }
@@ -33,8 +33,9 @@ export function FDToLogic(filterData: IFSData): IFBLogic[] {
33
33
  * @returns a filter logic array
34
34
  */
35
35
  function getLogicBodyFromFD21(filterData: IFSData): IFBLogic[] {
36
- let logics = [];
37
- logics = filterData.scopes.reduce((logics: IFBLogic[], scope: IFSScope) => {
36
+ if (isEmpty(filterData)) return [];
37
+
38
+ return filterData.scopes.reduce((logics: IFBLogic[], scope: IFSScope) => {
38
39
  const logic: IFBLogic = buildLogic(scope);
39
40
  let filters: IFBFilter[] = [];
40
41
  if (scope.datasets.length > 0) {
@@ -45,9 +46,8 @@ function getLogicBodyFromFD21(filterData: IFSData): IFBLogic[] {
45
46
  }
46
47
  logics.push({ ...logic, filters });
47
48
  return logics;
48
- }, [] as IFBLogic[]);
49
- return logics;
50
- }
49
+ }, [] as IFBLogic[]);
50
+ }
51
51
 
52
52
  function buildLogic(scopeSection: IFSScope): IFBLogic {
53
53
  return {
@@ -11,13 +11,14 @@ import { IFUData } from "../../interfaces/ui/IFUData";
11
11
  */
12
12
  export function getFiltersByDatasetsColumns(data: IFUData, datasets: IDataset[] = []): IFUData {
13
13
  if (isEmpty(data) || isEmpty(data.scopes)) return;
14
+ if (isEmpty(datasets)) return data;
14
15
 
15
- return {
16
+ const newData = {
16
17
  ...data,
17
18
  scopes: data.scopes.map(scope => ({
18
19
  ...scope,
19
20
  datasets: scope.datasets.map(filterDataset => {
20
- const dataset = datasets.find(data => data.qrveyid === filterDataset.qrveyid);
21
+ const dataset = datasets.find(_data => _data.qrveyid === filterDataset.qrveyid);
21
22
  if (!isEmpty(dataset)) {
22
23
  return {
23
24
  ...filterDataset,
@@ -32,4 +33,8 @@ export function getFiltersByDatasetsColumns(data: IFUData, datasets: IDataset[]
32
33
  }).filter(dataset => !isEmpty(dataset) && dataset.filters.length > 0)
33
34
  })).filter(scope => !isEmpty(scope) && scope.datasets.length > 0)
34
35
  };
36
+
37
+ if (!isEmpty(newData) && newData.scopes.length > 0) {
38
+ return newData;
39
+ }
35
40
  }
@@ -30,7 +30,7 @@ function getI18nMonthLabel(label: string, translate?: II18nServiceTranslate): st
30
30
 
31
31
  function getI18nYearMonthLabel(label: string, translate?: II18nServiceTranslate): string {
32
32
  if (!isTokenLabel(label) && !isEmpty(translate)) {
33
- const month = getI18nMonthPropertyByIndex(DATE_YEAR_MONTHS.findIndex(month => month === label));
33
+ const month = getI18nMonthPropertyByIndex(DATE_YEAR_MONTHS.findIndex(_month => _month === label));
34
34
  if (!isEmpty(month)) label = translate('common.date_grouping.' + month + '_mmm');
35
35
  }
36
36
  return label;
@@ -11,6 +11,16 @@ export interface II18nChartBuilderStyleOptions {
11
11
  chart_type_disabled_message: string;
12
12
  comparision_color: string;
13
13
  data_labels_check: string;
14
+ data_labels_clustering: string;
15
+ data_labels_format: string;
16
+ data_labels_position: string;
17
+ data_labels_position_inside: string;
18
+ data_labels_position_outside: string;
19
+ data_labels_show_as: string;
20
+ data_labels_show_as_category: string;
21
+ data_labels_show_as_percentage: string;
22
+ data_labels_show_as_placeholder: string;
23
+ data_labels_show_as_value: string;
14
24
  default_format_title: string;
15
25
  display_outliers_check: string;
16
26
  line_opacity: string;
@@ -18,6 +18,16 @@ export const I18N_CHART_BUILDER_STYLE_OPTIONS: Pick<II18nChartBuilder, StyleOpti
18
18
  chart_type_disabled_message: '<i>Type</i> selection is disabled because stacked type configuration is in use.',
19
19
  comparision_color: 'Comparision Color',
20
20
  data_labels_check: 'Data Labels',
21
+ data_labels_clustering: '<i>Clustering</i> is inactive, enable it to use <i>{{text}}</i>.',
22
+ data_labels_format: '<i>% Difference</i> is active, disable it to set a different formatting.',
23
+ data_labels_position: 'Label Position',
24
+ data_labels_position_inside: 'Inside',
25
+ data_labels_position_outside: 'Outside',
26
+ data_labels_show_as: 'Show as',
27
+ data_labels_show_as_category: 'Category',
28
+ data_labels_show_as_percentage: 'Percentage',
29
+ data_labels_show_as_placeholder: 'Select Option',
30
+ data_labels_show_as_value: 'Value',
21
31
  default_format_title: 'Format',
22
32
  display_outliers_check: 'Display Outliers',
23
33
  line_opacity: 'Line Opacity',
@@ -11,9 +11,9 @@ import { BColumnsToUIColumns } from "./BColumnsToUIColumns.adapter";
11
11
  export function BBranchesMapToUIBranchesMap(branchesMap: IBModelBranchesMap[]): IModelBranchesMap[] {
12
12
  if (isEmpty(branchesMap)) return [];
13
13
 
14
- return branchesMap.map(branchesMap => ({
15
- questionid: branchesMap.questionid,
16
- branches: branchesMap.branches.map(branch => ({
14
+ return branchesMap.map(branchMap => ({
15
+ questionid: branchMap.questionid,
16
+ branches: branchMap.branches.map(branch => ({
17
17
  columns: BColumnsToUIColumns(branch.questions.data)
18
18
  }))
19
19
  }));
@@ -1,26 +1,27 @@
1
1
  import { IBColumn } from "../../columns/interfaces/IBColumn";
2
2
  import { IColumn } from "../../columns/interfaces/IColumn";
3
+ import { getAttribute } from "../../general/object/getAttribute";
3
4
  import { IBDataset } from "../../qrvey/interfaces/IBDataset";
4
5
 
5
6
  export function BColumnsToUIColumns(columns: IBColumn[] = [], dataset?: IBDataset): IColumn[] {
6
7
  return columns.map<IColumn>(column => ({
7
8
  answers: column.answers,
8
- bucketid: column.bucketId,
9
+ bucketid: getAttribute(column, 'bucket_id'),
9
10
  expressionCategory: column.activeCat,
10
11
  expressionNegative: column.negative,
11
12
  expressionPositive: column.positive,
12
13
  expressionWords: column.words,
13
- formulaid: column.formulaId,
14
+ formulaid: getAttribute(column, 'formula_id'),
14
15
  formulaType: column.formulaType,
15
16
  geogroup: column.geogroup,
16
17
  id: column.id,
17
18
  imageUploadOption: column.imageUploadOption,
18
19
  label: column.text,
19
20
  linked: column.linked,
20
- linkid: dataset?.linkid || column.linkid,
21
+ linkid: getAttribute(dataset, 'link_id') || getAttribute(column, 'link_id'),
21
22
  outputFormat: column.outputFormat,
22
23
  property: column.property,
23
- qrveyid: dataset?.qrveyid || column.qrveyid,
24
+ qrveyid: getAttribute(dataset, 'qrvey_id') || getAttribute(column, 'qrvey_id'),
24
25
  slidebarValue: column.sliderVal,
25
26
  lookupValue: column.value,
26
27
  type: column.type,
@@ -1,12 +1,13 @@
1
+ import { getAttribute } from "../../general/object/getAttribute";
1
2
  import { IBDataset } from "../../qrvey/interfaces/IBDataset";
2
3
  import { IDataset } from "../../qrvey/interfaces/IDataset";
3
4
  import { BColumnsToUIColumns } from "./BColumnsToUIColumns.adapter";
4
5
 
5
6
  export function BDatasetsToUIDatasets(datasets: IBDataset[] = []): IDataset[] {
6
7
  return datasets.map(dataset => ({
7
- qrveyid: dataset.qrveyid,
8
+ qrveyid: getAttribute(dataset, 'qrvey_id'),
8
9
  label: dataset.name,
9
- linkid: dataset.linkid,
10
+ linkid: getAttribute(dataset, 'link_id'),
10
11
  options: BColumnsToUIColumns(dataset.options, dataset),
11
12
  }));
12
13
  }