@qrvey/utils 1.4.4 → 1.5.0-1

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 (118) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/column_format/constants/DURATION_PARTS_LIST.d.ts +1 -0
  3. package/dist/cjs/column_format/constants/DURATION_PARTS_LIST.js +12 -0
  4. package/dist/cjs/column_format/constants/index.d.ts +1 -0
  5. package/dist/cjs/column_format/constants/index.js +1 -0
  6. package/dist/cjs/column_format/helpers/defineXYChartFormat.js +4 -1
  7. package/dist/cjs/columns/interfaces/IColumn.d.ts +0 -1
  8. package/dist/cjs/filters/adapters/FDToFlatUI.js +2 -7
  9. package/dist/cjs/filters/adapters/FDToUI.js +2 -5
  10. package/dist/cjs/filters/adapters/UIToFD.js +0 -1
  11. package/dist/cjs/filters/adapters/UIToFlatUI.js +2 -7
  12. package/dist/cjs/filters/adapters/UIToOldLogic.js +0 -3
  13. package/dist/cjs/filters/adapters/flatUIToFD.js +0 -1
  14. package/dist/cjs/filters/adapters/flatUIToOldLogic.js +0 -2
  15. package/dist/cjs/filters/adapters/flatUIToUI.js +0 -4
  16. package/dist/cjs/filters/adapters/logicToFlatUI.js +10 -14
  17. package/dist/cjs/filters/adapters/transformFilters.js +0 -4
  18. package/dist/cjs/filters/constants/common/FILTER_TOKENS_STRUCTURE_TYPE.d.ts +8 -0
  19. package/dist/cjs/filters/constants/common/FILTER_TOKENS_STRUCTURE_TYPE.js +12 -0
  20. package/dist/cjs/filters/constants/common/index.d.ts +1 -0
  21. package/dist/cjs/filters/constants/common/index.js +1 -0
  22. package/dist/cjs/filters/helpers/OLD_getAggFilters.js +0 -1
  23. package/dist/cjs/filters/helpers/common/excludeFiltersByParams.js +3 -4
  24. package/dist/cjs/filters/helpers/common/mergeFilters.js +0 -1
  25. package/dist/cjs/filters/helpers/common/resolveDatasetConditions.js +0 -4
  26. package/dist/cjs/filters/helpers/common/resolveFilterConditions.js +3 -5
  27. package/dist/cjs/filters/helpers/filtersTokensToString.d.ts +7 -0
  28. package/dist/cjs/filters/helpers/filtersTokensToString.js +20 -0
  29. package/dist/cjs/filters/helpers/getTokensFromFilters.d.ts +10 -0
  30. package/dist/cjs/filters/helpers/getTokensFromFilters.js +111 -0
  31. package/dist/cjs/filters/helpers/getVerboseFilter.d.ts +9 -0
  32. package/dist/cjs/filters/helpers/getVerboseFilter.js +16 -0
  33. package/dist/cjs/filters/helpers/index.d.ts +3 -0
  34. package/dist/cjs/filters/helpers/index.js +3 -0
  35. package/dist/cjs/filters/helpers/ui/getUpdatedUIFilters.js +2 -3
  36. package/dist/cjs/filters/helpers/ui/resolveUIFlatFilterByParams.js +2 -3
  37. package/dist/cjs/filters/interfaces/IFFilterTokens.d.ts +5 -0
  38. package/dist/cjs/filters/interfaces/IFFilterTokens.js +2 -0
  39. package/dist/cjs/filters/interfaces/IFTokensFromFiltersSettings.d.ts +7 -0
  40. package/dist/cjs/filters/interfaces/IFTokensFromFiltersSettings.js +2 -0
  41. package/dist/cjs/filters/interfaces/OLD_IFilterExpression.d.ts +0 -1
  42. package/dist/cjs/filters/interfaces/common/IFSDataset.d.ts +0 -1
  43. package/dist/cjs/filters/interfaces/common/IFSParamsToGetFilter.d.ts +0 -1
  44. package/dist/cjs/filters/interfaces/index.d.ts +2 -0
  45. package/dist/cjs/filters/interfaces/index.js +2 -0
  46. package/dist/cjs/filters/services/UChartApi.js +1 -2
  47. package/dist/cjs/filters/services/UChartPaginationApi.js +1 -1
  48. package/dist/cjs/format/definition.d.ts +2 -1
  49. package/dist/cjs/format/format.js +4 -1
  50. package/dist/cjs/format/localization.js +18 -2
  51. package/dist/cjs/globalization/interfaces/chart_builder/II18nChartBuilderTableStyleOptions.d.ts +4 -0
  52. package/dist/cjs/globalization/labels/chart_builder/I18N_CHART_BUILDER_COMPARISION_OPTIONS.js +1 -1
  53. package/dist/cjs/globalization/labels/chart_builder/I18N_CHART_BUILDER_STYLE_OPTIONS.js +5 -1
  54. package/dist/cjs/globalization/service/i18nextBuilder.d.ts +7 -0
  55. package/dist/cjs/globalization/service/i18nextBuilder.js +25 -14
  56. package/dist/cjs/interfaces/format/IFormatOutputFormat.Interface.d.ts +1 -0
  57. package/dist/cjs/services/adapters/BColumnsToUIColumns.adapter.js +0 -2
  58. package/dist/cjs/services/adapters/BDatasetsToUIDatasets.adapter.js +0 -1
  59. package/dist/cjs/services/helpers/getDefaultQuestionListOptionsAttributes.js +0 -2
  60. package/dist/column_format/constants/DURATION_PARTS_LIST.d.ts +1 -0
  61. package/dist/column_format/constants/DURATION_PARTS_LIST.js +9 -0
  62. package/dist/column_format/constants/index.d.ts +1 -0
  63. package/dist/column_format/constants/index.js +1 -0
  64. package/dist/column_format/helpers/defineXYChartFormat.js +4 -1
  65. package/dist/columns/interfaces/IColumn.d.ts +0 -1
  66. package/dist/filters/adapters/FDToFlatUI.js +2 -7
  67. package/dist/filters/adapters/FDToUI.js +2 -5
  68. package/dist/filters/adapters/UIToFD.js +0 -1
  69. package/dist/filters/adapters/UIToFlatUI.js +2 -7
  70. package/dist/filters/adapters/UIToOldLogic.js +0 -3
  71. package/dist/filters/adapters/flatUIToFD.js +0 -1
  72. package/dist/filters/adapters/flatUIToOldLogic.js +0 -2
  73. package/dist/filters/adapters/flatUIToUI.js +0 -4
  74. package/dist/filters/adapters/logicToFlatUI.js +10 -14
  75. package/dist/filters/adapters/transformFilters.js +0 -4
  76. package/dist/filters/constants/common/FILTER_TOKENS_STRUCTURE_TYPE.d.ts +8 -0
  77. package/dist/filters/constants/common/FILTER_TOKENS_STRUCTURE_TYPE.js +9 -0
  78. package/dist/filters/constants/common/index.d.ts +1 -0
  79. package/dist/filters/constants/common/index.js +1 -0
  80. package/dist/filters/helpers/OLD_getAggFilters.js +0 -1
  81. package/dist/filters/helpers/common/excludeFiltersByParams.js +3 -4
  82. package/dist/filters/helpers/common/mergeFilters.js +0 -1
  83. package/dist/filters/helpers/common/resolveDatasetConditions.js +0 -4
  84. package/dist/filters/helpers/common/resolveFilterConditions.js +3 -5
  85. package/dist/filters/helpers/filtersTokensToString.d.ts +7 -0
  86. package/dist/filters/helpers/filtersTokensToString.js +16 -0
  87. package/dist/filters/helpers/getTokensFromFilters.d.ts +10 -0
  88. package/dist/filters/helpers/getTokensFromFilters.js +107 -0
  89. package/dist/filters/helpers/getVerboseFilter.d.ts +9 -0
  90. package/dist/filters/helpers/getVerboseFilter.js +12 -0
  91. package/dist/filters/helpers/index.d.ts +3 -0
  92. package/dist/filters/helpers/index.js +3 -0
  93. package/dist/filters/helpers/ui/getUpdatedUIFilters.js +2 -3
  94. package/dist/filters/helpers/ui/resolveUIFlatFilterByParams.js +2 -3
  95. package/dist/filters/interfaces/IFFilterTokens.d.ts +5 -0
  96. package/dist/filters/interfaces/IFFilterTokens.js +1 -0
  97. package/dist/filters/interfaces/IFTokensFromFiltersSettings.d.ts +7 -0
  98. package/dist/filters/interfaces/IFTokensFromFiltersSettings.js +1 -0
  99. package/dist/filters/interfaces/OLD_IFilterExpression.d.ts +0 -1
  100. package/dist/filters/interfaces/common/IFSDataset.d.ts +0 -1
  101. package/dist/filters/interfaces/common/IFSParamsToGetFilter.d.ts +0 -1
  102. package/dist/filters/interfaces/index.d.ts +2 -0
  103. package/dist/filters/interfaces/index.js +2 -0
  104. package/dist/filters/services/UChartApi.js +1 -2
  105. package/dist/filters/services/UChartPaginationApi.js +1 -1
  106. package/dist/format/definition.d.ts +2 -1
  107. package/dist/format/format.js +4 -1
  108. package/dist/format/localization.js +18 -2
  109. package/dist/globalization/interfaces/chart_builder/II18nChartBuilderTableStyleOptions.d.ts +4 -0
  110. package/dist/globalization/labels/chart_builder/I18N_CHART_BUILDER_COMPARISION_OPTIONS.js +1 -1
  111. package/dist/globalization/labels/chart_builder/I18N_CHART_BUILDER_STYLE_OPTIONS.js +5 -1
  112. package/dist/globalization/service/i18nextBuilder.d.ts +7 -0
  113. package/dist/globalization/service/i18nextBuilder.js +24 -14
  114. package/dist/interfaces/format/IFormatOutputFormat.Interface.d.ts +1 -0
  115. package/dist/services/adapters/BColumnsToUIColumns.adapter.js +0 -2
  116. package/dist/services/adapters/BDatasetsToUIDatasets.adapter.js +0 -1
  117. package/dist/services/helpers/getDefaultQuestionListOptionsAttributes.js +0 -2
  118. package/package.json +1 -1
