@qrvey/utils 1.16.0-2 → 1.16.0-21

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 (165) hide show
  1. package/dist/cache-managers/cache-model-manager.js +6 -1
  2. package/dist/charts/adapters/RequestAdapterMetric.d.ts +2 -1
  3. package/dist/charts/adapters/RequestAdapterMetric.js +22 -5
  4. package/dist/charts/adapters/convertChartObjectFromV2toV1.d.ts +2 -0
  5. package/dist/charts/adapters/convertChartObjectFromV2toV1.js +63 -0
  6. package/dist/charts/adapters/getPanelBodyByChart.d.ts +2 -0
  7. package/dist/charts/adapters/getPanelBodyByChart.js +289 -0
  8. package/dist/charts/adapters/index.d.ts +2 -0
  9. package/dist/charts/adapters/index.js +2 -0
  10. package/dist/charts/constants/AGGREGATE.d.ts +3 -1
  11. package/dist/charts/constants/AGGREGATE.js +2 -0
  12. package/dist/charts/constants/AGGREGATE_ABBREVIATION.d.ts +3 -1
  13. package/dist/charts/constants/AGGREGATE_ABBREVIATION.js +2 -0
  14. package/dist/charts/constants/AGGREGATE_INFO.js +16 -0
  15. package/dist/charts/constants/AGGREGATE_LABEL.d.ts +3 -1
  16. package/dist/charts/constants/AGGREGATE_LABEL.js +2 -0
  17. package/dist/charts/constants/CHART_OBJECT.d.ts +564 -0
  18. package/dist/charts/constants/CHART_OBJECT.js +53 -0
  19. package/dist/charts/constants/QUESTION_TYPES.d.ts +241 -0
  20. package/dist/charts/constants/QUESTION_TYPES.js +410 -0
  21. package/dist/charts/constants/TIME_PERIOD.d.ts +10 -0
  22. package/dist/charts/constants/TIME_PERIOD.js +25 -0
  23. package/dist/charts/constants/index.d.ts +3 -0
  24. package/dist/charts/constants/index.js +3 -0
  25. package/dist/charts/helpers/chartTypes.d.ts +24 -0
  26. package/dist/charts/helpers/chartTypes.js +118 -0
  27. package/dist/charts/helpers/defaultColumnBuilder.d.ts +56 -0
  28. package/dist/charts/helpers/defaultColumnBuilder.js +322 -0
  29. package/dist/charts/helpers/getChartDimensions.d.ts +2 -0
  30. package/dist/charts/helpers/getChartDimensions.js +263 -0
  31. package/dist/charts/helpers/index.d.ts +4 -0
  32. package/dist/charts/helpers/index.js +4 -0
  33. package/dist/charts/helpers/styleSettingsByChartType.d.ts +60 -0
  34. package/dist/charts/helpers/styleSettingsByChartType.js +532 -0
  35. package/dist/charts/interfaces/IChartV2.d.ts +537 -0
  36. package/dist/charts/interfaces/IChartV2.js +33 -0
  37. package/dist/charts/interfaces/IRequestAdapterMetric.d.ts +5 -2
  38. package/dist/charts/interfaces/index.d.ts +1 -0
  39. package/dist/charts/interfaces/index.js +1 -0
  40. package/dist/cjs/cache-managers/cache-model-manager.js +6 -1
  41. package/dist/cjs/charts/adapters/RequestAdapterMetric.d.ts +2 -1
  42. package/dist/cjs/charts/adapters/RequestAdapterMetric.js +24 -6
  43. package/dist/cjs/charts/adapters/convertChartObjectFromV2toV1.d.ts +2 -0
  44. package/dist/cjs/charts/adapters/convertChartObjectFromV2toV1.js +67 -0
  45. package/dist/cjs/charts/adapters/getPanelBodyByChart.d.ts +2 -0
  46. package/dist/cjs/charts/adapters/getPanelBodyByChart.js +294 -0
  47. package/dist/cjs/charts/adapters/index.d.ts +2 -0
  48. package/dist/cjs/charts/adapters/index.js +2 -0
  49. package/dist/cjs/charts/constants/AGGREGATE.d.ts +3 -1
  50. package/dist/cjs/charts/constants/AGGREGATE.js +2 -0
  51. package/dist/cjs/charts/constants/AGGREGATE_ABBREVIATION.d.ts +3 -1
  52. package/dist/cjs/charts/constants/AGGREGATE_ABBREVIATION.js +2 -0
  53. package/dist/cjs/charts/constants/AGGREGATE_INFO.js +16 -0
  54. package/dist/cjs/charts/constants/AGGREGATE_LABEL.d.ts +3 -1
  55. package/dist/cjs/charts/constants/AGGREGATE_LABEL.js +2 -0
  56. package/dist/cjs/charts/constants/CHART_OBJECT.d.ts +564 -0
  57. package/dist/cjs/charts/constants/CHART_OBJECT.js +56 -0
  58. package/dist/cjs/charts/constants/QUESTION_TYPES.d.ts +241 -0
  59. package/dist/cjs/charts/constants/QUESTION_TYPES.js +413 -0
  60. package/dist/cjs/charts/constants/TIME_PERIOD.d.ts +10 -0
  61. package/dist/cjs/charts/constants/TIME_PERIOD.js +28 -0
  62. package/dist/cjs/charts/constants/index.d.ts +3 -0
  63. package/dist/cjs/charts/constants/index.js +3 -0
  64. package/dist/cjs/charts/helpers/chartTypes.d.ts +24 -0
  65. package/dist/cjs/charts/helpers/chartTypes.js +138 -0
  66. package/dist/cjs/charts/helpers/defaultColumnBuilder.d.ts +56 -0
  67. package/dist/cjs/charts/helpers/defaultColumnBuilder.js +326 -0
  68. package/dist/cjs/charts/helpers/getChartDimensions.d.ts +2 -0
  69. package/dist/cjs/charts/helpers/getChartDimensions.js +267 -0
  70. package/dist/cjs/charts/helpers/index.d.ts +4 -0
  71. package/dist/cjs/charts/helpers/index.js +4 -0
  72. package/dist/cjs/charts/helpers/styleSettingsByChartType.d.ts +60 -0
  73. package/dist/cjs/charts/helpers/styleSettingsByChartType.js +541 -0
  74. package/dist/cjs/charts/interfaces/IChartV2.d.ts +537 -0
  75. package/dist/cjs/charts/interfaces/IChartV2.js +36 -0
  76. package/dist/cjs/charts/interfaces/IRequestAdapterMetric.d.ts +5 -2
  77. package/dist/cjs/charts/interfaces/index.d.ts +1 -0
  78. package/dist/cjs/charts/interfaces/index.js +1 -0
  79. package/dist/cjs/column_format/helpers/columnTypeByChart.js +3 -1
  80. package/dist/cjs/columns/interfaces/IColumn.d.ts +1 -0
  81. package/dist/cjs/columns/interfaces/IColunmCalculation.d.ts +5 -0
  82. package/dist/cjs/constants/Charts.Const.d.ts +2 -1
  83. package/dist/cjs/constants/Charts.Const.js +1 -0
  84. package/dist/cjs/elements/helpers/fixed.d.ts +12 -1
  85. package/dist/cjs/elements/helpers/fixed.js +33 -8
  86. package/dist/cjs/elements/helpers/gridStrategy.d.ts +13 -0
  87. package/dist/cjs/elements/helpers/gridStrategy.js +31 -3
  88. package/dist/cjs/elements/helpers/responsive.d.ts +11 -1
  89. package/dist/cjs/elements/helpers/responsive.js +31 -1
  90. package/dist/cjs/elements/utils/fixed.position.d.ts +1 -0
  91. package/dist/cjs/elements/utils/fixed.position.js +8 -1
  92. package/dist/cjs/filters/constants/common/FILTER_SCOPE.d.ts +1 -0
  93. package/dist/cjs/filters/constants/common/FILTER_SCOPE.js +1 -0
  94. package/dist/cjs/filters/constants/common/FILTER_SCOPES.js +1 -0
  95. package/dist/cjs/filters/constants/common/FILTER_SCOPE_INFO.js +8 -0
  96. package/dist/cjs/filters/constants/common/FILTER_SCOPE_LABEL.d.ts +1 -0
  97. package/dist/cjs/filters/constants/common/FILTER_SCOPE_LABEL.js +1 -0
  98. package/dist/cjs/filters/constants/settings/FILTER_SETTINGS_DEFAULT.js +29 -6
  99. package/dist/cjs/filters/helpers/common/excludeFiltersByDatasetsColumns.d.ts +10 -0
  100. package/dist/cjs/filters/helpers/common/excludeFiltersByDatasetsColumns.js +64 -0
  101. package/dist/cjs/filters/helpers/common/index.d.ts +1 -0
  102. package/dist/cjs/filters/helpers/common/index.js +1 -0
  103. package/dist/cjs/format/duration/durationFormatter.js +4 -1
  104. package/dist/cjs/formulas/constants/FORMULA.d.ts +1 -0
  105. package/dist/cjs/formulas/constants/FORMULA.js +2 -1
  106. package/dist/cjs/globalization/interfaces/chart_builder/II18nChartBuilderGeneralOptions.d.ts +4 -0
  107. package/dist/cjs/globalization/interfaces/chart_builder/II18nChartBuilderMessagesDefault.d.ts +1 -0
  108. package/dist/cjs/globalization/interfaces/chart_builder/II18nChartBuilderMessagesGeneral.d.ts +1 -0
  109. package/dist/cjs/globalization/interfaces/chart_builder/II18nChartBuilderStyleOptions.d.ts +4 -0
  110. package/dist/cjs/globalization/interfaces/dashboard/II18nDashboardAddChart.d.ts +1 -0
  111. package/dist/cjs/globalization/interfaces/filters/II18nFilterPanelScopeTitle.d.ts +1 -0
  112. package/dist/cjs/globalization/interfaces/filters/II18nFilterScopes.d.ts +1 -0
  113. package/dist/cjs/globalization/interfaces/formula_builder/II18nFormulaBuilderCreateModal.d.ts +2 -0
  114. package/dist/cjs/globalization/interfaces/formula_builder/II18nFormulaBuilderV2Functions.d.ts +7 -7
  115. package/dist/cjs/globalization/labels/chart_builder/I18N_CHART_BUILDER_GENERAL.js +2 -0
  116. package/dist/cjs/globalization/labels/chart_builder/I18N_CHART_BUILDER_GENERAL_OPTIONS.js +4 -0
  117. package/dist/cjs/globalization/labels/chart_builder/I18N_CHART_BUILDER_STYLE_OPTIONS.js +4 -0
  118. package/dist/cjs/globalization/labels/dashboard/I18N_DASHBOARD.js +1 -0
  119. package/dist/cjs/globalization/labels/filters/I18N_FILTER.js +1 -0
  120. package/dist/cjs/globalization/labels/filters/I18N_FILTER_SCOPE.js +1 -0
  121. package/dist/cjs/globalization/labels/formula_builder/I18N_FORMULA_BUILDER.js +16 -14
  122. package/dist/column_format/helpers/columnTypeByChart.js +4 -2
  123. package/dist/columns/interfaces/IColumn.d.ts +1 -0
  124. package/dist/columns/interfaces/IColunmCalculation.d.ts +5 -0
  125. package/dist/constants/Charts.Const.d.ts +2 -1
  126. package/dist/constants/Charts.Const.js +1 -0
  127. package/dist/elements/helpers/fixed.d.ts +12 -1
  128. package/dist/elements/helpers/fixed.js +30 -6
  129. package/dist/elements/helpers/gridStrategy.d.ts +13 -0
  130. package/dist/elements/helpers/gridStrategy.js +31 -4
  131. package/dist/elements/helpers/responsive.d.ts +11 -1
  132. package/dist/elements/helpers/responsive.js +29 -0
  133. package/dist/elements/utils/fixed.position.d.ts +1 -0
  134. package/dist/elements/utils/fixed.position.js +6 -0
  135. package/dist/filters/constants/common/FILTER_SCOPE.d.ts +1 -0
  136. package/dist/filters/constants/common/FILTER_SCOPE.js +1 -0
  137. package/dist/filters/constants/common/FILTER_SCOPES.js +1 -0
  138. package/dist/filters/constants/common/FILTER_SCOPE_INFO.js +8 -0
  139. package/dist/filters/constants/common/FILTER_SCOPE_LABEL.d.ts +1 -0
  140. package/dist/filters/constants/common/FILTER_SCOPE_LABEL.js +1 -0
  141. package/dist/filters/constants/settings/FILTER_SETTINGS_DEFAULT.js +29 -6
  142. package/dist/filters/helpers/common/excludeFiltersByDatasetsColumns.d.ts +10 -0
  143. package/dist/filters/helpers/common/excludeFiltersByDatasetsColumns.js +60 -0
  144. package/dist/filters/helpers/common/index.d.ts +1 -0
  145. package/dist/filters/helpers/common/index.js +1 -0
  146. package/dist/format/duration/durationFormatter.js +4 -1
  147. package/dist/formulas/constants/FORMULA.d.ts +1 -0
  148. package/dist/formulas/constants/FORMULA.js +1 -0
  149. package/dist/globalization/interfaces/chart_builder/II18nChartBuilderGeneralOptions.d.ts +4 -0
  150. package/dist/globalization/interfaces/chart_builder/II18nChartBuilderMessagesDefault.d.ts +1 -0
  151. package/dist/globalization/interfaces/chart_builder/II18nChartBuilderMessagesGeneral.d.ts +1 -0
  152. package/dist/globalization/interfaces/chart_builder/II18nChartBuilderStyleOptions.d.ts +4 -0
  153. package/dist/globalization/interfaces/dashboard/II18nDashboardAddChart.d.ts +1 -0
  154. package/dist/globalization/interfaces/filters/II18nFilterPanelScopeTitle.d.ts +1 -0
  155. package/dist/globalization/interfaces/filters/II18nFilterScopes.d.ts +1 -0
  156. package/dist/globalization/interfaces/formula_builder/II18nFormulaBuilderCreateModal.d.ts +2 -0
  157. package/dist/globalization/interfaces/formula_builder/II18nFormulaBuilderV2Functions.d.ts +7 -7
  158. package/dist/globalization/labels/chart_builder/I18N_CHART_BUILDER_GENERAL.js +2 -0
  159. package/dist/globalization/labels/chart_builder/I18N_CHART_BUILDER_GENERAL_OPTIONS.js +4 -0
  160. package/dist/globalization/labels/chart_builder/I18N_CHART_BUILDER_STYLE_OPTIONS.js +4 -0
  161. package/dist/globalization/labels/dashboard/I18N_DASHBOARD.js +1 -0
  162. package/dist/globalization/labels/filters/I18N_FILTER.js +1 -0
  163. package/dist/globalization/labels/filters/I18N_FILTER_SCOPE.js +1 -0
  164. package/dist/globalization/labels/formula_builder/I18N_FORMULA_BUILDER.js +16 -14
  165. package/package.json +3 -3
