@geotab/zenith 3.12.3 → 3.13.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/README.md +13 -1
  2. package/dist/advancedGroupsFilter/advancedGroupsFilterSectionTooltip.js +29 -29
  3. package/dist/calendar/calendar.js +1 -1
  4. package/dist/chart/lineChart/useSummary.d.ts +2 -1
  5. package/dist/columnsSelector/columnsSelector.js +1 -1
  6. package/dist/commonHelpers/arrowNavigation/arrowNavigationHelper.d.ts +1 -1
  7. package/dist/commonHelpers/arrowNavigation/arrowNavigationHelper.js +29 -12
  8. package/dist/commonHelpers/arrowNavigation/components/arrowButton/arrowButton.d.ts +2 -1
  9. package/dist/commonHelpers/arrowNavigation/components/arrowButton/arrowButton.js +2 -2
  10. package/dist/commonHelpers/arrowNavigation/hooks/useManualScrolling.js +4 -2
  11. package/dist/commonHelpers/arrowNavigation/hooks/useScrollWhileHolding.js +12 -3
  12. package/dist/commonHelpers/arrowNavigation/hooks/useScrolling.js +18 -6
  13. package/dist/commonStyles/caption/caption.less +3 -5
  14. package/dist/commonStyles/colors/colors.less +4 -19
  15. package/dist/commonStyles/columnsList.less +1 -0
  16. package/dist/commonStyles/common.less +1 -2
  17. package/dist/commonStyles/ellipsis.less +1 -1
  18. package/dist/commonStyles/fonts/roboto.less +7 -7
  19. package/dist/commonStyles/link/link.less +1 -1
  20. package/dist/commonStyles/notSelectable.less +0 -4
  21. package/dist/commonStyles/pillStyles/pillContent.less +6 -2
  22. package/dist/commonStyles/pillStyles/pillStyles.less +1 -1
  23. package/dist/commonStyles/pillStyles/pillTextContent.less +3 -0
  24. package/dist/commonStyles/pillStyles/pillTypes.less +10 -0
  25. package/dist/commonStyles/popupMixin.less +2 -2
  26. package/dist/commonStyles/rangeFieldMixin.less +3 -6
  27. package/dist/commonStyles/shadows/shadows.less +3 -3
  28. package/dist/commonStyles/typography/typography.less +24 -24
  29. package/dist/dataFeed/dataFeed.js +28 -2
  30. package/dist/dataGrid/columns/actionsColumn/actionsButton.js +1 -1
  31. package/dist/dataGrid/withFlexibleColumns/withFlexibleColumns.js +1 -1
  32. package/dist/dataGrid/withSelectableRows/withSelectableRows.js +1 -1
  33. package/dist/dateInputInner/dateInputInnerControlBlock.js +57 -57
  34. package/dist/divider/divider.js +1 -1
  35. package/dist/dropdownRaw/dropdownRaw.js +1 -1
  36. package/dist/filtersBar/components/filtersBarPeriodPicker/filtersBarPeriodPicker.js +1 -1
  37. package/dist/filtersBar/filtersBarSidePanel/filtersBarSidePanel.js +31 -31
  38. package/dist/filtersBar/filtersContainer/filtersContainer.js +16 -5
  39. package/dist/header/components/collapsedItemsControl/collapsedItemsControl.js +1 -1
  40. package/dist/header/header.js +1 -1
  41. package/dist/header/headerMenu.js +1 -1
  42. package/dist/index.css +487 -571
  43. package/dist/list/itemData/itemDataInternal.js +1 -1
  44. package/dist/list/listItem/listItem.js +1 -1
  45. package/dist/menu/menu.js +1 -1
  46. package/dist/nav/navAddMenu/navAddMenu.js +1 -1
  47. package/dist/nav/navFooter/navFooter.js +4 -4
  48. package/dist/nav/navFooter/navFooterAction/navFooterAction.js +1 -1
  49. package/dist/nav/navHeader/navHeader.js +1 -1
  50. package/dist/nav/navHeader/navHeaderSearch/navHeaderSearch.js +1 -1
  51. package/dist/nav/navItem/navItem.js +2 -2
  52. package/dist/rangeRaw/rangeRaw.js +1 -1
  53. package/dist/rangeRaw/utils/rangeHelper.js +28 -28
  54. package/dist/sortControl/sortControl.js +1 -1
  55. package/dist/summary/summary.d.ts +3 -2
  56. package/dist/summary/summary.js +6 -2
  57. package/dist/summaryTileBar/summaryTileBar.js +3 -1
  58. package/dist/table/actions/actionsMenu.js +2 -2
  59. package/dist/table/flexible/columnsPopup.js +1 -1
  60. package/dist/table/table.js +5 -7
  61. package/dist/tabs/tabs.js +16 -5
  62. package/dist/toolbar/helpers/getWidthWithMargin.js +2 -2
  63. package/dist/tooltip/helpers/calculateArrowPosition.js +1 -7
  64. package/dist/tooltip/tooltip.js +7 -5
  65. package/dist/utils/localization/translations/ar.json +7 -7
  66. package/dist/utils/localization/translations/cs.json +7 -7
  67. package/dist/utils/localization/translations/da-DK.json +7 -7
  68. package/dist/utils/localization/translations/de.json +7 -7
  69. package/dist/utils/localization/translations/en.json +7 -7
  70. package/dist/utils/localization/translations/es.json +7 -7
  71. package/dist/utils/localization/translations/fi-FI.json +7 -7
  72. package/dist/utils/localization/translations/fr-FR.json +7 -7
  73. package/dist/utils/localization/translations/fr.json +7 -7
  74. package/dist/utils/localization/translations/hu-HU.json +7 -7
  75. package/dist/utils/localization/translations/id.json +7 -7
  76. package/dist/utils/localization/translations/it.json +7 -7
  77. package/dist/utils/localization/translations/ja.json +7 -7
  78. package/dist/utils/localization/translations/ko-KR.json +7 -7
  79. package/dist/utils/localization/translations/ms.json +7 -7
  80. package/dist/utils/localization/translations/nb-NO.json +7 -7
  81. package/dist/utils/localization/translations/nl.json +7 -7
  82. package/dist/utils/localization/translations/pl.json +7 -7
  83. package/dist/utils/localization/translations/pt-BR.json +7 -7
  84. package/dist/utils/localization/translations/pt-PT.json +7 -7
  85. package/dist/utils/localization/translations/ro-RO.json +7 -7
  86. package/dist/utils/localization/translations/sk-SK.json +7 -7
  87. package/dist/utils/localization/translations/sv.json +7 -7
  88. package/dist/utils/localization/translations/th.json +7 -7
  89. package/dist/utils/localization/translations/tr.json +7 -7
  90. package/dist/utils/localization/translations/zh-Hans.json +7 -7
  91. package/dist/utils/localization/translations/zh-TW.json +7 -7
  92. package/esm/advancedGroupsFilter/advancedGroupsFilterSectionTooltip.js +29 -29
  93. package/esm/calendar/calendar.js +1 -1
  94. package/esm/chart/lineChart/useSummary.d.ts +2 -1
  95. package/esm/columnsSelector/columnsSelector.js +1 -1
  96. package/esm/commonHelpers/arrowNavigation/arrowNavigationHelper.d.ts +1 -1
  97. package/esm/commonHelpers/arrowNavigation/arrowNavigationHelper.js +29 -12
  98. package/esm/commonHelpers/arrowNavigation/components/arrowButton/arrowButton.d.ts +2 -1
  99. package/esm/commonHelpers/arrowNavigation/components/arrowButton/arrowButton.js +2 -2
  100. package/esm/commonHelpers/arrowNavigation/hooks/useManualScrolling.js +4 -2
  101. package/esm/commonHelpers/arrowNavigation/hooks/useScrollWhileHolding.js +12 -3
  102. package/esm/commonHelpers/arrowNavigation/hooks/useScrolling.js +18 -6
  103. package/esm/dataFeed/dataFeed.js +28 -2
  104. package/esm/dataGrid/columns/actionsColumn/actionsButton.js +1 -1
  105. package/esm/dataGrid/withFlexibleColumns/withFlexibleColumns.js +1 -1
  106. package/esm/dataGrid/withSelectableRows/withSelectableRows.js +1 -1
  107. package/esm/dateInputInner/dateInputInnerControlBlock.js +57 -57
  108. package/esm/divider/divider.js +1 -1
  109. package/esm/dropdownRaw/dropdownRaw.js +1 -1
  110. package/esm/filtersBar/components/filtersBarPeriodPicker/filtersBarPeriodPicker.js +1 -1
  111. package/esm/filtersBar/filtersBarSidePanel/filtersBarSidePanel.js +31 -31
  112. package/esm/filtersBar/filtersContainer/filtersContainer.js +16 -5
  113. package/esm/header/components/collapsedItemsControl/collapsedItemsControl.js +1 -1
  114. package/esm/header/header.js +1 -1
  115. package/esm/header/headerMenu.js +1 -1
  116. package/esm/list/itemData/itemDataInternal.js +1 -1
  117. package/esm/list/listItem/listItem.js +1 -1
  118. package/esm/menu/menu.js +1 -1
  119. package/esm/nav/navAddMenu/navAddMenu.js +1 -1
  120. package/esm/nav/navFooter/navFooter.js +4 -4
  121. package/esm/nav/navFooter/navFooterAction/navFooterAction.js +1 -1
  122. package/esm/nav/navHeader/navHeader.js +1 -1
  123. package/esm/nav/navHeader/navHeaderSearch/navHeaderSearch.js +1 -1
  124. package/esm/nav/navItem/navItem.js +2 -2
  125. package/esm/rangeRaw/rangeRaw.js +1 -1
  126. package/esm/rangeRaw/utils/rangeHelper.js +28 -28
  127. package/esm/sortControl/sortControl.js +1 -1
  128. package/esm/summary/summary.d.ts +3 -2
  129. package/esm/summary/summary.js +6 -2
  130. package/esm/summaryTileBar/summaryTileBar.js +3 -1
  131. package/esm/table/actions/actionsMenu.js +2 -2
  132. package/esm/table/flexible/columnsPopup.js +1 -1
  133. package/esm/table/table.js +5 -7
  134. package/esm/tabs/tabs.js +16 -5
  135. package/esm/toolbar/helpers/getWidthWithMargin.js +2 -2
  136. package/esm/tooltip/helpers/calculateArrowPosition.js +1 -7
  137. package/esm/tooltip/tooltip.js +7 -5
  138. package/esm/utils/localization/translations/ar.json +7 -7
  139. package/esm/utils/localization/translations/cs.json +7 -7
  140. package/esm/utils/localization/translations/da-DK.json +7 -7
  141. package/esm/utils/localization/translations/de.json +7 -7
  142. package/esm/utils/localization/translations/en.json +7 -7
  143. package/esm/utils/localization/translations/es.json +7 -7
  144. package/esm/utils/localization/translations/fi-FI.json +7 -7
  145. package/esm/utils/localization/translations/fr-FR.json +7 -7
  146. package/esm/utils/localization/translations/fr.json +7 -7
  147. package/esm/utils/localization/translations/hu-HU.json +7 -7
  148. package/esm/utils/localization/translations/id.json +7 -7
  149. package/esm/utils/localization/translations/it.json +7 -7
  150. package/esm/utils/localization/translations/ja.json +7 -7
  151. package/esm/utils/localization/translations/ko-KR.json +7 -7
  152. package/esm/utils/localization/translations/ms.json +7 -7
  153. package/esm/utils/localization/translations/nb-NO.json +7 -7
  154. package/esm/utils/localization/translations/nl.json +7 -7
  155. package/esm/utils/localization/translations/pl.json +7 -7
  156. package/esm/utils/localization/translations/pt-BR.json +7 -7
  157. package/esm/utils/localization/translations/pt-PT.json +7 -7
  158. package/esm/utils/localization/translations/ro-RO.json +7 -7
  159. package/esm/utils/localization/translations/sk-SK.json +7 -7
  160. package/esm/utils/localization/translations/sv.json +7 -7
  161. package/esm/utils/localization/translations/th.json +7 -7
  162. package/esm/utils/localization/translations/tr.json +7 -7
  163. package/esm/utils/localization/translations/zh-Hans.json +7 -7
  164. package/esm/utils/localization/translations/zh-TW.json +7 -7
  165. package/package.json +10 -1
