@true-engineering/true-react-common-ui-kit 3.48.0 → 3.49.0

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/README.md CHANGED
@@ -11,6 +11,14 @@
11
11
 
12
12
  # Release Notes
13
13
 
14
+ ## 3.49.0
15
+
16
+ ### Changes
17
+
18
+ - **FiltersPane**: Добавлен `getSelectedValue` для удобного рендера значения в `custom`-фильтре с `valueViewType: 'multiple'`
19
+ - **FiltersPane**: Добавлен экспорт `ICustomComponentProps` для `CustomComponent` в `ICustomConfigItem`
20
+ - **FiltersPane**: Кастомный фильтр разделён на два типа `ICustomRangeConfigItem` и `ICustomMultipleConfigItem`
21
+
14
22
  ## 3.48.0
15
23
 
16
24
  ### Changes
@@ -54,20 +54,30 @@ export type IDateRangeConfigItem<Value> = IConfigItemBasicBase<Value> & {
54
54
  type: 'dateRange';
55
55
  dateFormat?: string;
56
56
  } & Omit<IFilterWithPeriodProps, 'value' | 'onChange' | 'setIsOpen'>;
57
- export type CustomComponent<Value> = FC<{
57
+ export interface ICustomComponentProps<Value> {
58
58
  value?: Value;
59
59
  onChange: (v?: Value) => void;
60
60
  onClose?: () => void;
61
61
  filter: ICustomConfigItem<Value>;
62
62
  localeKey?: IFilterLocaleKey;
63
63
  locale?: IPartialFilterLocale;
64
- }>;
65
- export interface ICustomConfigItem<Value> extends IConfigItemBasicBase<Value> {
66
- [key: string]: any;
64
+ }
65
+ export type CustomComponent<Value> = FC<ICustomComponentProps<Value>>;
66
+ export type ICustomValue<V> = V extends Array<infer T> ? T : never;
67
+ export interface ICustomRangeConfigItem<Value> extends IConfigItemBasicBase<Value> {
68
+ [key: string & {}]: any;
69
+ type: 'custom';
70
+ component: CustomComponent<Value>;
71
+ valueViewType?: 'range';
72
+ }
73
+ export interface ICustomMultipleConfigItem<Value> extends IConfigItemBasicBase<Value> {
74
+ [key: string & {}]: any;
67
75
  type: 'custom';
68
76
  component: CustomComponent<Value>;
69
- valueViewType?: 'range' | 'multiple';
77
+ valueViewType?: 'multiple';
78
+ getSelectedValue?: (v: ICustomValue<Value>) => ReactNode;
70
79
  }
80
+ export type ICustomConfigItem<Value> = ICustomRangeConfigItem<Value> | ICustomMultipleConfigItem<Value>;
71
81
  export type ConfigItem<Value> = ISelectConfigItem<Value> | IMultiSelectConfigItem<Value> | ICustomConfigItem<Value> | IDateRangeWithoutPeriodConfigItem<Value> | IDateRangeConfigItem<Value> | IIntervalConfigItem<Value> | IBooleanConfigItem<Value>;
72
82
  export type ConfigType<Values> = {
73
83
  [K in keyof Values]: ConfigItem<Values[K]>;
@@ -19060,7 +19060,7 @@ function FilterValueView(param) {
19060
19060
  if (isEmpty(value)) {
19061
19061
  return /* @__PURE__ */ jsx(Fragment, {});
19062
19062
  }
19063
- if (filter.getSelectedValueView !== void 0) {
19063
+ if (isNotEmpty(filter.getSelectedValueView)) {
19064
19064
  return /* @__PURE__ */ jsx("span", {
19065
19065
  className: classes.text,
19066
19066
  children: filter.getSelectedValueView(value)
@@ -19129,22 +19129,6 @@ function FilterValueView(param) {
19129
19129
  children: intervals.join(" ")
19130
19130
  });
19131
19131
  }
19132
- if (isMultiple) {
19133
- return /* @__PURE__ */ jsx(Fragment, {
19134
- children: Array.isArray(value) && value.length > 0 && /* @__PURE__ */ jsxs(Fragment, {
19135
- children: [
19136
- /* @__PURE__ */ jsx("span", {
19137
- className: classes.text,
19138
- children: displayValue(value[0])
19139
- }),
19140
- /* @__PURE__ */ jsx("span", {
19141
- className: classes.count,
19142
- children: value.length > 1 && " (+".concat(value.length - 1, ")")
19143
- })
19144
- ]
19145
- })
19146
- });
19147
- }
19148
19132
  if (isDate) {
19149
19133
  var from = value.from, to = value.to, periodType = value.periodType, label = value.label;
19150
19134
  var hasFrom = from !== void 0 && from !== null;
@@ -19175,6 +19159,24 @@ function FilterValueView(param) {
19175
19159
  children: range.join(" ")
19176
19160
  });
19177
19161
  }
19162
+ if (isMultiple) {
19163
+ var _filter_getSelectedValue;
19164
+ var convertValue = (_filter_getSelectedValue = filter.getSelectedValue) !== null && _filter_getSelectedValue !== void 0 ? _filter_getSelectedValue : displayValue;
19165
+ return /* @__PURE__ */ jsx(Fragment, {
19166
+ children: Array.isArray(value) && value.length > 0 && /* @__PURE__ */ jsxs(Fragment, {
19167
+ children: [
19168
+ /* @__PURE__ */ jsx("span", {
19169
+ className: classes.text,
19170
+ children: convertValue(value[0])
19171
+ }),
19172
+ /* @__PURE__ */ jsx("span", {
19173
+ className: classes.count,
19174
+ children: value.length > 1 && " (+".concat(value.length - 1, ")")
19175
+ })
19176
+ ]
19177
+ })
19178
+ });
19179
+ }
19178
19180
  if (isRange && Array.isArray(value)) {
19179
19181
  var rangeValue = value;
19180
19182
  var rangeValueFrom = rangeValue[0];