@infomaximum/widget-sdk 7.0.0-15 → 7.0.0-16

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/dist/index.esm.js CHANGED
@@ -31,6 +31,7 @@ var apiVersions = [
31
31
  "16.2", // Для версии системы 250709
32
32
  "17", // 2508
33
33
  "18", // 2601
34
+ "19", // 2602
34
35
  ];
35
36
  /**
36
37
  * Актуальная версия settings, с которой работает система.
@@ -221,6 +222,15 @@ function memoize(fn) {
221
222
  return result;
222
223
  };
223
224
  }
225
+ var clamp = function (value, min, max) {
226
+ if (value < min) {
227
+ return min;
228
+ }
229
+ if (value > max) {
230
+ return max;
231
+ }
232
+ return value;
233
+ };
224
234
  /** Добавляет свойства к функции */
225
235
  function assignPropsToFn(fn, props) {
226
236
  return Object.assign(fn, props);
@@ -376,9 +386,9 @@ var AutoIdentifiedArrayItemSchema = SchemaRegistry.define({
376
386
  });
377
387
  var BaseWidgetSettingsSchema = SchemaRegistry.define({
378
388
  key: "BaseWidgetSettings",
379
- latestVersion: "17",
380
- history: {
381
- "17": function (z) {
389
+ latestVersion: "19",
390
+ get history() {
391
+ var v17 = function (z) {
382
392
  return z.object({
383
393
  title: z.string().default(""),
384
394
  titleSize: themed(z.number().default(14), function (theme) { return theme.widgets.titleSize; }),
@@ -394,10 +404,14 @@ var BaseWidgetSettingsSchema = SchemaRegistry.define({
394
404
  ignoreFilters: z.boolean().default(false),
395
405
  sorting: z.array(WidgetSortingIndicatorSchema.forVersion("17")(z)).default([]),
396
406
  actionButtons: z.array(ActionButtonSchema.forVersion("17")(z)).default([]),
397
- paddings: themed(z.union([z.number(), z.string()]).default(8), function (theme) { return theme.widgets.paddings; }),
407
+ paddings: z.union([z.number(), z.string()]).default(8),
398
408
  viewTheme: z.boolean().default(false),
399
409
  });
400
- },
410
+ };
411
+ return {
412
+ "17": v17,
413
+ "19": function (z) { return v17(z).omit({ paddings: true }); },
414
+ };
401
415
  },
402
416
  });
403
417
 
@@ -2833,7 +2847,7 @@ var ESortDirection;
2833
2847
  * Если к разрезу иерархии применяется INCLUDE-фильтр с несколькими значениями - выбираем данный разрез
2834
2848
  */
2835
2849
  function selectDimensionFromHierarchy(hierarchy, filters) {
2836
- var hierarchyDimensions = hierarchy.hierarchyDimensions; hierarchy.displayCondition;
2850
+ var hierarchyDimensions = hierarchy.hierarchyDimensions;
2837
2851
  var _loop_1 = function (i) {
2838
2852
  var dimension = hierarchyDimensions[i];
2839
2853
  // todo: widgets - возможно, стоит использовать Map фильтров для быстрого поиска
@@ -3146,6 +3160,39 @@ var replaceFiltersBySelection = function (filters, selection) {
3146
3160
  }, []);
3147
3161
  };
3148
3162
 
3163
+ var colors = [
3164
+ "#222F3E",
3165
+ "#00D2D3",
3166
+ "#5F27CD",
3167
+ "#FECA57",
3168
+ "#078936",
3169
+ "#E51320",
3170
+ "#96AABF",
3171
+ "#1C55E7",
3172
+ "#341F97",
3173
+ "#FFDD59",
3174
+ "#D82C46",
3175
+ "#0BE881",
3176
+ "#0ABDE3",
3177
+ "#FF9F43",
3178
+ "#EC41D4",
3179
+ "#117F8E",
3180
+ "#B9B9B9",
3181
+ "#505BF1",
3182
+ "#64FFB6",
3183
+ "#485460",
3184
+ "#FFD32A",
3185
+ "#C74E1A",
3186
+ "#6E70A6",
3187
+ "#3C40C6",
3188
+ "#48DBFB",
3189
+ "#486179",
3190
+ "#FF9FF3",
3191
+ "#1DD1A1",
3192
+ "#BCC8D4",
3193
+ "#BA46AA",
3194
+ ];
3195
+
3149
3196
  var EColorMode;
3150
3197
  (function (EColorMode) {
3151
3198
  /** Окрашивание отключено */
@@ -3165,6 +3212,7 @@ var EColorMode;
3165
3212
  /** Задать цвет конкретным значениям общего разреза. Режим используется только для настроек правила отображения */
3166
3213
  EColorMode["BY_DIMENSION"] = "BY_DIMENSION";
3167
3214
  })(EColorMode || (EColorMode = {}));
3215
+
3168
3216
  var getRuleColor = function (ruleFormula, globalContext) {
3169
3217
  var _a, _b;
3170
3218
  var link = parseIndicatorLink(ruleFormula);
@@ -3186,38 +3234,6 @@ var isValidColor = function (color, globalContext) {
3186
3234
  }
3187
3235
  return true;
3188
3236
  };
3189
- var colors = [
3190
- "#222F3E",
3191
- "#00D2D3",
3192
- "#5F27CD",
3193
- "#FECA57",
3194
- "#078936",
3195
- "#E51320",
3196
- "#96AABF",
3197
- "#1C55E7",
3198
- "#341F97",
3199
- "#FFDD59",
3200
- "#D82C46",
3201
- "#0BE881",
3202
- "#0ABDE3",
3203
- "#FF9F43",
3204
- "#EC41D4",
3205
- "#117F8E",
3206
- "#B9B9B9",
3207
- "#505BF1",
3208
- "#64FFB6",
3209
- "#485460",
3210
- "#FFD32A",
3211
- "#C74E1A",
3212
- "#6E70A6",
3213
- "#3C40C6",
3214
- "#48DBFB",
3215
- "#486179",
3216
- "#FF9FF3",
3217
- "#1DD1A1",
3218
- "#BCC8D4",
3219
- "#BA46AA",
3220
- ];
3221
3237
  /**
3222
3238
  * Получить цвет по индексу элемента
3223
3239
  * @param index - индекс элемента, которому требуется цвет
@@ -3232,51 +3248,6 @@ var getColorByIndex = function (index) {
3232
3248
  return color;
3233
3249
  };
3234
3250
 
3235
- var WidgetPresetSettingsSchema = SchemaRegistry.define({
3236
- key: "WidgetPresetSettings",
3237
- latestVersion: "17",
3238
- history: {
3239
- "17": function (z) {
3240
- return BaseWidgetSettingsSchema.forVersion("17")(z)
3241
- .pick({
3242
- filterMode: true,
3243
- ignoreFilters: true,
3244
- stateName: true,
3245
- titleColor: true,
3246
- titleSize: true,
3247
- titleWeight: true,
3248
- paddings: true,
3249
- })
3250
- .extend({
3251
- textSize: z.number().default(12),
3252
- });
3253
- },
3254
- },
3255
- });
3256
-
3257
- /**
3258
- * Привязывает мета-информацию о теме к Zod-схеме
3259
- *
3260
- * @template Value - Тип значения схемы
3261
- * @template Theme - Тип темы (по умолчанию ITheme)
3262
- *
3263
- * @param scheme - Zod схема для привязки
3264
- * @param selectThemeValue - Функция, возвращающая значение из темы
3265
- *
3266
- * @returns Zod схему с мета-информацией о теме
3267
- *
3268
- * @example
3269
- * // Базовое использование
3270
- * textSize: themed(
3271
- * z.number().default(12),
3272
- * (theme) => theme.textSize
3273
- * )
3274
- */
3275
- var themed = function (scheme, selectThemeValue) {
3276
- var _a;
3277
- return scheme.meta((_a = {}, _a[ESettingsSchemaMetaKey.themeValue] = selectThemeValue, _a));
3278
- };
3279
-
3280
3251
  var ColorBaseSchema = SchemaRegistry.define({
3281
3252
  key: "ColorBase",
3282
3253
  latestVersion: "17",
@@ -3424,4 +3395,96 @@ var ColorSchema = SchemaRegistry.define({
3424
3395
  },
3425
3396
  });
3426
3397
 
3427
- export { ActionButtonSchema, ActionDrillDownSchema, ActionGoToURLSchema, ActionOnClickParameterSchema, ActionOpenInSchema, ActionOpenViewSchema, ActionRunScriptSchema, ActionSchema, ActionUpdateVariableSchema, ActionsOnClickSchema, AutoIdentifiedArrayItemSchema, BaseWidgetSettingsSchema, ColorAutoSchema, ColorBaseSchema, ColorByDimensionSchema, ColorDisabledSchema, ColorFormulaSchema, ColorGradientSchema, ColorRuleSchema, ColorSchema, ColorValuesSchema, ColoredValueSchema, ColumnIndicatorValueSchema, DimensionProcessFilterSchema, DimensionValueSchema, DisplayConditionSchema, EActionButtonsTypes, EActionTypes, EActivateConditionMode, EAutoUpdateMode, ECalculatorFilterMethods, EClickHouseBaseTypes, EColorMode, EControlType, ECustomSelectTemplates, EDataModelOption, EDimensionAggregationTemplateName, EDimensionProcessFilterTimeUnit, EDimensionTemplateNames, EDisplayConditionMode, EDrawerPlacement, EDurationTemplateName, EDurationUnit, EEventAppearances, EEventMeasureTemplateNames, EFontWeight, EFormatOrFormattingMode, EFormulaFilterFieldKeys, EHeightMode, EIndicatorType, ELastTimeUnit, EMarkdownDisplayMode, EMeasureAggregationTemplateName, EMeasureInnerTemplateNames, EMeasureTemplateNames, EOuterAggregation, EProcessFilterNames, ESelectOptionTypes, ESettingsSchemaMetaKey, ESimpleDataType, ESimpleInputType, ESortDirection, ESortingValueModes, ESystemRecordKey, ETransitionMeasureTemplateNames, EUnitMode, EViewMode, EViewOpenIn, EWidgetActionInputMethod, EWidgetFilterMode, EWidgetIndicatorType, EWidgetIndicatorValueModes, ExtendedFormulaFilterValueSchema, FormatSchema, FormattingSchema, FormulaFilterValueSchema, FormulaNullableSchema, FormulaSchema, KeyNullableSchema, MarkdownMeasureSchema, MeasureValueSchema, NameNullableSchema, OuterAggregation, ParameterFromAggregationSchema, ParameterFromColumnSchema, ParameterFromDataModelSchema, ParameterFromDynamicListSchema, ParameterFromEndEventSchema, ParameterFromEventSchema, ParameterFromFormulaSchema, ParameterFromManualInputSchema, ParameterFromStartEventSchema, ParameterFromStaticListSchema, ParameterFromVariableSchema, ProcessIndicatorSchema, ProcessIndicatorValueSchema, RangeSchema, SchemaRegistryReader, SettingsFilterSchema, SortDirectionSchema, SortOrderSchema, VersionedSchemaFactory, ViewActionParameterSchema, ViewActionSchema, WidgetActionParameterSchema, WidgetActionSchema, WidgetColumnIndicatorSchema, WidgetDimensionHierarchySchema, WidgetDimensionInHierarchySchema, WidgetDimensionSchema, WidgetIndicatorAggregationValueSchema, WidgetIndicatorConversionValueSchema, WidgetIndicatorDurationValueSchema, WidgetIndicatorFormulaValueSchema, WidgetIndicatorSchema, WidgetIndicatorTemplateValueSchema, WidgetIndicatorTimeValueSchema, WidgetMeasureAggregationValueSchema, WidgetMeasureSchema, WidgetPresetSettingsSchema, WidgetSortingIndicatorSchema, WidgetSortingValueSchema, apiVersion, apiVersions, applyIndexToArrayFormula, availableFormatsBySimpleType, bindContentWithIndicator, bindContentsWithIndicators, checkDisplayCondition, clearMultiLineComments, clearSingleLineComments, colors, conversionTemplate, convertFiltersToFormula, convertToFormulasChain, countExecutionsTemplate, createEscaper, createAggregationTemplate as createMeasureAggregationTemplate, curlyBracketsContentPattern, dashboardLinkRegExp, defaultActionsConfig, dimensionAggregationTemplates, dimensionTemplateFormulas, displayConditionTemplate, doubleQuoteContentPattern, durationTemplates, escapeCurlyBracketLinkName, escapeDoubleQuoteLinkName, eventMeasureTemplateFormulas, fillTemplateSql, formulaFilterMethods, generateColumnFormula, getColorByIndex, getDefaultSortOrders, getDimensionFormula, getDisplayConditionFormula, getEventMeasureFormula, getMeasureFormula, getProcessDimensionValueFormula, getRuleColor, getTransitionMeasureFormula, inheritDisplayConditionFromHierarchy, isDimensionProcessFilter, isDimensionsHierarchy, isFormulaFilterValue, isValidColor, mapDimensionsToInputs, mapEventMeasuresToInputs, mapFormulaFilterToCalculatorInput, mapFormulaFiltersToInputs, mapMeasuresToInputs, mapSettingsFiltersToInputs, mapSortingToInputs, mapTransitionMeasuresToInputs, measureInnerTemplateFormulas, measureTemplateFormulas, parseClickHouseType, parseIndicatorLink, prepareConversionParams, prepareDimensionAggregationParams, prepareDurationParams, prepareFormulaForSql, prepareMeasureAggregationParams, prepareSortOrders, prepareTimeParams, prepareValuesForSql, replaceDisplayCondition, replaceFiltersBySelection, replaceHierarchiesWithDimensions, selectDimensionFromHierarchy, themed, timeTemplates, transitionMeasureTemplateFormulas, unescapeSpecialCharacters, updateDefaultModeSelection, updateSingleModeSelection, workspaceLinkRegExp };
3398
+ var hexToRgb = function (hex) {
3399
+ if (hex.length === 0) {
3400
+ return;
3401
+ }
3402
+ var rgbTuple = [0, 0, 0];
3403
+ var matchArray = hex
3404
+ .replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, function (m, r, g, b) { return "#".concat(r).concat(r).concat(g).concat(g).concat(b).concat(b); })
3405
+ .substring(1)
3406
+ .match(/.{2}/g);
3407
+ matchArray === null || matchArray === void 0 ? void 0 : matchArray.forEach(function (value, index) {
3408
+ if (index > 2) {
3409
+ return undefined;
3410
+ }
3411
+ rgbTuple[index] = parseInt(value, 16);
3412
+ });
3413
+ return rgbTuple;
3414
+ };
3415
+
3416
+ var rgbToHex = function (rgb) {
3417
+ return "#".concat(rgb.map(function (x) { return x.toString(16).padStart(2, "0"); }).join(""));
3418
+ };
3419
+
3420
+ var lerp = function (a, b, t) { return a + (b - a) * t; };
3421
+ /**
3422
+ * Вычисляет промежуточный hex цвет между двумя цветами путем линейной интерполяции
3423
+ * в RGB пространстве
3424
+ *
3425
+ * @param startHex цвет начала
3426
+ * @param endHex цвет конца
3427
+ * @param position позиция на градиенте от 0 до 1
3428
+ */
3429
+ var interpolateHexColor = function (startHex, endHex, position) {
3430
+ var clampedPosition = clamp(position, 0, 1);
3431
+ var startRgb = hexToRgb(startHex);
3432
+ var endRgb = hexToRgb(endHex);
3433
+ if (!startRgb || !endRgb) {
3434
+ throw new Error("\u041D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u044B\u0435 \u0446\u0432\u0435\u0442\u0430: start: ".concat(startHex, ", end: ").concat(endHex));
3435
+ }
3436
+ var interpolated = [
3437
+ Math.round(lerp(startRgb[0], endRgb[0], clampedPosition)),
3438
+ Math.round(lerp(startRgb[1], endRgb[1], clampedPosition)),
3439
+ Math.round(lerp(startRgb[2], endRgb[2], clampedPosition)),
3440
+ ];
3441
+ return rgbToHex(interpolated);
3442
+ };
3443
+
3444
+ /** @deprecated временно используется для миграции */
3445
+ var WidgetPresetSettingsSchema = SchemaRegistry.define({
3446
+ key: "WidgetPresetSettings",
3447
+ latestVersion: "17",
3448
+ history: {
3449
+ "17": function (z) {
3450
+ return BaseWidgetSettingsSchema.forVersion("17")(z)
3451
+ .pick({
3452
+ filterMode: true,
3453
+ ignoreFilters: true,
3454
+ stateName: true,
3455
+ titleColor: true,
3456
+ titleSize: true,
3457
+ titleWeight: true,
3458
+ paddings: true,
3459
+ })
3460
+ .extend({
3461
+ textSize: z.number().default(12),
3462
+ });
3463
+ },
3464
+ },
3465
+ });
3466
+
3467
+ /**
3468
+ * Привязывает мета-информацию о теме к Zod-схеме
3469
+ *
3470
+ * @template Value - Тип значения схемы
3471
+ * @template Theme - Тип темы (по умолчанию ITheme)
3472
+ *
3473
+ * @param scheme - Zod схема для привязки
3474
+ * @param selectThemeValue - Функция, возвращающая значение из темы
3475
+ *
3476
+ * @returns Zod схему с мета-информацией о теме
3477
+ *
3478
+ * @example
3479
+ * // Базовое использование
3480
+ * textSize: themed(
3481
+ * z.number().default(12),
3482
+ * (theme) => theme.textSize
3483
+ * )
3484
+ */
3485
+ var themed = function (scheme, selectThemeValue) {
3486
+ var _a;
3487
+ return scheme.meta((_a = {}, _a[ESettingsSchemaMetaKey.themeValue] = selectThemeValue, _a));
3488
+ };
3489
+
3490
+ export { ActionButtonSchema, ActionDrillDownSchema, ActionGoToURLSchema, ActionOnClickParameterSchema, ActionOpenInSchema, ActionOpenViewSchema, ActionRunScriptSchema, ActionSchema, ActionUpdateVariableSchema, ActionsOnClickSchema, AutoIdentifiedArrayItemSchema, BaseWidgetSettingsSchema, ColorAutoSchema, ColorBaseSchema, ColorByDimensionSchema, ColorDisabledSchema, ColorFormulaSchema, ColorGradientSchema, ColorRuleSchema, ColorSchema, ColorValuesSchema, ColoredValueSchema, ColumnIndicatorValueSchema, DimensionProcessFilterSchema, DimensionValueSchema, DisplayConditionSchema, EActionButtonsTypes, EActionTypes, EActivateConditionMode, EAutoUpdateMode, ECalculatorFilterMethods, EClickHouseBaseTypes, EColorMode, EControlType, ECustomSelectTemplates, EDataModelOption, EDimensionAggregationTemplateName, EDimensionProcessFilterTimeUnit, EDimensionTemplateNames, EDisplayConditionMode, EDrawerPlacement, EDurationTemplateName, EDurationUnit, EEventAppearances, EEventMeasureTemplateNames, EFontWeight, EFormatOrFormattingMode, EFormulaFilterFieldKeys, EHeightMode, EIndicatorType, ELastTimeUnit, EMarkdownDisplayMode, EMeasureAggregationTemplateName, EMeasureInnerTemplateNames, EMeasureTemplateNames, EOuterAggregation, EProcessFilterNames, ESelectOptionTypes, ESettingsSchemaMetaKey, ESimpleDataType, ESimpleInputType, ESortDirection, ESortingValueModes, ESystemRecordKey, ETransitionMeasureTemplateNames, EUnitMode, EViewMode, EViewOpenIn, EWidgetActionInputMethod, EWidgetFilterMode, EWidgetIndicatorType, EWidgetIndicatorValueModes, ExtendedFormulaFilterValueSchema, FormatSchema, FormattingSchema, FormulaFilterValueSchema, FormulaNullableSchema, FormulaSchema, KeyNullableSchema, MarkdownMeasureSchema, MeasureValueSchema, NameNullableSchema, OuterAggregation, ParameterFromAggregationSchema, ParameterFromColumnSchema, ParameterFromDataModelSchema, ParameterFromDynamicListSchema, ParameterFromEndEventSchema, ParameterFromEventSchema, ParameterFromFormulaSchema, ParameterFromManualInputSchema, ParameterFromStartEventSchema, ParameterFromStaticListSchema, ParameterFromVariableSchema, ProcessIndicatorSchema, ProcessIndicatorValueSchema, RangeSchema, SchemaRegistryReader, SettingsFilterSchema, SortDirectionSchema, SortOrderSchema, VersionedSchemaFactory, ViewActionParameterSchema, ViewActionSchema, WidgetActionParameterSchema, WidgetActionSchema, WidgetColumnIndicatorSchema, WidgetDimensionHierarchySchema, WidgetDimensionInHierarchySchema, WidgetDimensionSchema, WidgetIndicatorAggregationValueSchema, WidgetIndicatorConversionValueSchema, WidgetIndicatorDurationValueSchema, WidgetIndicatorFormulaValueSchema, WidgetIndicatorSchema, WidgetIndicatorTemplateValueSchema, WidgetIndicatorTimeValueSchema, WidgetMeasureAggregationValueSchema, WidgetMeasureSchema, WidgetPresetSettingsSchema, WidgetSortingIndicatorSchema, WidgetSortingValueSchema, apiVersion, apiVersions, applyIndexToArrayFormula, availableFormatsBySimpleType, bindContentWithIndicator, bindContentsWithIndicators, checkDisplayCondition, clearMultiLineComments, clearSingleLineComments, colors, conversionTemplate, convertFiltersToFormula, convertToFormulasChain, countExecutionsTemplate, createEscaper, createAggregationTemplate as createMeasureAggregationTemplate, curlyBracketsContentPattern, dashboardLinkRegExp, defaultActionsConfig, dimensionAggregationTemplates, dimensionTemplateFormulas, displayConditionTemplate, doubleQuoteContentPattern, durationTemplates, escapeCurlyBracketLinkName, escapeDoubleQuoteLinkName, eventMeasureTemplateFormulas, fillTemplateSql, formulaFilterMethods, generateColumnFormula, getColorByIndex, getDefaultSortOrders, getDimensionFormula, getDisplayConditionFormula, getEventMeasureFormula, getMeasureFormula, getProcessDimensionValueFormula, getRuleColor, getTransitionMeasureFormula, hexToRgb, inheritDisplayConditionFromHierarchy, interpolateHexColor, isDimensionProcessFilter, isDimensionsHierarchy, isFormulaFilterValue, isValidColor, mapDimensionsToInputs, mapEventMeasuresToInputs, mapFormulaFilterToCalculatorInput, mapFormulaFiltersToInputs, mapMeasuresToInputs, mapSettingsFiltersToInputs, mapSortingToInputs, mapTransitionMeasuresToInputs, measureInnerTemplateFormulas, measureTemplateFormulas, parseClickHouseType, parseIndicatorLink, prepareConversionParams, prepareDimensionAggregationParams, prepareDurationParams, prepareFormulaForSql, prepareMeasureAggregationParams, prepareSortOrders, prepareTimeParams, prepareValuesForSql, replaceDisplayCondition, replaceFiltersBySelection, replaceHierarchiesWithDimensions, selectDimensionFromHierarchy, themed, timeTemplates, transitionMeasureTemplateFormulas, unescapeSpecialCharacters, updateDefaultModeSelection, updateSingleModeSelection, workspaceLinkRegExp };
package/dist/index.js CHANGED
@@ -32,6 +32,7 @@ var apiVersions = [
32
32
  "16.2", // Для версии системы 250709
33
33
  "17", // 2508
34
34
  "18", // 2601
35
+ "19", // 2602
35
36
  ];
36
37
  /**
37
38
  * Актуальная версия settings, с которой работает система.
@@ -222,6 +223,15 @@ function memoize(fn) {
222
223
  return result;
223
224
  };
224
225
  }
226
+ var clamp = function (value, min, max) {
227
+ if (value < min) {
228
+ return min;
229
+ }
230
+ if (value > max) {
231
+ return max;
232
+ }
233
+ return value;
234
+ };
225
235
  /** Добавляет свойства к функции */
226
236
  function assignPropsToFn(fn, props) {
227
237
  return Object.assign(fn, props);
@@ -377,9 +387,9 @@ var AutoIdentifiedArrayItemSchema = SchemaRegistry.define({
377
387
  });
378
388
  var BaseWidgetSettingsSchema = SchemaRegistry.define({
379
389
  key: "BaseWidgetSettings",
380
- latestVersion: "17",
381
- history: {
382
- "17": function (z) {
390
+ latestVersion: "19",
391
+ get history() {
392
+ var v17 = function (z) {
383
393
  return z.object({
384
394
  title: z.string().default(""),
385
395
  titleSize: themed(z.number().default(14), function (theme) { return theme.widgets.titleSize; }),
@@ -395,10 +405,14 @@ var BaseWidgetSettingsSchema = SchemaRegistry.define({
395
405
  ignoreFilters: z.boolean().default(false),
396
406
  sorting: z.array(WidgetSortingIndicatorSchema.forVersion("17")(z)).default([]),
397
407
  actionButtons: z.array(ActionButtonSchema.forVersion("17")(z)).default([]),
398
- paddings: themed(z.union([z.number(), z.string()]).default(8), function (theme) { return theme.widgets.paddings; }),
408
+ paddings: z.union([z.number(), z.string()]).default(8),
399
409
  viewTheme: z.boolean().default(false),
400
410
  });
401
- },
411
+ };
412
+ return {
413
+ "17": v17,
414
+ "19": function (z) { return v17(z).omit({ paddings: true }); },
415
+ };
402
416
  },
403
417
  });
404
418
 
@@ -2834,7 +2848,7 @@ exports.ESortDirection = void 0;
2834
2848
  * Если к разрезу иерархии применяется INCLUDE-фильтр с несколькими значениями - выбираем данный разрез
2835
2849
  */
2836
2850
  function selectDimensionFromHierarchy(hierarchy, filters) {
2837
- var hierarchyDimensions = hierarchy.hierarchyDimensions; hierarchy.displayCondition;
2851
+ var hierarchyDimensions = hierarchy.hierarchyDimensions;
2838
2852
  var _loop_1 = function (i) {
2839
2853
  var dimension = hierarchyDimensions[i];
2840
2854
  // todo: widgets - возможно, стоит использовать Map фильтров для быстрого поиска
@@ -3147,6 +3161,39 @@ var replaceFiltersBySelection = function (filters, selection) {
3147
3161
  }, []);
3148
3162
  };
3149
3163
 
3164
+ var colors = [
3165
+ "#222F3E",
3166
+ "#00D2D3",
3167
+ "#5F27CD",
3168
+ "#FECA57",
3169
+ "#078936",
3170
+ "#E51320",
3171
+ "#96AABF",
3172
+ "#1C55E7",
3173
+ "#341F97",
3174
+ "#FFDD59",
3175
+ "#D82C46",
3176
+ "#0BE881",
3177
+ "#0ABDE3",
3178
+ "#FF9F43",
3179
+ "#EC41D4",
3180
+ "#117F8E",
3181
+ "#B9B9B9",
3182
+ "#505BF1",
3183
+ "#64FFB6",
3184
+ "#485460",
3185
+ "#FFD32A",
3186
+ "#C74E1A",
3187
+ "#6E70A6",
3188
+ "#3C40C6",
3189
+ "#48DBFB",
3190
+ "#486179",
3191
+ "#FF9FF3",
3192
+ "#1DD1A1",
3193
+ "#BCC8D4",
3194
+ "#BA46AA",
3195
+ ];
3196
+
3150
3197
  exports.EColorMode = void 0;
3151
3198
  (function (EColorMode) {
3152
3199
  /** Окрашивание отключено */
@@ -3166,6 +3213,7 @@ exports.EColorMode = void 0;
3166
3213
  /** Задать цвет конкретным значениям общего разреза. Режим используется только для настроек правила отображения */
3167
3214
  EColorMode["BY_DIMENSION"] = "BY_DIMENSION";
3168
3215
  })(exports.EColorMode || (exports.EColorMode = {}));
3216
+
3169
3217
  var getRuleColor = function (ruleFormula, globalContext) {
3170
3218
  var _a, _b;
3171
3219
  var link = parseIndicatorLink(ruleFormula);
@@ -3187,38 +3235,6 @@ var isValidColor = function (color, globalContext) {
3187
3235
  }
3188
3236
  return true;
3189
3237
  };
3190
- var colors = [
3191
- "#222F3E",
3192
- "#00D2D3",
3193
- "#5F27CD",
3194
- "#FECA57",
3195
- "#078936",
3196
- "#E51320",
3197
- "#96AABF",
3198
- "#1C55E7",
3199
- "#341F97",
3200
- "#FFDD59",
3201
- "#D82C46",
3202
- "#0BE881",
3203
- "#0ABDE3",
3204
- "#FF9F43",
3205
- "#EC41D4",
3206
- "#117F8E",
3207
- "#B9B9B9",
3208
- "#505BF1",
3209
- "#64FFB6",
3210
- "#485460",
3211
- "#FFD32A",
3212
- "#C74E1A",
3213
- "#6E70A6",
3214
- "#3C40C6",
3215
- "#48DBFB",
3216
- "#486179",
3217
- "#FF9FF3",
3218
- "#1DD1A1",
3219
- "#BCC8D4",
3220
- "#BA46AA",
3221
- ];
3222
3238
  /**
3223
3239
  * Получить цвет по индексу элемента
3224
3240
  * @param index - индекс элемента, которому требуется цвет
@@ -3233,51 +3249,6 @@ var getColorByIndex = function (index) {
3233
3249
  return color;
3234
3250
  };
3235
3251
 
3236
- var WidgetPresetSettingsSchema = SchemaRegistry.define({
3237
- key: "WidgetPresetSettings",
3238
- latestVersion: "17",
3239
- history: {
3240
- "17": function (z) {
3241
- return BaseWidgetSettingsSchema.forVersion("17")(z)
3242
- .pick({
3243
- filterMode: true,
3244
- ignoreFilters: true,
3245
- stateName: true,
3246
- titleColor: true,
3247
- titleSize: true,
3248
- titleWeight: true,
3249
- paddings: true,
3250
- })
3251
- .extend({
3252
- textSize: z.number().default(12),
3253
- });
3254
- },
3255
- },
3256
- });
3257
-
3258
- /**
3259
- * Привязывает мета-информацию о теме к Zod-схеме
3260
- *
3261
- * @template Value - Тип значения схемы
3262
- * @template Theme - Тип темы (по умолчанию ITheme)
3263
- *
3264
- * @param scheme - Zod схема для привязки
3265
- * @param selectThemeValue - Функция, возвращающая значение из темы
3266
- *
3267
- * @returns Zod схему с мета-информацией о теме
3268
- *
3269
- * @example
3270
- * // Базовое использование
3271
- * textSize: themed(
3272
- * z.number().default(12),
3273
- * (theme) => theme.textSize
3274
- * )
3275
- */
3276
- var themed = function (scheme, selectThemeValue) {
3277
- var _a;
3278
- return scheme.meta((_a = {}, _a[exports.ESettingsSchemaMetaKey.themeValue] = selectThemeValue, _a));
3279
- };
3280
-
3281
3252
  var ColorBaseSchema = SchemaRegistry.define({
3282
3253
  key: "ColorBase",
3283
3254
  latestVersion: "17",
@@ -3425,6 +3396,98 @@ var ColorSchema = SchemaRegistry.define({
3425
3396
  },
3426
3397
  });
3427
3398
 
3399
+ var hexToRgb = function (hex) {
3400
+ if (hex.length === 0) {
3401
+ return;
3402
+ }
3403
+ var rgbTuple = [0, 0, 0];
3404
+ var matchArray = hex
3405
+ .replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, function (m, r, g, b) { return "#".concat(r).concat(r).concat(g).concat(g).concat(b).concat(b); })
3406
+ .substring(1)
3407
+ .match(/.{2}/g);
3408
+ matchArray === null || matchArray === void 0 ? void 0 : matchArray.forEach(function (value, index) {
3409
+ if (index > 2) {
3410
+ return undefined;
3411
+ }
3412
+ rgbTuple[index] = parseInt(value, 16);
3413
+ });
3414
+ return rgbTuple;
3415
+ };
3416
+
3417
+ var rgbToHex = function (rgb) {
3418
+ return "#".concat(rgb.map(function (x) { return x.toString(16).padStart(2, "0"); }).join(""));
3419
+ };
3420
+
3421
+ var lerp = function (a, b, t) { return a + (b - a) * t; };
3422
+ /**
3423
+ * Вычисляет промежуточный hex цвет между двумя цветами путем линейной интерполяции
3424
+ * в RGB пространстве
3425
+ *
3426
+ * @param startHex цвет начала
3427
+ * @param endHex цвет конца
3428
+ * @param position позиция на градиенте от 0 до 1
3429
+ */
3430
+ var interpolateHexColor = function (startHex, endHex, position) {
3431
+ var clampedPosition = clamp(position, 0, 1);
3432
+ var startRgb = hexToRgb(startHex);
3433
+ var endRgb = hexToRgb(endHex);
3434
+ if (!startRgb || !endRgb) {
3435
+ throw new Error("\u041D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u044B\u0435 \u0446\u0432\u0435\u0442\u0430: start: ".concat(startHex, ", end: ").concat(endHex));
3436
+ }
3437
+ var interpolated = [
3438
+ Math.round(lerp(startRgb[0], endRgb[0], clampedPosition)),
3439
+ Math.round(lerp(startRgb[1], endRgb[1], clampedPosition)),
3440
+ Math.round(lerp(startRgb[2], endRgb[2], clampedPosition)),
3441
+ ];
3442
+ return rgbToHex(interpolated);
3443
+ };
3444
+
3445
+ /** @deprecated временно используется для миграции */
3446
+ var WidgetPresetSettingsSchema = SchemaRegistry.define({
3447
+ key: "WidgetPresetSettings",
3448
+ latestVersion: "17",
3449
+ history: {
3450
+ "17": function (z) {
3451
+ return BaseWidgetSettingsSchema.forVersion("17")(z)
3452
+ .pick({
3453
+ filterMode: true,
3454
+ ignoreFilters: true,
3455
+ stateName: true,
3456
+ titleColor: true,
3457
+ titleSize: true,
3458
+ titleWeight: true,
3459
+ paddings: true,
3460
+ })
3461
+ .extend({
3462
+ textSize: z.number().default(12),
3463
+ });
3464
+ },
3465
+ },
3466
+ });
3467
+
3468
+ /**
3469
+ * Привязывает мета-информацию о теме к Zod-схеме
3470
+ *
3471
+ * @template Value - Тип значения схемы
3472
+ * @template Theme - Тип темы (по умолчанию ITheme)
3473
+ *
3474
+ * @param scheme - Zod схема для привязки
3475
+ * @param selectThemeValue - Функция, возвращающая значение из темы
3476
+ *
3477
+ * @returns Zod схему с мета-информацией о теме
3478
+ *
3479
+ * @example
3480
+ * // Базовое использование
3481
+ * textSize: themed(
3482
+ * z.number().default(12),
3483
+ * (theme) => theme.textSize
3484
+ * )
3485
+ */
3486
+ var themed = function (scheme, selectThemeValue) {
3487
+ var _a;
3488
+ return scheme.meta((_a = {}, _a[exports.ESettingsSchemaMetaKey.themeValue] = selectThemeValue, _a));
3489
+ };
3490
+
3428
3491
  Object.defineProperty(exports, "ELanguages", {
3429
3492
  enumerable: true,
3430
3493
  get: function () { return localization.ELanguages; }
@@ -3559,7 +3622,9 @@ exports.getMeasureFormula = getMeasureFormula;
3559
3622
  exports.getProcessDimensionValueFormula = getProcessDimensionValueFormula;
3560
3623
  exports.getRuleColor = getRuleColor;
3561
3624
  exports.getTransitionMeasureFormula = getTransitionMeasureFormula;
3625
+ exports.hexToRgb = hexToRgb;
3562
3626
  exports.inheritDisplayConditionFromHierarchy = inheritDisplayConditionFromHierarchy;
3627
+ exports.interpolateHexColor = interpolateHexColor;
3563
3628
  exports.isDimensionProcessFilter = isDimensionProcessFilter;
3564
3629
  exports.isDimensionsHierarchy = isDimensionsHierarchy;
3565
3630
  exports.isFormulaFilterValue = isFormulaFilterValue;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infomaximum/widget-sdk",
3
- "version": "7.0.0-15",
3
+ "version": "7.0.0-16",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.esm.js",
6
6
  "types": "./dist/index.d.ts",