@@ -22,4 +22,7 @@ __exportStar(require("./applyHierarchyForAggFilters"), exports);
22
22
  __exportStar(require("./getAvailableScopes"), exports);
23
23
  __exportStar(require("./getAvailableScopesIDsByConfig"), exports);
24
24
  __exportStar(require("./getScopesByHierarchy"), exports);
25
+ __exportStar(require("./getTokensFromFilters"), exports);
26
+ __exportStar(require("./filtersTokensToString"), exports);
27
+ __exportStar(require("./getVerboseFilter"), exports);
25
28
  __exportStar(require("./OLD_getAggFilters"), exports);
@@ -14,15 +14,14 @@ function getUpdatedUIFilters(data, datasets = []) {
14
14
  return data;
15
15
  let updatedScopes = data.scopes.map((scopes) => {
16
16
  scopes.datasets = scopes.datasets.map((dataset) => {
17
- const datasetInfo = datasets.find((dInfo) => dInfo.qrveyid === dataset.qrveyid && dInfo.linkid === dataset.linkid);
17
+ const datasetInfo = datasets.find((dInfo) => dInfo.qrveyid === dataset.qrveyid);
18
18
  if (!(0, isEmpty_1.isEmpty)(datasetInfo))
19
19
  dataset.label = datasetInfo.label;
20
20
  dataset.filters = dataset.filters.map((filter) => {
21
21
  let columnInfo;
22
22
  if (!(0, isEmpty_1.isEmpty)(datasetInfo))
23
23
  columnInfo = datasetInfo.options.find((cInfo) => cInfo.id === filter.column.id &&
24
- cInfo.qrveyid === filter.column.qrveyid &&
25
- cInfo.linkid === filter.column.linkid);
24
+ cInfo.qrveyid === filter.column.qrveyid);
26
25
  if (!(0, isEmpty_1.isEmpty)(columnInfo)) {
27
26
  filter.column.formulaType = columnInfo.formulaType;
28
27
  filter.column.geogroup = columnInfo.geogroup;
@@ -9,12 +9,11 @@ const isEmpty_1 = require("../../../general/mix/isEmpty");
9
9
  * @returns true: the conditions are satisfied.
10
10
  */
11
11
  function resolveUIFlatFilterByParams(filter, params) {
12
- var _a, _b, _c, _d;
12
+ var _a, _b, _c;
13
13
  return (((0, isEmpty_1.isEmpty)(params.column) ||
14
14
  (filter.column.id === ((_a = params.column) === null || _a === void 0 ? void 0 : _a.id) &&
15
15
  filter.column.qrveyid === ((_b = params.column) === null || _b === void 0 ? void 0 : _b.qrveyid) &&
16
- filter.column.linkid === ((_c = params.column) === null || _c === void 0 ? void 0 : _c.linkid) &&
17
- filter.column.aggregate === ((_d = params.column) === null || _d === void 0 ? void 0 : _d.aggregate))) &&
16
+ filter.column.aggregate === ((_c = params.column) === null || _c === void 0 ? void 0 : _c.aggregate))) &&
18
17
  ((0, isEmpty_1.isEmpty)(params.scope) || filter.extras.scope === params.scope) &&
19
18
  ((0, isEmpty_1.isEmpty)(params.scopeid) || filter.extras.scopeid === params.scopeid) &&
20
19
  ((0, isEmpty_1.isEmpty)(params.panelid) || filter.extras.panelid === params.panelid) &&
@@ -0,0 +1,5 @@
1
+ import { FILTER_TOKENS_STRUCTURE_TYPE } from "../constants/common/FILTER_TOKENS_STRUCTURE_TYPE";
2
+ export interface IFFilterTokens {
3
+ token: string;
4
+ type: FILTER_TOKENS_STRUCTURE_TYPE;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,7 @@
1
+ import { I18nService } from "../../globalization/service/i18nextBuilder";
2
+ export interface IFTokensFromFiltersSettings {
3
+ showScope?: boolean;
4
+ showDatabaseName?: boolean;
5
+ showChartName?: boolean;
6
+ i18nService: I18nService;
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -9,7 +9,6 @@ export interface OLD_IFilterExpression {
9
9
  expressions?: OLD_IFilterExpression[];
10
10
  formulaType?: string;
11
11
  groupValue?: IFProperty;
12
- linkid?: string;
13
12
  operator?: IFOperator;
14
13
  property?: IFProperty;
15
14
  qrveyid?: string;
@@ -8,5 +8,4 @@ export interface IFSDataset {
8
8
  displayed: boolean;
9
9
  filters: IFSFilter[];
10
10
  qrveyid: string;
11
- linkid?: string;
12
11
  }
@@ -13,7 +13,6 @@ export interface IFSParamsToGetFilter {
13
13
  dateSection?: IFDateSection;
14
14
  enableds?: IFSParamsToGetFilterEnableds;
15
15
  chart?: IFUChartSettings;
16
- linkid?: string;
17
16
  panelid?: string;
18
17
  property?: IFProperty;
19
18
  qrveyid?: string;
@@ -30,6 +30,8 @@ export * from "./IFStructureType";
30
30
  export * from "./IFValidator";
31
31
  export * from "./IFValidatorInfo";
32
32
  export * from "./IFValue";
33
+ export * from "./IFTokensFromFiltersSettings";
34
+ export * from "./IFFilterTokens";
33
35
  export * from "./OLD_IFilterData";
34
36
  export * from "./OLD_IFilterDetail";
35
37
  export * from "./OLD_IFilterExpression";
@@ -46,6 +46,8 @@ __exportStar(require("./IFStructureType"), exports);
46
46
  __exportStar(require("./IFValidator"), exports);
47
47
  __exportStar(require("./IFValidatorInfo"), exports);
48
48
  __exportStar(require("./IFValue"), exports);
49
+ __exportStar(require("./IFTokensFromFiltersSettings"), exports);
50
+ __exportStar(require("./IFFilterTokens"), exports);
49
51
  __exportStar(require("./OLD_IFilterData"), exports);
50
52
  __exportStar(require("./OLD_IFilterDetail"), exports);
51
53
  __exportStar(require("./OLD_IFilterExpression"), exports);
@@ -88,7 +88,6 @@ class UChartApi {
88
88
  {
89
89
  questionid: column.id,
90
90
  qrveyid: column.qrveyid,
91
- // linkid: column.linkid,
92
91
  maxDataPoints: this._getMaxDataPoints(column, chartSettings),
93
92
  type: column.type,
94
93
  formulaType: column.type === "FORMULA" ? column.formulaType : undefined,
@@ -266,7 +265,7 @@ class UChartApi {
266
265
  let searchLogic;
267
266
  if (!(0, isEmpty_1.isEmpty)(uFilter.values)) {
268
267
  searchLogic = (0, flatUIToOldLogic_1.flatUIToOldLogic)([
269
- Object.assign(Object.assign({}, uFilter), { validator: this._getValidationType(uFilter.column, uFilter.validator), column: Object.assign(Object.assign({}, uFilter.column), { linkid: undefined }) }),
268
+ Object.assign(Object.assign({}, uFilter), { validator: this._getValidationType(uFilter.column, uFilter.validator), column: Object.assign({}, uFilter.column) }),
270
269
  ]);
271
270
  }
272
271
  return searchLogic;
@@ -306,7 +306,7 @@ class UChartPaginationApi {
306
306
  let searchLogic;
307
307
  if (!(0, isEmpty_1.isEmpty)(uFilter.values)) {
308
308
  searchLogic = (0, flatUIToOldLogic_1.flatUIToOldLogic)([
309
- Object.assign(Object.assign({}, uFilter), { validator: this._getValidationType(uFilter.column, uFilter.validator), column: Object.assign(Object.assign({}, uFilter.column), { linkid: undefined }) }),
309
+ Object.assign(Object.assign({}, uFilter), { validator: this._getValidationType(uFilter.column, uFilter.validator), column: Object.assign({}, uFilter.column) }),
310
310
  ]);
311
311
  }
312
312
  return searchLogic;
@@ -18,7 +18,8 @@ export declare const enum LOCALE_FORMATS {
18
18
  CURRENCY = "Currency",
19
19
  PERCENTAGE = "Percentage",
20
20
  SCIENTIFIC = "Scientific",
21
- ABBREVIATED = "Abbreviated"
21
+ ABBREVIATED = "Abbreviated",
22
+ DURATION = "Duration"
22
23
  }
23
24
  export declare const enum LOCALE_STYLES {
24
25
  DECIMAL = "decimal",
@@ -14,6 +14,7 @@ const COLUMN_1 = require("../columns/constants/COLUMN");
14
14
  const FORMULA_1 = require("../formulas/constants/FORMULA");
15
15
  const localization_1 = require("./localization");
16
16
  const isObject_1 = require("../general/object/isObject");
17
+ const DURATION_PARTS_LIST_1 = require("../column_format/constants/DURATION_PARTS_LIST");
17
18
  dayjs_1.default.extend(advancedFormat_1.default); // Add support to advanced formats https://day.js.org/docs/en/plugin/advanced-format
18
19
  /**
19
20
  * Apply to the given date format to a date value
@@ -114,7 +115,9 @@ const addFormat = (value, outputFormat = "None", config) => {
114
115
  : outputFormat === null || outputFormat === void 0 ? void 0 : outputFormat.format);
115
116
  case "NUMERIC": {
116
117
  const parse = parseFloat(value);
117
- const withLocale = outputFormat !== "None" && (config === null || config === void 0 ? void 0 : config.lang);
118
+ const withLocale = (outputFormat !== "None" && (config === null || config === void 0 ? void 0 : config.lang)) ||
119
+ (outputFormat === null || outputFormat === void 0 ? void 0 : outputFormat.format) === "Duration" ||
120
+ DURATION_PARTS_LIST_1.DURATION_PARTS_LIST.includes[outputFormat === null || outputFormat === void 0 ? void 0 : outputFormat.format];
118
121
  return isNaN(parse)
119
122
  ? value
120
123
  : withLocale
@@ -4,6 +4,7 @@ exports.formatWithLocale = exports.chooseLang = exports.getLang = void 0;
4
4
  const DATETIME_COLUMN_FORMAT_1 = require("../dates/constants/DATETIME_COLUMN_FORMAT");
5
5
  const isEmpty_1 = require("../general/mix/isEmpty");
6
6
  const definition_1 = require("./definition");
7
+ const durationFormatter_1 = require("./duration/durationFormatter");
7
8
  const getLang = (locale) => {
8
9
  if (!locale)
9
10
  return;
@@ -61,10 +62,20 @@ function formatLocaleNumber(value, outputFormat, config) {
61
62
  const langOpts = options || getLocaleOptions(outputFormat);
62
63
  const valueToFormat = (outputFormat === null || outputFormat === void 0 ? void 0 : outputFormat.format) === "Percentage" /* LOCALE_FORMATS.PERCENTAGE */ ? value / 100 : value;
63
64
  try {
64
- const key = lang + JSON.stringify(langOpts);
65
+ const key = (outputFormat === null || outputFormat === void 0 ? void 0 : outputFormat.format) +
66
+ lang +
67
+ JSON.stringify(langOpts) +
68
+ ((outputFormat === null || outputFormat === void 0 ? void 0 : outputFormat.template) ? outputFormat.template : "");
65
69
  let formatter = NUMBER_FORMAT_CACHE[key];
66
70
  if (!formatter) {
67
- formatter = new Intl.NumberFormat([lang, definition_1.LANG_DEFAULT], langOpts);
71
+ const intlNumberFormat = new Intl.NumberFormat([lang, definition_1.LANG_DEFAULT], langOpts);
72
+ formatter =
73
+ (outputFormat === null || outputFormat === void 0 ? void 0 : outputFormat.format) === "Duration" /* LOCALE_FORMATS.DURATION */
74
+ ? new durationFormatter_1.DurationFormatter({
75
+ template: outputFormat === null || outputFormat === void 0 ? void 0 : outputFormat.template,
76
+ intlNumberFormat,
77
+ })
78
+ : intlNumberFormat;
68
79
  NUMBER_FORMAT_CACHE[key] = formatter;
69
80
  }
70
81
  return formatter.format(valueToFormat);
@@ -113,6 +124,11 @@ function getLocaleOptions(outputFormat) {
113
124
  maximumFractionDigits: decimals,
114
125
  minimumFractionDigits: decimals,
115
126
  };
127
+ case "Duration" /* LOCALE_FORMATS.DURATION */:
128
+ return {
129
+ maximumFractionDigits: 0,
130
+ minimumFractionDigits: 0,
131
+ };
116
132
  default:
117
133
  return {
118
134
  style: "decimal" /* LOCALE_STYLES.DECIMAL */,
@@ -8,7 +8,11 @@ export interface II18nChartBuilderTableStyleOptions {
8
8
  typeface: string;
9
9
  weight: string;
10
10
  weight_bold: string;
11
+ weight_black: string;
12
+ weight_light: string;
13
+ weight_medium: string;
11
14
  weight_normal: string;
15
+ weight_thin: string;
12
16
  size: string;
13
17
  font_color: string;
14
18
  bg_color: string;
@@ -25,6 +25,6 @@ exports.I18N_CHART_BUILDER_COMPARISION_OPTIONS = {
25
25
  time_period: "Time Period",
26
26
  type_change: "% Change",
27
27
  type_difference: "Difference",
28
- does_not_apply: "N/A"
28
+ does_not_apply: "N/A",
29
29
  },
30
30
  };
@@ -203,7 +203,11 @@ exports.I18N_CHART_BUILDER_STYLE_OPTIONS = {
203
203
  typeface: "Typeface",
204
204
  weight: "Weight",
205
205
  weight_bold: "Bold",
206
- weight_normal: "normal",
206
+ weight_black: "Black",
207
+ weight_light: "Light",
208
+ weight_medium: "Medium",
209
+ weight_normal: "Normal",
210
+ weight_thin: "Thin",
207
211
  size: "Size",
208
212
  font_color: "Font Color",
209
213
  bg_color: "BG Color",
@@ -1,8 +1,10 @@
1
+ import { i18n } from "i18next";
1
2
  import { II18nResource } from "../interfaces/II18nResource";
2
3
  import { II18nServiceTranslateOption } from "../interfaces/II18nServiceTranslateOption";
3
4
  export declare class I18nServiceBuilder {
4
5
  static buildI18n(i18nDefault: II18nResource, i18nResource: II18nResource): Promise<I18nService>;
5
6
  private static _initI18n;
7
+ static getI18nInstance(i18nDefault: II18nResource, i18nResource: II18nResource, _i18next?: i18n): Promise<i18n>;
6
8
  static setTranslations(i18nDefault: any, i18nResource: II18nResource): II18nResource;
7
9
  }
8
10
  /**
@@ -17,3 +19,8 @@ export declare abstract class I18nService {
17
19
  */
18
20
  abstract translate(key: string, options?: II18nServiceTranslateOption): string;
19
21
  }
22
+ export declare class I18nServiceConcrete extends I18nService {
23
+ _i18next: any;
24
+ constructor(i18nInstance: any);
25
+ translate(key: string, options?: II18nServiceTranslateOption): any;
26
+ }
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.I18nService = exports.I18nServiceBuilder = void 0;
15
+ exports.I18nServiceConcrete = exports.I18nService = exports.I18nServiceBuilder = void 0;
16
16
  const i18next_1 = __importDefault(require("i18next"));
17
17
  const mergeDeep_1 = require("../../general/object/mergeDeep");
18
18
  class I18nServiceBuilder {
@@ -22,23 +22,33 @@ class I18nServiceBuilder {
22
22
  static _initI18n(i18nDefault, i18nResource) {
23
23
  return __awaiter(this, void 0, void 0, function* () {
24
24
  if (!i18next_1.default.isInitialized) {
25
- yield i18next_1.default.init({
26
- lng: "en",
27
- debug: false,
28
- nsSeparator: false,
29
- keySeparator: ".",
30
- fallbackLng: false,
31
- defaultNS: "translation",
32
- resources: {
33
- en: {
34
- translation: this.setTranslations(i18nDefault, i18nResource),
35
- },
36
- },
37
- });
25
+ yield this.getI18nInstance(i18nDefault, i18nResource, i18next_1.default);
38
26
  }
39
27
  return new I18nServiceConcrete(i18next_1.default);
40
28
  });
41
29
  }
30
+ static getI18nInstance(i18nDefault, i18nResource, _i18next) {
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ let __i18next = _i18next;
33
+ if (!__i18next) {
34
+ __i18next = i18next_1.default.createInstance();
35
+ }
36
+ yield __i18next.init({
37
+ lng: "en",
38
+ debug: false,
39
+ nsSeparator: false,
40
+ keySeparator: ".",
41
+ fallbackLng: false,
42
+ defaultNS: "translation",
43
+ resources: {
44
+ en: {
45
+ translation: this.setTranslations(i18nDefault, i18nResource),
46
+ },
47
+ },
48
+ });
49
+ return __i18next;
50
+ });
51
+ }
42
52
  static setTranslations(i18nDefault, i18nResource) {
43
53
  return (0, mergeDeep_1.mergeDeep)(i18nResource, i18nDefault, { mergeExistingValues: false });
44
54
  }
@@ -59,3 +69,4 @@ class I18nServiceConcrete extends I18nService {
59
69
  return this._i18next.t(`${key}`, options);
60
70
  }
61
71
  }
72
+ exports.I18nServiceConcrete = I18nServiceConcrete;
@@ -4,4 +4,5 @@ export interface IFormatOutputFormat extends IFormatDefaultFormat {
4
4
  currency?: IFormatCurrency;
5
5
  backup_currency?: IFormatCurrency;
6
6
  originalFormat?: IFormatOutputFormat;
7
+ template?: string;
7
8
  }
@@ -16,8 +16,6 @@ function BColumnsToUIColumns(columns = [], dataset) {
16
16
  id: column.id,
17
17
  imageUploadOption: column.imageUploadOption,
18
18
  label: column.text,
19
- linked: column.linked,
20
- linkid: (0, getAttribute_1.getAttribute)(dataset, "link_id") || (0, getAttribute_1.getAttribute)(column, "link_id"),
21
19
  outputFormat: column.outputFormat,
22
20
  property: column.property,
23
21
  qrveyid: (0, getAttribute_1.getAttribute)(dataset, "qrvey_id") || (0, getAttribute_1.getAttribute)(column, "qrvey_id"),
@@ -7,7 +7,6 @@ function BDatasetsToUIDatasets(datasets = []) {
7
7
  return datasets.map((dataset) => ({
8
8
  qrveyid: (0, getAttribute_1.getAttribute)(dataset, "qrvey_id"),
9
9
  label: dataset.name,
10
- linkid: (0, getAttribute_1.getAttribute)(dataset, "link_id"),
11
10
  options: (0, BColumnsToUIColumns_adapter_1.BColumnsToUIColumns)(dataset.options, dataset),
12
11
  }));
13
12
  }
@@ -7,8 +7,6 @@ function getDefaultQuestionListOptionsAttributes() {
7
7
  "text",
8
8
  "type",
9
9
  "property",
10
- "linked",
11
- "linkid",
12
10
  "qrveyid",
13
11
  "bucketId",
14
12
  "formulaId",
@@ -0,0 +1 @@
1
+ export declare const DURATION_PARTS_LIST: string[];
@@ -0,0 +1,9 @@
1
+ export const DURATION_PARTS_LIST = [
2
+ "D[d] HH[h] mm[m] ss[s]",
3
+ "HH:mm:ss",
4
+ "HH:mm",
5
+ "HH",
6
+ "mm",
7
+ "ss",
8
+ "SSS",
9
+ ];
@@ -4,3 +4,4 @@ export * from "./DATEGROUP_WITHOUT_FORMAT";
4
4
  export * from "./SHELF_TYPE";
5
5
  export * from "./STRING_FORMAT";
6
6
  export * from "./TABLE_TYPE";
7
+ export * from "./DURATION_PARTS_LIST";
@@ -4,3 +4,4 @@ export * from "./DATEGROUP_WITHOUT_FORMAT";
4
4
  export * from "./SHELF_TYPE";
5
5
  export * from "./STRING_FORMAT";
6
6
  export * from "./TABLE_TYPE";
7
+ export * from "./DURATION_PARTS_LIST";
@@ -4,6 +4,7 @@ import { isEmpty } from "../../general/mix/isEmpty";
4
4
  import { CALCULATION_LABEL } from "../../qrvey/constants/CALCULATION_LABEL";
5
5
  import { CHART_GROUPS } from "../constants/CHART_GROUP";
6
6
  import { DATEGROUP_UNSUPPORT_FORMAT } from "../constants/DATEGROUP_UNSUPPORT_FORMAT";
7
+ import { DURATION_PARTS_LIST } from "../constants/DURATION_PARTS_LIST";
7
8
  import { STRING_FORMAT } from "../constants/STRING_FORMAT";
8
9
  import { columnTypeByChart } from "./columnTypeByChart";
9
10
  /**
@@ -34,6 +35,8 @@ export const defineXYChartFormat = (column, settings) => {
34
35
  const hasDefaultFormat = isEmpty(selectedFormat) ||
35
36
  (outputFormat === null || outputFormat === void 0 ? void 0 : outputFormat.format) === defaultText ||
36
37
  (selectedFormat === null || selectedFormat === void 0 ? void 0 : selectedFormat.format) === defaultText;
38
+ const newOutputFormat = DURATION_PARTS_LIST.includes(outputFormat === null || outputFormat === void 0 ? void 0 : outputFormat.format)
39
+ ? Object.assign(Object.assign({}, outputFormat), { template: outputFormat.format, format: "Duration" }) : outputFormat;
37
40
  switch (columnType) {
38
41
  case COLUMN.YES_NO:
39
42
  case COLUMN.PHONE:
@@ -79,7 +82,7 @@ export const defineXYChartFormat = (column, settings) => {
79
82
  return columnDefaultFormat;
80
83
  }
81
84
  else if (hasDefaultFormat) {
82
- return Object.assign({}, outputFormat);
85
+ return Object.assign({}, newOutputFormat);
83
86
  }
84
87
  else
85
88
  return selectedFormat;
@@ -18,7 +18,6 @@ export interface IColumn extends Omit<IBColumn, "text" | "bucketId" | "formulaId
18
18
  expressionWords?: IBColumnAnswerExpressionWord[];
19
19
  formulaid?: string;
20
20
  label?: string;
21
- linkid?: string;
22
21
  lookupValue?: IBColumnAnswerLookupValueValue;
23
22
  property?: IColumnPropertyType;
24
23
  slidebarValue?: number;
@@ -36,13 +36,11 @@ function FD21ToFlatUI(scopes = [], datasetsInfo = []) {
36
36
  scope.datasets.forEach((dataset) => {
37
37
  if (dataset.filters.length > 0) {
38
38
  dataset.filters.forEach((filter) => {
39
- const datasetInfo = datasetsInfo.find((dInfo) => dInfo.qrveyid === dataset.qrveyid &&
40
- dInfo.linkid === dataset.linkid);
39
+ const datasetInfo = datasetsInfo.find((dInfo) => dInfo.qrveyid === dataset.qrveyid);
41
40
  let columnInfo;
42
41
  if (!isEmpty(datasetInfo))
43
42
  columnInfo = datasetInfo.options.find((cInfo) => cInfo.id === filter.column.id &&
44
- cInfo.qrveyid === filter.column.qrveyid &&
45
- cInfo.linkid === filter.column.linkid);
43
+ cInfo.qrveyid === filter.column.qrveyid);
46
44
  const info = !isEmpty(filter.extras.info)
47
45
  ? {
48
46
  icon: filter.extras.info.icon,
@@ -59,8 +57,6 @@ function FD21ToFlatUI(scopes = [], datasetsInfo = []) {
59
57
  aggregate: filter.column.aggregate,
60
58
  calculation: filter.column.calculation,
61
59
  label: columnInfo === null || columnInfo === void 0 ? void 0 : columnInfo.label,
62
- linkid: datasetInfo === null || datasetInfo === void 0 ? void 0 : datasetInfo.linkid,
63
- linked: columnInfo === null || columnInfo === void 0 ? void 0 : columnInfo.linked,
64
60
  outputFormat: _get(datasetInfo, "outputFormat"),
65
61
  type: (columnInfo === null || columnInfo === void 0 ? void 0 : columnInfo.type) || filter.column.type,
66
62
  },
@@ -80,7 +76,6 @@ function FD21ToFlatUI(scopes = [], datasetsInfo = []) {
80
76
  enabled: dataset.enabled,
81
77
  displayed: dataset.enabled,
82
78
  label: datasetInfo === null || datasetInfo === void 0 ? void 0 : datasetInfo.label,
83
- linkid: dataset.linkid,
84
79
  } }),
85
80
  filterid: filter.filterid,
86
81
  lookupDisplayIndex: filter.lookupDisplayIndex,
@@ -38,13 +38,12 @@ function FD21ToUI(scopes = [], section = FILTER_SECTION.ANYWHERE, enabled = true
38
38
  scopes: [],
39
39
  };
40
40
  ufData.scopes = scopes.map((scope) => (Object.assign(Object.assign({}, scope), { datasets: scope.datasets.map((dataset) => {
41
- const datasetInfo = datasetsInfo.find((dInfo) => dInfo.qrveyid === dataset.qrveyid && dInfo.linkid === dataset.linkid);
41
+ const datasetInfo = datasetsInfo.find((dInfo) => dInfo.qrveyid === dataset.qrveyid);
42
42
  return Object.assign(Object.assign({}, dataset), { label: datasetInfo === null || datasetInfo === void 0 ? void 0 : datasetInfo.label, filters: dataset.filters.map((filter) => {
43
43
  let columnInfo;
44
44
  if (!isEmpty(datasetInfo))
45
45
  columnInfo = datasetInfo.options.find((cInfo) => cInfo.id === filter.column.id &&
46
- cInfo.qrveyid === filter.column.qrveyid &&
47
- cInfo.linkid === filter.column.linkid);
46
+ cInfo.qrveyid === filter.column.qrveyid);
48
47
  const property = adaptDateGroupingProperty(filter.property);
49
48
  return Object.assign(Object.assign({}, filter), { column: {
50
49
  aggregate: filter.column.aggregate,
@@ -52,8 +51,6 @@ function FD21ToUI(scopes = [], section = FILTER_SECTION.ANYWHERE, enabled = true
52
51
  formulaType: columnInfo === null || columnInfo === void 0 ? void 0 : columnInfo.formulaType,
53
52
  id: filter.column.id,
54
53
  label: columnInfo === null || columnInfo === void 0 ? void 0 : columnInfo.label,
55
- linked: columnInfo === null || columnInfo === void 0 ? void 0 : columnInfo.linked,
56
- linkid: (columnInfo === null || columnInfo === void 0 ? void 0 : columnInfo.linkid) || (datasetInfo === null || datasetInfo === void 0 ? void 0 : datasetInfo.linkid),
57
54
  outputFormat: columnInfo === null || columnInfo === void 0 ? void 0 : columnInfo.outputFormat,
58
55
  qrveyid: filter.column.qrveyid,
59
56
  type: (columnInfo === null || columnInfo === void 0 ? void 0 : columnInfo.type) || filter.column.type,
@@ -38,7 +38,6 @@ function UI21ToFD(uFilterData, version) {
38
38
  delete filter.column.outputFormat;
39
39
  delete filter.column.sorting;
40
40
  delete filter.column.uniqueid;
41
- delete filter.column.linked;
42
41
  });
43
42
  });
44
43
  scopes.push(scope);
@@ -34,13 +34,11 @@ function UI21ToFlatUI(scopes = [], datasetsInfo = []) {
34
34
  scope.datasets.forEach((dataset) => {
35
35
  if (dataset.filters.length > 0) {
36
36
  dataset.filters.forEach((filter) => {
37
- const datasetInfo = datasetsInfo.find((dInfo) => dInfo.qrveyid === dataset.qrveyid &&
38
- dInfo.linkid === dataset.linkid);
37
+ const datasetInfo = datasetsInfo.find((dInfo) => dInfo.qrveyid === dataset.qrveyid);
39
38
  let columnInfo;
40
39
  if (!isEmpty(datasetInfo))
41
40
  columnInfo = datasetInfo.options.find((cInfo) => cInfo.id === filter.column.id &&
42
- cInfo.qrveyid === filter.column.qrveyid &&
43
- cInfo.linkid === filter.column.linkid);
41
+ cInfo.qrveyid === filter.column.qrveyid);
44
42
  const info = !isEmpty(filter.extras.info)
45
43
  ? {
46
44
  icon: filter.extras.info.icon,
@@ -57,8 +55,6 @@ function UI21ToFlatUI(scopes = [], datasetsInfo = []) {
57
55
  aggregate: filter.column.aggregate,
58
56
  calculation: filter.column.calculation,
59
57
  label: (columnInfo === null || columnInfo === void 0 ? void 0 : columnInfo.label) || filter.column.label,
60
- linkid: filter.column.linkid,
61
- linked: filter.column.linked,
62
58
  outputFormat: filter.column.outputFormat,
63
59
  type: filter.column.type,
64
60
  },
@@ -78,7 +74,6 @@ function UI21ToFlatUI(scopes = [], datasetsInfo = []) {
78
74
  enabled: dataset.enabled,
79
75
  displayed: dataset.enabled,
80
76
  label: dataset.label,
81
- linkid: dataset.linkid,
82
77
  } }),
83
78
  filterid: filter.filterid,
84
79
  lookupDisplayIndex: filter.lookupDisplayIndex,
@@ -71,7 +71,6 @@ function buildExpressions(filterSection, scope, dataset) {
71
71
  enabled: filter.enabled,
72
72
  formulaType: filter.column.formulaType,
73
73
  groupValue: getBackendGroupValue(filter),
74
- linkid: filter.column.linkid,
75
74
  property: getBackendProperty(filter),
76
75
  qrveyid: filter.column.qrveyid,
77
76
  questionType: filter.column.type,
@@ -111,8 +110,6 @@ const getFilterDetail = (filter, scope, dataset) => {
111
110
  aggregate: filter.column.aggregate,
112
111
  calculation: filter.column.calculation,
113
112
  formulaType: filter.column.formulaType,
114
- linked: undefined,
115
- linkid: filter.column.linkid,
116
113
  outputFormat: filter.column.outputFormat,
117
114
  property: filter.column.property,
118
115
  sorting: filter.column.sorting,
@@ -73,7 +73,6 @@ function buildDataset(uFilter) {
73
73
  enabled: uFilter.extras.dataset.enabled,
74
74
  displayed: uFilter.extras.dataset.displayed,
75
75
  filters: undefined,
76
- linkid: uFilter.extras.dataset.linkid,
77
76
  };
78
77
  }
79
78
  /**
@@ -49,7 +49,6 @@ const flatUIToOldFilterDetail = (uFilters = []) => {
49
49
  calculation: filter.column.calculation,
50
50
  formulaType: filter.column.formulaType,
51
51
  linked: undefined,
52
- linkid: filter.column.linkid,
53
52
  outputFormat: filter.column.outputFormat,
54
53
  property: filter.column.property,
55
54
  sorting: filter.column.sorting,
@@ -141,7 +140,6 @@ function getRegularExpression(props) {
141
140
  const uiValue = getUIValuess(props);
142
141
  const expression = {
143
142
  groupValue: getBackendGroupValue(props),
144
- linkid: props.column.linkid,
145
143
  property: getBackendProperty(props),
146
144
  qrveyid: props.column.qrveyid,
147
145
  questionid: props.column.id,
@@ -37,7 +37,6 @@ function buildScopes(uFilters) {
37
37
  : -1;
38
38
  const lastUiFilterIndex = datasetIndex > -1
39
39
  ? getLastIndexFromArray(scopes[scopeIndex].datasets[datasetIndex].filters, (uf) => uf.column.id === uiFilter.column.id &&
40
- uf.column.linkid === uFilter.column.linkid &&
41
40
  uf.column.qrveyid === uFilter.column.qrveyid)
42
41
  : -1;
43
42
  if (scopeIndex === -1) {
@@ -84,7 +83,6 @@ function buildDataset(uFilter) {
84
83
  displayed: uFilter.extras.dataset.displayed,
85
84
  filters: undefined,
86
85
  label: uFilter.extras.dataset.label,
87
- linkid: uFilter.extras.dataset.linkid,
88
86
  };
89
87
  }
90
88
  /**
@@ -108,8 +106,6 @@ function buildFilter(uFilter) {
108
106
  formulaType: uFilter.column.formulaType,
109
107
  id: uFilter.column.id,
110
108
  label: uFilter.column.label,
111
- linked: uFilter.column.linked,
112
- linkid: uFilter.column.linkid,
113
109
  outputFormat: uFilter.column.outputFormat,
114
110
  property: uFilter.column.property,
115
111
  qrveyid: uFilter.column.qrveyid,