@@ -0,0 +1,2 @@
1
+ import { ChartV2Model } from "../interfaces/IChartV2";
2
+ export declare const convertChartObjectFromV2toV1: (v2Model: ChartV2Model, inPreviewMode?: boolean) => any;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.convertChartObjectFromV2toV1 = void 0;
4
+ const constants_1 = require("../../constants");
5
+ const general_1 = require("../../general");
6
+ const chartTypes_1 = require("../helpers/chartTypes");
7
+ const getChartDimensions_1 = require("../helpers/getChartDimensions");
8
+ const getPanelBodyByChart_1 = require("./getPanelBodyByChart");
9
+ const convertChartObjectFromV2toV1 = (v2Model, inPreviewMode = true) => {
10
+ if (!(v2Model === null || v2Model === void 0 ? void 0 : v2Model.stylesSettings) ||
11
+ (((0, chartTypes_1.isChartMetric)(v2Model.type) || (0, chartTypes_1.isChartMinMax)(v2Model.type)) &&
12
+ (0, general_1.isEmpty)(v2Model.dimensions.values))) {
13
+ return;
14
+ }
15
+ const objCopy = (0, general_1.objectCopy)(v2Model);
16
+ const chart_ms = [
17
+ constants_1.CHART_TYPE.BAR_CHART_MS,
18
+ constants_1.CHART_TYPE.LINE_CHART_MS,
19
+ constants_1.CHART_TYPE.SYMBOL_CHART_MS,
20
+ constants_1.CHART_TYPE.AREA_CHART_MS,
21
+ ];
22
+ const chart_cb = [...chart_ms, constants_1.CHART_TYPE.COMBO_CHART];
23
+ const chart_base = [
24
+ constants_1.CHART_TYPE.BAR_CHART,
25
+ constants_1.CHART_TYPE.LINE_CHART,
26
+ constants_1.CHART_TYPE.SYMBOL_CHART,
27
+ constants_1.CHART_TYPE.MINMAX_CHART,
28
+ constants_1.CHART_TYPE.FUNNEL_CHART,
29
+ constants_1.CHART_TYPE.AREA_CHART,
30
+ ];
31
+ const bar_type = objCopy.stylesSettings.bar_type;
32
+ objCopy.bar_width = objCopy.stylesSettings.bar_width;
33
+ objCopy.isMulti = (0, chartTypes_1.isChartMultiserie)(objCopy.type);
34
+ objCopy.isChartOptions = [...chart_base, ...chart_cb].includes(objCopy.type);
35
+ objCopy.isCombolayer = [
36
+ constants_1.CHART_TYPE.COMBO_CHART,
37
+ constants_1.CHART_TYPE.COMBINED_CHART,
38
+ constants_1.CHART_TYPE.RADAR_CHART,
39
+ ].includes(objCopy.type);
40
+ objCopy.isReference = (0, chartTypes_1.hasReferenceLayer)(v2Model.dimensions.reference);
41
+ objCopy.isTrend =
42
+ objCopy.type !== constants_1.CHART_TYPE.MINMAX_CHART &&
43
+ (0, chartTypes_1.hasTrendLayer)(v2Model.dimensions.trend);
44
+ const isBarMs = objCopy.isMulti && objCopy.type === constants_1.CHART_TYPE.BAR_CHART_MS;
45
+ objCopy.is100 = isBarMs && bar_type === "h100";
46
+ objCopy.isCombo =
47
+ objCopy.isTrend ||
48
+ objCopy.isMulti ||
49
+ objCopy.isCombolayer ||
50
+ objCopy.isReference;
51
+ objCopy.isComboCalc = objCopy.isCombolayer;
52
+ objCopy.isStakedBar =
53
+ (isBarMs || objCopy.isCombo) &&
54
+ (objCopy.is100 || bar_type === "Stacked") &&
55
+ objCopy.type !== constants_1.CHART_TYPE.BAR_CHART;
56
+ objCopy.isSmallMultiples =
57
+ [...chart_base, ...chart_cb].includes(objCopy.type) &&
58
+ objCopy.type !== constants_1.CHART_TYPE.FUNNEL_CHART &&
59
+ (0, chartTypes_1.hasSmallMultiple)(v2Model.dimensions.smallmultiple);
60
+ const layerList = (0, getChartDimensions_1.getChartLayerList)(objCopy);
61
+ if (!layerList)
62
+ return;
63
+ const data = (0, getPanelBodyByChart_1.getPanelBodyByChart)(objCopy.type, objCopy, layerList, inPreviewMode);
64
+ data.v2 = v2Model;
65
+ return data;
66
+ };
67
+ exports.convertChartObjectFromV2toV1 = convertChartObjectFromV2toV1;
@@ -0,0 +1,2 @@
1
+ export declare const randomKey: () => string;
2
+ export declare const getPanelBodyByChart: (chart: any, obj: any, layerList: any, inPreviewMode: any) => any;
@@ -0,0 +1,294 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPanelBodyByChart = exports.randomKey = void 0;
4
+ const constants_1 = require("../../constants");
5
+ const general_1 = require("../../general");
6
+ const TIME_PERIOD_1 = require("../constants/TIME_PERIOD");
7
+ const chartTypes_1 = require("../helpers/chartTypes");
8
+ const styleSettingsByChartType_1 = require("../helpers/styleSettingsByChartType");
9
+ const parsePropertyComplexData = (column) => {
10
+ return (0, general_1._get)(column, "property.value", null);
11
+ };
12
+ const randomKey = () => {
13
+ return (Date.now() + Math.random() * 1e17).toString(36);
14
+ };
15
+ exports.randomKey = randomKey;
16
+ const setTotalAggregateInPreview = (totalAggregate, _inPreviewMode) => {
17
+ if (!totalAggregate)
18
+ return;
19
+ return totalAggregate;
20
+ };
21
+ const columnKey = (id, type, prop = "", index = 0) => {
22
+ const fixedProp = prop !== null ? prop["value"] || prop || "" : "";
23
+ const idx = index === void 0 ? "" : `|${index}`;
24
+ return `${id}|${type}|${fixedProp}${idx}`;
25
+ };
26
+ const parseSortOrder = (chartType, column) => {
27
+ const sortDirection = column.sortOrder || typeof column.sorting !== "string"
28
+ ? (0, general_1._get)(column, "sorting.order")
29
+ : column.sorting;
30
+ if (chartType === constants_1.CHART_TYPE.CROSSTAB_CHART) {
31
+ const isDategroupSortOpt = typeof sortDirection === "string" && column.dateGroup;
32
+ return Object.assign(Object.assign({}, (typeof column.sorting !== "string" ? column.sorting : {})), { order: isDategroupSortOpt
33
+ ? {
34
+ [column.dateGroup.text]: sortDirection || "asc",
35
+ }
36
+ : sortDirection });
37
+ }
38
+ const isDategroupSortOpt = column.dateGroup && typeof sortDirection !== "string";
39
+ return Object.assign(Object.assign({}, (typeof column.sorting !== "string" ? column.sorting : {})), { order: isDategroupSortOpt
40
+ ? sortDirection &&
41
+ (0, general_1._get)(column, `sorting.order.${column.dateGroup.text}`)
42
+ : sortDirection });
43
+ };
44
+ const getTableConfig = (chart, inPreviewMode, isTrendChart = false) => {
45
+ const fields = {
46
+ groupsList: [],
47
+ columnsList: [],
48
+ };
49
+ const params = [
50
+ { objKey: "categories", fieldKey: "groupsList", type: "group" },
51
+ { objKey: "values", fieldKey: "columnsList", type: "column" },
52
+ ];
53
+ let count = 0;
54
+ params.forEach((param) => {
55
+ var _a;
56
+ if ((_a = chart.dimensions[param.objKey]) === null || _a === void 0 ? void 0 : _a.length) {
57
+ fields[param.fieldKey] = chart.dimensions[param.objKey].map((item) => {
58
+ const column = {
59
+ data: Object.assign(Object.assign({}, item), { property: parsePropertyComplexData(item) }),
60
+ index: new Date().getTime() + (0, exports.randomKey)(),
61
+ type: param.type,
62
+ label: item.label || item.text,
63
+ visualization: item.visualization || "Values",
64
+ aggregate: setTotalAggregateInPreview(item.totalAggregate, inPreviewMode),
65
+ calculation: chart.dimensions["categories"].length
66
+ ? (0, chartTypes_1.parseCalculation)(item, chart)
67
+ : null,
68
+ dataField: columnKey(item.id, item.type, item.property, count + 1),
69
+ qrveyid: item.qrveyid,
70
+ dateGroup: item.dateGroup,
71
+ sorting: parseSortOrder(chart.type, item),
72
+ sortIndex: item.sortIndex,
73
+ width: item.width,
74
+ groupAggregate: undefined,
75
+ };
76
+ if (item.aggregate)
77
+ column.groupAggregate = Object.assign({}, item.aggregate);
78
+ count += 1;
79
+ return column;
80
+ });
81
+ }
82
+ });
83
+ if (isTrendChart)
84
+ return { fields };
85
+ const isGrouped = fields.groupsList && !!fields.groupsList.length;
86
+ return {
87
+ fields,
88
+ isGrouped,
89
+ conditions: chart.conditions,
90
+ visualization: (0, styleSettingsByChartType_1.parseStyleSettingByType)(constants_1.CHART_TYPE.TABLE_CHART, Object.assign(Object.assign({}, chart), { isGrouped })),
91
+ totals: chart.dimensions.tableTotals,
92
+ isMultipleSorted: chart.isMultipleSorted,
93
+ trendsChart: chart.trendsCharts || [],
94
+ };
95
+ };
96
+ const getCrosstabConfig = (opts) => {
97
+ const fields = {};
98
+ const params = [
99
+ { objKey: "pivots", fieldKey: "columnsList", type: "column" },
100
+ { objKey: "categories", fieldKey: "rowsList", type: "row" },
101
+ { objKey: "values", fieldKey: "valuesList", type: "data" },
102
+ ];
103
+ params.forEach((param) => {
104
+ var _a;
105
+ const dimension = param.objKey === "values" && !((_a = opts.dimensions[param.objKey]) === null || _a === void 0 ? void 0 : _a.length)
106
+ ? [opts.dimensions.categories[0] || opts.dimensions.pivots[0]]
107
+ : opts.dimensions[param.objKey];
108
+ fields[param.fieldKey] = dimension.map((item) => {
109
+ const column = {
110
+ data: Object.assign(Object.assign({}, item), { property: parsePropertyComplexData(item) }),
111
+ index: new Date().getTime() + (0, exports.randomKey)(),
112
+ type: param.type,
113
+ qrveyid: item.qrveyid,
114
+ label: item.label || item.text,
115
+ sorting: parseSortOrder(opts.type, item),
116
+ dateGroup: undefined,
117
+ aggregate: undefined,
118
+ };
119
+ if (item.dateGroup) {
120
+ column.dateGroup = item.dateGroup;
121
+ }
122
+ if (item.aggregate && param.type === "data") {
123
+ column.aggregate = Object.assign({}, item.aggregate);
124
+ }
125
+ return column;
126
+ });
127
+ });
128
+ const rowGrandTotals = ["SHOW", "ROWSONLY"].includes(opts.globalSettings.crosstab_totals.option);
129
+ const columnGrandTotals = ["SHOW", "COLUMNSONLY"].includes(opts.globalSettings.crosstab_totals.option);
130
+ return {
131
+ fields,
132
+ visualization: (0, styleSettingsByChartType_1.parseStyleSettingByType)(constants_1.CHART_TYPE.CROSSTAB_CHART, opts),
133
+ config: {
134
+ showBorders: false,
135
+ width: 442,
136
+ height: 361,
137
+ fieldChooser: { enabled: false },
138
+ fieldPanel: {
139
+ visible: opts.globalSettings.crosstab_labels.value,
140
+ showFilterFields: false,
141
+ allowFieldDragging: false,
142
+ showColumnFields: true,
143
+ showRowFields: true,
144
+ showDataFields: false,
145
+ texts: { columnFieldArea: "", rowFieldArea: "" },
146
+ },
147
+ rowHeaderLayout: "tree",
148
+ showRowGrandTotals: opts.globalSettings.crosstab_totals.value && rowGrandTotals,
149
+ showColumnGrandTotals: opts.globalSettings.crosstab_totals.value && columnGrandTotals,
150
+ showRowTotals: opts.globalSettings.crosstab_subtotals,
151
+ showColumnTotals: opts.globalSettings.crosstab_subtotals,
152
+ allowSorting: opts.globalSettings.crosstab_labels.options.sorting,
153
+ allowSortingBySummary: false,
154
+ },
155
+ };
156
+ };
157
+ const getGeoMapConfig = (opts) => {
158
+ const fields = {};
159
+ const params = [
160
+ { objKey: "categories", fieldKey: "categories", type: "column" },
161
+ { objKey: "values", fieldKey: "values", type: "column" },
162
+ ];
163
+ params.forEach((param) => {
164
+ var _a;
165
+ if ((_a = opts.dimensions[param.objKey]) === null || _a === void 0 ? void 0 : _a.length) {
166
+ fields[param.fieldKey] = opts.dimensions[param.objKey].map((item) => {
167
+ const column = {
168
+ data: Object.assign(Object.assign({}, item), { property: parsePropertyComplexData(item) }),
169
+ index: new Date().getTime() + (0, exports.randomKey)(),
170
+ type: param.type,
171
+ qrveyid: item.qrveyid,
172
+ aggregate: undefined,
173
+ };
174
+ if (item.aggregate && param.type === "data") {
175
+ column.aggregate = Object.assign({}, item.aggregate);
176
+ }
177
+ return column;
178
+ });
179
+ }
180
+ });
181
+ return {
182
+ fields,
183
+ };
184
+ };
185
+ const getMetricConfigData = (chart, obj) => {
186
+ const { values, thresholds, comparison } = (0, general_1.objectCopy)(obj.dimensions);
187
+ let data = {
188
+ value: Object.assign(Object.assign({}, values[0]), { property: parsePropertyComplexData(values[0]) }),
189
+ dataSet: {},
190
+ valueAggregate: values[0] && values[0].aggregate,
191
+ dateColumn: undefined,
192
+ timePeriod: undefined,
193
+ comparison: undefined,
194
+ timePeriodCustomRange: undefined,
195
+ timePeriodDate: undefined,
196
+ timePeriodEndDate: undefined,
197
+ comparisonCustomRange: undefined,
198
+ comparisonDate: undefined,
199
+ comparisonEndDate: undefined,
200
+ };
201
+ if (comparison[0]) {
202
+ const dateColumn = Object.assign({}, comparison[0]);
203
+ const config = dateColumn.comparison;
204
+ delete dateColumn.comparison;
205
+ data = Object.assign(Object.assign({}, data), { dateColumn, timePeriod: TIME_PERIOD_1.timePeriod.find((tp) => tp.label === config.time_period.value), comparison: TIME_PERIOD_1.timePeriod.find((tp) => tp.label === config.time_comparison.value) });
206
+ if (config.time_period.value === "CUSTOM_RANGE" /* CUSTOM_RANGE */) {
207
+ data = Object.assign(Object.assign({}, data), { timePeriodCustomRange: TIME_PERIOD_1.timePeriodCustomRange.find((tpc) => tpc.label === config.time_period.range), timePeriodDate: config.time_period.start, timePeriodEndDate: config.time_period.end });
208
+ }
209
+ if (config.time_comparison.value === "CUSTOM_RANGE" /* CUSTOM_RANGE */) {
210
+ data = Object.assign(Object.assign({}, data), { comparisonCustomRange: TIME_PERIOD_1.timePeriodCustomRange.find((tpc) => tpc.label === config.time_comparison.range), comparisonDate: config.time_comparison.start, comparisonEndDate: config.time_comparison.end });
211
+ }
212
+ }
213
+ return {
214
+ appid: obj.appid,
215
+ type: { label: chart },
216
+ thresholdsList: thresholds.map((thr) => ({
217
+ label: thr.custom_label || thr.label,
218
+ color: thr.color,
219
+ operator: { label: thr.operator },
220
+ value: thr.value,
221
+ initValue: thr.value,
222
+ endValue: thr.max_value,
223
+ type: thr === null || thr === void 0 ? void 0 : thr.type,
224
+ column: thr === null || thr === void 0 ? void 0 : thr.column,
225
+ aggregate: thr === null || thr === void 0 ? void 0 : thr.aggregate,
226
+ endColumn: thr === null || thr === void 0 ? void 0 : thr.endColumn,
227
+ endAggregate: thr === null || thr === void 0 ? void 0 : thr.endAggregate,
228
+ })),
229
+ data,
230
+ individualSettings: (0, styleSettingsByChartType_1.parseStyleSettingByType)(chart, obj),
231
+ dataset: data.dataSet,
232
+ };
233
+ };
234
+ const getPanelBodyByChart = (chart, obj, layerList, inPreviewMode) => {
235
+ let panelBody = Object.assign(Object.assign({}, (0, general_1.pick)(obj, [
236
+ "title",
237
+ "name",
238
+ "metricid",
239
+ "chartid",
240
+ "type",
241
+ "position",
242
+ "createDate",
243
+ "modifyDate",
244
+ "dataSet",
245
+ "isOldChart",
246
+ "isMulti",
247
+ "bar_width",
248
+ "isComboCalc",
249
+ ])), { globalSettings: (0, styleSettingsByChartType_1.parseGlobalSettingByType)(obj.type, obj), preFilters: obj.preFilters || [], defaultFilters: obj.defaultFilters || {}, oldInternalFilters: obj.oldInternalFilters, dateGroup: (0, general_1._get)(layerList[0], "dateGroup"),
250
+ // retro-compatibility
251
+ timeGroup: (0, general_1._get)(layerList[0], "timeGroup"), layerList });
252
+ panelBody.name = obj.name || obj.title;
253
+ panelBody.dataset = obj.dataset;
254
+ switch (chart) {
255
+ case constants_1.CHART_TYPE.BOXWHISKER_CHART:
256
+ panelBody.globalSettings.sortX = {
257
+ type: "Label",
258
+ order: "Asc",
259
+ };
260
+ break;
261
+ case constants_1.CHART_TYPE.CROSSTAB_CHART:
262
+ panelBody = Object.assign(Object.assign({}, panelBody), { chart: getCrosstabConfig(obj) });
263
+ break;
264
+ case constants_1.CHART_TYPE.EXPANDABLE_TABLE_CHART:
265
+ case constants_1.CHART_TYPE.TABLE_CHART: {
266
+ const isSimpleTable = !obj.dimensions["categories"].length;
267
+ const attrMax = isSimpleTable
268
+ ? "globalSettings.max_rows.value"
269
+ : "globalSettings.max_groups.value";
270
+ const maxRecords = (0, general_1._get)(obj, attrMax);
271
+ panelBody = Object.assign(Object.assign({}, panelBody), { globalSettings: Object.assign(Object.assign({}, panelBody.globalSettings), { maxRecords }), chart: getTableConfig(obj, inPreviewMode) });
272
+ break;
273
+ }
274
+ case constants_1.CHART_TYPE.INDICATOR_METRIC:
275
+ case constants_1.CHART_TYPE.DIAL_METRIC:
276
+ case constants_1.CHART_TYPE.BULLET_METRIC: {
277
+ const { comparison } = (0, general_1.objectCopy)(obj.dimensions);
278
+ panelBody = Object.assign(Object.assign(Object.assign({}, panelBody), { globalSettings: Object.assign(Object.assign({}, panelBody.globalSettings), {
279
+ // TODO: Rebase this implementation to refactor
280
+ comparisonType: (0, general_1._get)(comparison[0], "comparison.type", "CHANGE") }) }), getMetricConfigData(chart, obj));
281
+ break;
282
+ }
283
+ case constants_1.CHART_TYPE.GEO_CHART_DOT:
284
+ case constants_1.CHART_TYPE.GEO_CHART_BUBBLE:
285
+ case constants_1.CHART_TYPE.GEO_CHART_CHOROPLETH:
286
+ panelBody = Object.assign(Object.assign({}, panelBody), { isSmallMultiples: obj.isSmallMultiples, chart: getGeoMapConfig(obj) });
287
+ break;
288
+ default:
289
+ panelBody = Object.assign(Object.assign({}, panelBody), { isChartOptions: true, isCombolayer: obj.isCombolayer, isReference: obj.isReference, isMulti: obj.isMulti, isCombo: obj.isCombo, isSmallMultiples: obj.isSmallMultiples, isTrend: obj.isTrend, is100: obj.is100, isStakedBar: obj.isStakedBar, isSplit: false });
290
+ break;
291
+ }
292
+ return panelBody;
293
+ };
294
+ exports.getPanelBodyByChart = getPanelBodyByChart;
@@ -2,3 +2,5 @@ export * from "./endpointDataValidators";
2
2
  export * from "./endpointDataGet";
