@gravity-ui/dynamic-forms 4.17.0 → 5.0.0-beta.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.
Files changed (67) hide show
  1. package/build/cjs/lib/kit/components/Card/Card.css +4 -2
  2. package/build/cjs/lib/kit/components/Card/Card.js +4 -3
  3. package/build/cjs/lib/kit/components/Inputs/CardOneOf/CardOneOf.js +2 -8
  4. package/build/cjs/lib/kit/components/Inputs/CheckboxGroup/CheckboxGroup.css +3 -0
  5. package/build/cjs/lib/kit/components/Inputs/TableArrayInput/TableArrayInput.js +4 -2
  6. package/build/cjs/lib/kit/components/Inputs/Text/Text.js +1 -2
  7. package/build/cjs/lib/kit/components/Inputs/TextContent/TextContent.js +2 -2
  8. package/build/cjs/lib/kit/components/Layouts/Accordeon/Accordeon.js +1 -2
  9. package/build/cjs/lib/kit/components/Layouts/Column/Column.js +7 -5
  10. package/build/cjs/lib/kit/components/Layouts/Row/Row.js +7 -5
  11. package/build/cjs/lib/kit/components/Layouts/Section/Section.css +4 -6
  12. package/build/cjs/lib/kit/components/Layouts/Section/Section.js +6 -24
  13. package/build/cjs/lib/kit/components/SimpleVerticalAccordeon/SimpleVerticalAccordeon.css +3 -0
  14. package/build/cjs/lib/kit/components/SimpleVerticalAccordeon/SimpleVerticalAccordeon.js +6 -5
  15. package/build/cjs/lib/kit/components/TogglerCard/TogglerCard.js +4 -2
  16. package/build/cjs/lib/kit/components/ViewLayouts/ViewAccordeon/ViewAccordeon.js +1 -2
  17. package/build/cjs/lib/kit/components/ViewLayouts/ViewColumn/ViewColumn.js +4 -2
  18. package/build/cjs/lib/kit/components/ViewLayouts/ViewRow/ViewRow.js +4 -2
  19. package/build/cjs/lib/kit/components/Views/CardOneOfView.js +3 -13
  20. package/build/cjs/lib/kit/components/Views/CheckboxGroupView/CheckboxGroupView.css +7 -5
  21. package/build/cjs/lib/kit/components/Views/CheckboxGroupView/CheckboxGroupView.js +4 -3
  22. package/build/cjs/lib/kit/components/Views/MultiOneOfView/MultiOneOfView.css +7 -5
  23. package/build/cjs/lib/kit/components/Views/MultiOneOfView/MultiOneOfView.js +3 -1
  24. package/build/cjs/lib/kit/components/Views/MultiSelectView/MultiSelectView.css +7 -5
  25. package/build/cjs/lib/kit/components/Views/MultiSelectView/MultiSelectView.js +3 -1
  26. package/build/cjs/lib/kit/components/Views/NumberWithScaleView/NumberWithScaleView.css +6 -4
  27. package/build/cjs/lib/kit/components/Views/NumberWithScaleView/NumberWithScaleView.js +2 -1
  28. package/build/cjs/lib/kit/components/Views/TableArrayView/TableArrayView.js +4 -2
  29. package/build/cjs/lib/kit/hooks/useOneOf/useOneOf.js +1 -1
  30. package/build/cjs/lib/kit/utils/common.js +8 -9
  31. package/build/esm/lib/core/components/View/types/layout.d.ts +1 -1
  32. package/build/esm/lib/core/components/View/types/views.d.ts +1 -1
  33. package/build/esm/lib/core/types/specs.d.ts +1 -2
  34. package/build/esm/lib/kit/components/Card/Card.css +4 -2
  35. package/build/esm/lib/kit/components/Card/Card.js +5 -4
  36. package/build/esm/lib/kit/components/Inputs/CardOneOf/CardOneOf.js +2 -8
  37. package/build/esm/lib/kit/components/Inputs/CheckboxGroup/CheckboxGroup.css +3 -0
  38. package/build/esm/lib/kit/components/Inputs/TableArrayInput/TableArrayInput.js +5 -3
  39. package/build/esm/lib/kit/components/Inputs/Text/Text.js +2 -3
  40. package/build/esm/lib/kit/components/Inputs/TextContent/TextContent.js +2 -2
  41. package/build/esm/lib/kit/components/Layouts/Accordeon/Accordeon.d.ts +1 -6
  42. package/build/esm/lib/kit/components/Layouts/Accordeon/Accordeon.js +1 -2
  43. package/build/esm/lib/kit/components/Layouts/Column/Column.js +5 -3
  44. package/build/esm/lib/kit/components/Layouts/Row/Row.js +5 -3
  45. package/build/esm/lib/kit/components/Layouts/Section/Section.css +4 -6
  46. package/build/esm/lib/kit/components/Layouts/Section/Section.js +7 -25
  47. package/build/esm/lib/kit/components/SimpleVerticalAccordeon/SimpleVerticalAccordeon.css +3 -0
  48. package/build/esm/lib/kit/components/SimpleVerticalAccordeon/SimpleVerticalAccordeon.d.ts +0 -2
  49. package/build/esm/lib/kit/components/SimpleVerticalAccordeon/SimpleVerticalAccordeon.js +7 -6
  50. package/build/esm/lib/kit/components/TogglerCard/TogglerCard.js +5 -3
  51. package/build/esm/lib/kit/components/ViewLayouts/ViewAccordeon/ViewAccordeon.d.ts +2 -7
  52. package/build/esm/lib/kit/components/ViewLayouts/ViewAccordeon/ViewAccordeon.js +1 -2
  53. package/build/esm/lib/kit/components/ViewLayouts/ViewColumn/ViewColumn.js +5 -3
  54. package/build/esm/lib/kit/components/ViewLayouts/ViewRow/ViewRow.js +5 -3
  55. package/build/esm/lib/kit/components/Views/CardOneOfView.js +3 -13
  56. package/build/esm/lib/kit/components/Views/CheckboxGroupView/CheckboxGroupView.css +7 -5
  57. package/build/esm/lib/kit/components/Views/CheckboxGroupView/CheckboxGroupView.js +5 -4
  58. package/build/esm/lib/kit/components/Views/MultiOneOfView/MultiOneOfView.css +7 -5
  59. package/build/esm/lib/kit/components/Views/MultiOneOfView/MultiOneOfView.js +4 -2
  60. package/build/esm/lib/kit/components/Views/MultiSelectView/MultiSelectView.css +7 -5
  61. package/build/esm/lib/kit/components/Views/MultiSelectView/MultiSelectView.js +4 -2
  62. package/build/esm/lib/kit/components/Views/NumberWithScaleView/NumberWithScaleView.css +6 -4
  63. package/build/esm/lib/kit/components/Views/NumberWithScaleView/NumberWithScaleView.js +2 -1
  64. package/build/esm/lib/kit/components/Views/TableArrayView/TableArrayView.js +5 -3
  65. package/build/esm/lib/kit/hooks/useOneOf/useOneOf.js +2 -2
  66. package/build/esm/lib/kit/utils/common.js +8 -9
  67. package/package.json +5 -6
