@geotab/zenith 3.14.1 → 3.15.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 +28 -2
- package/dist/advancedGroupsFilter/advancedGroupsFilterFormSection.js +17 -7
- package/dist/alert/banner.d.ts +2 -3
- package/dist/alert/hooks/useAlertState.d.ts +0 -1
- package/dist/banner/bannerMultipLine.d.ts +0 -1
- package/dist/banner/bannerSingleLine.d.ts +0 -1
- package/dist/banner/utils/isSummaryErrorElement.d.ts +1 -2
- package/dist/calendar/dateUtils.js +2 -2
- package/dist/card/card.js +17 -7
- package/dist/card/components/content.d.ts +0 -1
- package/dist/cardContainer/helpers/getSizeClass.js +1 -2
- package/dist/chart/accessibleChart/accessibleChart.js +1 -1
- package/dist/chart/accessibleChart/accessibleChartNarrative.d.ts +1 -1
- package/dist/chart/accessibleChart/accessibleChartNarrative.js +11 -5
- package/dist/chart/accessibleChart/generatePieNarrative.d.ts +7 -0
- package/dist/chart/accessibleChart/generatePieNarrative.js +179 -0
- package/dist/chart/accessibleChart/interfaces.d.ts +1 -0
- package/dist/chart/barChart/getDefaultOptions.js +5 -6
- package/dist/chart/barChart.js +152 -50
- package/dist/chart/interfaces.d.ts +0 -1
- package/dist/chart/lineChart/getDefaultOptions.js +5 -6
- package/dist/chart/lineChart/useChartTicks.d.ts +0 -1
- package/dist/chart/lineChart/useSummary.d.ts +7 -8
- package/dist/chart/lineChart.js +167 -59
- package/dist/chart/pieChart.js +174 -76
- package/dist/chart/plugins/linePlugin/getInterpolatedValue.js +1 -2
- package/dist/chart/plugins/linePlugin/linePlugin.js +29 -7
- package/dist/chart/utils/convertDates.d.ts +1 -1
- package/dist/chart/utils/getFormattedLabel.js +1 -2
- package/dist/chart/utils/getNiceAxisRange.d.ts +21 -0
- package/dist/chart/utils/getNiceAxisRange.js +76 -0
- package/dist/chart/utils/getRange.js +2 -2
- package/dist/chart/utils/getYAxisMeta.d.ts +2 -5
- package/dist/chart/utils/getYAxisMeta.js +17 -2
- package/dist/chart/utils/getYAxisTickCount.d.ts +15 -0
- package/dist/chart/utils/getYAxisTickCount.js +19 -0
- package/dist/chart/utils/resampleArrayEvenly.js +1 -2
- package/dist/checkbox/checkbox.js +17 -7
- package/dist/checkboxListWithAction/checkboxListWithAction.d.ts +0 -1
- package/dist/chip/chip.d.ts +0 -1
- package/dist/chip/utils/useChip.d.ts +0 -1
- package/dist/commonHelpers/HOC/reducerLogger/reducerLogger.d.ts +1 -1
- package/dist/commonHelpers/arrowNavigation/components/arrowButton/arrowButton.d.ts +0 -1
- package/dist/commonHelpers/arrowNavigation/hooks/useHoldOnScroll.d.ts +0 -1
- package/dist/commonHelpers/generateId.js +1 -2
- package/dist/commonHelpers/hooks/breakpoints.d.ts +4 -0
- package/dist/commonHelpers/hooks/breakpoints.js +7 -0
- package/dist/commonHelpers/hooks/fetch.reducer.d.ts +1 -1
- package/dist/commonHelpers/hooks/fetch.reducer.js +1 -2
- package/dist/commonHelpers/hooks/useDebouncedMemo.d.ts +0 -1
- package/dist/commonHelpers/hooks/useDebouncedMemo.js +1 -2
- package/dist/commonHelpers/hooks/useDeviceType.js +2 -2
- package/dist/commonHelpers/hooks/useEscape.d.ts +1 -1
- package/dist/commonHelpers/hooks/useGridSize.d.ts +0 -1
- package/dist/commonHelpers/hooks/useMobileOrTablet.d.ts +1 -0
- package/dist/commonHelpers/hooks/useMobileOrTablet.js +21 -0
- package/dist/commonHelpers/hooks/usePillSize.d.ts +0 -1
- package/dist/{gridLayout → commonHelpers}/hooks/useTablet.js +8 -11
- package/dist/commonHelpers/utils.js +3 -3
- package/dist/commonStyles/colors/colors.less +1 -0
- package/dist/dataFeed/dataFeed.d.ts +1 -1
- package/dist/dataFeed/dataFeed.js +2 -2
- package/dist/dataFeed/dataFeedCell/dataFeedCell.d.ts +3 -1
- package/dist/dataFeed/dataFeedColumnsItems.d.ts +2 -2
- package/dist/dataGrid/cell/cell.d.ts +3 -1
- package/dist/dataGrid/columns/actionsColumn/actionsButton.js +1 -2
- package/dist/dataGrid/columns/actionsColumn/actionsColumn.d.ts +3 -3
- package/dist/dataGrid/dataGrid.d.ts +13 -1
- package/dist/dataGrid/dataGrid.js +48 -3
- package/dist/dataGrid/emptySearchList/emptySearchList.d.ts +0 -1
- package/dist/dataGrid/row/row.d.ts +3 -1
- package/dist/dataGrid/withActions/withActions.d.ts +1 -1
- package/dist/dataGrid/withFlexibleColumns/components/columnSettingsList.js +1 -2
- package/dist/dataGrid/withFlexibleColumns/withFlexibleColumns.d.ts +1 -1
- package/dist/dataGrid/withLoading/withLoading.d.ts +1 -1
- package/dist/dataGrid/withSelectableRows/withLimitedSelectableRows.d.ts +1 -1
- package/dist/dataGrid/withSelectableRows/withSelectableRows.d.ts +1 -1
- package/dist/dataGrid/withSortableColumns/withSortableColumns.d.ts +1 -1
- package/dist/dateInputInner/dateInputInnerReducer.js +2 -2
- package/dist/dateRangeRaw/utils/areMapsEqual.js +1 -2
- package/dist/dialog/dialog.d.ts +0 -1
- package/dist/dropdown/dropdown.js +1 -1
- package/dist/dropdown/useDropdownState.d.ts +0 -1
- package/dist/dropdownRaw/dropdownHelper.js +2 -2
- package/dist/dropdownRaw/dropdownList.d.ts +3 -2
- package/dist/dropdownRaw/dropdownList.js +31 -49
- package/dist/dropdownRaw/dropdownRaw.js +34 -13
- package/dist/dropdownRaw/stateReducer/stateReducer.d.ts +4 -1
- package/dist/dropdownRaw/stateReducer/stateReducer.js +33 -23
- package/dist/dropdownRaw/stateReducer/stateReducerHelper.d.ts +1 -2
- package/dist/dropdownRaw/stateReducer/stateReducerHelper.js +8 -13
- package/dist/dropdownRaw/types.d.ts +20 -0
- package/dist/feedbackContainer/feedbackContainer.js +17 -7
- package/dist/feedbackContainer/hooks/useFeedbackAlert.d.ts +0 -1
- package/dist/feedbackContainer/hooks/useFeedbackToast.d.ts +0 -1
- package/dist/filters/components/filtersDropdown.js +2 -2
- package/dist/filters/components/filtersItem.d.ts +2 -2
- package/dist/filters/components/filtersSearchList.d.ts +0 -1
- package/dist/filters/components/filtersSelect.d.ts +0 -1
- package/dist/filters/components/filtersSelectCompact.d.ts +0 -1
- package/dist/filters/components/filtersSelectListItem.d.ts +0 -1
- package/dist/filters/components/filtersSelectUnfoldingPill.d.ts +0 -1
- package/dist/filters/components/filtersSidePanelItem.js +17 -7
- package/dist/filters/filtersHelper.d.ts +1 -1
- package/dist/filters/filtersHelper.js +5 -5
- package/dist/filters/filtersHooks.d.ts +0 -1
- package/dist/filtersBar/components/filtersBarDropdownWithCheckbox/filtersBarDropdownWithCheckbox.js +1 -1
- package/dist/filtersBar/components/filtersBarPeriodPicker/getRangeOption.js +2 -2
- package/dist/filtersBar/filtersBar.js +2 -2
- package/dist/filtersBar/filtersBarActions/filtersBarActions.d.ts +0 -1
- package/dist/filtersBar/filtersBarInterfaces.d.ts +0 -1
- package/dist/filtersBar/filtersBarReducer.js +2 -2
- package/dist/filtersBar/filtersBarSidePanel/components/filtersBarSidePanelDropdownWithCheckbox/filtersBarSidePanelDropdownWithCheckbox.d.ts +4 -10
- package/dist/filtersBar/filtersBarSidePanel/sidePanelReducer.js +2 -2
- package/dist/filtersBar/utils/getNumberOfChangedFilters.js +1 -2
- package/dist/footerButtons/footerButtons.js +17 -7
- package/dist/formField/components/formFieldAdditionalInfo.d.ts +0 -1
- package/dist/formField/components/formFieldCounter.d.ts +0 -1
- package/dist/formField/components/formFieldLoading.d.ts +0 -1
- package/dist/formField/components/formFieldSkeleton.d.ts +0 -1
- package/dist/formField/components/formFieldWithLabel.d.ts +0 -1
- package/dist/formField/components/formFieldWithoutLabel.d.ts +0 -1
- package/dist/formField/formField.d.ts +1 -1
- package/dist/formField/hooks/useBanner.d.ts +0 -1
- package/dist/formField/hooks/useDisabled.d.ts +1 -1
- package/dist/formGroup/components/customRow/customRow.d.ts +0 -1
- package/dist/formGroup/formGroup.js +17 -7
- package/dist/formGroup/hooks/listHooks/useStateToElements.d.ts +0 -1
- package/dist/formGroup/hooks/listHooks/useStateToElements.js +1 -1
- package/dist/formGroup/utils/formGroupProvider.d.ts +0 -1
- package/dist/formGroup/utils/isFormLabel.d.ts +1 -1
- package/dist/formGroupItem/formGroupItem.d.ts +0 -1
- package/dist/formLayout/components/layoutColumn/layoutColum.d.ts +0 -1
- package/dist/formLayout/hooks/useFormButtons.d.ts +1 -1
- package/dist/formLayout/types.d.ts +0 -1
- package/dist/formLayout/utils/attachHeadings.d.ts +1 -1
- package/dist/formLayout/utils/attachSeparators.d.ts +0 -1
- package/dist/formLayout/utils/getChildrenWithCustomColumns.d.ts +1 -2
- package/dist/formLayout/utils/getChildrenWithCustomColumns.js +2 -2
- package/dist/formLayout/utils/getFieldLabel.js +5 -5
- package/dist/formSection/components/actions.d.ts +0 -1
- package/dist/formSection/components/additional.d.ts +0 -1
- package/dist/formSection/utils/isFormSection.d.ts +2 -4
- package/dist/formStepper/components/formStepRaw.d.ts +0 -1
- package/dist/formStepper/formStepper.d.ts +0 -1
- package/dist/formStepper/formStepper.js +5 -5
- package/dist/formStepperButtons/formStepperButtons.js +3 -3
- package/dist/gridLayout/hooks/useStretch.js +1 -1
- package/dist/gridLayout/utils/convertStateToClasses.js +1 -2
- package/dist/gridLayout/utils/gridLayoutProvider.d.ts +0 -1
- package/dist/gridLayout/utils/gridLayoutProvider.js +1 -1
- package/dist/gridLayout/utils/isGridItem.d.ts +1 -1
- package/dist/groupsFilter/groupsHelper.d.ts +5 -5
- package/dist/groupsFilterRaw/groupsFilterHelper.js +16 -16
- package/dist/groupsFilterRaw/groupsHelper.d.ts +1 -1
- package/dist/groupsFilterRaw/groupsHelper.js +4 -4
- package/dist/groupsFilterRaw/stateReducer/stateReducer.d.ts +1 -1
- package/dist/groupsFilterRaw/stateReducer/stateReducer.js +2 -2
- package/dist/groupsFilterRaw/testData.js +3 -4
- package/dist/groupsFilterRaw/uiStateReducer/uiStateReducer.js +2 -2
- package/dist/header/components/collapsedItemsControl/utils/handleCustomMenuWrapper.js +5 -0
- package/dist/header/components/mobileFilterControl/mobileFilterControl.d.ts +0 -1
- package/dist/header/components/mobileSearchControl/mobileSearchControl.d.ts +0 -1
- package/dist/header/header.js +17 -7
- package/dist/header/headerButton.d.ts +0 -1
- package/dist/header/headerContext.d.ts +1 -2
- package/dist/header/headerHelpers.d.ts +5 -5
- package/dist/header/headerHelpers.js +17 -7
- package/dist/header/hooks/useNonFittingElements.d.ts +3 -4
- package/dist/headerTitle/headerTitle.d.ts +0 -1
- package/dist/icons/iconAce.d.ts +3 -0
- package/dist/icons/iconAce.js +12 -0
- package/dist/icons/iconBreak.d.ts +3 -0
- package/dist/icons/iconBreak.js +12 -0
- package/dist/icons/iconChevronStepper.d.ts +3 -0
- package/dist/icons/iconChevronStepper.js +12 -0
- package/dist/icons/iconPotato.d.ts +3 -0
- package/dist/icons/iconPotato.js +12 -0
- package/dist/icons/iconToggleLarge.d.ts +3 -0
- package/dist/icons/iconToggleLarge.js +12 -0
- package/dist/icons/iconToggleSmall.d.ts +3 -0
- package/dist/icons/iconToggleSmall.js +12 -0
- package/dist/icons/iconTrendNeutral.d.ts +3 -0
- package/dist/icons/iconTrendNeutral.js +12 -0
- package/dist/icons/iconTruck.d.ts +3 -0
- package/dist/icons/iconTruck.js +12 -0
- package/dist/index.css +219 -169
- package/dist/index.d.ts +8 -0
- package/dist/index.js +30 -13
- package/dist/layout/layout.d.ts +2 -1
- package/dist/layout/layout.js +17 -7
- package/dist/layout/layoutBanner.d.ts +0 -1
- package/dist/lineChart/lineChart.d.ts +1 -0
- package/dist/lineChart/lineChart.js +135 -70
- package/dist/lineChartMini/lineChartMini.d.ts +1 -0
- package/dist/lineChartMini/lineChartMini.js +141 -73
- package/dist/list/itemData/itemData.d.ts +2 -1
- package/dist/list/itemData/itemDataInternal.d.ts +2 -1
- package/dist/list/list.d.ts +0 -1
- package/dist/list/utils/changeOrder.js +1 -2
- package/dist/list/utils/isDataListitem.d.ts +1 -1
- package/dist/list/viewportProvider/viewportContext.d.ts +0 -1
- package/dist/menu/components/controlledMenuList/controlledMenuList.d.ts +2 -4
- package/dist/menu/components/controlledMenuList/controlledMenuList.js +3 -1
- package/dist/menu/components/createControlledMenuList.js +1 -2
- package/dist/menu/components/createMenuItem.js +1 -2
- package/dist/menu/contexts/usePathContext.js +1 -2
- package/dist/menu/utils/buildMenuContent.js +1 -2
- package/dist/menu/utils/findPrevFocusable.js +1 -2
- package/dist/menu/utils/useDisplayContent.d.ts +21 -0
- package/dist/menu/utils/useDisplayContent.js +35 -0
- package/dist/menu/utils/useMenuItemKeyboardNav.js +1 -2
- package/dist/miniTabs/miniTabsHelper.js +17 -7
- package/dist/mobileSheet/components/mobileSheetTitle.d.ts +0 -1
- package/dist/modal/modal.js +17 -7
- package/dist/nav/context/nav.context.d.ts +0 -1
- package/dist/nav/navFooter/navEditFooter/navEditFooter.d.ts +0 -1
- package/dist/nav/navFooter/navFooter.d.ts +1 -1
- package/dist/nav/navFooter/navFooterAction/navFooterAction.d.ts +2 -1
- package/dist/nav/navFooter/navFooterAction/navFooterAction.js +3 -1
- package/dist/nav/navItem/navItem.d.ts +2 -0
- package/dist/nav/navItem/navItem.js +56 -47
- package/dist/nav/navItem/navItemContent.d.ts +19 -0
- package/dist/nav/navItem/navItemContent.js +21 -0
- package/dist/nav/navItem/navItemType.d.ts +7 -0
- package/dist/nav/navItem/navItemType.js +9 -0
- package/dist/nav/utils/navUtils.d.ts +2 -4
- package/dist/nav/utils/navUtils.js +2 -2
- package/dist/overview/overview.d.ts +0 -1
- package/dist/pageHeader/pageHeader.d.ts +1 -1
- package/dist/pageHeader/pageHeaderButton.d.ts +0 -1
- package/dist/pageHeader/pageHeaderHelpers.d.ts +1 -1
- package/dist/pageHeader/pageHeaderMenu.d.ts +0 -1
- package/dist/pagination/paginationArrow.d.ts +0 -1
- package/dist/pill/interfaces/pill.interface.d.ts +0 -1
- package/dist/pillBox/components/pillBoxItem.d.ts +1 -2
- package/dist/popup/popup.js +17 -7
- package/dist/progressIndicator/progressIndicator.d.ts +39 -0
- package/dist/progressIndicator/progressIndicator.js +30 -0
- package/dist/progressIndicator/progressIndicatorUtils.d.ts +12 -0
- package/dist/progressIndicator/progressIndicatorUtils.js +30 -0
- package/dist/radioGroupRaw/radioGroupRaw.js +17 -7
- package/dist/radioGroupRaw/types.d.ts +0 -1
- package/dist/react-chartjs/dateFns/dateFns.js +10 -11
- package/dist/react-chartjs/utils.d.ts +3 -3
- package/dist/react-chartjs/utils.js +8 -9
- package/dist/searchInputRaw/searchInputRaw.js +17 -7
- package/dist/searchInputRaw/types.d.ts +0 -1
- package/dist/selectField/selectField.d.ts +2 -3
- package/dist/selectList/selectList.d.ts +0 -1
- package/dist/selectRaw/hooks/usePopupWidth.js +17 -7
- package/dist/selectRaw/selectRaw.js +20 -7
- package/dist/sidePanel/sidePanelCell/sidePanelCell.d.ts +0 -1
- package/dist/summaries/utils/splitIntoPairs.js +1 -2
- package/dist/summaryTile/summaryTile.js +17 -7
- package/dist/summaryTile/summaryTileTrigger.js +17 -7
- package/dist/table/actions/actionsMenu.d.ts +0 -1
- package/dist/table/children/useTableChildren.d.ts +7 -7
- package/dist/table/detailPanel/interfaces.d.ts +0 -1
- package/dist/table/flexible/columnsList.js +1 -2
- package/dist/table/loading/useLoading.d.ts +10 -10
- package/dist/table/nested/nestedData.d.ts +3 -1
- package/dist/table/nested/useNestedRows.d.ts +2 -2
- package/dist/table/selectable/selectableHeader.d.ts +2 -1
- package/dist/table/selectable/selectableHeader.js +4 -3
- package/dist/table/selectable/useSelectableRows.d.ts +1 -1
- package/dist/table/selectable/useSelectableRows.js +7 -4
- package/dist/table/table.d.ts +16 -1
- package/dist/table/table.js +101 -5
- package/dist/tag/tag.d.ts +19 -0
- package/dist/tag/tag.js +14 -0
- package/dist/textIconButton/textIconButton.js +17 -7
- package/dist/toastRaw/toastRaw.d.ts +1 -1
- package/dist/toastRaw/toastRaw.js +3 -1
- package/dist/toggleButtonRaw/toggleButtonRaw.js +17 -7
- package/dist/toggleButtonRaw/types.d.ts +0 -1
- package/dist/tooltip/tooltip.js +17 -7
- package/dist/tooltipInfo/tooltipInfo.d.ts +0 -1
- package/dist/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/utils/compareElementsUtils/isArraysEqualDeeply.js +1 -2
- package/dist/utils/compareElementsUtils/isElementsEqual.js +2 -2
- package/dist/utils/escapeHtml.js +1 -2
- package/dist/utils/localization/directionContext.d.ts +0 -1
- package/dist/utils/localization/languageContext.d.ts +0 -1
- package/dist/utils/localization/translations/en.json +12 -1
- package/dist/utils/theme/themeContext.d.ts +0 -1
- package/dist/utils/topWindow/topWindowContext.d.ts +0 -1
- package/dist/utils/useFadeComponent.d.ts +0 -1
- package/dist/utils/userFormat/userFormatContext.d.ts +0 -1
- package/dist/waiting/waiting.d.ts +2 -1
- package/dist/waiting/waiting.js +23 -6
- package/esm/alert/banner.d.ts +2 -3
- package/esm/alert/hooks/useAlertState.d.ts +0 -1
- package/esm/banner/bannerMultipLine.d.ts +0 -1
- package/esm/banner/bannerSingleLine.d.ts +0 -1
- package/esm/banner/utils/isSummaryErrorElement.d.ts +1 -2
- package/esm/card/components/content.d.ts +0 -1
- package/esm/chart/accessibleChart/accessibleChart.js +1 -1
- package/esm/chart/accessibleChart/accessibleChartNarrative.d.ts +1 -1
- package/esm/chart/accessibleChart/accessibleChartNarrative.js +8 -2
- package/esm/chart/accessibleChart/generatePieNarrative.d.ts +7 -0
- package/esm/chart/accessibleChart/generatePieNarrative.js +167 -0
- package/esm/chart/accessibleChart/interfaces.d.ts +1 -0
- package/esm/chart/barChart/getDefaultOptions.js +5 -6
- package/esm/chart/barChart.js +147 -50
- package/esm/chart/interfaces.d.ts +0 -1
- package/esm/chart/lineChart/getDefaultOptions.js +5 -6
- package/esm/chart/lineChart/useChartTicks.d.ts +0 -1
- package/esm/chart/lineChart/useSummary.d.ts +7 -8
- package/esm/chart/lineChart.js +162 -59
- package/esm/chart/pieChart.js +169 -76
- package/esm/chart/plugins/linePlugin/linePlugin.js +29 -7
- package/esm/chart/utils/convertDates.d.ts +1 -1
- package/esm/chart/utils/getNiceAxisRange.d.ts +21 -0
- package/esm/chart/utils/getNiceAxisRange.js +72 -0
- package/esm/chart/utils/getRange.js +2 -2
- package/esm/chart/utils/getYAxisMeta.d.ts +2 -5
- package/esm/chart/utils/getYAxisMeta.js +17 -2
- package/esm/chart/utils/getYAxisTickCount.d.ts +15 -0
- package/esm/chart/utils/getYAxisTickCount.js +15 -0
- package/esm/checkboxListWithAction/checkboxListWithAction.d.ts +0 -1
- package/esm/chip/chip.d.ts +0 -1
- package/esm/chip/utils/useChip.d.ts +0 -1
- package/esm/commonHelpers/HOC/reducerLogger/reducerLogger.d.ts +1 -1
- package/esm/commonHelpers/arrowNavigation/components/arrowButton/arrowButton.d.ts +0 -1
- package/esm/commonHelpers/arrowNavigation/hooks/useHoldOnScroll.d.ts +0 -1
- package/esm/commonHelpers/hooks/breakpoints.d.ts +4 -0
- package/esm/commonHelpers/hooks/breakpoints.js +4 -0
- package/esm/commonHelpers/hooks/fetch.reducer.d.ts +1 -1
- package/esm/commonHelpers/hooks/useDebouncedMemo.d.ts +0 -1
- package/esm/commonHelpers/hooks/useDeviceType.js +2 -2
- package/esm/commonHelpers/hooks/useEscape.d.ts +1 -1
- package/esm/commonHelpers/hooks/useGridSize.d.ts +0 -1
- package/esm/commonHelpers/hooks/useMobileOrTablet.d.ts +1 -0
- package/esm/commonHelpers/hooks/useMobileOrTablet.js +17 -0
- package/esm/commonHelpers/hooks/usePillSize.d.ts +0 -1
- package/esm/commonHelpers/hooks/useTablet.js +17 -0
- package/esm/dataFeed/dataFeed.d.ts +1 -1
- package/esm/dataFeed/dataFeed.js +2 -2
- package/esm/dataFeed/dataFeedCell/dataFeedCell.d.ts +3 -1
- package/esm/dataFeed/dataFeedColumnsItems.d.ts +2 -2
- package/esm/dataGrid/cell/cell.d.ts +3 -1
- package/esm/dataGrid/columns/actionsColumn/actionsColumn.d.ts +3 -3
- package/esm/dataGrid/dataGrid.d.ts +13 -1
- package/esm/dataGrid/dataGrid.js +48 -3
- package/esm/dataGrid/emptySearchList/emptySearchList.d.ts +0 -1
- package/esm/dataGrid/row/row.d.ts +3 -1
- package/esm/dataGrid/withActions/withActions.d.ts +1 -1
- package/esm/dataGrid/withFlexibleColumns/withFlexibleColumns.d.ts +1 -1
- package/esm/dataGrid/withLoading/withLoading.d.ts +1 -1
- package/esm/dataGrid/withSelectableRows/withLimitedSelectableRows.d.ts +1 -1
- package/esm/dataGrid/withSelectableRows/withSelectableRows.d.ts +1 -1
- package/esm/dataGrid/withSortableColumns/withSortableColumns.d.ts +1 -1
- package/esm/dialog/dialog.d.ts +0 -1
- package/esm/dropdown/dropdown.js +1 -1
- package/esm/dropdown/useDropdownState.d.ts +0 -1
- package/esm/dropdownRaw/dropdownList.d.ts +3 -2
- package/esm/dropdownRaw/dropdownList.js +14 -42
- package/esm/dropdownRaw/dropdownRaw.js +35 -14
- package/esm/dropdownRaw/stateReducer/stateReducer.d.ts +4 -1
- package/esm/dropdownRaw/stateReducer/stateReducer.js +32 -22
- package/esm/dropdownRaw/stateReducer/stateReducerHelper.d.ts +1 -2
- package/esm/dropdownRaw/stateReducer/stateReducerHelper.js +5 -10
- package/esm/dropdownRaw/types.d.ts +20 -0
- package/esm/feedbackContainer/hooks/useFeedbackAlert.d.ts +0 -1
- package/esm/feedbackContainer/hooks/useFeedbackToast.d.ts +0 -1
- package/esm/filters/components/filtersItem.d.ts +2 -2
- package/esm/filters/components/filtersSearchList.d.ts +0 -1
- package/esm/filters/components/filtersSelect.d.ts +0 -1
- package/esm/filters/components/filtersSelectCompact.d.ts +0 -1
- package/esm/filters/components/filtersSelectListItem.d.ts +0 -1
- package/esm/filters/components/filtersSelectUnfoldingPill.d.ts +0 -1
- package/esm/filters/filtersHelper.d.ts +1 -1
- package/esm/filters/filtersHooks.d.ts +0 -1
- package/esm/filtersBar/components/filtersBarDropdownWithCheckbox/filtersBarDropdownWithCheckbox.js +1 -1
- package/esm/filtersBar/filtersBar.js +2 -2
- package/esm/filtersBar/filtersBarActions/filtersBarActions.d.ts +0 -1
- package/esm/filtersBar/filtersBarInterfaces.d.ts +0 -1
- package/esm/filtersBar/filtersBarSidePanel/components/filtersBarSidePanelDropdownWithCheckbox/filtersBarSidePanelDropdownWithCheckbox.d.ts +4 -10
- package/esm/formField/components/formFieldAdditionalInfo.d.ts +0 -1
- package/esm/formField/components/formFieldCounter.d.ts +0 -1
- package/esm/formField/components/formFieldLoading.d.ts +0 -1
- package/esm/formField/components/formFieldSkeleton.d.ts +0 -1
- package/esm/formField/components/formFieldWithLabel.d.ts +0 -1
- package/esm/formField/components/formFieldWithoutLabel.d.ts +0 -1
- package/esm/formField/formField.d.ts +1 -1
- package/esm/formField/hooks/useBanner.d.ts +0 -1
- package/esm/formField/hooks/useDisabled.d.ts +1 -1
- package/esm/formGroup/components/customRow/customRow.d.ts +0 -1
- package/esm/formGroup/hooks/listHooks/useStateToElements.d.ts +0 -1
- package/esm/formGroup/hooks/listHooks/useStateToElements.js +1 -1
- package/esm/formGroup/utils/formGroupProvider.d.ts +0 -1
- package/esm/formGroup/utils/isFormLabel.d.ts +1 -1
- package/esm/formGroupItem/formGroupItem.d.ts +0 -1
- package/esm/formLayout/components/layoutColumn/layoutColum.d.ts +0 -1
- package/esm/formLayout/hooks/useFormButtons.d.ts +1 -1
- package/esm/formLayout/types.d.ts +0 -1
- package/esm/formLayout/utils/attachHeadings.d.ts +1 -1
- package/esm/formLayout/utils/attachSeparators.d.ts +0 -1
- package/esm/formLayout/utils/getChildrenWithCustomColumns.d.ts +1 -2
- package/esm/formLayout/utils/getChildrenWithCustomColumns.js +2 -2
- package/esm/formLayout/utils/getFieldLabel.js +5 -5
- package/esm/formSection/components/actions.d.ts +0 -1
- package/esm/formSection/components/additional.d.ts +0 -1
- package/esm/formSection/utils/isFormSection.d.ts +2 -4
- package/esm/formStepper/components/formStepRaw.d.ts +0 -1
- package/esm/formStepper/formStepper.d.ts +0 -1
- package/esm/formStepper/formStepper.js +5 -5
- package/esm/formStepperButtons/formStepperButtons.js +3 -3
- package/esm/gridLayout/hooks/useStretch.js +1 -1
- package/esm/gridLayout/utils/gridLayoutProvider.d.ts +0 -1
- package/esm/gridLayout/utils/gridLayoutProvider.js +1 -1
- package/esm/gridLayout/utils/isGridItem.d.ts +1 -1
- package/esm/groupsFilter/groupsHelper.d.ts +5 -5
- package/esm/groupsFilterRaw/groupsHelper.d.ts +1 -1
- package/esm/groupsFilterRaw/stateReducer/stateReducer.d.ts +1 -1
- package/esm/groupsFilterRaw/testData.js +1 -2
- package/esm/header/components/collapsedItemsControl/utils/handleCustomMenuWrapper.js +5 -0
- package/esm/header/components/mobileFilterControl/mobileFilterControl.d.ts +0 -1
- package/esm/header/components/mobileSearchControl/mobileSearchControl.d.ts +0 -1
- package/esm/header/headerButton.d.ts +0 -1
- package/esm/header/headerContext.d.ts +1 -2
- package/esm/header/headerHelpers.d.ts +5 -5
- package/esm/header/hooks/useNonFittingElements.d.ts +3 -4
- package/esm/headerTitle/headerTitle.d.ts +0 -1
- package/esm/icons/iconAce.d.ts +3 -0
- package/esm/icons/iconAce.js +8 -0
- package/esm/icons/iconBreak.d.ts +3 -0
- package/esm/icons/iconBreak.js +8 -0
- package/esm/icons/iconChevronStepper.d.ts +3 -0
- package/esm/icons/iconChevronStepper.js +8 -0
- package/esm/icons/iconPotato.d.ts +3 -0
- package/esm/icons/iconPotato.js +8 -0
- package/esm/icons/iconToggleLarge.d.ts +3 -0
- package/esm/icons/iconToggleLarge.js +8 -0
- package/esm/icons/iconToggleSmall.d.ts +3 -0
- package/esm/icons/iconToggleSmall.js +8 -0
- package/esm/icons/iconTrendNeutral.d.ts +3 -0
- package/esm/icons/iconTrendNeutral.js +8 -0
- package/esm/icons/iconTruck.d.ts +3 -0
- package/esm/icons/iconTruck.js +8 -0
- package/esm/index.d.ts +8 -0
- package/esm/index.js +8 -0
- package/esm/layout/layout.d.ts +2 -1
- package/esm/layout/layoutBanner.d.ts +0 -1
- package/esm/lineChart/lineChart.d.ts +1 -0
- package/esm/lineChart/lineChart.js +129 -69
- package/esm/lineChartMini/lineChartMini.d.ts +1 -0
- package/esm/lineChartMini/lineChartMini.js +136 -73
- package/esm/list/itemData/itemData.d.ts +2 -1
- package/esm/list/itemData/itemDataInternal.d.ts +2 -1
- package/esm/list/list.d.ts +0 -1
- package/esm/list/utils/isDataListitem.d.ts +1 -1
- package/esm/list/viewportProvider/viewportContext.d.ts +0 -1
- package/esm/menu/components/controlledMenuList/controlledMenuList.d.ts +2 -4
- package/esm/menu/components/controlledMenuList/controlledMenuList.js +3 -1
- package/esm/menu/utils/useDisplayContent.d.ts +21 -0
- package/esm/menu/utils/useDisplayContent.js +31 -0
- package/esm/mobileSheet/components/mobileSheetTitle.d.ts +0 -1
- package/esm/nav/context/nav.context.d.ts +0 -1
- package/esm/nav/navFooter/navEditFooter/navEditFooter.d.ts +0 -1
- package/esm/nav/navFooter/navFooter.d.ts +1 -1
- package/esm/nav/navFooter/navFooterAction/navFooterAction.d.ts +2 -1
- package/esm/nav/navFooter/navFooterAction/navFooterAction.js +3 -1
- package/esm/nav/navItem/navItem.d.ts +2 -0
- package/esm/nav/navItem/navItem.js +57 -48
- package/esm/nav/navItem/navItemContent.d.ts +19 -0
- package/esm/nav/navItem/navItemContent.js +17 -0
- package/esm/nav/navItem/navItemType.d.ts +7 -0
- package/esm/nav/navItem/navItemType.js +6 -0
- package/esm/nav/utils/navUtils.d.ts +2 -4
- package/esm/overview/overview.d.ts +0 -1
- package/esm/pageHeader/pageHeader.d.ts +1 -1
- package/esm/pageHeader/pageHeaderButton.d.ts +0 -1
- package/esm/pageHeader/pageHeaderHelpers.d.ts +1 -1
- package/esm/pageHeader/pageHeaderMenu.d.ts +0 -1
- package/esm/pagination/paginationArrow.d.ts +0 -1
- package/esm/pill/interfaces/pill.interface.d.ts +0 -1
- package/esm/pillBox/components/pillBoxItem.d.ts +1 -2
- package/esm/progressIndicator/progressIndicator.d.ts +39 -0
- package/esm/progressIndicator/progressIndicator.js +26 -0
- package/esm/progressIndicator/progressIndicatorUtils.d.ts +12 -0
- package/esm/progressIndicator/progressIndicatorUtils.js +25 -0
- package/esm/radioGroupRaw/types.d.ts +0 -1
- package/esm/react-chartjs/utils.d.ts +3 -3
- package/esm/searchInputRaw/types.d.ts +0 -1
- package/esm/selectField/selectField.d.ts +2 -3
- package/esm/selectList/selectList.d.ts +0 -1
- package/esm/selectRaw/selectRaw.js +3 -0
- package/esm/sidePanel/sidePanelCell/sidePanelCell.d.ts +0 -1
- package/esm/table/actions/actionsMenu.d.ts +0 -1
- package/esm/table/children/useTableChildren.d.ts +7 -7
- package/esm/table/detailPanel/interfaces.d.ts +0 -1
- package/esm/table/loading/useLoading.d.ts +10 -10
- package/esm/table/nested/nestedData.d.ts +3 -1
- package/esm/table/nested/useNestedRows.d.ts +2 -2
- package/esm/table/selectable/selectableHeader.d.ts +2 -1
- package/esm/table/selectable/selectableHeader.js +4 -3
- package/esm/table/selectable/useSelectableRows.d.ts +1 -1
- package/esm/table/selectable/useSelectableRows.js +7 -4
- package/esm/table/table.d.ts +16 -1
- package/esm/table/table.js +102 -6
- package/esm/tag/tag.d.ts +19 -0
- package/esm/tag/tag.js +10 -0
- package/esm/testHelpers/geotab-axe/index.d.ts +0 -1
- package/esm/toastRaw/toastRaw.d.ts +1 -1
- package/esm/toastRaw/toastRaw.js +3 -1
- package/esm/toggleButtonRaw/types.d.ts +0 -1
- package/esm/tooltipInfo/tooltipInfo.d.ts +0 -1
- package/esm/tsconfig.esm.tsbuildinfo +1 -0
- package/esm/utils/localization/directionContext.d.ts +0 -1
- package/esm/utils/localization/languageContext.d.ts +0 -1
- package/esm/utils/localization/translations/en.json +12 -1
- package/esm/utils/theme/themeContext.d.ts +0 -1
- package/esm/utils/topWindow/topWindowContext.d.ts +0 -1
- package/esm/utils/useFadeComponent.d.ts +0 -1
- package/esm/utils/userFormat/userFormatContext.d.ts +0 -1
- package/esm/waiting/waiting.d.ts +2 -1
- package/esm/waiting/waiting.js +24 -7
- package/package.json +13 -6
- package/esm/gridLayout/hooks/useTablet.js +0 -20
- /package/dist/{gridLayout → commonHelpers}/hooks/useTablet.d.ts +0 -0
- /package/esm/{gridLayout → commonHelpers}/hooks/useTablet.d.ts +0 -0
|
@@ -27,13 +27,23 @@ var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? fun
|
|
|
27
27
|
} : function (o, v) {
|
|
28
28
|
o["default"] = v;
|
|
29
29
|
});
|
|
30
|
-
var __importStar = this && this.__importStar || function (
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
};
|
|
30
|
+
var __importStar = this && this.__importStar || function () {
|
|
31
|
+
var ownKeys = function (o) {
|
|
32
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
33
|
+
var ar = [];
|
|
34
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
35
|
+
return ar;
|
|
36
|
+
};
|
|
37
|
+
return ownKeys(o);
|
|
38
|
+
};
|
|
39
|
+
return function (mod) {
|
|
40
|
+
if (mod && mod.__esModule) return mod;
|
|
41
|
+
var result = {};
|
|
42
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
43
|
+
__setModuleDefault(result, mod);
|
|
44
|
+
return result;
|
|
45
|
+
};
|
|
46
|
+
}();
|
|
37
47
|
Object.defineProperty(exports, "__esModule", {
|
|
38
48
|
value: true
|
|
39
49
|
});
|
|
@@ -204,39 +214,6 @@ injectString("ka-GE", "Apply", "\u10D2\u10D0\u10DB\u10DD\u10E7\u10D4\u10DC\u10D4
|
|
|
204
214
|
injectString("el-GR", "Apply", "\u0395\u03C6\u03B1\u03C1\u03BC\u03BF\u03B3\u03AE");
|
|
205
215
|
injectString("et-EE", "Apply", "Rakenda");
|
|
206
216
|
injectString("bg-BG", "Apply", "\u041F\u0440\u0438\u043B\u0430\u0433\u0430\u043D\u0435");
|
|
207
|
-
injectString("cs", "Deselect all", "Zru\u0161it v\xFDb\u011Br v\u0161ech");
|
|
208
|
-
injectString("da-DK", "Deselect all", "Frav\xE6lg alle");
|
|
209
|
-
injectString("de", "Deselect all", "Auswahl f\xFCr alle aufheben");
|
|
210
|
-
injectString("en", "Deselect all", "Deselect all");
|
|
211
|
-
injectString("es", "Deselect all", "Deseleccionar todo");
|
|
212
|
-
injectString("fi-FI", "Deselect all", "Poista kaikki valinnat");
|
|
213
|
-
injectString("fr", "Deselect all", "D\xE9s\xE9lectionner tout");
|
|
214
|
-
injectString("fr-FR", "Deselect all", "D\xE9s\xE9lectionner tout");
|
|
215
|
-
injectString("hu-HU", "Deselect all", "Ne v\xE1lassz ki semmit.");
|
|
216
|
-
injectString("id", "Deselect all", "Batalkan pilih semua");
|
|
217
|
-
injectString("it", "Deselect all", "Deselezionare tutto");
|
|
218
|
-
injectString("ja", "Deselect all", "\u3059\u3079\u3066\u3092\u9078\u629E\u89E3\u9664");
|
|
219
|
-
injectString("ko-KR", "Deselect all", "\uBAA8\uB450 \uC120\uD0DD \uCDE8\uC18C");
|
|
220
|
-
injectString("ms", "Deselect all", "Nyahpilih semua");
|
|
221
|
-
injectString("nb-NO", "Deselect all", "Fjern alle valg");
|
|
222
|
-
injectString("nl", "Deselect all", "Alles deselecteren");
|
|
223
|
-
injectString("pl", "Deselect all", "Usu\u0144 wyb\xF3r wszystkich");
|
|
224
|
-
injectString("pt-BR", "Deselect all", "Desmarcar tudo");
|
|
225
|
-
injectString("pt-PT", "Deselect all", "Desmarcar tudo");
|
|
226
|
-
injectString("sk-SK", "Deselect all", "Zru\u0161 v\xFDber v\u0161etk\xFDch.");
|
|
227
|
-
injectString("sv", "Deselect all", "Avmarkera alla");
|
|
228
|
-
injectString("th", "Deselect all", "\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01\u0E01\u0E32\u0E23\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14");
|
|
229
|
-
injectString("tr", "Deselect all", "T\xFCm\xFCn\xFCn se\xE7imini iptal et");
|
|
230
|
-
injectString("zh-Hans", "Deselect all", "\u53D6\u6D88\u5168\u9009");
|
|
231
|
-
injectString("zh-TW", "Deselect all", "\u53D6\u6D88\u5168\u9078");
|
|
232
|
-
injectString("ro-RO", "Deselect all", "Deselecta\u021Bi tot");
|
|
233
|
-
injectString("ar", "Deselect all", "\u0625\u0644\u063A\u0627\u0621 \u062A\u062D\u062F\u064A\u062F \u0627\u0644\u0643\u0644");
|
|
234
|
-
injectString("lt-LT", "Deselect all", "At\u017Eym\u0117ti visus");
|
|
235
|
-
injectString("lv-LV", "Deselect all", "Atcelt visas atlases");
|
|
236
|
-
injectString("ka-GE", "Deselect all", "\u10E7\u10D5\u10D4\u10DA\u10D0\u10E1 \u10DB\u10DD\u10EE\u10E1\u10DC\u10D0");
|
|
237
|
-
injectString("el-GR", "Deselect all", "\u039A\u03B1\u03C4\u03AC\u03C1\u03B3\u03B7\u03C3\u03B7 \u03CC\u03BB\u03C9\u03BD \u03B5\u03C0\u03B9\u03BB\u03BF\u03B3\u03CE\u03BD");
|
|
238
|
-
injectString("et-EE", "Deselect all", "T\xFChista k\xF5ik valikud");
|
|
239
|
-
injectString("bg-BG", "Deselect all", "\u041F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u0438 \u0438\u0437\u0431\u043E\u0440\u0438");
|
|
240
217
|
injectString("cs", "Select all", "Vybrat v\u0161e");
|
|
241
218
|
injectString("da-DK", "Select all", "V\xE6lg alle");
|
|
242
219
|
injectString("de", "Select all", "Alle ausw\xE4hlen");
|
|
@@ -413,7 +390,8 @@ const DropdownList = ({
|
|
|
413
390
|
onSelect,
|
|
414
391
|
onSingleSelect,
|
|
415
392
|
listData,
|
|
416
|
-
|
|
393
|
+
isSelectAllActive,
|
|
394
|
+
shouldBlockItems,
|
|
417
395
|
backButtonName,
|
|
418
396
|
width,
|
|
419
397
|
minWidth,
|
|
@@ -442,7 +420,7 @@ const DropdownList = ({
|
|
|
442
420
|
const internalListId = (0, react_1.useId)();
|
|
443
421
|
const selectListId = listId || internalListId;
|
|
444
422
|
const handleSelectAllClick = () => {
|
|
445
|
-
onSelectAllClick(
|
|
423
|
+
onSelectAllClick(!!isSelectAllActive);
|
|
446
424
|
};
|
|
447
425
|
const handleBackButtonKeyDown = (0, react_1.useCallback)(event => {
|
|
448
426
|
if (event.key === "ArrowLeft") {
|
|
@@ -470,13 +448,14 @@ const DropdownList = ({
|
|
|
470
448
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
471
449
|
forceSelection ? onSingleSelect(false, newActiveEl || activeValue) : onSingleSelect(false, newActiveEl);
|
|
472
450
|
}, [activeValue, forceSelection, onSingleSelect]);
|
|
473
|
-
const selectButtonLabel =
|
|
474
|
-
const getActionButton = (label, title, icon, isDisabled, clickHandler, size, onKeyDown) => (0, jsx_runtime_1.jsx)("button", {
|
|
451
|
+
const selectButtonLabel = translate("Select all");
|
|
452
|
+
const getActionButton = (label, title, icon, isDisabled, clickHandler, size, onKeyDown, isSelected) => (0, jsx_runtime_1.jsx)("button", {
|
|
475
453
|
type: "button",
|
|
476
454
|
disabled: isDisabled,
|
|
477
455
|
onClick: clickHandler,
|
|
478
456
|
onKeyDown: onKeyDown,
|
|
479
|
-
|
|
457
|
+
"aria-pressed": isSelected,
|
|
458
|
+
className: (0, classNames_1.classNames)(["zen-dropdown-list__item zen-dropdown-list__item--interactive zen-dropdown-list__action-button zen-dropdown-list__action-button-back", isSelected ? "zen-dropdown-list__action-button--selected" : ""]),
|
|
480
459
|
title: title,
|
|
481
460
|
children: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, {
|
|
482
461
|
children: [react_1.default.createElement(icon, {
|
|
@@ -512,11 +491,14 @@ const DropdownList = ({
|
|
|
512
491
|
});
|
|
513
492
|
return values;
|
|
514
493
|
};
|
|
494
|
+
const multiselectOptions = shouldBlockItems ? listData.map(item => Object.assign(Object.assign({}, item), {
|
|
495
|
+
blocked: true
|
|
496
|
+
})) : listData;
|
|
515
497
|
return (0, jsx_runtime_1.jsx)("div", {
|
|
516
498
|
className: "zen-dropdown-list__elements",
|
|
517
499
|
ref: listElementRef,
|
|
518
500
|
children: isMultiselect ? (0, jsx_runtime_1.jsx)(checkboxListWithAction_1.CheckboxListWithAction, {
|
|
519
|
-
options:
|
|
501
|
+
options: multiselectOptions,
|
|
520
502
|
label: "",
|
|
521
503
|
onChange: handleChange,
|
|
522
504
|
onClick: handleClick
|
|
@@ -532,7 +514,7 @@ const DropdownList = ({
|
|
|
532
514
|
value: createValue(listData, activeValue)
|
|
533
515
|
})
|
|
534
516
|
});
|
|
535
|
-
}, [listElementRef, isMultiselect, listData, handleChange, handleClick, handleSingleChange, translate, selectListId, forceSelection, activeValue]);
|
|
517
|
+
}, [listElementRef, isMultiselect, shouldBlockItems, listData, handleChange, handleClick, handleSingleChange, translate, selectListId, forceSelection, activeValue]);
|
|
536
518
|
return (0, jsx_runtime_1.jsxs)("div", Object.assign({
|
|
537
519
|
className: (0, classNames_1.classNames)(["zen-dropdown-list", driveComponentClass || ""])
|
|
538
520
|
}, styleWidth, {
|
|
@@ -550,7 +532,7 @@ const DropdownList = ({
|
|
|
550
532
|
}) : null, backButtonName ? (0, jsx_runtime_1.jsx)("div", {
|
|
551
533
|
className: "zen-dropdown-list__item-wrapper",
|
|
552
534
|
children: getActionButton(backButtonName, translate("Back"), iconBackArrow_1.IconBackArrow, false, onBackButtonClick, "large", handleBackButtonKeyDown)
|
|
553
|
-
}) : null, hasSelectAllButton ? getActionButton(selectButtonLabel, selectButtonLabel, iconCheckRadio_1.IconCheckRadio, !!isSelectAllButtonDisable, handleSelectAllClick, isDrive ? "huger" : "huge") : null, listDataComponent, isWithFooter ? (0, jsx_runtime_1.jsxs)("div", {
|
|
535
|
+
}) : null, hasSelectAllButton ? getActionButton(selectButtonLabel, selectButtonLabel, iconCheckRadio_1.IconCheckRadio, !!isSelectAllButtonDisable, handleSelectAllClick, isDrive ? "huger" : "huge", undefined, isSelectAllActive) : null, listDataComponent, isWithFooter ? (0, jsx_runtime_1.jsxs)("div", {
|
|
554
536
|
className: "zen-dropdown-list__footer",
|
|
555
537
|
children: [(0, jsx_runtime_1.jsx)(button_1.Button, {
|
|
556
538
|
onClick: isMultiselect ? onClearClick : handleClearClick,
|
|
@@ -579,4 +561,4 @@ const DropdownList = ({
|
|
|
579
561
|
}));
|
|
580
562
|
};
|
|
581
563
|
exports.DropdownList = DropdownList;
|
|
582
|
-
exports.TRANSLATIONS = ["Select all", "
|
|
564
|
+
exports.TRANSLATIONS = ["Select all", "Clear", "Back", "No data"];
|
|
@@ -117,7 +117,10 @@ const DropdownRaw = props => {
|
|
|
117
117
|
mobileSheetStackingClassName,
|
|
118
118
|
isError,
|
|
119
119
|
firstParentNodeIsVisible,
|
|
120
|
-
dataAnalyticsId
|
|
120
|
+
dataAnalyticsId,
|
|
121
|
+
hideSelectAllOnSearch = false,
|
|
122
|
+
blockItemsOnSelectAll = false,
|
|
123
|
+
autoPromoteSelectAll = false
|
|
121
124
|
} = props;
|
|
122
125
|
const {
|
|
123
126
|
isFormSection
|
|
@@ -155,7 +158,7 @@ const DropdownRaw = props => {
|
|
|
155
158
|
const isQueryMode = (0, react_1.useMemo)(() => typeof getData === "undefined" && typeof dataItems === "undefined", [getData, dataItems]);
|
|
156
159
|
const isCheckboxMode = (0, react_1.useMemo)(() => checkboxLabel && typeof value === "object" && "isChecked" in value && typeof value.isChecked === "boolean" || false, [checkboxLabel, value]);
|
|
157
160
|
const [initialInChecked] = (0, react_1.useState)(isCheckboxMode ? value.isChecked : undefined);
|
|
158
|
-
const [state, dispatchState] = (0, react_1.useReducer)(stateReducer_1.stateReducer, (0, stateReducer_1.getInitialState)(isFullSelectionMode, isQueryMode ? (fetchState === null || fetchState === void 0 ? void 0 : fetchState.data) || [] : dataItems || [], isFullSelectionMode || isCheckboxMode ? value.selected : value, listLimit, defaultValue ? isFullSelectionMode || isCheckboxMode ? defaultValue.selected : defaultValue : undefined, isFullSelectionMode ? value.isAllSelected : undefined, defaultValue ? isFullSelectionMode ? defaultValue.isAllSelected : undefined : undefined, isCheckboxMode ? value.isChecked : undefined, isCheckboxMode && defaultValue ? defaultValue.isChecked : undefined, firstParentNodeIsVisible));
|
|
161
|
+
const [state, dispatchState] = (0, react_1.useReducer)(stateReducer_1.stateReducer, (0, stateReducer_1.getInitialState)(isFullSelectionMode, isQueryMode ? (fetchState === null || fetchState === void 0 ? void 0 : fetchState.data) || [] : dataItems || [], isFullSelectionMode || isCheckboxMode ? value.selected : value, listLimit, defaultValue ? isFullSelectionMode || isCheckboxMode ? defaultValue.selected : defaultValue : undefined, isFullSelectionMode ? value.isAllSelected : undefined, defaultValue ? isFullSelectionMode ? defaultValue.isAllSelected : undefined : undefined, isCheckboxMode ? value.isChecked : undefined, isCheckboxMode && defaultValue ? defaultValue.isChecked : undefined, firstParentNodeIsVisible, autoPromoteSelectAll));
|
|
159
162
|
const chipStatus = (0, chipStatusProvider_1.useChipStatus)();
|
|
160
163
|
const isMobile = (0, useMobile_1.useMobile)();
|
|
161
164
|
const popupId = (0, react_1.useId)();
|
|
@@ -182,6 +185,7 @@ const DropdownRaw = props => {
|
|
|
182
185
|
const getNamedItemsHasBeenCalled = (0, react_1.useRef)(false);
|
|
183
186
|
const selectedItemsLoader = (0, react_1.useRef)(undefined);
|
|
184
187
|
const previousMapDataItems = (0, react_1.useRef)(isQueryMode ? (fetchState === null || fetchState === void 0 ? void 0 : fetchState.data) || [] : !getData && (dataItems === null || dataItems === void 0 ? void 0 : dataItems.length) ? dataItems : []);
|
|
188
|
+
const previousFetchStateData = (0, react_1.useRef)(isQueryMode ? fetchState === null || fetchState === void 0 ? void 0 : fetchState.data : undefined);
|
|
185
189
|
const prevIsLoading = (0, react_1.useRef)(isLoading);
|
|
186
190
|
const prevIsChecked = (0, react_1.useRef)(isCheckboxMode ? value.isChecked : undefined);
|
|
187
191
|
const currentAllSelected = (0, react_1.useMemo)(() => state.isNestedList || !multiselect || !isFullSelectionMode ? undefined : state.isAllSelected, [state.isNestedList, state.isAllSelected, multiselect, isFullSelectionMode]);
|
|
@@ -388,7 +392,9 @@ const DropdownRaw = props => {
|
|
|
388
392
|
}, [handleClose]);
|
|
389
393
|
const memoizedAllowClosing = (0, react_1.useMemo)(() => state.currentId === undefined || state.currentId === state.rootId, [state.currentId, state.rootId]);
|
|
390
394
|
const handleSingleSelection = (0, react_1.useCallback)((reset, selected) => {
|
|
391
|
-
|
|
395
|
+
var _a, _b;
|
|
396
|
+
const isLeaf = !!selected && !((_b = (_a = state.groupsMap[selected]) === null || _a === void 0 ? void 0 : _a.children) === null || _b === void 0 ? void 0 : _b.length);
|
|
397
|
+
const shouldBeClosed = !hasApplyButton && (memoizedAllowClosing || isLeaf) && (reset || !!selected);
|
|
392
398
|
dispatchState({
|
|
393
399
|
type: stateActionType_1.StateActionType.ChangeSingleSelection,
|
|
394
400
|
payload: {
|
|
@@ -401,7 +407,7 @@ const DropdownRaw = props => {
|
|
|
401
407
|
type: stateActionType_1.StateActionType.SetInputValue,
|
|
402
408
|
payload: ""
|
|
403
409
|
});
|
|
404
|
-
}, [handleEscape, hasApplyButton, memoizedAllowClosing]);
|
|
410
|
+
}, [handleEscape, hasApplyButton, memoizedAllowClosing, state.groupsMap]);
|
|
405
411
|
const handleSelectAllClick = (0, react_1.useCallback)(isAllSelect => {
|
|
406
412
|
if (isFullSelectionMode) {
|
|
407
413
|
dispatchState({
|
|
@@ -537,8 +543,12 @@ const DropdownRaw = props => {
|
|
|
537
543
|
payload: undefined
|
|
538
544
|
});
|
|
539
545
|
}, [errorHandler]);
|
|
540
|
-
const handleDataQuery = (0, react_1.useCallback)((dta, searchVal) => {
|
|
541
|
-
|
|
546
|
+
const handleDataQuery = (0, react_1.useCallback)((dta, searchVal, dataChanged = true) => {
|
|
547
|
+
// Only (re)build groupsMap from a genuine, freshly fetched full list. In query mode the parent's
|
|
548
|
+
// fetchState.data lags behind the typed search value, so when a search is cleared this effect can run
|
|
549
|
+
// with the previous, search-filtered data while searchVal is already empty. Rebuilding groupsMap from
|
|
550
|
+
// that stale subset shrinks it and makes the current selection look like "all selected".
|
|
551
|
+
if (dataChanged && dta.length && !searchVal && !(0, dropdownHelper_1.compareObjectsArrays)(dta, previousMapDataItems.current)) {
|
|
542
552
|
dispatchState({
|
|
543
553
|
type: stateActionType_1.StateActionType.CreateMap,
|
|
544
554
|
payload: dta
|
|
@@ -585,7 +595,9 @@ const DropdownRaw = props => {
|
|
|
585
595
|
if (!isQueryMode || (fetchState === null || fetchState === void 0 ? void 0 : fetchState.isLoading)) {
|
|
586
596
|
return;
|
|
587
597
|
}
|
|
588
|
-
|
|
598
|
+
const dataChanged = (fetchState === null || fetchState === void 0 ? void 0 : fetchState.data) !== previousFetchStateData.current;
|
|
599
|
+
previousFetchStateData.current = fetchState === null || fetchState === void 0 ? void 0 : fetchState.data;
|
|
600
|
+
handleDataQuery((fetchState === null || fetchState === void 0 ? void 0 : fetchState.data) || [], state.inputValue, dataChanged);
|
|
589
601
|
});
|
|
590
602
|
return () => {
|
|
591
603
|
var _a;
|
|
@@ -884,7 +896,15 @@ const DropdownRaw = props => {
|
|
|
884
896
|
});
|
|
885
897
|
}
|
|
886
898
|
if (state.showList) {
|
|
887
|
-
const isSearchMode = state.inputValue && !state.currentId;
|
|
899
|
+
const isSearchMode = Boolean(state.inputValue) && !state.currentId;
|
|
900
|
+
const selectAllActiveForCurrentLevel = state.selectAllActiveForId === (state.currentId || state.rootId);
|
|
901
|
+
// DESIGN INTENT: button state (isSelectAllActive) is truth-based — shows pressed whenever
|
|
902
|
+
// all items are actually selected, including after search+clear where selectAllActiveForId
|
|
903
|
+
// was cleared. shouldBlockItems is intent-based — only activates when "Select all" was
|
|
904
|
+
// explicitly clicked (selectAllActiveForCurrentLevel), never from manual individual selection.
|
|
905
|
+
// This asymmetry is intentional: the button restores its visual state post-search, but
|
|
906
|
+
// blocking does not, to avoid unexpected UX when users manually select all items.
|
|
907
|
+
const isAllCurrentLevelSelected = !isSearchMode && !isFullSelectionMode ? (0, dropdownHelper_1.isEveryItemSelected)((0, dropdownHelper_1.getListDataWithDisabled)(state.listData, state.isNestedList), state.selectedIds) : false;
|
|
888
908
|
const currentListData = (0, dropdownHelper_1.createListDataOptions)(state, translate, isSearchMode ? (0, dropdownHelper_1.sortDropdownItemArray)(state.listData, sortFn).slice(0, listLimit).filter(el => el.id !== state.rootId) :
|
|
889
909
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
890
910
|
(0, dropdownHelper_1.sortDropdownItemArray)(((_b = state.groupsMap[state.currentId || state.rootId]) === null || _b === void 0 ? void 0 : _b.children) || [], sortFn).slice(0, listLimit) || [], multiselect, currentAllSelected);
|
|
@@ -900,16 +920,17 @@ const DropdownRaw = props => {
|
|
|
900
920
|
activeValue: state.selectedIds.length ? state.selectedIds[0] : "root",
|
|
901
921
|
backButtonName: state.currentId && state.groupsMap[state.currentId] ? (0, groupsHelper_1.getGroupDescription)(state.groupsMap[state.currentId], translate) : undefined,
|
|
902
922
|
filterName: isMobile ? undefined : filterName,
|
|
903
|
-
|
|
923
|
+
isSelectAllActive: isFullSelectionMode ? currentAllSelected : isSearchMode ? (0, dropdownHelper_1.isEveryItemSelected)((0, dropdownHelper_1.getListDataWithDisabled)(state.listData, state.isNestedList), state.selectedIds) : selectAllActiveForCurrentLevel || isAllCurrentLevelSelected,
|
|
924
|
+
shouldBlockItems: blockItemsOnSelectAll && !state.inputValue && !isFullSelectionMode && selectAllActiveForCurrentLevel,
|
|
904
925
|
isMultiselect: multiselect,
|
|
905
926
|
forceSelection: forceSelection,
|
|
906
927
|
listData: currentListData,
|
|
907
928
|
width: width || currentWidth === 180 ? undefined : currentWidth,
|
|
908
929
|
minWidth: currentWidth,
|
|
909
|
-
hasSelectAllButton: selectAllButton && multiselect,
|
|
930
|
+
hasSelectAllButton: selectAllButton && multiselect && !(hideSelectAllOnSearch && state.inputValue),
|
|
910
931
|
hasApplyButton: hasApplyButton,
|
|
911
932
|
isApplyDisabled: memoizedIsApplyButtonDisabled,
|
|
912
|
-
isSelectAllButtonDisable: currentListData.length === 0 || isSearchMode
|
|
933
|
+
isSelectAllButtonDisable: currentListData.length === 0 || isSearchMode && state.isNestedList && (0, dropdownHelper_1.isAllItemsHasOneParent)(state.listData.filter(el => el.id !== state.rootId), (((_c = state.groupsMap[state.rootId]) === null || _c === void 0 ? void 0 : _c.children) || []).map(el => el.id)),
|
|
913
934
|
isClearButtonDisabled: memoizedIsClearButtonDisabled,
|
|
914
935
|
isWithFooter: memoizedWithFooter && !isMobile,
|
|
915
936
|
isMobile: isMobile,
|
|
@@ -921,7 +942,7 @@ const DropdownRaw = props => {
|
|
|
921
942
|
});
|
|
922
943
|
}
|
|
923
944
|
return null;
|
|
924
|
-
}, [state, isLoading, isQueryMode, fetchState === null || fetchState === void 0 ? void 0 : fetchState.isLoading, fetchState === null || fetchState === void 0 ? void 0 : fetchState.error, handleClearClick, handleCancelClick, handleApplyClick, hasApplyButton, memoizedWithFooter, translate, sortFn, listLimit, multiselect, currentAllSelected, handleBackButtonClick, handleSelectAllInSearch, handleSelectAllClick, handleSelect, handleChangeCurrentId, handleSingleSelection, isMobile, filterName, forceSelection, width, selectAllButton, memoizedIsApplyButtonDisabled, memoizedIsClearButtonDisabled, isCheckboxMode, handleCheckboxChange, checkboxLabel, selectListId]);
|
|
945
|
+
}, [state, isLoading, isQueryMode, fetchState === null || fetchState === void 0 ? void 0 : fetchState.isLoading, fetchState === null || fetchState === void 0 ? void 0 : fetchState.error, handleClearClick, handleCancelClick, handleApplyClick, hasApplyButton, memoizedWithFooter, translate, sortFn, listLimit, multiselect, currentAllSelected, handleBackButtonClick, handleSelectAllInSearch, handleSelectAllClick, handleSelect, handleChangeCurrentId, handleSingleSelection, isMobile, filterName, forceSelection, width, selectAllButton, hideSelectAllOnSearch, memoizedIsApplyButtonDisabled, memoizedIsClearButtonDisabled, isCheckboxMode, handleCheckboxChange, checkboxLabel, selectListId, isFullSelectionMode, blockItemsOnSelectAll]);
|
|
925
946
|
const currentStringFromSelected = isFullSelectionMode && hasApplyButton && state.globalIsAllSelected || isFullSelectionMode && !hasApplyButton && state.isAllSelected ? (0, dropdownHelper_1.getStringFromAllSelected)(state.groupsMap, translate, state.rootId) : (0, dropdownHelper_1.getStringFromSelected)(hasApplyButton ? state.globalSelectedIds : state.selectedIds, state.groupsMapSelected, translate, state.rootId);
|
|
926
947
|
const memoizedCurrentSelection = (0, react_1.useMemo)(() => showSelection && !state.inputValue ? currentStringFromSelected : "", [showSelection, state.inputValue, currentStringFromSelected]);
|
|
927
948
|
const parentTriggerWidth = ((_b = comboboxRef.current) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect().width) || 420;
|
|
@@ -1020,4 +1041,4 @@ const DropdownRaw = props => {
|
|
|
1020
1041
|
};
|
|
1021
1042
|
exports.DropdownRaw = DropdownRaw;
|
|
1022
1043
|
exports.DropdownRaw.displayName = "DropdownRaw";
|
|
1023
|
-
exports.TRANSLATIONS = ["Filter by group", "Open filter", "Clear search", "Select all", "
|
|
1044
|
+
exports.TRANSLATIONS = ["Filter by group", "Open filter", "Clear search", "Select all", "Clear", "Back", "No data"];
|
|
@@ -25,6 +25,8 @@ export interface IDropdownState {
|
|
|
25
25
|
listLimit: number;
|
|
26
26
|
resultsExceedListLimit?: boolean;
|
|
27
27
|
isAllSelected?: boolean;
|
|
28
|
+
selectAllActiveForId?: string;
|
|
29
|
+
autoPromoteSelectAll?: boolean;
|
|
28
30
|
globalIsAllSelected?: boolean;
|
|
29
31
|
defaultValueIsAllSelected?: boolean;
|
|
30
32
|
isChecked?: boolean;
|
|
@@ -34,7 +36,7 @@ export interface IDropdownState {
|
|
|
34
36
|
}
|
|
35
37
|
export interface IStateReducer extends Reducer<IDropdownState, TStateAction> {
|
|
36
38
|
}
|
|
37
|
-
export declare const getInitialState: (isFullSelectionMode: boolean, comboItems: IDropdownRawItem[], selection: string[], listLimit: number, defaultValue?: string[], isAllSelected?: boolean, defaultValueIsAllSelected?: boolean, isChecked?: boolean, defaultValueIsChecked?: boolean, firstParentNodeIsVisible?: boolean) => {
|
|
39
|
+
export declare const getInitialState: (isFullSelectionMode: boolean, comboItems: IDropdownRawItem[], selection: string[], listLimit: number, defaultValue?: string[], isAllSelected?: boolean, defaultValueIsAllSelected?: boolean, isChecked?: boolean, defaultValueIsChecked?: boolean, firstParentNodeIsVisible?: boolean, autoPromoteSelectAll?: boolean) => {
|
|
38
40
|
groupsMap: ITypedHash<IGroupTree>;
|
|
39
41
|
selectedIds: string[];
|
|
40
42
|
globalSelectedIds: string[];
|
|
@@ -62,5 +64,6 @@ export declare const getInitialState: (isFullSelectionMode: boolean, comboItems:
|
|
|
62
64
|
listLimit: number;
|
|
63
65
|
resultsExceedListLimit: boolean;
|
|
64
66
|
firstParentNodeIsVisible: boolean | undefined;
|
|
67
|
+
autoPromoteSelectAll: boolean | undefined;
|
|
65
68
|
};
|
|
66
69
|
export declare function stateReducer(state: IDropdownState, action: TStateAction): IDropdownState;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getInitialState = exports.ROOT_GROUP_ID = void 0;
|
|
4
|
+
exports.stateReducer = stateReducer;
|
|
4
5
|
const stateActionType_1 = require("./stateActionType");
|
|
5
6
|
const stateReducerHelper_1 = require("./stateReducerHelper");
|
|
6
7
|
const groupsFilterHelper_1 = require("../../groupsFilterRaw/groupsFilterHelper");
|
|
7
8
|
exports.ROOT_GROUP_ID = "zen_dropdown_root_group_id";
|
|
8
|
-
const getInitialState = (isFullSelectionMode, comboItems, selection, listLimit, defaultValue, isAllSelected, defaultValueIsAllSelected, isChecked, defaultValueIsChecked, firstParentNodeIsVisible) => {
|
|
9
|
+
const getInitialState = (isFullSelectionMode, comboItems, selection, listLimit, defaultValue, isAllSelected, defaultValueIsAllSelected, isChecked, defaultValueIsChecked, firstParentNodeIsVisible, autoPromoteSelectAll) => {
|
|
9
10
|
const updatedGroupsMapSelected = new Map();
|
|
10
11
|
const updatedGroupsMap = comboItems.length ? (0, groupsFilterHelper_1.createGroupsMap)(comboItems, exports.ROOT_GROUP_ID) : {};
|
|
11
12
|
const namelessIds = new Set();
|
|
@@ -50,7 +51,8 @@ const getInitialState = (isFullSelectionMode, comboItems, selection, listLimit,
|
|
|
50
51
|
globalIsChecked: isChecked,
|
|
51
52
|
listLimit,
|
|
52
53
|
resultsExceedListLimit: false,
|
|
53
|
-
firstParentNodeIsVisible: firstParentNodeIsVisible
|
|
54
|
+
firstParentNodeIsVisible: firstParentNodeIsVisible,
|
|
55
|
+
autoPromoteSelectAll: autoPromoteSelectAll
|
|
54
56
|
};
|
|
55
57
|
};
|
|
56
58
|
exports.getInitialState = getInitialState;
|
|
@@ -75,12 +77,14 @@ function stateReducer(state, action) {
|
|
|
75
77
|
}
|
|
76
78
|
});
|
|
77
79
|
}
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
const
|
|
80
|
+
const updatedGroupsMapCount = Object.keys(updatedGroupsMap).length;
|
|
81
|
+
const isCurrentListNested = updatedGroupsMapCount > 0 && (updatedGroupsMap[exports.ROOT_GROUP_ID].children || []).some(el => el.children && el.children.length);
|
|
82
|
+
const groupsMapLength = updatedGroupsMapCount - 1;
|
|
83
|
+
const newResultsExceedListLimit = groupsMapLength >= state.listLimit;
|
|
84
|
+
const selectedInNewMap = state.selectedIds.filter(id => id in updatedGroupsMap).length - newNamelessIds.size;
|
|
85
|
+
const newIsAllSelected = (0, stateReducerHelper_1.computeIsAllSelected)(state.isAllSelected, state.isFullSelectionMode, newResultsExceedListLimit, groupsMapLength, selectedInNewMap);
|
|
82
86
|
const rootId = (0, stateReducerHelper_1.getRootId)(updatedGroupsMap, exports.ROOT_GROUP_ID, state.firstParentNodeIsVisible);
|
|
83
|
-
return Object.assign(Object.assign(
|
|
87
|
+
return Object.assign(Object.assign({}, state), { groupsMap: updatedGroupsMap, rootId: rootId || exports.ROOT_GROUP_ID, namelessIds: newNamelessIds, isNestedList: state.isNestedList ? state.isNestedList : isCurrentListNested, resultsExceedListLimit: newResultsExceedListLimit, isAllSelected: newIsAllSelected });
|
|
84
88
|
}
|
|
85
89
|
case stateActionType_1.StateActionType.SetListData: {
|
|
86
90
|
state.selectedIds.forEach(id => {
|
|
@@ -105,9 +109,9 @@ function stateReducer(state, action) {
|
|
|
105
109
|
case stateActionType_1.StateActionType.SetIsOpenCombo:
|
|
106
110
|
return Object.assign(Object.assign({}, state), { isOpenCombo: payload });
|
|
107
111
|
case stateActionType_1.StateActionType.ResetSelection:
|
|
108
|
-
return Object.assign(Object.assign({}, state), { selectedIds: [...state.defaultValue], isAllSelected: state.defaultValueIsAllSelected, isChecked: typeof state.isChecked === "boolean" ? state.defaultValueIsChecked || false : undefined });
|
|
112
|
+
return Object.assign(Object.assign({}, state), { selectedIds: [...state.defaultValue], isAllSelected: state.defaultValueIsAllSelected, isChecked: typeof state.isChecked === "boolean" ? state.defaultValueIsChecked || false : undefined, selectAllActiveForId: undefined });
|
|
109
113
|
case stateActionType_1.StateActionType.ResetStateToGlobal:
|
|
110
|
-
return Object.assign(Object.assign({}, state), { selectedIds: [...state.globalSelectedIds], isAllSelected: state.globalIsAllSelected, isChecked: state.globalIsChecked });
|
|
114
|
+
return Object.assign(Object.assign({}, state), { selectedIds: [...state.globalSelectedIds], isAllSelected: state.globalIsAllSelected, isChecked: state.globalIsChecked, selectAllActiveForId: undefined });
|
|
111
115
|
case stateActionType_1.StateActionType.NothingToShow:
|
|
112
116
|
return Object.assign(Object.assign({}, state), { showWaiting: false, showEmptyList: false, showList: false });
|
|
113
117
|
case stateActionType_1.StateActionType.Show:
|
|
@@ -119,7 +123,7 @@ function stateReducer(state, action) {
|
|
|
119
123
|
case stateActionType_1.StateActionType.ShowList:
|
|
120
124
|
return Object.assign(Object.assign({}, state), { showWaiting: false, showEmptyList: false, showList: true });
|
|
121
125
|
case stateActionType_1.StateActionType.SetInputValue:
|
|
122
|
-
return Object.assign(Object.assign({}, state), { inputValue: payload });
|
|
126
|
+
return Object.assign(Object.assign({}, state), { inputValue: payload, selectAllActiveForId: undefined });
|
|
123
127
|
case stateActionType_1.StateActionType.SetState: {
|
|
124
128
|
const newNamelessIds = new Set(state.namelessIds);
|
|
125
129
|
payload.selected.forEach(id => {
|
|
@@ -223,8 +227,10 @@ function stateReducer(state, action) {
|
|
|
223
227
|
state.groupsMapSelected.set(id, Object.assign(Object.assign({ id }, (item.name ? { name: item.name } : {})), (item.color ? { color: item.color } : {})));
|
|
224
228
|
}
|
|
225
229
|
});
|
|
226
|
-
const
|
|
227
|
-
|
|
230
|
+
const newIsAllSelected = state.autoPromoteSelectAll
|
|
231
|
+
? currentSelectedIds.size >= Object.keys(state.groupsMap).length - 1
|
|
232
|
+
: state.isAllSelected;
|
|
233
|
+
return Object.assign(Object.assign({}, state), { selectedIds: Array.from(currentSelectedIds), selectAllActiveForId: undefined, isAllSelected: newIsAllSelected });
|
|
228
234
|
}
|
|
229
235
|
case stateActionType_1.StateActionType.ChangeBulkSelection: {
|
|
230
236
|
const { itemsIds, value } = payload;
|
|
@@ -257,8 +263,10 @@ function stateReducer(state, action) {
|
|
|
257
263
|
state.groupsMapSelected.set(id, Object.assign(Object.assign({ id }, (item.name ? { name: item.name } : {})), (item.color ? { color: item.color } : {})));
|
|
258
264
|
}
|
|
259
265
|
});
|
|
260
|
-
const
|
|
261
|
-
|
|
266
|
+
const newIsAllSelected = state.autoPromoteSelectAll
|
|
267
|
+
? currentSelectedIds.size >= Object.keys(state.groupsMap).length - 1
|
|
268
|
+
: state.isAllSelected;
|
|
269
|
+
return Object.assign(Object.assign({}, state), { selectedIds: Array.from(currentSelectedIds), selectAllActiveForId: undefined, isAllSelected: newIsAllSelected });
|
|
262
270
|
}
|
|
263
271
|
case stateActionType_1.StateActionType.SelectAllChildren: {
|
|
264
272
|
const currentEl = state.groupsMap[payload];
|
|
@@ -295,7 +303,7 @@ function stateReducer(state, action) {
|
|
|
295
303
|
state.groupsMapSelected.set(id, Object.assign(Object.assign({ id }, (item.name ? { name: item.name } : {})), (item.color ? { color: item.color } : {})));
|
|
296
304
|
}
|
|
297
305
|
});
|
|
298
|
-
return Object.assign(Object.assign({}, state), { selectedIds: Array.from(newSelected) });
|
|
306
|
+
return Object.assign(Object.assign({}, state), { selectedIds: Array.from(newSelected), selectAllActiveForId: payload });
|
|
299
307
|
}
|
|
300
308
|
case stateActionType_1.StateActionType.DeselectItemsFromAllSelected: {
|
|
301
309
|
const currentEl = state.groupsMap[state.rootId];
|
|
@@ -319,12 +327,16 @@ function stateReducer(state, action) {
|
|
|
319
327
|
state.groupsMapSelected.set(id, Object.assign(Object.assign({ id }, (item.name ? { name: item.name } : {})), (item.color ? { color: item.color } : {})));
|
|
320
328
|
}
|
|
321
329
|
});
|
|
322
|
-
return Object.assign(Object.assign({}, state), { selectedIds: Array.from(newSelected), isAllSelected: state.isFullSelectionMode ? false : undefined });
|
|
330
|
+
return Object.assign(Object.assign({}, state), { selectedIds: Array.from(newSelected), isAllSelected: state.isFullSelectionMode ? false : undefined, selectAllActiveForId: undefined });
|
|
323
331
|
}
|
|
324
332
|
case stateActionType_1.StateActionType.ToggleValueForAllSelected: {
|
|
325
333
|
const currentEl = state.groupsMap[state.rootId];
|
|
334
|
+
// selectAllActiveForId tracks when "Select all" was clicked at this level, even when
|
|
335
|
+
// autoPromoteSelectAll=false keeps isAllSelected=false. Without this fallback, a second
|
|
336
|
+
// click would incorrectly clear selections and leave the button stuck as pressed.
|
|
337
|
+
const effectiveIsAllSelected = !!state.isAllSelected || state.selectAllActiveForId === (state.currentId || state.rootId);
|
|
326
338
|
const newSelected = new Set();
|
|
327
|
-
|
|
339
|
+
effectiveIsAllSelected &&
|
|
328
340
|
((currentEl === null || currentEl === void 0 ? void 0 : currentEl.children) || []).forEach(el => {
|
|
329
341
|
if (!newSelected.has(el.id) && el.disabled) {
|
|
330
342
|
newSelected.add(el.id);
|
|
@@ -337,9 +349,8 @@ function stateReducer(state, action) {
|
|
|
337
349
|
state.groupsMapSelected.set(id, Object.assign(Object.assign({ id }, (item.name ? { name: item.name } : {})), (item.color ? { color: item.color } : {})));
|
|
338
350
|
}
|
|
339
351
|
});
|
|
340
|
-
const updatedIsAllSelectedValue = state.isFullSelectionMode ? !
|
|
341
|
-
|
|
342
|
-
return Object.assign(Object.assign(Object.assign({}, state), { selectedIds: state.isAllSelected ? Array.from(newSelected) : [], isAllSelected: updatedIsAllSelectedValue }), additionalStateUpdates);
|
|
352
|
+
const updatedIsAllSelectedValue = state.isFullSelectionMode ? !effectiveIsAllSelected : undefined;
|
|
353
|
+
return Object.assign(Object.assign({}, state), { selectedIds: effectiveIsAllSelected ? Array.from(newSelected) : [], isAllSelected: updatedIsAllSelectedValue, selectAllActiveForId: undefined });
|
|
343
354
|
}
|
|
344
355
|
case stateActionType_1.StateActionType.DeselectAllChildren: {
|
|
345
356
|
const childrenForDeselect = [];
|
|
@@ -351,7 +362,7 @@ function stateReducer(state, action) {
|
|
|
351
362
|
});
|
|
352
363
|
const newSelected = new Set(state.selectedIds);
|
|
353
364
|
childrenForDeselect.forEach(childId => newSelected.delete(childId));
|
|
354
|
-
return Object.assign(Object.assign({}, state), { selectedIds: Array.from(newSelected) });
|
|
365
|
+
return Object.assign(Object.assign({}, state), { selectedIds: Array.from(newSelected), selectAllActiveForId: undefined });
|
|
355
366
|
}
|
|
356
367
|
case stateActionType_1.StateActionType.SetFirstParentNodeIsVisible: {
|
|
357
368
|
if (state.firstParentNodeIsVisible === payload) {
|
|
@@ -365,4 +376,3 @@ function stateReducer(state, action) {
|
|
|
365
376
|
}
|
|
366
377
|
}
|
|
367
378
|
}
|
|
368
|
-
exports.stateReducer = stateReducer;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { IDropdownState } from "./stateReducer";
|
|
2
1
|
import { IDropdownRawItem } from "../types";
|
|
3
2
|
import { IGroupTree, ITypedHash } from "../../groupsFilterRaw/groupsFilterInterfaces";
|
|
4
3
|
export declare function getChildList(childArr: IDropdownRawItem[] | undefined): IDropdownRawItem[];
|
|
5
|
-
export declare const
|
|
4
|
+
export declare const computeIsAllSelected: (currentIsAllSelected: boolean | undefined, isFullSelectionMode: boolean, resultsExceedListLimit: boolean | undefined, groupsMapLength: number, selectedCount: number) => boolean | undefined;
|
|
6
5
|
export declare const getRootId: (groupsMap: ITypedHash<IGroupTree>, rootIdKey: string, firstParentNodeIsVisible?: boolean) => string | undefined;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getRootId = exports.
|
|
3
|
+
exports.getRootId = exports.computeIsAllSelected = void 0;
|
|
4
|
+
exports.getChildList = getChildList;
|
|
4
5
|
const groupsHelper_1 = require("../../groupsFilterRaw/groupsHelper");
|
|
5
6
|
function getChildList(childArr) {
|
|
6
7
|
const list = [];
|
|
@@ -16,18 +17,12 @@ function getChildList(childArr) {
|
|
|
16
17
|
});
|
|
17
18
|
return list;
|
|
18
19
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
additionalStateUpdates.isAllSelected = true;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return additionalStateUpdates;
|
|
29
|
-
};
|
|
30
|
-
exports.updateAllSelectedStateValueBasedOnTotalSelected = updateAllSelectedStateValueBasedOnTotalSelected;
|
|
20
|
+
const computeIsAllSelected = (currentIsAllSelected, isFullSelectionMode, resultsExceedListLimit, groupsMapLength, selectedCount) => !resultsExceedListLimit && isFullSelectionMode && groupsMapLength > 0
|
|
21
|
+
? selectedCount >= groupsMapLength
|
|
22
|
+
? true
|
|
23
|
+
: currentIsAllSelected
|
|
24
|
+
: currentIsAllSelected;
|
|
25
|
+
exports.computeIsAllSelected = computeIsAllSelected;
|
|
31
26
|
const getRootId = (groupsMap, rootIdKey, firstParentNodeIsVisible) => {
|
|
32
27
|
var _a;
|
|
33
28
|
if (Object.keys(groupsMap).length === 0) {
|
|
@@ -62,6 +62,26 @@ interface IDropdownBase extends IChipsParent {
|
|
|
62
62
|
mobileSheetStackingClassName?: string;
|
|
63
63
|
firstParentNodeIsVisible?: boolean;
|
|
64
64
|
dataAnalyticsId?: string;
|
|
65
|
+
/**
|
|
66
|
+
* When `true`, hides the "Select all" button while the user has an active search query.
|
|
67
|
+
* The button reappears when the search field is cleared.
|
|
68
|
+
* @default false
|
|
69
|
+
*/
|
|
70
|
+
hideSelectAllOnSearch?: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* When `true`, individual list items are visually blocked (disabled) while "Select all" is
|
|
73
|
+
* active at the current level, preventing partial deselection after a bulk selection.
|
|
74
|
+
* Has no effect in full-selection mode (`value` with `isAllSelected`).
|
|
75
|
+
* @default false
|
|
76
|
+
*/
|
|
77
|
+
blockItemsOnSelectAll?: boolean;
|
|
78
|
+
/**
|
|
79
|
+
* When `true`, automatically promotes `isAllSelected` to `true` when all available items
|
|
80
|
+
* are individually checked. Only applies in full-selection mode (value with `isAllSelected`).
|
|
81
|
+
* Has no effect in standard mode (`value: string[]`).
|
|
82
|
+
* @default false
|
|
83
|
+
*/
|
|
84
|
+
autoPromoteSelectAll?: boolean;
|
|
65
85
|
}
|
|
66
86
|
interface IDropdownBaseDefault {
|
|
67
87
|
disabled?: boolean;
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
36
|
exports.FeedbackContainer = void 0;
|
|
27
37
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
@@ -11,7 +11,8 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
11
11
|
return t;
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.
|
|
14
|
+
exports.FiltersDropdownDisplayName = void 0;
|
|
15
|
+
exports.FiltersDropdown = FiltersDropdown;
|
|
15
16
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
16
17
|
const react_1 = require("react");
|
|
17
18
|
const classNames_1 = require("../../commonHelpers/classNames/classNames");
|
|
@@ -64,5 +65,4 @@ function FiltersDropdown(_a) {
|
|
|
64
65
|
}
|
|
65
66
|
return (0, jsx_runtime_1.jsx)(FiltersDropdownInner, Object.assign({}, props), `key_${props.id}`);
|
|
66
67
|
}
|
|
67
|
-
exports.FiltersDropdown = FiltersDropdown;
|
|
68
68
|
FiltersDropdown.displayName = exports.FiltersDropdownDisplayName;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from "react";
|
|
1
|
+
import React, { ReactNode } from "react";
|
|
2
2
|
import { FiltersChip, IFiltersChip } from "./filtersChip";
|
|
3
3
|
import { FiltersDateRange, IFiltersDateRangeItem, TFiltersDateRangeState } from "./filtersDateRange";
|
|
4
4
|
import { FiltersDropdown, IFiltersDropdown, TFiltersDropdownAllStates } from "./filtersDropdown";
|
|
@@ -49,4 +49,4 @@ export declare const allowedFiltersComponents: ({
|
|
|
49
49
|
({ ...props }: IFiltersChip): import("react/jsx-runtime").JSX.Element;
|
|
50
50
|
displayName: string;
|
|
51
51
|
} | typeof FiltersDropdown)[];
|
|
52
|
-
export declare const getAllowedFilters: <T extends
|
|
52
|
+
export declare const getAllowedFilters: <T extends ReactNode>(items: T[]) => React.ReactElement<unknown, string | React.JSXElementConstructor<any>>[];
|