3
3
  export * from "./endpointData";
4
4
  export * from "./RequestAdapterMetric";
5
+ export * from "./convertChartObjectFromV2toV1";
6
+ export * from "./getPanelBodyByChart";
@@ -18,3 +18,5 @@ __exportStar(require("./endpointDataValidators"), exports);
18
18
  __exportStar(require("./endpointDataGet"), exports);
19
19
  __exportStar(require("./endpointData"), exports);
20
20
  __exportStar(require("./RequestAdapterMetric"), exports);
21
+ __exportStar(require("./convertChartObjectFromV2toV1"), exports);
22
+ __exportStar(require("./getPanelBodyByChart"), exports);
@@ -7,5 +7,7 @@ export declare enum AGGREGATE {
7
7
  SUM = "SUM",
8
8
  STDEV = "STDEV",
9
9
  COUNT = "COUNT",
10
- DISTINCTCOUNT = "DISTINCTCOUNT"
10
+ DISTINCTCOUNT = "DISTINCTCOUNT",
11
+ FIRST = "FIRST",
12
+ LAST = "LAST"
11
13
  }
@@ -12,4 +12,6 @@ var AGGREGATE;
12
12
  AGGREGATE["STDEV"] = "STDEV";
13
13
  AGGREGATE["COUNT"] = "COUNT";