@@ -70,8 +70,10 @@
70
70
  max-width: var(--df-card-title-max-width, 533px);
71
71
  height: var(--df-card-title-height, var(--g-spacing-5));
72
72
  }
73
- .df-card__title-popover {
74
- height: var(--df-card-title-popover-height, var(--g-spacing-5));
73
+ .df-card__popover {
74
+ padding: var(--g-spacing-2);
75
+ overflow-wrap: break-word;
76
+ max-width: 300px;
75
77
  }
76
78
  .df-card__note {
77
79
  margin-left: var(--df-card-note-margin-left, 5px);
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Card = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const components_1 = require("@gravity-ui/components");
7
6
  const icons_1 = require("@gravity-ui/icons");
8
7
  const uikit_1 = require("@gravity-ui/uikit");
9
8
  const isString_1 = tslib_1.__importDefault(require("lodash/isString"));
@@ -37,10 +36,12 @@ const Card = ({ name, title: propsTitle, description, actions, open: propsOpen,
37
36
  const title = react_1.default.useMemo(() => {
38
37
  if ((0, isString_1.default)(propsTitle)) {
39
38
  return (react_1.default.createElement(react_1.default.Fragment, null,
40
- react_1.default.createElement(uikit_1.Popover, { content: propsTitle, disabled: titlePopoverDisabled, placement: common_1.COMMON_POPOVER_PLACEMENT, className: b('title-popover') },
39
+ react_1.default.createElement(uikit_1.Popover, { content: propsTitle, disabled: titlePopoverDisabled, placement: common_1.COMMON_POPOVER_PLACEMENT, className: b('popover') },
41
40
  react_1.default.createElement(uikit_1.Text, { className: b('title'), ellipsis: true, ref: titleRef, variant: "subheader-2" }, propsTitle)),
42
41
  description ? (react_1.default.createElement("div", { className: b('note') },
43
- react_1.default.createElement(components_1.HelpPopover, { htmlContent: description, placement: common_1.COMMON_POPOVER_PLACEMENT }))) : null));
42
+ react_1.default.createElement(uikit_1.HelpMark, { popoverProps: {
43
+ placement: common_1.COMMON_POPOVER_PLACEMENT,
44
+ } }, description))) : null));
44
45
  }
45
46
  return propsTitle;
46
47
  }, [propsTitle, titlePopoverDisabled, description]);
@@ -11,7 +11,7 @@ const Layouts_1 = require("../../Layouts");
11
11
  const RemoveButton_1 = require("../../RemoveButton");
12
12
  const CardOneOf = (props) => {
13
13
  var _a;
14
- const { input, meta, spec, name, Layout } = props;
14
+ const { input, meta, spec, name } = props;
15
15
  const [open, setOpen] = react_1.default.useState(true);
16
16
  const onToggle = react_1.default.useCallback(() => setOpen((f) => !f), [setOpen]);
17
17
  const onOpen = react_1.default.useCallback(() => setOpen(true), [setOpen]);
@@ -19,13 +19,7 @@ const CardOneOf = (props) => {
19
19
  props,
20
20
  onTogglerChange: onOpen,
21
21
  });
22
- const toggler = react_1.default.useMemo(() => {
23
- const togglerProps = Object.assign(Object.assign({}, props), { name: '__stub-name', children: togglerInput });
24
- if (Layout) {
25
- return react_1.default.createElement(Layout, Object.assign({}, togglerProps));
26
- }
27
- return react_1.default.createElement(Layouts_1.Row, Object.assign({}, togglerProps));
28
- }, [togglerInput, props, Layout]);
22
+ const toggler = react_1.default.useMemo(() => (react_1.default.createElement(Layouts_1.Row, Object.assign({}, props, { name: "__stub-name" }), togglerInput)), [togglerInput, props]);
29
23
  const actions = react_1.default.useMemo(() => {
30
24
  if ((0, core_1.isArrayItem)(name)) {
31
25
  return react_1.default.createElement(RemoveButton_1.RemoveButton, { onDrop: input.onDrop, name: name });
@@ -22,6 +22,9 @@
22
22
  align-items: center;
23
23
  height: var(--df-checkbox-height, 28px);
24
24
  }
25
+ .df-checkbox-group .g-control-label__text {
26
+ margin-inline-start: var(--df-checkbox-margint-start, 5px);
27
+ }
25
28
  .df-checkbox-group > *:not(:last-child) {
26
29
  margin-right: var(--df-checkbox-group-child-margin-right, 6px);
27
30
  }
@@ -5,12 +5,12 @@ const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
6
  const icons_1 = require("@gravity-ui/icons");
7
7
  const uikit_1 = require("@gravity-ui/uikit");
8
- const components_1 = require("@gravity-ui/components");
9
8
  const noop_1 = tslib_1.__importDefault(require("lodash/noop"));
10
9
  const set_1 = tslib_1.__importDefault(require("lodash/set"));
11
10
  const core_1 = require("../../../../core");
12
11
  const hooks_1 = require("../../../../core/components/Form/hooks");
13
12
  const utils_1 = require("../../../utils");
13
+ const common_1 = require("../../../constants/common");
14
14
  const b = (0, utils_1.block)('table-array');
15
15
  const TableArrayInput = ({ spec, name, arrayInput, input }) => {
16
16
  const { isHiddenField } = (0, hooks_1.useSearchContext)();
@@ -52,7 +52,9 @@ const TableArrayInput = ({ spec, name, arrayInput, input }) => {
52
52
  ? label
53
53
  : () => (react_1.default.createElement(uikit_1.Flex, { gap: 0.5, alignItems: "center" },
54
54
  label,
55
- react_1.default.createElement(components_1.HelpPopover, { htmlContent: description, placement: ['bottom', 'top'] }))),
55
+ react_1.default.createElement(uikit_1.HelpMark, { popoverProps: {
56
+ placement: common_1.COMMON_POPOVER_PLACEMENT,
57
+ } }, description))),
56
58
  template: ({ key, }, idx) => {
57
59
  var _a, _b, _c;
58
60
  const entitySpec = (_a = items === null || items === void 0 ? void 0 : items.properties) === null || _a === void 0 ? void 0 : _a[property];
@@ -3,13 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Text = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const components_1 = require("@gravity-ui/components");
7
6
  const uikit_1 = require("@gravity-ui/uikit");
8
7
  const isNil_1 = tslib_1.__importDefault(require("lodash/isNil"));
9
8
  const Text = ({ name, input: { value, onBlur, onChange, onFocus }, spec, inputProps, }) => {
10
9
  const props = Object.assign(Object.assign({ hasClear: true }, inputProps), { value: (0, isNil_1.default)(value) ? '' : `${value}`, onBlur: onBlur, onFocus: onFocus, onUpdate: onChange, disabled: spec.viewSpec.disabled, placeholder: spec.viewSpec.placeholder, qa: name });
11
10
  if (spec.viewSpec.type === 'password') {
12
- return (react_1.default.createElement(components_1.PasswordInput, Object.assign({}, props, { autoComplete: "new-password", showCopyButton: true, showRevealButton: true })));
11
+ return react_1.default.createElement(uikit_1.PasswordInput, Object.assign({}, props, { autoComplete: "new-password" }));
13
12
  }
14
13
  return react_1.default.createElement(uikit_1.TextInput, Object.assign({}, props, { type: "text" }));
15
14
  };
@@ -17,7 +17,7 @@ const TextContentComponent = ({ spec, value, Layout, }) => {
17
17
  if (!text) {
18
18
  return null;
19
19
  }
20
- const iconLib = (textContentParams === null || textContentParams === void 0 ? void 0 : textContentParams.icon) ? (react_1.default.createElement(LazyLoader_1.LazyLoader, { component: (0, utils_2.loadIcon)(textContentParams === null || textContentParams === void 0 ? void 0 : textContentParams.icon) })) : null;
20
+ const iconLib = (textContentParams === null || textContentParams === void 0 ? void 0 : textContentParams.icon) ? (react_1.default.createElement(LazyLoader_1.LazyLoader, { component: (0, utils_2.loadIcon)(textContentParams === null || textContentParams === void 0 ? void 0 : textContentParams.icon) })) : undefined;
21
21
  let content = react_1.default.createElement("span", { dangerouslySetInnerHTML: { __html: text } });
22
22
  if (textContentParams === null || textContentParams === void 0 ? void 0 : textContentParams.themeAlert) {
23
23
  const titleAlert = (textContentParams === null || textContentParams === void 0 ? void 0 : textContentParams.titleAlert) || !(0, lodash_1.isEmpty)(textContentParams === null || textContentParams === void 0 ? void 0 : textContentParams.titleAlert)
@@ -25,7 +25,7 @@ const TextContentComponent = ({ spec, value, Layout, }) => {
25
25
  : undefined;
26
26
  content = (react_1.default.createElement(uikit_1.Alert, { icon: iconLib, message: content,
27
27
  // If the title is an empty line, then you need to explicitly write undefined, otherwise there will be an additional indent
28
- title: titleAlert, theme: textContentParams === null || textContentParams === void 0 ? void 0 : textContentParams.themeAlert, view: textContentParams === null || textContentParams === void 0 ? void 0 : textContentParams.viewAlert }));
28
+ title: titleAlert, theme: textContentParams === null || textContentParams === void 0 ? void 0 : textContentParams.themeAlert }));
29
29
  }
30
30
  else if (textContentParams === null || textContentParams === void 0 ? void 0 : textContentParams.themeLabel) {
31
31
  content = (react_1.default.createElement(uikit_1.Label, { size: "m", theme: textContentParams.themeLabel, className: b(), value: value, icon: iconLib }, content));
@@ -10,7 +10,6 @@ const RemoveButton_1 = require("../../RemoveButton");
10
10
  const SimpleVerticalAccordeon_1 = require("../../SimpleVerticalAccordeon");
11
11
  const Accordeon = ({ name, spec, input, meta, children, }) => {
12
12
  var _a;
13
- const { variantTitle } = spec.viewSpec.layoutProps || {};
14
13
  const [open, setOpen] = react_1.default.useState(Boolean((_a = spec.viewSpec) === null || _a === void 0 ? void 0 : _a.layoutOpen));
15
14
  const onDrop = react_1.default.useCallback(() => {
16
15
  setOpen(false);
@@ -23,7 +22,7 @@ const Accordeon = ({ name, spec, input, meta, children, }) => {
23
22
  return react_1.default.createElement(RemoveButton_1.RemoveButton, { name: name, onDrop: onDrop });
24
23
  }, [spec.required, input.value, onDrop, name]);
25
24
  (0, hooks_1.useErrorChecker)({ name, meta, open, setOpen });
26
- return (react_1.default.createElement(SimpleVerticalAccordeon_1.SimpleVerticalAccordeon, { name: name, title: spec.viewSpec.layoutTitle || '', note: spec.viewSpec.layoutDescription || '', open: open, onOpenChange: setOpen, headerActionsTemplate: removeButton, hideInsteadOfDestroy: true, withBranchView: true, variantTitle: variantTitle },
25
+ return (react_1.default.createElement(SimpleVerticalAccordeon_1.SimpleVerticalAccordeon, { name: name, title: spec.viewSpec.layoutTitle || '', note: spec.viewSpec.layoutDescription || '', open: open, onOpenChange: setOpen, headerActionsTemplate: removeButton, hideInsteadOfDestroy: true, withBranchView: true },
27
26
  react_1.default.createElement(components_1.ErrorWrapper, { name: name, meta: meta, withoutChildErrorStyles: true }, children)));
28
27
  };
29
28
  exports.Accordeon = Accordeon;
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Column = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const components_1 = require("@gravity-ui/components");
7
6
  const icons_1 = require("@gravity-ui/icons");
8
7
  const uikit_1 = require("@gravity-ui/uikit");
9
8
  const core_1 = require("../../../../core");
10
- const components_2 = require("../../../components");
9
+ const components_1 = require("../../../components");
11
10
  const utils_1 = require("../../../utils");
11
+ const common_1 = require("../../../constants/common");
12
12
  const b = (0, utils_1.block)('column');
13
13
  const ColumnBase = ({ name, spec, input, meta, children, }) => {
14
14
  const arrayItem = react_1.default.useMemo(() => (0, core_1.isArrayItem)(name), [name]);
@@ -19,14 +19,16 @@ const ColumnBase = ({ name, spec, input, meta, children, }) => {
19
19
  react_1.default.createElement(uikit_1.Text, { className: b('title', { required: spec.required }) }, spec.viewSpec.layoutTitle),
20
20
  spec.viewSpec.layoutDescription ? (react_1.default.createElement("span", { className: b('note') },
21
21
  react_1.default.createElement(uikit_1.Text, { className: b('note-inner') },
22
- react_1.default.createElement(components_1.HelpPopover, { htmlContent: spec.viewSpec.layoutDescription, placement: ['bottom', 'top'] })))) : null)),
22
+ react_1.default.createElement(uikit_1.HelpMark, { popoverProps: {
23
+ placement: common_1.COMMON_POPOVER_PLACEMENT,
24
+ } }, spec.viewSpec.layoutDescription)))) : null)),
23
25
  react_1.default.createElement("div", { className: b('second-row') },
24
26
  react_1.default.createElement("div", { className: b('second-row-inner') },
25
- react_1.default.createElement(components_2.ErrorWrapper, { name: name, meta: meta, withoutChildErrorStyles:
27
+ react_1.default.createElement(components_1.ErrorWrapper, { name: name, meta: meta, withoutChildErrorStyles:
26
28
  // TODO: remove condition spec.viewSpec.type !== 'select'
27
29
  ((0, core_1.isArraySpec)(spec) && spec.viewSpec.type !== 'select') ||
28
30
  (0, core_1.isObjectSpec)(spec), className: b('error-wrapper') }, children),
29
- generateButton ? (react_1.default.createElement(components_2.GenerateRandomValueButton, { spec: spec, onChange: input.onChange })) : null,
31
+ generateButton ? (react_1.default.createElement(components_1.GenerateRandomValueButton, { spec: spec, onChange: input.onChange })) : null,
30
32
  arrayItem ? (react_1.default.createElement(uikit_1.Button, { view: "flat-secondary", className: b('remove-button'), onClick: input.onDrop, qa: `${name}-remove-item` },
31
33
  react_1.default.createElement(uikit_1.Icon, { data: icons_1.TrashBin, size: 16 }))) : null))));
32
34
  };
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RowVerbose = exports.Row = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const components_1 = require("@gravity-ui/components");
7
6
  const icons_1 = require("@gravity-ui/icons");
8
7
  const uikit_1 = require("@gravity-ui/uikit");
9
8
  const core_1 = require("../../../../core");
10
- const components_2 = require("../../../components");
9
+ const components_1 = require("../../../components");
11
10
  const utils_1 = require("../../../utils");
11
+ const common_1 = require("../../../constants/common");
12
12
  const b = (0, utils_1.block)('row');
13
13
  const RowBase = ({ name, spec, input, meta, verboseDescription, children, }) => {
14
14
  const arrayItem = react_1.default.useMemo(() => (0, core_1.isArrayItem)(name), [name]);
@@ -19,14 +19,16 @@ const RowBase = ({ name, spec, input, meta, verboseDescription, children, }) =>
19
19
  react_1.default.createElement(uikit_1.Text, { className: b('title', { required: spec.required }) }, spec.viewSpec.layoutTitle),
20
20
  !verboseDescription && spec.viewSpec.layoutDescription ? (react_1.default.createElement("span", { className: b('note') },
21
21
  react_1.default.createElement(uikit_1.Text, { className: b('note-inner') },
22
- react_1.default.createElement(components_1.HelpPopover, { htmlContent: spec.viewSpec.layoutDescription, placement: ['bottom', 'top'] })))) : null)),
22
+ react_1.default.createElement(uikit_1.HelpMark, { popoverProps: {
23
+ placement: common_1.COMMON_POPOVER_PLACEMENT,
24
+ } }, spec.viewSpec.layoutDescription)))) : null)),
23
25
  react_1.default.createElement("div", { className: b('right') },
24
26
  react_1.default.createElement("div", { className: b('right-inner') },
25
- react_1.default.createElement(components_2.ErrorWrapper, { name: name, meta: meta, withoutChildErrorStyles:
27
+ react_1.default.createElement(components_1.ErrorWrapper, { name: name, meta: meta, withoutChildErrorStyles:
26
28
  // TODO: remove condition spec.viewSpec.type !== 'select'
27
29
  ((0, core_1.isArraySpec)(spec) && spec.viewSpec.type !== 'select') ||
28
30
  (0, core_1.isObjectSpec)(spec), className: b('error-wrapper') }, children),
29
- generateButton ? (react_1.default.createElement(components_2.GenerateRandomValueButton, { spec: spec, onChange: input.onChange })) : null,
31
+ generateButton ? (react_1.default.createElement(components_1.GenerateRandomValueButton, { spec: spec, onChange: input.onChange })) : null,
30
32
  arrayItem ? (react_1.default.createElement(uikit_1.Button, { view: "flat-secondary", className: b('remove-button'), onClick: input.onDrop, qa: `${name}-remove-item` },
31
33
  react_1.default.createElement(uikit_1.Icon, { data: icons_1.TrashBin, size: 16 }))) : null),
32
34
  verboseDescription && spec.viewSpec.layoutDescription ? (react_1.default.createElement("div", { className: b('description'), dangerouslySetInnerHTML: { __html: spec.viewSpec.layoutDescription } })) : null)));