@@ -106,7 +106,7 @@ const ItemDataInternalInner = ({
106
106
  return null;
107
107
  }
108
108
  return (0, jsx_runtime_1.jsx)(menu_1.Menu, {
109
- alignment: "bottom-right",
109
+ alignment: "bottom-end",
110
110
  title: translate("More"),
111
111
  trigger: (0, jsx_runtime_1.jsx)(button_1.Button, {
112
112
  type: "tertiary-black",
@@ -132,7 +132,7 @@ const ListItem = ({
132
132
  }, action.name))
133
133
  });
134
134
  const menu = secondaryActions.length > 0 ? (0, jsx_runtime_1.jsx)(menu_1.Menu, {
135
- alignment: "bottom-right",
135
+ alignment: "bottom-end",
136
136
  title: translate("More"),
137
137
  trigger: (0, jsx_runtime_1.jsx)(button_1.Button, {
138
138
  type: "tertiary-black",
package/dist/menu/menu.js CHANGED
@@ -9,7 +9,7 @@ const menuItem_1 = require("./components/menuItem");
9
9
  const menuSeparator_1 = require("./components/menuSeparator");
10
10
  const classNames_1 = require("../commonHelpers/classNames/classNames");
11
11
  // eslint-disable-next-line @typescript-eslint/naming-convention
12
- const Menu = ({ children, title, trigger, triggerRef, ariaLabel, ariaLabelledBy, alignment = "bottom-left", className }) => {
12
+ const Menu = ({ children, title, trigger, triggerRef, ariaLabel, ariaLabelledBy, alignment = "bottom-start", className }) => {
13
13
  var _a;
14
14
  const [isOpen, setIsOpen] = (0, react_1.useState)(false);
15
15
  const innerRef = (0, react_1.useRef)(null);
@@ -27,7 +27,7 @@ const NavAddMenu = ({ title, alignment, className, children }) => {
27
27
  className: (0, classNames_1.classNames)(["zen-nav-item--level-2", child.props.className || ""]),
28
28
  collapsed: false
29
29
  }));
30
- return ((0, jsx_runtime_1.jsx)(navItem_1.NavItemContext, { value: { parentLevel: 2 }, children: (0, jsx_runtime_1.jsxs)("div", { className: (0, classNames_1.classNames)(["zen-nav-header__actions", className || ""]), children: [(0, jsx_runtime_1.jsx)(tooltip_1.Tooltip, { trigger: (0, jsx_runtime_1.jsx)(textIconButton_1.TextIconButton, { id: triggerId, title: title, className: (0, classNames_1.classNames)(["zen-nav-footer__actions-icon", className || ""]), icon: isOpen && !isMobile ? iconClose_1.IconClose : iconPlus_1.IconPlus, iconSize: "large", ref: triggerRef, onClick: () => setIsOpen(!isOpen), role: !isMobile ? "menuitem" : undefined }), alignment: isMobile ? "left" : collapsed ? "right" : "top", children: title }), (0, jsx_runtime_1.jsx)(controlledMenu_1.ControlledMenu, { title: title, isOpen: isOpen, setIsOpen: setIsOpen, triggerRef: triggerRef, alignment: alignment, paddingX: 8, paddingY: 8, className: (0, classNames_1.classNames)([
30
+ return ((0, jsx_runtime_1.jsx)(navItem_1.NavItemContext, { value: { parentLevel: 2 }, children: (0, jsx_runtime_1.jsxs)("div", { className: (0, classNames_1.classNames)(["zen-nav-header__actions", className || ""]), children: [(0, jsx_runtime_1.jsx)(tooltip_1.Tooltip, { trigger: (0, jsx_runtime_1.jsx)(textIconButton_1.TextIconButton, { id: triggerId, title: title, className: (0, classNames_1.classNames)(["zen-nav-footer__actions-icon", className || ""]), icon: isOpen && !isMobile ? iconClose_1.IconClose : iconPlus_1.IconPlus, iconSize: "large", ref: triggerRef, onClick: () => setIsOpen(!isOpen), role: !isMobile ? "menuitem" : undefined }), alignment: isMobile ? "start" : collapsed ? "end" : "top", children: title }), (0, jsx_runtime_1.jsx)(controlledMenu_1.ControlledMenu, { title: title, isOpen: isOpen, setIsOpen: setIsOpen, triggerRef: triggerRef, alignment: alignment, paddingX: 8, paddingY: 8, className: (0, classNames_1.classNames)([
31
31
  "zen-nav-popup zen-nav-popup--narrow zen-nav-l2-popup zen-nav-l2-popup--narrow",
32
32
  isMobile ? "zen-nav-popup--mobile zen-nav-l2-popup--mobile" : ""
33
33
  ]), listClassName: (0, classNames_1.classNames)([
@@ -90,8 +90,8 @@ const NavFooterBottom = ({
90
90
  return (0, react_1.cloneElement)(childElement, Object.assign(Object.assign({}, childElement.props), {
91
91
  collapsed: !isMobile,
92
92
  className: (0, classNames_1.classNames)([childElement.props.className || "", "zen-nav-footer__button"]),
93
- menuAlignment: "right-bottom",
94
- tooltipAlignment: collapsed ? "right" : "top"
93
+ menuAlignment: "end-bottom",
94
+ tooltipAlignment: collapsed ? "end" : "top"
95
95
  }));
96
96
  })
97
97
  });
@@ -114,8 +114,8 @@ const NavFooterEditButton = ({
114
114
  collapsed: !isMobile,
115
115
  primaryIcon: iconEdit_1.IconEdit,
116
116
  onClick: () => onEditStateToggle === null || onEditStateToggle === void 0 ? void 0 : onEditStateToggle(true),
117
- menuAlignment: "right-bottom",
118
- tooltipAlignment: collapsed ? "right" : "top"
117
+ menuAlignment: "end-bottom",
118
+ tooltipAlignment: collapsed ? "end" : "top"
119
119
  }, "edit-button");
120
120
  };
121
121
  NavFooterEditButton.displayName = "NavFooterEditButton";
@@ -58,7 +58,7 @@ const NavFooterAction = ({
58
58
  return (0, jsx_runtime_1.jsx)(navItem_1.NavItem, {
59
59
  primaryIcon: iconSettings4_1.IconSettings4,
60
60
  title: translate("Configure"),
61
- menuAlignment: "right-bottom",
61
+ menuAlignment: "end-bottom",
62
62
  isMenuItem: false,
63
63
  children: filteredItems
64
64
  });
@@ -93,7 +93,7 @@ const NavHeaderToggler = ({
93
93
  collapsed: true,
94
94
  isMenuItem: false,
95
95
  onClick: () => onCollapseToggle && onCollapseToggle(!collapsed),
96
- tooltipAlignment: collapsed ? "right" : "bottom"
96
+ tooltipAlignment: collapsed ? "end" : "bottom"
97
97
  }, "collapse-button")
98
98
  });
99
99
  };
@@ -122,7 +122,7 @@ const NavHeaderSearch = ({
122
122
  collapsed: true,
123
123
  isMenuItem: false,
124
124
  onClick: () => onSearchToggle === null || onSearchToggle === void 0 ? void 0 : onSearchToggle(true),
125
- tooltipAlignment: collapsed ? "right" : "bottom"
125
+ tooltipAlignment: collapsed ? "end" : "bottom"
126
126
  }) : null, searchOpen || isMobile ? (0, jsx_runtime_1.jsx)(searchInput_1.SearchInput, {
127
127
  autoFocus: true,
128
128
  ariaLabel: translate("Search"),
@@ -27,7 +27,7 @@ const useMobile_1 = require("../../commonHelpers/hooks/useMobile");
27
27
  const ICON_SIZE = "huge";
28
28
  const SUBMENU_ICON_SIZE = "large";
29
29
  exports.NavItemContext = (0, react_1.createContext)({ parentLevel: 0 });
30
- const defaultTooltipAlignment = "right";
30
+ const defaultTooltipAlignment = "end";
31
31
  const isLinkNavItem = (item) => !!item.link;
32
32
  const NavItemContent = ({ primaryIcon, secondaryIcon, isBeta, counter, collapsed, hasSubmenu, iconClass, level = 1, children }) => {
33
33
  const primaryIconRef = (0, react_1.useRef)(null);
@@ -75,7 +75,7 @@ const LinkNavItem = (_a) => {
75
75
  };
76
76
  LinkNavItem.displayName = "LinkNavItem";
77
77
  const ButtonNavItem = (_a) => {
78
- var { className, title, onClick, collapsed, active, children, tabIndex, menuAlignment = "right-top", isMenuItem = true, tooltipAlignment = defaultTooltipAlignment, actionIcon, actionIconTitle, onActionIconClick, onDropdownStateChange } = _a, rest = __rest(_a, ["className", "title", "onClick", "collapsed", "active", "children", "tabIndex", "menuAlignment", "isMenuItem", "tooltipAlignment", "actionIcon", "actionIconTitle", "onActionIconClick", "onDropdownStateChange"]);
78
+ var { className, title, onClick, collapsed, active, children, tabIndex, menuAlignment = "end-top", isMenuItem = true, tooltipAlignment = defaultTooltipAlignment, actionIcon, actionIconTitle, onActionIconClick, onDropdownStateChange } = _a, rest = __rest(_a, ["className", "title", "onClick", "collapsed", "active", "children", "tabIndex", "menuAlignment", "isMenuItem", "tooltipAlignment", "actionIcon", "actionIconTitle", "onActionIconClick", "onDropdownStateChange"]);
79
79
  const [menuOpen, setMenuOpen] = (0, react_1.useState)(false);
80
80
  const { parentLevel = 0, closeParentMenu } = (0, react_1.useContext)(exports.NavItemContext);
81
81
  (0, react_1.useEffect)(() => {
@@ -549,4 +549,4 @@ const RangeRaw = props => {
549
549
  });
550
550
  };
551
551
  exports.RangeRaw = RangeRaw;
552
- exports.TRANSLATIONS = ["Min", "Max", "Range Filter popup", "Clear", "Cancel", "Apply", "Must be less than the max", "Must be more than the min", "Must be more than {value}", "Must be less than {value}", "Must be in range {min} - {max}", "The min value must be set", "The max value must be set", "{rangeName} values {values}"];
552
+ exports.TRANSLATIONS = ["Min", "Max", "Range Filter popup", "Clear", "Cancel", "Apply", "Must be less than the max", "Must be more than the min", "Must be more than {value}", "Must be less than {value}", "Must be in the {min} - {max} range", "The min value must be set", "The max value must be set", "{rangeName} values {values}"];
@@ -3,33 +3,33 @@
3
3
  const {
4
4
  injectString
5
5
  } = require("../../utils/localization/translationsDictionary");
6
- injectString("cs", "Must be in range {min} - {max}", "Mus\xED b\xFDt v rozsahu {min}\u2013{max}");
7
- injectString("da-DK", "Must be in range {min} - {max}", "Skal v\xE6re i omr\xE5det {min} - {max}");
8
- injectString("de", "Must be in range {min} - {max}", "Muss zwischen {min} und {max} liegen");
9
- injectString("en", "Must be in range {min} - {max}", "Must be in the {min} - {max} range");
10
- injectString("es", "Must be in range {min} - {max}", "Debe estar en el rango {min}-{max}");
11
- injectString("fi-FI", "Must be in range {min} - {max}", "On oltava v\xE4lill\xE4 {min} - {max}");
12
- injectString("fr", "Must be in range {min} - {max}", "Doit \xEAtre compris dans la plage {min} - {max}");
13
- injectString("fr-FR", "Must be in range {min} - {max}", "Doit \xEAtre compris entre {min} et {max}");
14
- injectString("hu-HU", "Must be in range {min} - {max}", "A(z) {min} \xE9s {max} k\xF6z\xF6tti tartom\xE1nyban kell lennie.");
15
- injectString("id", "Must be in range {min} - {max}", "Harus berada dalam rentang {min} - {max}");
16
- injectString("it", "Must be in range {min} - {max}", "Deve rientrare nell'intervallo {min} - {max}");
17
- injectString("ja", "Must be in range {min} - {max}", "{min} \uFF5E {max} \u306E\u7BC4\u56F2\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059");
18
- injectString("ko-KR", "Must be in range {min} - {max}", "{min}~{max} \uBC94\uC704\uC5D0 \uC788\uC5B4\uC57C \uD569\uB2C8\uB2E4.");
19
- injectString("ms", "Must be in range {min} - {max}", "Mesti dalam julat {min} - {max}");
20
- injectString("nb-NO", "Must be in range {min} - {max}", "M\xE5 v\xE6re innenfor {min} - {max}");
21
- injectString("nl", "Must be in range {min} - {max}", "Moet binnen het bereik {min} - {max} liggen");
22
- injectString("pl", "Must be in range {min} - {max}", "Musi znajdowa\u0107 si\u0119 w zakresie {min}\u2013{max}");
23
- injectString("pt-BR", "Must be in range {min} - {max}", "Deve estar entre intervalo de {min} a {max}");
24
- injectString("pt-PT", "Must be in range {min} - {max}", "Deve estar no intervalo {min} - {max}");
25
- injectString("sk-SK", "Must be in range {min} - {max}", "Mus\xED by\u0165 v rozsahu {min} - {max}");
26
- injectString("sv", "Must be in range {min} - {max}", "M\xE5ste vara inom intervallet {min}\u2013{max}");
27
- injectString("th", "Must be in range {min} - {max}", "\u0E15\u0E49\u0E2D\u0E07\u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E0A\u0E48\u0E27\u0E07 {min} - {max}");
28
- injectString("tr", "Must be in range {min} - {max}", "{min} - {max} aral\u0131\u011F\u0131nda olmal\u0131d\u0131r");
29
- injectString("zh-Hans", "Must be in range {min} - {max}", "\u5FC5\u987B\u5904\u4E8E {min} \u81F3 {max} \u8303\u56F4\u5185");
30
- injectString("zh-TW", "Must be in range {min} - {max}", "\u5FC5\u9808\u5728 {min} - {max} \u7BC4\u570D\u5167");
31
- injectString("ro-RO", "Must be in range {min} - {max}", "Trebuie s\u0103 fie \xEEn intervalul {min}-{max}");
32
- injectString("ar", "Must be in range {min} - {max}", "\u064A\u062C\u0628 \u0623\u0646 \u064A\u0643\u0648\u0646 \u0641\u064A \u0627\u0644\u0646\u0637\u0627\u0642 {min} - {max}");
6
+ injectString("cs", "Must be in the {min} - {max} range", "Mus\xED b\xFDt v rozsahu {min}\u2013{max}");
7
+ injectString("da-DK", "Must be in the {min} - {max} range", "Skal v\xE6re i omr\xE5det {min} - {max}");
8
+ injectString("de", "Must be in the {min} - {max} range", "Muss zwischen {min} und {max} liegen");
9
+ injectString("en", "Must be in the {min} - {max} range", "Must be in the {min} - {max} range");
10
+ injectString("es", "Must be in the {min} - {max} range", "Debe estar en el rango {min}-{max}");
11
+ injectString("fi-FI", "Must be in the {min} - {max} range", "On oltava v\xE4lill\xE4 {min} - {max}");
12
+ injectString("fr", "Must be in the {min} - {max} range", "Doit \xEAtre compris dans la plage {min} - {max}");
13
+ injectString("fr-FR", "Must be in the {min} - {max} range", "Doit \xEAtre compris entre {min} et {max}");
14
+ injectString("hu-HU", "Must be in the {min} - {max} range", "A(z) {min} \xE9s {max} k\xF6z\xF6tti tartom\xE1nyban kell lennie.");
15
+ injectString("id", "Must be in the {min} - {max} range", "Harus berada dalam rentang {min} - {max}");
16
+ injectString("it", "Must be in the {min} - {max} range", "Deve rientrare nell'intervallo {min} - {max}");
17
+ injectString("ja", "Must be in the {min} - {max} range", "{min} \uFF5E {max} \u306E\u7BC4\u56F2\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059");
18
+ injectString("ko-KR", "Must be in the {min} - {max} range", "{min}~{max} \uBC94\uC704\uC5D0 \uC788\uC5B4\uC57C \uD569\uB2C8\uB2E4.");
19
+ injectString("ms", "Must be in the {min} - {max} range", "Mesti dalam julat {min} - {max}");
20
+ injectString("nb-NO", "Must be in the {min} - {max} range", "M\xE5 v\xE6re innenfor {min} - {max}");
21
+ injectString("nl", "Must be in the {min} - {max} range", "Moet binnen het bereik {min} - {max} liggen");
22
+ injectString("pl", "Must be in the {min} - {max} range", "Musi znajdowa\u0107 si\u0119 w zakresie {min}\u2013{max}");
23
+ injectString("pt-BR", "Must be in the {min} - {max} range", "Deve estar entre intervalo de {min} a {max}");
24
+ injectString("pt-PT", "Must be in the {min} - {max} range", "Deve estar no intervalo {min} - {max}");
25
+ injectString("sk-SK", "Must be in the {min} - {max} range", "Mus\xED by\u0165 v rozsahu {min} - {max}");
26
+ injectString("sv", "Must be in the {min} - {max} range", "M\xE5ste vara inom intervallet {min}\u2013{max}");
27
+ injectString("th", "Must be in the {min} - {max} range", "\u0E15\u0E49\u0E2D\u0E07\u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E0A\u0E48\u0E27\u0E07 {min} - {max}");
28
+ injectString("tr", "Must be in the {min} - {max} range", "{min} - {max} aral\u0131\u011F\u0131nda olmal\u0131d\u0131r");
29
+ injectString("zh-Hans", "Must be in the {min} - {max} range", "\u5FC5\u987B\u5904\u4E8E {min} \u81F3 {max} \u8303\u56F4\u5185");
30
+ injectString("zh-TW", "Must be in the {min} - {max} range", "\u5FC5\u9808\u5728 {min} - {max} \u7BC4\u570D\u5167");
31
+ injectString("ro-RO", "Must be in the {min} - {max} range", "Trebuie s\u0103 fie \xEEn intervalul {min}-{max}");
32
+ injectString("ar", "Must be in the {min} - {max} range", "\u064A\u062C\u0628 \u0623\u0646 \u064A\u0643\u0648\u0646 \u0641\u064A \u0627\u0644\u0646\u0637\u0627\u0642 {min} - {max}");
33
33
  injectString("cs", "Must be more than {value}", "Mus\xED b\xFDt v\u011Bt\u0161\xED ne\u017E {value}");
34
34
  injectString("da-DK", "Must be more than {value}", "Skal v\xE6re mere end {value}");
35
35
  injectString("de", "Must be more than {value}", "Muss gr\xF6\xDFer sein als {value}");
@@ -198,7 +198,7 @@ Object.defineProperty(exports, "__esModule", {
198
198
  exports.checkErrorType = exports.getErrorString = exports.getRangeError = void 0;
199
199
  const getRangeError = (translateFn, currentVal, defMin, defMax) => {
200
200
  if (defMin !== undefined && defMax !== undefined && currentVal !== null && (currentVal < defMin || currentVal > defMax)) {
201
- return translateFn("Must be in range {min} - {max}").replace("{min}", defMin.toString()).replace("{max}", defMax.toString());
201
+ return translateFn("Must be in the {min} - {max} range").replace("{min}", defMin.toString()).replace("{max}", defMax.toString());
202
202
  }
203
203
  if (defMin !== undefined && currentVal !== null && currentVal < defMin) {
204
204
  return translateFn("Must be more than {value}").replace("{value}", defMin.toString());
@@ -238,7 +238,7 @@ const SortControl = ({
238
238
  size: isDrive ? "huge" : "large"
239
239
  })
240
240
  }),
241
- alignment: "bottom-left",
241
+ alignment: "bottom-start",
242
242
  onOpenChange: isCurrentlyOpen => onOptionsToggle(isCurrentlyOpen),
243
243
  children: (0, jsx_runtime_1.jsx)(selectList_1.SelectList, {
244
244
  id: "sortControlSelectList",
@@ -3,7 +3,8 @@ import "./summary.less";
3
3
  export interface ISummary {
4
4
  color?: string;
5
5
  title?: string;
6
- value: string | number;
6
+ value: string | number | ReactNode;
7
+ prefix?: ReactNode;
7
8
  unit?: string;
8
9
  tooltip?: ReactNode;
9
10
  more?: ReactNode;
@@ -11,4 +12,4 @@ export interface ISummary {
11
12
  onToggle?: () => void;
12
13
  description?: ReactNode;
13
14
  }
14
- export declare const Summary: ({ color, title, value, unit, tooltip, more, isEnabled, onToggle, description }: ISummary) => import("react/jsx-runtime").JSX.Element;
15
+ export declare const Summary: ({ color, title, value, prefix, unit, tooltip, more, isEnabled, onToggle, description }: ISummary) => import("react/jsx-runtime").JSX.Element;
@@ -71,6 +71,7 @@ const Summary = ({
71
71
  color,
72
72
  title,
73
73
  value,
74
+ prefix,
74
75
  unit,
75
76
  tooltip,
76
77
  more,
@@ -115,9 +116,12 @@ const Summary = ({
115
116
  })]
116
117
  }), (0, jsx_runtime_1.jsxs)("div", {
117
118
  className: "zen-summary__data",
118
- children: [(0, jsx_runtime_1.jsx)("div", {
119
+ children: [prefix && (0, jsx_runtime_1.jsx)("div", {
120
+ className: "zen-summary__prefix",
121
+ children: prefix
122
+ }), (0, jsx_runtime_1.jsx)("div", {
119
123
  className: "zen-summary__value zen-ellipsis",
120
- children: typeof value === "string" ? value : value.toFixed(2)
124
+ children: typeof value === "number" ? value.toFixed(2) : value
121
125
  }), unit && (0, jsx_runtime_1.jsx)("div", {
122
126
  className: "zen-summary__unit",
123
127
  children: unit
@@ -8,16 +8,18 @@ const arrowButton_1 = require("../commonHelpers/arrowNavigation/components/arrow
8
8
  const useHoldOnScroll_1 = require("../commonHelpers/arrowNavigation/hooks/useHoldOnScroll");
9
9
  const useScrolling_1 = require("../commonHelpers/arrowNavigation/hooks/useScrolling");
10
10
  const useManualScrolling_1 = require("../commonHelpers/arrowNavigation/hooks/useManualScrolling");
11
+ const useIsRTL_1 = require("../utils/localization/useIsRTL");
11
12
  const deviceType_1 = require("../commonHelpers/hooks/deviceType");
12
13
  const useDeviceType_1 = require("../commonHelpers/hooks/useDeviceType");
13
14
  const SummaryTileBar = ({ className, children, role, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby }) => {
14
15
  const { isScrollable, scrollableElementRef, onMouseDown, onMouseUp } = (0, useHoldOnScroll_1.useHoldOnScroll)();
15
16
  const { scroll } = (0, useManualScrolling_1.useManualScrolling)({ elementRef: scrollableElementRef });
16
17
  const { onScroll, state } = (0, useScrolling_1.useScrolling)();
18
+ const isRTL = (0, useIsRTL_1.useIsRTL)();
17
19
  const [deviceType, setDeviceType] = (0, react_1.useState)(deviceType_1.DeviceType.Mobile);
18
20
  const isMobile = deviceType === deviceType_1.DeviceType.Mobile;
19
21
  (0, useDeviceType_1.useDeviceType)(setDeviceType);
20
- return ((0, jsx_runtime_1.jsxs)("div", { className: (0, classNames_1.classNames)(["zen-card-deck", isMobile ? "zen-card-deck--mobile" : "", className !== null && className !== void 0 ? className : ""]), children: [(0, jsx_runtime_1.jsx)("div", { className: "zen-card-deck__cards-container", ref: scrollableElementRef, onScroll: onScroll, children: (0, jsx_runtime_1.jsx)("ul", { className: "zen-card-deck__cards", role: role !== null && role !== void 0 ? role : "list", "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, children: react_1.Children.map(children, child => ((0, jsx_runtime_1.jsx)("li", { role: role === "tablist" ? "presentation" : undefined, children: child }))) }) }), !isScrollable && ((0, jsx_runtime_1.jsxs)("div", { className: "zen-card-deck__arrows", children: [(0, jsx_runtime_1.jsx)(arrowButton_1.ArrowNavButton, { className: "zen-card-deck__arrow-button", value: "left", isHidden: false, disabled: state.scrolledLeft, arrowButtonHandler: scroll, onMouseDown: onMouseDown, onMouseUp: onMouseUp }), (0, jsx_runtime_1.jsx)(arrowButton_1.ArrowNavButton, { className: "zen-card-deck__arrow-button", value: "right", isHidden: false, disabled: state.scrolledRight, arrowButtonHandler: scroll, onMouseDown: onMouseDown, onMouseUp: onMouseUp })] }))] }));
22
+ return ((0, jsx_runtime_1.jsxs)("div", { className: (0, classNames_1.classNames)(["zen-card-deck", isMobile ? "zen-card-deck--mobile" : "", className !== null && className !== void 0 ? className : ""]), children: [(0, jsx_runtime_1.jsx)("div", { className: "zen-card-deck__cards-container", ref: scrollableElementRef, onScroll: onScroll, children: (0, jsx_runtime_1.jsx)("ul", { className: "zen-card-deck__cards", role: role !== null && role !== void 0 ? role : "list", "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, children: react_1.Children.map(children, child => ((0, jsx_runtime_1.jsx)("li", { role: role === "tablist" ? "presentation" : undefined, children: child }))) }) }), !isScrollable && ((0, jsx_runtime_1.jsxs)("div", { className: "zen-card-deck__arrows", children: [(0, jsx_runtime_1.jsx)(arrowButton_1.ArrowNavButton, { className: "zen-card-deck__arrow-button", value: "left", action: isRTL ? "right" : undefined, isHidden: false, disabled: isRTL ? state.scrolledRight : state.scrolledLeft, arrowButtonHandler: scroll, onMouseDown: onMouseDown, onMouseUp: onMouseUp }), (0, jsx_runtime_1.jsx)(arrowButton_1.ArrowNavButton, { className: "zen-card-deck__arrow-button", value: "right", action: isRTL ? "left" : undefined, isHidden: false, disabled: isRTL ? state.scrolledLeft : state.scrolledRight, arrowButtonHandler: scroll, onMouseDown: onMouseDown, onMouseUp: onMouseUp })] }))] }));
21
23
  };
22
24
  exports.SummaryTileBar = SummaryTileBar;
23
25
  exports.SummaryTileBarDisplayName = "SummaryTileBar";
@@ -176,7 +176,7 @@ const ActionsMenu = ({
176
176
  ariaLabelledBy: buttonId,
177
177
  title: translate("Actions"),
178
178
  triggerRef: ref,
179
- alignment: "bottom-right",
179
+ alignment: "bottom-end",
180
180
  children: menuItemsToRender
181
181
  })]
182
182
  });
@@ -187,7 +187,7 @@ const ActionsMenu = ({
187
187
  return (0, jsx_runtime_1.jsx)(menu_1.Menu, {
188
188
  title: translate("Actions"),
189
189
  trigger: trigger,
190
- alignment: "bottom-right",
190
+ alignment: "bottom-end",
191
191
  children: menuItems
192
192
  });
193
193
  };
@@ -76,7 +76,7 @@ const ColumnsPopup = ({
76
76
  return (0, jsx_runtime_1.jsx)(popup_1.Popup, {
77
77
  ariaLabel: translate("Column Settings"),
78
78
  triggerRef: triggerRef,
79
- alignment: "bottom-right",
79
+ alignment: "bottom-end",
80
80
  children: (0, jsx_runtime_1.jsx)(columnSettings_1.ColumnSettings, {
81
81
  onReset: onResetListener,
82
82
  children: listOfColumns
@@ -252,10 +252,8 @@ const TableInner = ({
252
252
  const handleOnTriggerClick = (0, react_1.useCallback)(() => setSelectMode(prev => !prev), []);
253
253
  const hasPostActions = (0, react_1.useMemo)(() => columnsPopup || isMobile && selectable || !isMobile && fullscreenButton || isFeedVisible, [columnsPopup, fullscreenButton, isFeedVisible, isMobile, selectable]);
254
254
  const hasToolbar = (0, react_1.useMemo)(() => bulkActions || feedSortControl || pagination && !isMobile || other.length || columnsPopup || !isMobile && fullscreenButton || isFeedVisible, [bulkActions, columnsPopup, feedSortControl, fullscreenButton, isFeedVisible, isMobile, other.length, pagination]);
255
- const gridAutoHeight = (0, react_1.useMemo)(() => contentHeight ? `${contentHeight}px` : undefined, [contentHeight]);
256
- const minHeight = "400px";
257
- const gridHeight = (0, react_1.useMemo)(() => height || gridAutoHeight || minHeight, [gridAutoHeight, height]);
258
- // TODO: disadvantages?
255
+ const gridAutoHeight = (0, react_1.useMemo)(() => contentHeight !== undefined ? `${contentHeight}px` : undefined, [contentHeight]);
256
+ const gridHeight = (0, react_1.useMemo)(() => height || gridAutoHeight, [gridAutoHeight, height]);
259
257
  const {
260
258
  gridClasses,
261
259
  restClasses
@@ -263,10 +261,10 @@ const TableInner = ({
263
261
  return (0, jsx_runtime_1.jsx)(layoutFullScreen_1.LayoutFullScreen, {
264
262
  className: (0, classNames_1.classNames)([...gridClasses]),
265
263
  children: (0, jsx_runtime_1.jsxs)("div", {
266
- style: {
264
+ style: gridHeight ? {
267
265
  height: gridHeight
268
- },
269
- className: (0, classNames_1.classNames)(["zen-table-wrapper", hasToolbar ? "zen-table-wrapper--with-toolbar" : "", ...restClasses]),
266
+ } : undefined,
267
+ className: (0, classNames_1.classNames)(["zen-table-wrapper", gridHeight ? "" : "zen-table-wrapper--fit-content", hasToolbar ? "zen-table-wrapper--with-toolbar" : "", ...restClasses]),
270
268
  children: [hasToolbar ? (0, jsx_runtime_1.jsxs)(entitiesListActions_1.EntitiesListActions, {
271
269
  gridType: isMobile ? deviceType_1.DeviceType.Mobile : deviceType_1.DeviceType.Desktop,
272
270
  children: [(0, jsx_runtime_1.jsxs)(entitiesListActions_1.EntitiesListActions.Actions, {
package/dist/tabs/tabs.js CHANGED
@@ -64,6 +64,7 @@ injectString("ro-RO", "Scroll to end", "Derulare la sf\xE2r\u0219it");
64
64
  const classNames_1 = require("../commonHelpers/classNames/classNames");
65
65
  const useDriveClassName_1 = require("../utils/theme/useDriveClassName");
66
66
  const useLanguage_1 = require("../utils/localization/useLanguage");
67
+ const useIsRTL_1 = require("../utils/localization/useIsRTL");
67
68
  const tabItem_1 = require("./tabItem/tabItem");
68
69
  const iconChevronRight_1 = require("../icons/iconChevronRight");
69
70
  const iconChevronLeft_1 = require("../icons/iconChevronLeft");
@@ -74,13 +75,22 @@ const useMobileClassName_1 = require("../utils/theme/useMobileClassName");
74
75
  require("../utils/globalThisPolyfill");
75
76
  const zen_1 = require("../utils/zen");
76
77
  exports.TabsDisplayName = "Tabs";
77
- const getScrollButtonType = element => {
78
+ const getScrollButtonType = (element, isRTL) => {
78
79
  const scrollLeft = element.scrollLeft;
79
80
  const scrollWidth = element.scrollWidth;
80
81
  const clientWidth = element.clientWidth;
81
82
  if (scrollLeft === 0 && scrollWidth === clientWidth) {
82
83
  return "";
83
84
  }
85
+ if (isRTL) {
86
+ if (scrollLeft < -1 && scrollLeft > clientWidth - scrollWidth + 1) {
87
+ return "both";
88
+ }
89
+ if (scrollLeft >= -1) {
90
+ return "start";
91
+ }
92
+ return "end";
93
+ }
84
94
  if (scrollLeft > 0 && scrollWidth > clientWidth + scrollLeft + 1) {
85
95
  return "both";
86
96
  }
@@ -104,6 +114,7 @@ const Tabs = ({
104
114
  } = (0, useLanguage_1.useLanguage)();
105
115
  const ScrollStartIcon = (0, useDirectionalIcon_1.useDirectionalIcon)(iconChevronLeft_1.IconChevronLeft, iconChevronRight_1.IconChevronRight);
106
116
  const ScrollEndIcon = (0, useDirectionalIcon_1.useDirectionalIcon)(iconChevronRight_1.IconChevronRight, iconChevronLeft_1.IconChevronLeft);
117
+ const isRTL = (0, useIsRTL_1.useIsRTL)();
107
118
  const driveClassNameScroller = (0, useDriveClassName_1.useDriveClassName)("zen-tabs__scroller");
108
119
  const mobileClassNameScroller = (0, useMobileClassName_1.useMobileClassName)("zen-tabs__scroller");
109
120
  const driveClassNameGradient = (0, useDriveClassName_1.useDriveClassName)("zen-tabs__gradient");
@@ -164,7 +175,7 @@ const Tabs = ({
164
175
  if (scrollableElt) {
165
176
  timer && ((_a = zen_1.zen.clearTimeout) === null || _a === void 0 ? void 0 : _a.call(zen_1.zen, timer));
166
177
  timer = (_b = zen_1.zen.setTimeout) === null || _b === void 0 ? void 0 : _b.call(zen_1.zen, () => {
167
- setScrollButtonType(getScrollButtonType(scrollableElt));
178
+ setScrollButtonType(getScrollButtonType(scrollableElt, isRTL));
168
179
  }, 200);
169
180
  }
170
181
  };
@@ -178,12 +189,12 @@ const Tabs = ({
178
189
  scrollableElement.removeEventListener("scroll", resizeHandler);
179
190
  (_b = zen_1.zen.removeEventListener) === null || _b === void 0 ? void 0 : _b.call(zen_1.zen, "resize", resizeHandler);
180
191
  };
181
- }, [scrollableRef]);
192
+ }, [scrollableRef, isRTL]);
182
193
  (0, react_1.useEffect)(() => {
183
194
  if (scrollableRef.current) {
184
- setScrollButtonType(getScrollButtonType(scrollableRef.current));
195
+ setScrollButtonType(getScrollButtonType(scrollableRef.current, isRTL));
185
196
  }
186
- }, [scrollableRef, tabs, activeTabId]);
197
+ }, [scrollableRef, tabs, activeTabId, isRTL]);
187
198
  const handleScrollButtonClick = (0, react_1.useCallback)((scrollableElt, delta) => () => {
188
199
  var _a;
189
200
  if (scrollableElt) {
@@ -4,8 +4,8 @@ exports.getWidthWithMargin = void 0;
4
4
  const zen_1 = require("../../utils/zen");
5
5
  const getWidthWithMargin = (elem) => {
6
6
  var _a;
7
- const style = ((_a = zen_1.zen.getComputedStyle) === null || _a === void 0 ? void 0 : _a.call(zen_1.zen, elem)) || { marginLeft: "0", marginRight: "0" };
8
- const margin = parseFloat(style.marginLeft) + parseFloat(style.marginRight) || 0;
7
+ const style = ((_a = zen_1.zen.getComputedStyle) === null || _a === void 0 ? void 0 : _a.call(zen_1.zen, elem)) || { marginInlineStart: "0", marginInlineEnd: "0" };
8
+ const margin = parseFloat(style.marginInlineStart) + parseFloat(style.marginInlineEnd) || 0;
9
9
  const width = elem.getBoundingClientRect().width;
10
10
  return width + margin;
11
11
  };
@@ -5,13 +5,7 @@ const borderRadius = 4;
5
5
  const normalizeLeft = (left, tooltipWidth, arrowWidth) => Math.min(tooltipWidth - borderRadius - arrowWidth, Math.max(borderRadius, left));
6
6
  const normalizeTop = (top, tooltipHeight, arrowHeight) => Math.min(tooltipHeight - borderRadius - arrowHeight, Math.max(borderRadius, top));
7
7
  const calculateArrowPosition = (triggerRef, tooltipRef, arrowRef, alignment) => {
8
- if (!triggerRef.current) {
9
- return;
10
- }
11
- if (!tooltipRef.current) {
12
- return;
13
- }
14
- if (!arrowRef.current) {
8
+ if (!triggerRef.current || !tooltipRef.current || !arrowRef.current) {
15
9
  return;
16
10
  }
17
11
  const triggerElement = triggerRef.current;
@@ -101,6 +101,7 @@ const classNames_1 = require("../commonHelpers/classNames/classNames");
101
101
  const calculateArrowPosition_1 = require("./helpers/calculateArrowPosition");
102
102
  const deviceType_1 = require("../commonHelpers/hooks/deviceType");
103
103
  const useDeviceType_1 = require("../commonHelpers/hooks/useDeviceType");
104
+ const normalizeLogicalAlignment_1 = require("../utils/positioningUtils/normalizeLogicalAlignment");
104
105
  const themeContext_1 = require("../utils/theme/themeContext");
105
106
  const tooltipAlignments_1 = require("../utils/positioningUtils/tooltipAlignments");
106
107
  const iconClose_1 = require("../icons/iconClose");
@@ -201,6 +202,7 @@ const Tooltip = ({
201
202
  var _a, _b, _c, _d;
202
203
  const GAP = 12;
203
204
  const isDrive = (0, useDrive_1.useDrive)();
205
+ const direction = (0, useDirection_1.useDirection)();
204
206
  const triggerRefNative = trigger ? trigger.props.ref : undefined;
205
207
  const triggerLocalRef = (0, react_1.useRef)(null);
206
208
  const triggerRef = triggerRefNative || triggerLocalRef;
@@ -215,14 +217,14 @@ const Tooltip = ({
215
217
  const {
216
218
  translate
217
219
  } = (0, useLanguage_1.useLanguage)();
218
- const direction = (0, useDirection_1.useDirection)();
219
220
  const {
220
221
  dark
221
222
  } = (0, react_1.useContext)(themeContext_1.themeContext);
222
- const tooltipAlignment = (0, react_1.useMemo)(() => isMobile ? "bottom" : alignment || "right", [isMobile, alignment]);
223
+ const tooltipAlignment = (0, react_1.useMemo)(() => isMobile ? "bottom" : alignment || (direction === "ltr" ? "right" : "left"), [isMobile, alignment, direction]);
224
+ const normalizedTooltipAlignment = (0, react_1.useMemo)(() => (0, normalizeLogicalAlignment_1.normalizeLogicalAlignment)(tooltipAlignment, direction), [tooltipAlignment, direction]);
223
225
  const TOOLTIP_ARROW_HEIGHT = (0, react_1.useMemo)(() => isMobile || isDrive ? 0 : 6, [isMobile, isDrive]);
224
- const tooltipAlignmentRef = (0, react_1.useRef)(tooltipAlignment);
225
- tooltipAlignmentRef.current = tooltipAlignment;
226
+ const tooltipAlignmentRef = (0, react_1.useRef)(normalizedTooltipAlignment);
227
+ tooltipAlignmentRef.current = normalizedTooltipAlignment;
226
228
  const setDeviceTypeStable = (0, react_1.useCallback)(newType => {
227
229
  setDeviceType(currentDeviceType => newType !== currentDeviceType ? newType : currentDeviceType);
228
230
  }, []);
@@ -283,7 +285,7 @@ const Tooltip = ({
283
285
  }, triggerCloneProps))
284
286
  });
285
287
  // Initial arrow class - will be updated by calculatePosition
286
- const arrowClass = (0, react_1.useMemo)(() => arrowClasses[tooltipAlignment] || "", [tooltipAlignment]);
288
+ const arrowClass = (0, react_1.useMemo)(() => arrowClasses[normalizedTooltipAlignment] || "", [normalizedTooltipAlignment]);
287
289
  const getOppositeAlignment = main => {
288
290
  // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
289
291
  switch (main) {
@@ -167,21 +167,21 @@
167
167
  "ShortSaturday": "س",
168
168
  "ShortSunday": "ح",
169
169
  "Date range": "نطاق التاريخ",
170
- "Use multiple operators when searching for a specific group. For example, filtering for assets that belong to the Tractor group and the Toronto group displays a list of tractors that belong to the Toronto branch.": "استخدم عوامل تشغيل متعددة عند البحث عن مجموعة معينة. على سبيل المثال، تصفية الأصول التي تنتمي إلى مجموعة الجرارات ومجموعة تورنتو تعرض قائمة الجرارات التي تنتمي إلى فرع تورنتو.",
170
+ "Use multiple Operators when searching for a specific group. For example, filtering for assets that belong to the Tractor group and the Toronto group displays a list of tractors that belong to the Toronto branch.": "استخدم عوامل تشغيل متعددة عند البحث عن مجموعة معينة. على سبيل المثال، تصفية الأصول التي تنتمي إلى مجموعة الجرارات ومجموعة تورنتو تعرض قائمة الجرارات التي تنتمي إلى فرع تورنتو.",
171
171
  "Select columns": "تحديد الأعمدة",
172
172
  "Must be less than the max": "يجب أن يكون أقل من الحد الأقصى",
173
173
  "Must be more than the min": "يجب أن يكون أكثر من الحد الأدنى",
174
174
  "Must be more than {value}": "يجب أن يكون أكثر من {value}",
175
175
  "Must be less than {value}": "يجب أن يكون أقل من {value}",
176
- "Must be in range {min} - {max}": "يجب أن يكون في النطاق {min} - {max}",
176
+ "Must be in the {min} - {max} range": "يجب أن يكون في النطاق {min} - {max}",
177
177
  "The min value must be set": "يجب تعيين الحد الأدنى",
178
178
  "The max value must be set": "يجب تعيين الحد الأقصى",
179
179
  "Range Filter popup": "نافذة تصفية النطاق",
180
180
  "{rangeName} values {values}": "قيم {rangeName} {values}",
181
- "The end date cannot be empty.": "لا يمكن أن يكون تاريخ الانتهاء فارغاً.",
182
- "The start date cannot be empty.": "لا يمكن أن يكون تاريخ البدء فارغاً.",
183
- "The date must be set": "يجب تعيين التاريخ.",
184
- "The time must be set": "يجب تعيين الوقت.",
181
+ "The End date cannot be empty.": "لا يمكن أن يكون تاريخ الانتهاء فارغاً.",
182
+ "The Start date cannot be empty.": "لا يمكن أن يكون تاريخ البدء فارغاً.",
183
+ "The date must be set.": "يجب تعيين التاريخ.",
184
+ "The time must be set.": "يجب تعيين الوقت.",
185
185
  "Selecting...": "جارٍ التحديد...",
186
186
  "Reset column settings": "إعادة تعيين إعدادات الأعمدة",
187
187
  "Filters": "التصفيات",
@@ -215,7 +215,7 @@
215
215
  "Open": "فتح",
216
216
  "Favorite": "المفضلة",
217
217
  "All Filters": "جميع التصفيات",
218
- "Reset All": "إعادة تعيين الكل",
218
+ "Reset all": "إعادة تعيين الكل",
219
219
  "Loading": "جارٍ التحميل",
220
220
  "Select option": "اختيار خيار",
221
221
  "Value": "القيمة",
@@ -176,13 +176,13 @@
176
176
  "ShortFriday": "Pá",
177
177
  "ShortSaturday": "So",
178
178
  "ShortSunday": "Ne",
179
- "Use multiple operators when searching for a specific group. For example, filtering for assets that belong to the Tractor group and the Toronto group displays a list of tractors that belong to the Toronto branch.": "Při hledání konkrétní skupiny použijte více operátorů. Například při filtrování prostředků, které spadají do skupiny Traktory, skupina Toronto zobrazí seznam traktorů, které patří do pobočky v Torontu.",
179
+ "Use multiple Operators when searching for a specific group. For example, filtering for assets that belong to the Tractor group and the Toronto group displays a list of tractors that belong to the Toronto branch.": "Při hledání konkrétní skupiny použijte více operátorů. Například při filtrování prostředků, které spadají do skupiny Traktory, skupina Toronto zobrazí seznam traktorů, které patří do pobočky v Torontu.",
180
180
  "Select columns": "Vyberte sloupce",
181
181
  "Must be less than the max": "Musí být menší než max.",
182
182
  "Must be more than the min": "Musí být větší než min.",
183
183
  "Must be more than {value}": "Musí být větší než {value}",
184
184
  "Must be less than {value}": "Musí být menší než {value}",
185
- "Must be in range {min} - {max}": "Musí být v rozsahu {min}–{max}",
185
+ "Must be in the {min} - {max} range": "Musí být v rozsahu {min}–{max}",
186
186
  "The min value must be set": "Musí být nastavena minimální hodnota",
187
187
  "The max value must be set": "Musí být nastavena maximální hodnota",
188
188
  "Range Filter popup": "Vyskakovací okno Filtr rozmezí",
@@ -190,16 +190,16 @@
190
190
  "Try adjusting your search or filter.": "Zkuste upravit své vyhledávání nebo filtr.",
191
191
  "Change date, {date}": "Změňte datum, {date}",
192
192
  "Date range": "Rozmezí dat",
193
- "The end date cannot be empty.": "Datum konce nemůže být prázdné.",
194
- "The start date cannot be empty.": "‌Datum začátku nemůže být prázdné.",
193
+ "The End date cannot be empty.": "Datum konce nemůže být prázdné.",
194
+ "The Start date cannot be empty.": "‌Datum začátku nemůže být prázdné.",
195
195
  "Pick a date": "Vyberte datum",
196
196
  "This year": "Tento rok",
197
197
  "Last year": "Minulý rok",
198
198
  "This quarter": "Toto čtvrtletí",
199
199
  "View all": "Zobrazit vše",
200
200
  "Expand": "Rozbalit",
201
- "The date must be set": "Je třeba nastavit datum.",
202
- "The time must be set": "Je třeba nastavit čas.",
201
+ "The date must be set.": "Je třeba nastavit datum.",
202
+ "The time must be set.": "Je třeba nastavit čas.",
203
203
  "Reset column settings": "Obnovit nastavení sloupce",
204
204
  "Filters": "Filtry",
205
205
  "Next": "Další",
@@ -223,7 +223,7 @@
223
223
  "Choose your date range": "Vyberte rozsah dat",
224
224
  "Some of the dates you selected aren't available. Please try a different range.": "Některá z vybraných dat nejsou k dispozici. Zkuste prosím jiný rozsah.",
225
225
  "Please select the dates you want to view.": "Vyberte prosím data, která chcete zobrazit.",
226
- "Reset All": "Obnovit vše",
226
+ "Reset all": "Obnovit vše",
227
227
  "Favorite": "Oblíbené",
228
228
  "Summary color": "Barva souhrnu",
229
229
  "Chart data": "Data grafu",
@@ -165,21 +165,21 @@
165
165
  "ShortSaturday": "L",
166
166
  "ShortSunday": "S",
167
167
  "Date range": "Datointerval",
168
- "Use multiple operators when searching for a specific group. For example, filtering for assets that belong to the Tractor group and the Toronto group displays a list of tractors that belong to the Toronto branch.": "Brug flere operatorer, når du søger efter en bestemt gruppe. Hvis du f.eks. filtrerer efter aktiver, der tilhører gruppen Traktor og Toronto-gruppen, vises en liste over traktorer, der tilhører Toronto-grenen.",
168
+ "Use multiple Operators when searching for a specific group. For example, filtering for assets that belong to the Tractor group and the Toronto group displays a list of tractors that belong to the Toronto branch.": "Brug flere operatorer, når du søger efter en bestemt gruppe. Hvis du f.eks. filtrerer efter aktiver, der tilhører gruppen Traktor og Toronto-gruppen, vises en liste over traktorer, der tilhører Toronto-grenen.",
169
169
  "Select columns": "Vælg kolonner",
170
170
  "Must be less than the max": "Skal være mindre end maks.",
171
171
  "Must be more than the min": "Skal være mere end minimum.",
172
172
  "Must be more than {value}": "Skal være mere end {value}",
173
173
  "Must be less than {value}": "Skal være mindre end {value}",
174
- "Must be in range {min} - {max}": "Skal være i området {min} - {max}",
174
+ "Must be in the {min} - {max} range": "Skal være i området {min} - {max}",
175
175
  "The min value must be set": "Den mindste værdi skal indstilles.",
176
176
  "The max value must be set": "Den maksimale værdi skal indstilles",
177
177
  "Range Filter popup": "Pop op-vindue med områdefilter",
178
178
  "{rangeName} values {values}": "{rangeName} værdier {values}",
179
- "The end date cannot be empty.": "Slutdatoen kan ikke være tom.",
180
- "The start date cannot be empty.": "Startdatoen må ikke være tom.",
181
- "The date must be set": "Datoen skal indstilles.",
182
- "The time must be set": "Tiden skal indstilles.",
179
+ "The End date cannot be empty.": "Slutdatoen kan ikke være tom.",
180
+ "The Start date cannot be empty.": "Startdatoen må ikke være tom.",
181
+ "The date must be set.": "Datoen skal indstilles.",
182
+ "The time must be set.": "Tiden skal indstilles.",
183
183
  "Selecting...": "Vælger...",
184
184
  "Reset column settings": "Nulstil kolonneindstillinger",
185
185
  "Filters": "Filtre",
@@ -213,7 +213,7 @@
213
213
  "Open": "Åbn",
214
214
  "Favorite": "Favorit",
215
215
  "All Filters": "Alle filtre",
216
- "Reset All": "Nulstil alle",
216
+ "Reset all": "Nulstil alle",
217
217
  "Loading": "Indlæser",
218
218
  "Select option": "Vælg mulighed",
219
219
  "Previous step": "Forrige trin",