14
14
  AGGREGATE["DISTINCTCOUNT"] = "DISTINCTCOUNT";
15
+ AGGREGATE["FIRST"] = "FIRST";
16
+ AGGREGATE["LAST"] = "LAST";
15
17
  })(AGGREGATE || (exports.AGGREGATE = AGGREGATE = {}));
@@ -7,5 +7,7 @@ export declare enum AGGREGATE_ABBREVIATION {
7
7
  SUM = "SUM",
8
8
  STDEV = "STDEV",
9
9
  COUNT = "CNT",
10
- DISTINCTCOUNT = "CNTD"
10
+ DISTINCTCOUNT = "CNTD",
11
+ FIRST = "FIRST",
12
+ LAST = "LAST"
11
13
  }
@@ -12,4 +12,6 @@ var AGGREGATE_ABBREVIATION;
12
12
  AGGREGATE_ABBREVIATION["STDEV"] = "STDEV";
13
13
  AGGREGATE_ABBREVIATION["COUNT"] = "CNT";
14
14
  AGGREGATE_ABBREVIATION["DISTINCTCOUNT"] = "CNTD";
15
+ AGGREGATE_ABBREVIATION["FIRST"] = "FIRST";
16
+ AGGREGATE_ABBREVIATION["LAST"] = "LAST";
15
17
  })(AGGREGATE_ABBREVIATION || (exports.AGGREGATE_ABBREVIATION = AGGREGATE_ABBREVIATION = {}));
