@geotab/zenith 3.12.3 → 3.13.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.
- package/README.md +11 -3
- package/dist/advancedGroupsFilter/advancedGroupsFilterSectionTooltip.js +29 -29
- package/dist/calendar/calendar.js +1 -1
- package/dist/chart/lineChart/getDefaultOptions.js +2 -7
- package/dist/chart/lineChart/useSummary.d.ts +2 -1
- package/dist/columnsSelector/columnsSelector.js +1 -1
- package/dist/commonHelpers/arrowNavigation/arrowNavigationHelper.d.ts +1 -1
- package/dist/commonHelpers/arrowNavigation/arrowNavigationHelper.js +29 -12
- package/dist/commonHelpers/arrowNavigation/components/arrowButton/arrowButton.d.ts +2 -1
- package/dist/commonHelpers/arrowNavigation/components/arrowButton/arrowButton.js +2 -2
- package/dist/commonHelpers/arrowNavigation/hooks/useManualScrolling.js +4 -2
- package/dist/commonHelpers/arrowNavigation/hooks/useScrollWhileHolding.js +12 -3
- package/dist/commonHelpers/arrowNavigation/hooks/useScrolling.js +18 -6
- package/dist/commonStyles/caption/caption.less +3 -5
- package/dist/commonStyles/colors/colors.less +4 -19
- package/dist/commonStyles/columnsList.less +1 -0
- package/dist/commonStyles/common.less +1 -2
- package/dist/commonStyles/ellipsis.less +1 -1
- package/dist/commonStyles/fonts/roboto.less +7 -7
- package/dist/commonStyles/link/link.less +1 -1
- package/dist/commonStyles/notSelectable.less +0 -4
- package/dist/commonStyles/pillStyles/pillContent.less +6 -2
- package/dist/commonStyles/pillStyles/pillStyles.less +1 -1
- package/dist/commonStyles/pillStyles/pillTextContent.less +3 -0
- package/dist/commonStyles/pillStyles/pillTypes.less +10 -0
- package/dist/commonStyles/popupMixin.less +2 -2
- package/dist/commonStyles/rangeFieldMixin.less +3 -6
- package/dist/commonStyles/shadows/shadows.less +3 -3
- package/dist/commonStyles/typography/typography.less +24 -24
- package/dist/dataFeed/dataFeed.js +28 -2
- package/dist/dataGrid/columns/actionsColumn/actionsButton.js +1 -1
- package/dist/dataGrid/withFlexibleColumns/withFlexibleColumns.js +1 -1
- package/dist/dataGrid/withSelectableRows/withSelectableRows.js +1 -1
- package/dist/dateInputInner/dateInputInnerControlBlock.js +57 -57
- package/dist/divider/divider.js +1 -1
- package/dist/dropdownRaw/dropdownRaw.js +1 -1
- package/dist/filtersBar/components/filtersBarPeriodPicker/filtersBarPeriodPicker.js +1 -1
- package/dist/filtersBar/filtersBarSidePanel/filtersBarSidePanel.js +31 -31
- package/dist/filtersBar/filtersContainer/filtersContainer.js +16 -5
- package/dist/header/components/collapsedItemsControl/collapsedItemsControl.js +1 -1
- package/dist/header/header.js +1 -1
- package/dist/header/headerMenu.js +1 -1
- package/dist/index.css +487 -571
- package/dist/list/itemData/itemDataInternal.js +1 -1
- package/dist/list/listItem/listItem.js +1 -1
- package/dist/menu/menu.js +1 -1
- package/dist/nav/navAddMenu/navAddMenu.js +1 -1
- package/dist/nav/navFooter/navFooter.js +4 -4
- package/dist/nav/navFooter/navFooterAction/navFooterAction.js +1 -1
- package/dist/nav/navHeader/navHeader.js +1 -1
- package/dist/nav/navHeader/navHeaderSearch/navHeaderSearch.js +1 -1
- package/dist/nav/navItem/navItem.js +2 -2
- package/dist/rangeRaw/rangeRaw.js +1 -1
- package/dist/rangeRaw/utils/rangeHelper.js +28 -28
- package/dist/sortControl/sortControl.js +1 -1
- package/dist/summary/summary.d.ts +3 -2
- package/dist/summary/summary.js +6 -2
- package/dist/summaryTileBar/summaryTileBar.js +3 -1
- package/dist/table/actions/actionsMenu.js +2 -2
- package/dist/table/flexible/columnsPopup.js +1 -1
- package/dist/table/table.js +5 -7
- package/dist/tabs/tabs.js +16 -5
- package/dist/toolbar/helpers/getWidthWithMargin.js +2 -2
- package/dist/tooltip/helpers/calculateArrowPosition.js +1 -7
- package/dist/tooltip/tooltip.js +7 -5
- package/dist/utils/localization/translations/ar.json +7 -7
- package/dist/utils/localization/translations/cs.json +7 -7
- package/dist/utils/localization/translations/da-DK.json +7 -7
- package/dist/utils/localization/translations/de.json +7 -7
- package/dist/utils/localization/translations/en.json +7 -7
- package/dist/utils/localization/translations/es.json +7 -7
- package/dist/utils/localization/translations/fi-FI.json +7 -7
- package/dist/utils/localization/translations/fr-FR.json +7 -7
- package/dist/utils/localization/translations/fr.json +7 -7
- package/dist/utils/localization/translations/hu-HU.json +7 -7
- package/dist/utils/localization/translations/id.json +7 -7
- package/dist/utils/localization/translations/it.json +7 -7
- package/dist/utils/localization/translations/ja.json +7 -7
- package/dist/utils/localization/translations/ko-KR.json +7 -7
- package/dist/utils/localization/translations/ms.json +7 -7
- package/dist/utils/localization/translations/nb-NO.json +7 -7
- package/dist/utils/localization/translations/nl.json +7 -7
- package/dist/utils/localization/translations/pl.json +7 -7
- package/dist/utils/localization/translations/pt-BR.json +7 -7
- package/dist/utils/localization/translations/pt-PT.json +7 -7
- package/dist/utils/localization/translations/ro-RO.json +7 -7
- package/dist/utils/localization/translations/sk-SK.json +7 -7
- package/dist/utils/localization/translations/sv.json +7 -7
- package/dist/utils/localization/translations/th.json +7 -7
- package/dist/utils/localization/translations/tr.json +7 -7
- package/dist/utils/localization/translations/zh-Hans.json +7 -7
- package/dist/utils/localization/translations/zh-TW.json +7 -7
- package/esm/advancedGroupsFilter/advancedGroupsFilterSectionTooltip.js +29 -29
- package/esm/calendar/calendar.js +1 -1
- package/esm/chart/lineChart/getDefaultOptions.js +2 -7
- package/esm/chart/lineChart/useSummary.d.ts +2 -1
- package/esm/columnsSelector/columnsSelector.js +1 -1
- package/esm/commonHelpers/arrowNavigation/arrowNavigationHelper.d.ts +1 -1
- package/esm/commonHelpers/arrowNavigation/arrowNavigationHelper.js +29 -12
- package/esm/commonHelpers/arrowNavigation/components/arrowButton/arrowButton.d.ts +2 -1
- package/esm/commonHelpers/arrowNavigation/components/arrowButton/arrowButton.js +2 -2
- package/esm/commonHelpers/arrowNavigation/hooks/useManualScrolling.js +4 -2
- package/esm/commonHelpers/arrowNavigation/hooks/useScrollWhileHolding.js +12 -3
- package/esm/commonHelpers/arrowNavigation/hooks/useScrolling.js +18 -6
- package/esm/dataFeed/dataFeed.js +28 -2
- package/esm/dataGrid/columns/actionsColumn/actionsButton.js +1 -1
- package/esm/dataGrid/withFlexibleColumns/withFlexibleColumns.js +1 -1
- package/esm/dataGrid/withSelectableRows/withSelectableRows.js +1 -1
- package/esm/dateInputInner/dateInputInnerControlBlock.js +57 -57
- package/esm/divider/divider.js +1 -1
- package/esm/dropdownRaw/dropdownRaw.js +1 -1
- package/esm/filtersBar/components/filtersBarPeriodPicker/filtersBarPeriodPicker.js +1 -1
- package/esm/filtersBar/filtersBarSidePanel/filtersBarSidePanel.js +31 -31
- package/esm/filtersBar/filtersContainer/filtersContainer.js +16 -5
- package/esm/header/components/collapsedItemsControl/collapsedItemsControl.js +1 -1
- package/esm/header/header.js +1 -1
- package/esm/header/headerMenu.js +1 -1
- package/esm/list/itemData/itemDataInternal.js +1 -1
- package/esm/list/listItem/listItem.js +1 -1
- package/esm/menu/menu.js +1 -1
- package/esm/nav/navAddMenu/navAddMenu.js +1 -1
- package/esm/nav/navFooter/navFooter.js +4 -4
- package/esm/nav/navFooter/navFooterAction/navFooterAction.js +1 -1
- package/esm/nav/navHeader/navHeader.js +1 -1
- package/esm/nav/navHeader/navHeaderSearch/navHeaderSearch.js +1 -1
- package/esm/nav/navItem/navItem.js +2 -2
- package/esm/rangeRaw/rangeRaw.js +1 -1
- package/esm/rangeRaw/utils/rangeHelper.js +28 -28
- package/esm/sortControl/sortControl.js +1 -1
- package/esm/summary/summary.d.ts +3 -2
- package/esm/summary/summary.js +6 -2
- package/esm/summaryTileBar/summaryTileBar.js +3 -1
- package/esm/table/actions/actionsMenu.js +2 -2
- package/esm/table/flexible/columnsPopup.js +1 -1
- package/esm/table/table.js +5 -7
- package/esm/tabs/tabs.js +16 -5
- package/esm/toolbar/helpers/getWidthWithMargin.js +2 -2
- package/esm/tooltip/helpers/calculateArrowPosition.js +1 -7
- package/esm/tooltip/tooltip.js +7 -5
- package/esm/utils/localization/translations/ar.json +7 -7
- package/esm/utils/localization/translations/cs.json +7 -7
- package/esm/utils/localization/translations/da-DK.json +7 -7
- package/esm/utils/localization/translations/de.json +7 -7
- package/esm/utils/localization/translations/en.json +7 -7
- package/esm/utils/localization/translations/es.json +7 -7
- package/esm/utils/localization/translations/fi-FI.json +7 -7
- package/esm/utils/localization/translations/fr-FR.json +7 -7
- package/esm/utils/localization/translations/fr.json +7 -7
- package/esm/utils/localization/translations/hu-HU.json +7 -7
- package/esm/utils/localization/translations/id.json +7 -7
- package/esm/utils/localization/translations/it.json +7 -7
- package/esm/utils/localization/translations/ja.json +7 -7
- package/esm/utils/localization/translations/ko-KR.json +7 -7
- package/esm/utils/localization/translations/ms.json +7 -7
- package/esm/utils/localization/translations/nb-NO.json +7 -7
- package/esm/utils/localization/translations/nl.json +7 -7
- package/esm/utils/localization/translations/pl.json +7 -7
- package/esm/utils/localization/translations/pt-BR.json +7 -7
- package/esm/utils/localization/translations/pt-PT.json +7 -7
- package/esm/utils/localization/translations/ro-RO.json +7 -7
- package/esm/utils/localization/translations/sk-SK.json +7 -7
- package/esm/utils/localization/translations/sv.json +7 -7
- package/esm/utils/localization/translations/th.json +7 -7
- package/esm/utils/localization/translations/tr.json +7 -7
- package/esm/utils/localization/translations/zh-Hans.json +7 -7
- package/esm/utils/localization/translations/zh-TW.json +7 -7
- package/package.json +10 -1
|
@@ -3,33 +3,33 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
3
3
|
import { Tooltip } from "../tooltip/tooltip";
|
|
4
4
|
import { useLanguage } from "../utils/localization/useLanguage";
|
|
5
5
|
import { classNames } from "../commonHelpers/classNames/classNames";
|
|
6
|
-
injectString("cs", "Use multiple
|
|
7
|
-
injectString("da-DK", "Use multiple
|
|
8
|
-
injectString("de", "Use multiple
|
|
9
|
-
injectString("en", "Use multiple
|
|
10
|
-
injectString("es", "Use multiple
|
|
11
|
-
injectString("fi-FI", "Use multiple
|
|
12
|
-
injectString("fr", "Use multiple
|
|
13
|
-
injectString("fr-FR", "Use multiple
|
|
14
|
-
injectString("hu-HU", "Use multiple
|
|
15
|
-
injectString("id", "Use multiple
|
|
16
|
-
injectString("it", "Use multiple
|
|
17
|
-
injectString("ja", "Use multiple
|
|
18
|
-
injectString("ko-KR", "Use multiple
|
|
19
|
-
injectString("ms", "Use multiple
|
|
20
|
-
injectString("nb-NO", "Use multiple
|
|
21
|
-
injectString("nl", "Use multiple
|
|
22
|
-
injectString("pl", "Use multiple
|
|
23
|
-
injectString("pt-BR", "Use multiple
|
|
24
|
-
injectString("pt-PT", "Use multiple
|
|
25
|
-
injectString("sk-SK", "Use multiple
|
|
26
|
-
injectString("sv", "Use multiple
|
|
27
|
-
injectString("th", "Use multiple
|
|
28
|
-
injectString("tr", "Use multiple
|
|
29
|
-
injectString("zh-Hans", "Use multiple
|
|
30
|
-
injectString("zh-TW", "Use multiple
|
|
31
|
-
injectString("ro-RO", "Use multiple
|
|
32
|
-
injectString("ar", "Use multiple
|
|
6
|
+
injectString("cs", "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\u0159i hled\xE1n\xED konkr\xE9tn\xED skupiny pou\u017Eijte v\xEDce oper\xE1tor\u016F. Nap\u0159\xEDklad p\u0159i filtrov\xE1n\xED prost\u0159edk\u016F, kter\xE9 spadaj\xED do skupiny Traktory, skupina Toronto zobraz\xED seznam traktor\u016F, kter\xE9 pat\u0159\xED do pobo\u010Dky v Torontu.");
|
|
7
|
+
injectString("da-DK", "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\xE5r du s\xF8ger efter en bestemt gruppe. Hvis du f.eks. filtrerer efter aktiver, der tilh\xF8rer gruppen Traktor og Toronto-gruppen, vises en liste over traktorer, der tilh\xF8rer Toronto-grenen.");
|
|
8
|
+
injectString("de", "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.", "Verwenden Sie mehrere Operatoren, wenn Sie nach einer bestimmten Gruppe suchen. Benutzen Sie beispielsweise bei der Suche nach Assets die Gruppenfilter \u201ETraktor\u201C und \u201EToronto\u201C, wird eine Liste mit allen Traktoren f\xFCr den Standort Toronto angezeigt.");
|
|
9
|
+
injectString("en", "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.", "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.");
|
|
10
|
+
injectString("es", "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.", "Utilice varios operadores cuando busque un grupo espec\xEDfico. Por ejemplo, al fltrar por activos que pertenecen al grupo Tractor y al grupo Toronto se muestra una lista de tractores que pertenecen a la sucursal de Toronto.");
|
|
11
|
+
injectString("fi-FI", "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.", "K\xE4yt\xE4 useita operaattoreita, kun etsit tietty\xE4 ryhm\xE4\xE4. Esimerkiksi traktoriryhm\xE4\xE4n ja Toronto-ryhm\xE4\xE4n kuuluvien varojen suodattaminen n\xE4ytt\xE4\xE4 luettelon traktoreista, jotka kuuluvat Toronto-sivuliikkeeseen.");
|
|
12
|
+
injectString("fr", "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.", "Utilisez plusieurs op\xE9rateurs lors de la recherche d\u2019un groupe sp\xE9cifique. Par exemple, le filtrage des actifs appartenant au groupe Tracteur et au groupe Toronto affiche une liste des tracteurs appartenant \xE0 la succursale de Toronto.");
|
|
13
|
+
injectString("fr-FR", "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.", "Utilisez plusieurs op\xE9rateurs lors de la recherche d\u2019un groupe sp\xE9cifique. Par exemple, filtrer des actifs appartenant au groupe Tracteurs et au groupe Toronto affiche une liste des tracteurs appartenant \xE0 la branche de Toronto.");
|
|
14
|
+
injectString("hu-HU", "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.", "Haszn\xE1lj t\xF6bb oper\xE1tort, amikor egy adott csoportot keresel. P\xE9ld\xE1ul, ha a Traktor \xE9s a Toront\xF3i csoporthoz tartoz\xF3 eszk\xF6z\xF6kre sz\u0171rsz, akkor a Toront\xF3i fi\xF3khoz tartoz\xF3 traktorok list\xE1ja jelenik meg.");
|
|
15
|
+
injectString("id", "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.", "Gunakan beberapa Operator saat mencari grup tertentu. Contohnya, memfilter aset yang termasuk dalam grup Traktor dan grup Toronto akan menampilkan daftar traktor yang termasuk dalam cabang Toronto.");
|
|
16
|
+
injectString("it", "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.", "Utilizzare pi\xF9 operatori durante la ricerca di un gruppo specifico. Ad esempio, filtrando per asset appartenenti al gruppo Trattore e Toronto, viene visualizzato un elenco di trattori appartenenti alla filiale di Toronto.");
|
|
17
|
+
injectString("ja", "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.", "\u7279\u5B9A\u306E\u30B0\u30EB\u30FC\u30D7\u3092\u691C\u7D22\u3059\u308B\u3068\u304D\u306F\u3001\u8907\u6570\u306E\u6F14\u7B97\u5B50\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002\u4F8B\u3048\u3070\u3001Tractor \u30B0\u30EB\u30FC\u30D7\u3068 Toronto \u30B0\u30EB\u30FC\u30D7\u306B\u5C5E\u3059\u308B\u30A2\u30BB\u30C3\u30C8\u3092\u30D5\u30A3\u30EB\u30BF\u30EA\u30F3\u30B0\u3059\u308B\u3068\u3001Toronto \u652F\u5E97\u306B\u5C5E\u3059\u308B\u30C8\u30E9\u30AF\u30BF\u30FC\u306E\u30EA\u30B9\u30C8\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002");
|
|
18
|
+
injectString("ko-KR", "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.", "\uD2B9\uC815 \uADF8\uB8F9\uC744 \uAC80\uC0C9\uD560 \uB54C\uB294 \uC5EC\uB7EC \uC5F0\uC0B0\uC790\uB97C \uC0AC\uC6A9\uD569\uB2C8\uB2E4. \uC608\uB97C \uB4E4\uC5B4, \uD2B8\uB799\uD130 \uADF8\uB8F9\uACFC \uD1A0\uB860\uD1A0 \uADF8\uB8F9\uC5D0 \uC18D\uD55C \uC790\uC0B0\uC744 \uD544\uD130\uB9C1\uD558\uBA74 \uD1A0\uB860\uD1A0 \uC9C0\uC810\uC5D0 \uC18D\uD55C \uD2B8\uB799\uD130 \uBAA9\uB85D\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.");
|
|
19
|
+
injectString("ms", "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.", "Gunakan berbilang Operator apabila mencari kumpulan khusus. Contohnya, penyaringan untuk aset yang dimiliki kumpulan Traktor dan kumpulan Toronto memaparkan senarai traktor yang dimiliki oleh cawangan Toronto.");
|
|
20
|
+
injectString("nb-NO", "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.", "Bruk flere operat\xF8rer n\xE5r du s\xF8ker etter en bestemt gruppe. Hvis du for eksempel filtrerer for eiendeler som tilh\xF8rer traktorgruppen og Toronto-gruppen, vises en liste over traktorer som tilh\xF8rer Toronto-grenen.");
|
|
21
|
+
injectString("nl", "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.", "Gebruik meerdere opties bij het zoeken naar een specifieke groep. Als u bijvoorbeeld filtert op assets die behoren tot de tractorgroep en de Toronto-groep, wordt een lijst weergegeven met tractoren die tot de Toronto-tak behoren.");
|
|
22
|
+
injectString("pl", "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.", "U\u017Cyj wielu operator\xF3w podczas wyszukiwania okre\u015Blonej grupy. Na przyk\u0142ad filtrowanie zasob\xF3w nale\u017C\u0105cych do grupy Ci\u0105gnik i grupy Toronto wy\u015Bwietla list\u0119 ci\u0105gnik\xF3w nale\u017C\u0105cych do oddzia\u0142u w Toronto.");
|
|
23
|
+
injectString("pt-BR", "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.", "Use v\xE1rios operadores para pesquisar um grupo espec\xEDfico. Por exemplo, a filtragem por ativos que pertencem ao grupo Tratores e ao grupo Toronto exibe uma lista de tratores que pertencem \xE0 divis\xE3o de Toronto.");
|
|
24
|
+
injectString("pt-PT", "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.", "Use m\xFAltiplos operadores ao pesquisar por um grupo espec\xEDfico. Por exemplo, filtrar por ativos que pertencem ao grupo Trator e ao grupo Toronto exibe uma lista de tratores que pertencem \xE0 filial de Toronto.");
|
|
25
|
+
injectString("sk-SK", "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.", "Pri h\u013Eadan\xED konkr\xE9tnej skupiny pou\u017Ei viacero oper\xE1torov. Napr\xEDklad filtrovanie akt\xEDv, ktor\xE9 patria do skupiny Traktory a skupiny Toronto, zobraz\xED zoznam traktorov, ktor\xE9 patria do pobo\u010Dky Toronto.");
|
|
26
|
+
injectString("sv", "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.", "Anv\xE4nd flera operat\xF6rer n\xE4r du s\xF6ker efter en viss grupp. Om du till exempel filtrerar efter tillg\xE5ngar som tillh\xF6r gruppen \"Dragbilar\" och gruppen \"Toronto\" visas en lista med dragbilar som tillh\xF6r lokalkontoret i Toronto.");
|
|
27
|
+
injectString("th", "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.", "\u0E43\u0E0A\u0E49\u0E15\u0E31\u0E27\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23\u0E2B\u0E25\u0E32\u0E22\u0E15\u0E31\u0E27\u0E40\u0E21\u0E37\u0E48\u0E2D\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E01\u0E25\u0E38\u0E48\u0E21\u0E40\u0E09\u0E1E\u0E32\u0E30 \u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E40\u0E0A\u0E48\u0E19 \u0E01\u0E32\u0E23\u0E01\u0E23\u0E2D\u0E07\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E2A\u0E34\u0E19\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E4C\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E01\u0E25\u0E38\u0E48\u0E21\u0E23\u0E16\u0E41\u0E17\u0E23\u0E01\u0E40\u0E15\u0E2D\u0E23\u0E4C\u0E41\u0E25\u0E30\u0E01\u0E25\u0E38\u0E48\u0E21\u0E42\u0E17\u0E23\u0E2D\u0E19\u0E42\u0E15\u0E08\u0E30\u0E41\u0E2A\u0E14\u0E07\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E23\u0E16\u0E41\u0E17\u0E23\u0E01\u0E40\u0E15\u0E2D\u0E23\u0E4C\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E2A\u0E32\u0E02\u0E32\u0E42\u0E17\u0E23\u0E2D\u0E19\u0E42\u0E15");
|
|
28
|
+
injectString("tr", "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.", "Belirli bir grubu ararken birden \xE7ok operat\xF6r kullan\u0131n. \xD6rne\u011Fin, Trakt\xF6r grubuna ve Toronto grubuna ait varl\u0131klar i\xE7in filtreleme yap\u0131l\u0131rken Toronto \u015Fubesine ait trakt\xF6rlerin listesi g\xF6r\xFCnt\xFClenir.");
|
|
29
|
+
injectString("zh-Hans", "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.", "\u641C\u7D22\u7279\u5B9A\u7EC4\u65F6\uFF0C\u53EF\u4EE5\u4F7F\u7528\u591A\u4E2A\u8FD0\u7B97\u7B26\u3002\u4F8B\u5982\uFF0C\u7B5B\u9009\u5C5E\u4E8E\u201C\u7275\u5F15\u8F66\u201D\u7EC4\u548C\u201C\u591A\u4F26\u591A\u201D\u7EC4\u7684\u8D44\u4EA7\uFF0C\u5C31\u4F1A\u663E\u793A\u5C5E\u4E8E\u591A\u4F26\u591A\u5206\u652F\u7684\u7275\u5F15\u8F66\u5217\u8868\u3002");
|
|
30
|
+
injectString("zh-TW", "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.", "\u641C\u5C0B\u7279\u5B9A\u7FA4\u7D44\u6642\uFF0C\u8ACB\u4F7F\u7528\u591A\u500B\u904B\u7B97\u5B50\u3002\u4F8B\u5982\uFF0C\u82E5\u7BE9\u9078\u5C6C\u65BC\u727D\u5F15\u6A5F\u7FA4\u7D44\u548C\u591A\u502B\u591A\u7FA4\u7D44\u7684\u8CC7\u7522\uFF0C\u5247\u6703\u986F\u793A\u5C6C\u65BC\u591A\u502B\u591A\u5206\u516C\u53F8\u7684\u727D\u5F15\u6A5F\u6E05\u55AE\u3002");
|
|
31
|
+
injectString("ro-RO", "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.", "Utiliza\u021Bi mai mul\u021Bi operatori c\xE2nd c\u0103uta\u021Bi un anumit grup. De exemplu, prin filtrarea activelor care apar\u021Bin grupului Tractor \u0219i grupului Toronto, se afi\u0219eaz\u0103 o list\u0103 de tractoare care apar\u021Bin filialei Toronto.");
|
|
32
|
+
injectString("ar", "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.", "\u0627\u0633\u062A\u062E\u062F\u0645 \u0639\u0648\u0627\u0645\u0644 \u062A\u0634\u063A\u064A\u0644 \u0645\u062A\u0639\u062F\u062F\u0629 \u0639\u0646\u062F \u0627\u0644\u0628\u062D\u062B \u0639\u0646 \u0645\u062C\u0645\u0648\u0639\u0629 \u0645\u0639\u064A\u0646\u0629. \u0639\u0644\u0649 \u0633\u0628\u064A\u0644 \u0627\u0644\u0645\u062B\u0627\u0644\u060C \u062A\u0635\u0641\u064A\u0629 \u0627\u0644\u0623\u0635\u0648\u0644 \u0627\u0644\u062A\u064A \u062A\u0646\u062A\u0645\u064A \u0625\u0644\u0649 \u0645\u062C\u0645\u0648\u0639\u0629 \u0627\u0644\u062C\u0631\u0627\u0631\u0627\u062A \u0648\u0645\u062C\u0645\u0648\u0639\u0629 \u062A\u0648\u0631\u0646\u062A\u0648 \u062A\u0639\u0631\u0636 \u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u062C\u0631\u0627\u0631\u0627\u062A \u0627\u0644\u062A\u064A \u062A\u0646\u062A\u0645\u064A \u0625\u0644\u0649 \u0641\u0631\u0639 \u062A\u0648\u0631\u0646\u062A\u0648.");
|
|
33
33
|
export const AdvancedGroupsFilterSectionTooltip = ({
|
|
34
34
|
className = "",
|
|
35
35
|
alignment = "top",
|
|
@@ -38,11 +38,11 @@ export const AdvancedGroupsFilterSectionTooltip = ({
|
|
|
38
38
|
const {
|
|
39
39
|
translate
|
|
40
40
|
} = useLanguage();
|
|
41
|
-
const defaultTooltipText = translate("Use multiple
|
|
41
|
+
const defaultTooltipText = translate("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.");
|
|
42
42
|
return _jsx(Tooltip, {
|
|
43
43
|
className: classNames(["zen-advanced-groups-filter-section-tooltip__item", className || ""]),
|
|
44
44
|
alignment: alignment,
|
|
45
45
|
children: text || defaultTooltipText
|
|
46
46
|
});
|
|
47
47
|
};
|
|
48
|
-
export const TRANSLATIONS = ["Use multiple
|
|
48
|
+
export const TRANSLATIONS = ["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."];
|
package/esm/calendar/calendar.js
CHANGED
|
@@ -1122,7 +1122,7 @@ export const Calendar = ({
|
|
|
1122
1122
|
title: translate("Select year"),
|
|
1123
1123
|
onSelect: year => changeView(setYear(viewDate, year)),
|
|
1124
1124
|
isMobileView: isMobileView,
|
|
1125
|
-
alignment: onTodayButtonClick ? "bottom" : "bottom-
|
|
1125
|
+
alignment: onTodayButtonClick ? "bottom" : "bottom-end"
|
|
1126
1126
|
})]
|
|
1127
1127
|
}), onTodayButtonClick ? _jsx(Button, {
|
|
1128
1128
|
type: ButtonType.Tertiary,
|
|
@@ -46,11 +46,6 @@ const getFormatFromDateRange = (minDate, maxDate, ticks) => {
|
|
|
46
46
|
};
|
|
47
47
|
export const getDefaultOptions = (yAxis, xAxis, isTimedData, ticks, isDark, translate, isRtl = false) => {
|
|
48
48
|
const time = getFormatFromDateRange(xAxis.minDate, xAxis.maxDate, ticks);
|
|
49
|
-
// Empty data yields inverted sentinel bounds (min > max); pinning those would make chart.js
|
|
50
|
-
// span ~8.6e15 ms and crash. Only pin a valid range, else let it auto-scale.
|
|
51
|
-
const xMin = Date.parse(xAxis.minDate);
|
|
52
|
-
const xMax = Date.parse(xAxis.maxDate);
|
|
53
|
-
const hasValidTimeRange = isTimedData && Number.isFinite(xMin) && Number.isFinite(xMax) && xMin <= xMax;
|
|
54
49
|
const textColor = isDark ? "#C0CCD8" : "#4E677E";
|
|
55
50
|
const primaryYPosition = isRtl ? "right" : "left";
|
|
56
51
|
const secondaryYPosition = isRtl ? "left" : "right";
|
|
@@ -72,8 +67,8 @@ export const getDefaultOptions = (yAxis, xAxis, isTimedData, ticks, isDark, tran
|
|
|
72
67
|
}
|
|
73
68
|
}
|
|
74
69
|
: undefined,
|
|
75
|
-
min:
|
|
76
|
-
max:
|
|
70
|
+
min: isTimedData ? Date.parse(xAxis.minDate) : undefined,
|
|
71
|
+
max: isTimedData ? Date.parse(xAxis.maxDate) : undefined,
|
|
77
72
|
ticks: isTimedData
|
|
78
73
|
? {
|
|
79
74
|
autoSkip: false,
|
|
@@ -5,8 +5,9 @@ import { IPieChartData } from "../pieChart/interfaces";
|
|
|
5
5
|
import { IChartSummary } from "../interfaces";
|
|
6
6
|
export declare const useSummary: (chartSummary: IChartSummary | false | undefined, data: ILineChartData | IBarChartData | IPieChartData) => {
|
|
7
7
|
title: string | undefined;
|
|
8
|
-
value: string | number
|
|
8
|
+
value: string | number | bigint | true | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | null | undefined>;
|
|
9
9
|
color: string | undefined;
|
|
10
|
+
prefix?: import("react").ReactNode;
|
|
10
11
|
unit?: string | undefined;
|
|
11
12
|
tooltip?: import("react").ReactNode;
|
|
12
13
|
more?: import("react").ReactNode;
|
|
@@ -96,7 +96,7 @@ export const ColumnsSelector = ({
|
|
|
96
96
|
return _jsxs(Popup, {
|
|
97
97
|
className: "zen-columns-filter",
|
|
98
98
|
trigger: triggerButton,
|
|
99
|
-
alignment: "bottom-
|
|
99
|
+
alignment: "bottom-end",
|
|
100
100
|
ariaLabel: translate("Column Settings"),
|
|
101
101
|
children: [resetButton, _jsx(ColumnsTab, {
|
|
102
102
|
id: id,
|
|
@@ -5,7 +5,7 @@ interface IScrollOptions {
|
|
|
5
5
|
top: number;
|
|
6
6
|
left: number;
|
|
7
7
|
}
|
|
8
|
-
export declare const getScrollOptions: (action: string, element: HTMLElement | null) => IScrollOptions;
|
|
8
|
+
export declare const getScrollOptions: (action: string, element: HTMLElement | null, isRTL?: boolean) => IScrollOptions;
|
|
9
9
|
export declare const extractButtonAction: (event: React.MouseEvent<HTMLElement>) => TArrowsNavValue | null;
|
|
10
10
|
export declare const scrollElement: (element: HTMLElement, options: IScrollOptions) => void;
|
|
11
11
|
export {};
|
|
@@ -11,21 +11,38 @@ export const clearTimerTimeout = (timerId) => {
|
|
|
11
11
|
(_a = zen.clearTimeout) === null || _a === void 0 ? void 0 : _a.call(zen, timerId);
|
|
12
12
|
}
|
|
13
13
|
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const
|
|
17
|
-
let scrollLeft = (element === null || element === void 0 ? void 0 : element.scrollLeft) || 0;
|
|
14
|
+
// In RTL, scrollLeft is 0 at the right edge and goes negative toward the left edge.
|
|
15
|
+
const getRTLScrollLeft = (action, scrollLeft, step, element) => {
|
|
16
|
+
const minScrollLeft = element.clientWidth - element.scrollWidth;
|
|
18
17
|
if (action === "left") {
|
|
19
|
-
|
|
18
|
+
const clamped = scrollLeft - step;
|
|
19
|
+
return clamped < minScrollLeft ? minScrollLeft : clamped;
|
|
20
|
+
}
|
|
21
|
+
if (action === "right") {
|
|
22
|
+
const clamped = scrollLeft + step;
|
|
23
|
+
return clamped > 0 ? 0 : clamped;
|
|
20
24
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
25
|
+
return scrollLeft;
|
|
26
|
+
};
|
|
27
|
+
const getLTRScrollLeft = (action, scrollLeft, step, element) => {
|
|
28
|
+
if (action === "left") {
|
|
29
|
+
return scrollLeft - step > 0 ? scrollLeft - step : 0;
|
|
24
30
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
31
|
+
if (action === "right") {
|
|
32
|
+
return scrollLeft + step > element.scrollWidth ? element.scrollWidth : scrollLeft + step;
|
|
33
|
+
}
|
|
34
|
+
return scrollLeft;
|
|
35
|
+
};
|
|
36
|
+
export const getScrollOptions = (action, element, isRTL = false) => {
|
|
37
|
+
const step = (element === null || element === void 0 ? void 0 : element.offsetWidth) ? element.offsetWidth : 100;
|
|
38
|
+
const scrollTop = (element === null || element === void 0 ? void 0 : element.scrollTop) || 0;
|
|
39
|
+
const scrollLeft = (element === null || element === void 0 ? void 0 : element.scrollLeft) || 0;
|
|
40
|
+
const newScrollLeft = element
|
|
41
|
+
? isRTL
|
|
42
|
+
? getRTLScrollLeft(action, scrollLeft, step, element)
|
|
43
|
+
: getLTRScrollLeft(action, scrollLeft, step, element)
|
|
44
|
+
: scrollLeft;
|
|
45
|
+
return { top: scrollTop, left: newScrollLeft };
|
|
29
46
|
};
|
|
30
47
|
export const extractButtonAction = (event) => {
|
|
31
48
|
const action = event.currentTarget.dataset.action;
|
|
@@ -3,6 +3,7 @@ import { TArrowsNavValue } from "../../arrowNavigationHelper";
|
|
|
3
3
|
import "./arrowButton.less";
|
|
4
4
|
export interface IArrowNavButton {
|
|
5
5
|
value: TArrowsNavValue;
|
|
6
|
+
action?: TArrowsNavValue;
|
|
6
7
|
isHidden: boolean;
|
|
7
8
|
disabled: boolean;
|
|
8
9
|
arrowButtonHandler: (e: React.MouseEvent<HTMLElement>) => void;
|
|
@@ -10,4 +11,4 @@ export interface IArrowNavButton {
|
|
|
10
11
|
onMouseUp: (e: React.MouseEvent<HTMLElement>) => void;
|
|
11
12
|
className?: string;
|
|
12
13
|
}
|
|
13
|
-
export declare const ArrowNavButton: ({ value, isHidden, disabled, className, arrowButtonHandler, onMouseDown, onMouseUp }: IArrowNavButton) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export declare const ArrowNavButton: ({ value, action, isHidden, disabled, className, arrowButtonHandler, onMouseDown, onMouseUp }: IArrowNavButton) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -6,10 +6,10 @@ import { IconChevronRight } from "../../../../icons/iconChevronRight";
|
|
|
6
6
|
import { useDrive } from "../../../../utils/theme/useDrive";
|
|
7
7
|
import { useDirectionalIcon } from "../../../../utils/localization/useDirectionalIcon";
|
|
8
8
|
import { driveIconSize } from "../../../../svgIcon/svgIconSize";
|
|
9
|
-
export const ArrowNavButton = ({ value, isHidden, disabled, className, arrowButtonHandler, onMouseDown, onMouseUp }) => {
|
|
9
|
+
export const ArrowNavButton = ({ value, action, isHidden, disabled, className, arrowButtonHandler, onMouseDown, onMouseUp }) => {
|
|
10
10
|
const isDrive = useDrive();
|
|
11
11
|
const iconSize = isDrive ? driveIconSize("large") : "large";
|
|
12
12
|
const LeftIcon = useDirectionalIcon(IconChevronLeft, IconChevronRight);
|
|
13
13
|
const RightIcon = useDirectionalIcon(IconChevronRight, IconChevronLeft);
|
|
14
|
-
return (_jsx(Button, { type: "tertiary-black", className: classNames(["zen-arrow-nav-button", isHidden ? "zen-arrow-nav-button--invisible" : "", className !== null && className !== void 0 ? className : ""]), "aria-label": value, disabled: disabled, onClick: arrowButtonHandler, "data-action": value, onMouseDown: onMouseDown, onMouseUp: onMouseUp, children: value === "left" ? (_jsx(LeftIcon, { size: iconSize, className: "zen-arrow-nav-button__icon" })) : (_jsx(RightIcon, { size: iconSize, className: "zen-arrow-nav-button__icon" })) }));
|
|
14
|
+
return (_jsx(Button, { type: "tertiary-black", className: classNames(["zen-arrow-nav-button", isHidden ? "zen-arrow-nav-button--invisible" : "", className !== null && className !== void 0 ? className : ""]), "aria-label": value, disabled: disabled, onClick: arrowButtonHandler, "data-action": action !== null && action !== void 0 ? action : value, onMouseDown: onMouseDown, onMouseUp: onMouseUp, children: value === "left" ? (_jsx(LeftIcon, { size: iconSize, className: "zen-arrow-nav-button__icon" })) : (_jsx(RightIcon, { size: iconSize, className: "zen-arrow-nav-button__icon" })) }));
|
|
15
15
|
};
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import { useCallback } from "react";
|
|
2
2
|
import { extractButtonAction, getScrollOptions, scrollElement } from "../arrowNavigationHelper";
|
|
3
|
+
import { useIsRTL } from "../../../utils/localization/useIsRTL";
|
|
3
4
|
export const useManualScrolling = ({ elementRef }) => {
|
|
5
|
+
const isRTL = useIsRTL();
|
|
4
6
|
const scroll = useCallback((event) => {
|
|
5
7
|
if (!elementRef.current) {
|
|
6
8
|
return;
|
|
7
9
|
}
|
|
8
10
|
const actionName = extractButtonAction(event);
|
|
9
11
|
if (actionName) {
|
|
10
|
-
const scrollOptions = getScrollOptions(actionName, elementRef.current);
|
|
12
|
+
const scrollOptions = getScrollOptions(actionName, elementRef.current, isRTL);
|
|
11
13
|
scrollElement(elementRef.current, scrollOptions);
|
|
12
14
|
}
|
|
13
|
-
}, [elementRef]);
|
|
15
|
+
}, [elementRef, isRTL]);
|
|
14
16
|
return { scroll };
|
|
15
17
|
};
|
|
@@ -1,18 +1,27 @@
|
|
|
1
1
|
import { useEffect } from "react";
|
|
2
2
|
import { getScrollOptions, scrollElement, clearTimerInterval } from "../arrowNavigationHelper";
|
|
3
3
|
import { zen } from "../../../utils/zen";
|
|
4
|
+
import { useIsRTL } from "../../../utils/localization/useIsRTL";
|
|
4
5
|
export const useScrollWhileHolding = ({ action, container, intervalTimer }) => {
|
|
6
|
+
const isRTL = useIsRTL();
|
|
5
7
|
useEffect(() => {
|
|
6
8
|
var _a;
|
|
7
9
|
if (!container || !action) {
|
|
8
10
|
return;
|
|
9
11
|
}
|
|
10
12
|
intervalTimer.current = (_a = zen.setInterval) === null || _a === void 0 ? void 0 : _a.call(zen, () => {
|
|
11
|
-
const { left, top } = getScrollOptions(action, container);
|
|
13
|
+
const { left, top } = getScrollOptions(action, container, isRTL);
|
|
12
14
|
scrollElement(container, { left, top });
|
|
13
|
-
if (
|
|
15
|
+
if (isRTL) {
|
|
16
|
+
const atRightEdge = left >= -1 && action === "right";
|
|
17
|
+
const atLeftEdge = left <= container.clientWidth - container.scrollWidth + 1 && action === "left";
|
|
18
|
+
if (atRightEdge || atLeftEdge) {
|
|
19
|
+
clearTimerInterval(intervalTimer.current);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
else if ((left === container.scrollWidth && action === "right") || (left === 0 && action === "left")) {
|
|
14
23
|
clearTimerInterval(intervalTimer.current);
|
|
15
24
|
}
|
|
16
25
|
}, 100);
|
|
17
|
-
}, [action, container, intervalTimer]);
|
|
26
|
+
}, [action, container, intervalTimer, isRTL]);
|
|
18
27
|
};
|
|
@@ -1,14 +1,26 @@
|
|
|
1
1
|
import { useState } from "react";
|
|
2
|
+
import { useIsRTL } from "../../../utils/localization/useIsRTL";
|
|
2
3
|
const offset = 3;
|
|
3
4
|
export const useScrolling = () => {
|
|
4
|
-
const
|
|
5
|
+
const isRTL = useIsRTL();
|
|
6
|
+
// In RTL, we start at the right edge (scrollLeft = 0): left is enabled, right is disabled.
|
|
7
|
+
const [state, setScrollState] = useState({ scrolledLeft: !isRTL, scrolledRight: isRTL });
|
|
5
8
|
const onScroll = (e) => {
|
|
6
9
|
const { scrollWidth, scrollLeft, clientWidth } = e.currentTarget;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
if (isRTL) {
|
|
11
|
+
// scrollLeft is 0 at right edge, negative at left edge.
|
|
12
|
+
setScrollState({
|
|
13
|
+
scrolledLeft: scrollLeft <= -(scrollWidth - clientWidth) + offset,
|
|
14
|
+
scrolledRight: scrollLeft >= -offset
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
const space = scrollWidth - scrollLeft;
|
|
19
|
+
setScrollState({
|
|
20
|
+
scrolledLeft: scrollLeft === 0,
|
|
21
|
+
scrolledRight: space >= clientWidth - offset && space <= clientWidth + offset
|
|
22
|
+
});
|
|
23
|
+
}
|
|
12
24
|
};
|
|
13
25
|
return { onScroll, state };
|
|
14
26
|
};
|
package/esm/dataFeed/dataFeed.js
CHANGED
|
@@ -28,8 +28,13 @@ const DataFeedInner = ({ entities, columns, feedWrappers, className, expanded, o
|
|
|
28
28
|
const { collapsedColumnsQty = 0, onFeedEnd, visibleColumns } = options;
|
|
29
29
|
const feedRef = useRef(null);
|
|
30
30
|
const lazyRenderTimerRef = useRef(0);
|
|
31
|
+
const feedEndFiredRef = useRef(false);
|
|
32
|
+
const prevEntitiesRef = useRef(entities);
|
|
31
33
|
useEffect(() => {
|
|
32
34
|
setPages(1);
|
|
35
|
+
// Re-arm the once-per-approach guard on a paginated reload (activePage change); in-place
|
|
36
|
+
// entity-list changes re-arm via the entities effect below.
|
|
37
|
+
feedEndFiredRef.current = false;
|
|
33
38
|
if (feedRef.current) {
|
|
34
39
|
feedRef.current.scrollTop = 0;
|
|
35
40
|
}
|
|
@@ -77,11 +82,21 @@ const DataFeedInner = ({ entities, columns, feedWrappers, className, expanded, o
|
|
|
77
82
|
newVisibleRows.forEach(row => newRowsSet.add(row));
|
|
78
83
|
setVisibleRows(newRowsSet);
|
|
79
84
|
}
|
|
80
|
-
|
|
85
|
+
const closeToTheEnd = checkCloseToTheEnd(feedRef.current);
|
|
86
|
+
if (visibleRows.size && closeToTheEnd) {
|
|
81
87
|
if (entities.length > data.length) {
|
|
82
88
|
setPages(pages + 1);
|
|
83
89
|
}
|
|
84
|
-
onFeedEnd
|
|
90
|
+
// Fire onFeedEnd once per approach to the bottom (re-armed below once scrolled out),
|
|
91
|
+
// matching DataGrid.onScrollEnd. Without the guard the consumer is called on every
|
|
92
|
+
// animation frame near the bottom and has to debounce it itself.
|
|
93
|
+
if (!feedEndFiredRef.current) {
|
|
94
|
+
feedEndFiredRef.current = true;
|
|
95
|
+
onFeedEnd && onFeedEnd();
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
else if (!closeToTheEnd) {
|
|
99
|
+
feedEndFiredRef.current = false;
|
|
85
100
|
}
|
|
86
101
|
});
|
|
87
102
|
}, [itemsMap, visibleRows, setVisibleRows, onFeedEnd, pages, setPages, entities, data.length]);
|
|
@@ -90,6 +105,17 @@ const DataFeedInner = ({ entities, columns, feedWrappers, className, expanded, o
|
|
|
90
105
|
(_a = zen.cancelAnimationFrame) === null || _a === void 0 ? void 0 : _a.call(zen, lazyRenderTimerRef.current);
|
|
91
106
|
lazyRenderTimerRef.current = scheduleVisibleChanges();
|
|
92
107
|
}, [scheduleVisibleChanges]);
|
|
108
|
+
useEffect(() => {
|
|
109
|
+
// An entity-list change (in-place filter/sort swap, or appended rows) re-arms the once-per-approach
|
|
110
|
+
// guard and re-checks fit, so a short result set still requests the next page and a stale guard
|
|
111
|
+
// can't suppress the next fire. Keyed on `entities`, not the internal `data` slice, so progressive
|
|
112
|
+
// `setPages` reveals don't reset the guard and cause repeat fires.
|
|
113
|
+
if (prevEntitiesRef.current !== entities) {
|
|
114
|
+
prevEntitiesRef.current = entities;
|
|
115
|
+
feedEndFiredRef.current = false;
|
|
116
|
+
scheduleLazyRender();
|
|
117
|
+
}
|
|
118
|
+
}, [entities, scheduleLazyRender]);
|
|
93
119
|
const handleScroll = useCallback(() => {
|
|
94
120
|
scheduleLazyRender();
|
|
95
121
|
}, [scheduleLazyRender]);
|
|
@@ -34,5 +34,5 @@ export function ActionsButton({ action, entity }) {
|
|
|
34
34
|
return (_jsxs(_Fragment, { children: [_jsx(ActionColumnCell, { ref: buttonRef, tag: action.createLink !== undefined ? "a" : "button", hash: action.id, title: action.createTitle(entity), href: action.createLink !== undefined ? action.createLink(entity) : undefined, icon: action.icon, onClick: e => {
|
|
35
35
|
setIsMenuOpen(!isMenuOpen);
|
|
36
36
|
action.handler && action.handler(entity, e.target);
|
|
37
|
-
} }, action.id), items.length ? (_jsx(ControlledMenu, { triggerRef: buttonRef, alignment: "bottom-
|
|
37
|
+
} }, action.id), items.length ? (_jsx(ControlledMenu, { triggerRef: buttonRef, alignment: "bottom-end", isOpen: isMenuOpen, setIsOpen: setIsMenuOpen, title: action.createTitle(entity), children: items }, entityId + "-" + action.id + "-menu")) : null] }));
|
|
38
38
|
}
|
|
@@ -212,7 +212,7 @@ export const withFlexibleColumns = DataGridComponent => {
|
|
|
212
212
|
}) : _jsx(Popup, {
|
|
213
213
|
ariaLabel: translate("Select visible columns"),
|
|
214
214
|
triggerRef: popupTriggerRef,
|
|
215
|
-
alignment: "bottom-
|
|
215
|
+
alignment: "bottom-end",
|
|
216
216
|
children: _jsx(ColumnSettings, {
|
|
217
217
|
onReset: onResetListener,
|
|
218
218
|
children: listOfColumns
|
|
@@ -285,7 +285,7 @@ export const withSelectableRows = DataGridComponent => {
|
|
|
285
285
|
triggerRef: selectMenuRef,
|
|
286
286
|
isOpen: isOpen,
|
|
287
287
|
onOpenChange: setIsOpen,
|
|
288
|
-
alignment: "bottom-
|
|
288
|
+
alignment: "bottom-start",
|
|
289
289
|
children: _jsx(SelectList, {
|
|
290
290
|
id: selectId,
|
|
291
291
|
title: translate("Select menu"),
|
|
@@ -7,60 +7,60 @@ import { useLanguage } from "../utils/localization/useLanguage";
|
|
|
7
7
|
import { classNames } from "../commonHelpers/classNames/classNames";
|
|
8
8
|
import { FormFieldError } from "../formFieldError/formFieldError";
|
|
9
9
|
import { useDriveClassName } from "../utils/theme/useDriveClassName";
|
|
10
|
-
injectString("cs", "The time must be set", "Je t\u0159eba nastavit \u010Das.");
|
|
11
|
-
injectString("da-DK", "The time must be set", "Tiden skal indstilles.");
|
|
12
|
-
injectString("de", "The time must be set", "Die Uhrzeit muss festgelegt werden.");
|
|
13
|
-
injectString("en", "The time must be set", "The time must be set.");
|
|
14
|
-
injectString("es", "The time must be set", "Se debe establecer la hora.");
|
|
15
|
-
injectString("fi-FI", "The time must be set", "Aika on asetettava.");
|
|
16
|
-
injectString("fr", "The time must be set", "L'heure doit \xEAtre programm\xE9e.");
|
|
17
|
-
injectString("fr-FR", "The time must be set", "L'heure doit \xEAtre d\xE9finie.");
|
|
18
|
-
injectString("hu-HU", "The time must be set", "Az id\u0151 be\xE1ll\xEDt\xE1sa k\xF6telez\u0151.");
|
|
19
|
-
injectString("id", "The time must be set", "Waktu harus diatur.");
|
|
20
|
-
injectString("it", "The time must be set", "Impostare l'ora.");
|
|
21
|
-
injectString("ja", "The time must be set", "\u6642\u523B\u3092\u8A2D\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002");
|
|
22
|
-
injectString("ko-KR", "The time must be set", "\uC2DC\uAC04\uC744 \uC124\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.");
|
|
23
|
-
injectString("ms", "The time must be set", "Masa mesti ditetapkan.");
|
|
24
|
-
injectString("nb-NO", "The time must be set", "Tiden m\xE5 settes.");
|
|
25
|
-
injectString("nl", "The time must be set", "De tijd moet worden ingesteld.");
|
|
26
|
-
injectString("pl", "The time must be set", "Godzina musi by\u0107 ustawiona.");
|
|
27
|
-
injectString("pt-BR", "The time must be set", "\xC9 necess\xE1rio definir a hora.");
|
|
28
|
-
injectString("pt-PT", "The time must be set", "A hora deve ser definida");
|
|
29
|
-
injectString("sk-SK", "The time must be set", "Mus\xED\u0161 nastavi\u0165 \u010Das.");
|
|
30
|
-
injectString("sv", "The time must be set", "Tiden m\xE5ste anges.");
|
|
31
|
-
injectString("th", "The time must be set", "\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E40\u0E27\u0E25\u0E32");
|
|
32
|
-
injectString("tr", "The time must be set", "Saat ayarlanmal\u0131d\u0131r.");
|
|
33
|
-
injectString("zh-Hans", "The time must be set", "\u5FC5\u987B\u8BBE\u5B9A\u65F6\u95F4\u3002");
|
|
34
|
-
injectString("zh-TW", "The time must be set", "\u5FC5\u9808\u8A2D\u5B9A\u6642\u9593");
|
|
35
|
-
injectString("ro-RO", "The time must be set", "Trebuie setat\u0103 ora");
|
|
36
|
-
injectString("ar", "The time must be set", "\u064A\u062C\u0628 \u062A\u0639\u064A\u064A\u0646 \u0627\u0644\u0648\u0642\u062A.");
|
|
37
|
-
injectString("cs", "The date must be set", "Je t\u0159eba nastavit datum.");
|
|
38
|
-
injectString("da-DK", "The date must be set", "Datoen skal indstilles.");
|
|
39
|
-
injectString("de", "The date must be set", "Das Datum muss festgelegt werden.");
|
|
40
|
-
injectString("en", "The date must be set", "The date must be set.");
|
|
41
|
-
injectString("es", "The date must be set", "Se debe establecer la fecha.");
|
|
42
|
-
injectString("fi-FI", "The date must be set", "P\xE4iv\xE4m\xE4\xE4r\xE4 on asetettava.");
|
|
43
|
-
injectString("fr", "The date must be set", "La date doit \xEAtre programm\xE9e.");
|
|
44
|
-
injectString("fr-FR", "The date must be set", "La date doit \xEAtre d\xE9finie.");
|
|
45
|
-
injectString("hu-HU", "The date must be set", "A d\xE1tum be\xE1ll\xEDt\xE1sa k\xF6telez\u0151.");
|
|
46
|
-
injectString("id", "The date must be set", "Tanggal harus diatur.");
|
|
47
|
-
injectString("it", "The date must be set", "Impostare la data.");
|
|
48
|
-
injectString("ja", "The date must be set", "\u65E5\u4ED8\u3092\u8A2D\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002");
|
|
49
|
-
injectString("ko-KR", "The date must be set", "\uB0A0\uC9DC\uB97C \uC124\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.");
|
|
50
|
-
injectString("ms", "The date must be set", "Tarikh mesti ditetapkan.");
|
|
51
|
-
injectString("nb-NO", "The date must be set", "Datoen m\xE5 settes.");
|
|
52
|
-
injectString("nl", "The date must be set", "De datum moet worden ingesteld.");
|
|
53
|
-
injectString("pl", "The date must be set", "Data musi by\u0107 ustawiona.");
|
|
54
|
-
injectString("pt-BR", "The date must be set", "\xC9 necess\xE1rio definir a data.");
|
|
55
|
-
injectString("pt-PT", "The date must be set", "A data deve ser definida");
|
|
56
|
-
injectString("sk-SK", "The date must be set", "Mus\xED\u0161 nastavi\u0165 d\xE1tum.");
|
|
57
|
-
injectString("sv", "The date must be set", "Datumet m\xE5ste anges.");
|
|
58
|
-
injectString("th", "The date must be set", "\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48");
|
|
59
|
-
injectString("tr", "The date must be set", "Tarih ayarlanmal\u0131d\u0131r.");
|
|
60
|
-
injectString("zh-Hans", "The date must be set", "\u5FC5\u987B\u8BBE\u5B9A\u65E5\u671F\u3002");
|
|
61
|
-
injectString("zh-TW", "The date must be set", "\u5FC5\u9808\u8A2D\u5B9A\u65E5\u671F");
|
|
62
|
-
injectString("ro-RO", "The date must be set", "Trebuie setat\u0103 data");
|
|
63
|
-
injectString("ar", "The date must be set", "\u064A\u062C\u0628 \u062A\u0639\u064A\u064A\u0646 \u0627\u0644\u062A\u0627\u0631\u064A\u062E.");
|
|
10
|
+
injectString("cs", "The time must be set.", "Je t\u0159eba nastavit \u010Das.");
|
|
11
|
+
injectString("da-DK", "The time must be set.", "Tiden skal indstilles.");
|
|
12
|
+
injectString("de", "The time must be set.", "Die Uhrzeit muss festgelegt werden.");
|
|
13
|
+
injectString("en", "The time must be set.", "The time must be set.");
|
|
14
|
+
injectString("es", "The time must be set.", "Se debe establecer la hora.");
|
|
15
|
+
injectString("fi-FI", "The time must be set.", "Aika on asetettava.");
|
|
16
|
+
injectString("fr", "The time must be set.", "L'heure doit \xEAtre programm\xE9e.");
|
|
17
|
+
injectString("fr-FR", "The time must be set.", "L'heure doit \xEAtre d\xE9finie.");
|
|
18
|
+
injectString("hu-HU", "The time must be set.", "Az id\u0151 be\xE1ll\xEDt\xE1sa k\xF6telez\u0151.");
|
|
19
|
+
injectString("id", "The time must be set.", "Waktu harus diatur.");
|
|
20
|
+
injectString("it", "The time must be set.", "Impostare l'ora.");
|
|
21
|
+
injectString("ja", "The time must be set.", "\u6642\u523B\u3092\u8A2D\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002");
|
|
22
|
+
injectString("ko-KR", "The time must be set.", "\uC2DC\uAC04\uC744 \uC124\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.");
|
|
23
|
+
injectString("ms", "The time must be set.", "Masa mesti ditetapkan.");
|
|
24
|
+
injectString("nb-NO", "The time must be set.", "Tiden m\xE5 settes.");
|
|
25
|
+
injectString("nl", "The time must be set.", "De tijd moet worden ingesteld.");
|
|
26
|
+
injectString("pl", "The time must be set.", "Godzina musi by\u0107 ustawiona.");
|
|
27
|
+
injectString("pt-BR", "The time must be set.", "\xC9 necess\xE1rio definir a hora.");
|
|
28
|
+
injectString("pt-PT", "The time must be set.", "A hora deve ser definida");
|
|
29
|
+
injectString("sk-SK", "The time must be set.", "Mus\xED\u0161 nastavi\u0165 \u010Das.");
|
|
30
|
+
injectString("sv", "The time must be set.", "Tiden m\xE5ste anges.");
|
|
31
|
+
injectString("th", "The time must be set.", "\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E40\u0E27\u0E25\u0E32");
|
|
32
|
+
injectString("tr", "The time must be set.", "Saat ayarlanmal\u0131d\u0131r.");
|
|
33
|
+
injectString("zh-Hans", "The time must be set.", "\u5FC5\u987B\u8BBE\u5B9A\u65F6\u95F4\u3002");
|
|
34
|
+
injectString("zh-TW", "The time must be set.", "\u5FC5\u9808\u8A2D\u5B9A\u6642\u9593");
|
|
35
|
+
injectString("ro-RO", "The time must be set.", "Trebuie setat\u0103 ora");
|
|
36
|
+
injectString("ar", "The time must be set.", "\u064A\u062C\u0628 \u062A\u0639\u064A\u064A\u0646 \u0627\u0644\u0648\u0642\u062A.");
|
|
37
|
+
injectString("cs", "The date must be set.", "Je t\u0159eba nastavit datum.");
|
|
38
|
+
injectString("da-DK", "The date must be set.", "Datoen skal indstilles.");
|
|
39
|
+
injectString("de", "The date must be set.", "Das Datum muss festgelegt werden.");
|
|
40
|
+
injectString("en", "The date must be set.", "The date must be set.");
|
|
41
|
+
injectString("es", "The date must be set.", "Se debe establecer la fecha.");
|
|
42
|
+
injectString("fi-FI", "The date must be set.", "P\xE4iv\xE4m\xE4\xE4r\xE4 on asetettava.");
|
|
43
|
+
injectString("fr", "The date must be set.", "La date doit \xEAtre programm\xE9e.");
|
|
44
|
+
injectString("fr-FR", "The date must be set.", "La date doit \xEAtre d\xE9finie.");
|
|
45
|
+
injectString("hu-HU", "The date must be set.", "A d\xE1tum be\xE1ll\xEDt\xE1sa k\xF6telez\u0151.");
|
|
46
|
+
injectString("id", "The date must be set.", "Tanggal harus diatur.");
|
|
47
|
+
injectString("it", "The date must be set.", "Impostare la data.");
|
|
48
|
+
injectString("ja", "The date must be set.", "\u65E5\u4ED8\u3092\u8A2D\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002");
|
|
49
|
+
injectString("ko-KR", "The date must be set.", "\uB0A0\uC9DC\uB97C \uC124\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.");
|
|
50
|
+
injectString("ms", "The date must be set.", "Tarikh mesti ditetapkan.");
|
|
51
|
+
injectString("nb-NO", "The date must be set.", "Datoen m\xE5 settes.");
|
|
52
|
+
injectString("nl", "The date must be set.", "De datum moet worden ingesteld.");
|
|
53
|
+
injectString("pl", "The date must be set.", "Data musi by\u0107 ustawiona.");
|
|
54
|
+
injectString("pt-BR", "The date must be set.", "\xC9 necess\xE1rio definir a data.");
|
|
55
|
+
injectString("pt-PT", "The date must be set.", "A data deve ser definida");
|
|
56
|
+
injectString("sk-SK", "The date must be set.", "Mus\xED\u0161 nastavi\u0165 d\xE1tum.");
|
|
57
|
+
injectString("sv", "The date must be set.", "Datumet m\xE5ste anges.");
|
|
58
|
+
injectString("th", "The date must be set.", "\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48");
|
|
59
|
+
injectString("tr", "The date must be set.", "Tarih ayarlanmal\u0131d\u0131r.");
|
|
60
|
+
injectString("zh-Hans", "The date must be set.", "\u5FC5\u987B\u8BBE\u5B9A\u65E5\u671F\u3002");
|
|
61
|
+
injectString("zh-TW", "The date must be set.", "\u5FC5\u9808\u8A2D\u5B9A\u65E5\u671F");
|
|
62
|
+
injectString("ro-RO", "The date must be set.", "Trebuie setat\u0103 data");
|
|
63
|
+
injectString("ar", "The date must be set.", "\u064A\u062C\u0628 \u062A\u0639\u064A\u064A\u0646 \u0627\u0644\u062A\u0627\u0631\u064A\u062E.");
|
|
64
64
|
export const DateInputInnerControlBlock = props => {
|
|
65
65
|
const {
|
|
66
66
|
className,
|
|
@@ -114,7 +114,7 @@ export const DateInputInnerControlBlock = props => {
|
|
|
114
114
|
dataTimeId: id
|
|
115
115
|
}), isHasTimeError ? _jsx(FormFieldError, {
|
|
116
116
|
id: timeErrorId,
|
|
117
|
-
error: translate("The time must be set")
|
|
117
|
+
error: translate("The time must be set.")
|
|
118
118
|
}) : null]
|
|
119
119
|
}) : null, [selectTime, isActiveField, isHasTimeError, timePickerValue, timeChangeHandler, isMobileView, id, timeErrorId, translate]);
|
|
120
120
|
return _jsxs("div", {
|
|
@@ -129,7 +129,7 @@ export const DateInputInnerControlBlock = props => {
|
|
|
129
129
|
className: "zen-date-input-inner__inputs-block-item",
|
|
130
130
|
children: [memoizedDateInput, isHasDateError ? _jsx(FormFieldError, {
|
|
131
131
|
id: dateErrorId,
|
|
132
|
-
error: translate("The date must be set")
|
|
132
|
+
error: translate("The date must be set.")
|
|
133
133
|
}) : null]
|
|
134
134
|
}), memoizedTimeSelect]
|
|
135
135
|
}), assistiveText ? _jsx("div", {
|
|
@@ -138,4 +138,4 @@ export const DateInputInnerControlBlock = props => {
|
|
|
138
138
|
}) : null]
|
|
139
139
|
});
|
|
140
140
|
};
|
|
141
|
-
export const TRANSLATIONS = ["The date must be set", "The time must be set"];
|
|
141
|
+
export const TRANSLATIONS = ["The date must be set.", "The time must be set."];
|