@@ -37,12 +37,10 @@
37
37
  .df-section__title {
38
38
  max-width: var(--df-section-title-max-width, 533px);
39
39
  }
40
- .df-section__title-popover {
41
- display: flex;
42
- align-items: center;
43
- }
44
- .df-section__title-popover .g-popover__handler {
45
- display: flex;
40
+ .df-section__popover {
41
+ padding: var(--g-spacing-2);
42
+ overflow-wrap: break-word;
43
+ max-width: 300px;
46
44
  }
47
45
  .df-section__note {
48
46
  margin-left: var(--df-section-note-margin-left, 5px);
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Group2 = exports.Group = exports.SectionWithSubtitle2 = exports.SectionWithSubtitle = exports.Section2 = exports.Section = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const components_1 = require("@gravity-ui/components");
7
6
  const uikit_1 = require("@gravity-ui/uikit");
8
7
  const __1 = require("../../");
9
8
  const RemoveButton_1 = require("../../RemoveButton");
@@ -19,25 +18,6 @@ const SectionBase = (_a) => {
19
18
  const arrOrObjFlag = (0, core_1.isArraySpec)(spec) || (0, core_1.isObjectSpec)(spec);
20
19
  const titleRef = react_1.default.useRef(null);
21
20
  let content = children;
22
- const { variantTitle: variantTitleProp } = spec.viewSpec.layoutProps || {};
23
- const { sizeTitle, variantTitle } = react_1.default.useMemo(() => {
24
- if (variantTitleProp) {
25
- return {
26
- sizeTitle: undefined,
27
- variantTitle: variantTitleProp,
28
- };
29
- }
30
- if (titleSize === 'm') {
31
- return {
32
- sizeTitle: titleSize,
33
- variantTitle: 'body-2',
34
- };
35
- }
36
- return {
37
- sizeTitle: titleSize,
38
- variantTitle: 'body-1',
39
- };
40
- }, [variantTitleProp, titleSize]);
41
21
  const removeButton = react_1.default.useMemo(() => {
42
22
  if ((input === null || input === void 0 ? void 0 : input.value) && (input === null || input === void 0 ? void 0 : input.onDrop) && (0, core_1.isArrayItem)(name)) {
43
23
  return (react_1.default.createElement(RemoveButton_1.RemoveButton, { name: name, onDrop: input.onDrop, switcherClassName: b('remove-button') }));
@@ -59,7 +39,9 @@ const SectionBase = (_a) => {
59
39
  }
60
40
  else {
61
41
  description = (react_1.default.createElement(uikit_1.Text, { className: b('note') },
62
- react_1.default.createElement(components_1.HelpPopover, { htmlContent: spec.viewSpec.layoutDescription, placement: ['bottom', 'top'] })));
42
+ react_1.default.createElement(uikit_1.HelpMark, { popoverProps: {
43
+ placement: __2.COMMON_POPOVER_PLACEMENT,
44
+ } }, spec.viewSpec.layoutDescription)));
63
45
  }
64
46
  }
65
47
  const layoutTitle = spec.viewSpec.layoutTitle;
@@ -67,10 +49,10 @@ const SectionBase = (_a) => {
67
49
  return (react_1.default.createElement("section", { className: b() },
68
50
  layoutTitle ? (react_1.default.createElement("div", { className: b('header', {
69
51
  'with-popover': !descriptionAsSubtitle,
70
- size: sizeTitle,
52
+ size: titleSize,
71
53
  }) },
72
- react_1.default.createElement(uikit_1.Popover, { className: b('title-popover'), content: layoutTitle, placement: __2.COMMON_POPOVER_PLACEMENT, disabled: layoutTitlePopoverDisabled },
73
- react_1.default.createElement(uikit_1.Text, { className: b('title'), variant: variantTitle, ref: titleRef, ellipsis: true }, layoutTitle)),
54
+ react_1.default.createElement(uikit_1.Popover, { className: b('popover'), content: layoutTitle, placement: __2.COMMON_POPOVER_PLACEMENT, disabled: layoutTitlePopoverDisabled },
55
+ react_1.default.createElement(uikit_1.Text, { className: b('title'), variant: titleSize === 'm' ? 'body-2' : 'body-1', ref: titleRef, ellipsis: true }, layoutTitle)),
74
56
  description,
75
57
  removeButton)) : null,
76
58
  react_1.default.createElement("div", { className: b('content') }, content)));
@@ -42,6 +42,9 @@
42
42
  .df-simple-vertical-accordeon__tooltip {
43
43
  margin: var(--df-simple-vertical-accordeon-tooltip-margin, var(--g-spacing-0) 5px);
44
44
  }
45
+ .df-simple-vertical-accordeon__popover {
46
+ padding: var(--g-spacing-2);
47
+ }
45
48
  .df-simple-vertical-accordeon__chevron {
46
49
  transform: rotate(-90deg);
47
50
  }
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SimpleVerticalAccordeon = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const components_1 = require("@gravity-ui/components");
7
6
  const icons_1 = require("@gravity-ui/icons");
8
7
  const uikit_1 = require("@gravity-ui/uikit");
9
8
  const common_1 = require("../../constants/common");
@@ -52,7 +51,7 @@ class SimpleVerticalAccordeon extends react_1.default.Component {
52
51
  }
53
52
  render() {
54
53
  var _a;
55
- const { children, headerActionsTemplate, className, contentClassName, buttonClassName, hideInsteadOfDestroy, withBranchView, viewLayout, name, variantTitle, } = this.props;
54
+ const { children, headerActionsTemplate, className, contentClassName, buttonClassName, hideInsteadOfDestroy, withBranchView, viewLayout, name, } = this.props;
56
55
  const { open, hidden, isFirstRender } = this.state;
57
56
  const content = hideInsteadOfDestroy ? (react_1.default.createElement("div", { ref: this.componentRef, className: b('body', { hidden: !open }) }, children)) : (open && (react_1.default.createElement("div", { ref: this.componentRef, className: b('body', contentClassName) }, children)));
58
57
  if (viewLayout && !isFirstRender && hidden) {
@@ -60,10 +59,10 @@ class SimpleVerticalAccordeon extends react_1.default.Component {
60
59
  }
61
60
  const title = this.getTitle();
62
61
  const titlePopoverDisabled = (((_a = this.titleRef.current) === null || _a === void 0 ? void 0 : _a.offsetWidth) || 0) <= TITLE_TEXT_MAX_WIDTH;
63
- const currentTitleVariant = variantTitle || this.getCurrentTitleVariant();
62
+ const currentTitleVariant = this.getCurrentTitleVariant();
64
63
  return (Boolean(react_1.default.Children.count(children)) && (react_1.default.createElement("div", { className: b({ branch: withBranchView, view: viewLayout }, className) },
65
64
  react_1.default.createElement("div", { className: b('header') },
66
- react_1.default.createElement(uikit_1.Popover, { content: title, disabled: titlePopoverDisabled, placement: common_1.COMMON_POPOVER_PLACEMENT },
65
+ react_1.default.createElement(uikit_1.Popover, { content: title, disabled: titlePopoverDisabled, placement: common_1.COMMON_POPOVER_PLACEMENT, className: b('popover'), hasArrow: true },
67
66
  react_1.default.createElement(uikit_1.Button, { view: "flat", className: b('header-inner', buttonClassName), onClick: this.handleClick, qa: `${name}-accordeon-toggler`, width: "auto" },
68
67
  react_1.default.createElement(uikit_1.Text, { variant: currentTitleVariant }, title),
69
68
  react_1.default.createElement(uikit_1.Icon, { data: icons_1.ChevronDown, className: b('chevron', { open }), size: 16 }))),
@@ -91,7 +90,9 @@ class SimpleVerticalAccordeon extends react_1.default.Component {
91
90
  getTooltip() {
92
91
  const { note } = this.props;
93
92
  return note ? (react_1.default.createElement(uikit_1.Text, { className: b('tooltip') },
94
- react_1.default.createElement(components_1.HelpPopover, { htmlContent: note, placement: ['bottom', 'top'] }))) : null;
93
+ react_1.default.createElement(uikit_1.HelpMark, { popoverProps: {
94
+ placement: common_1.COMMON_POPOVER_PLACEMENT,
95
+ } }, note))) : null;
95
96
  }
96
97
  }
97
98
  exports.SimpleVerticalAccordeon = SimpleVerticalAccordeon;
@@ -3,15 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TogglerCard = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
- const components_1 = require("@gravity-ui/components");
7
6
  const uikit_1 = require("@gravity-ui/uikit");
8
7
  const utils_1 = require("../../utils");
8
+ const common_1 = require("../../constants/common");
9
9
  const b = (0, utils_1.block)('toggler-card');
10
10
  const TogglerCard = ({ description, title, text, onClick, disabled, selected, }) => {
11
11
  return (react_1.default.createElement(uikit_1.Card, { onClick: onClick, type: "selection", disabled: disabled ? !selected : disabled, selected: selected, size: "m", className: b() },
12
12
  react_1.default.createElement("div", { className: b('header') },
13
13
  react_1.default.createElement(uikit_1.Text, { variant: "subheader-2", ellipsis: true }, title),
14
- description ? (react_1.default.createElement(components_1.HelpPopover, { htmlContent: description, placement: ['bottom', 'top'] })) : null),
14
+ description ? (react_1.default.createElement(uikit_1.HelpMark, { popoverProps: {
15
+ placement: common_1.COMMON_POPOVER_PLACEMENT,
16
+ } }, description)) : null),
15
17
  react_1.default.createElement(uikit_1.Text, { variant: "body-1", color: "secondary", className: b('text') }, text)));
16
18
  };
17
19
  exports.TogglerCard = TogglerCard;
@@ -10,12 +10,11 @@ const SimpleVerticalAccordeon_1 = require("../../SimpleVerticalAccordeon");
10
10
  const ViewAccordeon = ({ name, value, spec, children, }) => {
11
11
  const { showLayoutDescription } = (0, core_1.useDynamicFormsCtx)();
12
12
  const [open, setOpen] = react_1.default.useState((0, isBoolean_1.default)(spec.viewSpec.layoutOpen) ? spec.viewSpec.layoutOpen : true);
13
- const { variantTitle } = spec.viewSpec.layoutProps || {};
14
13
  if (!(0, utils_1.isNotEmptyValue)(value, spec)) {
15
14
  return null;
16
15
  }
17
16
  return (react_1.default.createElement(SimpleVerticalAccordeon_1.SimpleVerticalAccordeon, { name: name, title: spec.viewSpec.layoutTitle || '', note: showLayoutDescription && spec.viewSpec.layoutDescription
18
17
  ? spec.viewSpec.layoutDescription
19
- : undefined, open: open, onOpenChange: setOpen, hideInsteadOfDestroy: true, withBranchView: true, viewLayout: true, variantTitle: variantTitle }, children));
18
+ : undefined, open: open, onOpenChange: setOpen, hideInsteadOfDestroy: true, withBranchView: true, viewLayout: true }, children));
20
19
  };
21
20
  exports.ViewAccordeon = ViewAccordeon;
@@ -4,10 +4,10 @@ exports.ViewColumn = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
6
  const uikit_1 = require("@gravity-ui/uikit");
7
- const components_1 = require("@gravity-ui/components");
8
7
  const core_1 = require("../../../../core");
9
8
  const kit_1 = require("../../../../kit");
10
9
  const utils_1 = require("../../../utils");
10
+ const common_1 = require("../../../constants/common");
11
11
  const b = (0, utils_1.block)('view-column');
12
12
  const ViewColumn = ({ value, spec, children, }) => {
13
13
  const { showLayoutDescription } = (0, core_1.useDynamicFormsCtx)();
@@ -17,7 +17,9 @@ const ViewColumn = ({ value, spec, children, }) => {
17
17
  return (react_1.default.createElement("div", { className: b() },
18
18
  react_1.default.createElement("div", { className: b('first-row') },
19
19
  react_1.default.createElement(uikit_1.Text, { color: "secondary", ellipsis: true }, spec.viewSpec.layoutTitle),
20
- showLayoutDescription && spec.viewSpec.layoutDescription ? (react_1.default.createElement(components_1.HelpPopover, { className: b('note'), htmlContent: spec.viewSpec.layoutDescription, placement: ['bottom', 'top'] })) : null),
20
+ showLayoutDescription && spec.viewSpec.layoutDescription ? (react_1.default.createElement(uikit_1.HelpMark, { className: b('note'), popoverProps: {
21
+ placement: common_1.COMMON_POPOVER_PLACEMENT,
22
+ } }, spec.viewSpec.layoutDescription)) : null),
21
23
  react_1.default.createElement("div", { className: b('second-row') }, children),
22
24
  react_1.default.createElement(kit_1.CopyButton, { spec: spec, value: value })));
23
25
  };
@@ -4,10 +4,10 @@ exports.ViewRow = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
6
  const uikit_1 = require("@gravity-ui/uikit");
7
- const components_1 = require("@gravity-ui/components");
8
7
  const core_1 = require("../../../../core");
9
8
  const kit_1 = require("../../../../kit");
10
9
  const utils_1 = require("../../../utils");
10
+ const common_1 = require("../../../constants/common");
11
11
  const b = (0, utils_1.block)('view-row');
12
12
  const ViewRow = ({ value, spec, children, }) => {
13
13
  const { showLayoutDescription } = (0, core_1.useDynamicFormsCtx)();
@@ -17,7 +17,9 @@ const ViewRow = ({ value, spec, children, }) => {
17
17
  return (react_1.default.createElement("div", { className: b() },
18
18
  react_1.default.createElement("div", { className: b('left') },
19
19
  react_1.default.createElement(uikit_1.Text, { whiteSpace: "nowrap", color: "secondary", ellipsis: true }, spec.viewSpec.layoutTitle),
20
- showLayoutDescription && spec.viewSpec.layoutDescription ? (react_1.default.createElement(components_1.HelpPopover, { className: b('note'), htmlContent: spec.viewSpec.layoutDescription, placement: ['bottom', 'top'] })) : null,
20
+ showLayoutDescription && spec.viewSpec.layoutDescription ? (react_1.default.createElement(uikit_1.HelpMark, { className: b('note'), popoverProps: {
21
+ placement: common_1.COMMON_POPOVER_PLACEMENT,
22
+ } }, spec.viewSpec.layoutDescription)) : null,
21
23
  react_1.default.createElement("div", { className: b('dots') })),
22
24
  react_1.default.createElement("div", { className: b('right') }, children),
23
25
  react_1.default.createElement(kit_1.CopyButton, { spec: spec, value: value })));
@@ -7,7 +7,7 @@ const isObjectLike_1 = tslib_1.__importDefault(require("lodash/isObjectLike"));
7
7
  const __1 = require("../");
8
8
  const core_1 = require("../../../core");
9
9
  const CardOneOfView = (props) => {
10
- const { value = {}, spec, name, Layout } = props;
10
+ const { value = {}, spec, name } = props;
11
11
  const [open, setOpen] = react_1.default.useState(true);
12
12
  const onToggle = react_1.default.useCallback(() => setOpen((f) => !f), [setOpen]);
13
13
  const specProperties = react_1.default.useMemo(() => ((0, isObjectLike_1.default)(spec.properties) ? spec.properties : {}), [spec.properties]);
@@ -18,18 +18,8 @@ const CardOneOfView = (props) => {
18
18
  ((_b = specProperties[valueKey]) === null || _b === void 0 ? void 0 : _b.viewSpec.layoutTitle) ||
19
19
  valueKey);
20
20
  }, [valueKey, spec.description, specProperties]);
21
- const title = react_1.default.useMemo(() => {
22
- const titleProps = {
23
- spec: spec,
24
- value: valueName,
25
- name: name,
26
- children: react_1.default.createElement(react_1.default.Fragment, null, valueName),
27
- };
28
- if (Layout) {
29
- return react_1.default.createElement(Layout, Object.assign({}, titleProps));
30
- }
31
- return react_1.default.createElement(__1.ViewRow, Object.assign({}, titleProps));
32
- }, [spec, name, valueName, Layout]);
21
+ const title = react_1.default.useMemo(() => (react_1.default.createElement(__1.ViewRow, { spec: spec, value: valueName, name: name },
22
+ react_1.default.createElement(react_1.default.Fragment, null, valueName))), [spec, name, valueName]);
33
23
  if (!value || !Object.keys(value).length) {
34
24
  return null;
35
25
  }
@@ -30,16 +30,18 @@
30
30
  .df-checkbox-group-view_vertical > *:not(:last-child) {
31
31
  margin: var(--df-checkbox-group-view-vertical-child-margin, var(--g-spacing-0) var(--g-spacing-0) 6px);
32
32
  }
33
- .df-checkbox-group-view__tooltip {
33
+ .df-checkbox-group-view__popover {
34
+ padding: var(--g-spacing-2);
34
35
  overflow-wrap: break-word;
36
+ max-width: 300px;
35
37
  }
36
- .df-checkbox-group-view__tooltip-container {
37
- max-width: var(--df-tooltip-container-max-width, 100%);
38
+ .df-checkbox-group-view__item {
39
+ max-width: var(--df-popover-item-max-width, 100%);
38
40
  overflow: hidden;
39
41
  text-overflow: ellipsis;
40
42
  display: block;
41
- margin-bottom: var(--df-tooltip-container-margin-bottom, 6px);
43
+ margin-bottom: var(--df-popover-item-margin-bottom, 6px);
42
44
  }
43
- .df-checkbox-group-view__tooltip-container:last-child {
45
+ .df-checkbox-group-view__item:last-child {
44
46
  margin-bottom: var(--df-spacing-last-child, var(--g-spacing-0));
45
47
  }
@@ -12,8 +12,9 @@ const CheckboxGroupView = ({ spec, value = [] }) => {
12
12
  const _value = value;
13
13
  const items = react_1.default.useMemo(() => _value.map((item) => { var _a; return ((_a = spec.description) === null || _a === void 0 ? void 0 : _a[item]) || item; }), [spec.description, _value]);
14
14
  const verticalPlacement = react_1.default.useMemo(() => { var _a; return ((_a = spec.viewSpec.checkboxGroupParams) === null || _a === void 0 ? void 0 : _a.placement) === 'vertical'; }, [(_a = spec.viewSpec.checkboxGroupParams) === null || _a === void 0 ? void 0 : _a.placement]);
15
- return (react_1.default.createElement("div", { className: b({ vertical: verticalPlacement }) }, items.map((item, idx) => (react_1.default.createElement(uikit_1.Popover, { placement: common_1.COMMON_POPOVER_PLACEMENT, key: item, content: item, className: b('tooltip-container'), contentClassName: b('tooltip'), disabled: item.length < 51 },
16
- item,
17
- !verticalPlacement && idx !== items.length - 1 ? ', ' : null)))));
15
+ return (react_1.default.createElement("div", { className: b({ vertical: verticalPlacement }) }, items.map((item, idx) => (react_1.default.createElement(uikit_1.Popover, { placement: common_1.COMMON_POPOVER_PLACEMENT, content: item, className: b('popover'), key: item, hasArrow: true, disabled: item.length < 51 },
16
+ react_1.default.createElement(uikit_1.Text, { className: b('item') },
17
+ item,
18
+ !verticalPlacement && idx !== items.length - 1 ? ', ' : null))))));
18
19
  };
19
20
  exports.CheckboxGroupView = CheckboxGroupView;
@@ -17,17 +17,19 @@
17
17
  }
18
18
  */
19
19
  /* Border-radius */
20
- .df-multi-oneof-view__tooltip {
20
+ .df-multi-oneof-view__popover {
21
+ padding: var(--g-spacing-2);
21
22
  overflow-wrap: break-word;
23
+ max-width: 300px;
22
24
  }
23
- .df-multi-oneof-view__tooltip-container {
24
- max-width: var(--df-tooltip-container-max-width, 100%);
25
+ .df-multi-oneof-view__item {
26
+ max-width: var(--df-popover-item-max-width, 100%);
25
27
  overflow: hidden;
26
28
  text-overflow: ellipsis;
27
29
  display: block;
28
- margin-bottom: var(--df-tooltip-container-margin-bottom, 6px);
30
+ margin-bottom: var(--df-popover-item-margin-bottom, 6px);
29
31
  }
30
- .df-multi-oneof-view__tooltip-container:last-child {
32
+ .df-multi-oneof-view__item:last-child {
31
33
  margin-bottom: var(--df-spacing-last-child, var(--g-spacing-0));
32
34
  }
33
35
  .df-multi-oneof-view__content_multiple-values > .df-group-indent {
@@ -8,6 +8,7 @@ const isObjectLike_1 = tslib_1.__importDefault(require("lodash/isObjectLike"));
8
8
  const core_1 = require("../../../../core");
9
9
  const utils_1 = require("../../../utils");
10
10
  const GroupIndent_1 = require("../../GroupIndent");
11
+ const common_1 = require("../../../constants/common");
11
12
  const b = (0, utils_1.block)('multi-oneof-view');
12
13
  const MultiOneOfView = (props) => {
13
14
  const { name, value, Layout, spec, withoutIndent } = props;
@@ -23,7 +24,8 @@ const MultiOneOfView = (props) => {
23
24
  }), [spec.description, specProperties, values]);
24
25
  const selectView = react_1.default.useMemo(() => {
25
26
  const selectView = (react_1.default.createElement(react_1.default.Fragment, null, items.map((item) => {
26
- return (react_1.default.createElement(uikit_1.Popover, { placement: ['bottom', 'top'], key: item, content: item, className: b('tooltip-container'), contentClassName: b('tooltip'), disabled: item.length < 51 }, item));
27
+ return (react_1.default.createElement(uikit_1.Popover, { placement: common_1.COMMON_POPOVER_PLACEMENT, content: item, className: b('popover'), disabled: item.length < 51, hasArrow: true, key: item },
28
+ react_1.default.createElement(uikit_1.Text, { className: b('item') }, item)));
27
29
  })));
28
30
  if (Layout) {
29
31
  return (react_1.default.createElement(Layout, Object.assign({}, props, { value: values }), selectView));
@@ -17,16 +17,18 @@
17
17
  }
18
18
  */
19
19
  /* Border-radius */
20
- .df-multiselect-view__tooltip {
20
+ .df-multiselect-view__popover {
21
+ padding: var(--g-spacing-2);
21
22
  overflow-wrap: break-word;
23
+ max-width: 300px;
22
24
  }
23
- .df-multiselect-view__tooltip-container {
24
- max-width: var(--df-tooltip-container-max-width, 100%);
25
+ .df-multiselect-view__item {
26
+ max-width: var(--df-popover-item-max-width, 100%);
25
27
  overflow: hidden;
26
28
  text-overflow: ellipsis;
27
29
  display: block;
28
- margin-bottom: var(--df-tooltip-container-margin-bottom, 6px);
30
+ margin-bottom: var(--df-popover-item-margin-bottom, 6px);
29
31
  }
30
- .df-multiselect-view__tooltip-container:last-child {
32
+ .df-multiselect-view__item:last-child {
31
33
  margin-bottom: var(--df-spacing-last-child, var(--g-spacing-0));
32
34
  }
@@ -5,10 +5,12 @@ const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importDefault(require("react"));
6
6
  const uikit_1 = require("@gravity-ui/uikit");
7
7
  const utils_1 = require("../../../utils");
8
+ const common_1 = require("../../../constants/common");
8
9
  const b = (0, utils_1.block)('multiselect-view');
9
10
  const MultiSelectView = ({ spec, value = [] }) => {
10
11
  const _value = value;
11
12
  const items = react_1.default.useMemo(() => _value.map((item) => { var _a; return ((_a = spec.description) === null || _a === void 0 ? void 0 : _a[item]) || item; }), [spec.description, _value]);
12
- return (react_1.default.createElement(react_1.default.Fragment, null, items.map((item) => (react_1.default.createElement(uikit_1.Popover, { placement: ['bottom', 'top'], key: item, content: item, className: b('tooltip-container'), contentClassName: b('tooltip'), disabled: item.length < 51 }, item)))));
13
+ return (react_1.default.createElement(react_1.default.Fragment, null, items.map((item) => (react_1.default.createElement(uikit_1.Popover, { placement: common_1.COMMON_POPOVER_PLACEMENT, content: item, className: b('popover'), disabled: item.length < 51, hasArrow: true, key: item },
14
+ react_1.default.createElement(uikit_1.Text, { className: b('item') }, item))))));
13
15
  };
14
16
  exports.MultiSelectView = MultiSelectView;