@@ -77,4 +77,20 @@ exports.AGGREGATE_INFO = {
77
77
  abbrLabel: AGGREGATE_ABBREVIATION_1.AGGREGATE_ABBREVIATION.DISTINCTCOUNT,
78
78
  i18nLabelPath: "common.aggregate_labels.distinct_count",
79
79
  },
80
+ [AGGREGATE_1.AGGREGATE.FIRST]: {
81
+ value: AGGREGATE_1.AGGREGATE.FIRST,
82
+ displayed: false,
83
+ label: AGGREGATE_LABEL_1.AGGREGATE_LABEL.LAST,
84
+ shortLabel: AGGREGATE_LABEL_1.AGGREGATE_LABEL.FIRST,
85
+ abbrLabel: AGGREGATE_ABBREVIATION_1.AGGREGATE_ABBREVIATION.FIRST,
86
+ i18nLabelPath: "common.aggregate_labels.first",
87
+ },
88
+ [AGGREGATE_1.AGGREGATE.LAST]: {
89
+ value: AGGREGATE_1.AGGREGATE.LAST,
90
+ displayed: false,
91
+ label: AGGREGATE_LABEL_1.AGGREGATE_LABEL.LAST,
92
+ shortLabel: AGGREGATE_LABEL_1.AGGREGATE_LABEL.LAST,
93
+ abbrLabel: AGGREGATE_ABBREVIATION_1.AGGREGATE_ABBREVIATION.LAST,
94
+ i18nLabelPath: "common.aggregate_labels.last",
95
+ },
80
96
  };
@@ -7,5 +7,7 @@ export declare enum AGGREGATE_LABEL {
7
7
  SUM = "Sum",
8
8
  STDEV = "Standard deviation",
9
9
  COUNT = "Count",
10
- DISTINCTCOUNT = "Distinct Count"
10
+ DISTINCTCOUNT = "Distinct Count",
11
+ FIRST = "First",
12
+ LAST = "Last"
11
13
  }
@@ -12,4 +12,6 @@ var AGGREGATE_LABEL;
12
12
  AGGREGATE_LABEL["STDEV"] = "Standard deviation";
13
13
  AGGREGATE_LABEL["COUNT"] = "Count";
14
14
  AGGREGATE_LABEL["DISTINCTCOUNT"] = "Distinct Count";
15
+ AGGREGATE_LABEL["FIRST"] = "First";
16
+ AGGREGATE_LABEL["LAST"] = "Last";
15
17
  })(AGGREGATE_LABEL || (exports.AGGREGATE_LABEL = AGGREGATE_LABEL = {}));