@infomaximum/widget-sdk 6.0.0-view-theme.0 → 6.0.0-view-theme.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,30 +2,104 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [6.0.0-view-theme.2](https://github.com/Infomaximum/widget-sdk/compare/v6.0.0-15...v6.0.0-view-theme.2) (2025-10-02)
6
+
7
+ ## [6.0.0-view-theme.1](https://github.com/Infomaximum/widget-sdk/compare/v6.0.0-14...v6.0.0-view-theme.1) (2025-10-01)
8
+
9
+ ## [6.0.0-view-theme.0](https://github.com/Infomaximum/widget-sdk/compare/v6.0.0-12...v6.0.0-view-theme.0) (2025-09-29)
10
+
11
+
12
+ ### Features
13
+
14
+ * поддержен флаг для темы [BI-15496] ([5196fa6](https://github.com/Infomaximum/widget-sdk/commit/5196fa6c69a521c4529a355e674bcb1f8c1aac39))
15
+
16
+ ## [6.0.0-view-theme.1](https://github.com/Infomaximum/widget-sdk/compare/v6.0.0-2508.4...v6.0.0-view-theme.1) (2025-10-01)
17
+
18
+ ## [6.0.0-15](https://github.com/Infomaximum/widget-sdk/compare/v6.0.0-14...v6.0.0-15) (2025-10-02)
19
+
20
+ ## [6.0.0-14](https://github.com/Infomaximum/widget-sdk/compare/v6.0.0-2508.4...v6.0.0-14) (2025-10-01)
21
+
22
+ ## [6.0.0-13](https://github.com/Infomaximum/widget-sdk/compare/v6.0.0-2508.3...v6.0.0-13) (2025-10-01)
23
+
24
+ ### Bug Fixes
25
+
26
+ - исправлены шаблоны формул и функции подготовки параметров наполнения шаблонов. Отказ от удаления однострочных и многострочных комментариев ([97332be](https://github.com/Infomaximum/widget-sdk/commit/97332be7bddd6942f3670ff806470b9c1a59c122))
27
+
5
28
  ## [6.0.0-view-theme.0](https://github.com/Infomaximum/widget-sdk/compare/v6.0.0-12...v6.0.0-view-theme.0) (2025-09-29)
6
29
 
7
30
  ## [6.0.0-12](https://github.com/Infomaximum/widget-sdk/compare/v6.0.0-11...v6.0.0-12) (2025-09-29)
8
31
 
32
+ ### Features
33
+
34
+ - поддержен флаг для темы [BI-15496] ([5196fa6](https://github.com/Infomaximum/widget-sdk/commit/5196fa6c69a521c4529a355e674bcb1f8c1aac39))
35
+
36
+ ## [6.0.0-11](https://github.com/Infomaximum/widget-sdk/compare/v6.0.0-2508.2...v6.0.0-11) (2025-09-23)
9
37
 
10
38
  ### Features
11
39
 
12
- * для параметров действий образа добавлен id ([4b92d35](https://github.com/Infomaximum/widget-sdk/commit/4b92d3547a6048b8326db94ec360515d99e17b1a))
40
+ - для параметров действий образа добавлен id ([4b92d35](https://github.com/Infomaximum/widget-sdk/commit/4b92d3547a6048b8326db94ec360515d99e17b1a))
41
+ - удален флаг isBordered для IInputControl [BI-15461] ([d60c32d](https://github.com/Infomaximum/widget-sdk/commit/d60c32d02134c10b1aa799dc5a45e2656fe5aefd))
13
42
 
14
- ## [6.0.0-11](https://github.com/Infomaximum/widget-sdk/compare/v6.0.0-10...v6.0.0-11) (2025-09-23)
43
+ ## [6.0.0-10](https://github.com/Infomaximum/widget-sdk/compare/v6.0.0-2508.1...v6.0.0-10) (2025-09-12)
44
+
45
+ ## [6.0.0-9](https://github.com/Infomaximum/widget-sdk/compare/v6.0.0-8...v6.0.0-9) (2025-09-12)
46
+
47
+ ### Bug Fixes
48
+
49
+ - исправлен баг с подстановкой значений в template строки ([12166b5](https://github.com/Infomaximum/widget-sdk/commit/12166b587b74e0ff912822b0d065463b8f23121e))
50
+
51
+ ## [6.0.0-8](https://github.com/Infomaximum/widget-sdk/compare/v6.0.0-2508.0...v6.0.0-8) (2025-09-11)
52
+
53
+ ## [6.0.0-13](https://github.com/Infomaximum/widget-sdk/compare/v6.0.0-12...v6.0.0-13) (2025-10-01)
15
54
 
55
+ ### Bug Fixes
56
+
57
+ - исправлены шаблоны формул и функции подготовки параметров наполнения шаблонов. Отказ от удаления однострочных и многострочных комментариев ([97332be](https://github.com/Infomaximum/widget-sdk/commit/97332be7bddd6942f3670ff806470b9c1a59c122))
58
+
59
+ ## [6.0.0-12](https://github.com/Infomaximum/widget-sdk/compare/v6.0.0-11...v6.0.0-12) (2025-09-29)
60
+
61
+ ## [6.0.0-11](https://github.com/Infomaximum/widget-sdk/compare/v6.0.0-2508.2...v6.0.0-11) (2025-09-23)
16
62
 
17
63
  ### Features
18
64
 
19
- * удален флаг isBordered для IInputControl [BI-15461] ([d60c32d](https://github.com/Infomaximum/widget-sdk/commit/d60c32d02134c10b1aa799dc5a45e2656fe5aefd))
65
+ - для параметров действий образа добавлен id ([4b92d35](https://github.com/Infomaximum/widget-sdk/commit/4b92d3547a6048b8326db94ec360515d99e17b1a))
66
+ - удален флаг isBordered для IInputControl [BI-15461] ([d60c32d](https://github.com/Infomaximum/widget-sdk/commit/d60c32d02134c10b1aa799dc5a45e2656fe5aefd))
20
67
 
21
68
  ## [6.0.0-10](https://github.com/Infomaximum/widget-sdk/compare/v6.0.0-2508.1...v6.0.0-10) (2025-09-12)
22
69
 
23
70
  ## [6.0.0-9](https://github.com/Infomaximum/widget-sdk/compare/v6.0.0-8...v6.0.0-9) (2025-09-12)
24
71
 
72
+ ### Bug Fixes
73
+
74
+ - исправлен баг с подстановкой значений в template строки ([12166b5](https://github.com/Infomaximum/widget-sdk/commit/12166b587b74e0ff912822b0d065463b8f23121e))
75
+
76
+ ## [6.0.0-8](https://github.com/Infomaximum/widget-sdk/compare/v6.0.0-2508.0...v6.0.0-8) (2025-09-11)
77
+
78
+ ## [6.0.0-13](https://github.com/Infomaximum/widget-sdk/compare/v6.0.0-12...v6.0.0-13) (2025-10-01)
25
79
 
26
80
  ### Bug Fixes
27
81
 
28
- * исправлен баг с подстановкой значений в template строки ([12166b5](https://github.com/Infomaximum/widget-sdk/commit/12166b587b74e0ff912822b0d065463b8f23121e))
82
+ - исправлены шаблоны формул и функции подготовки параметров наполнения шаблонов. Отказ от удаления однострочных и многострочных комментариев ([97332be](https://github.com/Infomaximum/widget-sdk/commit/97332be7bddd6942f3670ff806470b9c1a59c122))
83
+
84
+ ## [6.0.0-12](https://github.com/Infomaximum/widget-sdk/compare/v6.0.0-11...v6.0.0-12) (2025-09-29)
85
+
86
+ ### Features
87
+
88
+ - для параметров действий образа добавлен id ([4b92d35](https://github.com/Infomaximum/widget-sdk/commit/4b92d3547a6048b8326db94ec360515d99e17b1a))
89
+
90
+ ## [6.0.0-11](https://github.com/Infomaximum/widget-sdk/compare/v6.0.0-10...v6.0.0-11) (2025-09-23)
91
+
92
+ ### Features
93
+
94
+ - удален флаг isBordered для IInputControl [BI-15461] ([d60c32d](https://github.com/Infomaximum/widget-sdk/commit/d60c32d02134c10b1aa799dc5a45e2656fe5aefd))
95
+
96
+ ## [6.0.0-10](https://github.com/Infomaximum/widget-sdk/compare/v6.0.0-2508.1...v6.0.0-10) (2025-09-12)
97
+
98
+ ## [6.0.0-9](https://github.com/Infomaximum/widget-sdk/compare/v6.0.0-8...v6.0.0-9) (2025-09-12)
99
+
100
+ ### Bug Fixes
101
+
102
+ - исправлен баг с подстановкой значений в template строки ([12166b5](https://github.com/Infomaximum/widget-sdk/commit/12166b587b74e0ff912822b0d065463b8f23121e))
29
103
 
30
104
  ## [6.0.0-8](https://github.com/Infomaximum/widget-sdk/compare/v6.0.0-2508.0...v6.0.0-8) (2025-09-11)
31
105
 
package/dist/index.d.ts CHANGED
@@ -261,6 +261,7 @@ interface IBaseWidgetSettings {
261
261
  sorting?: IWidgetSortingIndicator[];
262
262
  actionButtons?: IActionButton[];
263
263
  paddings?: number | string;
264
+ viewTheme?: boolean;
264
265
  }
265
266
 
266
267
  declare enum ESortDirection {
@@ -2027,7 +2028,7 @@ declare const prepareMeasureAggregationParams: (value: Extract<IWidgetMeasure["v
2027
2028
  } | null;
2028
2029
 
2029
2030
  /** Шаблон процессной метрики меры с режимом CONVERSION */
2030
- declare const conversionTemplate = "countIf(\n process(\n minIf(\n {startEventTimeFormula}, \n {startEventNameFormula} = '{startEventName}'{startEventFilters}\n ), \n {endCaseCaseIdFormula}\n ) < \n process(\n maxIf(\n {endEventTimeFormula}, \n {endEventNameFormula} = '{endEventName}'{endEventFilters}\n ), \n {endCaseCaseIdFormula}\n ) \n and \n process(\n countIf(\n {startEventNameFormula} = '{startEventName}'{startEventFilters}\n ) != 0, \n {endCaseCaseIdFormula}\n ) != 0\n) / countIf(\n process(\n countIf(\n {startEventNameFormula} = '{startEventName}'{startEventFilters}\n ) != 0, \n {endCaseCaseIdFormula}\n ) != 0\n)";
2031
+ declare const conversionTemplate = "countIf(\n process(\n minIf(\n {startEventTimeFormula}, \n {startEventNameFormula} = {startEventName}{startEventFilters}\n ), \n {endCaseCaseIdFormula}\n ) < \n process(\n maxIf(\n {endEventTimeFormula}, \n {endEventNameFormula} = {endEventName}{endEventFilters}\n ), \n {endCaseCaseIdFormula}\n ) \n and \n process(\n countIf(\n {startEventNameFormula} = {startEventName}{startEventFilters}\n ) != 0, \n {endCaseCaseIdFormula}\n ) != 0\n) / countIf(\n process(\n countIf(\n {startEventNameFormula} = {startEventName}{startEventFilters}\n ) != 0, \n {endCaseCaseIdFormula}\n ) != 0\n)";
2031
2032
  /** На основе значения режима CONVERSION подготовить параметры для подстановки в шаблонную формулу */
2032
2033
  declare const prepareConversionParams: (value: TWidgetIndicatorConversionValue) => {
2033
2034
  startEventTimeFormula: string;
@@ -2084,7 +2085,7 @@ declare const transitionMeasureTemplateFormulas: {
2084
2085
  readonly medianTime: "medianExact(date_diff(second, begin({eventTimeFormula}), end({eventTimeFormula})))";
2085
2086
  };
2086
2087
 
2087
- declare const countExecutionsTemplate = "process(countIf({eventNameFormula} in '{eventName}'{filters}), {caseCaseIdFormula})";
2088
+ declare const countExecutionsTemplate = "process(countIf({eventNameFormula} in {eventName}{filters}), {caseCaseIdFormula})";
2088
2089
 
2089
2090
  /** @deprecated - следует использовать fillTemplateSql */
2090
2091
  declare function fillTemplateString(templateString: string, params: Record<string, any>): string;
@@ -2326,6 +2327,8 @@ interface IPanelDescription<Settings extends object, GroupSettings extends IGrou
2326
2327
  useTitle?: boolean;
2327
2328
  /** Добавить поле настройки описания */
2328
2329
  useMarkdown?: boolean;
2330
+ /** Добавить переключатель темы */
2331
+ useTheme?: boolean;
2329
2332
  /** Конфигурация вкладки настроек данных */
2330
2333
  dataRecords?: TWidgetLevelRecord<Settings>[];
2331
2334
  /** Конфигурация вкладки настроек отображения */
package/dist/index.esm.js CHANGED
@@ -786,14 +786,14 @@ var EEventAppearances;
786
786
  })(EEventAppearances || (EEventAppearances = {}));
787
787
 
788
788
  function createAggregationTemplate$1(functionName, options) {
789
- return "process(".concat(functionName, "(").concat((options === null || options === void 0 ? void 0 : options.distinct) ? "distinct " : "", "{columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula})");
789
+ return "process(".concat(functionName, "(").concat((options === null || options === void 0 ? void 0 : options.distinct) ? "distinct " : "", "{columnFormula}, {eventNameFormula} ={eventName}{filters}), {caseCaseIdFormula})");
790
790
  }
791
791
 
792
- var countReworksTemplate = "process(if(countIf({eventNameFormula} = '{eventName}'{filters}) > 0, countIf({eventNameFormula} = '{eventName}'{filters}) - 1, 0), {caseCaseIdFormula})";
793
- var countExecutionsTemplate = "process(countIf({eventNameFormula} in '{eventName}'{filters}), {caseCaseIdFormula})";
794
- var lastValueTemplate = "process(argMaxIf({columnFormula}, {eventTimeFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula})";
795
- var firstValueTemplate = "process(argMinIf({columnFormula}, {eventTimeFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula})";
796
- var topTemplate = "process(topKIf(1)({columnFormula}, {eventNameFormula} = '{eventName}'{filters})[1], {caseCaseIdFormula})";
792
+ var countReworksTemplate = "process(if(countIf({eventNameFormula} = {eventName}{filters}) > 0, countIf({eventNameFormula} = {eventName}{filters}) - 1, 0), {caseCaseIdFormula})";
793
+ var countExecutionsTemplate = "process(countIf({eventNameFormula} in {eventName}{filters}), {caseCaseIdFormula})";
794
+ var lastValueTemplate = "process(argMaxIf({columnFormula}, {eventTimeFormula}, {eventNameFormula} = {eventName}{filters}), {caseCaseIdFormula})";
795
+ var firstValueTemplate = "process(argMinIf({columnFormula}, {eventTimeFormula}, {eventNameFormula} = {eventName}{filters}), {caseCaseIdFormula})";
796
+ var topTemplate = "process(topKIf(1)({columnFormula}, {eventNameFormula} = {eventName}{filters})[1], {caseCaseIdFormula})";
797
797
  var avgTemplate = createAggregationTemplate$1("avgIf");
798
798
  var medianTemplate = createAggregationTemplate$1("medianIf");
799
799
  var countTemplate = createAggregationTemplate$1("countIf");
@@ -802,6 +802,23 @@ var minTemplate = createAggregationTemplate$1("minIf");
802
802
  var maxTemplate = createAggregationTemplate$1("maxIf");
803
803
  var sumTemplate = createAggregationTemplate$1("sumIf");
804
804
 
805
+ function hasPossibleSingleLineComment(str) {
806
+ return str.indexOf("--") >= 0;
807
+ }
808
+ function sanitizeSingleLineComment(formula, wrapInBrackets) {
809
+ if (!hasPossibleSingleLineComment(formula)) {
810
+ return formula;
811
+ }
812
+ var lines = formula.split("\n");
813
+ var lastLine = lines[lines.length - 1];
814
+ // Кейс, когда хотим избежать повторного добавления переноса строки:
815
+ // уже есть переносы и после последнего переноса нет комментария
816
+ if (lines.length > 1 && lastLine && !hasPossibleSingleLineComment(lastLine)) {
817
+ return formula;
818
+ }
819
+ return wrapInBrackets ? "(".concat(formula, "\n)") : "".concat(formula, "\n");
820
+ }
821
+
805
822
  /** @deprecated - следует использовать fillTemplateSql */
806
823
  function fillTemplateString(templateString, params) {
807
824
  return templateString.replace(/\{(.*?)\}/g, function (_, key) {
@@ -813,16 +830,17 @@ function fillTemplateString(templateString, params) {
813
830
  function fillTemplateSql(templateString, params) {
814
831
  var e_1, _a;
815
832
  var newParams = {};
833
+ if (templateString.indexOf("'{") >= 0) {
834
+ throw new Error("\u041D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u044B\u0439 \u0448\u0430\u0431\u043B\u043E\u043D: \u043F\u043B\u0435\u0439\u0441\u0445\u043E\u043B\u0434\u0435\u0440\u044B \u043D\u0435 \u0434\u043E\u043B\u0436\u043D\u044B \u0437\u0430\u043A\u043B\u044E\u0447\u0430\u0442\u044C\u0441\u044F \u0432 \u043E\u0434\u0438\u043D\u0430\u0440\u043D\u044B\u0435 \u043A\u0430\u0432\u044B\u0447\u043A\u0438.\n \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 {placeholder} \u0432\u043C\u0435\u0441\u0442\u043E '{placeholder}'.\n \u041A\u0430\u0432\u044B\u0447\u043A\u0438 \u0434\u043E\u043B\u0436\u043D\u044B \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0442\u044C\u0441\u044F \u0434\u043B\u044F \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u044B\u0445 \u043F\u043E\u043B\u0435\u0439 \u043F\u0440\u0438 \u0444\u043E\u0440\u043C\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0438 \u043E\u0431\u044A\u0435\u043A\u0442\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u0432.");
835
+ }
816
836
  try {
817
837
  for (var _b = __values(Object.entries(params)), _c = _b.next(); !_c.done; _c = _b.next()) {
818
838
  var _d = __read(_c.value, 2), key = _d[0], value = _d[1];
819
- /** Эвристическая проверка на возможное присутствие sql-комментария в значении подставляемом в template
820
- */
821
839
  if (String(value).indexOf("--") >= 0) {
822
840
  newParams[key] = "".concat(value, "\n");
823
841
  continue;
824
842
  }
825
- newParams[key] = String(value);
843
+ newParams[key] = sanitizeSingleLineComment(String(value));
826
844
  }
827
845
  }
828
846
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
@@ -906,7 +924,7 @@ var escapeSingularQuotes = function (formula) {
906
924
  };
907
925
 
908
926
  var prepareFormulaForSql = function (formula, simpleType) {
909
- formula = clearSingleLineComments(clearMultiLineComments(formula)).trim();
927
+ formula = sanitizeSingleLineComment(formula, true);
910
928
  return simpleType === ESimpleDataType.OTHER ? "toString(".concat(formula, ")") : formula;
911
929
  };
912
930
  var clearSingleLineComments = function (formula) {
@@ -1031,7 +1049,7 @@ var prepareDimensionAggregationParams = function (value) {
1031
1049
  var commonParams = {
1032
1050
  eventNameFormula: value.eventNameFormula,
1033
1051
  caseCaseIdFormula: value.caseCaseIdFormula,
1034
- eventName: value.eventName,
1052
+ eventName: "'".concat(escapeSingularQuotes(value.eventName), "'"),
1035
1053
  filters: convertFiltersToFormula(value.filters),
1036
1054
  eventTimeFormula: "",
1037
1055
  columnFormula: "",
@@ -1065,8 +1083,8 @@ var timeTemplates = (function () {
1065
1083
  return templates;
1066
1084
  };
1067
1085
  return _a = {},
1068
- _a[EWidgetIndicatorValueModes.START_TIME] = generateTemplates("process(minIf({eventTimeFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula})"),
1069
- _a[EWidgetIndicatorValueModes.END_TIME] = generateTemplates("process(maxIf({eventTimeFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula})"),
1086
+ _a[EWidgetIndicatorValueModes.START_TIME] = generateTemplates("process(minIf({eventTimeFormula}, {eventNameFormula} = {eventName}{filters}), {caseCaseIdFormula})"),
1087
+ _a[EWidgetIndicatorValueModes.END_TIME] = generateTemplates("process(maxIf({eventTimeFormula}, {eventNameFormula} = {eventName}{filters}), {caseCaseIdFormula})"),
1070
1088
  _a;
1071
1089
  })();
1072
1090
  /** На основе значения режимов START_TIME/END_TIME подготовить параметры для подстановки в шаблонную формулу */
@@ -1084,7 +1102,7 @@ var prepareTimeParams = function (value) {
1084
1102
  eventNameFormula: value.eventNameFormula,
1085
1103
  caseCaseIdFormula: value.caseCaseIdFormula,
1086
1104
  filters: convertFiltersToFormula(value.filters),
1087
- eventName: value.eventName,
1105
+ eventName: "'".concat(escapeSingularQuotes(value.eventName), "'"),
1088
1106
  };
1089
1107
  };
1090
1108
 
@@ -1152,7 +1170,6 @@ var EMeasureAggregationTemplateName;
1152
1170
  })(EMeasureAggregationTemplateName || (EMeasureAggregationTemplateName = {}));
1153
1171
  /** На основе значения режима AGGREGATION подготовить параметры для подстановки в шаблонную формулу */
1154
1172
  var prepareMeasureAggregationParams = function (value) {
1155
- var _a;
1156
1173
  if ((!value.anyEvent && !value.eventName) ||
1157
1174
  !value.caseCaseIdFormula ||
1158
1175
  !value.eventNameFormula ||
@@ -1165,7 +1182,7 @@ var prepareMeasureAggregationParams = function (value) {
1165
1182
  outerAggregation: value.outerAggregation,
1166
1183
  eventNameFormula: value.eventNameFormula,
1167
1184
  caseCaseIdFormula: value.caseCaseIdFormula,
1168
- eventName: (_a = value.eventName) !== null && _a !== void 0 ? _a : "",
1185
+ eventName: value.eventName ? "'".concat(escapeSingularQuotes(value.eventName), "'") : "",
1169
1186
  filters: convertFiltersToFormula(value.filters),
1170
1187
  eventTimeFormula: "",
1171
1188
  columnFormula: "",
@@ -1209,7 +1226,7 @@ var measureTemplateFormulas = (_a$3 = {},
1209
1226
  _a$3);
1210
1227
 
1211
1228
  /** Шаблон процессной метрики меры с режимом CONVERSION */
1212
- var conversionTemplate = "countIf(\n process(\n minIf(\n {startEventTimeFormula}, \n {startEventNameFormula} = '{startEventName}'{startEventFilters}\n ), \n {endCaseCaseIdFormula}\n ) < \n process(\n maxIf(\n {endEventTimeFormula}, \n {endEventNameFormula} = '{endEventName}'{endEventFilters}\n ), \n {endCaseCaseIdFormula}\n ) \n and \n process(\n countIf(\n {startEventNameFormula} = '{startEventName}'{startEventFilters}\n ) != 0, \n {endCaseCaseIdFormula}\n ) != 0\n) / countIf(\n process(\n countIf(\n {startEventNameFormula} = '{startEventName}'{startEventFilters}\n ) != 0, \n {endCaseCaseIdFormula}\n ) != 0\n)";
1229
+ var conversionTemplate = "countIf(\n process(\n minIf(\n {startEventTimeFormula}, \n {startEventNameFormula} = {startEventName}{startEventFilters}\n ), \n {endCaseCaseIdFormula}\n ) < \n process(\n maxIf(\n {endEventTimeFormula}, \n {endEventNameFormula} = {endEventName}{endEventFilters}\n ), \n {endCaseCaseIdFormula}\n ) \n and \n process(\n countIf(\n {startEventNameFormula} = {startEventName}{startEventFilters}\n ) != 0, \n {endCaseCaseIdFormula}\n ) != 0\n) / countIf(\n process(\n countIf(\n {startEventNameFormula} = {startEventName}{startEventFilters}\n ) != 0, \n {endCaseCaseIdFormula}\n ) != 0\n)";
1213
1230
  /** На основе значения режима CONVERSION подготовить параметры для подстановки в шаблонную формулу */
1214
1231
  var prepareConversionParams = function (value) {
1215
1232
  if (!value.startEventName ||
@@ -1227,11 +1244,11 @@ var prepareConversionParams = function (value) {
1227
1244
  startEventTimeFormula: value.startEventTimeFormula,
1228
1245
  startEventNameFormula: value.startEventNameFormula,
1229
1246
  startEventFilters: convertFiltersToFormula(value.startEventFilters),
1230
- startEventName: value.startEventName,
1247
+ startEventName: "'".concat(escapeSingularQuotes(value.startEventName), "'"),
1231
1248
  endEventTimeFormula: value.endEventTimeFormula,
1232
1249
  endCaseCaseIdFormula: value.endCaseCaseIdFormula,
1233
1250
  endEventNameFormula: value.endEventNameFormula,
1234
- endEventName: value.endEventName,
1251
+ endEventName: "'".concat(escapeSingularQuotes(value.endEventName), "'"),
1235
1252
  endEventFilters: convertFiltersToFormula(value.endEventFilters),
1236
1253
  };
1237
1254
  };
@@ -1239,7 +1256,7 @@ var prepareConversionParams = function (value) {
1239
1256
  /** Шаблоны процессных метрик меры с режимом DURATION */
1240
1257
  var durationTemplates = (function () {
1241
1258
  var _a;
1242
- var innerTemplate = "\n timeDiff(\n process(\n {startEventAggregationName}(\n {startEventTimeFormula}, \n {startEventNameFormula} = '{startEventName}'{startEventFilters}\n ), \n {endCaseCaseIdFormula}\n ), \n process(\n {endEventAggregationName}(\n {endEventTimeFormula}, \n {endEventNameFormula} = '{endEventName}'{endEventFilters}\n ), \n {endCaseCaseIdFormula}\n )\n ), \n process(\n {startEventAggregationName}(\n {startEventTimeFormula}, \n {startEventNameFormula} = '{startEventName}'{startEventFilters}\n ), \n {endCaseCaseIdFormula}\n ) < \n process(\n {endEventAggregationName}(\n {endEventTimeFormula}, \n {endEventNameFormula} = '{endEventName}'{endEventFilters}\n ), \n {endCaseCaseIdFormula}\n ) \n and \n process(\n countIf(\n {startEventNameFormula} = '{startEventName}'{startEventFilters}\n ) != 0, \n {endCaseCaseIdFormula}\n ) != 0\n ";
1259
+ var innerTemplate = "\n timeDiff(\n process(\n {startEventAggregationName}(\n {startEventTimeFormula}, \n {startEventNameFormula} = {startEventName}{startEventFilters}\n ), \n {endCaseCaseIdFormula}\n ), \n process(\n {endEventAggregationName}(\n {endEventTimeFormula}, \n {endEventNameFormula} = {endEventName}{endEventFilters}\n ), \n {endCaseCaseIdFormula}\n )\n ), \n process(\n {startEventAggregationName}(\n {startEventTimeFormula}, \n {startEventNameFormula} = {startEventName}{startEventFilters}\n ), \n {endCaseCaseIdFormula}\n ) < \n process(\n {endEventAggregationName}(\n {endEventTimeFormula}, \n {endEventNameFormula} = {endEventName}{endEventFilters}\n ), \n {endCaseCaseIdFormula}\n ) \n and \n process(\n countIf(\n {startEventNameFormula} = {startEventName}{startEventFilters}\n ) != 0, \n {endCaseCaseIdFormula}\n ) != 0\n ";
1243
1260
  return _a = {},
1244
1261
  _a[EDurationTemplateName.avg] = "avgIf(".concat(innerTemplate, ")"),
1245
1262
  _a[EDurationTemplateName.median] = "medianIf(".concat(innerTemplate, ")"),
@@ -1265,12 +1282,12 @@ var prepareDurationParams = function (value) {
1265
1282
  startEventTimeFormula: value.startEventTimeFormula,
1266
1283
  startEventNameFormula: value.startEventNameFormula,
1267
1284
  startEventFilters: convertFiltersToFormula(value.startEventFilters),
1268
- startEventName: value.startEventName,
1285
+ startEventName: "'".concat(escapeSingularQuotes(value.startEventName), "'"),
1269
1286
  startEventAggregationName: getAggregationNameByAppearances(value.startEventAppearances),
1270
1287
  endEventTimeFormula: value.endEventTimeFormula,
1271
1288
  endCaseCaseIdFormula: value.endCaseCaseIdFormula,
1272
1289
  endEventNameFormula: value.endEventNameFormula,
1273
- endEventName: value.endEventName,
1290
+ endEventName: "'".concat(escapeSingularQuotes(value.endEventName), "'"),
1274
1291
  endEventFilters: convertFiltersToFormula(value.endEventFilters),
1275
1292
  endEventAggregationName: getAggregationNameByAppearances(value.endEventAppearances),
1276
1293
  };
@@ -1280,7 +1297,7 @@ function createAnyEventTemplate(aggregatePart) {
1280
1297
  return "{outerAggregation}(process(".concat(aggregatePart, ", {caseCaseIdFormula}))");
1281
1298
  }
1282
1299
  function createSpecificEventTemplate(fn, additionalFn) {
1283
- return "{outerAggregation}(process(".concat(fn, "(").concat(additionalFn ? "".concat(additionalFn, " ") : "", "{columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula}))");
1300
+ return "{outerAggregation}(process(".concat(fn, "(").concat(additionalFn ? "".concat(additionalFn, " ") : "", "{columnFormula}, {eventNameFormula} = {eventName}{filters}), {caseCaseIdFormula}))");
1284
1301
  }
1285
1302
  function createTopLikeTemplate(template) {
1286
1303
  return function (outerAggregation) {
package/dist/index.js CHANGED
@@ -787,14 +787,14 @@ exports.EEventAppearances = void 0;
787
787
  })(exports.EEventAppearances || (exports.EEventAppearances = {}));
788
788
 
789
789
  function createAggregationTemplate$1(functionName, options) {
790
- return "process(".concat(functionName, "(").concat((options === null || options === void 0 ? void 0 : options.distinct) ? "distinct " : "", "{columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula})");
790
+ return "process(".concat(functionName, "(").concat((options === null || options === void 0 ? void 0 : options.distinct) ? "distinct " : "", "{columnFormula}, {eventNameFormula} ={eventName}{filters}), {caseCaseIdFormula})");
791
791
  }
792
792
 
793
- var countReworksTemplate = "process(if(countIf({eventNameFormula} = '{eventName}'{filters}) > 0, countIf({eventNameFormula} = '{eventName}'{filters}) - 1, 0), {caseCaseIdFormula})";
794
- var countExecutionsTemplate = "process(countIf({eventNameFormula} in '{eventName}'{filters}), {caseCaseIdFormula})";
795
- var lastValueTemplate = "process(argMaxIf({columnFormula}, {eventTimeFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula})";
796
- var firstValueTemplate = "process(argMinIf({columnFormula}, {eventTimeFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula})";
797
- var topTemplate = "process(topKIf(1)({columnFormula}, {eventNameFormula} = '{eventName}'{filters})[1], {caseCaseIdFormula})";
793
+ var countReworksTemplate = "process(if(countIf({eventNameFormula} = {eventName}{filters}) > 0, countIf({eventNameFormula} = {eventName}{filters}) - 1, 0), {caseCaseIdFormula})";
794
+ var countExecutionsTemplate = "process(countIf({eventNameFormula} in {eventName}{filters}), {caseCaseIdFormula})";
795
+ var lastValueTemplate = "process(argMaxIf({columnFormula}, {eventTimeFormula}, {eventNameFormula} = {eventName}{filters}), {caseCaseIdFormula})";
796
+ var firstValueTemplate = "process(argMinIf({columnFormula}, {eventTimeFormula}, {eventNameFormula} = {eventName}{filters}), {caseCaseIdFormula})";
797
+ var topTemplate = "process(topKIf(1)({columnFormula}, {eventNameFormula} = {eventName}{filters})[1], {caseCaseIdFormula})";
798
798
  var avgTemplate = createAggregationTemplate$1("avgIf");
799
799
  var medianTemplate = createAggregationTemplate$1("medianIf");
800
800
  var countTemplate = createAggregationTemplate$1("countIf");
@@ -803,6 +803,23 @@ var minTemplate = createAggregationTemplate$1("minIf");
803
803
  var maxTemplate = createAggregationTemplate$1("maxIf");
804
804
  var sumTemplate = createAggregationTemplate$1("sumIf");
805
805
 
806
+ function hasPossibleSingleLineComment(str) {
807
+ return str.indexOf("--") >= 0;
808
+ }
809
+ function sanitizeSingleLineComment(formula, wrapInBrackets) {
810
+ if (!hasPossibleSingleLineComment(formula)) {
811
+ return formula;
812
+ }
813
+ var lines = formula.split("\n");
814
+ var lastLine = lines[lines.length - 1];
815
+ // Кейс, когда хотим избежать повторного добавления переноса строки:
816
+ // уже есть переносы и после последнего переноса нет комментария
817
+ if (lines.length > 1 && lastLine && !hasPossibleSingleLineComment(lastLine)) {
818
+ return formula;
819
+ }
820
+ return wrapInBrackets ? "(".concat(formula, "\n)") : "".concat(formula, "\n");
821
+ }
822
+
806
823
  /** @deprecated - следует использовать fillTemplateSql */
807
824
  function fillTemplateString(templateString, params) {
808
825
  return templateString.replace(/\{(.*?)\}/g, function (_, key) {
@@ -814,16 +831,17 @@ function fillTemplateString(templateString, params) {
814
831
  function fillTemplateSql(templateString, params) {
815
832
  var e_1, _a;
816
833
  var newParams = {};
834
+ if (templateString.indexOf("'{") >= 0) {
835
+ throw new Error("\u041D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u044B\u0439 \u0448\u0430\u0431\u043B\u043E\u043D: \u043F\u043B\u0435\u0439\u0441\u0445\u043E\u043B\u0434\u0435\u0440\u044B \u043D\u0435 \u0434\u043E\u043B\u0436\u043D\u044B \u0437\u0430\u043A\u043B\u044E\u0447\u0430\u0442\u044C\u0441\u044F \u0432 \u043E\u0434\u0438\u043D\u0430\u0440\u043D\u044B\u0435 \u043A\u0430\u0432\u044B\u0447\u043A\u0438.\n \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 {placeholder} \u0432\u043C\u0435\u0441\u0442\u043E '{placeholder}'.\n \u041A\u0430\u0432\u044B\u0447\u043A\u0438 \u0434\u043E\u043B\u0436\u043D\u044B \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0442\u044C\u0441\u044F \u0434\u043B\u044F \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u044B\u0445 \u043F\u043E\u043B\u0435\u0439 \u043F\u0440\u0438 \u0444\u043E\u0440\u043C\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0438 \u043E\u0431\u044A\u0435\u043A\u0442\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u0432.");
836
+ }
817
837
  try {
818
838
  for (var _b = __values(Object.entries(params)), _c = _b.next(); !_c.done; _c = _b.next()) {
819
839
  var _d = __read(_c.value, 2), key = _d[0], value = _d[1];
820
- /** Эвристическая проверка на возможное присутствие sql-комментария в значении подставляемом в template
821
- */
822
840
  if (String(value).indexOf("--") >= 0) {
823
841
  newParams[key] = "".concat(value, "\n");
824
842
  continue;
825
843
  }
826
- newParams[key] = String(value);
844
+ newParams[key] = sanitizeSingleLineComment(String(value));
827
845
  }
828
846
  }
829
847
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
@@ -907,7 +925,7 @@ var escapeSingularQuotes = function (formula) {
907
925
  };
908
926
 
909
927
  var prepareFormulaForSql = function (formula, simpleType) {
910
- formula = clearSingleLineComments(clearMultiLineComments(formula)).trim();
928
+ formula = sanitizeSingleLineComment(formula, true);
911
929
  return simpleType === exports.ESimpleDataType.OTHER ? "toString(".concat(formula, ")") : formula;
912
930
  };
913
931
  var clearSingleLineComments = function (formula) {
@@ -1032,7 +1050,7 @@ var prepareDimensionAggregationParams = function (value) {
1032
1050
  var commonParams = {
1033
1051
  eventNameFormula: value.eventNameFormula,
1034
1052
  caseCaseIdFormula: value.caseCaseIdFormula,
1035
- eventName: value.eventName,
1053
+ eventName: "'".concat(escapeSingularQuotes(value.eventName), "'"),
1036
1054
  filters: convertFiltersToFormula(value.filters),
1037
1055
  eventTimeFormula: "",
1038
1056
  columnFormula: "",
@@ -1066,8 +1084,8 @@ var timeTemplates = (function () {
1066
1084
  return templates;
1067
1085
  };
1068
1086
  return _a = {},
1069
- _a[exports.EWidgetIndicatorValueModes.START_TIME] = generateTemplates("process(minIf({eventTimeFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula})"),
1070
- _a[exports.EWidgetIndicatorValueModes.END_TIME] = generateTemplates("process(maxIf({eventTimeFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula})"),
1087
+ _a[exports.EWidgetIndicatorValueModes.START_TIME] = generateTemplates("process(minIf({eventTimeFormula}, {eventNameFormula} = {eventName}{filters}), {caseCaseIdFormula})"),
1088
+ _a[exports.EWidgetIndicatorValueModes.END_TIME] = generateTemplates("process(maxIf({eventTimeFormula}, {eventNameFormula} = {eventName}{filters}), {caseCaseIdFormula})"),
1071
1089
  _a;
1072
1090
  })();
1073
1091
  /** На основе значения режимов START_TIME/END_TIME подготовить параметры для подстановки в шаблонную формулу */
@@ -1085,7 +1103,7 @@ var prepareTimeParams = function (value) {
1085
1103
  eventNameFormula: value.eventNameFormula,
1086
1104
  caseCaseIdFormula: value.caseCaseIdFormula,
1087
1105
  filters: convertFiltersToFormula(value.filters),
1088
- eventName: value.eventName,
1106
+ eventName: "'".concat(escapeSingularQuotes(value.eventName), "'"),
1089
1107
  };
1090
1108
  };
1091
1109
 
@@ -1153,7 +1171,6 @@ exports.EMeasureAggregationTemplateName = void 0;
1153
1171
  })(exports.EMeasureAggregationTemplateName || (exports.EMeasureAggregationTemplateName = {}));
1154
1172
  /** На основе значения режима AGGREGATION подготовить параметры для подстановки в шаблонную формулу */
1155
1173
  var prepareMeasureAggregationParams = function (value) {
1156
- var _a;
1157
1174
  if ((!value.anyEvent && !value.eventName) ||
1158
1175
  !value.caseCaseIdFormula ||
1159
1176
  !value.eventNameFormula ||
@@ -1166,7 +1183,7 @@ var prepareMeasureAggregationParams = function (value) {
1166
1183
  outerAggregation: value.outerAggregation,
1167
1184
  eventNameFormula: value.eventNameFormula,
1168
1185
  caseCaseIdFormula: value.caseCaseIdFormula,
1169
- eventName: (_a = value.eventName) !== null && _a !== void 0 ? _a : "",
1186
+ eventName: value.eventName ? "'".concat(escapeSingularQuotes(value.eventName), "'") : "",
1170
1187
  filters: convertFiltersToFormula(value.filters),
1171
1188
  eventTimeFormula: "",
1172
1189
  columnFormula: "",
@@ -1210,7 +1227,7 @@ var measureTemplateFormulas = (_a$3 = {},
1210
1227
  _a$3);
1211
1228
 
1212
1229
  /** Шаблон процессной метрики меры с режимом CONVERSION */
1213
- var conversionTemplate = "countIf(\n process(\n minIf(\n {startEventTimeFormula}, \n {startEventNameFormula} = '{startEventName}'{startEventFilters}\n ), \n {endCaseCaseIdFormula}\n ) < \n process(\n maxIf(\n {endEventTimeFormula}, \n {endEventNameFormula} = '{endEventName}'{endEventFilters}\n ), \n {endCaseCaseIdFormula}\n ) \n and \n process(\n countIf(\n {startEventNameFormula} = '{startEventName}'{startEventFilters}\n ) != 0, \n {endCaseCaseIdFormula}\n ) != 0\n) / countIf(\n process(\n countIf(\n {startEventNameFormula} = '{startEventName}'{startEventFilters}\n ) != 0, \n {endCaseCaseIdFormula}\n ) != 0\n)";
1230
+ var conversionTemplate = "countIf(\n process(\n minIf(\n {startEventTimeFormula}, \n {startEventNameFormula} = {startEventName}{startEventFilters}\n ), \n {endCaseCaseIdFormula}\n ) < \n process(\n maxIf(\n {endEventTimeFormula}, \n {endEventNameFormula} = {endEventName}{endEventFilters}\n ), \n {endCaseCaseIdFormula}\n ) \n and \n process(\n countIf(\n {startEventNameFormula} = {startEventName}{startEventFilters}\n ) != 0, \n {endCaseCaseIdFormula}\n ) != 0\n) / countIf(\n process(\n countIf(\n {startEventNameFormula} = {startEventName}{startEventFilters}\n ) != 0, \n {endCaseCaseIdFormula}\n ) != 0\n)";
1214
1231
  /** На основе значения режима CONVERSION подготовить параметры для подстановки в шаблонную формулу */
1215
1232
  var prepareConversionParams = function (value) {
1216
1233
  if (!value.startEventName ||
@@ -1228,11 +1245,11 @@ var prepareConversionParams = function (value) {
1228
1245
  startEventTimeFormula: value.startEventTimeFormula,
1229
1246
  startEventNameFormula: value.startEventNameFormula,
1230
1247
  startEventFilters: convertFiltersToFormula(value.startEventFilters),
1231
- startEventName: value.startEventName,
1248
+ startEventName: "'".concat(escapeSingularQuotes(value.startEventName), "'"),
1232
1249
  endEventTimeFormula: value.endEventTimeFormula,
1233
1250
  endCaseCaseIdFormula: value.endCaseCaseIdFormula,
1234
1251
  endEventNameFormula: value.endEventNameFormula,
1235
- endEventName: value.endEventName,
1252
+ endEventName: "'".concat(escapeSingularQuotes(value.endEventName), "'"),
1236
1253
  endEventFilters: convertFiltersToFormula(value.endEventFilters),
1237
1254
  };
1238
1255
  };
@@ -1240,7 +1257,7 @@ var prepareConversionParams = function (value) {
1240
1257
  /** Шаблоны процессных метрик меры с режимом DURATION */
1241
1258
  var durationTemplates = (function () {
1242
1259
  var _a;
1243
- var innerTemplate = "\n timeDiff(\n process(\n {startEventAggregationName}(\n {startEventTimeFormula}, \n {startEventNameFormula} = '{startEventName}'{startEventFilters}\n ), \n {endCaseCaseIdFormula}\n ), \n process(\n {endEventAggregationName}(\n {endEventTimeFormula}, \n {endEventNameFormula} = '{endEventName}'{endEventFilters}\n ), \n {endCaseCaseIdFormula}\n )\n ), \n process(\n {startEventAggregationName}(\n {startEventTimeFormula}, \n {startEventNameFormula} = '{startEventName}'{startEventFilters}\n ), \n {endCaseCaseIdFormula}\n ) < \n process(\n {endEventAggregationName}(\n {endEventTimeFormula}, \n {endEventNameFormula} = '{endEventName}'{endEventFilters}\n ), \n {endCaseCaseIdFormula}\n ) \n and \n process(\n countIf(\n {startEventNameFormula} = '{startEventName}'{startEventFilters}\n ) != 0, \n {endCaseCaseIdFormula}\n ) != 0\n ";
1260
+ var innerTemplate = "\n timeDiff(\n process(\n {startEventAggregationName}(\n {startEventTimeFormula}, \n {startEventNameFormula} = {startEventName}{startEventFilters}\n ), \n {endCaseCaseIdFormula}\n ), \n process(\n {endEventAggregationName}(\n {endEventTimeFormula}, \n {endEventNameFormula} = {endEventName}{endEventFilters}\n ), \n {endCaseCaseIdFormula}\n )\n ), \n process(\n {startEventAggregationName}(\n {startEventTimeFormula}, \n {startEventNameFormula} = {startEventName}{startEventFilters}\n ), \n {endCaseCaseIdFormula}\n ) < \n process(\n {endEventAggregationName}(\n {endEventTimeFormula}, \n {endEventNameFormula} = {endEventName}{endEventFilters}\n ), \n {endCaseCaseIdFormula}\n ) \n and \n process(\n countIf(\n {startEventNameFormula} = {startEventName}{startEventFilters}\n ) != 0, \n {endCaseCaseIdFormula}\n ) != 0\n ";
1244
1261
  return _a = {},
1245
1262
  _a[exports.EDurationTemplateName.avg] = "avgIf(".concat(innerTemplate, ")"),
1246
1263
  _a[exports.EDurationTemplateName.median] = "medianIf(".concat(innerTemplate, ")"),
@@ -1266,12 +1283,12 @@ var prepareDurationParams = function (value) {
1266
1283
  startEventTimeFormula: value.startEventTimeFormula,
1267
1284
  startEventNameFormula: value.startEventNameFormula,
1268
1285
  startEventFilters: convertFiltersToFormula(value.startEventFilters),
1269
- startEventName: value.startEventName,
1286
+ startEventName: "'".concat(escapeSingularQuotes(value.startEventName), "'"),
1270
1287
  startEventAggregationName: getAggregationNameByAppearances(value.startEventAppearances),
1271
1288
  endEventTimeFormula: value.endEventTimeFormula,
1272
1289
  endCaseCaseIdFormula: value.endCaseCaseIdFormula,
1273
1290
  endEventNameFormula: value.endEventNameFormula,
1274
- endEventName: value.endEventName,
1291
+ endEventName: "'".concat(escapeSingularQuotes(value.endEventName), "'"),
1275
1292
  endEventFilters: convertFiltersToFormula(value.endEventFilters),
1276
1293
  endEventAggregationName: getAggregationNameByAppearances(value.endEventAppearances),
1277
1294
  };
@@ -1281,7 +1298,7 @@ function createAnyEventTemplate(aggregatePart) {
1281
1298
  return "{outerAggregation}(process(".concat(aggregatePart, ", {caseCaseIdFormula}))");
1282
1299
  }
1283
1300
  function createSpecificEventTemplate(fn, additionalFn) {
1284
- return "{outerAggregation}(process(".concat(fn, "(").concat(additionalFn ? "".concat(additionalFn, " ") : "", "{columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula}))");
1301
+ return "{outerAggregation}(process(".concat(fn, "(").concat(additionalFn ? "".concat(additionalFn, " ") : "", "{columnFormula}, {eventNameFormula} = {eventName}{filters}), {caseCaseIdFormula}))");
1285
1302
  }
1286
1303
  function createTopLikeTemplate(template) {
1287
1304
  return function (outerAggregation) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infomaximum/widget-sdk",
3
- "version": "6.0.0-view-theme.0",
3
+ "version": "6.0.0-view-theme.2",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.esm.js",
6
6
  "types": "./dist/index.d.ts",