{"version":3,"file":"590.8fac6cb43ed44ed71353.js","mappings":"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ACT,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,OAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ/C,MAAO,CACH,KACA,KACA,KACA,KACA,KACA,KACA,MAEJgD,KAAM,CACF,SACA,SACA,UACA,YACA,WACA,SACA,aAGR,cAAe,CACXF,YAAa,CACT,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,OAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ/C,MAAO,CACH,KACA,KACA,KACA,KACA,KACA,KACA,MAEJgD,KAAM,CACF,SACA,SACA,UACA,YACA,WACA,SACA,cAIZ9zB,OAAQ,CACJ/+B,OAAQ,CACJ2yD,YAAa,CACT,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,OAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAM,CACF,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,aAGR,cAAe,CACXF,YAAa,CACT,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,OAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAM,CACF,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,cAIZC,SAAU,CACN9yD,OAAQ,CACJ2yD,YAAa,CACT,KACA,KACA,KACA,MAEJC,OAAQ,CACJ,IACA,IACA,IACA,KAEJC,KAAM,CACF,cACA,cACA,cACA,gBAGR,cAAe,CACXF,YAAa,CACT,KACA,KACA,KACA,MAEJC,OAAQ,CACJ,IACA,IACA,IACA,KAEJC,KAAM,CACF,cACA,cACA,cACA,iBAIZE,WAAY,CACR/yD,OAAQ,CACJ2yD,YAAa,CACTK,SAAU,WACVC,GAAI,KACJ,iBAAkB,KAClBC,KAAM,OACNC,GAAI,KACJ,iBAAkB,KAClBC,SAAU,iBACVC,WAAY,mBACZC,SAAU,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FACR,CACD/8H,KAAM,IACN+8H,QAAS,oPACR,CACD/8H,KAAM,IACN+8H,QAAS,oPACR,CACD/8H,KAAM,IACN+8H,QAAS,oNACR,CACD/8H,KAAM,KACN+8H,QAAS,sBACR,CACD/8H,KAAM,KACN+8H,QAAS,wBACR,CACD/8H,KAAM,IACN+8H,QAAS,idACR,CACD/8H,KAAM,IACN+8H,QAAS,uHACR,CACD/8H,KAAM,KACN+8H,QAAS,wBACR,CACD/8H,KAAM,IACN+8H,QAAS,oJACR,CACD/8H,KAAM,IACN+8H,QAAS,8EACR,CACD/8H,KAAM,IACN+8H,QAAS,oNACR,CACD/8H,KAAM,IACN+8H,QAAS,0MACR,CACD/8H,KAAM,IACN+8H,QAAS,keACR,CACD/8H,KAAM,KACN+8H,QAAS,wBACR,CACD/8H,KAAM,KACN+8H,QAAS,gDACR,CACD/8H,KAAM,KACN+8H,QAAS,wBACR,CACD/8H,KAAM,KACN+8H,QAAS,wBACR,CACD/8H,KAAM,KACN+8H,QAAS,uCACR,CACD/8H,KAAM,KACN+8H,QAAS,wBACR,CACD/8H,KAAM,IACN+8H,QAAS,mIACR,CACD/8H,KAAM,IACN+8H,QAAS,wLACR,CACD/8H,KAAM,IACN+8H,QAAS,sNACR,CACD/8H,KAAM,KACN+8H,QAAS,mCACR,CACD/8H,KAAM,IACN+8H,QAAS,4aACR,CACD/8H,KAAM,IACN+8H,QAAS,6FACR,CACD/8H,KAAM,IACN+8H,QAAS,qNACR,CACD/8H,KAAM,IACN+8H,QAAS,yNACR,CACD/8H,KAAM,KACN+8H,QAAS,sBACR,CACD/8H,KAAM,IACN+8H,QAAS,oRACR,CACD/8H,KAAM,KACN+8H,QAAS,sBACR,CACD/8H,KAAM,IACN+8H,QAAS,0FACR,CACD/8H,KAAM,IACN+8H,QAAS,+MACR,CACD/8H,KAAM,IACN+8H,QAAS,kQACR,CACD/8H,KAAM,KACN+8H,QAAS,sBACR,CACD/8H,KAAM,IACN+8H,QAAS,uHACR,CACD/8H,KAAM,IACN+8H,QAAS,8PACR,CACD/8H,KAAM,KACN+8H,QAAS,sBACR,CACD/8H,KAA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","sources":["webpack://flowingly-runner/./node_modules/@mui/system/esm/display.js","webpack://flowingly-runner/./node_modules/@mui/system/esm/flexbox.js","webpack://flowingly-runner/./node_modules/@mui/system/esm/positions.js","webpack://flowingly-runner/./node_modules/@mui/system/esm/shadows.js","webpack://flowingly-runner/./node_modules/@mui/system/esm/typography.js","webpack://flowingly-runner/./node_modules/@mui/system/esm/getThemeValue.js","webpack://flowingly-runner/./node_modules/@mui/system/esm/Box/Box.js","webpack://flowingly-runner/./node_modules/@mui/system/esm/cssVars/createCssVarsTheme.js","webpack://flowingly-runner/./node_modules/@mui/system/esm/responsivePropType.js","webpack://flowingly-runner/./node_modules/@mui/system/esm/Container/Container.js","webpack://flowingly-runner/./node_modules/@mui/system/esm/Container/containerClasses.js","webpack://flowingly-runner/./node_modules/@mui/system/esm/Unstable_Grid/Grid.js","webpack://flowingly-runner/./node_modules/@mui/system/esm/Unstable_Grid/gridClasses.js","webpack://flowingly-runner/./node_modules/@mui/system/esm/Stack/Stack.js","webpack://flowingly-runner/./node_modules/@mui/system/esm/Stack/stackClasses.js","webpack://flowingly-runner/./node_modules/@mui/system/esm/index.js","webpack://flowingly-runner/./node_modules/@progress/kendo-data-query/dist/es/utils.js","webpack://flowingly-runner/./node_modules/@progress/kendo-data-query/dist/es/funcs.js","webpack://flowingly-runner/./node_modules/@progress/kendo-data-query/dist/es/filtering/filter-descriptor.interface.js","webpack://flowingly-runner/./node_modules/@progress/kendo-data-query/dist/es/accessor.js","webpack://flowingly-runner/./node_modules/@progress/kendo-data-query/dist/es/odata.operators.js","webpack://flowingly-runner/./node_modules/@progress/kendo-data-query/dist/es/mvc/operators.js","webpack://flowingly-runner/./node_modules/@progress/kendo-data-query/dist/es/filtering/operators.enum.js","webpack://flowingly-runner/./node_modules/@progress/kendo-data-query/dist/es/filter-serialization.common.js","webpack://flowingly-runner/./node_modules/@progress/kendo-data-query/dist/es/mvc/deserialization.js","webpack://flowingly-runner/./node_modules/@progress/kendo-data-query/dist/es/sorting/sort-array.operator.js","webpack://flowingly-runner/./node_modules/@progress/kendo-data-query/dist/es/transducers.js","webpack://flowingly-runner/./node_modules/@progress/kendo-data-query/dist/es/filtering/filter.operators.js","webpack://flowingly-runner/./node_modules/@progress/kendo-data-query/dist/es/grouping/aggregate.operators.js","webpack://flowingly-runner/./node_modules/@progress/kendo-data-query/dist/es/filtering/filter-no-eval.js","webpack://flowingly-runner/./node_modules/@progress/kendo-data-query/dist/es/filtering/filter-expression.factory.js","webpack://flowingly-runner/./node_modules/@progress/kendo-data-query/dist/es/array.operators.js","webpack://flowingly-runner/./node_modules/@progress/kendo-data-query/dist/es/grouping/group.operators.js","webpack://flowingly-runner/./node_modules/@progress/kendo-licensing/dist/index-esm.js","webpack://flowingly-runner/./node_modules/dom-helpers/esm/removeClass.js","webpack://flowingly-runner/./node_modules/react-transition-group/esm/CSSTransition.js","webpack://flowingly-runner/./node_modules/dom-helpers/esm/addClass.js","webpack://flowingly-runner/./node_modules/dom-helpers/esm/hasClass.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-animation/dist/es/AnimationChild.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-animation/dist/es/package-metadata.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-animation/dist/es/Animation.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-animation/dist/es/Reveal.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-animation/dist/es/util.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-buttons/dist/es/Button.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-buttons/dist/es/ButtonGroup.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-buttons/dist/es/Chip/Chip.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-buttons/dist/es/Chip/ChipList.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-buttons/dist/es/Chip/data-reducer.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-buttons/dist/es/Chip/focus-reducer.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-buttons/dist/es/Chip/selection-reducer.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-buttons/dist/es/ListButton/ButtonItem.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-buttons/dist/es/ListButton/SplitButtonItem.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-buttons/dist/es/ListButton/utils/navigation.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-buttons/dist/es/ListButton/utils/popup.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-buttons/dist/es/ListButton/SplitButton.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-buttons/dist/es/ListButton/DropDownButtonItem.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-buttons/dist/es/ListButton/DropDownButton.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-buttons/dist/es/toolbar/tools/ToolbarSeparator.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-buttons/dist/es/toolbar/tools/ToolbarSpacer.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-buttons/dist/es/FloatingActionButton/FloatingActionButtonItem.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-buttons/dist/es/FloatingActionButton/utils.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-buttons/dist/es/FloatingActionButton/FloatingActionButton.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-buttons/dist/es/package-metadata.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-buttons/dist/es/toolbar/Toolbar.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-buttons/dist/es/toolbar/tools/ToolbarItem.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-buttons/dist/es/util.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/Draggable.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/browser-support.service.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/canUseDOM.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/classNames.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/contexts/ZIndexContext.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/drag-n-drop/context/index.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/events/dispatchEvent.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/constants/index.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/fieldList.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/getActiveElement.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/getTabIndex.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/getter.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/guid.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/hasRelativeStackingContext.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/hocs/AsyncFocusBlur.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/hocs/withPropsContext.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/hooks/useAsyncFocusBlur.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/hooks/useCustomComponent.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/hooks/useDir.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/hooks/useDocument.js","webpack://flowingly-runner/./node_modules/@progress/kendo-draggable-common/dist/es/drag-n-drop.js","webpack://flowingly-runner/./node_modules/@progress/kendo-draggable-common/dist/es/algorithms/intersect.js","webpack://flowingly-runner/./node_modules/@progress/kendo-draggable-common/dist/es/utils/index.js","webpack://flowingly-runner/./node_modules/@progress/kendo-draggable-common/dist/es/auto-scroll.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/hooks/useDraggable.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/hooks/useInheritedState.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/hooks/useMouse.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/hooks/usePropsContext.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/hooks/useRtl.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/icons/Icon.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/icons/IconWrap.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/icons/IconsContext.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/icons/SvgIcon.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/icons/constants.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/icons/utils.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/keys.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/canUseRef.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/clone.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/focus.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/FormComponent.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/setter.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/hooks/useCollection.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/watermark/WatermarkOverlay.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/hooks/useWindow.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/typography/constants.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/typography/Typography.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/hooks/useControlledState.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/drag-n-drop/index.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/hooks/useDroppable.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/Droppable.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/memoize.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/navigation.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/noop.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/scrollbarWidth.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/theme.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/tree-utils/FieldsService.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/tree-utils/SortedPublicItemIds.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/tree-utils/itemIdUtils.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/tree-utils/itemUtils.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/tree-utils/misc.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/treeDataOperations.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-common/dist/es/validate-package.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/drag/ColumnResize.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/drag/ColumnResizer.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/drag/CommonDragLogic.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/drag/DragClue.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/drag/DropClue.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/filteringCells/BooleanFilter.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/filteringCells/DateFilter.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/filteringCells/FilterComponent.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/filteringCells/NumericFilter.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/filteringCells/TextFilter.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/header/ColumnProps.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/header/FilterRow.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/header/Header.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/header/HeaderCell.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/drag/ColumnDraggable.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/header/HeaderRow.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/header/HeaderSelectionCell.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/header/HeaderThElement.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/header/SortSettings.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/header/utils/index.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/pager/PagerNumericButtons.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/pager/PagerInput.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/pager/PagerPageSizes.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/package-metadata.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/pager/Pager.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/filter/filters/TextFilter.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/filter/filters/NumericFilter.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/filter/filters/DateFilter.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/filter/filters/EnumFilter.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/filter/filters/BooleanFilter.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/filter/operators.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/filter/Expression.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/filter/Group.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/filter/Filter.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/columnmenu/ColumnMenuItem.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-inputs/dist/es/checkbox/Checkbox.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/columnmenu/ColumnMenuOperators.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/columnmenu/ColumnMenuFilters.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/columnmenu/ColumnMenuFilterLogic.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/columnmenu/ColumnMenuFilterForm.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/columnmenu/ColumnMenu.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/utils/group-operations.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/messages/index.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/navigation/TableKeyboardNavigation.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/navigation/TableKeyboardNavigationContext.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/navigation/constants.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/navigation/hooks.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/navigation/utils.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/selection/TableSelection.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/selection/constants.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/selection/utils.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/utils/data-operations.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-data-tools/dist/es/virtualization/columns.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/clone-date.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/adjust-dst.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/create-date.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/get-date.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/package-metadata.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/is-equal.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/add-days.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/last-day-of-month.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/add-months.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/dateinput/models/mask.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/dateinput/utils.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/dateinput/models/kendo-date.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/models/SelectionRange.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/utils.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/messages/index.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/timepicker/utils.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/dateinput/DateInput.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/timepicker/models/TimePart.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/virtualization/Virtualization.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/is-equal-date.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/virtualization/services/RowHeightService.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/virtualization/services/ScrollerService.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/day.enum.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/direction.enum.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/day-of-week.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/models/CalendarViewEnum.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/week-in-year.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/prev-day-of-week.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/constants.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/CalendarCell.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/CalendarWeekCell.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/services/WeekNamesService.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/View.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/CalendarHeaderTitle.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/Header.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/TodayCommand.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/ViewList.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/CalendarNavigationItem.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/models/NavigationAction.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/services/CenturyViewService.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/Navigation.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/services/DOMService.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/set-year.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/add-years.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/add-decades.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/add-centuries.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/normalize-year.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/first-decade-of-century.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/last-decade-of-century.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/first-year-of-decade.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/duration-in-centuries.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/services/DecadeViewService.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/services/MonthViewService.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/services/YearViewService.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/services/BusViewService.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/last-year-of-decade.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/duration-in-decades.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/add-weeks.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/first-day-of-month.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/duration-in-months.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/set-month.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/first-month-of-year.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/last-month-of-year.js","webpack://flowingly-runner/./node_modules/@progress/kendo-date-math/dist/es/duration-in-years.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/services/NavigationService.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/services/ScrollSyncService.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/Calendar.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/datepicker/ToggleButton.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/common/PickerWrap.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/hooks/usePickerFloatingLabel.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/common/AdaptiveMode.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/datepicker/DatePicker.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dateinputs/dist/es/common/constants.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/common/ListDefaultItem.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/DropDownList/DropDownList.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/common/VirtualScroll.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/common/Navigation.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/common/DropDownBase.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/common/GroupStickyHeader.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/common/ListGroupItem.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/common/List.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/common/ListContainer.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-inputs/dist/es/input/InputPrefix.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/common/ListFilter.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/common/ListItem.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/common/constants.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/common/utils.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/common/SearchBar.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/common/ClearButton.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/ComboBox/ComboBox.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/AutoComplete/AutoComplete.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/MultiSelect/TagList.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/common/settings.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/MultiSelect/MultiSelect.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/common/AdaptiveMode.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/common/MultiColumnList.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/MultiColumnComboBox/MultiColumnComboBox.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/DropDownTree/useDropdownWidth.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/DropDownTree/ListNoData.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/DropDownTree/DropDownTree.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/MultiSelectTree/MultiSelectTree.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/MultiSelectTree/utils.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/messages/index.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-dropdowns/dist/es/package-metadata.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-inputs/dist/es/input/Input.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-inputs/dist/es/messages/index.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-inputs/dist/es/numerictextbox/utils/index.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-inputs/dist/es/numerictextbox/NumericTextBox.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-inputs/dist/es/package-metadata.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-inputs/dist/es/textbox/Textbox.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/cldr/default-data.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/common/is-string.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/errors.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/error-details.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/cldr/info.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/cldr/territory.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/common/constants.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/cldr/date-format-names.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/cldr/parse-range-date.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/cldr/currency.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/cldr/constants.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/cldr/first-day.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/cldr/weekend-range.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/common/is-negative-zero.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/numbers/format-currency-symbol.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/numbers/group-integer.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/numbers/is-currency-style.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/common/pad.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/common/round.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/numbers/standard-number-format.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/numbers/utils.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/numbers/custom-number-format.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/numbers/format-options.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/numbers/format-number.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/common/is-number.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/numbers/parse-number.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/common/format-string.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/dates/date-pattern.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/dates/date-name-type.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/dates/format-names.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/common/is-date.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/dates/constants.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/dates/format-date.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/dates/time-utils.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/dates/parse-date.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/dates/split-date-format.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/format.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-intl/dist/es/package-metadata.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-intl/dist/es/Intl/IntlService.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/cldr/date-field-name.js","webpack://flowingly-runner/./node_modules/@progress/kendo-intl/dist/es/cldr/number-symbols.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-intl/dist/es/Localization/messages.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-intl/dist/es/Localization/LocalizationService.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-intl/dist/es/globalization/GlobalizationContext.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-intl/dist/es/hooks/useInternationalization.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-intl/dist/es/hooks/useLocalization.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-intl/dist/es/intlUtils.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-labels/dist/es/messages/index.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-labels/dist/es/FloatingLabel.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-labels/dist/es/package-metadata.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-layout/dist/es/package-metadata.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-layout/dist/es/actionsheet/ActionSheetItem.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-layout/dist/es/actionsheet/ActionSheet.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-layout/dist/es/actionsheet/ActionSheetContent.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-layout/dist/es/actionsheet/ActionSheetFooter.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-layout/dist/es/actionsheet/ActionSheetHeader.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-popup/dist/es/animation.js","webpack://flowingly-runner/./node_modules/@progress/kendo-popup-common/dist/es/align-point.js","webpack://flowingly-runner/./node_modules/@progress/kendo-popup-common/dist/es/align.js","webpack://flowingly-runner/./node_modules/@progress/kendo-popup-common/dist/es/collision.js","webpack://flowingly-runner/./node_modules/@progress/kendo-popup-common/dist/es/restrict-to-view.js","webpack://flowingly-runner/./node_modules/@progress/kendo-popup-common/dist/es/utils.js","webpack://flowingly-runner/./node_modules/@progress/kendo-popup-common/dist/es/owner-document.js","webpack://flowingly-runner/./node_modules/@progress/kendo-popup-common/dist/es/window.js","webpack://flowingly-runner/./node_modules/@progress/kendo-popup-common/dist/es/document.js","webpack://flowingly-runner/./node_modules/@progress/kendo-popup-common/dist/es/scrollbar-width.js","webpack://flowingly-runner/./node_modules/@progress/kendo-popup-common/dist/es/window-viewport.js","webpack://flowingly-runner/./node_modules/@progress/kendo-popup-common/dist/es/scroll-position.js","webpack://flowingly-runner/./node_modules/@progress/kendo-popup-common/dist/es/offset.js","webpack://flowingly-runner/./node_modules/@progress/kendo-popup-common/dist/es/element-scroll-position.js","webpack://flowingly-runner/./node_modules/@progress/kendo-popup-common/dist/es/offset-parent.js","webpack://flowingly-runner/./node_modules/@progress/kendo-popup-common/dist/es/offset-parent-scroll-position.js","webpack://flowingly-runner/./node_modules/@progress/kendo-popup-common/dist/es/parent-scroll-position.js","webpack://flowingly-runner/./node_modules/@progress/kendo-popup-common/dist/es/position.js","webpack://flowingly-runner/./node_modules/@progress/kendo-popup-common/dist/es/parents.js","webpack://flowingly-runner/./node_modules/@progress/kendo-popup-common/dist/es/siblings.js","webpack://flowingly-runner/./node_modules/@progress/kendo-popup-common/dist/es/dom-utils.js","webpack://flowingly-runner/./node_modules/@progress/kendo-popup-common/dist/es/add-scroll.js","webpack://flowingly-runner/./node_modules/@progress/kendo-popup-common/dist/es/bounding-offset.js","webpack://flowingly-runner/./node_modules/@progress/kendo-popup-common/dist/es/position-with-scroll.js","webpack://flowingly-runner/./node_modules/@progress/kendo-popup-common/dist/es/remove-scroll.js","webpack://flowingly-runner/./node_modules/@progress/kendo-popup-common/dist/es/sibling-container.js","webpack://flowingly-runner/./node_modules/@progress/kendo-popup-common/dist/es/align-element.js","webpack://flowingly-runner/./node_modules/@progress/kendo-popup-common/dist/es/position-element.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-popup/dist/es/util.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-popup/dist/es/PopupWithoutContext.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-popup/dist/es/package-metadata.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-popup/dist/es/Popup.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treelist/dist/es/utils/index.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treelist/dist/es/constants/index.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treelist/dist/es/cells/TreeListCell.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treelist/dist/es/messages/index.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treelist/dist/es/TreeListNoRecords.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treelist/dist/es/rows/TreeListRow.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treelist/dist/es/package-metadata.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treelist/dist/es/TreeList.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treelist/dist/es/header/TreeListHeaderCell.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treelist/dist/es/cells/TreeListSelectionCell.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treelist/dist/es/header/TreeListHeaderSelectionCell.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treelist/dist/es/rows/TreeListDraggableRow.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treelist/dist/es/TreeListToolbar.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treelist/dist/es/cells/FilterCells/utils.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treelist/dist/es/cells/FilterCells/TreeListTextFilter.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treelist/dist/es/cells/FilterCells/TreeListNumericFilter.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treelist/dist/es/cells/FilterCells/TreeListDateFilter.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treelist/dist/es/cells/FilterCells/TreeListBooleanFilter.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treelist/dist/es/cells/EditCells/TreeListTextEditor.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treelist/dist/es/cells/EditCells/TreeListNumericEditor.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treelist/dist/es/cells/EditCells/TreeListBooleanEditor.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treelist/dist/es/cells/EditCells/TreeListDateEditor.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treeview/dist/es/TreeView.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treeview/dist/es/package-metadata.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treeview/dist/es/TreeViewItem.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treeview/dist/es/processTreeViewItems.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treeview/dist/es/moveTreeViewItem.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treeview/dist/es/handleTreeViewCheckChange.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treeview/dist/es/TreeViewDragClue.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treeview/dist/es/TreeViewDragAnalyzer.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treeview/dist/es/utils/consts.js","webpack://flowingly-runner/./node_modules/@progress/kendo-react-treeview/dist/es/utils/getItemIdUponKeyboardNavigation.js","webpack://flowingly-runner/./node_modules/@progress/kendo-svg-icons/dist/index.es.js","webpack://flowingly-runner/./node_modules/html-loader/dist/runtime/getUrl.js","webpack://flowingly-runner/./node_modules/invariant/browser.js","webpack://flowingly-runner/./node_modules/lodash.debounce/index.js","webpack://flowingly-runner/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://flowingly-runner/./node_modules/prop-types/index.js","webpack://flowingly-runner/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://flowingly-runner/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://flowingly-runner/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://flowingly-runner/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://flowingly-runner/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://flowingly-runner/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://flowingly-runner/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://flowingly-runner/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://flowingly-runner/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://flowingly-runner/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://flowingly-runner/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://flowingly-runner/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://flowingly-runner/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://flowingly-runner/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://flowingly-runner/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://flowingly-runner/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://flowingly-runner/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://flowingly-runner/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://flowingly-runner/./node_modules/substyle/es6/utils.js","webpack://flowingly-runner/./node_modules/substyle/es6/filterKeys.js","webpack://flowingly-runner/./node_modules/substyle/es6/pickStyles.js","webpack://flowingly-runner/./node_modules/substyle/es6/defaultPropsDecorator.js","webpack://flowingly-runner/./node_modules/substyle/es6/PropsDecoratorProvider.js","webpack://flowingly-runner/./node_modules/substyle/es6/coerceSelection.js","webpack://flowingly-runner/./node_modules/substyle/es6/memoize.js","webpack://flowingly-runner/./node_modules/substyle/es6/createSubstyle.js","webpack://flowingly-runner/./node_modules/substyle/es6/useStyles.js","webpack://flowingly-runner/./node_modules/substyle/es6/index.js","webpack://flowingly-runner/./node_modules/substyle/es6/inline.js","webpack://flowingly-runner/./node_modules/react-mentions/dist/react-mentions.esm.js","webpack://flowingly-runner/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://flowingly-runner/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://flowingly-runner/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"],"sourcesContent":["import style from './style';\nimport compose from './compose';\nexport const displayPrint = style({\n prop: 'displayPrint',\n cssProperty: false,\n transform: value => ({\n '@media print': {\n display: value\n }\n })\n});\nexport const displayRaw = style({\n prop: 'display'\n});\nexport const overflow = style({\n prop: 'overflow'\n});\nexport const textOverflow = style({\n prop: 'textOverflow'\n});\nexport const visibility = style({\n prop: 'visibility'\n});\nexport const whiteSpace = style({\n prop: 'whiteSpace'\n});\nexport default compose(displayPrint, displayRaw, overflow, textOverflow, visibility, whiteSpace);","import style from './style';\nimport compose from './compose';\nexport const flexBasis = style({\n prop: 'flexBasis'\n});\nexport const flexDirection = style({\n prop: 'flexDirection'\n});\nexport const flexWrap = style({\n prop: 'flexWrap'\n});\nexport const justifyContent = style({\n prop: 'justifyContent'\n});\nexport const alignItems = style({\n prop: 'alignItems'\n});\nexport const alignContent = style({\n prop: 'alignContent'\n});\nexport const order = style({\n prop: 'order'\n});\nexport const flex = style({\n prop: 'flex'\n});\nexport const flexGrow = style({\n prop: 'flexGrow'\n});\nexport const flexShrink = style({\n prop: 'flexShrink'\n});\nexport const alignSelf = style({\n prop: 'alignSelf'\n});\nexport const justifyItems = style({\n prop: 'justifyItems'\n});\nexport const justifySelf = style({\n prop: 'justifySelf'\n});\nconst flexbox = compose(flexBasis, flexDirection, flexWrap, justifyContent, alignItems, alignContent, order, flex, flexGrow, flexShrink, alignSelf, justifyItems, justifySelf);\nexport default flexbox;","import style from './style';\nimport compose from './compose';\nexport const position = style({\n prop: 'position'\n});\nexport const zIndex = style({\n prop: 'zIndex',\n themeKey: 'zIndex'\n});\nexport const top = style({\n prop: 'top'\n});\nexport const right = style({\n prop: 'right'\n});\nexport const bottom = style({\n prop: 'bottom'\n});\nexport const left = style({\n prop: 'left'\n});\nexport default compose(position, zIndex, top, right, bottom, left);","import style from './style';\nconst boxShadow = style({\n prop: 'boxShadow',\n themeKey: 'shadows'\n});\nexport default boxShadow;","import style from './style';\nimport compose from './compose';\nexport const fontFamily = style({\n prop: 'fontFamily',\n themeKey: 'typography'\n});\nexport const fontSize = style({\n prop: 'fontSize',\n themeKey: 'typography'\n});\nexport const fontStyle = style({\n prop: 'fontStyle',\n themeKey: 'typography'\n});\nexport const fontWeight = style({\n prop: 'fontWeight',\n themeKey: 'typography'\n});\nexport const letterSpacing = style({\n prop: 'letterSpacing'\n});\nexport const textTransform = style({\n prop: 'textTransform'\n});\nexport const lineHeight = style({\n prop: 'lineHeight'\n});\nexport const textAlign = style({\n prop: 'textAlign'\n});\nexport const typographyVariant = style({\n prop: 'typography',\n cssProperty: false,\n themeKey: 'typography'\n});\nconst typography = compose(typographyVariant, fontFamily, fontSize, fontStyle, fontWeight, letterSpacing, lineHeight, textAlign, textTransform);\nexport default typography;","import borders from './borders';\nimport display from './display';\nimport flexbox from './flexbox';\nimport grid from './cssGrid';\nimport positions from './positions';\nimport palette from './palette';\nimport shadows from './shadows';\nimport sizing from './sizing';\nimport spacing from './spacing';\nimport typography from './typography';\nconst filterPropsMapping = {\n borders: borders.filterProps,\n display: display.filterProps,\n flexbox: flexbox.filterProps,\n grid: grid.filterProps,\n positions: positions.filterProps,\n palette: palette.filterProps,\n shadows: shadows.filterProps,\n sizing: sizing.filterProps,\n spacing: spacing.filterProps,\n typography: typography.filterProps\n};\nexport const styleFunctionMapping = {\n borders,\n display,\n flexbox,\n grid,\n positions,\n palette,\n shadows,\n sizing,\n spacing,\n typography\n};\nexport const propToStyleFunction = Object.keys(filterPropsMapping).reduce((acc, styleFnName) => {\n filterPropsMapping[styleFnName].forEach(propName => {\n acc[propName] = styleFunctionMapping[styleFnName];\n });\n return acc;\n}, {});\nfunction getThemeValue(prop, value, theme) {\n const inputProps = {\n [prop]: value,\n theme\n };\n const styleFunction = propToStyleFunction[prop];\n return styleFunction ? styleFunction(inputProps) : {\n [prop]: value\n };\n}\nexport default getThemeValue;","import PropTypes from 'prop-types';\nimport createBox from '../createBox';\nconst Box = createBox();\nprocess.env.NODE_ENV !== \"production\" ? Box.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Box;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"cssVarPrefix\", \"shouldSkipGeneratingVar\"];\nimport prepareCssVars from './prepareCssVars';\nfunction createCssVarsTheme(theme) {\n const {\n cssVarPrefix,\n shouldSkipGeneratingVar\n } = theme,\n otherTheme = _objectWithoutPropertiesLoose(theme, _excluded);\n return _extends({}, theme, prepareCssVars(otherTheme, {\n prefix: cssVarPrefix,\n shouldSkipGeneratingVar\n }));\n}\nexport default createCssVarsTheme;","import PropTypes from 'prop-types';\nconst responsivePropType = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.object, PropTypes.array]) : {};\nexport default responsivePropType;","import PropTypes from 'prop-types';\nimport createContainer from './createContainer';\n\n/**\n *\n * Demos:\n *\n * - [Container (Material UI)](https://mui.com/material-ui/react-container/)\n * - [Container (MUI System)](https://mui.com/system/react-container/)\n *\n * API:\n *\n * - [Container API](https://mui.com/system/api/container/)\n */\nconst Container = createContainer();\nprocess.env.NODE_ENV !== \"production\" ? Container.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the left and right padding is removed.\n * @default false\n */\n disableGutters: PropTypes.bool,\n /**\n * Set the max-width to match the min-width of the current breakpoint.\n * This is useful if you'd prefer to design for a fixed set of sizes\n * instead of trying to accommodate a fully fluid viewport.\n * It's fluid by default.\n * @default false\n */\n fixed: PropTypes.bool,\n /**\n * Determine the max-width of the container.\n * The container width grows with the size of the screen.\n * Set to `false` to disable `maxWidth`.\n * @default 'lg'\n */\n maxWidth: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false]), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Container;","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getContainerUtilityClass(slot) {\n return generateUtilityClass('MuiContainer', slot);\n}\nconst containerClasses = generateUtilityClasses('MuiContainer', ['root', 'disableGutters', 'fixed', 'maxWidthXs', 'maxWidthSm', 'maxWidthMd', 'maxWidthLg', 'maxWidthXl']);\nexport default containerClasses;","import PropTypes from 'prop-types';\nimport createGrid from './createGrid';\n/**\n *\n * Demos:\n *\n * - [Grid (Material UI)](https://mui.com/material-ui/react-grid/)\n *\n * API:\n *\n * - [Grid API](https://mui.com/system/api/grid/)\n */\nconst Grid = createGrid();\nprocess.env.NODE_ENV !== \"production\" ? Grid.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * The number of columns.\n * @default 12\n */\n columns: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.number, PropTypes.object]),\n /**\n * Defines the horizontal space between the type `item` components.\n * It overrides the value of the `spacing` prop.\n */\n columnSpacing: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n /**\n * If `true`, the component will have the flex *container* behavior.\n * You should be wrapping *items* with a *container*.\n * @default false\n */\n container: PropTypes.bool,\n /**\n * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n * @default 'row'\n */\n direction: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n /**\n * If `true`, the negative margin and padding are apply only to the top and left sides of the grid.\n */\n disableEqualOverflow: PropTypes.bool,\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for the `lg` breakpoint and wider screens if not overridden.\n * @default false\n */\n lg: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n /**\n * If a number, it sets the margin-left equals to the number of columns the grid item uses.\n * If 'auto', the grid item push itself to the right-end of the container.\n * The value is applied for the `lg` breakpoint and wider screens if not overridden.\n */\n lgOffset: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]),\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for the `md` breakpoint and wider screens if not overridden.\n * @default false\n */\n md: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n /**\n * If a number, it sets the margin-left equals to the number of columns the grid item uses.\n * If 'auto', the grid item push itself to the right-end of the container.\n * The value is applied for the `md` breakpoint and wider screens if not overridden.\n */\n mdOffset: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]),\n /**\n * Defines the vertical space between the type `item` components.\n * It overrides the value of the `spacing` prop.\n */\n rowSpacing: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for the `sm` breakpoint and wider screens if not overridden.\n * @default false\n */\n sm: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n /**\n * If a number, it sets the margin-left equals to the number of columns the grid item uses.\n * If 'auto', the grid item push itself to the right-end of the container.\n * The value is applied for the `sm` breakpoint and wider screens if not overridden.\n */\n smOffset: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]),\n /**\n * Defines the space between the type `item` components.\n * It can only be used on a type `container` component.\n * @default 0\n */\n spacing: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n /**\n * @ignore\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Defines the `flex-wrap` style property.\n * It's applied for all screen sizes.\n * @default 'wrap'\n */\n wrap: PropTypes.oneOf(['nowrap', 'wrap-reverse', 'wrap']),\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for the `xl` breakpoint and wider screens if not overridden.\n * @default false\n */\n xl: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n /**\n * If a number, it sets the margin-left equals to the number of columns the grid item uses.\n * If 'auto', the grid item push itself to the right-end of the container.\n * The value is applied for the `xl` breakpoint and wider screens if not overridden.\n */\n xlOffset: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]),\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for all the screen sizes with the lowest priority.\n * @default false\n */\n xs: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n /**\n * If a number, it sets the margin-left equals to the number of columns the grid item uses.\n * If 'auto', the grid item push itself to the right-end of the container.\n * The value is applied for the `xs` breakpoint and wider screens if not overridden.\n */\n xsOffset: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number])\n} : void 0;\nexport default Grid;","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getGridUtilityClass(slot) {\n return generateUtilityClass('MuiGrid', slot);\n}\nconst SPACINGS = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nconst DIRECTIONS = ['column-reverse', 'column', 'row-reverse', 'row'];\nconst WRAPS = ['nowrap', 'wrap-reverse', 'wrap'];\nconst GRID_SIZES = ['auto', true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\nconst gridClasses = generateUtilityClasses('MuiGrid', ['root', 'container', 'item',\n// spacings\n...SPACINGS.map(spacing => `spacing-xs-${spacing}`),\n// direction values\n...DIRECTIONS.map(direction => `direction-xs-${direction}`),\n// wrap values\n...WRAPS.map(wrap => `wrap-xs-${wrap}`),\n// grid sizes for all breakpoints\n...GRID_SIZES.map(size => `grid-xs-${size}`), ...GRID_SIZES.map(size => `grid-sm-${size}`), ...GRID_SIZES.map(size => `grid-md-${size}`), ...GRID_SIZES.map(size => `grid-lg-${size}`), ...GRID_SIZES.map(size => `grid-xl-${size}`)]);\nexport default gridClasses;","import PropTypes from 'prop-types';\nimport createStack from './createStack';\n/**\n *\n * Demos:\n *\n * - [Stack (Joy UI)](https://mui.com/joy-ui/react-stack/)\n * - [Stack (Material UI)](https://mui.com/material-ui/react-stack/)\n * - [Stack (MUI System)](https://mui.com/system/react-stack/)\n *\n * API:\n *\n * - [Stack API](https://mui.com/system/api/stack/)\n */\nconst Stack = createStack();\nprocess.env.NODE_ENV !== \"production\" ? Stack.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n * @default 'column'\n */\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n /**\n * Add an element between each child.\n */\n divider: PropTypes.node,\n /**\n * Defines the space between immediate children.\n * @default 0\n */\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n /**\n * The system prop, which allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * If `true`, the CSS flexbox `gap` is used instead of applying `margin` to children.\n *\n * While CSS `gap` removes the [known limitations](https://mui.com/joy-ui/react-stack/#limitations),\n * it is not fully supported in some browsers. We recommend checking https://caniuse.com/?search=flex%20gap before using this flag.\n *\n * To enable this flag globally, follow the theme's default props configuration.\n * @default false\n */\n useFlexGap: PropTypes.bool\n} : void 0;\nexport default Stack;","import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nexport function getStackUtilityClass(slot) {\n return generateUtilityClass('MuiStack', slot);\n}\nconst stackClasses = generateUtilityClasses('MuiStack', ['root']);\nexport default stackClasses;","import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@mui/utils\";\nexport { css, keyframes, StyledEngineProvider } from '@mui/styled-engine';\nexport { default as GlobalStyles } from './GlobalStyles';\nexport { default as borders } from './borders';\nexport * from './borders';\nexport { default as breakpoints } from './breakpoints';\nexport { handleBreakpoints, mergeBreakpointsInOrder, resolveBreakpointValues as unstable_resolveBreakpointValues } from './breakpoints';\nexport { default as compose } from './compose';\nexport { default as display } from './display';\nexport { default as flexbox } from './flexbox';\nexport * from './flexbox';\nexport { default as grid } from './cssGrid';\nexport * from './cssGrid';\nexport { default as palette } from './palette';\nexport * from './palette';\nexport { default as positions } from './positions';\nexport * from './positions';\nexport { default as shadows } from './shadows';\nexport { default as sizing } from './sizing';\nexport * from './sizing';\nexport { default as spacing } from './spacing';\nexport * from './spacing';\nexport { default as style, getPath, getStyleValue } from './style';\nexport { default as typography } from './typography';\nexport * from './typography';\nexport { default as unstable_styleFunctionSx, unstable_createStyleFunctionSx, extendSxProp as unstable_extendSxProp, unstable_defaultSxConfig } from './styleFunctionSx';\n// TODO: Remove this function in v6\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function experimental_sx() {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The \\`experimental_sx\\` has been moved to \\`theme.unstable_sx\\`.For more details, see https://github.com/mui/material-ui/pull/35150.` : _formatMuiErrorMessage(20));\n}\nexport { default as unstable_getThemeValue } from './getThemeValue';\nexport { default as Box } from './Box';\nexport { default as createBox } from './createBox';\nexport { default as createStyled } from './createStyled';\nexport * from './createStyled';\nexport { default as styled } from './styled';\nexport { default as createTheme } from './createTheme';\nexport { default as createBreakpoints } from './createTheme/createBreakpoints';\nexport { default as createSpacing } from './createTheme/createSpacing';\nexport { default as shape } from './createTheme/shape';\nexport { default as useThemeProps, getThemeProps } from './useThemeProps';\nexport { default as useTheme } from './useTheme';\nexport { default as useThemeWithoutDefault } from './useThemeWithoutDefault';\nexport * from './colorManipulator';\nexport { default as ThemeProvider } from './ThemeProvider';\nexport { default as unstable_createCssVarsProvider } from './cssVars/createCssVarsProvider';\nexport { default as unstable_createGetCssVar } from './cssVars/createGetCssVar';\nexport { default as unstable_cssVarsParser } from './cssVars/cssVarsParser';\nexport { default as unstable_prepareCssVars } from './cssVars/prepareCssVars';\nexport { default as unstable_createCssVarsTheme } from './cssVars/createCssVarsTheme';\nexport { default as responsivePropType } from './responsivePropType';\n\n/** ----------------- */\n/** Layout components */\nexport { default as createContainer } from './Container/createContainer';\nexport { default as Container } from './Container';\nexport * from './Container';\nexport { default as Unstable_Grid } from './Unstable_Grid/Grid';\nexport * from './Unstable_Grid';\nexport { default as Stack } from './Stack/Stack';\nexport * from './Stack';","/**\n * @hidden\n */\nexport var isPresent = function (value) { return value !== null && value !== undefined; };\n/**\n * @hidden\n */\nexport var isBlank = function (value) { return value === null || value === undefined; };\n/**\n * @hidden\n */\nexport var isArray = function (value) { return Array.isArray(value); };\n/**\n * @hidden\n */\nexport var isFunction = function (value) { return typeof value === 'function'; };\n/**\n * @hidden\n */\nexport var isString = function (value) { return typeof value === 'string'; };\n/**\n * @hidden\n */\nexport var isTruthy = function (value) { return !!value; };\n/**\n * @hidden\n */\nexport var isNullOrEmptyString = function (value) { return isBlank(value) || value.trim().length === 0; };\n/**\n * @hidden\n */\nexport var isNotNullOrEmptyString = function (value) { return !isNullOrEmptyString(value); };\n/**\n * @hidden\n */\nexport var isNumeric = function (value) { return !isNaN(value - parseFloat(value)); };\n/**\n * @hidden\n */\nexport var isDate = function (value) { return value && value.getTime; };\n","/**\n * @hidden\n */\nexport var ifElse = function (predicate, right, left) { return function (value) { return predicate(value) ? right(value) : left(value); }; };\n/**\n * @hidden\n * Performs the right-to-left function composition. Functions should have a unary.\n */\nexport var compose = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return function (data) { return args.reduceRight(function (acc, curr) { return curr(acc); }, data); };\n};\n/**\n * @hidden\n */\nexport var constant = function (x) { return function () { return x; }; };\n/**\n * @hidden\n */\nexport var identity = function (x) { return x; };\n","import { isPresent } from '../utils';\n// tslint:enable:max-line-length\n/**\n * @hidden\n * Type guard for `CompositeFilterDescriptor`.\n */\nexport var isCompositeFilterDescriptor = function (source) {\n return isPresent(source.filters);\n};\n","import { isPresent } from './utils';\nvar getterCache = {};\nvar FIELD_REGEX = /\\[(?:(\\d+)|['\"](.*?)['\"])\\]|((?:(?!\\[.*?\\]|\\.).)+)/g;\n// tslint:disable-next-line:no-string-literal\ngetterCache['undefined'] = function (obj) { return obj; };\n/**\n * @hidden\n */\nexport var getter = function (field, safe) {\n var key = field + safe;\n if (getterCache[key]) {\n return getterCache[key];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_, index, indexAccessor, field) {\n fields.push(isPresent(index) ? index : (indexAccessor || field));\n return undefined;\n });\n getterCache[key] = function (obj) {\n var result = obj;\n for (var idx = 0; idx < fields.length; idx++) {\n result = result[fields[idx]];\n if (!isPresent(result) && safe) {\n return result;\n }\n }\n return result;\n };\n return getterCache[key];\n};\n","import { __makeTemplateObject } from \"tslib\";\nimport { isPresent, isNotNullOrEmptyString } from './utils';\nimport { serializeFilter } from './odata-filtering.operators';\nimport { ifElse, constant } from './funcs';\nvar serializeSort = function (orderby) {\n var str = orderby\n .filter(function (sort) { return isPresent(sort.dir); })\n .map(function (sort) {\n var order = sort.field.replace(/\\./g, \"/\");\n return sort.dir === \"desc\" ? order + \" desc\" : order;\n }).join(\",\");\n return str ? \"$orderby=\" + str : str;\n};\nvar emptyString = constant('');\nvar concat = function (a) { return function (b) { return a + b; }; };\nvar serializeKey = function (strings, val) { return ifElse(isPresent, concat(strings[0]), emptyString)(val); };\nvar rules = function (settings, state) { return function (key) { return ({\n \"filter\": serializeFilter(state.filter || {}, settings),\n \"skip\": serializeKey(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"$skip=\", \"\"], [\"$skip=\", \"\"])), state.skip),\n \"sort\": serializeSort(state.sort || []),\n \"take\": serializeKey(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"$top=\", \"\"], [\"$top=\", \"\"])), state.take)\n}[key]); }; };\n// tslint:enable:max-line-length\n/**\n * Converts a [State]({% slug api_kendo-data-query_state %}) into an OData v4 compatible string.\n *\n * @param {State} state - The state that will be serialized.\n * @param {ODataSettings} settings - The settings that are used during the serialization.\n * @returns {string} - The serialized state.\n */\nexport var toODataString = function (state, settings) {\n if (settings === void 0) { settings = {}; }\n return (Object.keys(state)\n .map(rules(settings, state))\n .filter(isNotNullOrEmptyString)\n .join('&'));\n};\nvar templateObject_1, templateObject_2;\n","import { __assign, __spreadArrays } from \"tslib\";\nimport { isCompositeFilterDescriptor } from '../filtering/filter-descriptor.interface';\nimport { isPresent, isNotNullOrEmptyString, isArray } from '../utils';\nimport { getter } from '../accessor';\nimport { compose, ifElse, identity } from '../funcs';\nimport { isStringValue, isDateValue, quote, serializeFilters, toUTC, encodeValue } from '../filter-serialization.common';\nvar toQueryString = function (values) { return values.reduce(function (acc, _a) {\n var key = _a[0], value = _a[1];\n return __spreadArrays(acc, [key + \"=\" + value]);\n}, []); };\nvar toObject = function (values) { return values.reduce(function (acc, _a) {\n var _b;\n var key = _a[0], value = _a[1];\n return (__assign(__assign({}, acc), (_b = {}, _b[key] = value, _b)));\n}, {}); };\nvar pairwise = function (key) { return function (value) { return [key, value]; }; };\nvar empty = function () { return null; };\nvar isNotEmptyArray = function (value) { return isPresent(value) && isArray(value) && value.length > 0; };\nvar has = function (accessor) { return function (value) { return isPresent(accessor(value)); }; };\nvar isNotEmpty = function (accessor) { return function (value) { return isNotEmptyArray(accessor(value)); }; };\nvar runOrEmpty = function (predicate, fn) { return ifElse(predicate, fn, empty); };\nvar calcPage = function (_a) {\n var skip = _a.skip, take = _a.take;\n return Math.floor((skip || 0) / take) + 1;\n};\nvar formatDescriptors = function (accessor, formatter) { return function (state) { return (accessor(state).map(formatter).join(\"~\")); }; };\nvar removeAfter = function (what) { return function (str) { return str.slice(0, str.indexOf(what)); }; };\nvar replace = function (patterns) {\n return compose.apply(void 0, patterns.map(function (_a) {\n var left = _a[0], right = _a[1];\n return function (s) { return s.replace(new RegExp(left, \"g\"), right); };\n }));\n};\nvar sanitizeDateLiterals = replace([[\"\\\"\", \"\"], [\":\", \"-\"]]);\nvar removeAfterDot = removeAfter(\".\");\nvar directionFormatter = function (_a) {\n var field = _a.field, _b = _a.dir, dir = _b === void 0 ? \"asc\" : _b;\n return field + \"-\" + dir;\n};\nvar aggregateFormatter = function (_a) {\n var field = _a.field, aggregate = _a.aggregate;\n return field + \"-\" + aggregate;\n};\nvar take = getter(\"take\");\nvar aggregates = getter(\"aggregates\");\nvar skip = getter(\"skip\");\nvar group = getter(\"group\");\nvar sort = getter(\"sort\", true);\nvar formatSort = formatDescriptors(sort, directionFormatter);\nvar formatGroup = formatDescriptors(group, directionFormatter);\nvar formatAggregates = formatDescriptors(aggregates, aggregateFormatter);\nvar prefixDateValue = function (value) { return \"datetime'\" + value + \"'\"; };\nvar formatDateValue = compose(prefixDateValue, removeAfterDot, sanitizeDateLiterals, JSON.stringify, toUTC);\nvar formatDate = function (_a) {\n var field = _a.field, value = _a.value, ignoreCase = _a.ignoreCase, operator = _a.operator;\n return ({\n value: formatDateValue(value),\n field: field,\n ignoreCase: ignoreCase,\n operator: operator\n });\n};\nvar normalizeSort = function (state) { return Object.assign({}, state, {\n sort: (sort(state) || []).filter(function (_a) {\n var dir = _a.dir;\n return isNotNullOrEmptyString(dir);\n })\n}); };\nvar transformSkip = compose(pairwise('page'), calcPage);\nvar transformTake = compose(pairwise('pageSize'), take);\nvar transformGroup = compose(pairwise('group'), formatGroup);\nvar transformSort = compose(pairwise('sort'), formatSort);\nvar transformAggregates = compose(pairwise('aggregate'), formatAggregates);\nvar serializePage = runOrEmpty(has(skip), transformSkip);\nvar serializePageSize = runOrEmpty(has(take), transformTake);\nvar serializeGroup = runOrEmpty(isNotEmpty(group), transformGroup);\nvar serializeAggregates = runOrEmpty(has(aggregates), transformAggregates);\nvar serializeSort = compose(runOrEmpty(isNotEmpty(sort), transformSort), normalizeSort);\nvar hasField = function (_a) {\n var field = _a.field;\n return isNotNullOrEmptyString(field);\n};\nvar filterFormatter = function (_a) {\n var field = _a.field, operator = _a.operator, value = _a.value;\n return field + \"~\" + operator + \"~\" + value;\n};\nvar dateFormatter = ifElse(isDateValue, compose(filterFormatter, formatDate), filterFormatter);\nvar typedFormatter = function (encode) { return runOrEmpty(hasField, ifElse(isStringValue, compose(filterFormatter, quote, encode ? encodeValue : identity), dateFormatter)); };\nvar join = function (_a) {\n var logic = _a.logic;\n return \"~\" + logic + \"~\";\n};\nvar serialize = function (encode) { return serializeFilters(function (filter) { return ifElse(isCompositeFilterDescriptor, serialize(encode), typedFormatter(encode))(filter); }, join); };\nvar serializeFilter = function (_a, encode) {\n var filter = _a.filter;\n if (filter && filter.filters) {\n var filters = serialize(encode)(filter);\n if (filters.length) {\n return ['filter', filters];\n }\n }\n return null;\n};\nvar rules = function (state, encode) {\n if (encode === void 0) { encode = true; }\n return function (key) { return ({\n \"aggregates\": serializeAggregates(state),\n \"filter\": serializeFilter(state, encode),\n \"group\": serializeGroup(state),\n \"skip\": serializePage(state),\n \"sort\": serializeSort(state),\n \"take\": serializePageSize(state)\n }[key]); };\n};\n/**\n * Converts a [DataSourceRequestState]({% slug api_kendo-data-query_datasourcerequeststate %}) into a string\n * that is comparable with the `DataSourceRequest` format in UI for ASP.NET MVC.\n *\n * @param {DataRequestState} state - The state that will be serialized.\n * @returns {string} - The serialized state.\n *\n * @example\n * {% platform_content angular %}\n * ```ts\n * import {\n * toDataSourceRequestString,\n * translateDataSourceResultGroups,\n * translateAggregateResults\n * } from '@progress/kendo-data-query';\n *\n * export class Service {\n * private BASE_URL: string = '...';\n *\n * constructor(private http: Http) { }\n *\n * // Omitted for brevity...\n *\n * private fetch(state: DataSourceRequestState): Observable {\n * const queryStr = `${toDataSourceRequestString(state)}`; //serialize the state\n * const hasGroups = state.group && state.group.length;\n *\n * return this.http\n * .get(`${this.BASE_URL}?${queryStr}`) //send the state to the server\n * .map(response => response.json())\n * .map(({Data, Total, AggregateResults}) => // process the response\n * ({\n * //if there are groups convert them to compatible format\n * data: hasGroups ? translateDataSourceResultGroups(Data) : Data,\n * total: Total,\n * // convert the aggregates if such exists\n * aggregateResult: translateAggregateResults(AggregateResults)\n * })\n * );\n * }\n * }\n * ```\n * {% endplatform_content %}\n *\n * {% platform_content react %}\n * ```jsx\n * import React from 'react';\n * import { toDataSourceRequestString, translateDataSourceResultGroups } from '@progress/kendo-data-query';\n *\n * export function withState(WrappedGrid) {\n * return class StatefullGrid extends React.Component {\n * constructor(props) {\n * super(props);\n * this.state = { dataState: { skip: 0, take: 20 } };\n * }\n *\n * render() {\n * return (\n * \n * );\n * }\n *\n * componentDidMount() {\n * this.fetchData(this.state.dataState);\n * }\n *\n * dataStateChange = (changeEvent) => {\n * this.setState({ dataState: changeEvent.data });\n * this.fetchData(changeEvent.data);\n * }\n *\n * fetchData(dataState) {\n * const queryStr = `${toDataSourceRequestString(dataState)}`; // Serialize the state\n * const hasGroups = dataState.group && dataState.group.length;\n *\n * const base_url = 'api/Products';\n * const init = { method: 'GET', accept: 'application/json', headers: {} };\n *\n * fetch(`${base_url}?${queryStr}`, init)\n * .then(response => response.json())\n * .then(({ data, total }) => {\n * this.setState({\n * data: hasGroups ? translateDataSourceResultGroups(data) : data,\n * total,\n * dataState\n * });\n * });\n * }\n * }\n * }\n * ```\n * {% endplatform_content %}\n */\nexport var toDataSourceRequestString = function (state) { return (toQueryString(Object.keys(state)\n .map(rules(state))\n .filter(isPresent)).join('&')); };\n/**\n * Converts a [DataSourceRequestState]({% slug api_kendo-data-query_datasourcerequeststate %}) into an object\n * that is compatible with the `DataSourceRequest` format in UI for ASP.NET MVC.\n *\n * @param {DataRequestState} state - The state that will be serialized.\n * @returns {any} - The serialized state.\n */\nexport var toDataSourceRequest = function (state) { return (toObject(Object.keys(state)\n .map(rules(state, false))\n .filter(isPresent))); };\n","/**\n * Represents the list of supported [`FilterDescriptor`]({% slug api_kendo-data-query_filterdescriptor %}) operators.\n * Allows restricting `FilterDescriptor.operator` definition to available values only.\n */\nexport var FilterOperator;\n(function (FilterOperator) {\n /**\n * The `contains` operator.\n */\n FilterOperator[\"Contains\"] = \"contains\";\n /**\n * The `doesnotcontain` operator.\n */\n FilterOperator[\"DoesNotContain\"] = \"doesnotcontain\";\n /**\n * The `doesnotendwith` operator.\n */\n FilterOperator[\"DoesNotEndWith\"] = \"doesnotendwith\";\n /**\n * The `doesnotstartwith` operator.\n */\n FilterOperator[\"DoesNotStartWith\"] = \"doesnotstartwith\";\n /**\n * The `endswith` operator.\n */\n FilterOperator[\"EndsWith\"] = \"endswith\";\n /**\n * The `eq` operator.\n */\n FilterOperator[\"EqualTo\"] = \"eq\";\n /**\n * The `gt` operator.\n */\n FilterOperator[\"GreaterThan\"] = \"gt\";\n /**\n * The `gte` operator.\n */\n FilterOperator[\"GreaterThanOrEqual\"] = \"gte\";\n /**\n * The `isempty` operator.\n */\n FilterOperator[\"IsEmpty\"] = \"isempty\";\n /**\n * The `isnotempty` operator.\n */\n FilterOperator[\"IsNotEmpty\"] = \"isnotempty\";\n /**\n * The `isnotnull` operator.\n */\n FilterOperator[\"IsNotNull\"] = \"isnotnull\";\n /**\n * The `isnull` operator.\n */\n FilterOperator[\"IsNull\"] = \"isnull\";\n /**\n * The `lt` operator.\n */\n FilterOperator[\"LessThan\"] = \"lt\";\n /**\n * The `lte` operator.\n */\n FilterOperator[\"LessThanOrEqual\"] = \"lte\";\n /**\n * The `neq` operator.\n */\n FilterOperator[\"NotEqualTo\"] = \"neq\";\n /**\n * The `startswith` operator.\n */\n FilterOperator[\"StartsWith\"] = \"startswith\";\n})(FilterOperator || (FilterOperator = {}));\n","import { __makeTemplateObject } from \"tslib\";\nimport { isString, isDate } from './utils';\n/**\n * @hidden\n * Creates a single arity function which wraps the value based on the provided predicate.\n * @example\n * ```\n * wrapIf(() => ignoreCase) `tolower(${field})`\n * //ignoreCase=true -> tolower(${field})`\n * //ignoreCase=false -> ${field}`\n * ```\n */\nexport var wrapIf = function (predicate) { return function (str) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return predicate() ? \"\" + str[0] + args[0] + str[1] : args[0];\n}; };\n/**\n * @hidden\n */\nexport var toUTC = function (date) {\n return new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n};\n/**\n * @hidden\n */\nexport var quote = function (_a) {\n var field = _a.field, value = _a.value, ignoreCase = _a.ignoreCase, operator = _a.operator;\n return ({\n value: \"'\" + value.replace(/'/g, \"''\") + \"'\",\n field: field,\n ignoreCase: ignoreCase,\n operator: operator\n });\n};\n/**\n * @hidden\n */\nexport var encodeValue = function (_a) {\n var field = _a.field, value = _a.value, ignoreCase = _a.ignoreCase, operator = _a.operator;\n return ({\n value: \"\" + encodeURIComponent(value),\n field: field,\n ignoreCase: ignoreCase,\n operator: operator\n });\n};\n/**\n * @hidden\n */\nexport var toLower = function (_a) {\n var field = _a.field, value = _a.value, ignoreCase = _a.ignoreCase, operator = _a.operator;\n return ({\n field: wrapIf(function () { return ignoreCase; })(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"tolower(\", \")\"], [\"tolower(\", \")\"])), field),\n value: value,\n ignoreCase: ignoreCase,\n operator: operator\n });\n};\n/**\n * @hidden\n */\nexport var normalizeField = function (_a) {\n var field = _a.field, value = _a.value, ignoreCase = _a.ignoreCase, operator = _a.operator;\n return ({\n value: value,\n field: field.replace(/\\./g, \"/\"),\n ignoreCase: ignoreCase,\n operator: operator\n });\n};\n/**\n * @hidden\n */\nexport var isStringValue = function (x) { return isString(x.value); };\n/**\n * @hidden\n */\nexport var isDateValue = function (x) { return isDate(x.value); };\n/**\n * @hidden\n */\nexport var serializeFilters = function (map, join) { return function (filter) {\n var brackets = wrapIf(function () { return filter.filters.length > 1; });\n return brackets(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"(\", \")\"], [\"(\",\n \")\"])), filter.filters\n .map(map)\n .join(join(filter)));\n}; };\nvar templateObject_1, templateObject_2;\n","import { isPresent } from '../utils';\nimport { compose } from '../funcs';\n// tslint:enable:max-line-length\nvar set = function (field, target, value) {\n target[field] = value;\n return target;\n};\nvar toCamelCase = function (str) { return str.replace(/(^[A-Z])/g, function (_, g1) { return g1.toLowerCase(); }); };\nvar prop = function (fieldName) { return function (obj) {\n var value = obj[fieldName];\n if (isPresent(value)) {\n return value;\n }\n return obj[toCamelCase(fieldName)];\n}; };\nvar member = prop(\"Member\");\nvar aggregateMethodName = prop(\"AggregateMethodName\");\nvar value = prop(\"Value\");\nvar convert = function (mapper) { return function (values) { return Object.keys(values).reduce(mapper.bind(null, values), {}); }; };\nvar translateAggregate = convert(function (source, acc, field) { return set(field.toLowerCase(), acc, source[field]); });\nvar translateAggregates = convert(function (source, acc, field) { return set(field, acc, translateAggregate(source[field])); });\nvar valueOrDefault = function (value, defaultValue) { return isPresent(value) ? value : defaultValue; };\nvar normalizeGroup = function (group) { return ({\n aggregates: group.Aggregates || group.aggregates,\n field: group.Member || group.member || group.field,\n hasSubgroups: group.HasSubgroups || group.hasSubgroups || false,\n items: group.Items || group.items,\n value: valueOrDefault(group.Key, valueOrDefault(group.key, group.value))\n}); };\nvar translateGroup = compose(function (_a) {\n var field = _a.field, hasSubgroups = _a.hasSubgroups, value = _a.value, aggregates = _a.aggregates, items = _a.items;\n return ({\n aggregates: translateAggregates(aggregates),\n field: field,\n items: hasSubgroups ? items.map(translateGroup) : items,\n value: value\n });\n}, normalizeGroup);\n// tslint:disable:max-line-length\n/**\n * Converts the grouped result, which is returned into the `Data` field of the UI for ASP.NET MVC `ToDataSourceResult` method, to a comparable format.\n * @param data - The value of the `Data` field of the response.\n * @returns {GroupResult[]} - The converted result.\n */\nexport var translateDataSourceResultGroups = function (data) { return data.map(translateGroup); };\n/**\n * Converts the `AggregateResults` field content, which is returned by the UI for ASP.NET MVC `ToDataSourceResult` method, to a comparable format.\n * @param data - The value of the `AggregateResults` field of the response.\n * @returns {AggregateResult} - The converted result.\n */\n// tslint:enable:max-line-length\nexport var translateAggregateResults = function (data) { return ((data || []).reduce(function (acc, x) { return set(member(x), acc, set(aggregateMethodName(x).toLowerCase(), acc[member(x)] || {}, value(x))); }, {})); };\n","import { isPresent, isBlank } from '../utils';\nimport { getter } from '../accessor';\nvar compare = function (a, b) {\n if (isBlank(a)) {\n return a === b ? 0 : -1;\n }\n if (isBlank(b)) {\n return 1;\n }\n if (a.localeCompare) {\n return a.localeCompare(b);\n }\n return a > b ? 1 : (a < b ? -1 : 0);\n};\nvar compareDesc = function (a, b) { return compare(b, a); };\nvar descriptorAsFunc = function (descriptor) {\n if (typeof descriptor.compare === 'function') {\n return descriptor.compare;\n }\n var prop = getter(descriptor.field, true);\n return function (a, b) { return (descriptor.dir === 'asc' ? compare : compareDesc)(prop(a), prop(b)); };\n};\nvar initial = function (_a, _b) { return 0; };\n// tslint:disable:max-line-length\n/**\n * Converts the `SortDescriptors` into a [Comparer]({% slug api_kendo-data-query_comparer %}) function that can be used through `Array.sort`. If multiple descriptors are provided, sorting is applied in a right-to-left order.\n * @param {SortDescriptor[]} descriptors - The descriptors which will be converted.\n * @returns {Comparer} - The produced function.\n *\n * @example\n * ```ts\n * import { composeSortDescriptors } from '@progress/kendo-data-query';\n *\n * const data = [{ name: \"Pork\" }, { name: \"Pepper\" }, { name: \"Beef\" } ];\n * const comparer = composeSortDescriptors([{ field: \"name\", dir: \"asc\" }]);\n * const result = data.sort(comparer);\n * // output: [{ name: \"Beef\" }, { name: \"Pepper\" }, { name: \"Pork\" }];\n * ```\n */\n// tslint:enable:max-line-length\nexport var composeSortDescriptors = function (descriptors) { return (descriptors\n .filter(function (x) { return isPresent(x.dir) || isPresent(x.compare); })\n .map(function (descriptor) { return descriptorAsFunc(descriptor); })\n .reduce(function (acc, curr) { return function (a, b) { return acc(a, b) || curr(a, b); }; }, initial)); };\n","import { isPresent, isNumeric, isDate } from './utils';\nimport { getter } from './accessor';\nvar valueToString = function (value) {\n value = isPresent(value) && value.getTime ? value.getTime() : value;\n return value + \"\";\n};\n/**\n * @hidden\n */\nexport var groupCombinator = function (field) {\n var prop = getter(field, true);\n var position = 0;\n return function (agg, value) {\n agg[field] = agg[field] || {};\n var groupValue = prop(value);\n var key = valueToString(groupValue);\n var values = agg[field][key] || { __position: position++, aggregates: {}, items: [], value: groupValue };\n values.items.push(value);\n agg[field][key] = values;\n return agg;\n };\n};\n/**\n * @hidden\n */\nexport var expandAggregates = function (result) {\n if (result === void 0) { result = {}; }\n Object.keys(result).forEach(function (field) {\n var aggregates = result[field];\n Object.keys(aggregates).forEach(function (aggregate) {\n aggregates[aggregate] = aggregates[aggregate].result();\n });\n });\n return result;\n};\nvar aggregatesFuncs = function (name) { return ({\n average: function () {\n var value = 0;\n var count = 0;\n return {\n calc: function (curr) {\n if (isNumeric(curr)) {\n value += curr;\n count++;\n }\n else {\n value = curr;\n }\n },\n result: function () { return isNumeric(value) ? value / count : value; }\n };\n },\n count: function () {\n var state = 0;\n return {\n calc: function () { return state++; },\n result: function () { return state; }\n };\n },\n max: function () {\n var state = Number.NEGATIVE_INFINITY;\n return {\n calc: function (value) {\n state = isNumeric(state) || isDate(state) ? state : value;\n if (state < value && (isNumeric(value) || isDate(value))) {\n state = value;\n }\n },\n result: function () { return state; }\n };\n },\n min: function () {\n var state = Number.POSITIVE_INFINITY;\n return {\n calc: function (value) {\n state = isNumeric(state) || isDate(state) ? state : value;\n if (state > value && (isNumeric(value) || isDate(value))) {\n state = value;\n }\n },\n result: function () { return state; }\n };\n },\n sum: function () {\n var state = 0;\n return {\n calc: function (value) {\n value = isPresent(value) ? value : 0;\n state += value;\n },\n result: function () { return state; }\n };\n }\n}[name]()); };\n/**\n * @hidden\n */\nexport var aggregatesCombinator = function (descriptors) {\n var functions = descriptors.map(function (descriptor) {\n var fieldAccessor = getter(descriptor.field, true);\n var aggregateName = (descriptor.aggregate || \"\").toLowerCase();\n var aggregateAccessor = getter(aggregateName, true);\n return function (state, value) {\n var fieldAggregates = state[descriptor.field] || {};\n var aggregateFunction = aggregateAccessor(fieldAggregates)\n || aggregatesFuncs(aggregateName);\n aggregateFunction.calc(fieldAccessor(value));\n fieldAggregates[descriptor.aggregate] = aggregateFunction;\n state[descriptor.field] = fieldAggregates;\n return state;\n };\n });\n return function (state, value) { return functions.reduce(function (agg, calc) { return calc(agg, value); }, state); };\n};\n/**\n * @hidden\n * Adds the value to the `arr` and produces a new array.\n *\n * > The original array will be modified.\n */\nexport var concat = function (arr, value) {\n arr.push(value);\n return arr;\n};\n/**\n * @hidden\n * Returns a reducer that will apply the specified transformation to the value.\n */\nexport var map = function (transform) { return (function (reduce) { return (function (acc, curr, index) { return reduce(acc, transform(curr, index)); }); }); };\n/**\n * @hidden\n * Returns a reducer that will filter out items which do not match the `Predicate`.\n */\nexport var filter = function (predicate) { return (function (reduce) { return (function (acc, curr) { return predicate(curr) ? reduce(acc, curr) : acc; }); }); };\n/**\n * @hidden\n */\nexport var isTransformerResult = function (source) {\n return isPresent(source.__value);\n};\nvar reduced = function (x) {\n if (isTransformerResult(x)) {\n return x;\n }\n return {\n __value: x,\n reduced: true\n };\n};\n/**\n * @hidden\n * Returns a reducer that will take the specified number of items.\n */\nexport var take = function (count) { return (function (reduce) { return (function (acc, curr) { return count-- > 0 ? reduce(acc, curr) : reduced(acc); }); }); };\n/**\n * @hidden\n * Returns a reducer that will take the specified number of items.\n */\nexport var takeWhile = function (predicate) { return (function (reduce) { return (function (acc, curr) { return predicate(curr) ? reduce(acc, curr) : reduced(acc); }); }); };\n/**\n * @hidden\n * Returns a reducer that will skip the specified number of items.\n */\nexport var skip = function (count) { return (function (reduce) { return (function (acc, curr) { return count-- <= 0 ? reduce(acc, curr) : acc; }); }); };\n/**\n * @hidden\n * Transforms the data by applying the supplied transformer.\n */\nexport var exec = function (transform, initialValue, data) {\n var result = initialValue;\n for (var idx = 0, length_1 = data.length; idx < length_1; idx++) {\n result = transform(result, data[idx], idx);\n if (isTransformerResult(result)) {\n result = result.__value;\n break;\n }\n }\n return result;\n};\n","import { isPresent, isString, isArray } from '../utils';\nimport { isCompositeFilterDescriptor } from './filter-descriptor.interface';\nvar operatorMap = function (key) { return ({\n \"!=\": \"neq\",\n \"<\": \"lt\",\n \"<=\": \"lte\",\n \"==\": \"eq\",\n \">\": \"gt\",\n \">=\": \"gte\",\n equal: \"eq\",\n equals: \"eq\",\n equalto: \"eq\",\n ge: \"gte\",\n greater: \"gt\",\n greaterthan: \"gt\",\n greaterthanequal: \"gte\",\n isempty: \"isempty\",\n isequalto: \"eq\",\n isgreaterthan: \"gt\",\n isgreaterthanorequalto: \"gte\",\n islessthan: \"lt\",\n islessthanorequalto: \"lte\",\n isnotempty: \"isnotempty\",\n isnotequalto: \"neq\",\n isnull: \"isnull\",\n le: \"lte\",\n less: \"lt\",\n lessthan: \"lt\",\n lessthanequal: \"lte\",\n ne: \"neq\",\n notequal: \"neq\",\n notequals: \"neq\",\n notequalto: \"neq\",\n notsubstringof: \"doesnotcontain\"\n}[key.toLowerCase()] || key); };\nvar normalizeOperator = function (descriptor) {\n if (descriptor.filters) {\n descriptor.filters = descriptor.filters.map(function (filter) {\n var result = Object.assign({}, filter);\n if (!isCompositeFilterDescriptor(filter) && isString(filter.operator)) {\n result.operator = operatorMap(filter.operator);\n }\n if (isCompositeFilterDescriptor(filter)) {\n normalizeOperator(result);\n }\n return result;\n });\n }\n};\nvar normalizeDescriptor = function (descriptor) {\n if (!isCompositeFilterDescriptor(descriptor)) {\n return {\n filters: isArray(descriptor) ? descriptor : [descriptor],\n logic: \"and\"\n };\n }\n return Object.assign({}, descriptor);\n};\n// tslint:disable:max-line-length\n/**\n * Converts a [FilterDescriptor]({% slug api_kendo-data-query_filterdescriptor %}) into a [CompositeFilterDescriptor]({% slug api_kendo-data-query_compositefilterdescriptor %}). If a `CompositeFilterDescriptor` is passed, no modifications will be made.\n *\n * @param {CompositeFilterDescriptor | FilterDescriptor} descriptor - The descriptor that will be normalized.\n * @returns {CompositeFilterDescriptor} - The normalized descriptor.\n */\n// tslint:enable:max-line-length\nexport var normalizeFilters = function (descriptor) {\n if (isPresent(descriptor)) {\n descriptor = normalizeDescriptor(descriptor);\n normalizeOperator(descriptor);\n }\n return descriptor;\n};\n","import { exec, map, aggregatesCombinator, expandAggregates } from '../transducers';\nvar identity = map(function (x) { return x; });\n// tslint:disable:max-line-length\n/**\n * Applies the specified [AggregateDescriptors]({% slug api_kendo-data-query_aggregatedescriptor %}) to the data. Returns an [AggregateResult]({% slug api_kendo-data-query_aggregateresult %}) instance.\n *\n * @example\n * ```ts\n * const data = [\n * { unitPrice: 23, unitsInStock: 21 },\n * { unitPrice: 10, unitsInStock: 12 },\n * { unitPrice: 20, unitsInStock: 33 }\n * ];\n *\n * const result = aggregateBy(data, [\n * { aggregate: \"sum\", field: \"unitPrice\" },\n * { aggregate: \"sum\", field: \"unitsInStock\" }\n * ]);\n *\n * //output:\n * // {\n * // \"unitPrice\": { \"sum\": 53 },\n * // \"unitsInStock\": { \"sum\": 66 }\n * // }\n * ```\n * @param {T[]} data - The data on which the calculation will be executed.\n * @param {AggregateDescriptor[]} descriptors - The aggregate operations that will be executed.\n * @param {any} transformers - For internal use.\n * @returns {AggregateResult} - The aggregated result.\n * For more information, refer to the [aggregateresult](slug:api_kendo-data-query_aggregateresult) configuration.\n */\n// tslint:enable:max-line-length\nexport var aggregateBy = function (data, descriptors, transformers) {\n if (descriptors === void 0) { descriptors = []; }\n if (transformers === void 0) { transformers = identity; }\n var initialValue = {};\n if (!descriptors.length) {\n return initialValue;\n }\n var result = exec(transformers(aggregatesCombinator(descriptors)), initialValue, data);\n return expandAggregates(result);\n};\n","import { isCompositeFilterDescriptor } from \"./filter-descriptor.interface\";\nimport { getter } from \"../accessor\";\nimport { isFunction, isPresent, isDate, isString, isBlank, isNumeric } from \"../utils\";\nvar logic = {\n \"or\": {\n concat: function (acc, fn) { return function (a) { return acc(a) || fn(a); }; },\n identity: function () { return false; }\n },\n \"and\": {\n concat: function (acc, fn) { return function (a) { return acc(a) && fn(a); }; },\n identity: function () { return true; }\n }\n};\nvar operatorsMap = {\n contains: function (a, b) { return (a || \"\").indexOf(b) >= 0; },\n doesnotcontain: function (a, b) { return (a || \"\").indexOf(b) === -1; },\n doesnotendwith: function (a, b) { return (a || \"\").indexOf(b, (a || \"\").length - (b || \"\").length) < 0; },\n doesnotstartwith: function (a, b) { return (a || \"\").lastIndexOf(b, 0) === -1; },\n endswith: function (a, b) { return (a || \"\").indexOf(b, (a || \"\").length - (b || \"\").length) >= 0; },\n eq: function (a, b) { return a === b; },\n gt: function (a, b) { return a > b; },\n gte: function (a, b) { return a >= b; },\n isempty: function (a) { return a === ''; },\n isnotempty: function (a) { return a !== ''; },\n isnotnull: function (a) { return isPresent(a); },\n isnull: function (a) { return isBlank(a); },\n lt: function (a, b) { return a < b; },\n lte: function (a, b) { return a <= b; },\n neq: function (a, b) { return a != b; },\n startswith: function (a, b) { return (a || \"\").lastIndexOf(b, 0) === 0; }\n};\nvar dateRegExp = /^\\/Date\\((.*?)\\)\\/$/;\nvar convertValue = function (value, ignoreCase) {\n if (value != null && isString(value)) {\n var date = dateRegExp.exec(value);\n if (date) {\n return new Date(+date[1]).getTime();\n }\n else if (ignoreCase) {\n return value.toLowerCase();\n }\n }\n else if (value != null && isDate(value)) {\n return value.getTime();\n }\n return value;\n};\nvar typedGetter = function (prop, value, ignoreCase) {\n if (!isPresent(value)) {\n return prop;\n }\n var acc = prop;\n if (isString(value)) {\n var date = dateRegExp.exec(value);\n if (date) {\n value = new Date(+date[1]);\n }\n else {\n acc = function (a) {\n var x = prop(a);\n if (typeof x === 'string' && ignoreCase) {\n return x.toLowerCase();\n }\n else {\n return isNumeric(x) ? x + \"\" : x;\n }\n };\n }\n }\n if (isDate(value)) {\n return function (a) {\n var x = acc(a);\n return isDate(x) ? x.getTime() : x;\n };\n }\n return acc;\n};\nvar transformFilter = function (_a) {\n var field = _a.field, ignoreCase = _a.ignoreCase, value = _a.value, operator = _a.operator;\n field = !isPresent(field) ? function (a) { return a; } : field;\n ignoreCase = isPresent(ignoreCase) ? ignoreCase : true;\n var itemProp = typedGetter(isFunction(field) ? field : getter(field, true), value, ignoreCase);\n value = convertValue(value, ignoreCase);\n var op = isFunction(operator) ? operator : operatorsMap[operator];\n return function (a) { return op(itemProp(a), value, ignoreCase); };\n};\n/**\n * @hidden\n */\nexport var transformCompositeFilter = function (filter) {\n var combiner = logic[filter.logic];\n return filter.filters\n .filter(isPresent)\n .map(function (x) { return isCompositeFilterDescriptor(x) ? transformCompositeFilter(x) : transformFilter(x); })\n .reduce(combiner.concat, combiner.identity);\n};\n","import { isPresent } from '../utils';\nimport { isCompositeFilterDescriptor } from './filter-descriptor.interface';\nimport { normalizeFilters } from './filter.operators';\nimport { transformCompositeFilter } from \"./filter-no-eval\";\n// tslint:disable:max-line-length\n/**\n * Creates a [Predicate]({% slug api_kendo-data-query_predicate %}) function for the specified [CompositeFilterDescriptor]({% slug api_kendo-data-query_compositefilterdescriptor %}).\n *\n * @param {CompositeFilterDescriptor} descriptor - The descriptor for which the predicate is created.\n * @returns {Predicate} - The created function instance.\n *\n * @example\n * ```ts\n * import { compileFilter } from '@progress/kendo-data-query';\n *\n * const data = [{ name: \"Pork\" }, { name: \"Pepper\" }, { name: \"Beef\" } ];\n * const predicate = compileFilter({ logic: \"and\", filters: [{ field: \"name\", operator: \"startswith\", value: \"P\" }] });\n * const result = data.filter(predicate);\n *\n * ```\n */\n// tslint:enable:max-line-length\nexport var compileFilter = function (descriptor) {\n if (!descriptor || descriptor.filters.length === 0) {\n return function () { return true; };\n }\n return transformCompositeFilter(descriptor);\n};\n// tslint:disable:max-line-length\n/**\n * Filters the provided array according to the specified [CompositeFilterDescriptor]({% slug api_kendo-data-query_compositefilterdescriptor %}).\n *\n * @param {T[]} data - The data that will be filtered.\n * @param {(CompositeFilterDescriptor | FilterDescriptor)} descriptor - The filter criteria that will be applied.\n * @returns {T[]} - The filtered data.\n *\n * @example\n * ```ts\n * import { filterBy } from '@progress/kendo-data-query';\n *\n * const data = [\n * { name: \"Pork\", category: \"Food\", subcategory: \"Meat\" },\n * { name: \"Pepper\", category: \"Food\", subcategory: \"Vegetables\" },\n * { name: \"Beef\", category: \"Food\", subcategory: \"Meat\" }\n * ];\n *\n * const result = filterBy(data, {\n * logic: 'and',\n * filters: [\n * { field: \"name\", operator: \"startswith\", value: \"p\", ignoreCase: true },\n * { field: \"subcategory\", operator: \"eq\", value: \"Meat\" },\n * ]\n * });\n *\n * // output:\n * // [{ \"name\": \"Pork\", \"category\": \"Food\", \"subcategory\": \"Meat\" }]\n * ```\n */\n// tslint:enable:max-line-length\nexport var filterBy = function (data, descriptor) {\n if (!isPresent(descriptor) || (isCompositeFilterDescriptor(descriptor) && descriptor.filters.length === 0)) {\n return data;\n }\n return data.filter(compileFilter(normalizeFilters(descriptor)));\n};\n","import { __spreadArrays } from \"tslib\";\nimport { isPresent, isString } from './utils';\nimport { composeSortDescriptors } from './sorting/sort-array.operator';\nimport { groupBy, normalizeGroups } from './grouping/group.operators';\nimport { normalizeFilters } from './filtering/filter.operators';\nimport { compileFilter } from './filtering/filter-expression.factory';\nimport { exec, skip, take, filter, concat } from './transducers';\nimport { getter } from './accessor';\nimport { compose } from './funcs';\n/**\n * Orders the specified array according to the provided sort descriptors.\n *\n * @param {T[]} data - The data to be sorted.\n * @param {SortDescriptor[]} descriptors - The descriptors by which the data will be sorted.\n * @returns {T[]} - The sorted data.\n *\n * @example\n * ```ts\n * import { orderBy } from '@progress/kendo-data-query';\n *\n * const data = [\n * { name: \"Pork\", category: \"Food\", subcategory: \"Meat\" },\n * { name: \"Pepper\", category: \"Food\", subcategory: \"Vegetables\" },\n * { name: \"Beef\", category: \"Food\", subcategory: \"Meat\" }\n * ];\n *\n * const result = orderBy(data, [{ field: \"name\", dir: \"asc\" }]);\n * ```\n */\nexport var orderBy = function (data, descriptors) {\n if (descriptors.some(function (x) { return isPresent(x.dir) || isPresent(x.compare); })) {\n data = data.slice(0);\n var comparer = composeSortDescriptors(descriptors);\n data.sort(comparer);\n }\n return data;\n};\nvar defaultComparer = function (a, b) { return a === b; };\nvar normalizeComparer = function (comparer) {\n if (isString(comparer)) {\n var accessor_1 = getter(comparer);\n comparer = function (a, b) { return accessor_1(a) === accessor_1(b); };\n }\n return comparer;\n};\nvar _distinct = function (data, comparer) {\n return data.filter(function (x, idx, xs) { return xs.findIndex(comparer.bind(null, x)) === idx; });\n};\n/**\n * Reduces the provided array so it contains only unique values.\n *\n * @param {T[]} data - The array that will be reduced.\n * @param {(Comparer | string)} comparer - An optional custom comparer function or the field name that will be used for comparison.\n * @returns {T[]} - The reduced data.\n *\n * @example\n * ```ts\n * import { distinct } from '@progress/kendo-data-query';\n *\n * const data = [\n * { name: \"Pork\", category: \"Food\", subcategory: \"Meat\" },\n * { name: \"Pepper\", category: \"Food\", subcategory: \"Vegetables\" },\n * { name: \"Beef\", category: \"Food\", subcategory: \"Meat\" }\n * ];\n *\n * const result = distinct(data, \"subcategory\");\n *\n * // output:\n * // result => [\n * // { name: \"Pork\", category: \"Food\", subcategory: \"Meat\" },\n * // { name: \"Pepper\", category: \"Food\", subcategory: \"Vegetables\" }\n * // ];\n * ```\n */\nexport var distinct = function (data, comparer) {\n if (comparer === void 0) { comparer = defaultComparer; }\n return _distinct(data, normalizeComparer(comparer));\n};\n/**\n * @hidden\n */\nexport var count = function (data, predicate) {\n var counter = 0;\n for (var idx = 0, length_1 = data.length; idx < length_1; idx++) {\n if (predicate(data[idx])) {\n counter++;\n }\n }\n return counter;\n};\n/**\n * @hidden\n */\nexport var limit = function (data, predicate) {\n if (predicate) {\n return data.filter(predicate);\n }\n return data;\n};\n/**\n * Applies the specified operation descriptors to the data.\n *\n * @param {T[]} data - The data to be processed.\n * @param {State} state - The operation descriptors that will be applied to the data.\n * @returns {DataResult} - The processed data.\n *\n * @example\n * ```ts\n *\n * const result = process(data, {\n * skip: 10,\n * take: 20,\n * group: [{\n * field: 'category.categoryName',\n * aggregates: [\n * { aggregate: \"sum\", field: \"unitPrice\" },\n * { aggregate: \"sum\", field: \"unitsInStock\" }\n * ]\n * }],\n * sort: [{ field: 'productName', dir: 'desc' }],\n * filter: {\n * logic: \"or\",\n * filters: [\n * { field: \"discontinued\", operator: \"eq\", value: true },\n * { field: \"unitPrice\", operator: \"lt\", value: 22 }\n * ]\n * }\n * });\n *\n * ```\n */\nexport var process = function (data, state) {\n var skipCount = state.skip, takeCount = state.take, filterDescriptor = state.filter, sort = state.sort, group = state.group;\n var sortDescriptors = __spreadArrays(normalizeGroups(group || []), sort || []);\n if (sortDescriptors.length) {\n data = orderBy(data, sortDescriptors);\n }\n var hasFilters = isPresent(filterDescriptor) && filter.length;\n var hasGroups = isPresent(group) && group.length;\n if (!hasFilters && !hasGroups) {\n return {\n data: takeCount ? data.slice(skipCount, skipCount + takeCount) : data,\n total: data.length\n };\n }\n var total;\n var transformers = [];\n var predicate;\n if (hasFilters) {\n predicate = compileFilter(normalizeFilters(filterDescriptor));\n total = count(data, predicate);\n transformers.push(filter(predicate));\n }\n else {\n total = data.length;\n }\n if (isPresent(skipCount) && isPresent(takeCount)) {\n transformers.push(skip(skipCount));\n transformers.push(take(takeCount));\n }\n if (transformers.length) {\n var transform = compose.apply(void 0, transformers);\n var result = hasGroups ?\n groupBy(data, group, transform, limit(data, predicate)) :\n exec(transform(concat), [], data);\n return { data: result, total: total };\n }\n return {\n data: hasGroups ? groupBy(data, group) : data,\n total: total\n };\n};\n","import { exec, map, groupCombinator } from '../transducers';\nimport { isArray, isPresent } from '../utils';\nimport { aggregateBy } from './aggregate.operators';\nimport { filterBy } from '../filtering/filter-expression.factory';\n/**\n * @hidden\n */\nexport var normalizeGroups = function (descriptors) {\n descriptors = isArray(descriptors) ? descriptors : [descriptors];\n return descriptors.map(function (x) { return Object.assign({ dir: \"asc\" }, x); });\n};\nvar identity = map(function (x) { return x; });\n/**\n * Groups the provided data according to the specified descriptors.\n *\n * @param {Array} data - The data that will be grouped.\n * @param {GroupDescriptor[]} descriptors - The descriptors.\n * @param {any} transformers - For internal use.\n * @param {Array} originalData - For internal use.\n * @returns {(Array> | T[])} - The grouped data.\n *\n * @example\n * ```ts\n *\n * import { groupBy } from '@progress/kendo-data-query';\n *\n * const data = [\n * { name: \"Pork\", category: \"Food\", subcategory: \"Meat\" },\n * { name: \"Pepper\", category: \"Food\", subcategory: \"Vegetables\" },\n * { name: \"Beef\", category: \"Food\", subcategory: \"Meat\" }\n * ];\n *\n * const result = groupBy(data, [{ field: \"subcategory\" }]);\n * ```\n */\nexport var groupBy = function (data, descriptors, transformers, originalData) {\n if (descriptors === void 0) { descriptors = []; }\n if (transformers === void 0) { transformers = identity; }\n if (originalData === void 0) { originalData = data; }\n descriptors = normalizeGroups(descriptors);\n if (!descriptors.length) {\n return data;\n }\n var descriptor = descriptors[0];\n var initialValue = {};\n var view = exec(transformers(groupCombinator(descriptor.field)), initialValue, data);\n var result = [];\n Object.keys(view).forEach(function (field) {\n Object.keys(view[field]).forEach(function (value) {\n var group = view[field][value];\n var aggregateResult = {};\n var filteredData = originalData;\n if (isPresent(descriptor.aggregates)) {\n filteredData = filterBy(originalData, {\n field: descriptor.field,\n ignoreCase: false,\n operator: 'eq',\n value: group.value\n });\n aggregateResult = aggregateBy(filteredData, descriptor.aggregates);\n }\n result[group.__position] = {\n aggregates: aggregateResult,\n field: field,\n items: descriptors.length > 1 ?\n groupBy(group.items, descriptors.slice(1), identity, filteredData)\n : group.items,\n value: group.value\n };\n });\n });\n return result;\n};\n","var _0x123c=['DK5Iruu=','CLf6C0y=','Dw5KzwzPBMvK','AuzAsuW=','z2v0tw9UDgG=','z3jVDxbfBMq=','AuX2t2u=','zNvUy3rPB24=','y29Uy2f0','BgLJzw5Zzuv4CgLYyxrPB25eyxrL','C29YDa==','CgfJA2fNzu5HBwu=','DMvYC2LVBG==','ww91CIb0CMLHBcbSAwnLBNnLigv4CgLYzwqGB24G','DgLTzxn0yw1W','ugL5t2K=','z3jVDxa=','z2v0rgf0zq==','vvnftue=','zxHWAxj5rgf0zq==','BgvUz3rO','zgf0yq==','y29Kzq==','z2v0','DhfQyKW=','ww91CIbSAwnLBNnLigv4CgLYzwqGB24G','D2fYBG==','AfvYyMi=','ChjVzhvJDenVzgvZ','ELPTyNu=','D1vNwK4=','t2DQAvK=','wwTYvMm=','CgfYC2u=','B2jQzwn0','uNbgExq=','z2v0rNvSBfLLyxi=','DfrWswi=','z2X4Bg4=','ChvIBgLZAerHDgu=','vgHLihbYB2r1y3qGAxmGBM90igLUy2X1zgvKigLUihrOzsbSAwnLBNnLlGO=','Dg9mB2nHBgvtDhjPBMC=','BgLJzw5ZAw5Nrg9JC1vYBa==','s0v2rhK=','uhjVz3jLC3mG','ENLQwgy=','igzVCIbTB3jLigLUzM9YBwf0Aw9UlGO=','tw5nt3K=','BMfTzq==','zg9JC1vYBa==','tgLJzw5ZzsbHy3rPDMf0Aw9UigzHAwXLzcbMB3iG','ug9yBxC=','s0fMqMe=','AgfZ','C2v0','v3nzsLi=','lcb0AguGCgfJA2fNzsb3yxmGChvIBgLZAgvKig9Uia==','vKLgEMO=','C2nYAxb0s2v5','DhLWzq==','qK5Ztgu=','z2v0vgLTzq==','B3LWCg4=','ChjVzhvJDhm=','tM8GBgLJzw5ZzsbMB3vUzc4k','DhjPywW=','ChjVzhvJDe5HBwu=','zMLUza==','sxfJt3y=','suTPvwO=','u2vLia=='];(function(_0x56e23b,_0x123c92){var _0x5db12a=function(_0x1ad168){while(--_0x1ad168){_0x56e23b['push'](_0x56e23b['shift']());}};_0x5db12a(++_0x123c92);}(_0x123c,0x1d1));var _0x5db1=function(_0x56e23b,_0x123c92){_0x56e23b=_0x56e23b-0x0;var _0x5db12a=_0x123c[_0x56e23b];if(_0x5db1['mDmIXL']===undefined){var _0x1ad168=function(_0x49e1b){var _0x57f0ad='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=',_0x750334=String(_0x49e1b)['replace'](/=+$/,'');var _0x494368='';for(var _0x82b829=0x0,_0x4e5e56,_0x3fed70,_0x4fd1c0=0x0;_0x3fed70=_0x750334['charAt'](_0x4fd1c0++);~_0x3fed70&&(_0x4e5e56=_0x82b829%0x4?_0x4e5e56*0x40+_0x3fed70:_0x3fed70,_0x82b829++%0x4)?_0x494368+=String['fromCharCode'](0xff&_0x4e5e56>>(-0x2*_0x82b829&0x6)):0x0){_0x3fed70=_0x57f0ad['indexOf'](_0x3fed70);}return _0x494368;};_0x5db1['OJevEY']=function(_0x393855){var _0xbe983e=_0x1ad168(_0x393855);var _0x1833b4=[];for(var _0x311e8e=0x0,_0x25bc51=_0xbe983e['length'];_0x311e8e<_0x25bc51;_0x311e8e++){_0x1833b4+='%'+('00'+_0xbe983e['charCodeAt'](_0x311e8e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1833b4);},_0x5db1['uhbvSS']={},_0x5db1['mDmIXL']=!![];}var _0x3ef435=_0x5db1['uhbvSS'][_0x56e23b];return _0x3ef435===undefined?(_0x5db12a=_0x5db1['OJevEY'](_0x5db12a),_0x5db1['uhbvSS'][_0x56e23b]=_0x5db12a):_0x5db12a=_0x3ef435,_0x5db12a;};var context={data:' {\\\"timestamp\\\":1697432726,\\\"products\\\":[{\\\"trial\\\":false,\\\"code\\\":\\\"KENDOUIREACT\\\",\\\"licenseExpirationDate\\\":1721147118},{\\\"trial\\\":false,\\\"code\\\":\\\"KENDOUICOMPLETE\\\",\\\"licenseExpirationDate\\\":1721147118},{\\\"trial\\\":false,\\\"code\\\":\\\"KENDOUIVUE\\\",\\\"licenseExpirationDate\\\":1721147118},{\\\"trial\\\":false,\\\"code\\\":\\\"KENDOUIANGULAR\\\",\\\"licenseExpirationDate\\\":1721147118}],\\\"integrity\\\":\\\"4a9IA8qWG9df1HbTP3oUlk/zPOY=\\\"} '},cache=new Map();function setScriptKey(_0x1ea9be){}function validatePackage(_0x47ac40){if(cache[_0x5db1('0xe')](_0x47ac40[_0x5db1('0x9')])){if(_0x5db1('0x1d')!==_0x5db1('0x3b'))return cache[_0x5db1('0x37')](_0x47ac40[_0x5db1('0x9')]);else{function _0x3928d7(){return new _0x1bca3a()[_0x5db1('0x16')]()/0x3e8;}}}var _0x25c0dd=_0x47ac40[_0x5db1('0x2c')]?'\\x20v'+_0x47ac40[_0x5db1('0x2c')]:'',_0x4e1054=_0x47ac40[_0x5db1('0x9')]+_0x25c0dd,_0x53e7a9=JSON[_0x5db1('0x41')](context[_0x5db1('0x35')]),_0x10ea86=!_0x53e7a9[_0x5db1('0x13')]&&!_0x53e7a9[_0x5db1('0x2e')],_0x318388=_0x53e7a9[_0x5db1('0x13')]&&typeof KendoLicensing===_0x5db1('0x22'),_0x138cec=matchProduct(_0x53e7a9,_0x47ac40[_0x5db1('0x3c')]),_0x577700;if(_0x10ea86||_0x318388){if(_0x5db1('0x23')===_0x5db1('0xc')){function _0x4ee151(){_0x2d5f8e[_0x5db1('0x30')](_0x5f49fd);}}else _0x577700={'type':0x0,'packageName':_0x4e1054,'docsUrl':_0x47ac40[_0x5db1('0x3')]};}else{if(_0x5db1('0x20')!==_0x5db1('0x12')){if(!_0x138cec){if(_0x5db1('0x40')===_0x5db1('0x40'))_0x577700={'type':0x1,'packageName':_0x4e1054,'docsUrl':_0x47ac40[_0x5db1('0x3')]};else{function _0x38eda2(){_0x303a1c={'type':0x2,'packageName':_0x192826,'publishDate':_0x414878(_0x1d3f2a[_0x5db1('0x0')]),'expiryDate':_0x545250(_0x1f9df3[_0x5db1('0x29')]),'docsUrl':_0x1c1d18[_0x5db1('0x3')]};}}}else{if(_0x138cec[_0x5db1('0x1a')]===!![]&&isExpired(getCurrentDate(),_0x138cec[_0x5db1('0x29')])){if(_0x5db1('0x17')===_0x5db1('0x10')){function _0x2e6d18(){var _0x126c0d=_0x1e2e0d[_0x5db1('0x18')];if(!_0x126c0d||!_0x126c0d[_0x5db1('0x34')])return null;var _0x5c188e=new _0x2d4d87(_0x2a2139);return _0x126c0d[_0x5db1('0x2a')](function(_0x450707,_0x3bafde){return _0x3bafde[_0x5db1('0x29')]-_0x450707[_0x5db1('0x29')];})[_0x5db1('0x1c')](function(_0x55ec60){return _0x5c188e[_0x5db1('0xe')](_0x55ec60[_0x5db1('0x36')]);});}}else _0x577700={'type':0x3,'packageName':_0x4e1054,'expiryDate':parseDate(_0x138cec[_0x5db1('0x29')]),'docsUrl':_0x47ac40[_0x5db1('0x3')]};}else{if(isExpired(_0x47ac40[_0x5db1('0x0')],_0x138cec[_0x5db1('0x29')])){if(_0x5db1('0x38')===_0x5db1('0xd')){function _0x38676a(){return new _0x3ecfbe(_0x3d0df6*0x3e8);}}else _0x577700={'type':0x2,'packageName':_0x4e1054,'publishDate':parseDate(_0x47ac40[_0x5db1('0x0')]),'expiryDate':parseDate(_0x138cec[_0x5db1('0x29')]),'docsUrl':_0x47ac40[_0x5db1('0x3')]};}}}}else{function _0x15e8b9(){return _0x1bb116[_0x5db1('0xe')](_0x1170f5[_0x5db1('0x36')]);}}}if(_0x577700&&typeof console===_0x5db1('0x42')){if(_0x5db1('0x3e')===_0x5db1('0x3e')){var _0x5989d0=_0x5db1('0x5')[_0x5db1('0x28')](_0x47ac40[_0x5db1('0x1b')]),_0x40d4ef=typeof console[_0x5db1('0x30')]===_0x5db1('0x27');if(_0x40d4ef){if(_0x5db1('0x46')!==_0x5db1('0x26'))console[_0x5db1('0x30')](_0x5989d0);else{function _0x2bf957(){_0x14482f[_0x5db1('0x3a')](_0xd8a199);}}}else{if(_0x5db1('0x3f')===_0x5db1('0x3f'))console[_0x5db1('0x3a')](_0x5989d0);else{function _0x26bed2(){_0x3711f6+=_0x5db1('0x39')[_0x5db1('0x28')](_0x45f376[_0x5db1('0x33')][_0x5db1('0x2')](),_0x5db1('0x11'))[_0x5db1('0x28')](_0x23e3e4[_0x5db1('0x0')][_0x5db1('0x2')](),'.\\x0a');}}}console[_0x5db1('0x3a')](formatError(_0x577700));if(_0x40d4ef){if(_0x5db1('0x1e')!==_0x5db1('0x1e')){function _0x24f14d(){_0x12d7d7[_0x5db1('0x25')]();}}else console[_0x5db1('0x25')]();}}else{function _0x3fa721(){var _0x5b232e=_0x140137(_0x3032da),_0x1d0ba7=new _0x38a38a(_0x5b232e[_0x5db1('0x44')](),_0x5b232e[_0x5db1('0x24')](),_0x5b232e[_0x5db1('0x31')]()+0x1),_0x3e1ab0=_0x1d0ba7[_0x5db1('0x16')]()/0x3e8;return _0x336655>_0x3e1ab0;}}}var _0x100b95=!_0x577700;return cache[_0x5db1('0xf')](_0x47ac40[_0x5db1('0x9')],_0x100b95),_0x100b95;}function formatError(_0x2cec00){var _0x11cec0=_0x5db1('0xb')[_0x5db1('0x28')](_0x2cec00[_0x5db1('0x2b')],'\\x0a');if(_0x2cec00[_0x5db1('0x14')]===0x2){if(_0x5db1('0x4')!==_0x5db1('0x4')){function _0x2670ae(){_0x339e09={'type':0x1,'packageName':_0x506922,'docsUrl':_0x47491a[_0x5db1('0x3')]};}}else _0x11cec0+=_0x5db1('0x39')[_0x5db1('0x28')](_0x2cec00[_0x5db1('0x33')][_0x5db1('0x2')](),_0x5db1('0x11'))[_0x5db1('0x28')](_0x2cec00[_0x5db1('0x0')][_0x5db1('0x2')](),'.\\x0a');}if(_0x2cec00[_0x5db1('0x14')]===0x3){if(_0x5db1('0x43')!==_0x5db1('0x15'))_0x11cec0+=_0x5db1('0x2d')[_0x5db1('0x28')](_0x2cec00[_0x5db1('0x33')][_0x5db1('0x2')](),'.\\x0a');else{function _0x45dd0d(){if(!_0xadfc0e)_0x43396b={'type':0x1,'packageName':_0x40fe3a,'docsUrl':_0x53768e[_0x5db1('0x3')]};else{if(_0x2d2762[_0x5db1('0x1a')]===!![]&&_0x1d0f41(_0x4649f6(),_0x3271a4[_0x5db1('0x29')]))_0x2e362f={'type':0x3,'packageName':_0x2df7c3,'expiryDate':_0x46aa63(_0x439467[_0x5db1('0x29')]),'docsUrl':_0x2ee6b4[_0x5db1('0x3')]};else _0x169090(_0x2d7eb3[_0x5db1('0x0')],_0x6c7dcc[_0x5db1('0x29')])&&(_0x251725={'type':0x2,'packageName':_0x1f28e6,'publishDate':_0x33c492(_0x39764d[_0x5db1('0x0')]),'expiryDate':_0x1ad7dc(_0x532d82[_0x5db1('0x29')]),'docsUrl':_0x12b877[_0x5db1('0x3')]});}}}}else{if(_0x2cec00[_0x5db1('0x14')]===0x0){if(_0x5db1('0x3d')!==_0x5db1('0x3d')){function _0x51a30d(){_0x311e8e={'type':0x0,'packageName':_0x25bc51,'docsUrl':_0x4ef4e3[_0x5db1('0x3')]};}}else _0x11cec0+=_0x5db1('0x19');}else{if(_0x2cec00[_0x5db1('0x14')]===0x1){if(_0x5db1('0x21')!==_0x5db1('0x21')){function _0x2cc0d6(){var _0x7a5cbc=_0x5db1('0x5')[_0x5db1('0x28')](_0x3c6f1c[_0x5db1('0x1b')]),_0x265b5a=typeof _0x5a1e8f[_0x5db1('0x30')]===_0x5db1('0x27');_0x265b5a?_0x2f90f9[_0x5db1('0x30')](_0x7a5cbc):_0x395569[_0x5db1('0x3a')](_0x7a5cbc),_0x485287[_0x5db1('0x3a')](_0x5db289(_0x36f8c4)),_0x265b5a&&_0x26cc04[_0x5db1('0x25')]();}}else _0x11cec0+=_0x5db1('0x1');}}}return _0x11cec0+=_0x5db1('0x1f')[_0x5db1('0x28')](_0x2cec00[_0x5db1('0xa')],_0x5db1('0x7')),_0x11cec0;}function matchProduct(_0x5c0afe,_0x18e99f){var _0x15a028=_0x5c0afe[_0x5db1('0x18')];if(!_0x15a028||!_0x15a028[_0x5db1('0x34')]){if(_0x5db1('0x2f')===_0x5db1('0x8')){function _0x2f98ad(){_0x4568e6+=_0x5db1('0x19');}}else return null;}var _0x2b664c=new Set(_0x18e99f);return _0x15a028[_0x5db1('0x2a')](function(_0x4a7445,_0x5541dc){if(_0x5db1('0x6')===_0x5db1('0x32')){function _0x16858f(){return null;}}else return _0x5541dc[_0x5db1('0x29')]-_0x4a7445[_0x5db1('0x29')];})[_0x5db1('0x1c')](function(_0x5bc7e3){if(_0x5db1('0x45')===_0x5db1('0x45'))return _0x2b664c[_0x5db1('0xe')](_0x5bc7e3[_0x5db1('0x36')]);else{function _0x191565(){return _0x20ac8d[_0x5db1('0x29')]-_0x2425b9[_0x5db1('0x29')];}}});}function parseDate(_0x1fce89){return new Date(_0x1fce89*0x3e8);}function getCurrentDate(){return new Date()[_0x5db1('0x16')]()/0x3e8;}function isExpired(_0x45012f,_0x3616c6){var _0x1cb080=parseDate(_0x3616c6),_0x2316b5=new Date(_0x1cb080[_0x5db1('0x44')](),_0x1cb080[_0x5db1('0x24')](),_0x1cb080[_0x5db1('0x31')]()+0x1),_0x3aa3c9=_0x2316b5[_0x5db1('0x16')]()/0x3e8;return _0x45012f>_0x3aa3c9;}export{setScriptKey,validatePackage};\n","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\nimport { forceReflow } from './utils/reflow';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n if (node) forceReflow(node);\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, noop } from '@progress/kendo-react-common';\nimport { CSSTransition } from 'react-transition-group';\nimport util from './util';\nvar styles = util.styles;\nvar AnimationChild = /** @class */ (function (_super) {\n __extends(AnimationChild, _super);\n function AnimationChild() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.elementRef = React.createRef();\n return _this;\n }\n Object.defineProperty(AnimationChild.prototype, \"element\", {\n /**\n * The element that is being animated.\n */\n get: function () {\n return this.elementRef.current;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n AnimationChild.prototype.render = function () {\n var _this = this;\n var _a = this.props, children = _a.children, style = _a.style, appear = _a.appear, enter = _a.enter, exit = _a.exit, transitionName = _a.transitionName, transitionEnterDuration = _a.transitionEnterDuration, transitionExitDuration = _a.transitionExitDuration, className = _a.className, onEnter = _a.onEnter, onEntering = _a.onEntering, onEntered = _a.onEntered, onExit = _a.onExit, onExiting = _a.onExiting, onExited = _a.onExited, onAfterExited = _a.onAfterExited, mountOnEnter = _a.mountOnEnter, unmountOnExit = _a.unmountOnExit, animationEnteringStyle = _a.animationEnteringStyle, animationEnteredStyle = _a.animationEnteredStyle, animationExitingStyle = _a.animationExitingStyle, animationExitedStyle = _a.animationExitedStyle, other = __rest(_a, [\"children\", \"style\", \"appear\", \"enter\", \"exit\", \"transitionName\", \"transitionEnterDuration\", \"transitionExitDuration\", \"className\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"onAfterExited\", \"mountOnEnter\", \"unmountOnExit\", \"animationEnteringStyle\", \"animationEnteredStyle\", \"animationExitingStyle\", \"animationExitedStyle\"]);\n var childAnimationContainerClassNames = classNames(className, styles['child-animation-container']);\n var defaultStyle = __assign({ transitionDelay: '0ms' }, style);\n var animationStyle = {\n entering: __assign({ transitionDuration: \"\".concat(transitionEnterDuration, \"ms\") }, animationEnteringStyle),\n entered: __assign({}, animationEnteredStyle),\n exiting: __assign({ transitionDuration: \"\".concat(transitionExitDuration, \"ms\") }, animationExitingStyle),\n exited: __assign({}, animationExitedStyle)\n };\n var transitionProps = {\n in: this.props.in,\n appear: appear,\n enter: enter,\n exit: exit,\n mountOnEnter: mountOnEnter,\n unmountOnExit: unmountOnExit,\n timeout: {\n enter: transitionEnterDuration,\n exit: transitionExitDuration\n },\n onEnter: (function () {\n if (onEnter) {\n onEnter.call(undefined, { animatedElement: _this.element, target: _this });\n }\n }),\n onEntering: (function () {\n if (onEntering) {\n onEntering.call(undefined, { animatedElement: _this.element, target: _this });\n }\n }),\n onEntered: (function () {\n if (onEntered) {\n onEntered.call(undefined, { animatedElement: _this.element, target: _this });\n }\n }),\n onExit: (function () {\n if (onExit) {\n onExit.call(undefined, { animatedElement: _this.element, target: _this });\n }\n }),\n onExiting: (function () {\n if (onExiting) {\n onExiting.call(undefined, { animatedElement: _this.element, target: _this });\n }\n }),\n onExited: (function () {\n if (onAfterExited) {\n onAfterExited.call(undefined, { animatedElement: _this.element, target: _this });\n }\n if (onExited) {\n onExited.call(undefined, { animatedElement: _this.element, target: _this });\n }\n }),\n classNames: {\n appear: styles[\"\".concat(transitionName, \"-appear\")] || \"\".concat(transitionName, \"-appear\"),\n appearActive: styles[\"\".concat(transitionName, \"-appear-active\")] || \"\".concat(transitionName, \"-appear-active\"),\n enter: styles[\"\".concat(transitionName, \"-enter\")] || \"\".concat(transitionName, \"-enter\"),\n enterActive: styles[\"\".concat(transitionName, \"-enter-active\")] || \"\".concat(transitionName, \"-enter-active\"),\n exit: styles[\"\".concat(transitionName, \"-exit\")] || \"\".concat(transitionName, \"-exit\"),\n exitActive: styles[\"\".concat(transitionName, \"-exit-active\")] || \"\".concat(transitionName, \"-exit-active\")\n }\n };\n return (React.createElement(CSSTransition, __assign({}, transitionProps, other, { nodeRef: this.elementRef }), function (status) {\n return (React.createElement(\"div\", { style: __assign(__assign({}, defaultStyle), animationStyle[status]), className: childAnimationContainerClassNames, ref: _this.elementRef }, children));\n }));\n };\n /**\n * @hidden\n */\n AnimationChild.propTypes = {\n in: PropTypes.bool,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ]),\n transitionName: PropTypes.string.isRequired,\n className: PropTypes.string,\n appear: PropTypes.bool,\n enter: PropTypes.bool,\n exit: PropTypes.bool,\n transitionEnterDuration: PropTypes.number.isRequired,\n transitionExitDuration: PropTypes.number.isRequired,\n mountOnEnter: PropTypes.bool,\n unmountOnExit: PropTypes.bool,\n animationEnteringStyle: PropTypes.object,\n animationEnteredStyle: PropTypes.object,\n animationExitingStyle: PropTypes.object,\n animationExitedStyle: PropTypes.object\n };\n /**\n * @hidden\n */\n AnimationChild.defaultProps = {\n mountOnEnter: true,\n unmountOnExit: false,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop,\n onAfterExited: noop,\n animationEnteringStyle: {},\n animationEnteredStyle: {},\n animationExitingStyle: {},\n animationExitedStyle: {}\n };\n return AnimationChild;\n}(React.Component));\nexport { AnimationChild };\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-animation',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1697038779,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\nimport { AnimationChild } from './AnimationChild';\nimport { TransitionGroup } from 'react-transition-group';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from './package-metadata';\nimport util from './util';\nvar styles = util.styles;\n// tslint:enable:max-line-length\nvar Animation = /** @class */ (function (_super) {\n __extends(Animation, _super);\n function Animation(props) {\n var _this = _super.call(this, props) || this;\n validatePackage(packageMetadata);\n return _this;\n }\n /**\n * @hidden\n */\n Animation.prototype.render = function () {\n var _a = this.props, id = _a.id, style = _a.style, children = _a.children, component = _a.component, className = _a.className, childFactory = _a.childFactory, stackChildren = _a.stackChildren, componentChildStyle = _a.componentChildStyle, componentChildClassName = _a.componentChildClassName, other = __rest(_a, [\"id\", \"style\", \"children\", \"component\", \"className\", \"childFactory\", \"stackChildren\", \"componentChildStyle\", \"componentChildClassName\"]);\n var transitionProps = {\n id: id,\n style: style,\n component: component,\n childFactory: childFactory,\n className: classNames(styles['animation-container'], styles['animation-container-relative'], className)\n };\n var content = React.Children.map(children || null, function (child) { return (React.createElement(AnimationChild, __assign({}, other, { style: componentChildStyle, className: componentChildClassName }), child)); });\n return (React.createElement(TransitionGroup, __assign({}, transitionProps), content));\n };\n /**\n * @hidden\n */\n Animation.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ]),\n childFactory: PropTypes.any,\n className: PropTypes.string,\n component: PropTypes.string,\n id: PropTypes.string,\n style: PropTypes.any,\n transitionName: PropTypes.string.isRequired,\n appear: PropTypes.bool.isRequired,\n enter: PropTypes.bool.isRequired,\n exit: PropTypes.bool.isRequired,\n transitionEnterDuration: PropTypes.number.isRequired,\n transitionExitDuration: PropTypes.number.isRequired\n };\n /**\n * @hidden\n */\n Animation.defaultProps = {\n component: 'div'\n };\n return Animation;\n}(React.Component));\nexport { Animation };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Animation } from './Animation';\nimport { noop } from '@progress/kendo-react-common';\nimport util from './util';\nvar Reveal = /** @class */ (function (_super) {\n __extends(Reveal, _super);\n function Reveal() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * @hidden\n */\n _this.state = {\n maxHeight: undefined,\n maxWidth: undefined\n };\n _this.componentWillEnter = function (event) {\n var _a = _this.props, onEnter = _a.onEnter, onBeforeEnter = _a.onBeforeEnter;\n if (onBeforeEnter) {\n onBeforeEnter.call(undefined, event);\n }\n _this.updateContainerDimensions(event.animatedElement, function () {\n if (onEnter) {\n onEnter.call(undefined, event);\n }\n });\n };\n _this.componentIsEntering = function (event) {\n var onEntering = _this.props.onEntering;\n _this.updateContainerDimensions(event.animatedElement, function () {\n if (onEntering) {\n onEntering.call(undefined, event);\n }\n });\n };\n _this.componentWillExit = function (event) {\n var onExit = _this.props.onExit;\n _this.updateContainerDimensions(event.animatedElement, function () {\n if (onExit) {\n onExit.call(undefined, event);\n }\n });\n };\n _this.updateContainerDimensions = function (node, done) {\n if (done === void 0) { done = noop; }\n var content = node.firstChild;\n if (content) {\n var newHeight = util.outerHeight(content);\n var newWidth = util.outerWidth(content);\n _this.setState({\n maxHeight: newHeight,\n maxWidth: newWidth\n }, done);\n }\n };\n return _this;\n }\n /**\n * @hidden\n */\n Reveal.prototype.render = function () {\n var _a = this.props, direction = _a.direction, children = _a.children, childFactory = _a.childFactory, other = __rest(_a, [\"direction\", \"children\", \"childFactory\"]);\n var _b = this.state, maxHeight = _b.maxHeight, maxWidth = _b.maxWidth;\n var maxOffset;\n if (direction === 'vertical') {\n maxOffset = { maxHeight: maxHeight ? \"\".concat(maxHeight, \"px\") : '' };\n }\n else {\n maxOffset = { maxWidth: maxWidth ? \"\".concat(maxWidth, \"px\") : '' };\n }\n var animationEnteringStyle = {\n maxHeight: maxOffset.maxHeight,\n maxWidth: maxOffset.maxWidth\n };\n var factory = function (child) {\n var result = childFactory ? childFactory(child) : child;\n if (!result.props.in) {\n return React.cloneElement(result, __assign(__assign({}, result.props), { style: __assign(__assign({}, result.props.style), { maxHeight: maxOffset.maxHeight, maxWidth: maxOffset.maxWidth }) }));\n }\n return result;\n };\n return (React.createElement(Animation, __assign({}, other, { childFactory: factory, onEnter: this.componentWillEnter, onEntering: this.componentIsEntering, onExit: this.componentWillExit, animationEnteringStyle: animationEnteringStyle, transitionName: \"reveal-\".concat(direction) }), children));\n };\n /**\n * @hidden\n */\n Reveal.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ]),\n childFactory: PropTypes.any,\n className: PropTypes.string,\n direction: PropTypes.oneOf([\n 'horizontal',\n 'vertical'\n ]),\n component: PropTypes.string,\n id: PropTypes.string,\n style: PropTypes.any\n };\n /**\n * @hidden\n */\n Reveal.defaultProps = {\n appear: false,\n enter: true,\n exit: true,\n transitionEnterDuration: 300,\n transitionExitDuration: 300,\n direction: 'vertical'\n };\n return Reveal;\n}(React.Component));\nexport { Reveal };\n","/**\n * @hidden\n */\nvar outerHeight = function (element) {\n if (!element || !element.ownerDocument.defaultView) {\n return 0;\n }\n var wnd = element.ownerDocument.defaultView;\n var computedStyles = wnd.getComputedStyle(element);\n var marginTop = parseFloat(computedStyles.marginTop);\n var marginBottom = parseFloat(computedStyles.marginBottom);\n return element.offsetHeight + marginTop + marginBottom;\n};\n/**\n * @hidden\n */\nvar outerWidth = function (element) {\n if (!element || !element.ownerDocument.defaultView) {\n return 0;\n }\n var wnd = element.ownerDocument.defaultView;\n var computedStyles = wnd.getComputedStyle(element);\n var marginLeft = parseFloat(computedStyles.marginLeft);\n var marginRight = parseFloat(computedStyles.marginRight);\n return element.offsetWidth + marginLeft + marginRight;\n};\n/**\n * @hidden\n */\nvar styles = {\n 'animation-container': 'k-animation-container',\n 'animation-container-relative': 'k-animation-container-relative',\n 'animation-container-fixed': 'k-animation-container-fixed',\n 'push-right-enter': 'k-push-right-enter',\n 'push-right-appear': 'k-push-right-appear',\n 'push-right-enter-active': 'k-push-right-enter-active',\n 'push-right-appear-active': 'k-push-right-appear-active',\n 'push-right-exit': 'k-push-right-exit',\n 'push-right-exit-active': 'k-push-right-exit-active',\n 'push-left-enter': 'k-push-left-enter',\n 'push-left-appear': 'k-push-left-appear',\n 'push-left-enter-active': 'k-push-left-enter-active',\n 'push-left-appear-active': 'k-push-left-appear-active',\n 'push-left-exit': 'k-push-left-exit',\n 'push-left-exit-active': 'k-push-left-exit-active',\n 'push-down-enter': 'k-push-down-enter',\n 'push-down-appear': 'k-push-down-appear',\n 'push-down-enter-active': 'k-push-down-enter-active',\n 'push-down-appear-active': 'k-push-down-appear-active',\n 'push-down-exit': 'k-push-down-exit',\n 'push-down-exit-active': 'k-push-down-exit-active',\n 'push-up-enter': 'k-push-up-enter',\n 'push-up-appear': 'k-push-up-appear',\n 'push-up-enter-active': 'k-push-up-enter-active',\n 'push-up-appear-active': 'k-push-up-appear-active',\n 'push-up-exit': 'k-push-up-exit',\n 'push-up-exit-active': 'k-push-up-exit-active',\n 'expand': 'k-expand',\n 'expand-vertical-enter': 'k-expand-vertical-enter',\n 'expand-vertical-appear': 'k-expand-vertical-appear',\n 'expand-vertical-enter-active': 'k-expand-vertical-enter-active',\n 'expand-vertical-appear-active': 'k-expand-vertical-appear-active',\n 'expand-vertical-exit': 'k-expand-vertical-exit',\n 'expand-vertical-exit-active': 'k-expand-vertical-exit-active',\n 'expand-horizontal-enter': 'k-expand-horizontal-enter',\n 'expand-horizontal-appear': 'k-expand-horizontal-appear',\n 'expand-horizontal-enter-active': 'k-expand-horizontal-enter-active',\n 'expand-horizontal-appear-active': 'k-expand-horizontal-appear-active',\n 'expand-horizontal-exit': 'k-expand-horizontal-exit',\n 'expand-horizontal-exit-active': 'k-expand-horizontal-exit-active',\n 'child-animation-container': 'k-child-animation-container',\n 'fade-enter': 'k-fade-enter',\n 'fade-appear': 'k-fade-appear',\n 'fade-enter-active': 'k-fade-enter-active',\n 'fade-appear-active': 'k-fade-appear-active',\n 'fade-exit': 'k-fade-exit',\n 'fade-exit-active': 'k-fade-exit-active',\n 'zoom-in-enter': 'k-zoom-in-enter',\n 'zoom-in-appear': 'k-zoom-in-appear',\n 'zoom-in-enter-active': 'k-zoom-in-enter-active',\n 'zoom-in-appear-active': 'k-zoom-in-appear-active',\n 'zoom-in-exit': 'k-zoom-in-exit',\n 'zoom-in-exit-active': 'k-zoom-in-exit-active',\n 'zoom-out-enter': 'k-zoom-out-enter',\n 'zoom-out-appear': 'k-zoom-out-appear',\n 'zoom-out-enter-active': 'k-zoom-out-enter-active',\n 'zoom-out-appear-active': 'k-zoom-out-appear-active',\n 'zoom-out-exit': 'k-zoom-out-exit',\n 'zoom-out-exit-active': 'k-zoom-out-exit-active',\n 'slide-in-appear': 'k-slide-in-appear',\n 'centered': 'k-centered',\n 'slide-in-appear-active': 'k-slide-in-appear-active',\n 'slide-down-enter': 'k-slide-down-enter',\n 'slide-down-appear': 'k-slide-down-appear',\n 'slide-down-enter-active': 'k-slide-down-enter-active',\n 'slide-down-appear-active': 'k-slide-down-appear-active',\n 'slide-down-exit': 'k-slide-down-exit',\n 'slide-down-exit-active': 'k-slide-down-exit-active',\n 'slide-up-enter': 'k-slide-up-enter',\n 'slide-up-appear': 'k-slide-up-appear',\n 'slide-up-enter-active': 'k-slide-up-enter-active',\n 'slide-up-appear-active': 'k-slide-up-appear-active',\n 'slide-up-exit': 'k-slide-up-exit',\n 'slide-up-exit-active': 'k-slide-up-exit-active',\n 'slide-right-enter': 'k-slide-right-enter',\n 'slide-right-appear': 'k-slide-right-appear',\n 'slide-right-enter-active': 'k-slide-right-enter-active',\n 'slide-right-appear-active': 'k-slide-right-appear-active',\n 'slide-right-exit': 'k-slide-right-exit',\n 'slide-right-exit-active': 'k-slide-right-exit-active',\n 'slide-left-enter': 'k-slide-left-enter',\n 'slide-left-appear': 'k-slide-left-appear',\n 'slide-left-enter-active': 'k-slide-left-enter-active',\n 'slide-left-appear-active': 'k-slide-left-appear-active',\n 'slide-left-exit': 'k-slide-left-exit',\n 'slide-left-exit-active': 'k-slide-left-exit-active',\n 'reveal-vertical-enter': 'k-reveal-vertical-enter',\n 'reveal-vertical-appear': 'k-reveal-vertical-appear',\n 'reveal-vertical-enter-active': 'k-reveal-vertical-enter-active',\n 'reveal-vertical-appear-active': 'k-reveal-vertical-appear-active',\n 'reveal-vertical-exit': 'k-reveal-vertical-exit',\n 'reveal-vertical-exit-active': 'k-reveal-vertical-exit-active',\n 'reveal-horizontal-enter': 'k-reveal-horizontal-enter',\n 'reveal-horizontal-appear': 'k-reveal-horizontal-appear',\n 'reveal-horizontal-enter-active': 'k-reveal-horizontal-enter-active',\n 'reveal-horizontal-appear-active': 'k-reveal-horizontal-appear-active',\n 'reveal-horizontal-exit': 'k-reveal-horizontal-exit',\n 'reveal-horizontal-exit-active': 'k-reveal-horizontal-exit-active'\n};\n/**\n * @hidden\n */\nvar stylesMap = {\n outerHeight: outerHeight,\n outerWidth: outerWidth,\n styles: styles\n};\nexport default stylesMap;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, kendoThemeMaps, IconWrap, svgIconPropType } from '@progress/kendo-react-common';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from './package-metadata';\n/**\n * @hidden\n */\nfunction iconElement(_a) {\n var imageUrl = _a.imageUrl, name = _a.name, iconClass = _a.iconClass, svgIcon = _a.svgIcon, imageAlt = _a.imageAlt;\n if (imageUrl) {\n return (React.createElement(\"img\", { role: \"presentation\", className: 'k-button-icon', alt: imageAlt, src: imageUrl }));\n }\n else if (name || svgIcon) {\n return React.createElement(IconWrap, { className: 'k-button-icon', name: name, icon: svgIcon });\n }\n else if (iconClass) {\n return (React.createElement(\"span\", { role: \"presentation\", className: classNames('k-button-icon', iconClass) }));\n }\n return null;\n}\nvar Button = /** @class */ (function (_super) {\n __extends(Button, _super);\n function Button(props) {\n var _this = _super.call(this, props) || this;\n _this._element = null;\n _this.handleClick = function (event) {\n _this.toggleIfApplicable();\n if (_this.props.onClick) {\n _this.props.onClick.call(undefined, event);\n }\n };\n validatePackage(packageMetadata);\n _this.state = { selected: _this.props.togglable === true && _this.props.selected === true };\n return _this;\n }\n Object.defineProperty(Button.prototype, \"element\", {\n /**\n * Gets the DOM element of the Button component.\n */\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Button.prototype, \"selected\", {\n /**\n * Returns `true` when the component is togglable and selected ([see example]({% slug toggleable_button %})).\n * Otherwise, returns `false`.\n */\n get: function () {\n return this._selectedTemp !== undefined ? this._selectedTemp : this.state.selected;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n Button.getDerivedStateFromProps = function (props, state) {\n if (props.togglable && props.selected !== undefined && props.selected !== state.selected) {\n return { selected: props.selected };\n }\n return null;\n };\n /**\n * @hidden\n */\n Button.prototype.render = function () {\n var _a;\n var _this = this;\n var _b = this.props, children = _b.children, togglable = _b.togglable, icon = _b.icon, iconClass = _b.iconClass, svgIcon = _b.svgIcon, imageUrl = _b.imageUrl, imageAlt = _b.imageAlt, className = _b.className, onClick = _b.onClick, _c = _b.size, size = _c === void 0 ? Button.defaultProps.size : _c, _d = _b.rounded, rounded = _d === void 0 ? Button.defaultProps.rounded : _d, _e = _b.fillMode, fillMode = _e === void 0 ? Button.defaultProps.fillMode : _e, _f = _b.themeColor, themeColor = _f === void 0 ? Button.defaultProps.themeColor : _f, htmlAttributes = __rest(_b, [\"children\", \"togglable\", \"icon\", \"iconClass\", \"svgIcon\", \"imageUrl\", \"imageAlt\", \"className\", \"onClick\", \"size\", \"rounded\", \"fillMode\", \"themeColor\"]);\n var hasIcon = (icon !== undefined || iconClass !== undefined || imageUrl !== undefined);\n var hasChildren = children !== undefined;\n var iconEl = iconElement({\n name: icon,\n svgIcon: svgIcon,\n iconClass: iconClass,\n imageUrl: imageUrl,\n imageAlt: imageAlt\n });\n return (React.createElement(\"button\", __assign({ ref: function (button) { return _this._element = button; }, \"aria-pressed\": togglable ? this.state.selected : undefined }, htmlAttributes, { onClick: this.handleClick, className: classNames('k-button', (_a = {},\n _a[\"k-button-\".concat(kendoThemeMaps.sizeMap[size] || size)] = size,\n _a[\"k-button-\".concat(fillMode)] = fillMode,\n _a[\"k-button-\".concat(fillMode, \"-\").concat(themeColor)] = Boolean(fillMode && themeColor),\n _a[\"k-rounded-\".concat(kendoThemeMaps.roundedMap[rounded] || rounded)] = rounded,\n _a['k-icon-button'] = !hasChildren && hasIcon,\n _a['k-disabled'] = this.props.disabled,\n _a['k-selected'] = this.state.selected,\n _a['k-rtl'] = this.props.dir === 'rtl',\n _a), this.props.className) }),\n iconEl,\n children && (React.createElement(\"span\", { className: \"k-button-text\" }, children))));\n };\n Button.prototype.toggleIfApplicable = function () {\n var _this = this;\n if (this.props.togglable && this.props.selected === undefined) {\n var selected = !this.state.selected;\n this._selectedTemp = selected;\n this.setState({ selected: selected }, function () { return _this._selectedTemp = undefined; });\n }\n };\n /**\n * @hidden\n */\n Button.propTypes = {\n children: PropTypes.node,\n selected: PropTypes.bool,\n togglable: PropTypes.bool,\n icon: PropTypes.string,\n svgIcon: svgIconPropType,\n iconClass: PropTypes.string,\n imageUrl: PropTypes.string,\n imageAlt: PropTypes.string,\n size: PropTypes.oneOf([null, 'small', 'medium', 'large']),\n rounded: PropTypes.oneOf([null, 'small', 'medium', 'large', 'full']),\n fillMode: PropTypes.oneOf([null, 'flat', 'link', 'outline', 'solid']),\n // eslint-disable-next-line max-len\n themeColor: PropTypes.oneOf([null, 'base', 'primary', 'secondary', 'tertiary', 'info', 'success', 'warning', 'error', 'dark', 'light', 'inverse'])\n };\n /**\n * @hidden\n */\n Button.defaultProps = {\n togglable: false,\n size: 'medium',\n rounded: 'medium',\n fillMode: 'solid',\n themeColor: 'base'\n };\n return Button;\n}(React.Component));\nexport { Button };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from './package-metadata';\nimport util from './util';\nvar styles = util.styles;\nvar ButtonGroup = /** @class */ (function (_super) {\n __extends(ButtonGroup, _super);\n function ButtonGroup(props) {\n var _this = _super.call(this, props) || this;\n _this._element = null;\n validatePackage(packageMetadata);\n return _this;\n }\n /**\n * @hidden\n */\n ButtonGroup.prototype.render = function () {\n var _a;\n var _this = this;\n var buttons = this.mapButtons(this.props.children);\n var groupClasses = classNames([styles['button-group']], (_a = {},\n _a['k-disabled'] = this.props.disabled,\n _a[styles['button-group-stretched']] = !!this.props.width,\n _a), this.props.className);\n var groupProps = {\n className: groupClasses,\n style: { 'width': \"\".concat(this.props.width) },\n dir: this.props.dir,\n // Accessibility properties\n role: 'group',\n 'aria-disabled': this.props.disabled\n };\n return (React.createElement(\"div\", __assign({ ref: function (div) { _this._element = div; } }, groupProps, { className: groupClasses }), buttons));\n };\n ButtonGroup.prototype.mapButtons = function (children) {\n var _this = this;\n var count = React.Children.count(children);\n var rtl = this.props.dir !== undefined\n ? this.props.dir === 'rtl'\n : (this._element && (getComputedStyle(this._element).direction === 'rtl') || false);\n return React.Children.map(children, function (child, index) {\n if (React.isValidElement(child)) {\n return _this.renderButton(child, index, (index === count - 1), rtl);\n }\n return child;\n });\n };\n ButtonGroup.prototype.renderButton = function (child, index, isLast, isRtl) {\n var _a;\n var className = classNames(child.props.className, (_a = {},\n _a[styles['group-start']] = isRtl ? isLast : index === 0,\n _a[styles['group-end']] = isRtl ? index === 0 : isLast,\n _a));\n var style = __assign(__assign({}, (this.props.width ? { width: this.props.width } : {})), (child.props.style || {}));\n var disabled = this.props.disabled || child.props.disabled;\n var buttonProps = __assign(__assign(__assign(__assign({}, child.props), (className ? { className: className } : {})), (Object.keys(style).length ? { style: style } : {})), (disabled !== undefined ? { disabled: disabled } : {}));\n return React.Children.count(child.props.children) > 0 ?\n React.cloneElement(child, buttonProps, child.props.children) :\n React.cloneElement(child, buttonProps);\n };\n /**\n * @hidden\n */\n ButtonGroup.propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.element), PropTypes.element]),\n className: PropTypes.string,\n disabled: PropTypes.bool,\n width: PropTypes.string,\n dir: PropTypes.string\n };\n return ButtonGroup;\n}(React.Component));\nexport { ButtonGroup };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { ChipListSelectionContext, ChipListFocusContext, ChipListDataContext } from './ChipList';\nimport { classNames, useDir, getTabIndex, Keys, IconWrap, kendoThemeMaps, toIconName, svgIconPropType } from '@progress/kendo-react-common';\nimport { xCircleIcon } from '@progress/kendo-svg-icons';\nimport { FOCUS_ACTION } from './focus-reducer';\nimport { CHIP_DATA_ACTION } from './data-reducer';\nimport { SELECTION_ACTION } from './selection-reducer';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { useMouse } from '@progress/kendo-react-common';\n/**\n * Represents the Chip component.\n */\nexport var Chip = React.forwardRef(function (props, ref) {\n var _a;\n validatePackage(packageMetadata);\n var target = React.useRef(null);\n var chipRef = React.useRef(null);\n var dir = useDir(chipRef, props.dir);\n React.useImperativeHandle(target, function () { return ({\n element: chipRef.current,\n props: props\n }); });\n React.useImperativeHandle(ref, function () { return target.current; });\n var _b = React.useContext(ChipListSelectionContext), selection = _b[0], dispatchSelection = _b[1];\n var _c = React.useContext(ChipListFocusContext), focus = _c[0], dispatchFocus = _c[1];\n var _d = React.useContext(ChipListDataContext), dispatchData = _d[1];\n var selected = React.useMemo(function () {\n return (props.selected || (Array.isArray(selection)\n ? selection.some(function (i) { return i === props.value; })\n : selection === props.value));\n }, [props.selected, props.value, selection]);\n var focused = React.useMemo(function () { return focus === props.value; }, [props.value, focus]);\n React.useEffect(function () {\n if (focused && chipRef.current) {\n chipRef.current.focus();\n }\n }, [focused]);\n var handleClick = React.useCallback(function (event) {\n dispatchSelection({ type: SELECTION_ACTION.toggle, payload: props.value, event: event });\n }, [dispatchSelection, props.value]);\n var handleRemove = React.useCallback(function (event) {\n if (!props.removable) {\n return;\n }\n dispatchData({ type: CHIP_DATA_ACTION.remove, payload: props.value, event: event });\n dispatchFocus({ type: FOCUS_ACTION.reset, payload: props.value, event: event });\n dispatchSelection({ type: SELECTION_ACTION.remove, payload: props.value, event: event });\n if (props.onRemove) {\n props.onRemove.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [props.onRemove, props.value, props.removable, dispatchData, dispatchFocus, dispatchSelection]);\n var handleKeyDown = React.useCallback(function (event) {\n switch (event.keyCode) {\n case Keys.left:\n dispatchFocus({ type: FOCUS_ACTION.prev, payload: props.value, event: event });\n break;\n case Keys.right:\n dispatchFocus({ type: FOCUS_ACTION.next, payload: props.value, event: event });\n break;\n case Keys.enter:\n dispatchSelection({ type: SELECTION_ACTION.toggle, payload: props.value, event: event });\n break;\n case Keys.delete:\n handleRemove(event);\n break;\n default:\n break;\n }\n if (props.onKeyDown) {\n props.onKeyDown.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [props.onKeyDown, props.value, dispatchFocus, dispatchSelection, handleRemove]);\n var handleFocus = React.useCallback(function (event) {\n dispatchFocus({ payload: props.value, type: FOCUS_ACTION.current, event: event });\n if (props.onFocus) {\n props.onFocus.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [props.onFocus, props.value, dispatchFocus]);\n var handleBlur = React.useCallback(function (event) {\n if (props.onBlur) {\n props.onBlur.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [props.onBlur]);\n var mouseProps = useMouse(props, target, { onClick: handleClick });\n return (React.createElement(\"div\", __assign({}, mouseProps, { role: props.role, id: props.value, style: props.style, ref: chipRef, dir: dir, tabIndex: getTabIndex(props.tabIndex, props.disabled, undefined), className: classNames('k-chip', (_a = {\n 'k-rtl': dir === 'rtl',\n 'k-disabled': props.disabled,\n 'k-selected': selected,\n 'k-focus': focused\n },\n _a[\"k-chip-\".concat(kendoThemeMaps.sizeMap[props.size] || props.size)] = props.size,\n _a[\"k-rounded-\".concat(kendoThemeMaps.roundedMap[props.rounded] || props.rounded)] = props.rounded,\n _a[\"k-chip-\".concat(props.fillMode)] = props.fillMode,\n _a[\"k-chip-\".concat(props.fillMode, \"-\").concat(props.themeColor)] = Boolean(props.fillMode && props.themeColor),\n _a), props.className), \"aria-checked\": selected, \"aria-disabled\": props.disabled, \"aria-describedby\": props.ariaDescribedBy, onFocus: handleFocus, onBlur: handleBlur, onKeyDown: handleKeyDown }),\n (selected && (props.selectedIcon || props.selectedSvgIcon)) &&\n React.createElement(IconWrap, { className: 'k-chip-icon', name: props.selectedIcon ? toIconName(props.selectedIcon) : undefined, icon: props.selectedSvgIcon, size: 'small' }),\n (props.icon || props.svgIcon) &&\n React.createElement(IconWrap, { className: 'k-chip-icon', name: props.icon ? toIconName(props.icon) : undefined, icon: props.svgIcon, size: 'small' }),\n (props.avatar) &&\n React.createElement(\"div\", { className: \"k-chip-avatar k-avatar k-rounded-\".concat(props.avatar.rounded, \" k-avatar-md k-avatar-solid k-avatar-solid-primary\"), style: props.avatar.style },\n React.createElement(\"span\", { className: \"k-avatar-image\" },\n React.createElement(\"img\", { src: props.avatar.image, alt: props.avatar.imageAlt }))),\n React.createElement(\"span\", { className: 'k-chip-content' }, props.children !== undefined\n ? props.children\n : props.text &&\n React.createElement(\"span\", { \"aria-label\": props.ariaLabel || props.text, className: 'k-chip-label' }, props.text)),\n props.removable && (React.createElement(\"span\", { className: \"k-chip-actions\" },\n React.createElement(\"span\", { className: classNames('k-chip-action', 'k-chip-remove-action'), onClick: handleRemove },\n React.createElement(IconWrap, { name: props.removeIcon ? toIconName(props.removeIcon) : undefined, icon: props.removeSvgIcon || xCircleIcon, size: 'small' }))))));\n});\nvar propTypes = {\n id: PropTypes.string,\n text: PropTypes.string,\n value: PropTypes.any,\n dir: PropTypes.oneOf(['ltr', 'rtl']),\n removable: PropTypes.bool,\n removeIcon: PropTypes.string,\n removeIconSvg: svgIconPropType,\n disabled: PropTypes.bool,\n icon: PropTypes.string,\n svgIcon: svgIconPropType,\n selectedIcon: PropTypes.string,\n selectedIconSvg: svgIconPropType,\n onRemove: PropTypes.func,\n dataItem: PropTypes.any,\n selected: PropTypes.bool,\n ariaDescribedBy: PropTypes.string,\n size: PropTypes.oneOf([null, 'small', 'medium', 'large']),\n rounded: PropTypes.oneOf([null, 'small', 'medium', 'large', 'full']),\n fillMode: PropTypes.oneOf([null, 'outline', 'solid']),\n // eslint-disable-next-line max-len\n themeColor: PropTypes.oneOf([null, 'base', 'info', 'success', 'warning', 'error'])\n};\nvar defaultProps = {\n disabled: false,\n removable: false,\n removeIcon: 'k-i-x-circle',\n dir: 'ltr',\n size: 'medium',\n rounded: 'medium',\n fillMode: 'solid',\n themeColor: 'base'\n};\nChip.displayName = 'KendoReactChip';\n// TODO: delete casting when @types/react is updated!\nChip.propTypes = propTypes;\nChip.defaultProps = defaultProps;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { useDir, getter, getTabIndex, classNames, useMouse, kendoThemeMaps } from '@progress/kendo-react-common';\nimport { selectionReducer } from './selection-reducer';\nimport { focusReducer } from './focus-reducer';\nimport { dataReducer } from './data-reducer';\nimport { Chip } from './Chip';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * @hidden\n */\nexport var ChipListSelectionContext = React.createContext([null, function (_args) {\n /**/\n }]);\n/**\n * @hidden\n */\nexport var ChipListFocusContext = React.createContext([null, function (_args) {\n /**/\n }]);\n/**\n * @hidden\n */\nexport var ChipListDataContext = React.createContext([null, function (_args) {\n /**/\n }]);\n/**\n * @hidden\n */\nvar useSelection = function (defaultValue, args, callback) {\n var _a = React.useState(defaultValue), state = _a[0], setState = _a[1];\n var handleDispatchSelection = function (action) {\n var newState = selectionReducer(args.state || state, __assign(__assign({}, action), args));\n if (callback) {\n callback(newState, action.event);\n }\n setState(newState);\n };\n return [state, handleDispatchSelection];\n};\n/**\n * @hidden\n */\nvar useFocus = function (args) {\n var _a = React.useState(null), state = _a[0], setState = _a[1];\n var handleDispatchFocus = function (action) {\n var newState = focusReducer(action.payload, __assign(__assign({}, action), args));\n setState(newState);\n };\n return [state, handleDispatchFocus];\n};\n/**\n * @hidden\n */\nvar useData = function (defaultData, args, callback) {\n var _a = React.useState(defaultData), state = _a[0], setState = _a[1];\n var handleDispatchData = function (action) {\n var newState = dataReducer(args.state || state, __assign(__assign({}, action), args));\n if (callback) {\n callback(newState, action.event);\n }\n setState(newState);\n };\n return [state, handleDispatchData];\n};\n/**\n * Represents the ChipList component.\n */\nexport var ChipList = React.forwardRef(function (props, ref) {\n var _a;\n validatePackage(packageMetadata);\n var target = React.useRef(null);\n var chipListRef = React.useRef(null);\n var dir = useDir(chipListRef, props.dir);\n var chip = props.chip, id = props.id, style = props.style, tabIndex = props.tabIndex, disabled = props.disabled, size = props.size, className = props.className, ariaDescribedBy = props.ariaDescribedBy, ariaLabelledBy = props.ariaLabelledBy, _b = props.selection, selection = _b === void 0 ? defaultProps.selection : _b, _c = props.value, value = _c === void 0 ? defaultProps.defaultValue : _c, _d = props.defaultData, defaultData = _d === void 0 ? defaultProps.defaultData : _d, _e = props.valueField, valueField = _e === void 0 ? defaultProps.valueField : _e, _f = props.textField, textField = _f === void 0 ? defaultProps.textField : _f, onChange = props.onChange, onDataChange = props.onDataChange;\n var ChipComponent = React.useMemo(function () { return chip || Chip; }, [chip, Chip]);\n React.useImperativeHandle(target, function () { return ({\n element: chipListRef.current,\n props: props\n }); });\n React.useImperativeHandle(ref, function () { return target.current; });\n var handleChange = React.useCallback(function (newValue, event) {\n if (onChange && target.current) {\n onChange.call(undefined, {\n value: newValue,\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [onChange]);\n var _g = useSelection(value, {\n selection: selection,\n state: value\n }, handleChange), stateValue = _g[0], dispatchStateValue = _g[1];\n var handleDataChange = React.useCallback(function (newData, event) {\n if (onDataChange && target.current) {\n onDataChange.call(undefined, {\n value: newData,\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [onDataChange]);\n var _h = useData(props.data || defaultData, {\n state: props.data,\n valueField: valueField\n }, handleDataChange), stateData = _h[0], dispatchData = _h[1];\n var itemsReducer = React.useCallback(function (acc, current) {\n acc.push(current[valueField]);\n return acc;\n }, [valueField]);\n var data = React.useMemo(function () { return props.data || stateData; }, [props.data, stateData]);\n var chipValue = React.useMemo(function () { return value || stateValue; }, [value, stateValue]);\n var items = React.useMemo(function () { return data.reduce(itemsReducer, []); }, [data, itemsReducer]);\n var valueGetter = React.useCallback(function (item) { return getter(valueField)(item); }, [valueField]);\n var textGetter = React.useCallback(function (item) { return getter(textField)(item); }, [textField]);\n var _j = useFocus({ items: items }), focus = _j[0], dispatchFocus = _j[1];\n var mouseProps = useMouse(props, target);\n return (React.createElement(ChipListSelectionContext.Provider, { value: [chipValue, dispatchStateValue] },\n React.createElement(ChipListFocusContext.Provider, { value: [focus, dispatchFocus] },\n React.createElement(ChipListDataContext.Provider, { value: [data, dispatchData] },\n React.createElement(\"div\", __assign({ ref: chipListRef }, mouseProps, { role: 'listbox', id: id, dir: dir, style: style, tabIndex: getTabIndex(tabIndex, disabled, undefined), className: classNames('k-chip-list', (_a = {\n 'k-rtl': dir === 'rtl',\n 'k-disabled': disabled\n },\n _a[\"k-chip-list-\".concat(kendoThemeMaps.sizeMap[size] || size)] = size,\n _a), className), \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy }), data.map(function (item, index) {\n return (React.createElement(ChipComponent, { role: 'option', dataItem: item, size: size, key: [valueGetter(item), index].join('-'), text: textGetter(item), value: valueGetter(item), ariaLabel: item.ariaLabel, svgIcon: item.svgIcon || undefined }));\n }))))));\n});\nvar propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n tabIndex: PropTypes.number,\n data: PropTypes.any,\n defaultData: PropTypes.arrayOf(PropTypes.any),\n onDataChange: PropTypes.func,\n value: PropTypes.oneOfType([PropTypes.any, PropTypes.arrayOf(PropTypes.any)]),\n defaultValue: PropTypes.oneOfType([PropTypes.any, PropTypes.arrayOf(PropTypes.any)]),\n onChange: PropTypes.func,\n selection: PropTypes.oneOf(['single', 'none', 'multiple']),\n textField: PropTypes.string,\n valueField: PropTypes.string,\n disabled: PropTypes.bool,\n dir: PropTypes.oneOf(['ltr', 'rtl']),\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n size: PropTypes.oneOf([null, 'small', 'medium', 'large'])\n};\nvar defaultProps = {\n chip: Chip,\n size: 'medium',\n disabled: false,\n defaultValue: null,\n defaultData: [],\n dir: 'ltr',\n selection: 'none',\n textField: 'text',\n valueField: 'value',\n removable: 'removable'\n};\nChipList.displayName = 'KendoReactChipList';\n// TODO: delete casting when @types/react is updated!\nChipList.propTypes = propTypes;\nChipList.defaultProps = defaultProps;\n","/**\n * @hidden\n */\nexport var CHIP_DATA_ACTION;\n(function (CHIP_DATA_ACTION) {\n CHIP_DATA_ACTION[\"remove\"] = \"remove\";\n CHIP_DATA_ACTION[\"add\"] = \"add\";\n CHIP_DATA_ACTION[\"reorder\"] = \"reorder\";\n})(CHIP_DATA_ACTION || (CHIP_DATA_ACTION = {}));\n/**\n * @hidden\n */\nexport var dataReducer = function (state, action) {\n switch (action.type) {\n case CHIP_DATA_ACTION.add:\n // TODO v2\n break;\n case CHIP_DATA_ACTION.remove:\n return state.filter(function (i) { return i[action.valueField] !== action.payload; });\n case CHIP_DATA_ACTION.reorder:\n // TODO v2\n break;\n default:\n return state;\n }\n};\n","/**\n * @hidden\n */\nexport var FOCUS_ACTION;\n(function (FOCUS_ACTION) {\n FOCUS_ACTION[\"next\"] = \"next\";\n FOCUS_ACTION[\"prev\"] = \"prev\";\n FOCUS_ACTION[\"current\"] = \"current\";\n FOCUS_ACTION[\"reset\"] = \"reset\";\n})(FOCUS_ACTION || (FOCUS_ACTION = {}));\n/**\n * @hidden\n */\nexport var focusReducer = function (state, action) {\n var currentIndex = action.items.findIndex(function (i) { return i === state; });\n switch (action.type) {\n case FOCUS_ACTION.next:\n return currentIndex === action.items.length - 1\n ? state\n : action.items[currentIndex + 1];\n case FOCUS_ACTION.prev:\n return currentIndex === 0\n ? state\n : action.items[currentIndex - 1];\n case FOCUS_ACTION.current:\n return action.payload;\n case FOCUS_ACTION.reset:\n return null;\n default:\n return state;\n }\n};\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n/**\n * @hidden\n */\nexport var SELECTION_TYPE;\n(function (SELECTION_TYPE) {\n SELECTION_TYPE[\"single\"] = \"single\";\n SELECTION_TYPE[\"multiple\"] = \"multiple\";\n SELECTION_TYPE[\"none\"] = \"none\";\n})(SELECTION_TYPE || (SELECTION_TYPE = {}));\n/**\n * @hidden\n */\nexport var SELECTION_ACTION;\n(function (SELECTION_ACTION) {\n SELECTION_ACTION[\"toggle\"] = \"toggle\";\n SELECTION_ACTION[\"remove\"] = \"remove\";\n})(SELECTION_ACTION || (SELECTION_ACTION = {}));\n/**\n * @hidden\n */\nexport var selectionReducer = function (state, action) {\n switch (action.selection) {\n case SELECTION_TYPE.single:\n switch (action.type) {\n case SELECTION_ACTION.toggle: {\n if (!Array.isArray(state) || state === null) {\n return action.payload === state ? null : action.payload;\n }\n throw new Error('State cannot be an array in single selection');\n }\n case SELECTION_ACTION.remove: {\n return action.payload === state ? null : state;\n }\n default:\n return state;\n }\n case SELECTION_TYPE.multiple:\n switch (action.type) {\n case SELECTION_ACTION.toggle: {\n if (Array.isArray(state)) {\n return state.some(function (i) { return i === action.payload; })\n ? state.filter(function (i) { return i !== action.payload; })\n : __spreadArray(__spreadArray([], state, true), [action.payload], false);\n }\n if (state === null) {\n return [action.payload];\n }\n throw new Error('State cannot be non-array in multiple selection');\n }\n case SELECTION_ACTION.remove: {\n if (Array.isArray(state)) {\n return state.some(function (i) { return i === action.payload; })\n ? state.filter(function (i) { return i !== action.payload; })\n : __spreadArray(__spreadArray([], state, true), [action.payload], false);\n }\n return state;\n }\n default:\n return state;\n }\n case SELECTION_TYPE.none:\n return null;\n default:\n return state;\n }\n};\n","import * as React from 'react';\nimport { classNames, IconWrap } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nexport var ButtonItem = function (props) {\n var handleClick = React.useCallback(function (event) {\n props.onClick(event, props.index);\n }, [props]);\n var As = props.dataItem.render || props.item || (props.item === undefined ? props.render : null);\n var text = props.dataItem.text !== undefined ? props.dataItem.text : (props.textField ? props.dataItem[props.textField] : props.dataItem);\n var item = (React.createElement(\"li\", { id: props.id, className: classNames('k-item', props.className, { 'k-focus': props.focused }), tabIndex: -1, onClick: handleClick, onMouseDown: props.onDown, onPointerDown: props.onDown, role: \"menuitem\", \"aria-disabled\": props.dataItem.disabled || undefined }, (React.createElement(\"span\", { tabIndex: -1, className: classNames('k-link k-menu-link', {\n 'k-selected': props.dataItem.selected,\n 'k-disabled': props.dataItem.disabled\n }), key: \"icon\" }, As\n ? (React.createElement(As, { item: props.dataItem, itemIndex: props.index }))\n : (React.createElement(React.Fragment, null,\n (props.dataItem.icon || props.dataItem.iconClass) && (React.createElement(IconWrap, { className: props.dataItem.iconClass, name: props.dataItem.icon, icon: props.dataItem.svgIcon })),\n (props.dataItem.imageUrl) && (React.createElement(\"img\", { role: \"presentation\", alt: \"\", src: props.dataItem.imageUrl, className: 'k-icon' })),\n (text) && (React.createElement(\"span\", { className: \"k-menu-link-text\" }, text))))))));\n return ((props.item !== undefined && /* to be removed in 5.0.0 */\n props.render !== undefined) ? props.render.call(undefined, item, props) : item);\n};\nButtonItem.displayName = 'KendoReactButtonItem';\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nvar SplitButtonItem = /** @class */ (function (_super) {\n __extends(SplitButtonItem, _super);\n function SplitButtonItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @hidden\n */\n SplitButtonItem.prototype.render = function () {\n return null;\n };\n /**\n * @hidden\n */\n SplitButtonItem.propTypes = {\n text: PropTypes.string,\n icon: PropTypes.string,\n iconClass: PropTypes.string,\n imageUrl: PropTypes.string,\n disabled: PropTypes.bool,\n render: PropTypes.any\n };\n return SplitButtonItem;\n}(React.Component));\nexport { SplitButtonItem };\n","import { Keys } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar navigate = function (focusedIndex, keyCode, altKey, total) {\n if (altKey) {\n return focusedIndex;\n }\n var index = Math.min(total - 1, Math.max(0, focusedIndex));\n switch (keyCode) {\n case Keys.enter:\n case Keys.space:\n case Keys.esc:\n return -1;\n case Keys.up:\n case Keys.left:\n return index - 1 < 0 ? total - 1 : index - 1;\n case Keys.down:\n case Keys.right:\n return index + 1 >= total ? 0 : index + 1;\n case Keys.home:\n return 0;\n case Keys.end:\n return total - 1;\n default:\n return focusedIndex;\n }\n};\nexport { navigate };\n","/**\n * @hidden\n */\nexport function getAnchorAlign(isDirectionRightToLeft) {\n var align = { horizontal: 'left', vertical: 'bottom' };\n if (isDirectionRightToLeft) {\n align.horizontal = 'right';\n }\n return align;\n}\n/**\n * @hidden\n */\nexport function getPopupAlign(isDirectionRightToLeft) {\n var align = { horizontal: 'left', vertical: 'top' };\n if (isDirectionRightToLeft) {\n align.horizontal = 'right';\n }\n return align;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Button } from './../main';\nimport { classNames, getActiveElement, guid, kendoThemeMaps, Keys, svgIconPropType } from '@progress/kendo-react-common';\nimport { dispatchEvent } from '@progress/kendo-react-common';\nimport { ButtonItem } from './ButtonItem';\nimport { SplitButtonItem } from './SplitButtonItem';\nimport { navigate as navigation } from './utils/navigation';\nimport { Popup } from '@progress/kendo-react-popup';\nimport { getAnchorAlign, getPopupAlign } from './utils/popup';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { caretAltDownIcon } from '@progress/kendo-svg-icons';\n/**\n * Represents the [KendoReact SplitButton component]({% slug overview_splitbutton %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * render() {\n * return (\n * \n * \n * \n * \n * \n * );\n * }\n * }\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar SplitButton = /** @class */ (function (_super) {\n __extends(SplitButton, _super);\n function SplitButton(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.state = {\n focused: false,\n focusedIndex: -1,\n opened: false\n };\n _this.wrapper = null;\n _this.mainButton = null;\n _this.list = null;\n _this.guid = guid();\n _this.skipFocus = false;\n _this.buttonsData = [];\n _this.onKeyDown = function (event) {\n var focusedIndex = _this.state.focusedIndex;\n if (event.altKey) {\n if (!_this.opened && event.keyCode === Keys.down) {\n _this.dispatchPopupEvent(event, true);\n _this.setState({ focusedIndex: 0 });\n _this.setOpen(true);\n }\n else if (_this.opened && event.keyCode === Keys.up) {\n _this.setState({ focusedIndex: -1 });\n _this.setOpen(false);\n }\n return;\n }\n var newState = undefined;\n if (event.keyCode === Keys.enter || event.keyCode === Keys.space) {\n // Prevent default because otherwise when an item is selected\n // click on the default button gets emitted which opens the popup again.\n event.preventDefault();\n _this.dispatchClickEvent(event, focusedIndex);\n if (focusedIndex >= 0) {\n newState = {\n focusedIndex: _this.opened ? -1 : 0\n };\n var notOpened = !_this.opened;\n _this.setOpen(notOpened);\n if (notOpened) {\n _this.dispatchPopupEvent(event, notOpened);\n }\n }\n }\n else if (_this.opened && event.keyCode === Keys.esc) {\n _this.setState({ focusedIndex: -1 });\n _this.setOpen(false);\n return;\n }\n if (_this.opened) {\n var newFocused = navigation(focusedIndex, event.keyCode, event.altKey, _this.buttonsData.length);\n if (newFocused !== focusedIndex) {\n newState = newState || {};\n newState.focusedIndex = newFocused;\n }\n var arrowKey = event.keyCode === Keys.up || event.keyCode === Keys.down ||\n event.keyCode === Keys.left || event.keyCode === Keys.right;\n if (!event.altKey && (arrowKey || event.keyCode === Keys.home || event.keyCode === Keys.end)) {\n // Needed to notify the parent listeners that event is handled.\n event.preventDefault();\n }\n }\n if (newState) {\n _this.setState(newState);\n }\n };\n _this.switchFocus = function (focusFn) {\n _this.skipFocus = true;\n focusFn();\n window.setTimeout(function () { return _this.skipFocus = false; }, 0);\n };\n _this.onFocus = function (event) {\n if (_this.skipFocus) {\n return;\n }\n dispatchEvent(_this.props.onFocus, event, _this, undefined);\n _this.setState({ focused: true });\n };\n _this.setOpen = function (value) {\n _this.openedDuringOnChange = value;\n _this.setState({ opened: value });\n };\n _this.onItemClick = function (event, clickedItemIndex) {\n var opened = _this.opened;\n if (opened) {\n _this.setState({ focusedIndex: 0 });\n _this.setOpen(false);\n }\n _this.dispatchClickEvent(event, clickedItemIndex);\n };\n _this.onBlur = function (event) {\n if (_this.skipFocus) {\n return;\n }\n _this.setState({\n focused: false,\n focusedIndex: -1\n });\n _this.setOpen(false);\n dispatchEvent(_this.props.onBlur, event, _this, undefined);\n };\n _this.onPopupClose = function () {\n if (_this.state.focused) {\n _this.switchFocus(function () {\n if (_this.element) {\n _this.element.removeAttribute('tabindex');\n _this.element.focus({ preventScroll: true });\n }\n });\n }\n _this.dispatchPopupEvent({}, false);\n };\n _this.listRef = function (list) {\n _this.list = list;\n if (list && _this.state.focused) {\n _this.switchFocus(function () {\n list.focus({ preventScroll: true });\n if (_this.element) {\n _this.element.tabIndex = -1;\n }\n });\n }\n };\n _this.onSplitPartClick = function (event) {\n if (_this.buttonsData.length) {\n var toOpen = !_this.opened;\n if (toOpen) {\n _this.dispatchPopupEvent(event, toOpen);\n }\n _this.setState({\n focusedIndex: toOpen ? 0 : -1,\n focused: true\n });\n _this.setOpen(toOpen);\n }\n };\n _this.onDownSplitPart = function (event) {\n event.preventDefault();\n var activeElement = getActiveElement(document);\n if (_this.element && activeElement !== _this.element && activeElement !== _this.list) {\n _this.element.focus();\n }\n };\n _this.onItemDown = function (event) {\n var activeElement = getActiveElement(document);\n if (activeElement === _this.list) {\n event.preventDefault();\n }\n };\n _this.dispatchPopupEvent = function (dispatchedEvent, open) {\n dispatchEvent(open ? _this.props.onOpen : _this.props.onClose, dispatchedEvent, _this, undefined);\n _this.openedDuringOnChange = undefined;\n };\n validatePackage(packageMetadata);\n return _this;\n }\n Object.defineProperty(SplitButton.prototype, \"opened\", {\n get: function () {\n return this.openedDuringOnChange !== undefined\n ? this.openedDuringOnChange\n : this.props.opened === undefined\n ? this.state.opened\n : this.props.opened;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n SplitButton.prototype.render = function () {\n var _this = this;\n this.buttonsData = this.props.items ||\n React.Children.toArray(this.props.children)\n .filter(function (child) { return child && child.type === SplitButtonItem; })\n .map(function (child) { return child.props; });\n var rtl = this.isRtl();\n var dir = rtl ? 'rtl' : undefined;\n var _a = this.props, id = _a.id, style = _a.style, tabIndex = _a.tabIndex, disabled = _a.disabled;\n return (React.createElement(\"div\", { id: id, style: style, className: classNames('k-split-button', 'k-button-group', {\n 'k-focus': this.state.focused\n }, \"k-rounded-\".concat(kendoThemeMaps.roundedMap[this.props.rounded || 'medium']), this.props.className), onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, dir: dir, ref: function (el) { return _this.wrapper = el; } },\n React.createElement(Button, { ref: function (el) { return _this.mainButton = el && el.element; }, type: \"button\", size: this.props.size, rounded: this.props.rounded, fillMode: this.props.fillMode, themeColor: this.props.themeColor, onClick: function (event) { return _this.onItemClick(event, -1); }, disabled: disabled || undefined, tabIndex: tabIndex, accessKey: this.props.accessKey, className: this.props.buttonClass, icon: this.props.icon, svgIcon: this.props.svgIcon, iconClass: this.props.iconClass, imageUrl: this.props.imageUrl, dir: dir, \"aria-disabled\": disabled, \"aria-haspopup\": true, \"aria-expanded\": this.opened || undefined, \"aria-label\": this.props.ariaLabel, \"aria-controls\": this.opened ? this.guid : undefined, id: 'button-' + this.guid, title: this.props.title }, this.props.text),\n React.createElement(Button, { type: \"button\", size: this.props.size, rounded: this.props.rounded, fillMode: this.props.fillMode, themeColor: this.props.themeColor, icon: \"caret-alt-down\", svgIcon: caretAltDownIcon, className: \"k-split-button-arrow\", disabled: disabled || undefined, tabIndex: -1, onClick: this.onSplitPartClick, onMouseDown: this.onDownSplitPart, onPointerDown: this.onDownSplitPart, dir: dir, \"aria-label\": \"menu toggling button\" }),\n this.renderPopup(rtl)));\n };\n /**\n * @hidden\n */\n SplitButton.prototype.componentDidMount = function () {\n // If this.props.opened is true during the initial render, the popup is not aligned.\n if ((this.props.dir === undefined && this.isRtl()) || this.opened) {\n this.forceUpdate();\n }\n };\n Object.defineProperty(SplitButton.prototype, \"element\", {\n /**\n * The DOM element of main button.\n */\n get: function () {\n return this.mainButton;\n },\n enumerable: false,\n configurable: true\n });\n SplitButton.prototype.dispatchClickEvent = function (dispatchedEvent, clickedItemIndex) {\n if (!this.isItemDisabled(clickedItemIndex)) {\n if (clickedItemIndex === -1) {\n dispatchEvent(this.props.onButtonClick, dispatchedEvent, this, undefined);\n }\n else {\n dispatchEvent(this.props.onItemClick, dispatchedEvent, this, {\n item: this.buttonsData[clickedItemIndex],\n itemIndex: clickedItemIndex\n });\n }\n }\n };\n SplitButton.prototype.renderPopup = function (rtl) {\n var _a;\n var _b = this.props.popupSettings, popupSettings = _b === void 0 ? {} : _b;\n var focusedIndex = this.state.focusedIndex;\n return (React.createElement(Popup, { anchor: this.wrapper, show: this.opened, animate: popupSettings.animate, popupClass: classNames('k-menu-popup', popupSettings.popupClass), anchorAlign: popupSettings.anchorAlign || getAnchorAlign(rtl), popupAlign: popupSettings.popupAlign || getPopupAlign(rtl), style: rtl ? { direction: 'rtl' } : undefined, onClose: this.onPopupClose },\n React.createElement(\"ul\", { role: \"menu\", id: this.guid, \"aria-labelledby\": 'button-' + this.guid, tabIndex: -1, ref: this.listRef, \"aria-activedescendant\": focusedIndex >= 0 ? \"\".concat(this.guid, \"-\").concat(focusedIndex) : undefined, className: classNames('k-group k-menu-group k-reset', (_a = {},\n _a[\"k-menu-group-\".concat(kendoThemeMaps.sizeMap[this.props.size] || this.props.size)] = this.props.size,\n _a)) }, this.renderChildItems())));\n };\n SplitButton.prototype.renderChildItems = function () {\n var _this = this;\n var _a = this.props, item = _a.item, itemRender = _a.itemRender, textField = _a.textField;\n return this.buttonsData.length > 0 ? (this.buttonsData.map(function (dataItem, index) {\n return (React.createElement(ButtonItem, { className: \"k-menu-item\", dataItem: dataItem, textField: textField, focused: _this.state.focusedIndex === index, onClick: _this.onItemClick, onDown: _this.onItemDown, render: itemRender, item: item, key: index, index: index, id: \"\".concat(_this.guid, \"-\").concat(index) }));\n })) : null;\n };\n SplitButton.prototype.isItemDisabled = function (index) {\n return this.buttonsData[index] ? this.buttonsData[index].disabled : this.props.disabled;\n };\n SplitButton.prototype.isRtl = function () {\n return this.props.dir !== undefined ? this.props.dir === 'rtl' :\n !!this.wrapper && getComputedStyle(this.wrapper).direction === 'rtl';\n };\n /**\n * @hidden\n */\n SplitButton.propTypes = {\n accessKey: PropTypes.string,\n ariaLabel: PropTypes.string,\n title: PropTypes.string,\n onButtonClick: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onItemClick: PropTypes.func,\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n text: PropTypes.string,\n items: PropTypes.arrayOf(PropTypes.any),\n textField: PropTypes.string,\n tabIndex: PropTypes.number,\n disabled: PropTypes.bool,\n icon: PropTypes.string,\n svgIcon: svgIconPropType,\n iconClass: PropTypes.string,\n imageUrl: PropTypes.string,\n popupSettings: PropTypes.object,\n itemRender: PropTypes.any,\n item: PropTypes.func,\n className: PropTypes.string,\n buttonClass: PropTypes.string,\n dir: PropTypes.string\n };\n /**\n * @hidden\n */\n SplitButton.defaultProps = {\n size: 'medium',\n rounded: 'medium',\n fillMode: 'solid',\n themeColor: 'base'\n };\n return SplitButton;\n}(React.Component));\nexport { SplitButton };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nvar DropDownButtonItem = /** @class */ (function (_super) {\n __extends(DropDownButtonItem, _super);\n function DropDownButtonItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @hidden\n */\n DropDownButtonItem.prototype.render = function () {\n return null;\n };\n /**\n * @hidden\n */\n DropDownButtonItem.propTypes = {\n text: PropTypes.string,\n icon: PropTypes.string,\n iconClass: PropTypes.string,\n imageUrl: PropTypes.string,\n selected: PropTypes.bool,\n disabled: PropTypes.bool,\n render: PropTypes.any\n };\n return DropDownButtonItem;\n}(React.Component));\nexport { DropDownButtonItem };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Button } from './../main';\nimport { classNames, guid, Keys, kendoThemeMaps, svgIconPropType, getActiveElement } from '@progress/kendo-react-common';\nimport { dispatchEvent } from '@progress/kendo-react-common';\nimport { navigate as navigation } from './utils/navigation';\nimport { DropDownButtonItem } from './DropDownButtonItem';\nimport { ButtonItem } from './ButtonItem';\nimport { Popup } from '@progress/kendo-react-popup';\nimport { getAnchorAlign, getPopupAlign } from './utils/popup';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * Represents the [KendoReact DropDownButton component]({% slug overview_dropdownbutton %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * render() {\n * return (\n * \n * \n * \n * \n * \n * );\n * }\n * }\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar DropDownButton = /** @class */ (function (_super) {\n __extends(DropDownButton, _super);\n function DropDownButton(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.state = {\n opened: false,\n focused: false,\n focusedIndex: -1\n };\n _this.wrapper = null;\n _this.mainButton = null;\n _this.list = null;\n _this.skipFocus = false;\n _this.guid = guid();\n _this.buttonsData = [];\n _this.onKeyDown = function (event) {\n var focusedIndex = _this.state.focusedIndex;\n if (event.altKey) {\n if (!_this.opened && event.keyCode === Keys.down) {\n _this.setOpen(true);\n _this.dispatchPopupEvent(event, true);\n _this.setState({ focusedIndex: 0 });\n }\n else if (_this.opened && event.keyCode === Keys.up) {\n _this.setState({ focusedIndex: -1 });\n _this.setOpen(false);\n }\n return;\n }\n var newState = __assign({}, _this.state);\n if (event.keyCode === Keys.enter || event.keyCode === Keys.space) {\n if (focusedIndex >= 0) {\n _this.dispatchClickEvent(event, focusedIndex);\n }\n // Prevent default because otherwise when an item is selected\n // click on the default button gets emitted which opens the popup again.\n event.preventDefault();\n var notOpened = !_this.opened;\n _this.setOpen(notOpened);\n if (notOpened) {\n _this.dispatchPopupEvent(event, true);\n _this.setState({ focusedIndex: _this.opened ? -1 : 0 });\n }\n return;\n }\n else if (_this.opened && event.keyCode === Keys.esc) {\n _this.setState({ focusedIndex: -1 });\n _this.setOpen(false);\n return;\n }\n if (_this.opened) {\n var newFocused = navigation(focusedIndex, event.keyCode, event.altKey, _this.buttonsData.length);\n newState.focusedIndex = newFocused;\n var arrowKey = event.keyCode === Keys.up || event.keyCode === Keys.down ||\n event.keyCode === Keys.left || event.keyCode === Keys.right;\n if (!event.altKey && (arrowKey || event.keyCode === Keys.home || event.keyCode === Keys.end)) {\n // Needed to notify the parent listeners that event is handled.\n event.preventDefault();\n }\n }\n _this.setState(newState);\n };\n _this.switchFocus = function (focusFn) {\n _this.skipFocus = true;\n focusFn();\n window.setTimeout(function () { return _this.skipFocus = false; }, 0);\n };\n _this.handleFocus = function (event) {\n if (_this.skipFocus) {\n return;\n }\n _this.setState({ focused: true, focusedIndex: _this.opened ? 0 : -1 });\n dispatchEvent(_this.props.onFocus, event, _this, undefined);\n };\n _this.handleBlur = function (event) {\n if (_this.skipFocus) {\n return;\n }\n _this.setState({ focused: false, focusedIndex: -1 });\n _this.setOpen(false);\n dispatchEvent(_this.props.onBlur, event, _this, undefined);\n };\n _this.setOpen = function (value) {\n _this.openedDuringOnChange = value;\n _this.setState({ opened: value });\n };\n _this.onItemClick = function (event, clickedItemIndex) {\n _this.setState({ focusedIndex: -1 });\n _this.setOpen(false);\n _this.dispatchClickEvent(event, clickedItemIndex);\n };\n _this.onItemDown = function (event) {\n var activeElement = getActiveElement(document);\n if (activeElement === _this.list) {\n event.preventDefault();\n }\n };\n _this.mouseDown = function (event) {\n event.preventDefault();\n var activeElement = getActiveElement(document);\n if (_this.element && activeElement !== _this.element && activeElement !== _this.list) {\n _this.element.focus();\n }\n };\n _this.onPopupClose = function () {\n if (_this.state.focused) {\n _this.switchFocus(function () {\n if (_this.element) {\n _this.element.removeAttribute('tabindex');\n _this.element.focus({ preventScroll: true });\n }\n });\n }\n _this.dispatchPopupEvent({}, false);\n };\n _this.listRef = function (list) {\n _this.list = list;\n if (list && _this.state.focused) {\n _this.switchFocus(function () {\n list.focus({ preventScroll: true });\n if (_this.element) {\n _this.element.tabIndex = -1;\n }\n });\n }\n };\n _this.onClickMainButton = function (event) {\n if (!_this.buttonsData.length) {\n return;\n }\n var toOpen = !_this.opened;\n _this.setState({\n focused: true,\n focusedIndex: toOpen ? 0 : -1\n });\n _this.setOpen(toOpen);\n if (toOpen) {\n _this.dispatchPopupEvent(event, toOpen);\n }\n };\n _this.dispatchPopupEvent = function (dispatchedEvent, open) {\n dispatchEvent(open ? _this.props.onOpen : _this.props.onClose, dispatchedEvent, _this, undefined);\n _this.openedDuringOnChange = undefined;\n };\n validatePackage(packageMetadata);\n return _this;\n }\n Object.defineProperty(DropDownButton.prototype, \"opened\", {\n get: function () {\n return this.openedDuringOnChange !== undefined\n ? this.openedDuringOnChange\n : this.props.opened === undefined\n ? this.state.opened\n : this.props.opened;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n DropDownButton.prototype.render = function () {\n var _this = this;\n var rtl = this.isRtl();\n var dir = rtl ? 'rtl' : undefined;\n var _a = this.props, id = _a.id, style = _a.style, tabIndex = _a.tabIndex, disabled = _a.disabled;\n this.buttonsData = this.props.items ||\n React.Children.toArray(this.props.children)\n .filter(function (child) { return child && child.type === DropDownButtonItem; })\n .map(function (child) { return child.props; });\n return (React.createElement(\"div\", { id: id, style: style, className: classNames('k-dropdown-button', {\n 'k-focus': this.state.focused\n }, this.props.className), onKeyDown: this.onKeyDown, onFocus: this.handleFocus, onBlur: this.handleBlur, dir: dir, ref: function (el) { return _this.wrapper = el; } },\n React.createElement(Button, { size: this.props.size, rounded: this.props.rounded, fillMode: this.props.fillMode, themeColor: this.props.themeColor, onClick: this.onClickMainButton, onMouseDown: this.mouseDown, disabled: disabled || undefined, tabIndex: tabIndex, accessKey: this.props.accessKey, icon: this.props.icon, svgIcon: this.props.svgIcon, iconClass: this.props.iconClass, className: this.props.buttonClass, imageUrl: this.props.imageUrl, dir: dir, ref: function (btn) { return _this.mainButton = btn && btn.element; }, type: \"button\", \"aria-haspopup\": true, \"aria-expanded\": this.opened || undefined, \"aria-label\": this.props.ariaLabel, \"aria-controls\": this.opened ? this.guid : undefined, id: 'button-' + this.guid, title: this.props.title }, this.props.text),\n this.renderPopup(rtl)));\n };\n /**\n * @hidden\n */\n DropDownButton.prototype.componentDidMount = function () {\n // If this.props.opened is true during the initial render, the popup is not aligned.\n if ((this.props.dir === undefined && this.isRtl()) || this.opened) {\n this.forceUpdate();\n }\n };\n Object.defineProperty(DropDownButton.prototype, \"element\", {\n /**\n * The DOM element of main button.\n */\n get: function () {\n return this.mainButton;\n },\n enumerable: false,\n configurable: true\n });\n DropDownButton.prototype.dispatchClickEvent = function (dispatchedEvent, index) {\n if (!this.isItemDisabled(index)) {\n dispatchEvent(this.props.onItemClick, dispatchedEvent, this, {\n item: this.buttonsData[index],\n itemIndex: index\n });\n }\n };\n DropDownButton.prototype.renderPopup = function (rtl) {\n var _a;\n var _b = this.props.popupSettings, popupSettings = _b === void 0 ? {} : _b;\n var focusedIndex = this.state.focusedIndex;\n return (React.createElement(Popup, { anchor: this.wrapper, show: this.opened, animate: popupSettings.animate, popupClass: classNames('k-menu-popup', popupSettings.popupClass), anchorAlign: popupSettings.anchorAlign || getAnchorAlign(rtl), popupAlign: popupSettings.popupAlign || getPopupAlign(rtl), style: rtl ? { direction: 'rtl' } : undefined, onClose: this.onPopupClose },\n React.createElement(\"ul\", { role: \"menu\", id: this.guid, \"aria-labelledby\": 'button-' + this.guid, tabIndex: -1, \"aria-activedescendant\": focusedIndex >= 0 ? \"\".concat(this.guid, \"-\").concat(focusedIndex) : undefined, ref: this.listRef, className: classNames('k-group k-menu-group k-reset', (_a = {},\n _a[\"k-menu-group-\".concat(kendoThemeMaps.sizeMap[this.props.size] || this.props.size)] = this.props.size,\n _a)) }, this.renderChildItems())));\n };\n DropDownButton.prototype.renderChildItems = function () {\n var _this = this;\n var _a = this.props, item = _a.item, itemRender = _a.itemRender, textField = _a.textField;\n return this.buttonsData.length > 0 ? (this.buttonsData.map(function (dataItem, index) {\n return (React.createElement(ButtonItem, { className: \"k-menu-item\", dataItem: dataItem, textField: textField, focused: _this.state.focusedIndex === index, onClick: _this.onItemClick, onDown: _this.onItemDown, render: itemRender, item: item, index: index, key: index, id: \"\".concat(_this.guid, \"-\").concat(index) }));\n })) : null;\n };\n DropDownButton.prototype.isItemDisabled = function (index) {\n return this.buttonsData[index] ? this.buttonsData[index].disabled : this.props.disabled;\n };\n DropDownButton.prototype.isRtl = function () {\n return this.props.dir !== undefined ? this.props.dir === 'rtl' :\n !!this.wrapper && getComputedStyle(this.wrapper).direction === 'rtl';\n };\n /**\n * @hidden\n */\n DropDownButton.propTypes = {\n accessKey: PropTypes.string,\n ariaLabel: PropTypes.string,\n title: PropTypes.string,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onItemClick: PropTypes.func,\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n items: PropTypes.arrayOf(PropTypes.any),\n textField: PropTypes.string,\n tabIndex: PropTypes.number,\n disabled: PropTypes.bool,\n icon: PropTypes.string,\n svgIcon: svgIconPropType,\n iconClass: PropTypes.string,\n imageUrl: PropTypes.string,\n popupSettings: PropTypes.object,\n itemRender: PropTypes.func,\n item: PropTypes.func,\n className: PropTypes.string,\n buttonClass: PropTypes.string,\n dir: PropTypes.string\n };\n /**\n * @hidden\n */\n DropDownButton.defaultProps = {\n size: 'medium',\n rounded: 'medium',\n fillMode: 'solid',\n themeColor: 'base'\n };\n return DropDownButton;\n}(React.Component));\nexport { DropDownButton };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\nvar ToolbarSeparator = /** @class */ (function (_super) {\n __extends(ToolbarSeparator, _super);\n function ToolbarSeparator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @hidden\n */\n ToolbarSeparator.prototype.render = function () {\n return (React.createElement(\"div\", { className: classNames('k-separator', this.props.className) }));\n };\n return ToolbarSeparator;\n}(React.PureComponent));\nexport { ToolbarSeparator };\n","import * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * Represents the KendoReact ToolbarSpacer component.\n * To specify an empty space, provide a ToolbarSpacer component\n * ([see example]({% slug content_toolbar %})).\n */\nexport var ToolbarSpacer = React.forwardRef(function (props, ref) {\n var element = React.useRef(null);\n var spacer = React.useRef(null);\n React.useImperativeHandle(spacer, function () { return ({ element: element.current }); });\n React.useImperativeHandle(ref, function () { return ({ element: element.current }); });\n var className = React.useMemo(function () { return classNames('k-spacer', props.className); }, [props.className]);\n return (React.createElement(\"span\", { ref: element, className: className }));\n});\nToolbarSpacer.displayName = 'KendoReactToolbarSpacer';\nToolbarSpacer.propTypes = {\n className: PropTypes.string\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, getTabIndex, IconWrap, svgIconPropType } from '@progress/kendo-react-common';\n/**\n * Represents the [KendoReact FloatingActionButtonItem component]({% slug overview_floatingactionbutton %}).\n *\n * @example\n * ```jsx\n *\n * const App = () => {\n * return (\n * \n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nexport var FloatingActionButtonItem = React.forwardRef(function (props, ref) {\n var className = props.className, disabled = props.disabled, text = props.text, icon = props.icon, style = props.style, id = props.id, focused = props.focused, tabIndex = props.tabIndex, index = props.index, dataItem = props.dataItem, item = props.item, svgIcon = props.svgIcon, onDown = props.onDown, onClick = props.onClick, others = __rest(props, [\"className\", \"disabled\", \"text\", \"icon\", \"style\", \"id\", \"focused\", \"tabIndex\", \"index\", \"dataItem\", \"item\", \"svgIcon\", \"onDown\", \"onClick\"]);\n var elementRef = React.useRef(null);\n var focusElement = React.useCallback(function () {\n if (elementRef.current) {\n elementRef.current.focus();\n }\n }, []);\n var getImperativeHandle = React.useCallback(function () { return ({\n element: elementRef.current,\n focus: focusElement\n }); }, [focusElement]);\n React.useImperativeHandle(ref, getImperativeHandle);\n var handleClick = React.useCallback(function (event) {\n if (onClick && index !== undefined && !disabled) {\n onClick(event, index);\n }\n }, [onClick, index]);\n var itemClassNames = React.useMemo(function () { return classNames('k-fab-item', {\n 'k-focus': focused,\n 'k-disabled': disabled\n }, className); }, [className, disabled, focused]);\n var ItemComp = item;\n return (React.createElement(\"li\", __assign({ ref: elementRef, id: id, className: itemClassNames, style: style, role: 'menuitem', tabIndex: getTabIndex(tabIndex, disabled), \"aria-disabled\": disabled, \"aria-label\": \"\".concat(text || '', \" floatingactionbutton item\"), onClick: handleClick, onMouseDown: onDown, onPointerDown: onDown }, others), ItemComp ?\n React.createElement(ItemComp, { itemIndex: index, item: dataItem }) :\n (React.createElement(React.Fragment, null,\n text && React.createElement(\"span\", { className: \"k-fab-item-text\" }, text),\n (icon || svgIcon) ? React.createElement(IconWrap, { className: \"k-fab-item-icon\", name: icon, icon: svgIcon }) : null))));\n});\nFloatingActionButtonItem.propTypes = {\n className: PropTypes.string,\n style: PropTypes.object,\n children: PropTypes.any,\n disabled: PropTypes.bool,\n focused: PropTypes.bool,\n index: PropTypes.number,\n icon: PropTypes.string,\n svgIcon: svgIconPropType,\n text: PropTypes.string,\n tabIndex: PropTypes.number,\n customProp: PropTypes.any\n};\nFloatingActionButtonItem.displayName = 'KendoFloatingActionButtonItem';\n","/**\n * @hidden\n */\nexport var DEFAULT_OFFSET = '16px';\n/**\n * @hidden\n */\nexport var toStringValues = function (val) {\n if (typeof val === 'number') {\n return val + 'px';\n }\n return val;\n};\n/**\n * @hidden\n */\nexport var getAnchorAlign = function (fabAlign, rtl) {\n var align = { horizontal: (rtl ? 'right' : 'left'), vertical: 'bottom' };\n if (fabAlign.horizontal === 'end') {\n align.horizontal = rtl ? 'left' : 'right';\n }\n return align;\n};\n/**\n * @hidden\n */\nexport var getPopupAlign = function (fabAlign, rtl) {\n var align = { horizontal: (rtl ? 'right' : 'left'), vertical: 'top' };\n if (fabAlign.horizontal === 'end') {\n align.horizontal = rtl ? 'left' : 'right';\n }\n return align;\n};\n/**\n * @hidden\n */\nexport var getTextDirectionClass = function (rtl, hAlign) {\n var al = hAlign === 'end' ? 'end' : 'start';\n var directions = {\n rtl: { end: 'k-text-left', start: 'k-text-right' },\n ltr: { start: 'k-text-left', end: 'k-text-right' }\n };\n return directions[rtl][al];\n};\n/**\n * @hidden\n */\nexport var position = function (ref, align, alignOffset, isRtl) {\n var horizontal = align.horizontal;\n var vertical = align.vertical;\n if (ref.current) {\n var xFab = alignOffset && alignOffset.x !== undefined ?\n toStringValues(alignOffset.x) :\n DEFAULT_OFFSET;\n var xCenterFab = alignOffset && alignOffset.x !== undefined ?\n \"calc(50% + \".concat(toStringValues(alignOffset.x), \")\") :\n '50%';\n var yFab = alignOffset && alignOffset.y !== undefined ?\n toStringValues(alignOffset.y) :\n DEFAULT_OFFSET;\n var yCenterFab = alignOffset && alignOffset.y !== undefined ?\n \"calc(50% + \".concat(toStringValues(alignOffset.y), \")\") :\n '50%';\n ref.current.style.setProperty(horizontalPosition(align, isRtl), horizontal === 'center' ? xCenterFab : xFab);\n ref.current.style.setProperty(verticalPosition(align), vertical === 'middle' ? yCenterFab : yFab);\n if (isRtl) {\n if ((vertical === 'top' || vertical === 'bottom') && horizontal === 'start') {\n ref.current.style.setProperty('left', 'unset');\n }\n if (vertical === 'middle' && horizontal === 'end') {\n ref.current.style.setProperty('right', 'unset');\n }\n if (vertical === 'middle' && horizontal === 'start') {\n ref.current.style.setProperty('left', 'unset');\n }\n }\n }\n};\nvar horizontalPosition = function (align, isRtl) {\n var horizontal = align.horizontal;\n return {\n end: isRtl ? 'left' : 'right',\n center: 'left',\n start: isRtl ? 'right' : 'left'\n }[horizontal || 'end'];\n};\nvar verticalPosition = function (align) {\n return {\n top: 'top',\n middle: 'top',\n bottom: 'bottom'\n }[align.vertical || 'bottom'];\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { getActiveElement, IconWrap, kendoThemeMaps, svgIconPropType, useZIndexContext, validatePackage, ZIndexContext } from '@progress/kendo-react-common';\nimport { classNames, guid, useDir, dispatchEvent, Keys, getTabIndex } from '@progress/kendo-react-common';\nimport { FloatingActionButtonItem } from './FloatingActionButtonItem';\nimport { packageMetadata } from '../package-metadata';\nimport { position, getAnchorAlign, getPopupAlign, getTextDirectionClass } from './utils';\nimport { Popup } from '@progress/kendo-react-popup';\n/** @hidden */\nvar ZINDEX_FAB_STEP = 2;\n/** @hidden */\nvar DEFAULT_FAB_ZINDEX = 100;\n/**\n * Represents the [KendoReact FloatingActionButton component]({% slug overview_floatingactionbutton %}).\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * \n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nexport var FloatingActionButton = React.forwardRef(function (props, ref) {\n validatePackage(packageMetadata);\n var _a = props.align, align = _a === void 0 ? defaultProps.align : _a, alignOffset = props.alignOffset, className = props.className, disabled = props.disabled, icon = props.icon, svgIcon = props.svgIcon, iconClass = props.iconClass, id = props.id, items = props.items, item = props.item, text = props.text, _b = props.positionMode, positionMode = _b === void 0 ? defaultProps.positionMode : _b, _c = props.size, size = _c === void 0 ? defaultProps.size : _c, style = props.style, _d = props.rounded, rounded = _d === void 0 ? defaultProps.rounded : _d, _e = props.themeColor, themeColor = _e === void 0 ? defaultProps.themeColor : _e, overlayStyle = props.overlayStyle, tabIndex = props.tabIndex, accessKey = props.accessKey, _f = props.popupSettings, popupSettings = _f === void 0 ? {} : _f, modal = props.modal, onClick = props.onClick, onItemClick = props.onItemClick, onFocus = props.onFocus, onBlur = props.onBlur, onKeyDown = props.onKeyDown, onOpen = props.onOpen, onClose = props.onClose, others = __rest(props, [\"align\", \"alignOffset\", \"className\", \"disabled\", \"icon\", \"svgIcon\", \"iconClass\", \"id\", \"items\", \"item\", \"text\", \"positionMode\", \"size\", \"style\", \"rounded\", \"themeColor\", \"overlayStyle\", \"tabIndex\", \"accessKey\", \"popupSettings\", \"modal\", \"onClick\", \"onItemClick\", \"onFocus\", \"onBlur\", \"onKeyDown\", \"onOpen\", \"onClose\"]);\n var zIndexContext = useZIndexContext();\n var currentZIndex = zIndexContext ? zIndexContext + ZINDEX_FAB_STEP : DEFAULT_FAB_ZINDEX;\n var target = React.useRef(null);\n var elementRef = React.useRef(null);\n var listRef = React.useRef(null);\n var popupRef = React.useRef(null);\n var focusElement = React.useCallback(function () {\n if (elementRef.current) {\n elementRef.current.focus();\n }\n }, []);\n var getImperativeHandle = React.useCallback(function () { return ({\n element: elementRef.current,\n focus: focusElement\n }); }, [focusElement]);\n React.useImperativeHandle(target, getImperativeHandle);\n React.useImperativeHandle(ref, function () { return target.current; });\n var _g = React.useState(false), open = _g[0], setOpen = _g[1];\n var _h = React.useState(false), focused = _h[0], setFocused = _h[1];\n var _j = React.useState(-1), focusedIndex = _j[0], setFocusedIndex = _j[1];\n var buttonId = React.useMemo(function () { return guid(); }, []);\n var dir = useDir(elementRef, props.dir);\n var isRtl = dir === 'rtl';\n var listId = React.useMemo(function () { return guid(); }, []);\n React.useEffect(function () {\n position(elementRef, align, alignOffset, isRtl);\n }, [elementRef, align, alignOffset, isRtl]);\n React.useEffect(function () {\n if (focused && elementRef && elementRef.current) {\n // firefox in mac does not focus on mouse-down, next line fixes this\n elementRef.current.focus();\n }\n }, [focused, elementRef]);\n var dispatchPopupEvent = React.useCallback(function (dispatchedEvent, isOpen) {\n if (!items) {\n return;\n }\n dispatchEvent(isOpen ? onOpen : onClose, dispatchedEvent, getImperativeHandle(), undefined);\n }, [onOpen, onClose, items]);\n var handleClick = React.useCallback(function (event) {\n if (!event.target || disabled) {\n return;\n }\n if (!items && onClick) {\n dispatchEvent(onClick, event, getImperativeHandle(), undefined);\n }\n else {\n setOpen(!open);\n setFocused(true);\n setFocusedIndex(!open ? 0 : -1);\n dispatchPopupEvent(event, !open);\n }\n }, [setOpen, setFocused, setFocusedIndex, onClick, dispatchPopupEvent,\n open, items, disabled]);\n var handleFocus = React.useCallback(function (event) {\n setFocused(true);\n setFocusedIndex(open ? 0 : -1);\n if (onFocus) {\n dispatchEvent(onFocus, event, getImperativeHandle(), undefined);\n }\n }, [onFocus, setFocused, setFocusedIndex]);\n var handleBlur = React.useCallback(function (event) {\n setFocused(false);\n setOpen(false);\n setFocusedIndex(-1);\n dispatchEvent(onBlur, event, getImperativeHandle(), undefined);\n var fireCloseEvent = open;\n if (fireCloseEvent) {\n dispatchPopupEvent(event, false);\n }\n }, [onBlur, setFocused, setOpen, setFocusedIndex, dispatchPopupEvent]);\n var handleMouseDown = React.useCallback(function (event) {\n event.preventDefault();\n }, []);\n var dispatchItemClickEvent = React.useCallback(function (dispatchedEvent, index) {\n if (!items) {\n return;\n }\n if (!items[index].disabled) {\n dispatchEvent(onItemClick, dispatchedEvent, getImperativeHandle(), {\n itemProps: items[index],\n itemIndex: index\n });\n }\n }, [onItemClick]);\n var handleItemClick = React.useCallback(function (event, clickedItemIndex) {\n if (!event.target || !items) {\n return;\n }\n setFocusedIndex(clickedItemIndex);\n setOpen(false);\n dispatchItemClickEvent(event, clickedItemIndex);\n dispatchPopupEvent(event, false);\n }, [setFocusedIndex, setOpen, dispatchItemClickEvent, dispatchPopupEvent]);\n var handleItemDown = React.useCallback(function (event) {\n var activeElement = getActiveElement(document);\n if (activeElement === elementRef.current) {\n event.preventDefault();\n }\n }, [elementRef]);\n var handleKeyDown = React.useCallback(function (event) {\n var currIndex = focusedIndex;\n var maxNavIndex = items ? items.length - 1 : -1;\n var isAtBottom = align.vertical === 'bottom';\n switch (event.keyCode) {\n case Keys.enter:\n case Keys.space:\n if (currIndex >= 0) {\n dispatchItemClickEvent(event, currIndex);\n }\n event.preventDefault();\n setOpen(!open);\n setFocusedIndex(!open ? 0 : -1);\n break;\n case Keys.esc:\n event.preventDefault();\n setOpen(false);\n setFocusedIndex(-1);\n break;\n case Keys.home:\n event.preventDefault();\n setFocusedIndex(0);\n break;\n case Keys.end:\n event.preventDefault();\n setFocusedIndex(maxNavIndex);\n break;\n case Keys.down:\n case Keys.right:\n event.preventDefault();\n if (currIndex < maxNavIndex && !isAtBottom) {\n setFocusedIndex(currIndex + 1);\n }\n if (currIndex > 0 && isAtBottom) {\n setFocusedIndex(currIndex - 1);\n }\n break;\n case Keys.up:\n case Keys.left:\n event.preventDefault();\n if (currIndex > 0 && !isAtBottom) {\n setFocusedIndex(currIndex - 1);\n }\n if (currIndex < maxNavIndex && isAtBottom) {\n setFocusedIndex(currIndex + 1);\n }\n break;\n default:\n break;\n }\n dispatchEvent(onKeyDown, event, getImperativeHandle(), undefined);\n }, [onKeyDown, focusedIndex, setFocusedIndex, isRtl, setOpen]);\n var buttonClassNames = React.useMemo(function () {\n var _a;\n return classNames('k-fab k-fab-solid', (_a = {\n 'k-fab-sm': size === 'small',\n 'k-fab-md': size === 'medium',\n 'k-fab-lg': size === 'large',\n 'k-disabled': disabled,\n 'k-pos-absolute': positionMode === 'absolute',\n 'k-pos-fixed': positionMode === 'fixed',\n 'k-focus': focused\n },\n _a[\"k-rounded-\".concat(kendoThemeMaps.roundedMap[rounded] || rounded)] = rounded,\n _a[\"k-fab-solid-\".concat(themeColor)] = themeColor,\n _a), \"k-\".concat(align.vertical, \"-\").concat(align.horizontal), className);\n }, [themeColor, size, rounded, disabled, positionMode, align, focused, className]);\n var fabItems = (items && (items.map(function (element, index) {\n return (React.createElement(FloatingActionButtonItem, __assign({}, element, { key: index, index: index, id: \"\".concat(listId, \"-\").concat(index), disabled: disabled || element.disabled, focused: focusedIndex === index, dataItem: element, item: item, className: classNames(element.className, getTextDirectionClass(dir || 'ltr', align.horizontal)), onClick: handleItemClick, onDown: handleItemDown })));\n })));\n var isIconFab = Boolean((icon || svgIcon) && !text);\n var fabWidth = elementRef.current ? elementRef.current.offsetWidth : 0;\n var iconWidth = 32;\n var spacing = (fabWidth / 2) - (iconWidth / 2);\n return (React.createElement(ZIndexContext.Provider, { value: currentZIndex },\n React.createElement(React.Fragment, null,\n React.createElement(\"button\", __assign({ ref: elementRef, id: id || buttonId, role: items ? 'menubutton' : 'button', type: 'button', \"aria-disabled\": disabled, \"aria-expanded\": items ? open : undefined, \"aria-haspopup\": items ? true : false, \"aria-label\": \"\".concat(text || '', \" floatingactionbutton\"), \"aria-owns\": items ? listId : undefined, \"aria-activedescendant\": focusedIndex >= 0 && items ? \"\".concat(listId, \"-\").concat(focusedIndex) : undefined, tabIndex: getTabIndex(tabIndex, disabled), accessKey: accessKey, dir: dir, disabled: disabled, className: buttonClassNames, style: style, onClick: handleClick, onMouseDown: handleMouseDown, onFocus: handleFocus, onBlur: handleBlur, onKeyDown: handleKeyDown }, others),\n (icon || svgIcon) ?\n React.createElement(IconWrap, { className: \"k-fab-icon\", name: icon, icon: svgIcon }) :\n iconClass ?\n React.createElement(\"span\", { role: \"presentation\", className: iconClass }) : null,\n text && React.createElement(\"span\", { className: \"k-fab-text\" }, text)),\n modal && open && (React.createElement(\"div\", { className: \"k-overlay\", style: __assign({ zIndex: currentZIndex }, overlayStyle) })),\n React.createElement(Popup, { ref: popupRef, anchor: elementRef.current, show: open, animate: popupSettings.animate, popupClass: classNames('k-popup-transparent k-fab-popup', popupSettings.popupClass), anchorAlign: popupSettings.anchorAlign || getAnchorAlign(align, isRtl), popupAlign: popupSettings.popupAlign || getPopupAlign(align, isRtl), style: { boxShadow: 'none' } },\n React.createElement(\"ul\", { ref: listRef, role: 'menu', \"aria-labelledby\": id, id: listId, className: classNames('k-fab-items', {\n 'k-fab-items-bottom': align.vertical !== 'bottom',\n 'k-fab-items-top': align.vertical === 'bottom'\n }), style: {\n paddingLeft: isIconFab ? spacing : undefined,\n paddingRight: isIconFab ? spacing : undefined\n } }, fabItems)))));\n});\nFloatingActionButton.propTypes = {\n className: PropTypes.string,\n style: PropTypes.object,\n id: PropTypes.string,\n dir: PropTypes.string,\n tabIndex: PropTypes.number,\n accessKey: PropTypes.string,\n disabled: PropTypes.bool,\n icon: PropTypes.string,\n svgIcon: svgIconPropType,\n iconClass: PropTypes.string,\n text: PropTypes.string,\n alignOffset: PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n }),\n align: PropTypes.shape({\n vertical: PropTypes.oneOf(['top', 'middle', 'bottom']),\n horizontal: PropTypes.oneOf(['start', 'center', 'end'])\n }),\n positionMode: PropTypes.oneOf(['absolute', 'fixed']),\n size: PropTypes.oneOf([null, 'small', 'medium', 'large']),\n rounded: PropTypes.oneOf([null, 'small', 'medium', 'large', 'full']),\n themeColor: PropTypes.oneOf([null,\n 'primary', 'secondary', 'tertiary',\n 'info', 'success', 'warning',\n 'error', 'dark', 'light', 'inverse'\n ]),\n modal: PropTypes.bool,\n overlayStyle: PropTypes.object\n};\nvar defaultProps = {\n align: { vertical: 'bottom', horizontal: 'end' },\n size: 'medium',\n rounded: 'full',\n themeColor: 'primary',\n positionMode: 'fixed'\n};\nFloatingActionButton.displayName = 'KendoFloatingActionButton';\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-buttons',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1697038950,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, Keys, kendoThemeMaps } from '@progress/kendo-react-common';\nimport { toolbarButtons } from './../util';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * Represents the [KendoReact Toolbar component]({% slug overview_toolbar %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * render() {\n * return (\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * );\n * }\n * }\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar Toolbar = /** @class */ (function (_super) {\n __extends(Toolbar, _super);\n function Toolbar(props) {\n var _this = _super.call(this, props) || this;\n _this._element = null;\n _this.offsetHeight = 0;\n _this.offsetWidth = 0;\n _this.buttons = [];\n _this.focusedSelector = _this.selectors.map(function (s) { return s + ':focus'; }).join(',');\n _this.setTabIndex = function (focusedIndex) {\n var _a = _this.props.tabIndex, tabIndex = _a === void 0 ? Toolbar.defaultProps.tabIndex : _a;\n _this.buttons.forEach(function (button, index) {\n button.tabIndex = (index === focusedIndex) ? tabIndex : -1;\n });\n };\n _this.onKeyDown = function (event) {\n var target = event.target;\n var arrowKey = event.keyCode === Keys.left || event.keyCode === Keys.right;\n if (!arrowKey || event.defaultPrevented || _this.buttons.findIndex(function (b) { return b === target; }) === -1) {\n return;\n }\n var focusedIndex = _this.focusedIndex;\n if (event.keyCode === Keys.left) {\n _this.focusButton(focusedIndex, focusedIndex - 1);\n }\n else {\n _this.focusButton(focusedIndex, focusedIndex + 1);\n }\n };\n _this.onWindowResize = function (event) {\n var element = _this.element;\n if (!element) {\n return;\n }\n var offsetWidth = element.offsetWidth;\n var offsetHeight = element.offsetHeight;\n if (_this.offsetWidth !== offsetWidth || _this.offsetHeight !== offsetHeight) {\n _this.offsetWidth = offsetWidth;\n _this.offsetHeight = offsetHeight;\n var newSizes = { offsetWidth: _this.offsetWidth, offsetHeight: _this.offsetHeight };\n if (_this.props.onResize) {\n _this.props.onResize.call(undefined, __assign(__assign({ target: _this }, newSizes), { nativeEvent: event }));\n }\n }\n };\n validatePackage(packageMetadata);\n return _this;\n }\n Object.defineProperty(Toolbar.prototype, \"selectors\", {\n get: function () {\n return this.props.buttons || toolbarButtons;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Toolbar.prototype, \"focusedIndex\", {\n get: function () {\n var focused = this.element && this.element.querySelector(this.focusedSelector);\n return Math.max(0, this.buttons.findIndex(function (e) { return e === focused; }));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Toolbar.prototype, \"element\", {\n /**\n * Returns the HTML element of the Toolbar component.\n */\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n Toolbar.prototype.componentDidMount = function () {\n window.addEventListener('resize', this.onWindowResize);\n var element = this.element;\n if (element) {\n this.offsetWidth = element.offsetWidth;\n this.offsetHeight = element.offsetHeight;\n if (this.props.keyboardNavigation !== false) {\n this.buttons = Array.from(element.querySelectorAll(this.selectors.join(',')));\n this.setTabIndex(0);\n }\n }\n };\n /**\n * @hidden\n */\n Toolbar.prototype.componentDidUpdate = function () {\n var element = this.element;\n if (!element || this.props.keyboardNavigation === false) {\n return;\n }\n this.buttons = Array.from(element.querySelectorAll(this.selectors.join(',')));\n this.setTabIndex(this.focusedIndex);\n };\n /**\n * @hidden\n */\n Toolbar.prototype.componentWillUnmount = function () {\n window.removeEventListener('resize', this.onWindowResize);\n this.buttons.length = 0;\n };\n /**\n * @hidden\n */\n Toolbar.prototype.render = function () {\n var _a;\n var _this = this;\n return (React.createElement(\"div\", { id: this.props.id, \"aria-label\": this.props.ariaLabel, className: classNames('k-toolbar', (_a = {},\n _a[\"k-toolbar-\".concat(kendoThemeMaps.sizeMap[this.props.size] || this.props.size)] = this.props.size,\n _a), this.props.className), style: this.props.style, role: this.props.role !== undefined ? (this.props.role || undefined) : 'toolbar', dir: this.props.dir, ref: function (element) { return _this._element = element; }, onKeyDown: this.props.keyboardNavigation !== false ? this.onKeyDown : undefined }, this.props.children));\n };\n Toolbar.prototype.focusButton = function (prevIndex, index) {\n var _a = this.props.tabIndex, tabIndex = _a === void 0 ? Toolbar.defaultProps.tabIndex : _a;\n var button = this.buttons[index];\n if (button) {\n button.tabIndex = tabIndex;\n button.focus();\n var prevButton = this.buttons[prevIndex];\n if (prevButton) {\n prevButton.tabIndex = -1;\n }\n }\n };\n /**\n * @hidden\n */\n Toolbar.propTypes = {\n tabIndex: PropTypes.number,\n dir: PropTypes.string,\n keyboardNavigation: PropTypes.bool,\n style: PropTypes.object,\n className: PropTypes.string,\n role: PropTypes.string,\n onResize: PropTypes.func,\n buttons: PropTypes.arrayOf(PropTypes.string),\n size: PropTypes.oneOf([null, 'small', 'medium', 'large'])\n };\n /**\n * @hidden\n */\n Toolbar.defaultProps = {\n tabIndex: 0,\n size: 'medium'\n };\n return Toolbar;\n}(React.Component));\nexport { Toolbar };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * Represents the KendoReact ToolbarItem component.\n * To add a tool to the Toolbar, wrap it inside a ToolbarItem component\n * ([see example]({% slug content_toolbar %})).\n */\nvar ToolbarItem = /** @class */ (function (_super) {\n __extends(ToolbarItem, _super);\n function ToolbarItem() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._element = null;\n return _this;\n }\n Object.defineProperty(ToolbarItem.prototype, \"element\", {\n /**\n * Returns the HTML element of the ToolbarItem component.\n */\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n ToolbarItem.prototype.render = function () {\n var _this = this;\n return (React.createElement(\"div\", { id: this.props.id, className: classNames('k-toolbar-item', this.props.className), style: this.props.style, ref: function (e) { return _this._element = e; } }, this.props.children));\n };\n /**\n * @hidden\n */\n ToolbarItem.propTypes = {\n className: PropTypes.string\n };\n return ToolbarItem;\n}(React.PureComponent));\nexport { ToolbarItem };\n","/**\n * @hidden\n */\nvar styles = {\n button: 'k-button',\n 'flat': 'k-flat',\n 'outline': 'k-outline',\n 'clear': 'k-button-clear',\n 'primary': 'k-primary',\n 'state-selected': 'k-selected',\n 'button-icon': 'k-button-icon',\n 'button-icontext': 'k-button-icontext',\n 'state-disabled': 'k-disabled',\n 'group-start': 'k-group-start',\n 'group-end': 'k-group-end',\n 'button-group': 'k-button-group',\n 'button-group-stretched': 'k-button-group-stretched',\n 'ltr': 'k-ltr',\n 'rtl': 'k-rtl'\n};\n// const notDisabled = ':not(.k-disabled):not([disabled]):not([disabled=\"true\"])';\nvar noInnerButton = ':not(.k-dropdownlist button):not(.k-colorpicker button):not(.k-split-button .k-split-button-arrow)';\n/**\n * @hidden\n */\nexport var toolbarButtons = [\n 'button' + noInnerButton,\n '.k-button-group > button' + noInnerButton,\n '.k-dropdownlist',\n '.k-colorpicker'\n];\n/**\n * @hidden\n */\nexport default {\n styles: styles\n};\n","import * as React from 'react';\nimport { useDraggable } from './hooks';\n/**\n * Represents the KendoReact Draggable component.\n *\n * Accepts properties of type [DraggableProps]({% slug api_common_draggableprops %}),\n * and returns an object of type [DraggableHandle]({% slug api_common_draggablehandle %}) when the `ref` is obtained.\n */\nexport var Draggable = React.forwardRef(function (props, ref) {\n var childRef = React.useRef(null);\n var target = React.useRef(null);\n var getElement = React.useCallback(function () { return childRef.current && childRef.current.element\n ? childRef.current.element\n : childRef.current; }, [childRef]);\n React.useImperativeHandle(target, function () { return ({ element: getElement() || null }); });\n React.useImperativeHandle(ref, function () { return target.current; });\n React.useImperativeHandle(props.childRef, function () { return childRef.current; });\n var handlePress = React.useCallback(function (event) {\n if (!props.onPress) {\n return;\n }\n props.onPress({\n element: getElement(),\n target: target.current,\n event: event\n });\n }, [getElement, props.onPress]);\n var handleRelease = React.useCallback(function (event) {\n if (!props.onRelease) {\n return;\n }\n props.onRelease({\n element: getElement(),\n target: target.current,\n event: event\n });\n }, [getElement, props.onRelease]);\n var handleDragStart = React.useCallback(function (event) {\n if (!props.onDragStart) {\n return;\n }\n props.onDragStart({\n element: getElement(),\n target: target.current,\n event: event\n });\n }, [props, getElement]);\n var handleDrag = React.useCallback(function (event) {\n if (!props.onDrag) {\n return;\n }\n props.onDrag({\n element: getElement(),\n target: target.current,\n event: event\n });\n }, [getElement, props.onDrag]);\n var handleDragEnd = React.useCallback(function (event) {\n if (!props.onDragEnd) {\n return;\n }\n props.onDragEnd({\n element: getElement(),\n target: target.current,\n event: event\n });\n }, [getElement, props.onDragEnd]);\n useDraggable(childRef, {\n onPress: handlePress,\n onRelease: handleRelease,\n onDragStart: handleDragStart,\n onDrag: handleDrag,\n onDragEnd: handleDragEnd\n }, {\n mouseOnly: props.mouseOnly,\n autoScroll: props.autoScroll,\n hint: props.hint,\n scrollContainer: props.scrollContainer\n });\n return props.children\n ? (React.cloneElement(React.Children.only(props.children), { ref: childRef }))\n : null;\n});\nDraggable.displayName = 'KendoReactDraggable';\n","/**\n * @hidden\n */\nvar getDocument = function () { return typeof document !== 'undefined' ? document : {}; };\n/**\n * @hidden\n */\nvar BrowserSupportService = /** @class */ (function () {\n function BrowserSupportService() {\n this.scrollbar = 0;\n }\n Object.defineProperty(BrowserSupportService.prototype, \"scrollbarWidth\", {\n get: function () {\n var document = getDocument();\n if (!this.scrollbar && document && document.createElement) {\n var div = document.createElement('div');\n div.style.cssText = 'overflow:scroll;overflow-x:hidden;zoom:1;clear:both;display:block';\n div.innerHTML = ' ';\n document.body.appendChild(div);\n this.scrollbar = div.offsetWidth - div.scrollWidth;\n document.body.removeChild(div);\n }\n return this.scrollbar;\n },\n enumerable: false,\n configurable: true\n });\n return BrowserSupportService;\n}());\nexport { BrowserSupportService };\n","/**\n * @hidden\n */\nexport var canUseDOM = Boolean(\n// from fbjs\ntypeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\n","/**\n * @hidden\n */\nexport var classNames = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = {};\n var addLeafKeys = function (arg) { return typeof arg === 'object' ? Object\n .keys(arg)\n .forEach(function (key) {\n result[key] = arg[key];\n }) : result[arg] = true; };\n ;\n var addKeys = function (list) { return list\n .filter(function (arg) { return arg !== true && !!arg; })\n .map(function (arg) {\n return Array.isArray(arg) ?\n addKeys(arg) :\n addLeafKeys(arg);\n }); };\n ;\n addKeys(args);\n return Object\n .keys(result)\n .map(function (key) { return (result[key] && key) || null; })\n .filter(function (el) { return el !== null; })\n .join(' ');\n};\n","import * as React from 'react';\n/** @hidden */\nexport var ZIndexContext = React.createContext(0);\n/** @hidden */\nexport var useZIndexContext = function () { return React.useContext(ZIndexContext); };\nZIndexContext.displayName = 'KendoReactZIndexContext';\n","import * as React from 'react';\nimport { noop } from '../../noop';\n/**\n * @hidden\n */\nexport var DragContext = React.createContext([\n undefined,\n noop\n]);\n/**\n * @hidden\n */\nexport var DropContext = React.createContext([\n undefined,\n noop\n]);\n/**\n * @hidden\n */\nexport var DragsContext = React.createContext([[], noop, noop]);\n/**\n * @hidden\n */\nexport var DropsContext = React.createContext([[], noop, noop]);\n","/**\n * @hidden\n * Dispatches a new event based on an event that was already internally dispatched to KendoReact users.\n *\n * @param eventHandler - The public event handler that is assigned by the user.\n * When undefined, the method is not an option.\n * @param dispatchedEvent - The event that was already dispatched internally.\n * @param target - The target component of the new event.\n * @param eventData - The additional data that will be passed through the new event.\n * When the new event has no additional data\n * other than the `BaseEvent` arguments, pass `undefined`.\n */\nexport function dispatchEvent(eventHandler, dispatchedEvent, target, eventData) {\n if (eventHandler) {\n var eventBaseData = {\n syntheticEvent: dispatchedEvent,\n nativeEvent: dispatchedEvent.nativeEvent,\n target: target\n };\n eventHandler.call(undefined, Object.assign(eventBaseData, eventData));\n }\n}\n","/**\n * @hidden\n */\nexport var FIELD_REGEX = /\\[(?:(\\d+)|['\"](.*?)['\"])\\]|((?:(?!\\[.*?\\]|\\.).)+)/g;\n","import { FIELD_REGEX } from './constants';\n/**\n * @hidden\n */\nexport function fieldList(field) {\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n return fields;\n}\n","/**\n * @hidden\n */\nexport var getInnerActiveElement = function (element) {\n var shadowRoot = element.shadowRoot;\n var contentDocument = element.contentDocument;\n if (shadowRoot && shadowRoot.activeElement) {\n return getInnerActiveElement(shadowRoot.activeElement);\n }\n if (contentDocument && contentDocument.activeElement) {\n return getInnerActiveElement(contentDocument.activeElement);\n }\n return element;\n};\n/**\n * @hidden\n */\nexport var getActiveElement = function (document) {\n if (!document || !document.activeElement) {\n return undefined;\n }\n return getInnerActiveElement(document.activeElement);\n};\n","/* eslint-disable radix */\n/**\n * @hidden\n */\nvar DISABLED_TABINDEX = -1;\n/**\n * @hidden\n */\nvar DEFAULT_TABINDEX = 0;\n/**\n * @hidden\n */\nexport var getTabIndex = function (tabIndex, disabled, useDefaultTabIndexWhenDisabled) {\n var parsedTabIndex = typeof tabIndex === 'string' ? parseInt(tabIndex, undefined) : tabIndex;\n if (parsedTabIndex === NaN) {\n return undefined;\n }\n return parsedTabIndex !== undefined\n ? parsedTabIndex\n : disabled ?\n (useDefaultTabIndexWhenDisabled ? undefined : DISABLED_TABINDEX)\n : DEFAULT_TABINDEX;\n};\n","import { fieldList } from './fieldList';\nvar getterCache = {};\ngetterCache.undefined = function () { return undefined; };\n/**\n * Can be used for getting value from object using field path. For example `users[index].name`.\n *\n * @example\n * ```jsx-no-run\n * const values = {users:[{lastName: 'Doe'}]};\n * const firstUserLastName = getter('user[0].lastName');\n *\n * console.log(firstUserLastName(values))\n *\n * // result: 'Doe'\n * ```\n */\nexport function getter(field) {\n if (getterCache[field]) {\n return getterCache[field];\n }\n var fields = fieldList(field);\n getterCache[field] = function (obj) {\n var result = obj;\n for (var idx = 0; idx < fields.length && result; idx++) {\n result = result[fields[idx]];\n }\n return result;\n };\n return getterCache[field];\n}\n","/* eslint-disable no-bitwise */\n/**\n * @hidden\n */\nexport var guid = function () {\n var id = '';\n var i;\n var random;\n for (i = 0; i < 32; i++) {\n random = Math.random() * 16 | 0;\n if (i === 8 || i === 12 || i === 16 || i === 20) {\n id += '-';\n }\n id += (i === 12 ? 4 : (i === 16 ? (random & 3 | 8) : random)).toString(16);\n }\n return id;\n};\n","import { canUseDOM } from './canUseDOM';\n/** @hidden */\nexport var hasRelativeStackingContext = function (elementSource) {\n if (!canUseDOM) {\n return false;\n }\n // Component need to pass element to make sure document owner is correct.\n // This however might be performance hit if checked for example on each drag event.\n var currentDocument = elementSource ? elementSource.ownerDocument : document;\n if (!currentDocument || !currentDocument.body) {\n return false;\n }\n var top = 10;\n var parent = currentDocument.createElement('div');\n parent.style.transform = 'matrix(10, 0, 0, 10, 0, 0)';\n var child = currentDocument.createElement('div');\n child.appendChild(currentDocument.createTextNode('child'));\n child.style.position = 'fixed';\n child.style.top = top + 'px';\n parent.appendChild(child);\n currentDocument.body.appendChild(parent);\n var isDifferent = child.getBoundingClientRect().top !== top;\n currentDocument.body.removeChild(parent);\n return isDifferent;\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { useAsyncFocusBlur } from '../hooks/useAsyncFocusBlur';\n/**\n * An utility High-order Component for asynchronous focus/blur handling.\n *\n * By default, the `onFocus` and `onBlur` callbacks are called every time a child components receives/loses focus.\n * Use this utility HOC for scenarios where you need to know if the parent has received focus for the first time, or completely lost focus.\n *\n * @returns\n */\nexport var AsyncFocusBlur = function (_a) {\n var children = _a.children, onFocus = _a.onFocus, onBlur = _a.onBlur, onSyncFocus = _a.onSyncFocus, onSyncBlur = _a.onSyncBlur;\n var args = useAsyncFocusBlur({ onFocus: onFocus, onBlur: onBlur, onSyncFocus: onSyncFocus, onSyncBlur: onSyncBlur });\n return React.createElement(React.Fragment, null, children.call(undefined, __assign({}, args)));\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { usePropsContext } from '../hooks/usePropsContext';\n/** @hidden */\nexport var createPropsContext = function () { return React.createContext(function (props) { return props; }); };\n/** @hidden */\nexport var withPropsContext = function (context, Component\n// eslint-disable-next-line react/display-name\n) { return React.forwardRef(function (props, ref) {\n var contextProps = usePropsContext(context, props);\n return (React.createElement(Component, __assign({}, contextProps, { ref: ref })));\n}); };\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport * as React from 'react';\n/**\n * An utility function for asynchronous focus/blur handling.\n *\n * By default, the `onFocus` and `onBlur` callbacks are called every time a child components receives/loses focus.\n * Use this utility hook for scenarios where you need to know if the parent has received focus for the first time, or completely lost focus.\n *\n * @returns\n */\nexport function useAsyncFocusBlur(_a) {\n var onFocus = _a.onFocus, onBlur = _a.onBlur, onSyncFocus = _a.onSyncFocus, onSyncBlur = _a.onSyncBlur;\n var focused = React.useRef(false);\n var tick = React.useRef(0);\n var nextTick = React.useCallback(function (f) {\n clearTimeout(tick.current);\n tick.current = window.setTimeout(function () { return f(); });\n }, [tick]);\n var handleFocus = React.useCallback(function () {\n var event = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n event[_i] = arguments[_i];\n }\n clearTimeout(tick.current);\n if (onSyncFocus) {\n onSyncFocus.call(undefined, event[0]);\n }\n if (focused.current) {\n return;\n }\n ;\n focused.current = true;\n if (onFocus) {\n onFocus.call.apply(onFocus, __spreadArray([undefined], event, false));\n }\n }, [focused, onFocus, onSyncFocus]);\n var handleBlur = React.useCallback(function () {\n var event = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n event[_i] = arguments[_i];\n }\n if (onSyncBlur) {\n onSyncBlur.call(undefined, event[0]);\n }\n nextTick(function () {\n if (!focused.current) {\n return;\n }\n if (onBlur) {\n focused.current = false;\n onBlur.call.apply(onBlur, __spreadArray([undefined], event, false));\n }\n });\n }, [focused, nextTick, onBlur, onSyncBlur]);\n React.useEffect(function () {\n return function () {\n clearTimeout(tick.current);\n };\n }, []);\n return {\n onFocus: handleFocus,\n onBlur: handleBlur\n };\n}\n","/**\n * @hidden\n */\nexport var useCustomComponent = function (comp) {\n /* if(React.isValidElement

(comp)) {\n return [comp.type, comp.props];\n } */\n return [comp, {}];\n};\n","import * as React from 'react';\n/**\n * @hidden\n */\nexport function useDir(elementRef, initialDir, args) {\n // Dir prop is read only on initial rendering due to specifics of getComputedStyles - see below\n var _a = React.useState(initialDir), dir = _a[0], setDir = _a[1];\n React.useEffect(function () {\n if (!dir && window && elementRef.current) {\n // Note: getComputedStyle forces reflow\n var rtlCandidate = window.getComputedStyle(elementRef.current).direction;\n if (rtlCandidate) {\n // rerender is needed as DOM is read after first render\n setDir(rtlCandidate);\n }\n }\n }, args);\n return dir;\n}\n","import * as React from 'react';\n/**\n * Returns a function, which gets the `ownerDocument` of the element.\n */\nexport var useDocument = function (ref) {\n var getElement = React.useCallback(function () { return ref.current && ref.current.element\n ? ref.current.element\n : ref.current; }, [ref]);\n var getDocument = React.useCallback(function () {\n var element = getElement();\n return element ? element.ownerDocument || document : document;\n }, [getElement]);\n return getDocument;\n};\n","import { intersect } from \"./algorithms\";\nimport { getWindow, autoScrollVelocity, scrollableViewPort, getScrollableParent, isPointerInsideContainer, getDocument } from \"./utils\";\n/** @hidden */\nexport var DRAG_AND_DROP_DISPATCH_ACTION;\n(function (DRAG_AND_DROP_DISPATCH_ACTION) {\n DRAG_AND_DROP_DISPATCH_ACTION[\"POINTER_DOWN\"] = \"pointerdown\";\n DRAG_AND_DROP_DISPATCH_ACTION[\"POINTER_MOVE\"] = \"pointermove\";\n DRAG_AND_DROP_DISPATCH_ACTION[\"POINTER_UP\"] = \"pointerup\";\n DRAG_AND_DROP_DISPATCH_ACTION[\"POINTER_CANCEL\"] = \"pointercancel\";\n DRAG_AND_DROP_DISPATCH_ACTION[\"MOUSE_DOWN\"] = \"mousedown\";\n DRAG_AND_DROP_DISPATCH_ACTION[\"MOUSE_MOVE\"] = \"mousemove\";\n DRAG_AND_DROP_DISPATCH_ACTION[\"MOUSE_UP\"] = \"mouseup\";\n DRAG_AND_DROP_DISPATCH_ACTION[\"CONTEXT_MENU\"] = \"contextmenu\";\n DRAG_AND_DROP_DISPATCH_ACTION[\"TOUCH_START\"] = \"touchstart\";\n DRAG_AND_DROP_DISPATCH_ACTION[\"TOUCH_MOVE\"] = \"touchmove\";\n DRAG_AND_DROP_DISPATCH_ACTION[\"TOUCH_END\"] = \"touchend\";\n DRAG_AND_DROP_DISPATCH_ACTION[\"TOUCH_CANCEL\"] = \"touchcancel\";\n DRAG_AND_DROP_DISPATCH_ACTION[\"SCROLL\"] = \"scroll\";\n DRAG_AND_DROP_DISPATCH_ACTION[\"START\"] = \"KENDO_DRAG_AND_DROP_START\";\n DRAG_AND_DROP_DISPATCH_ACTION[\"MOVE\"] = \"KENDO_DRAG_AND_DROP_MOVE\";\n DRAG_AND_DROP_DISPATCH_ACTION[\"END\"] = \"KENDO_DRAG_AND_DROP_END\";\n DRAG_AND_DROP_DISPATCH_ACTION[\"CANCEL\"] = \"KENDO_DRAG_AND_DROP_CANCEL\";\n})(DRAG_AND_DROP_DISPATCH_ACTION || (DRAG_AND_DROP_DISPATCH_ACTION = {}));\nvar isTouchEvent = function (event) { return /^touch/.test(event.type); };\nvar isScrollEvent = function (event) { return /^(scroll)/.test(event.type); };\n/** @hidden */\nexport var normalizeEvent = function (event, state) { return (isTouchEvent(event)\n ? ({\n pageX: event.changedTouches[0].pageX,\n pageY: event.changedTouches[0].pageY,\n clientX: event.changedTouches[0].clientX,\n clientY: event.changedTouches[0].clientY,\n scrollX: state.scrollOffset.x,\n scrollY: state.scrollOffset.y,\n offsetX: state.offset.x,\n offsetY: state.offset.y,\n type: event.type,\n originalEvent: event,\n isTouch: true,\n altKey: false,\n ctrlKey: false,\n shiftKey: false,\n metaKey: false\n })\n : isScrollEvent(event)\n ? ({\n pageX: state.pageOffset.x,\n pageY: state.pageOffset.y,\n clientX: state.clientOffset.x,\n clientY: state.clientOffset.y,\n scrollX: state.scrollOffset.x,\n scrollY: state.scrollOffset.y,\n offsetX: state.offset.x,\n offsetY: state.offset.y,\n type: event.type,\n originalEvent: event,\n altKey: false,\n ctrlKey: false,\n shiftKey: false,\n metaKey: false\n })\n : ({\n pageX: event.pageX,\n pageY: event.pageY,\n clientX: event.clientX,\n clientY: event.clientY,\n offsetX: event.offsetX,\n offsetY: event.offsetY,\n scrollX: state.scrollOffset.x,\n scrollY: state.scrollOffset.y,\n type: event.type,\n ctrlKey: event.ctrlKey,\n shiftKey: event.shiftKey,\n altKey: event.altKey,\n metaKey: event.metaKey,\n originalEvent: event\n })); };\nvar noop = function () { };\n/** @hidden */\nexport var dispatchDragAndDrop = function (state, action, callbacks) {\n if (callbacks === void 0) { callbacks = {}; }\n var _a = callbacks.onIsPressedChange, onIsPressedChange = _a === void 0 ? noop : _a, _b = callbacks.onIsScrollingChange, onIsScrollingChange = _b === void 0 ? noop : _b, _c = callbacks.onVelocityChange, onVelocityChange = _c === void 0 ? noop : _c, _d = callbacks.onOffsetChange, onOffsetChange = _d === void 0 ? noop : _d, _e = callbacks.onPageOffsetChange, onPageOffsetChange = _e === void 0 ? noop : _e, _f = callbacks.onClientOffsetChange, onClientOffsetChange = _f === void 0 ? noop : _f, _g = callbacks.onScrollOffsetChange, onScrollOffsetChange = _g === void 0 ? noop : _g, _h = callbacks.onInitialScrollOffsetChange, onInitialScrollOffsetChange = _h === void 0 ? noop : _h;\n var drag = action.payload;\n var element = drag.element;\n var hint = drag.hint;\n var autoScrollDirection = state.autoScrollDirection;\n var overrideScrollableParent = state.scrollableParent;\n var event = normalizeEvent(action.event, state);\n switch (event.type) {\n case DRAG_AND_DROP_DISPATCH_ACTION.POINTER_DOWN:\n if (event.type === DRAG_AND_DROP_DISPATCH_ACTION.POINTER_DOWN\n && (!event.originalEvent.isPrimary\n || event.originalEvent.button !== 0)) {\n break;\n }\n // In rare cases where the `which` attribute is available in the mouse event\n // we check if the `left button` is explicitly clicked:\n // https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/which#return_value\n case DRAG_AND_DROP_DISPATCH_ACTION.MOUSE_DOWN:\n if (event.type === DRAG_AND_DROP_DISPATCH_ACTION.MOUSE_DOWN\n && (event.originalEvent.which\n && event.originalEvent.which > 1)\n || state.ignoreMouse) {\n break;\n }\n case DRAG_AND_DROP_DISPATCH_ACTION.TOUCH_START:\n if (event.type === DRAG_AND_DROP_DISPATCH_ACTION.TOUCH_START\n && event.originalEvent.touches.length !== 1) {\n break;\n }\n case DRAG_AND_DROP_DISPATCH_ACTION.START: {\n var scrollableParent_1 = overrideScrollableParent || getScrollableParent(action.payload.element);\n onInitialScrollOffsetChange(scrollableParent_1 instanceof Window\n ? { x: scrollableParent_1.scrollX, y: scrollableParent_1.scrollY }\n : { x: scrollableParent_1.scrollLeft, y: scrollableParent_1.scrollTop });\n onClientOffsetChange({\n x: event.clientX,\n y: event.clientY\n });\n onPageOffsetChange({\n x: event.pageX,\n y: event.pageY\n });\n onOffsetChange({\n x: event.offsetX,\n y: event.offsetY\n });\n onIsPressedChange(true);\n if (drag.onPress) {\n drag.onPress(event);\n }\n break;\n }\n case DRAG_AND_DROP_DISPATCH_ACTION.SCROLL:\n if (event.type === DRAG_AND_DROP_DISPATCH_ACTION.SCROLL && !state.pressed) {\n break;\n }\n var scrollableParent = overrideScrollableParent || getScrollableParent(element);\n var scrollOffset = scrollableParent instanceof Window\n ? { x: scrollableParent.scrollX, y: scrollableParent.scrollY }\n : { x: scrollableParent.scrollLeft, y: scrollableParent.scrollTop };\n event.scrollX = scrollOffset.x - state.initialScrollOffset.x;\n event.scrollY = scrollOffset.y - state.initialScrollOffset.y;\n onScrollOffsetChange({\n x: event.scrollX,\n y: event.scrollY\n });\n case DRAG_AND_DROP_DISPATCH_ACTION.POINTER_MOVE:\n if (event.type === DRAG_AND_DROP_DISPATCH_ACTION.POINTER_MOVE && !event.originalEvent.isPrimary) {\n break;\n }\n case DRAG_AND_DROP_DISPATCH_ACTION.MOUSE_MOVE:\n case DRAG_AND_DROP_DISPATCH_ACTION.TOUCH_MOVE:\n if (event.type === DRAG_AND_DROP_DISPATCH_ACTION.TOUCH_MOVE && event.originalEvent.touches.length !== 1) {\n break;\n }\n case DRAG_AND_DROP_DISPATCH_ACTION.MOVE: {\n if (state.pressed) {\n if (state.autoScroll && event.originalEvent.type !== 'scroll') {\n if (element) {\n var document_1 = getDocument(element);\n var scrollableParent_2 = overrideScrollableParent || getScrollableParent(document_1.elementFromPoint(event.clientX, event.clientY));\n var newVelocity = autoScrollVelocity(event.clientX, event.clientY, scrollableViewPort(scrollableParent_2, getWindow(element)));\n onVelocityChange({\n x: (autoScrollDirection && autoScrollDirection.horizontal === false) ? 0 : newVelocity.x,\n y: (autoScrollDirection && autoScrollDirection.vertical === false) ? 0 : newVelocity.y\n });\n onIsScrollingChange(newVelocity.y !== 0 || newVelocity.x !== 0);\n }\n }\n if (!state.drag && drag.onDragStart) {\n drag.onDragStart(event);\n }\n if (drag.onDrag) {\n drag.onDrag(event);\n }\n var dropElement_1 = intersect(hint || element, state.drops.map(function (drop) { return drop && drop.element; }).filter(function (d) { return d !== (hint || element); }));\n var drop = state.drops.find(function (drop) { return drop.element === dropElement_1; });\n if (drop\n && dropElement_1\n && isPointerInsideContainer(event.clientX, event.clientY, overrideScrollableParent || getScrollableParent(dropElement_1))\n && dropElement_1 !== element) {\n if ((state.drop && state.drop.element) !== dropElement_1) {\n if (state.drop && state.drop.onDragLeave) {\n state.drop.onDragLeave(event);\n }\n if (drop.onDragEnter) {\n drop.onDragEnter(event);\n }\n }\n else {\n if (drop.onDragOver) {\n drop.onDragOver(event);\n }\n }\n }\n else if (state.drop && state.drop.onDragLeave) {\n state.drop.onDragLeave(event);\n }\n }\n onClientOffsetChange({\n x: event.clientX,\n y: event.clientY\n });\n onPageOffsetChange({\n x: event.pageX,\n y: event.pageY\n });\n break;\n }\n case DRAG_AND_DROP_DISPATCH_ACTION.POINTER_UP:\n if (event.type === DRAG_AND_DROP_DISPATCH_ACTION.POINTER_UP && !event.originalEvent.isPrimary) {\n break;\n }\n case DRAG_AND_DROP_DISPATCH_ACTION.MOUSE_UP:\n // the last finger has been lifted, and the user is not doing gesture.\n // there might be a better way to handle this.\n case DRAG_AND_DROP_DISPATCH_ACTION.TOUCH_END:\n if (event.type === DRAG_AND_DROP_DISPATCH_ACTION.TOUCH_END && event.originalEvent.touches.length !== 1) {\n break;\n }\n case DRAG_AND_DROP_DISPATCH_ACTION.END: {\n onIsPressedChange(false);\n onIsScrollingChange(false);\n onScrollOffsetChange({ x: 0, y: 0 });\n if (drag.onRelease) {\n drag.onRelease(event);\n }\n if (state.drop && state.drop.onDrop) {\n state.drop.onDrop(event);\n }\n if (state.drag && drag.onDragEnd) {\n drag.onDragEnd(event);\n }\n break;\n }\n case DRAG_AND_DROP_DISPATCH_ACTION.POINTER_CANCEL:\n case DRAG_AND_DROP_DISPATCH_ACTION.CONTEXT_MENU:\n case DRAG_AND_DROP_DISPATCH_ACTION.TOUCH_CANCEL:\n case DRAG_AND_DROP_DISPATCH_ACTION.CANCEL: {\n onIsPressedChange(false);\n onIsScrollingChange(false);\n onScrollOffsetChange({ x: 0, y: 0 });\n if (drag.onDragEnd) {\n drag.onDragEnd(event);\n }\n if (state.drop && state.drop.onDragLeave) {\n state.drop.onDragLeave(event);\n }\n break;\n }\n default:\n break;\n }\n};\n","var getRatio = function (element, target) {\n var elementRect = element.getBoundingClientRect();\n var targetRect = target.getBoundingClientRect();\n var top = Math.max(targetRect.top, elementRect.top);\n var left = Math.max(targetRect.left, elementRect.left);\n var right = Math.min(targetRect.left + targetRect.width, elementRect.left + elementRect.width);\n var bottom = Math.min(targetRect.top + targetRect.height, elementRect.top + elementRect.height);\n var width = right - left;\n var height = bottom - top;\n if (left < right && top < bottom) {\n var targetArea = targetRect.width * targetRect.height;\n var entryArea = elementRect.width * elementRect.height;\n var intersectionArea = width * height;\n var intersectionRatio = intersectionArea / (targetArea + entryArea - intersectionArea);\n return Number(intersectionRatio.toFixed(4));\n }\n return 0;\n};\n/** @hidden */\nexport var intersect = function (element, candidates) {\n var max = 0;\n var result = null;\n candidates.forEach(function (candidate) {\n if (candidate && element) {\n var ration = getRatio(element, candidate);\n if (ration > max) {\n max = ration;\n result = candidate;\n }\n }\n });\n return result;\n};\n","var detectBrowser = function () {\n var ua = window && window.navigator.userAgent;\n if (!ua) {\n return false;\n }\n var browser = false;\n var match = [];\n var browserRxs = {\n edge: /(edge)[ \\/]([\\w.]+)/i,\n webkit: /(chrome|crios)[ \\/]([\\w.]+)/i,\n safari: /(webkit)[ \\/]([\\w.]+)/i,\n opera: /(opera)(?:.*version|)[ \\/]([\\w.]+)/i,\n msie: /(msie\\s|trident.*? rv:)([\\w.]+)/i,\n mozilla: /(mozilla)(?:.*? rv:([\\w.]+)|)/i\n };\n for (var agent in browserRxs) {\n if (browserRxs.hasOwnProperty(agent)) {\n match = ua.match(browserRxs[agent]);\n if (match) {\n browser = {};\n browser[agent] = true;\n browser[match[1].toLowerCase().split(\" \")[0].split(\"/\")[0]] = true;\n browser.version = parseInt(document.DOCUMENT_NODE || match[2], 10);\n break;\n }\n }\n }\n return browser;\n};\n/** @hidden */\nexport var getDocument = function (element) {\n return element ? element.ownerDocument || window.document : window.document;\n};\n/** @hidden */\nexport var getWindow = function (element) {\n var document = getDocument(element);\n return document\n ? document.defaultView || window\n : window;\n};\n/** @hidden */\nexport var scrollableRoot = function (element) {\n var support = { browser: detectBrowser() };\n var document = getDocument(element);\n return (support.browser.edge || support.browser.safari) ? document.body : document.documentElement;\n};\n/** @hidden */\nexport var isScrollable = function (el) {\n if (el && el.className && typeof (el.className) === 'string' && el.className.indexOf('k-auto-scrollable') > -1) {\n return true;\n }\n var overflow = window.getComputedStyle(el, 'overflow').overflow;\n return overflow.indexOf('auto') > -1 || overflow.indexOf('scroll') > -1;\n};\n/** @hidden */\nexport var getScrollableParent = function (el) {\n var root = scrollableRoot(el);\n if (!el || el === document.body || el === document.documentElement) {\n return root;\n }\n var parent = el;\n while (parent\n && parent !== document.body\n && parent.nodeType !== Node.DOCUMENT_FRAGMENT_NODE\n && parent.nodeType !== Node.DOCUMENT_NODE\n && !isScrollable(parent)) {\n parent = parent.parentNode;\n }\n if (parent && (parent === document.body || parent.nodeType === Node.DOCUMENT_FRAGMENT_NODE)) {\n return root;\n }\n return parent;\n};\n/** @hidden */\nexport var autoScrollVelocity = function (mouseX, mouseY, rect) {\n var velocity = { x: 0, y: 0 };\n var AUTO_SCROLL_AREA = 50;\n if (mouseX - rect.left < AUTO_SCROLL_AREA) {\n velocity.x = -(AUTO_SCROLL_AREA - (mouseX - rect.left));\n }\n else if (rect.right - mouseX < AUTO_SCROLL_AREA) {\n velocity.x = AUTO_SCROLL_AREA - (rect.right - mouseX);\n }\n if (mouseY - rect.top < AUTO_SCROLL_AREA) {\n velocity.y = -(AUTO_SCROLL_AREA - (mouseY - rect.top));\n }\n else if (rect.bottom - mouseY < AUTO_SCROLL_AREA) {\n velocity.y = AUTO_SCROLL_AREA - (rect.bottom - mouseY);\n }\n return velocity;\n};\n/** @hidden */\nexport var scrollableViewPort = function (el, window) {\n var root = scrollableRoot(el);\n if (el === root) {\n return {\n top: root.scrollTop,\n left: root.scrollLeft,\n bottom: root.scrollTop + window.innerHeight,\n right: root.scrollLeft + window.innerWidth\n };\n }\n else {\n var rect = el.getBoundingClientRect();\n return {\n bottom: rect.top + rect.height,\n right: rect.left + rect.width,\n left: rect.left,\n top: rect.top\n };\n }\n};\n/** @hidden */\nexport var isPointerInsideContainer = function (x, y, container) {\n var rect = container.getBoundingClientRect();\n return (rect.top <= y &&\n rect.left <= x &&\n y <= rect.bottom &&\n x <= rect.right);\n};\n","import { scrollableRoot } from './utils';\n/** @hidden */\nexport var autoScroll = function (scrollableParent, vel) {\n if (!scrollableParent) {\n return;\n }\n var yIsScrollable;\n var xIsScrollable;\n var isRootNode = scrollableParent === scrollableRoot(scrollableParent);\n if (isRootNode) {\n yIsScrollable = document.body.scrollHeight > window.innerHeight;\n xIsScrollable = document.body.scrollWidth > window.innerWidth;\n }\n else {\n yIsScrollable = scrollableParent.offsetHeight <= scrollableParent.scrollHeight;\n xIsScrollable = scrollableParent.offsetWidth <= scrollableParent.scrollWidth;\n }\n var yDelta = scrollableParent.scrollTop + vel.y;\n var yInBounds = yIsScrollable && yDelta > 0 && yDelta < scrollableParent.scrollHeight;\n var xDelta = scrollableParent.scrollLeft + vel.x;\n var xInBounds = xIsScrollable && xDelta > 0 && xDelta < scrollableParent.scrollWidth;\n if (yInBounds) {\n scrollableParent.scrollTop += vel.y;\n }\n else if (yIsScrollable && yDelta < 0) {\n scrollableParent.scrollTop = 0;\n }\n if (xInBounds) {\n scrollableParent.scrollLeft += vel.x;\n }\n else if (xIsScrollable && xDelta < 0) {\n scrollableParent.scrollLeft = 0;\n }\n};\n","import * as React from 'react';\nimport { dispatchDragAndDrop, autoScroll as autoScrollElement, getScrollableParent } from '@progress/kendo-draggable-common';\nimport { noop } from '../noop';\nimport { useInheritedState } from '../hooks/useInheritedState';\nimport { DragContext, DropContext, DragsContext, DropsContext } from '../drag-n-drop/context';\nvar IGNORE_MOUSE_TIMEOUT = 2000;\n/**\n * Represents the KendoReact `useDraggable` hook.\n * Use it to attach `drag` events to a native HTML DOM elements, or custom React Components.\n *\n * For more information, refer to the [KendoReact Draggable]({% slug draggable_drag-and-drop %}) article.\n *\n * @param ref - The `ref` of the HTML Element or React Component which will enable the `draggable` functionality.\n * @param callbacks - A collection of callbacks, called by the `useDraggable` hook when a specific action occurs.\n * @param options - Additional configuration of the `useDraggable` hook.\n */\nexport function useDraggable(ref, callbacks, options) {\n if (options === void 0) { options = {}; }\n var _a = callbacks.onPress, onPress = _a === void 0 ? noop : _a, _b = callbacks.onRelease, onRelease = _b === void 0 ? noop : _b, _c = callbacks.onDragStart, onDragStart = _c === void 0 ? noop : _c, _d = callbacks.onDrag, onDrag = _d === void 0 ? noop : _d, _e = callbacks.onDragEnd, onDragEnd = _e === void 0 ? noop : _e;\n var _f = options.hint, hint = _f === void 0 ? null : _f, _g = options.mouseOnly, mouseOnly = _g === void 0 ? false : _g, _h = options.autoScroll, autoScroll = _h === void 0 ? true : _h, _j = options.scrollContainer, scrollContainer = _j === void 0 ? null : _j;\n var _k = React.useState(false), pressed = _k[0], setPressed = _k[1];\n var _l = React.useState(false), scrolling = _l[0], setScrolling = _l[1];\n var drop = useInheritedState(DropContext)[0];\n var _m = useInheritedState(DragContext), drag = _m[0], setDrag = _m[1];\n var drops = React.useContext(DropsContext)[0];\n var _o = React.useContext(DragsContext), drags = _o[0], registerDrag = _o[1], deregisterDrag = _o[2];\n var velocity = React.useRef({ x: 0, y: 0 });\n var scrollInterval = React.useRef();\n var ignoreMouse = React.useRef(false);\n var restoreMouseTimeout = React.useRef();\n var scrollable = React.useRef(null);\n var unmount = React.useRef(false);\n var offset = React.useRef({ x: 0, y: 0 });\n var pageOffset = React.useRef({ x: 0, y: 0 });\n var clientOffset = React.useRef({ x: 0, y: 0 });\n var initialClientOffset = React.useRef({ x: 0, y: 0 });\n var scrollOffset = React.useRef({ x: 0, y: 0 });\n var initialScrollOffset = React.useRef({ x: 0, y: 0 });\n var supportPointerEvent = Boolean((typeof window !== 'undefined') && window.PointerEvent);\n var pointers = !mouseOnly && supportPointerEvent;\n var getElement = React.useCallback(function () { return ref.current && ref.current.element\n ? ref.current.element\n : ref.current; }, [ref]);\n var getHintElement = React.useCallback(function () { return hint && hint.current && hint.current.element\n ? hint.current.element\n : hint\n ? hint.current\n : null; }, [hint]);\n var getScrollContainer = React.useCallback(function () { return scrollContainer && scrollContainer.current && scrollContainer.current.element\n ? scrollContainer.current.element\n : scrollContainer\n ? scrollContainer.current\n : null; }, [scrollContainer]);\n var getAutoScrollContainer = React.useCallback(function () { return typeof autoScroll === 'object' && autoScroll.boundaryElementRef\n && autoScroll.boundaryElementRef.current && autoScroll.boundaryElementRef.current.element\n ? autoScroll.boundaryElementRef.current.element\n : typeof autoScroll === 'object' && autoScroll.boundaryElementRef && autoScroll.boundaryElementRef.current\n ? autoScroll.boundaryElementRef.current\n : null; }, [autoScroll]);\n var target = React.useRef(null);\n React.useImperativeHandle(target, function () { return ({\n element: getElement(),\n hint: getHintElement(),\n onPress: handlePress,\n onDragStart: handleDragStart,\n onDrag: handleDrag,\n onDragEnd: handleDragEnd,\n onRelease: handleRelease,\n data: ref.current\n }); });\n var getDocument = React.useCallback(function () {\n var element = getElement();\n return element ? element.ownerDocument || document : document;\n }, [getElement]);\n var getWindow = React.useCallback(function () {\n var document = getDocument();\n return document\n ? document.defaultView || window\n : window;\n }, [getDocument]);\n var getState = React.useCallback(function () { return ({\n drag: drag ? drag.current : null,\n drop: drop ? drop.current : null,\n drags: drags.map(function (d) { return d.current; }),\n drops: drops.map(function (d) { return d.current; }),\n pressed: pressed,\n ignoreMouse: ignoreMouse.current,\n scrollOffset: scrollOffset.current,\n offset: offset.current,\n pageOffset: pageOffset.current,\n initialScrollOffset: initialScrollOffset.current,\n clientOffset: clientOffset.current,\n initialClientOffset: initialClientOffset.current,\n velocity: velocity.current,\n autoScroll: Boolean(typeof autoScroll === 'object' ? autoScroll.enabled !== false : autoScroll),\n scrollableParent: getAutoScrollContainer(),\n autoScrollDirection: typeof autoScroll === 'object' ? autoScroll.direction : { horizontal: true, vertical: true },\n isScrolling: scrolling\n }); }, [drag, drop, drags, drops, pressed, autoScroll, getAutoScrollContainer, scrolling]);\n var handlePressedChange = React.useCallback(function (value) {\n setPressed(value);\n }, []);\n var handleScrollingChange = React.useCallback(function (value) {\n setScrolling(value);\n }, []);\n var handleVelocityChange = React.useCallback(function (value) {\n velocity.current = value;\n }, []);\n var handleOffsetChange = React.useCallback(function (value) {\n offset.current = value;\n }, []);\n var handleClientOffsetChange = React.useCallback(function (value) {\n clientOffset.current = value;\n }, []);\n var handlePageOffsetChange = React.useCallback(function (value) {\n pageOffset.current = value;\n }, []);\n var handleInitialClientOffsetChange = React.useCallback(function (value) {\n initialClientOffset.current = value;\n }, []);\n var handleScrollOffsetChange = React.useCallback(function (value) {\n scrollOffset.current = value;\n }, []);\n var handleInitialScrollOffsetChange = React.useCallback(function (value) {\n initialScrollOffset.current = value;\n }, []);\n // Drag Events\n var handlePress = React.useCallback(function (event) {\n onPress(event);\n }, [onPress]);\n var handleRelease = React.useCallback(function (event) {\n onRelease(event);\n }, [onRelease]);\n var handleDragStart = React.useCallback(function (event) {\n setDrag(target, { target: ref.current, event: event });\n onDragStart(event);\n }, [setDrag, ref, onDragStart]);\n var handleDrag = React.useCallback(function (event) {\n onDrag(event);\n }, [onDrag]);\n var handleDragEnd = React.useCallback(function (event) {\n if (unmount.current) {\n return;\n }\n setDrag(null, { target: ref.current, event: event });\n onDragEnd(event);\n }, [onDragEnd, setDrag, ref]);\n var dispatchDragEvent = React.useCallback(function (event) {\n dispatchDragAndDrop(getState(), { event: event, payload: target.current }, {\n onVelocityChange: handleVelocityChange,\n onOffsetChange: handleOffsetChange,\n onClientOffsetChange: handleClientOffsetChange,\n onPageOffsetChange: handlePageOffsetChange,\n onInitialClientOffsetChange: handleInitialClientOffsetChange,\n onScrollOffsetChange: handleScrollOffsetChange,\n onInitialScrollOffsetChange: handleInitialScrollOffsetChange,\n onIsPressedChange: handlePressedChange,\n onIsScrollingChange: handleScrollingChange\n });\n }, [\n getState,\n handleVelocityChange,\n handleOffsetChange,\n handlePageOffsetChange,\n handleClientOffsetChange,\n handleInitialClientOffsetChange,\n handleInitialScrollOffsetChange,\n handlePressedChange,\n handleScrollOffsetChange,\n handleScrollingChange\n ]);\n // Pointer Events\n var handlePointerDown = React.useCallback(function (event) {\n dispatchDragEvent(event);\n }, [dispatchDragEvent]);\n var handlePointerMove = React.useCallback(function (event) {\n dispatchDragEvent(event);\n }, [dispatchDragEvent]);\n var handlePointerCancel = React.useCallback(function (event) {\n dispatchDragEvent(event);\n }, [dispatchDragEvent]);\n var handlePointerUp = React.useCallback(function (event) {\n dispatchDragEvent(event);\n }, [dispatchDragEvent]);\n // Mouse Events\n var handleMouseDown = React.useCallback(function (event) {\n dispatchDragEvent(event);\n }, [dispatchDragEvent]);\n var handleMouseMove = React.useCallback(function (event) {\n dispatchDragEvent(event);\n }, [dispatchDragEvent]);\n var handleMouseUp = React.useCallback(function (event) {\n dispatchDragEvent(event);\n }, [dispatchDragEvent]);\n var handleContextMenu = React.useCallback(function (event) {\n event.preventDefault();\n dispatchDragEvent(event);\n }, [dispatchDragEvent]);\n // Touch Events\n var handleTouchStart = React.useCallback(function (event) {\n event.preventDefault();\n dispatchDragEvent(event);\n }, [dispatchDragEvent]);\n var handleTouchMove = React.useCallback(function (event) {\n event.preventDefault();\n dispatchDragEvent(event);\n }, [dispatchDragEvent]);\n var handleTouchEnd = React.useCallback(function (event) {\n if (event.touches.length === 0 && event.changedTouches.length === 1) {\n var currentWindow = getWindow();\n ignoreMouse.current = true;\n restoreMouseTimeout.current = currentWindow.setTimeout(function () { ignoreMouse.current = false; }, IGNORE_MOUSE_TIMEOUT);\n }\n dispatchDragEvent(event);\n }, [dispatchDragEvent, getWindow]);\n var handleScroll = React.useCallback(function (event) {\n dispatchDragEvent(event);\n }, [dispatchDragEvent]);\n // Misc\n var prerequisites = React.useCallback(function () {\n var element = getElement();\n if (element) {\n var initialTouchAction_1 = element.style.touchAction;\n element.style.touchAction = 'none';\n return function () {\n element.style.touchAction = initialTouchAction_1;\n };\n }\n }, [getElement]);\n var register = React.useCallback(function () {\n registerDrag(target);\n return function () {\n deregisterDrag(target);\n };\n }, [deregisterDrag, registerDrag]);\n var init = function () {\n var window = getWindow();\n var element = getElement();\n var document = getDocument();\n if (pointers) {\n if (element) {\n scrollable.current = getScrollableParent(element);\n if (scrollable.current) {\n scrollable.current.addEventListener('scroll', handleScroll, { passive: true });\n }\n element.addEventListener('pointerdown', handlePointerDown, { passive: true });\n }\n if (pressed) {\n document.addEventListener('pointermove', handlePointerMove);\n document.addEventListener('pointerup', handlePointerUp, true);\n document.addEventListener('contextmenu', handleContextMenu);\n document.addEventListener('pointercancel', handlePointerCancel, { passive: true });\n }\n }\n else {\n // Hacky-hacky iOS Safari\n window.addEventListener('touchmove', noop, { capture: false, passive: false });\n if (element) {\n element.addEventListener('mousedown', handleMouseDown, { passive: true });\n if (!mouseOnly) {\n element.addEventListener('touchstart', handleTouchStart, { passive: true });\n if (pressed) {\n element.addEventListener('touchmove', handleTouchMove, { passive: true });\n element.addEventListener('touchend', handleTouchEnd, { passive: true });\n }\n }\n }\n if (pressed) {\n document.addEventListener('mousemove', handleMouseMove, { passive: true });\n document.addEventListener('mouseup', handleMouseUp, { passive: true });\n }\n }\n return function () {\n if (scrollable.current) {\n scrollable.current.removeEventListener('scroll', handleScroll);\n }\n if (element) {\n element.removeEventListener('pointerdown', handlePointerDown);\n element.removeEventListener('mousedown', handleMouseDown);\n element.removeEventListener('touchstart', handleTouchStart);\n element.removeEventListener('touchmove', handleTouchMove);\n element.removeEventListener('touchend', handleTouchEnd);\n }\n document.removeEventListener('pointermove', handlePointerMove);\n document.removeEventListener('pointerup', handlePointerUp, true);\n document.removeEventListener('contextmenu', handleContextMenu);\n document.removeEventListener('pointercancel', handlePointerCancel);\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseup', handleMouseUp);\n window.removeEventListener('touchmove', noop);\n window.clearTimeout(restoreMouseTimeout.current);\n };\n };\n React.useEffect(function () {\n var window = getWindow();\n if (scrolling) {\n var scrollableParent_1 = getScrollContainer()\n || getScrollableParent(document.elementFromPoint(clientOffset.current.x, clientOffset.current.y));\n window.clearInterval(scrollInterval.current);\n scrollInterval.current = window.setInterval(function () {\n autoScrollElement(scrollableParent_1, { x: velocity.current.x, y: velocity.current.y });\n }, 50);\n }\n return function () {\n window.clearInterval(scrollInterval.current);\n };\n }, [getElement, getScrollContainer, getWindow, scrolling]);\n React.useEffect(prerequisites, [prerequisites]);\n React.useEffect(init, [\n pressed,\n getWindow,\n getElement,\n getDocument,\n mouseOnly,\n pointers,\n handleContextMenu,\n handleMouseDown,\n handleMouseMove,\n handleMouseUp,\n handlePointerCancel,\n handlePointerDown,\n handlePointerMove,\n handlePointerUp,\n handleTouchEnd,\n handleTouchMove,\n handleTouchStart,\n handleScroll\n ]);\n React.useEffect(function () {\n unmount.current = false;\n return function () {\n unmount.current = true;\n };\n }, []);\n React.useLayoutEffect(register, [register]);\n}\n","import * as React from 'react';\n/**\n * @hidden\n */\nexport var useInheritedState = function (context, defaultValue) {\n var _a = React.useContext(context), contextValue = _a[0], contextSetter = _a[1];\n var _b = React.useState(defaultValue), localValue = _b[0], localSetter = _b[1];\n var value = contextValue !== undefined ? contextValue : localValue;\n var handleValueChange = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n contextValue !== undefined\n ? contextSetter.apply(void 0, args) : localSetter(args[0]);\n };\n return [\n value,\n handleValueChange\n ];\n};\n","import * as React from 'react';\n/**\n * @hidden\n */\nexport var useMouse = function (props, target, extend) {\n if (extend === void 0) { extend = {}; }\n var handleMouseDown = React.useCallback(function (event) {\n if (extend.onMouseDown) {\n extend.onMouseDown.call(undefined, event);\n }\n if (props.onMouseDown) {\n props.onMouseDown.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [extend.onMouseDown, props.onMouseDown, target]);\n var handleMouseUp = React.useCallback(function (event) {\n if (extend.onMouseUp) {\n extend.onMouseUp.call(undefined, event);\n }\n if (props.onMouseUp) {\n props.onMouseUp.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [extend.onMouseUp, props.onMouseUp, target]);\n var handleClick = React.useCallback(function (event) {\n if (extend.onClick) {\n extend.onClick.call(undefined, event);\n }\n if (props.onClick) {\n props.onClick.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [extend.onClick, props.onClick, target]);\n var handleDoubleClick = React.useCallback(function (event) {\n if (extend.onDoubleClick) {\n extend.onDoubleClick.call(undefined, event);\n }\n if (props.onDoubleClick) {\n props.onDoubleClick.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [extend.onDoubleClick, props.onDoubleClick, target]);\n var handleMouseEnter = React.useCallback(function (event) {\n if (extend.onMouseEnter) {\n extend.onMouseEnter.call(undefined, event);\n }\n if (props.onMouseEnter) {\n props.onMouseEnter.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [extend.onMouseEnter, props.onMouseEnter, target]);\n var handleMouseLeave = React.useCallback(function (event) {\n if (extend.onMouseLeave) {\n extend.onMouseLeave.call(undefined, event);\n }\n if (props.onMouseLeave) {\n props.onMouseLeave.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [extend.onMouseLeave, props.onMouseLeave, target]);\n var handelMouseMove = React.useCallback(function (event) {\n if (extend.onMouseMove) {\n extend.onMouseMove.call(undefined, event);\n }\n if (props.onMouseMove) {\n props.onMouseMove.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [extend.onMouseMove, props.onMouseMove, target]);\n var handleMouseOut = React.useCallback(function (event) {\n if (extend.onMouseOut) {\n extend.onMouseOut.call(undefined, event);\n }\n if (props.onMouseOut) {\n props.onMouseOut.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [extend.onMouseOut, props.onMouseOut, target]);\n var handleMouseOver = React.useCallback(function (event) {\n if (extend.onMouseOver) {\n extend.onMouseOver.call(undefined, event);\n }\n if (props.onMouseOver) {\n props.onMouseOver.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [extend.onMouseOver, props.onMouseOver, target]);\n return {\n onClick: handleClick,\n onMouseUp: handleMouseUp,\n onMouseDown: handleMouseDown,\n onDoubleClick: handleDoubleClick,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onMouseMove: handelMouseMove,\n onMouseOut: handleMouseOut,\n onMouseOver: handleMouseOver\n };\n};\n","import * as React from 'react';\n/** @hidden */\nexport var usePropsContext = function (context, props) {\n var contextPropsCallback = React.useContext(context);\n var contextProps = contextPropsCallback(props);\n return contextProps;\n};\n","import * as React from 'react';\n// Same as 'useDir'. Export to avoid breaking change.\n// 'useRtl' is incorrect naming, since applies that the returned value is `true` or `false`.\n// but instead, it is returning `ltr` or `rtl`.\n/**\n * @hidden\n */\nexport function useRtl(elementRef, initialDir, args) {\n // Dir prop is read only on initial rendering due to specifics of getComputedStyles - see below\n var _a = React.useState(initialDir), dir = _a[0], setDir = _a[1];\n React.useEffect(function () {\n if (!dir && window && elementRef.current) {\n // Note: getComputedStyle forces reflow\n var rtlCandidate = window.getComputedStyle(elementRef.current).direction;\n if (rtlCandidate) {\n // rerender is needed as DOM is read after first render\n setDir(rtlCandidate);\n }\n }\n }, args);\n return dir;\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '../classNames';\nimport { SIZE_CLASSES } from './constants';\nimport { toIconClass, useMouse } from '../main';\n/**\n * Represents the [KendoReact Icon component]({% slug overview_icon %}).\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * \n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nexport var Icon = React.forwardRef(function (props, ref) {\n var className = props.className, name = props.name, themeColor = props.themeColor, size = props.size, flip = props.flip, style = props.style, id = props.id, tabIndex = props.tabIndex, others = __rest(props, [\"className\", \"name\", \"themeColor\", \"size\", \"flip\", \"style\", \"id\", \"tabIndex\"]);\n var target = React.useRef(null);\n var elementRef = React.useRef(null);\n React.useImperativeHandle(target, function () { return ({\n element: elementRef.current\n }); });\n React.useImperativeHandle(ref, function () { return target.current; });\n var sizeProp = React.useMemo(function () { return size || defaultProps.size; }, [size]);\n var flipProp = React.useMemo(function () { return flip || defaultProps.flip; }, [flip]);\n var fontClassNames = React.useMemo(function () {\n var _a;\n return classNames('k-icon', 'k-font-icon', name && toIconClass(name), (_a = {},\n _a[\"k-color-\".concat(themeColor)] = themeColor,\n _a['k-flip-h'] = flipProp === 'horizontal' || flipProp === 'both',\n _a['k-flip-v'] = flipProp === 'vertical' || flipProp === 'both',\n _a), SIZE_CLASSES[sizeProp], className);\n }, [name, themeColor, sizeProp, flipProp, className]);\n var mouseProps = useMouse(props, target);\n return (React.createElement(\"span\", __assign({ ref: elementRef }, others, mouseProps, { className: fontClassNames, id: id, tabIndex: tabIndex, style: style, role: \"presentation\" })));\n});\nIcon.propTypes = {\n style: PropTypes.object,\n classNames: PropTypes.string,\n name: PropTypes.string,\n themeColor: PropTypes.oneOf([\n 'inherit', 'primary', 'secondary', 'tertiary',\n 'info', 'success', 'error', 'warning',\n 'dark', 'light', 'inverse'\n ]),\n size: PropTypes.oneOf(['default', 'xsmall', 'small', 'medium', 'large', 'xlarge', 'xxlarge', 'xxxlarge']),\n flip: PropTypes.oneOf(['default', 'horizontal', 'vertical', 'both'])\n};\nvar defaultProps = {\n size: 'default',\n flip: 'default'\n};\nIcon.displayName = 'KendoIcon';\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { Icon } from './Icon';\nimport { SvgIcon } from './SvgIcon';\nimport { IconsContext } from './IconsContext';\n/**\n * @hidden\n */\nexport var IconWrap = React.forwardRef(function (props, ref) {\n var _a, _b;\n var _c = React.useContext(IconsContext), type = _c.type, icons = _c.icons;\n var icon = props.icon, fontIconProps = __rest(props, [\"icon\"]);\n var name = type === 'svg' ? (((_a = props.icon) === null || _a === void 0 ? void 0 : _a.name) || props.name) : (props.name || ((_b = props.icon) === null || _b === void 0 ? void 0 : _b.name));\n name = (name && icons && icons[name] && typeof icons[name] === 'string') ? icons[name] : name;\n var svg = (name && icons && icons[name] && typeof icons[name] !== 'string') ? icons[name] : icon;\n return (type === 'svg' && svg) ?\n React.createElement(SvgIcon, __assign({}, props, { icon: svg, ref: ref })) :\n React.createElement(Icon, __assign({}, fontIconProps, { name: name, ref: ref }));\n});\nIconWrap.displayName = 'KendoIconWrap';\n","import * as React from 'react';\n;\n/**\n * Represents a React Context which provides you with the option to configure the KendoReact components icons.\n */\nexport var IconsContext = React.createContext({ type: 'svg' });\nIconsContext.displayName = 'KendoReactIconsContext';\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '../classNames';\nimport { SIZE_CLASSES } from './constants';\n/**\n * Represents the [KendoReact SvgIcon component]({% slug overview_svgicon %}).\n *\n * @example\n * ```jsx\n * import { accessibility } from '@progress/kendo-svg-icons';\n *\n * const App = () => {\n * return (\n * \n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nexport var SvgIcon = React.forwardRef(function (props, ref) {\n var children = props.children, className = props.className, svgClassName = props.svgClassName, icon = props.icon, flip = props.flip, id = props.id, tabIndex = props.tabIndex, size = props.size, style = props.style, svgStyle = props.svgStyle, themeColor = props.themeColor, viewBox = props.viewBox, name = props.name, onClick = props.onClick, others = __rest(props, [\"children\", \"className\", \"svgClassName\", \"icon\", \"flip\", \"id\", \"tabIndex\", \"size\", \"style\", \"svgStyle\", \"themeColor\", \"viewBox\", \"name\", \"onClick\"]);\n var elementRef = React.useRef(null);\n React.useImperativeHandle(ref, function () { return ({\n element: elementRef.current\n }); });\n var iconNameProp = React.useMemo(function () { return icon ? icon.name : defaultProps.icon; }, [icon]);\n var sizeProp = React.useMemo(function () { return size || defaultProps.size; }, [size]);\n var flipProp = React.useMemo(function () { return flip || defaultProps.flip; }, [flip]);\n var viewBoxProp = React.useMemo(function () { return viewBox || defaultProps.viewBox; }, [viewBox]);\n var elementClassNames = React.useMemo(function () {\n var _a;\n return classNames('k-icon', 'k-svg-icon', 'k-svg-i-' + iconNameProp, (_a = {},\n _a[\"k-color-\".concat(themeColor)] = themeColor,\n _a['k-flip-h'] = flipProp === 'horizontal' || flipProp === 'both',\n _a['k-flip-v'] = flipProp === 'vertical' || flipProp === 'both',\n _a), SIZE_CLASSES[sizeProp], className);\n }, [iconNameProp, themeColor, sizeProp, flipProp, className]);\n var elementStyle = React.useMemo(function () {\n if (props.width && props.height) {\n return __assign({ width: props.width, height: props.height }, style);\n }\n else if (props.width) {\n return __assign({ width: props.width, height: props.width }, style);\n }\n else if (props.height) {\n return __assign({ width: props.height, height: props.height }, style);\n }\n else {\n return __assign({}, style);\n }\n }, [props.width, props.height, style]);\n return (React.createElement(\"span\", { className: elementClassNames, style: elementStyle, ref: elementRef, onClick: onClick },\n React.createElement(\"svg\", __assign({ id: id, className: svgClassName, style: svgStyle, \"aria-hidden\": true, tabIndex: tabIndex, focusable: false, xmlns: \"http://www.w3.org/2000/svg\", viewBox: icon ? icon.viewBox : viewBoxProp, dangerouslySetInnerHTML: icon ? { __html: icon.content } : undefined }, others), icon ? undefined : children)));\n});\nSvgIcon.propTypes = {\n style: PropTypes.object,\n classNames: PropTypes.string,\n children: PropTypes.any,\n icon: PropTypes.object,\n themeColor: PropTypes.oneOf([\n 'inherit', 'primary', 'secondary', 'tertiary',\n 'info', 'success', 'error', 'warning',\n 'dark', 'light', 'inverse'\n ]),\n size: PropTypes.oneOf(['default', 'xsmall', 'small', 'medium', 'large', 'xlarge', 'xxlarge', 'xxxlarge']),\n flip: PropTypes.oneOf(['default', 'horizontal', 'vertical', 'both'])\n};\nvar defaultProps = {\n size: 'default',\n flip: 'default',\n icon: '',\n viewBox: '0 0 24 24'\n};\nSvgIcon.displayName = 'KendoSvgIcon';\n","/**\n * @hidden\n */\nexport var SIZE_CLASSES = {\n 'default': '',\n 'xsmall': 'k-icon-xs',\n 'small': 'k-icon-sm',\n 'medium': 'k-icon-md',\n 'large': 'k-icon-lg',\n 'xlarge': 'k-icon-xl',\n 'xxlarge': 'k-icon-xxl',\n 'xxxlarge': 'k-icon-xxxl'\n};\n","import * as PropTypes from 'prop-types';\n/**\n * @hidden\n */\nexport var toIconName = function (iconClass) { return iconClass.replace(/^k-i-/, ''); };\n/**\n * @hidden\n */\nexport var toIconClass = function (name) { return 'k-i-' + name; };\n/**\n * @hidden\n */\nexport var svgIconPropType = PropTypes.shape({\n name: PropTypes.string.isRequired,\n content: PropTypes.string.isRequired,\n viewBox: PropTypes.string.isRequired\n});\n","/**\n * @hidden\n */\nexport var Keys = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n esc: 27,\n space: 32,\n pageUp: 33,\n pageDown: 34,\n end: 35,\n home: 36,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n delete: 46\n};\n","/**\n * @hidden\n */\nvar isClassComponent = function (Component) { return Boolean(typeof Component === 'function' && !!Component.prototype.isReactComponent); };\n/**\n * @hidden\n */\nvar isForwardRef = function (Component) { return Boolean(Component.$$typeof && typeof Component.render === 'function'); };\n/**\n * @hidden\n */\nexport var canUseRef = function (Component) { return typeof Comment !== 'string' && (isClassComponent(Component) || isForwardRef(Component)); };\n","import * as React from 'react';\n/**\n * @hidden\n */\nexport var cloneDate = function (date) { return date ? new Date(date.getTime()) : null; };\n/**\n * @hidden\n */\nexport function clone(obj) {\n var result = {};\n cloneObject(obj, result);\n return result;\n}\n/**\n * @hidden\n */\nexport function cloneObject(obj, result) {\n for (var field in obj) {\n if (obj.hasOwnProperty(field)) {\n var value = obj[field];\n result[field] = cloneValue(value, result[field]);\n }\n }\n}\n/**\n * @hidden\n */\nexport function cloneValue(value, nextValue) {\n if (Array.isArray(value)) {\n return cloneArray(value);\n }\n else if (value instanceof Date) {\n return cloneDate(value);\n }\n else if (React.isValidElement(value)) {\n return React.cloneElement(value, value.props);\n }\n else if (value && typeof value === 'object') {\n var newNextValue = nextValue || {};\n cloneObject(value, newNextValue);\n return newNextValue;\n }\n else {\n return value;\n }\n}\n/**\n * @hidden\n */\nexport function cloneArray(array) {\n return array.map(function (value) { return cloneValue(value, undefined); });\n}\n","/**\n * @hidden\n */\nexport var focusFirstFocusableChild = function (target) {\n if (target) {\n if ((target instanceof HTMLInputElement || target.tabIndex !== -1) && target.focus) {\n target.focus();\n return;\n }\n var element = target.querySelector('input, [tabindex]:not([tabindex=\"-1\"])');\n if (element && element.focus) {\n element.focus();\n }\n }\n};\n","/**\n * @hidden\n */\nvar FormComponent = /** @class */ (function () {\n function FormComponent() {\n }\n return FormComponent;\n}());\nexport { FormComponent };\n","import { fieldList } from './fieldList';\nvar setterCache = {};\nsetterCache.undefined = function (obj) { return obj; };\nvar defaultValue = function (nextField, options) {\n return options && options.arrays && !isNaN(Number(nextField)) ? [] : {};\n};\n/**\n * Can be used for setting value to object using field path. For example `users[index].name`.\n *\n * @example\n * ```jsx-no-run\n * const values = {users:[{lastName: 'Doe'}]};\n * const firstUserFirstName = setter('user[0].firstName');\n *\n * firstUserFirstName(values, 'John');\n *\n * console.log(values)\n *\n * // result: {users:[{firstName: 'John', lastName: 'Doe'}]}\n * ```\n */\nexport function setter(field) {\n if (setterCache[field]) {\n return setterCache[field];\n }\n var fields = fieldList(field);\n setterCache[field] = function (obj, value, options) {\n var root = obj;\n var depth = fields.length - 1;\n for (var idx = 0; idx < depth && root; idx++) {\n root = root[fields[idx]] = root[fields[idx]] || defaultValue(fields[idx + 1], options);\n }\n root[fields[depth]] = value;\n };\n return setterCache[field];\n}\n","import * as React from 'react';\n/** @hidden */\nexport var COLLECTION_ACTION;\n(function (COLLECTION_ACTION) {\n COLLECTION_ACTION[COLLECTION_ACTION[\"add\"] = 0] = \"add\";\n COLLECTION_ACTION[COLLECTION_ACTION[\"remove\"] = 1] = \"remove\";\n})(COLLECTION_ACTION || (COLLECTION_ACTION = {}));\n/** @hidden */\nexport var useCollection = function (initial) {\n if (initial === void 0) { initial = []; }\n var collection = React.useRef(initial);\n var handleCollectionAction = React.useCallback(function (action) {\n switch (action.type) {\n case COLLECTION_ACTION.add:\n collection.current.push(action.item);\n break;\n case COLLECTION_ACTION.remove:\n var index = collection.current.indexOf(action.item);\n collection.current.splice(index, 1);\n break;\n default:\n break;\n }\n }, []);\n return [collection.current, handleCollectionAction];\n};\n","/* eslint-disable max-len */\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nvar licenseKeyUrl = 'https://www.telerik.com/kendo-react-ui/components/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-banner';\nvar didRender = false;\n/**\n *\n * @hidden\n */\nexport var WatermarkOverlay = function () {\n var _a = React.useState(true), isOpen = _a[0], setIsOpen = _a[1];\n var _b = React.useState(false), bannerMounted = _b[0], setBannerMounted = _b[1];\n React.useEffect(function () {\n if (!didRender) {\n setBannerMounted(true);\n didRender = true;\n }\n }, []);\n var onCloseBannerClick = function () {\n setIsOpen(false);\n };\n var bannerElement = (React.createElement(React.Fragment, null, isOpen && (React.createElement(\"div\", { style: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n position: 'fixed',\n top: '16px',\n right: '16px',\n padding: '12px',\n borderRadius: '4px',\n boxShadow: '0px 4px 5px 0px rgba(0, 0, 0, 0.04), 0px 2px 4px 0px rgba(0, 0, 0, 0.03)',\n fontSize: '14px',\n fontWeight: 400,\n lineHeight: '20px',\n backgroundColor: '#FFC000',\n color: '#1E1E1E',\n zIndex: 999\n } },\n React.createElement(\"span\", { style: { display: 'flex', alignSelf: 'center', marginRight: '8px' } },\n React.createElement(\"svg\", { width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"none\" },\n React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M8 1L0 15H16L8 1ZM7 6V11H9V6H7ZM7 14V12H9V14H7Z\", fill: \"#1E1E1E\" }))),\n React.createElement(\"span\", null, \"No valid license found for KendoReact. Learn how to activate your license.\"),\n React.createElement(\"div\", { style: { display: 'flex', alignItems: 'center', marginLeft: '24px' } },\n React.createElement(\"a\", { href: licenseKeyUrl, style: { marginRight: '8px', display: 'flex' } },\n React.createElement(\"button\", { title: 'Learn More', style: {\n display: 'inline-flex',\n position: 'relative',\n border: 'none',\n borderRadius: '4px',\n padding: '5px',\n backgroundColor: 'transparent',\n transition: 'color 0.2s ease-in-out',\n outline: 'none',\n cursor: 'pointer'\n } },\n React.createElement(\"svg\", { width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"none\" },\n React.createElement(\"path\", { d: \"M15 8C15 11.8656 11.8656 15 8 15C4.13437 15 1 11.8656 1 8C1 4.13437 4.13437 1 8 1C11.8656 1 15 4.13437 15 8ZM14 8C14 4.6875 11.3125 2 8 2C4.6875 2 2 4.6875 2 8C2 11.3125 4.6875 14 8 14C11.3125 14 14 11.3125 14 8ZM11 6C11 7.4125 10.2687 8.05937 9.73125 8.53125C9.25937 8.94688 9 9.17813 9 10H7C7 8.275 7.84688 7.525 8.40938 7.03125C8.84062 6.65312 9 6.50938 9 6C9 5.45 8.55 5 8 5C7.45 5 7 5.45 7 6H5C5 4.34375 6.34375 3 8 3C9.65625 3 11 4.34375 11 6ZM9 13V11H7V13H9Z\", fill: \"#1E1E1E\" })))),\n React.createElement(\"button\", { title: 'Close', style: {\n display: 'inline-flex',\n position: 'relative',\n border: 'none',\n borderRadius: '4px',\n padding: '5px',\n backgroundColor: 'transparent',\n transition: 'color 0.2s ease-in-out',\n outline: 'none',\n cursor: 'pointer'\n }, onClick: onCloseBannerClick },\n React.createElement(\"svg\", { width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"none\" },\n React.createElement(\"path\", { d: \"M13 4.41562L9.41563 8L13 11.5844L11.5844 13L8 9.41563L4.41562 13L3 11.5844L6.58437 8L3 4.41562L4.41562 3L8 6.58437L11.5844 3L13 4.41562Z\", fill: \"#1E1E1E\" }))))))));\n return (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { style: {\n position: 'absolute',\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n opacity: 0.2,\n zIndex: 101,\n pointerEvents: 'none',\n backgroundImage: 'url(\\'data:image/png;base64,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\\')'\n } }),\n bannerMounted && ReactDOM.createPortal(bannerElement, document.body)));\n};\n","import * as React from 'react';\nimport { useDocument } from './useDocument';\n/**\n * Returns a function, which gets the `defaultView` based on the `ownerDocument` of the element.\n */\nexport var useWindow = function (ref) {\n var getDocument = useDocument(ref);\n var getWindow = React.useCallback(function () {\n var document = getDocument();\n return document\n ? document.defaultView || window\n : window;\n }, [getDocument]);\n return getWindow;\n};\n","/**\n * @hidden\n */\nexport var FONT_SIZE_CLASSES = {\n 'xsmall': 'k-fs-xs',\n 'small': 'k-fs-sm',\n 'medium': 'k-fs-md',\n 'large': 'k-fs-lg',\n 'xlarge': 'k-fs-xl'\n};\n/**\n * @hidden\n */\nexport var FONT_WEIGHT_CLASSES = {\n 'light': 'k-font-weight-light',\n 'normal': 'k-font-weight-normal',\n 'bold': 'k-font-weight-bold'\n};\n/**\n * @hidden\n */\nexport var MARGIN_ENUM_CLASSES = {\n 'xsmall': 'k-m-xs',\n 'small': 'k-m-sm',\n 'medium': 'k-m-md',\n 'large': 'k-m-lg',\n 'xlarge': 'k-m-xl',\n 'thin': 'k-m-thin',\n 'hair': 'k-m-hair'\n};\n/**\n * @hidden\n */\nexport var MARGIN_ENUM_VALUES = {\n 'xsmall': 'xs',\n 'small': 'sm',\n 'medium': 'md',\n 'large': 'lg',\n 'xlarge': 'xl',\n 'thin': 'thin',\n 'hair': 'hair'\n};\n/**\n * @hidden\n */\nexport var MARGIN_SIDES_CLASSES = {\n 'top': 'k-mt-',\n 'right': 'k-mr-',\n 'bottom': 'k-mb-',\n 'left': 'k-ml-'\n};\n/**\n * @hidden\n */\nexport var TEXT_ALIGN_CLASSES = {\n 'left': 'k-text-left',\n 'right': 'k-text-right',\n 'center': 'k-text-center',\n 'justify': 'k-text-justify'\n};\n/**\n * @hidden\n */\nexport var TEXT_TRANSFORM_CLASSES = {\n 'lowercase': 'k-text-lowercase',\n 'uppercase': 'k-text-uppercase',\n 'capitalize': 'k-text-capitalize'\n};\n/**\n * @hidden\n */\nexport var THEME_COLOR_CLASSES = {\n 'inherit': 'k-color-inherit',\n 'primary': 'k-color-primary',\n 'secondary': 'k-color-secondary',\n 'tertiary': 'k-color-tertiary',\n 'info': 'k-color-info',\n 'success': 'k-color-success',\n 'warning': 'k-color-warning',\n 'error': 'k-color-error',\n 'dark': 'k-color-dark',\n 'light': 'k-color-light',\n 'inverse': 'k-color-inverse'\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { FONT_SIZE_CLASSES, FONT_WEIGHT_CLASSES, MARGIN_ENUM_CLASSES, MARGIN_ENUM_VALUES, MARGIN_SIDES_CLASSES, TEXT_ALIGN_CLASSES, TEXT_TRANSFORM_CLASSES, THEME_COLOR_CLASSES } from './constants';\n/**\n * @hidden\n */\nvar generateTypography = function (element) {\n var component = React.forwardRef(function (props, ref) {\n var id = props.id, style = props.style, className = props.className, fontSize = props.fontSize, fontWeight = props.fontWeight, textAlign = props.textAlign, textTransform = props.textTransform, themeColor = props.themeColor, margin = props.margin, others = __rest(props, [\"id\", \"style\", \"className\", \"fontSize\", \"fontWeight\", \"textAlign\", \"textTransform\", \"themeColor\", \"margin\"]);\n var target = React.useRef(null);\n var elementRef = React.useRef(null);\n React.useImperativeHandle(target, function () { return ({\n element: elementRef.current,\n props: props\n }); });\n React.useImperativeHandle(ref, function () { return target.current; });\n var defaultClass = function () {\n var classMap = element === 'p' ? 'paragraph' : element;\n return \"k-\".concat(classMap);\n };\n var Component = element;\n var setMarginClassPerSide = function (marginSide, value) {\n var val = typeof value === 'string' ? MARGIN_ENUM_VALUES[value] : value;\n return \"\".concat(MARGIN_SIDES_CLASSES[marginSide]).concat(val);\n };\n var setMarginClasses = function () {\n if (margin === undefined) {\n return;\n }\n if (typeof margin === 'string') {\n return [MARGIN_ENUM_CLASSES[margin]];\n }\n // The the predefined Kendo classes are starting from 0 to 24.\n if (typeof margin === 'number' && margin >= 0 && margin <= 24) {\n return [\"k-m-\".concat(margin)];\n }\n if (typeof margin === 'object') {\n var marginClassesList_1 = [];\n Object.keys(margin).forEach(function (key) {\n if (margin[key] !== null && margin[key] !== undefined) {\n marginClassesList_1.push(setMarginClassPerSide(key, margin[key]));\n }\n });\n var classes = marginClassesList_1.join(' ');\n return classes;\n }\n };\n var setTypographyClasses = function () {\n var typographyArray = [\n defaultClass(),\n FONT_SIZE_CLASSES[fontSize],\n FONT_WEIGHT_CLASSES[fontWeight],\n TEXT_ALIGN_CLASSES[textAlign],\n TEXT_TRANSFORM_CLASSES[textTransform],\n THEME_COLOR_CLASSES[themeColor],\n setMarginClasses(),\n className\n ];\n var typographyClasses = typographyArray.filter(function (n) { return n !== undefined; }).join(' ');\n return typographyClasses;\n };\n return (React.createElement(Component, __assign({ id: id, ref: elementRef, className: setTypographyClasses(), style: style }, others), props.children));\n });\n component.propTypes = {\n style: PropTypes.object,\n className: PropTypes.string,\n fontSize: PropTypes.oneOf(['xsmall', 'small', 'medium', 'large', 'xlarge']),\n fontWeight: PropTypes.oneOf(['light', 'normal', 'bold']),\n margin: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.object,\n PropTypes.oneOf(['xsmall', 'small', 'medium', 'large', 'xlarge', 'thin', 'hair'])\n ]),\n textAlign: PropTypes.oneOf(['left', 'right', 'center', 'justify']),\n textTransform: PropTypes.oneOf(['lowercase', 'uppercase', 'capitalize']),\n themeColor: PropTypes.oneOf([\n 'inherit', 'primary', 'secondary', 'tertiary',\n 'info', 'success', 'error', 'warning',\n 'dark', 'light', 'inverse'\n ])\n };\n component.displayName = \"KendoReactTypography\".concat(element.toUpperCase());\n return component;\n};\n/**\n * Represents [KendoReact Typography Heading1 component]({% slug overview_typography %}).\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * Heading 1\n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar h1 = generateTypography('h1');\n/**\n * Represents [KendoReact Typography Heading2 component]({% slug overview_typography %}).\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * Heading 2\n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar h2 = generateTypography('h2');\n/**\n * Represents [KendoReact Typography Heading3 component]({% slug overview_typography %}).\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * Heading 3\n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar h3 = generateTypography('h3');\n/**\n * Represents [KendoReact Typography Heading4 component]({% slug overview_typography %}).\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * Heading 4\n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar h4 = generateTypography('h4');\n/**\n * Represents [KendoReact Typography Heading5 component]({% slug overview_typography %}).\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * Heading 5\n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar h5 = generateTypography('h5');\n/**\n * Represents [KendoReact Typography Heading6 component]({% slug overview_typography %}).\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * Heading 6\n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar h6 = generateTypography('h6');\n/**\n * Represents [KendoReact Typography Paragraph component]({% slug overview_typography %}).\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * I'm a paragraph text.\n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar p = generateTypography('p');\n/**\n * Represents [KendoReact Typography Code component]({% slug overview_typography %}).\n * Use to create a single-line code snippet.\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * code\n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar code = generateTypography('code');\n/**\n * Represents [KendoReact Typography Pre component]({% slug overview_typography %}).\n * Used along with [KendoReact Typography Code component]({% slug overview_typography %}) to create multi-line code snippet.\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * \n * {\n * const { name, value } = target;\n * const newData = Object.assign({}, data, { [name]: value });\n * setData(newData);\n * }\n * `}} />\n * \n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar pre = generateTypography('pre');\n/**\n * Represents the [KendoReact Typography component]({% slug overview_typography %}).\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * Heading 2\n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nexport var Typography = {\n h1: h1,\n h2: h2,\n h3: h3,\n h4: h4,\n h5: h5,\n h6: h6,\n p: p,\n code: code,\n pre: pre\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\n/** @hidden */\nexport var useControlledState = function (defaultProp, prop, callback) {\n var _a = React.useState(prop || defaultProp), state = _a[0], setState = _a[1];\n var handleSetEdit = React.useCallback(function (value, args) {\n setState(value);\n if (callback) {\n callback.call(undefined, __assign(__assign({}, args), { value: value }));\n }\n }, [callback, setState]);\n return [prop !== undefined ? prop : state, handleSetEdit];\n};\n","import * as React from 'react';\nimport { useCollection, COLLECTION_ACTION, useControlledState } from '../hooks';\nimport { DragContext, DropContext, DragsContext, DropsContext } from './context';\n/**\n * The `DragAndDrop` component is required for the `droppable` functionality to work properly.\n *\n * It is used internally to synchronize the `drag` and `drop` functionalities.\n * Accepts properties of type [DragAndDropProps]({% slug api_common_draganddropprops %}).\n */\nexport var DragAndDrop = function (props) {\n var _a = useControlledState(null, undefined), drag = _a[0], setDrag = _a[1];\n var _b = useControlledState(null, undefined), drop = _b[0], setDrop = _b[1];\n var _c = useCollection([]), drags = _c[0], dispatchDrags = _c[1];\n var _d = useCollection([]), drops = _d[0], dispatchDrops = _d[1];\n var registerDrag = function (item) {\n dispatchDrags({\n type: COLLECTION_ACTION.add,\n item: item\n });\n };\n var deregisterDrag = function (item) {\n dispatchDrags({\n type: COLLECTION_ACTION.remove,\n item: item\n });\n };\n var registerDrop = function (item) {\n dispatchDrops({\n type: COLLECTION_ACTION.add,\n item: item\n });\n };\n var deregisterDrop = function (item) {\n dispatchDrops({\n type: COLLECTION_ACTION.remove,\n item: item\n });\n };\n return (React.createElement(DragContext.Provider, { value: [drag, setDrag] },\n React.createElement(DropContext.Provider, { value: [drop, setDrop] },\n React.createElement(DragsContext.Provider, { value: [drags, registerDrag, deregisterDrag] },\n React.createElement(DropsContext.Provider, { value: [drops, registerDrop, deregisterDrop] }, props.children)))));\n};\nDragAndDrop.displayName = 'KendoReactDragAndDrop';\n","import * as React from 'react';\nimport { noop } from '../noop';\nimport { useInheritedState } from '../hooks/useInheritedState';\nimport { DropContext, DropsContext } from '../drag-n-drop/context';\n/**\n * Represents the KendoReact `useDroppable` hook.\n * Use it to attach `drop` events to a native HTML DOM elements, or custom React Components.\n *\n * For more information, refer to the [KendoReact Droppable]({% slug droppable_drag-and-drop %}) article.\n *\n * @param ref - The `ref` of the HTML Element or React Component which will enable the `droppable` functionality.\n * @param callbacks - A collection of callbacks, called by the `useDroppable` hook when a specific action occurs.\n */\nexport function useDroppable(ref, callbacks) {\n if (callbacks === void 0) { callbacks = {\n onDragEnter: noop,\n onDragOver: noop,\n onDragLeave: noop,\n onDrop: noop\n }; }\n var _a = callbacks.onDragEnter, onDragEnter = _a === void 0 ? noop : _a, _b = callbacks.onDragOver, onDragOver = _b === void 0 ? noop : _b, _c = callbacks.onDragLeave, onDragLeave = _c === void 0 ? noop : _c, _d = callbacks.onDrop, onDrop = _d === void 0 ? noop : _d;\n var _e = useInheritedState(DropContext), setDrop = _e[1];\n var _f = React.useContext(DropsContext), registerDrop = _f[1], deregisterDrop = _f[2];\n var getElement = React.useCallback(function () { return ref.current && ref.current.element\n ? ref.current.element\n : ref.current; }, [ref]);\n var target = React.useRef(null);\n React.useImperativeHandle(target, function () { return ({\n element: getElement(),\n onDragEnter: handleDragEnter,\n onDragOver: handleDragOver,\n onDragLeave: handleDragLeave,\n onDrop: handleDrop,\n data: ref.current\n }); });\n var handleDragEnter = React.useCallback(function (event) {\n setDrop(target, { target: ref.current, event: event });\n onDragEnter(event);\n }, [setDrop, ref, onDragEnter]);\n var handleDragOver = React.useCallback(function (event) {\n onDragOver(event);\n }, [onDragOver]);\n var handleDragLeave = React.useCallback(function (event) {\n setDrop(null, { target: ref.current, event: event });\n onDragLeave(event);\n }, [setDrop, ref, onDragLeave]);\n var handleDrop = React.useCallback(function (event) {\n setDrop(null, { target: ref.current, event: event });\n onDrop(event);\n }, [setDrop, ref, onDrop]);\n var register = React.useCallback(function () {\n registerDrop(target);\n return function () {\n deregisterDrop(target);\n };\n }, [deregisterDrop, registerDrop]);\n React.useLayoutEffect(register, [register]);\n}\n;\n","import * as React from 'react';\nimport { useDroppable } from './hooks';\n/**\n * Represents the KendoReact Droppable component.\n *\n * Accepts properties of type [DroppableProps]({% slug api_common_droppableprops %}),\n * and returns an object of type [DroppableHandle]({% slug api_common_droppablehandle %}) when the `ref` is obtained.\n */\nexport var Droppable = React.forwardRef(function (props, ref) {\n var childRef = React.useRef(null);\n var target = React.useRef(null);\n var getElement = React.useCallback(function () { return childRef.current && childRef.current.element\n ? childRef.current.element\n : childRef.current; }, [childRef]);\n React.useImperativeHandle(target, function () { return ({ element: getElement() || undefined }); });\n React.useImperativeHandle(ref, function () { return target.current; });\n React.useImperativeHandle(props.childRef, function () { return childRef.current; });\n var handleDragEnter = React.useCallback(function (event) {\n if (!props.onDragEnter) {\n return;\n }\n props.onDragEnter({\n element: getElement(),\n target: target.current,\n event: event\n });\n }, [props.onDragEnter, getElement]);\n var handleDragOver = React.useCallback(function (event) {\n if (!props.onDragOver) {\n return;\n }\n props.onDragOver({\n element: getElement(),\n target: target.current,\n event: event\n });\n }, [getElement, props.onDragOver]);\n var handleDragLeave = React.useCallback(function (event) {\n if (!props.onDragLeave) {\n return;\n }\n props.onDragLeave({\n element: getElement(),\n target: target.current,\n event: event\n });\n }, [props.onDragLeave, getElement]);\n var handleDrop = React.useCallback(function (event) {\n if (!props.onDrop) {\n return;\n }\n props.onDrop({\n element: getElement(),\n target: target.current,\n event: event\n });\n }, [props.onDrop, getElement]);\n useDroppable(childRef, {\n onDragEnter: handleDragEnter,\n onDragOver: handleDragOver,\n onDragLeave: handleDragLeave,\n onDrop: handleDrop\n });\n return props.children\n ? (React.cloneElement(React.Children.only(props.children), { ref: childRef }))\n : null;\n});\nDroppable.displayName = 'KendoReactDroppable';\n","function isEqual(first, second) {\n return (first === second) || (Number.isNaN(first) && Number.isNaN(second));\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n/**\n * @hidden\n */\nexport function memoizeOne(resultFn, isEqualFn) {\n if (isEqualFn === void 0) { isEqualFn = areInputsEqual; }\n var cache = null;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (cache && cache.lastThis === this && isEqualFn(newArgs, cache.lastArgs)) {\n return cache.lastResult;\n }\n var lastResult = resultFn.apply(this, newArgs);\n cache = {\n lastResult: lastResult,\n lastArgs: newArgs,\n lastThis: this\n };\n return lastResult;\n }\n memoized.clear = function clear() {\n cache = null;\n };\n return memoized;\n}\n","/**\n * @hidden\n */\nexport var FOCUSABLE_ELEMENTS = [\n 'input:not([disabled]):not([type=hidden])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'button:not([disabled])',\n 'a[href]',\n 'area[href]',\n 'summary',\n 'iframe',\n 'object',\n 'embed',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]'\n];\n/**\n * Represents the [KendoReact Navigation functionality]({% slug overview_navigation %}).\n * It handles the navigation through a collection of DOM elements.\n */\nvar Navigation = /** @class */ (function () {\n function Navigation(options) {\n var _this = this;\n /**\n * @hidden\n */\n this.rovingTabIndex = true;\n /**\n * @hidden\n */\n this.update = function () { };\n this.focusNextIndex = function (target, indexDiff) {\n var all = _this.elements;\n var index = all.indexOf(target) + indexDiff;\n index = index < 0 ? all.length - 1 : index;\n var next = all[index % all.length];\n _this.focusElement(next, target);\n return next;\n };\n this.tabIndex = options.tabIndex || 0;\n this.root = options.root;\n this.selectors = options.selectors;\n this.focusOptions = options.focusOptions || { preventScroll: true };\n this.rovingTabIndex = options.rovingTabIndex !== undefined ? options.rovingTabIndex : true;\n this.mouseEvents = options.mouseEvents || {};\n this.keyboardEvents = options.keyboardEvents || {};\n }\n Object.defineProperty(Navigation.prototype, \"elements\", {\n /**\n * Returns the collection of DOM elements which the module will navigate in.\n */\n get: function () {\n return this.root.current ? Array.from(this.root.current.querySelectorAll(this.selectors.join(','))) : [];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Navigation.prototype, \"first\", {\n /**\n * Returns the first navigation DOM element.\n */\n get: function () {\n return (this.root.current && this.root.current.querySelector(this.selectors.join(','))) || null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Navigation.prototype, \"last\", {\n /**\n * Returns the last navigation DOM element.\n */\n get: function () {\n var all = this.elements;\n return all[all.length - 1] || null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Navigation.prototype, \"current\", {\n /**\n * Returns the focused DOM element from the navigation collection of DOM elements.\n */\n get: function () {\n return this.elements.find(function (el) { return el.matches(':focus'); }) || null;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Focuses the next element from the navigation collection of DOM elements.\n */\n Navigation.prototype.focusNext = function (target) {\n return this.focusNextIndex(target, 1);\n };\n /**\n * Focuses the previous element from the navigation collection of DOM elements.\n */\n Navigation.prototype.focusPrevious = function (target) {\n return this.focusNextIndex(target, -1);\n };\n /**\n * The keyboard events handler.\n */\n Navigation.prototype.triggerKeyboardEvent = function (ev, options) {\n var target = ev.target instanceof Element && ev.target.closest(this.selectors.join(','));\n var key = ev.key === ' ' ? 'Space' : ev.key;\n var eventType = ev.nativeEvent.type;\n if (target && this.keyboardEvents[eventType][key]) {\n this.keyboardEvents[eventType][key].call(undefined, target, this, ev, options);\n }\n };\n /**\n * The mouse events handler.\n */\n Navigation.prototype.triggerMouseEvent = function (ev) {\n var target = ev.target instanceof Element && ev.target.closest(this.selectors.join(','));\n var eventType = ev.nativeEvent.type;\n if (target) {\n this.mouseEvents[eventType].call(undefined, target, this, ev);\n }\n };\n /**\n * Focuses the passed element from the navigation collection of DOM elements.\n */\n Navigation.prototype.focusElement = function (element, previous) {\n if (element) {\n if (previous) {\n if (this.rovingTabIndex) {\n previous.removeAttribute('tabindex');\n }\n previous.classList.remove('k-focus');\n }\n if (this.rovingTabIndex) {\n element.setAttribute('tabindex', String(this.tabIndex));\n }\n element.focus(this.focusOptions);\n }\n };\n return Navigation;\n}());\nexport { Navigation };\n;\n","/**\n * @hidden\n */\nexport var noop = function () { };\n","import { BrowserSupportService } from './browser-support.service';\nimport { canUseDOM } from './canUseDOM';\n/**\n * @hidden\n */\nexport var getScrollbarWidth = function () {\n if (!canUseDOM || !document.body) {\n return false;\n }\n var scrollbarWidth = new BrowserSupportService().scrollbarWidth;\n return scrollbarWidth;\n};\n/**\n * @hidden\n */\nexport var setScrollbarWidth = function () {\n if (!canUseDOM || !document.body) {\n return false;\n }\n var scrollbarWidth = new BrowserSupportService().scrollbarWidth;\n document.body.style.setProperty('--kendo-scrollbar-width', \"\".concat(scrollbarWidth, \"px\"));\n};\n","/** @hidden */\nexport var kendoThemeMaps = {\n sizeMap: {\n small: 'sm',\n medium: 'md',\n large: 'lg'\n },\n roundedMap: {\n small: 'sm',\n medium: 'md',\n large: 'lg'\n },\n orientationMap: {\n vertical: 'vstack',\n horizontal: 'hstack'\n }\n};\n","import { getNestedValue } from './misc';\n/**\n * @hidden\n */\nvar TreeFieldsService = /** @class */ (function () {\n function TreeFieldsService(treeViewProps) {\n this.expandField = treeViewProps.expandField;\n this.selectField = treeViewProps.selectField;\n this.hasChildrenField = treeViewProps.hasChildrenField;\n this.childrenField = treeViewProps.childrenField;\n this.textField = treeViewProps.textField;\n this.disableField = treeViewProps.disableField;\n this.checkField = treeViewProps.checkField;\n this.checkIndeterminateField = treeViewProps.checkIndeterminateField;\n this.focusIdField = treeViewProps.focusIdField;\n }\n TreeFieldsService.prototype.expanded = function (item) {\n return getNestedValue(this.expandField, item);\n };\n TreeFieldsService.prototype.selected = function (item) {\n return getNestedValue(this.selectField, item);\n };\n TreeFieldsService.prototype.text = function (item) {\n return getNestedValue(this.textField, item);\n };\n TreeFieldsService.prototype.disabled = function (item) {\n return getNestedValue(this.disableField, item);\n };\n TreeFieldsService.prototype.hasChildren = function (item) {\n return getNestedValue(this.hasChildrenField, item);\n };\n TreeFieldsService.prototype.children = function (item) {\n var children = getNestedValue(this.childrenField, item);\n return children ? children : [];\n };\n TreeFieldsService.prototype.checked = function (item) {\n return getNestedValue(this.checkField, item);\n };\n TreeFieldsService.prototype.checkIndeterminate = function (item) {\n return getNestedValue(this.checkIndeterminateField, item);\n };\n TreeFieldsService.prototype.focusId = function (item) {\n return this.focusIdField && getNestedValue(this.focusIdField, item);\n };\n TreeFieldsService.prototype.getChildrenField = function () {\n return this.childrenField;\n };\n return TreeFieldsService;\n}());\nexport { TreeFieldsService };\n","var PROPS_COUNT_LIMIT = 50000;\n/**\n * @hidden\n */\n// An alternative is to use array.sort() and\n// implement a binary search function.\nvar SortedPublicItemIds = /** @class */ (function () {\n function SortedPublicItemIds() {\n this.objects = [];\n }\n SortedPublicItemIds.prototype.init = function (publicItemIds) {\n var currentObj;\n for (var i = 0; i < publicItemIds.length; i++) {\n if (i % PROPS_COUNT_LIMIT === 0) {\n currentObj = {};\n this.objects.push(currentObj);\n }\n currentObj[publicItemIds[i]] = true;\n }\n };\n SortedPublicItemIds.prototype.hasId = function (publicItemId) {\n return this.objects.some(function (obj) { return obj[publicItemId]; });\n };\n return SortedPublicItemIds;\n}());\nexport { SortedPublicItemIds };\n","/**\n * @hidden\n */\nexport var EMPTY_ID = '';\n/**\n * @hidden\n */\nexport var ZERO_LEVEL_ZERO_NODE_ID = '0';\n/**\n * @hidden\n */\nexport var SEPARATOR = '_';\n/**\n * @hidden\n */\nexport function getItemById(itemId, items, childrenField) {\n if (isIdZeroLevel(itemId)) {\n return items[Number(itemId)];\n }\n else {\n var rootParentItem = items[Number(getRootParentId(itemId))];\n var subItems = (rootParentItem && rootParentItem[childrenField]) || [];\n return subItems.length ?\n getItemById(getIdWithoutRootParentId(itemId), subItems, childrenField) : undefined;\n }\n}\n/**\n * @hidden\n */\nexport function getRootParentId(itemId) {\n return isIdEmptyOrZeroLevel(itemId) ? itemId : itemId.split(SEPARATOR)[0];\n}\n/**\n * @hidden\n */\nexport function getIdWithoutRootParentId(itemId) {\n if (isIdEmptyOrZeroLevel(itemId)) {\n return itemId;\n }\n else {\n var firstSeparatorIndex = itemId.indexOf(SEPARATOR);\n return itemId.substring(firstSeparatorIndex + 1);\n }\n}\n/**\n * @hidden\n */\nexport function getFirstChildId(itemId) {\n return createId('0', itemId);\n}\n/**\n * @hidden\n */\nexport function createId(childId, parentId) {\n childId = childId.toString();\n return parentId ? parentId + SEPARATOR + childId : childId;\n}\n/**\n * @hidden\n */\nexport function getDirectParentId(itemId) {\n var lastSeparatorIndex = itemId.lastIndexOf(SEPARATOR);\n return lastSeparatorIndex < 0 ? EMPTY_ID : itemId.substring(0, lastSeparatorIndex);\n}\n/**\n * @hidden\n */\nexport function isIdEmptyOrZeroLevel(itemId) {\n return itemId === EMPTY_ID || itemId.indexOf(SEPARATOR) < 0;\n}\n/**\n * @hidden\n */\nexport function isIdZeroLevel(itemId) {\n return itemId !== EMPTY_ID && itemId.indexOf(SEPARATOR) < 0;\n}\n/**\n * @hidden\n */\nexport function getAllShortIds(itemId) {\n return itemId.split(SEPARATOR);\n}\n/**\n * @hidden\n */\nexport function getShortId(itemId) {\n var lastSeparatorIndex = itemId.lastIndexOf(SEPARATOR);\n return lastSeparatorIndex < 0 ? itemId : itemId.substring(lastSeparatorIndex + 1);\n}\n/**\n * @hidden\n */\nexport function isItemFirstFromSiblings(itemId) {\n return getShortId(itemId) === ZERO_LEVEL_ZERO_NODE_ID;\n}\n/**\n * @hidden\n */\nexport function getDecrementedItemIdAfterRemoval(removedItemId, itemId) {\n var preservedItemId = itemId;\n removedItemId = 'r' + SEPARATOR + removedItemId;\n itemId = 'r' + SEPARATOR + itemId;\n var itemSharedPath = getDirectParentId(removedItemId) + SEPARATOR;\n if (itemId.startsWith(itemSharedPath)) {\n var itemNotSharedPath = itemId.substring(itemSharedPath.length);\n if (itemNotSharedPath) {\n var siblingShortId = getRootParentId(itemNotSharedPath);\n if (Number(getShortId(removedItemId)) < Number(siblingShortId)) {\n var decrementedId = itemSharedPath +\n (Number(siblingShortId) - 1).toString() +\n itemNotSharedPath.substring(siblingShortId.length);\n return getIdWithoutRootParentId(decrementedId);\n }\n }\n }\n return preservedItemId;\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { EMPTY_ID, isIdZeroLevel, createId, getRootParentId, getIdWithoutRootParentId, getAllShortIds } from './itemIdUtils';\nimport { SortedPublicItemIds } from './SortedPublicItemIds';\nimport { getNestedValue } from './misc';\n/**\n * @hidden\n */\nexport function hasChildren(item, childrenField) {\n var children = getNestedValue(childrenField, item);\n return Boolean(children && children.length);\n}\n/**\n * @hidden\n */\nexport function isItemExpandedAndWithChildren(item, fieldsSvc) {\n return fieldsSvc.expanded(item) && hasChildren(item, fieldsSvc.getChildrenField());\n}\n/**\n * @hidden\n */\nexport function resolveItemId(publicId, idField, items, childrenField) {\n var resolvedIds = resolveItemsIds([publicId], idField, items, childrenField);\n return resolvedIds.length ? resolvedIds[0] : undefined;\n}\n/**\n * @hidden\n */\nexport function resolveItemsIds(publicIds, idField, items, childrenField) {\n var result = [];\n var sortedIds = new SortedPublicItemIds();\n sortedIds.init(publicIds);\n resolveItemsIdsHelper(sortedIds, idField, items, EMPTY_ID, result, childrenField);\n return result;\n}\n/**\n * @hidden\n */\nexport function updateItem(items, itemId, update, cloneField, childrenField) {\n var _a;\n var itemIndex = Number(getRootParentId(itemId));\n if (itemIndex >= items.length) {\n return items;\n }\n var result = items;\n var item = items[itemIndex];\n // Clone the item before updating it.\n if (!item[cloneField]) {\n result = items.slice();\n item = result[itemIndex] = Object.assign({}, item, (_a = {}, _a[cloneField] = true, _a));\n }\n // Directly update the item.\n if (isIdZeroLevel(itemId)) {\n update(item);\n }\n else if (item[childrenField]) {\n item[childrenField] = updateItem(item[childrenField], getIdWithoutRootParentId(itemId), update, cloneField, childrenField);\n }\n return result;\n}\n/**\n * @hidden\n */\nexport function isEnabledAndAllParentsEnabled(itemId, items, fieldsSvc) {\n var ids = getAllShortIds(itemId);\n var currentItems = items;\n for (var i = 0; i < ids.length; i++) {\n var currentItem = currentItems[Number(ids[i])];\n if (fieldsSvc.disabled(currentItem)) {\n return false;\n }\n else {\n currentItems = currentItem[fieldsSvc.getChildrenField()];\n }\n }\n return true;\n}\n/**\n * @hidden\n */\nexport function getAllDirectIndirectChildrenIds(item, itemId, childrenField, idField) {\n return idField ? getChildrenPublicIds(item) : getChildrenHierarchicalIndices(item, itemId);\n function getChildrenHierarchicalIndices(startItem, startItemId) {\n var result = [];\n var children = startItem[childrenField] || [];\n for (var i = 0; i < children.length; i++) {\n var id = createId(i, startItemId);\n result.push(id);\n result = result.concat(getChildrenHierarchicalIndices(children[i], id));\n }\n return result;\n }\n function getChildrenPublicIds(startItem) {\n var result = [];\n var children = startItem[childrenField] || [];\n for (var i = 0; i < children.length; i++) {\n result.push(getNestedValue(idField, children[i]));\n result = result.concat(getChildrenPublicIds(children[i]));\n }\n return result;\n }\n}\n/**\n * @hidden\n */\nexport function areAllDirectChildrenChecked(item, itemId, idField, childrenField, check) {\n var children = item[childrenField] || [];\n return children.every(function (child, index) {\n return check.indexOf(idField ? getNestedValue(idField, child) : createId(index, itemId)) > -1;\n });\n}\n/**\n * @hidden\n */\nexport function getAllParents(itemId, childrenField, items) {\n var result = [];\n var ids = getAllShortIds(itemId);\n var currentItems = items;\n for (var i = 0; i < ids.length - 1; i++) {\n if (!currentItems) {\n break;\n }\n var currentItem = currentItems[Number(ids[i])];\n result.push(currentItem);\n currentItems = currentItem[childrenField];\n }\n return result;\n}\n/**\n * @hidden\n */\nexport function removeItem(itemId, childrenField, items) {\n var result = items.slice();\n if (isIdZeroLevel(itemId)) {\n result.splice(Number(itemId), 1);\n }\n else {\n var rootParentIndex = Number(getRootParentId(itemId));\n var rootParent = result[rootParentIndex] = __assign({}, result[rootParentIndex]);\n rootParent[childrenField] = removeItem(getIdWithoutRootParentId(itemId), childrenField, rootParent[childrenField]);\n }\n return result;\n}\n/**\n * @hidden\n */\nexport function addItem(item, operation, childrenField, targetItemId, items) {\n var result = items.slice();\n if (isIdZeroLevel(targetItemId)) {\n if (operation === 'child') {\n var targetItem = result[Number(targetItemId)] = __assign({}, result[Number(targetItemId)]);\n if (targetItem[childrenField]) {\n targetItem[childrenField] = targetItem[childrenField].slice();\n targetItem[childrenField].push(item);\n }\n else {\n targetItem[childrenField] = [item];\n }\n }\n else {\n result.splice(Number(targetItemId) + (operation === 'after' ? 1 : 0), 0, item);\n }\n }\n else {\n var rootParentIndex = Number(getRootParentId(targetItemId));\n var rootParent = result[rootParentIndex] = __assign({}, result[rootParentIndex]);\n rootParent[childrenField] = addItem(item, operation, childrenField, getIdWithoutRootParentId(targetItemId), rootParent[childrenField]);\n }\n return result;\n}\nfunction resolveItemsIdsHelper(publicItemIds, idField, items, parentItemId, resolvedIds, childrenField) {\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n var id = createId(i, parentItemId);\n if (publicItemIds.hasId(getNestedValue(idField, item))) {\n resolvedIds.push(id);\n }\n if (hasChildren(item, childrenField)) {\n resolveItemsIdsHelper(publicItemIds, idField, getNestedValue(childrenField, item), id, resolvedIds, childrenField);\n }\n }\n}\n","/**\n * @hidden\n */\nexport function getNestedValue(fieldName, dataItem) {\n var path = (fieldName || '').split('.');\n var data = dataItem;\n path.forEach(function (p) {\n data = data ? data[p] : undefined;\n });\n return data;\n}\n/**\n * @hidden\n */\nexport function isArray(operation) {\n return operation.length !== undefined;\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n// Gets and sets the children. Returns the children or the re-created item with the new children.\nfunction children(item, subItemsField, subItems) {\n var _a;\n if (subItems) {\n return __assign(__assign({}, item), (_a = {}, _a[subItemsField] = subItems.length ? __spreadArray([], subItems, true) : undefined, _a));\n }\n else {\n return item && item[subItemsField] ? __spreadArray([], item[subItemsField], true) : [];\n }\n}\nfunction mapItem(dataItem, subItemsField, callbackfn) {\n if (dataItem[subItemsField]) {\n var subItems = children(dataItem, subItemsField).map(function (child) { return mapItem(child, subItemsField, callbackfn); });\n return callbackfn(children(dataItem, subItemsField, subItems));\n }\n return callbackfn(dataItem);\n}\n/**\n * Creates a new array with the results of calling the provided callback function\n * on every element in the provided data tree.\n *\n * @param {any[]} tree - The data tree.\n * @param {string} subItemsField - The field which points to the subitems collection of each data item.\n * @param {(value: any) => any} callback - The callback function.\n * @returns {any[]} - The new data tree.\n */\nexport var mapTree = function (tree, subItemsField, callback) {\n return __spreadArray([], tree.map(function (item) { return mapItem(item, subItemsField, callback); }), true);\n};\n/**\n * Creates a new array with the results of calling the provided callback function\n * on the element which match the `level` in the provided data tree.\n *\n * @param {any[]} tree - The data tree.\n * @param {number[]} level - An array of indexes of each parent and current item in the data tree.\n * @param {string} subItemsField - The field which points to the subitems collection of each data item.\n * @param {(value: any) => any} callback - The callback function.\n * @returns {any[]} - The new data tree.\n */\nexport var mapTreeItem = function (tree, level, subItemsField, callback) {\n var curData = tree;\n var parentNodes = [];\n for (var i = 0; i < level.length; i++) {\n curData = curData[level[i]];\n curData = Array.isArray(curData) ? curData : curData[subItemsField];\n parentNodes.push(curData);\n }\n var parent = parentNodes.length > 1 ? parentNodes[parentNodes.length - 2] : tree;\n var newItemIndex = level[level.length - 1];\n var newItem = callback(parent[newItemIndex]);\n parent.splice(newItemIndex, 1, newItem);\n};\n/**\n * Similar to the `Object.assign` function. Additionally, creates a new array for the subitems.\n *\n * @param {object} item - The source data item.\n * @param {string} subItemsField - The field which points to the subitems collection of each data item.\n * @param {object} propsToExtend - The props with which the source data item will be extended.\n * @returns {object} - The target data item.\n */\nexport var extendDataItem = function (item, subItemsField, propsToExtend) {\n var _a;\n return Object.assign({}, item, item[subItemsField] ? (_a = {}, _a[subItemsField] = item[subItemsField].slice(), _a) : {}, propsToExtend || {});\n};\n/**\n * Returns the data item path in the tree based on the level parameter.\n *\n * @param {any[]} tree - The data tree.\n * @param {number[]} level - The level of the target tree item.\n * @param {string} subItemsField - The field which points to the subitems collection of each data item.\n * @returns {any[]} - The path of the data item.\n */\nexport var getItemPath = function (tree, level, subItemsField) {\n var nodes = [];\n var itemLevel = __spreadArray([], level, true);\n if (itemLevel.length) {\n var element = tree[itemLevel.shift() || 0];\n nodes.push(element);\n while (itemLevel.length && subItemsField) {\n element = element[subItemsField][itemLevel.shift() || 0];\n nodes.push(element);\n }\n }\n return nodes;\n};\n","import * as licensing from '@progress/kendo-licensing';\nvar allowed = ['telerik.com', 'progress.com', 'stackblitz.io', 'csb.app'];\n/**\n * @hidden\n */\nexport function validatePackage(packageMetadata) {\n if (typeof licensing !== 'undefined') {\n licensing.validatePackage(packageMetadata);\n }\n else {\n var message = \"License activation failed for \".concat(packageMetadata.name, \"\\n\");\n message += 'The @progress/kendo-licensing script is not loaded.\\n';\n message += \"See \".concat(packageMetadata.licensingDocsUrl, \" for more information.\\n\");\n console.warn(message);\n }\n}\n/**\n * @hidden\n */\nexport function shouldShowValidationUI(packageMetadata) {\n var skip = allowed.some(function (hostname) { var _a; return (_a = globalThis.document) === null || _a === void 0 ? void 0 : _a.location.hostname.endsWith(hostname); });\n return !skip && !(licensing === null || licensing === void 0 ? void 0 : licensing.validatePackage(packageMetadata));\n}\n","/**\n * @hidden\n */\nvar ColumnResize = /** @class */ (function () {\n function ColumnResize(triggerResize) {\n var _this = this;\n // Typings. `col` and `colgroup` do not differ, both represnt a `HTMLTableColElement`.\n // Implemented as `any`.\n this.columns = [];\n /**\n * The settings for resizing the Grid.\n */\n this.resizable = false;\n this.isRtl = false;\n this.setIsRtl = function (isRtl) {\n _this.isRtl = isRtl;\n };\n this.onResize = triggerResize;\n this.dragHandler = this.dragHandler.bind(this);\n }\n ColumnResize.prototype.dragHandler = function (event, column, dragCue, end) {\n var e = event.originalEvent;\n if (!end) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n var tdElement = dragCue.parentElement;\n if (!tdElement || !tdElement.parentElement) {\n return;\n }\n var oldWidth = tdElement.clientWidth;\n var newWidth;\n if (this.isRtl) {\n newWidth = (dragCue.getBoundingClientRect().right - (dragCue.offsetWidth / 2)) - event.clientX;\n newWidth += oldWidth;\n }\n else {\n newWidth = oldWidth + event.clientX - dragCue.getBoundingClientRect().left - (dragCue.offsetWidth / 2);\n }\n if (!end && Math.abs(newWidth - oldWidth) < 1) {\n return;\n }\n this.setWidths(column, Math.floor(newWidth) / oldWidth);\n var index = this.columns.filter(function (c) { return !c.children.length; }).indexOf(column);\n this.onResize(index, oldWidth, newWidth, e, end);\n };\n ColumnResize.prototype.setWidths = function (column, coef) {\n var indexInOriginal = this.columns.indexOf(column);\n var toAdjust = [];\n var more = column.children.length;\n for (var i = indexInOriginal + 1; more > 0 && i < this.columns.length; i++, more--) {\n var cc = this.columns[i];\n if (!cc.children.length) {\n toAdjust.push(cc);\n }\n else {\n more += cc.children.length;\n }\n }\n if (toAdjust.length === 0) {\n toAdjust.push(column);\n }\n toAdjust.forEach(function (colToAdjust) {\n var targetWidth = colToAdjust.width ? parseFloat(colToAdjust.width.toString()) * coef : 0;\n var min = colToAdjust.minResizableWidth === undefined ? 10 : colToAdjust.minResizableWidth;\n if (targetWidth < min) {\n targetWidth = min;\n }\n colToAdjust.width = Math.floor(targetWidth);\n });\n this.updateColElements(toAdjust);\n };\n ColumnResize.prototype.updateColElements = function (affectedColumns) {\n var columns = this.columns.filter(function (c) { return !c.children.length; });\n var difference = 1e-10;\n for (var i = 0; i < affectedColumns.length; i++) {\n var colIndex = columns.indexOf(affectedColumns[i]);\n var currentColumnFloatWidth = parseFloat((affectedColumns[i].width || 0).toString());\n difference += currentColumnFloatWidth - Math.floor(currentColumnFloatWidth);\n var currentWidth = Math.floor(currentColumnFloatWidth) + Math.floor(difference);\n difference -= Math.floor(difference);\n this.setColWidth(this.colGroupMain && this.colGroupMain.children[colIndex], currentWidth);\n this.setColWidth(this.colGroupHeader && this.colGroupHeader.children[colIndex], currentWidth);\n this.setColWidth(this.colGroupFooter && this.colGroupFooter.children[colIndex], currentWidth);\n }\n };\n ColumnResize.prototype.setColWidth = function (col, width) {\n if (col) {\n col.style.width = width + 'px';\n }\n };\n return ColumnResize;\n}());\nexport { ColumnResize };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { Draggable } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar ColumnResizer = /** @class */ (function (_super) {\n __extends(ColumnResizer, _super);\n function ColumnResizer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.draggable = null;\n _this.isDragged = false;\n /**\n * @hidden\n */\n _this.onDrag = function (data) {\n _this.isDragged = true;\n var element = _this.draggable && _this.draggable.element;\n if (element) {\n _this.props.resize(data.event, element, false);\n }\n };\n /**\n * @hidden\n */\n _this.onRelease = function (data) {\n if (!_this.isDragged) {\n return;\n }\n var element = _this.draggable && _this.draggable.element;\n if (element) {\n _this.props.resize(data.event, element, true);\n }\n _this.isDragged = false;\n };\n /**\n * @hidden\n */\n _this.onDoubleClick = function (event) {\n if (_this.isDragged) {\n return;\n }\n var element = _this.draggable && _this.draggable.element;\n if (element && _this.props.autofit) {\n _this.props.autofit(event, element);\n }\n };\n return _this;\n }\n ColumnResizer.prototype.render = function () {\n var _this = this;\n return (React.createElement(Draggable, { onPress: function (e) { e.event.originalEvent.stopPropagation(); }, onDrag: this.onDrag, onRelease: this.onRelease, ref: function (component) { _this.draggable = component; } },\n React.createElement(\"span\", { className: \"k-column-resizer\", style: { touchAction: 'none' }, draggable: false, onDoubleClick: this.onDoubleClick })));\n };\n return ColumnResizer;\n}(React.Component));\nexport { ColumnResizer };\n","import { getIndex } from './../header/';\n/**\n * @hidden\n */\nvar CommonDragLogic = /** @class */ (function () {\n function CommonDragLogic(columnReorder, groupReorder, columnToGroup) {\n var _this = this;\n this.columns = [];\n this.reorderable = false;\n this.groupable = false;\n this.startColumn = -1;\n this.startGroup = -1;\n this.currentColumn = -1;\n this.currentGroup = -1;\n this.dropElementClue = null;\n this.dragElementClue = null;\n this.groupPanelDivElement = null;\n this.refGroupPanelDiv = function (e) {\n _this.groupPanelDivElement = e;\n };\n this.refDropElementClue = function (e) {\n _this.dropElementClue = e;\n };\n this.refDragElementClue = function (e) {\n _this.dragElementClue = e;\n };\n this.pressHandler = function (event, element) {\n var startColumn = _this.getColumnIndex(event, element);\n _this.startGroup = _this.getGroupIndex(event);\n if (startColumn >= 0) {\n var col = _this.columns[startColumn];\n if (col.reorderable && _this.reorderable || col.groupable && _this.groupable) {\n _this.startColumn = startColumn;\n }\n }\n };\n this.dragHandler = function (event, element) {\n if (!event.isTouch) {\n event.originalEvent.preventDefault();\n }\n event.originalEvent.stopPropagation();\n if (_this.startColumn === -1 && _this.startGroup === -1) {\n return;\n }\n _this.currentColumn = _this.getColumnIndex(event, element);\n _this.currentGroup = _this.getGroupIndex(event);\n if (_this.groupPanelDivElement && _this.startGroup >= 0) {\n _this.currentGroup = Math.min(_this.currentGroup, _this.groupPanelDivElement.children.length - 2);\n }\n var invalidIndex = !_this.isValid();\n if (invalidIndex) {\n _this.currentColumn = -1;\n _this.currentGroup = -1;\n }\n var targetElement = (_this.currentColumn >= 0) ?\n element.children[_this.columns[_this.currentColumn].index] :\n _this.groupPanelDivElement && _this.groupPanelDivElement.children[_this.currentGroup];\n _this.updateDragElementClue(event, element, targetElement, invalidIndex);\n _this.updateDropElementClue(event, element, targetElement, invalidIndex);\n };\n this.releaseHandler = function (event) {\n var prevColumnIndex = _this.startColumn;\n var nextColumnIndex = _this.currentColumn;\n var prevGroupIndex = _this.startGroup;\n var nextGroupIndex = _this.currentGroup;\n if (_this.dropElementClue) {\n _this.dropElementClue.setState({ visible: false });\n }\n if (_this.dragElementClue) {\n _this.dragElementClue.setState({ visible: false });\n }\n var isValid = _this.isValid();\n _this.startColumn = _this.startGroup = _this.currentColumn = _this.currentGroup = -1;\n if (!isValid) {\n return;\n }\n if (prevColumnIndex >= 0 && nextColumnIndex >= 0) {\n _this.columnReorder(prevColumnIndex, nextColumnIndex, event.originalEvent);\n }\n else if (prevGroupIndex >= 0 && nextGroupIndex >= 0) {\n _this.groupReorder(prevGroupIndex, nextGroupIndex, event.originalEvent);\n }\n else if (prevColumnIndex >= 0 && nextGroupIndex >= 0) {\n _this.columnToGroup(prevColumnIndex, nextGroupIndex, event.originalEvent);\n }\n };\n this.columnReorder = columnReorder;\n this.groupReorder = groupReorder;\n this.columnToGroup = columnToGroup;\n }\n CommonDragLogic.prototype.getColumnIndex = function (event, parent) {\n if (!parent || (parent.parentElement === this.groupPanelDivElement)) {\n return -1;\n }\n var index = getIndex(event, parent);\n if (index === -1) {\n return -1;\n }\n var _loop_1 = function (i) {\n if (parent.parentNode.children[i] === parent) {\n return { value: this_1.columns.findIndex(function (c) { return ((c.index === index) && (c.depth === i)); }) };\n }\n };\n var this_1 = this;\n for (var i = 0; i < parent.parentNode.children.length; i++) {\n var state_1 = _loop_1(i);\n if (typeof state_1 === \"object\")\n return state_1.value;\n }\n return -1;\n };\n CommonDragLogic.prototype.getGroupIndex = function (event) {\n return getIndex(event, this.groupPanelDivElement);\n };\n CommonDragLogic.prototype.isValid = function () {\n if (this.startGroup >= 0) {\n // group can be moved into group only\n return this.currentGroup >= 0 && this.currentGroup !== this.startGroup;\n }\n if (this.startColumn === -1) {\n return false;\n }\n if (this.currentGroup >= 0) {\n // column to group is possible\n return this.columns[this.startColumn].groupable === true && this.groupable === true;\n }\n // reorder is possible\n return this.reorderable === true &&\n this.currentColumn >= 0 &&\n this.currentColumn !== this.startColumn &&\n this.columns[this.startColumn].reorderable === true &&\n this.columns[this.currentColumn].parentIndex === this.columns[this.startColumn].parentIndex;\n };\n CommonDragLogic.prototype.updateDragElementClue = function (event, element, targetElement, invalidIndex) {\n if (!this.dragElementClue) {\n return;\n }\n var innerText = this.startColumn >= 0 ?\n element.children[this.columns[this.startColumn].index].innerText :\n element.innerText;\n this.dragElementClue.setState({\n visible: true,\n top: (event.pageY + 10),\n left: event.pageX,\n innerText: innerText,\n status: (invalidIndex || !targetElement) ? 'k-i-cancel' : 'k-i-plus'\n });\n };\n CommonDragLogic.prototype.updateDropElementClue = function (event, element, targetElement, invalidIndex) {\n if (!this.dropElementClue) {\n return;\n }\n if (invalidIndex || !targetElement) {\n this.dropElementClue.setState({ visible: false });\n return;\n }\n var rect = targetElement.getBoundingClientRect();\n var left = rect.left + event.pageX - event.clientX - 6;\n if (this.currentColumn > this.startColumn || this.currentGroup > this.startGroup && this.startGroup !== -1) {\n left += rect.width;\n }\n var top = rect.top + event.pageY - event.clientY;\n this.dropElementClue.setState({\n visible: true,\n top: top,\n left: left,\n height: (this.currentColumn >= 0) ? element.clientHeight : rect.height\n });\n };\n return CommonDragLogic;\n}());\nexport { CommonDragLogic };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { canUseDOM, IconWrap } from '@progress/kendo-react-common';\nimport { cancelIcon, plusIcon } from '@progress/kendo-svg-icons';\n/**\n * @hidden\n */\nvar DragClue = /** @class */ (function (_super) {\n __extends(DragClue, _super);\n function DragClue(props) {\n var _this = _super.call(this, props) || this;\n _this.elementRef = React.createRef();\n _this.state = {\n visible: false,\n top: 0,\n left: 0,\n innerText: '',\n status: 'k-i-cancel'\n };\n _this.hiddenElementRef = React.createRef();\n return _this;\n }\n Object.defineProperty(DragClue.prototype, \"element\", {\n get: function () {\n return this.elementRef.current;\n },\n enumerable: false,\n configurable: true\n });\n DragClue.prototype.render = function () {\n var hiddenElement = this.hiddenElementRef.current;\n var status = this.state.status;\n var dragClue = this.state.visible && canUseDOM && createPortal((React.createElement(\"div\", { ref: this.elementRef, className: \"k-header k-drag-clue\", style: {\n display: 'block',\n position: 'absolute',\n zIndex: 20000,\n padding: '8px 12px',\n top: this.state.top + 'px',\n left: this.state.left + 'px'\n } },\n React.createElement(IconWrap, { className: 'k-drag-status', name: status, icon: status === 'k-i-cancel' ? cancelIcon : plusIcon }),\n this.state.innerText)), (hiddenElement && hiddenElement.ownerDocument ?\n hiddenElement.ownerDocument.body :\n document.body));\n return (React.createElement(React.Fragment, null,\n dragClue,\n React.createElement(\"div\", { ref: this.hiddenElementRef, style: { display: 'none' } })));\n };\n return DragClue;\n}(React.PureComponent));\nexport { DragClue };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { canUseDOM } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar DropClue = /** @class */ (function (_super) {\n __extends(DropClue, _super);\n function DropClue(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n height: 0,\n visible: false,\n left: 0,\n top: 0\n };\n _this.hiddenElementRef = React.createRef();\n return _this;\n }\n DropClue.prototype.render = function () {\n var hiddenElement = this.hiddenElementRef.current;\n var dropClue = this.state.visible && canUseDOM && createPortal((React.createElement(\"div\", { className: \"k-grouping-dropclue\", style: {\n zIndex: 10000,\n display: 'block',\n top: this.state.top + 'px',\n left: this.state.left + 'px',\n height: this.state.height + 'px'\n } })), (hiddenElement && hiddenElement.ownerDocument ?\n hiddenElement.ownerDocument.body :\n document.body));\n return (React.createElement(React.Fragment, null,\n dropClue,\n React.createElement(\"div\", { ref: this.hiddenElementRef, style: { display: 'none' } })));\n };\n return DropClue;\n}(React.PureComponent));\nexport { DropClue };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport * as React from 'react';\nimport { createFilterComponent } from './FilterComponent';\nimport { DropDownList } from '@progress/kendo-react-dropdowns';\nvar booleanOperator = 'eq';\nvar settings = {\n emptyFilter: { operator: booleanOperator, value: '' },\n inputComponent: function (_props) { return null; },\n operatorComponent: function (props, cellProps) {\n var _a = cellProps.filter, filter = _a === void 0 ? [] : _a, field = cellProps.field;\n var current = filter.find(function (f) { return f.field === field; });\n return (React.createElement(DropDownList, __assign({}, props, { value: props.data.find(function (x) { return x.operator === (current ? current.value : ''); }), onChange: function (e) {\n if (!cellProps.onFilterChange) {\n return;\n }\n var value = e.target.value.operator;\n if (value === '') {\n if (current) {\n cellProps.onFilterChange.call(undefined, {\n filter: filter.filter(function (f) { return f.field !== current.field; }),\n field: field,\n syntheticEvent: e.syntheticEvent\n });\n }\n return;\n }\n var filterResult = current ?\n filter.map(function (f) { return f.field === field ? __assign(__assign({}, current), { value: value }) : f; }) : __spreadArray(__spreadArray([], filter, true), [{ value: value, field: field, operator: booleanOperator }], false);\n cellProps.onFilterChange.call(undefined, {\n filter: filterResult,\n field: field,\n syntheticEvent: e.syntheticEvent\n });\n } })));\n }\n};\n/**\n * @hidden\n */\nvar BooleanFilterCell = /** @class */ (function (_super) {\n __extends(BooleanFilterCell, _super);\n function BooleanFilterCell() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return BooleanFilterCell;\n}(createFilterComponent(settings)));\nexport { BooleanFilterCell };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { createFilterComponent } from './FilterComponent';\nimport { DatePicker } from '@progress/kendo-react-dateinputs';\nimport { DropDownList } from '@progress/kendo-react-dropdowns';\nvar settings = {\n inputComponent: function (props) { return React.createElement(DatePicker, __assign({}, props)); },\n operatorComponent: function (props) { return React.createElement(DropDownList, __assign({}, props)); },\n emptyFilter: { operator: 'eq', value: null }\n};\n/**\n * @hidden\n */\nvar DateFilterCell = /** @class */ (function (_super) {\n __extends(DateFilterCell, _super);\n function DateFilterCell() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return DateFilterCell;\n}(createFilterComponent(settings)));\nexport { DateFilterCell };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport * as React from 'react';\nimport { Button } from '@progress/kendo-react-buttons';\nimport { classNames } from '@progress/kendo-react-common';\nimport { filterClearIcon, filterIcon } from '@progress/kendo-svg-icons';\n/**\n * @hidden\n */\nexport var createFilterComponent = function (settings) {\n var Cell = /** @class */ (function (_super) {\n __extends(FilterComponent, _super);\n function FilterComponent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.filterChange = function (event) {\n if (_this.props.onFilterChange) {\n _this.props.onFilterChange(event);\n }\n };\n _this.inputChange = function (e) {\n var value = e.target.value;\n var _a = _this.props, _b = _a.filter, filter = _b === void 0 ? [] : _b, _c = _a.field, field = _c === void 0 ? '' : _c;\n var existing = _this.findCellFilter();\n var filterResult = existing ?\n filter.map(function (f) { return f.field === field ? __assign(__assign({}, existing), { value: value }) : f; }) : __spreadArray(__spreadArray([], filter, true), [__assign(__assign({}, settings.emptyFilter), { value: value, field: field })], false);\n _this.filterChange({\n filter: filterResult,\n field: field,\n syntheticEvent: e.syntheticEvent\n });\n };\n _this.operatorChange = function (e) {\n var operator = e.target.value.operator;\n var _a = _this.props, _b = _a.filter, filter = _b === void 0 ? [] : _b, _c = _a.field, field = _c === void 0 ? '' : _c;\n var existing = _this.findCellFilter();\n var filterResult = existing ?\n filter.map(function (f) { return f.field === field ? __assign(__assign({}, existing), { operator: operator }) : f; }) : __spreadArray(__spreadArray([], filter, true), [__assign(__assign({}, settings.emptyFilter), { field: field, operator: operator })], false);\n _this.filterChange({\n filter: filterResult,\n field: field,\n syntheticEvent: e.syntheticEvent\n });\n };\n _this.clearButtonClick = function (e) {\n var _a = _this.props, _b = _a.filter, filter = _b === void 0 ? [] : _b, _c = _a.field, field = _c === void 0 ? '' : _c;\n _this.filterChange({\n filter: filter.filter(function (f) { return f.field !== field; }),\n field: field,\n syntheticEvent: e\n });\n };\n _this.findCellFilter = function () {\n var _a = _this.props, _b = _a.filter, filter = _b === void 0 ? [] : _b, field = _a.field;\n return filter.find(function (f) { return f.field === field; });\n };\n return _this;\n }\n FilterComponent.prototype.render = function () {\n var _a;\n var _b = this.props, _c = _b.clearButtonTitle, clearButtonTitle = _c === void 0 ? '' : _c, _d = _b.operators, operators = _d === void 0 ? [] : _d;\n var filter = this.findCellFilter() || __assign(__assign({}, settings.emptyFilter), { operator: '' });\n var operator = filter.operator, value = filter.value;\n var operatorComponentProps = {\n ariaLabel: 'filter',\n value: operators.find(function (item) { return item.operator === operator; }) || null,\n onChange: this.operatorChange,\n className: 'k-dropdown-operator',\n iconClassName: 'k-i-filter',\n svgIcon: filterIcon,\n data: operators,\n textField: 'text',\n popupSettings: { width: '' },\n components: this.props.components\n };\n return (React.createElement(\"div\", { className: \"k-filtercell\" },\n React.createElement(\"span\", null,\n settings.inputComponent({\n value: value,\n onChange: this.inputChange,\n components: this.props.components,\n ariaLabel: this.props.ariaLabel,\n min: this.props.min,\n max: this.props.max\n }),\n React.createElement(\"div\", { className: \"k-filtercell-operator\" },\n settings.operatorComponent(operatorComponentProps, this.props),\n \"\\u00A0\",\n React.createElement(Button, { className: classNames((_a = {},\n _a['k-clear-button-visible'] = (!(value === null || value === '') || operator),\n _a)), title: clearButtonTitle, type: \"button\", onClick: this.clearButtonClick, icon: \"filter-clear\", svgIcon: filterClearIcon, disabled: !(!(value === null || value === '') || operator) })))));\n };\n return FilterComponent;\n }(React.Component));\n return Cell;\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { createFilterComponent } from './FilterComponent';\nimport { DropDownList } from '@progress/kendo-react-dropdowns';\nimport { NumericTextBox } from '@progress/kendo-react-inputs';\nvar settings = {\n inputComponent: function (props) { return React.createElement(NumericTextBox, __assign({}, props)); },\n operatorComponent: function (props) { return React.createElement(DropDownList, __assign({}, props)); },\n emptyFilter: { operator: 'eq', value: null }\n};\n/**\n * @hidden\n */\nvar NumericFilterCell = /** @class */ (function (_super) {\n __extends(NumericFilterCell, _super);\n function NumericFilterCell() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return NumericFilterCell;\n}(createFilterComponent(settings)));\nexport { NumericFilterCell };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { createFilterComponent } from './FilterComponent';\nimport { Input } from '@progress/kendo-react-inputs';\nimport { DropDownList } from '@progress/kendo-react-dropdowns';\nvar settings = {\n inputComponent: function (props) { return React.createElement(Input, __assign({}, props)); },\n operatorComponent: function (props) { return React.createElement(DropDownList, __assign({}, props)); },\n emptyFilter: { operator: 'contains', value: '' }\n};\n/**\n * @hidden\n */\nvar TextFilterCell = /** @class */ (function (_super) {\n __extends(TextFilterCell, _super);\n function TextFilterCell() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return TextFilterCell;\n}(createFilterComponent(settings)));\nexport { TextFilterCell };\n","/**\n * @hidden\n */\nexport var ColumnDefaultProps = {\n filterable: true,\n editable: true,\n sortable: true,\n resizable: true,\n reorderable: true,\n groupable: true\n};\n","import * as React from 'react';\nimport { HeaderThElement } from './HeaderThElement';\nimport { getFilterColumnId } from '../navigation/utils';\nimport { useLocalization } from '@progress/kendo-react-intl';\nimport { filterAriaLabel, messages } from '../messages';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nexport var FILTER_ROW_CLASS = 'k-table-row k-filter-row';\nvar headerCellClassName = function (sort, field, locked) {\n var result = \"\".concat(locked ? 'k-grid-header-sticky' : '');\n if (sort.some(function (descriptor) { return descriptor.field === field; })) {\n result += ' k-sorted';\n }\n return result;\n};\n/**\n * @hidden\n */\nexport var FilterRow = function (props) {\n var columns = props.columns, filter = props.filter, filterChange = props.filterChange, _a = props.sort, sort = _a === void 0 ? [] : _a, ariaRowIndex = props.ariaRowIndex;\n var intl = useLocalization();\n return (React.createElement(\"tr\", { className: FILTER_ROW_CLASS, \"aria-rowindex\": ariaRowIndex, role: 'row' }, columns.map(function (column, index) {\n var style = (column.locked !== undefined) ? {\n left: column.left,\n right: column.right,\n borderRightWidth: column.rightBorder ? '1px' : ''\n } : {};\n var FilterCell = column.filterCell || column.filter;\n return (React.createElement(HeaderThElement, { columnId: getFilterColumnId(column.id), navigatable: column.navigatable, style: style, key: index, ariaColumnIndex: column.ariaColumnIndex, ariaLabel: FilterCell ? intl.toLanguageString(filterAriaLabel, messages[filterAriaLabel]) : undefined, className: classNames('k-table-th k-header', headerCellClassName(sort, column.field, column.locked)) }, FilterCell && (React.createElement(FilterCell, { field: column.field, filter: filter, onFilterChange: filterChange }))));\n })));\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { isRtl } from './utils';\nimport { tableKeyboardNavigationHeaderAttributes } from '../navigation/constants';\n/**\n * @hidden\n */\nvar Header = /** @class */ (function (_super) {\n __extends(Header, _super);\n function Header() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.element = null;\n return _this;\n }\n Header.prototype.componentDidMount = function () {\n var columnResize = this.props.columnResize;\n if (columnResize && columnResize.resizable) {\n columnResize.setIsRtl(isRtl(this.element));\n }\n };\n Header.prototype.render = function () {\n var _this = this;\n return (React.createElement(\"thead\", __assign({ className: \"k-table-thead k-grid-header\", role: 'presentation', ref: function (el) { return _this.element = el; } }, tableKeyboardNavigationHeaderAttributes),\n this.props.headerRow,\n this.props.filterRow));\n };\n return Header;\n}(React.Component));\nexport { Header };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\n/**\n * @hidden\n */\nexport function HeaderCell(props) {\n var clickProps = props.onClick ? {\n onClick: props.onClick\n } : {};\n var defaultRendering = (React.createElement(\"span\", __assign({ className: 'k-link' }, clickProps),\n React.createElement(\"span\", { className: 'k-column-title' }, props.title || props.field || '\\u00A0'),\n props.children));\n return (React.createElement(React.Fragment, null, props.render ?\n props.render.call(undefined, defaultRendering, props) :\n defaultRendering));\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { Draggable } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar ColumnDraggable = /** @class */ (function (_super) {\n __extends(ColumnDraggable, _super);\n function ColumnDraggable() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.draggable = null;\n /**\n * @hidden\n */\n _this.onPress = function (data) {\n var element = _this.draggable && _this.draggable.element;\n if (element && _this.props.pressHandler) {\n _this.props.pressHandler(data.event, element);\n }\n };\n /**\n * @hidden\n */\n _this.onDrag = function (data) {\n var element = _this.draggable && _this.draggable.element;\n if (element && _this.props.dragHandler) {\n _this.props.dragHandler(data.event, element);\n }\n };\n /**\n * @hidden\n */\n _this.onRelease = function (data) {\n var element = _this.draggable && _this.draggable.element;\n if (element && _this.props.releaseHandler) {\n _this.props.releaseHandler(data.event);\n }\n };\n return _this;\n }\n ColumnDraggable.prototype.render = function () {\n var _this = this;\n return (React.createElement(Draggable, { onPress: this.onPress, onDrag: this.onDrag, onRelease: this.onRelease, ref: function (component) { _this.draggable = component; } },\n React.createElement(\"tr\", { className: 'k-table-row', \"aria-rowindex\": this.props.ariaRowIndex, role: 'row' }, this.props.children)));\n };\n return ColumnDraggable;\n}(React.PureComponent));\nexport { ColumnDraggable };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { HeaderCell } from './HeaderCell';\nimport { normalize } from './SortSettings';\nimport { ColumnResizer } from '../drag/ColumnResizer';\nimport { ColumnDraggable } from '../drag/ColumnDraggable';\nimport { HeaderThElement } from './HeaderThElement';\nimport { classNames, IconWrap, Keys } from '@progress/kendo-react-common';\nimport { registerForLocalization, provideLocalizationService as intl } from '@progress/kendo-react-intl';\nimport { sortAscSmallIcon, sortDescSmallIcon } from '@progress/kendo-svg-icons';\nimport { messages, sortAriaLabel } from '../messages';\n/**\n * @hidden\n */\nvar sortSeqMap = {\n true: { 'asc': 'desc', 'desc': '', '': 'asc' },\n false: { 'asc': 'desc', 'desc': 'asc', '': 'asc' }\n};\n/**\n * @hidden\n */\nvar ariaSortMap = {\n 'none': 'none',\n 'asc': 'ascending',\n 'desc': 'descending'\n};\n/**\n * @hidden\n */\nvar HeaderRow = /** @class */ (function (_super) {\n __extends(HeaderRow, _super);\n function HeaderRow() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.cellClick = function (e, column) {\n e.preventDefault();\n if (!_this.props.sortChange) {\n return;\n }\n var _a = normalize(_this.props.sortable || false, column.sortable || false), allowUnsort = _a.allowUnsort, mode = _a.mode;\n var oldDescriptor = (_this.props.sort || []).filter(function (d) { return d.field === column.field; })[0];\n var dir = sortSeqMap[allowUnsort][oldDescriptor && oldDescriptor.dir || ''];\n var newDescriptor = (mode === 'single') ?\n [] : (_this.props.sort || []).filter(function (d) { return d.field !== column.field; });\n if (dir !== '' && column.field) {\n newDescriptor.push({ field: column.field, dir: dir });\n }\n _this.props.sortChange(e, newDescriptor, column.field);\n };\n _this.cellKeyDown = function (event, column) {\n if (event.isDefaultPrevented()) {\n return;\n }\n if (event.keyCode === Keys.enter) {\n _this.cellClick(event, column);\n }\n };\n _this.cells = function (rowIndexes) { return rowIndexes.map(function (columnIndex, index) {\n var column = _this.props.columns[columnIndex];\n var columnResize = _this.props.columnResize;\n var resizable = columnResize && columnResize.resizable && column.resizable;\n var sortable = _this.props.sortable && column.sortable;\n var sortIndex = _this.props.sort ? _this.props.sort.findIndex(function (s) { return s.field === column.field; }) : -1;\n var sortDir = sortIndex >= 0 ? ((_this.props.sort)[sortIndex].dir || 'none') : 'none';\n var columnMenuProps = {\n sort: _this.props.sort,\n onSortChange: _this.props.sortChange,\n filter: _this.props.columnMenuFilter,\n onFilterChange: _this.props.columnMenuFilterChange,\n field: column.field\n };\n var headerCellProps = {\n field: column.field,\n onClick: sortable && (function (e) { return _this.cellClick(e, column); }) || undefined,\n selectionChange: _this.props.selectionChange,\n title: column.title,\n selectionValue: column.headerSelectionValue,\n render: _this.props.cellRender,\n children: _this.sortIcon(sortIndex),\n sort: _this.props.sort,\n sortable: _this.props.sortable,\n sortChange: _this.props.sortChange,\n filterChange: _this.props.filterChange,\n columns: _this.props.columns,\n columnMenuWrapperProps: columnMenuProps\n };\n var ColumnMenu = column.columnMenu || _this.props.columnMenu;\n var className = classNames('k-table-th', {\n 'k-first': column.kFirst,\n 'k-filterable': Boolean(ColumnMenu),\n 'k-header': true,\n 'k-grid-header-sticky': column.locked,\n 'k-sorted': _this.props.sort && _this.props.sort.some(function (descriptor) { return descriptor.field === column.field; })\n }, column.headerClassName);\n var style = (column.locked !== undefined) ? {\n left: column.left,\n right: column.right,\n borderRightWidth: column.rightBorder ? '1px' : ''\n } : {};\n var sortLabel = intl(_this).toLanguageString(sortAriaLabel, messages[sortAriaLabel]);\n var ariaAttrs = column.isAccessible ? {\n ariaSort: sortable ? ariaSortMap[sortDir] : undefined,\n role: 'columnheader',\n ariaColumnIndex: column.ariaColumnIndex,\n ariaSelected: false,\n ariaDescription: sortable ? sortLabel : ''\n } : {\n role: 'presentation'\n };\n return (React.createElement(HeaderThElement, __assign({ key: index, colSpan: column.colSpan, rowSpan: column.rowSpan, className: className, style: style, columnId: column.id, navigatable: column.navigatable, onKeyDown: sortable && (function (e) { return _this.cellKeyDown(e, column); }) || undefined }, ariaAttrs),\n column.headerCell && React.createElement(column.headerCell, __assign({}, headerCellProps)),\n !column.headerCell && (React.createElement(\"span\", { className: 'k-cell-inner' },\n React.createElement(HeaderCell, __assign({}, headerCellProps)),\n ColumnMenu && (React.createElement(ColumnMenu, __assign({}, columnMenuProps))))),\n columnResize && resizable &&\n React.createElement(ColumnResizer, { key: \"ColumnResizer\", resize: function (e, element, end) { return columnResize.dragHandler(e, column, element, end); } })));\n }); };\n return _this;\n }\n HeaderRow.prototype.sortIcon = function (sortIndex) {\n if (!this.props.sort || sortIndex < 0) {\n return null;\n }\n var dir = this.props.sort[sortIndex].dir;\n if (!dir) {\n return null;\n }\n return [\n React.createElement(IconWrap, { key: 1, name: \"sort-\".concat(dir, \"-small\"), icon: dir === 'asc' ? sortAscSmallIcon : sortDescSmallIcon }),\n this.props.sort.length > 1 && React.createElement(\"span\", { key: 2, className: \"k-sort-order\" }, sortIndex + 1)\n ];\n };\n HeaderRow.prototype.render = function () {\n var _this = this;\n return this.props.columnsMap.map(function (rowIndexes, i) {\n return _this.props.pressHandler && (React.createElement(ColumnDraggable, { key: i, pressHandler: _this.props.pressHandler, dragHandler: _this.props.dragHandler, releaseHandler: _this.props.releaseHandler, ariaRowIndex: i + 1 }, _this.cells(rowIndexes))) || React.createElement(\"tr\", { className: 'k-table-row', \"aria-rowindex\": i + 1, role: 'row' }, _this.cells(rowIndexes));\n });\n };\n return HeaderRow;\n}(React.Component));\nexport { HeaderRow };\nregisterForLocalization(HeaderRow);\n","import * as React from 'react';\n/**\n * @hidden\n */\nexport function HeaderSelectionCell(props) {\n var defaultRendering = [\n (React.createElement(\"input\", { key: 0, checked: props.selectionValue, id: props.inputId, type: \"checkbox\", className: \"k-checkbox k-checkbox-md k-rounded-md\", onChange: function (e) {\n return props.selectionChange({\n field: props.field,\n syntheticEvent: e\n });\n } })),\n (React.createElement(\"label\", { key: 1, className: \"k-checkbox-label\", htmlFor: props.inputId }))\n ];\n return (React.createElement(React.Fragment, null, props.render ?\n props.render.call(undefined, defaultRendering, props) :\n defaultRendering));\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { useTableKeyboardNavigation } from '../navigation/hooks';\n/**\n * @hidden\n */\nexport var HeaderThElement = function (props) {\n var ariaSort = props.ariaSort, colSpan = props.colSpan, rowSpan = props.rowSpan, className = props.className, style = props.style, columnId = props.columnId, onKeyDown = props.onKeyDown, navigatable = props.navigatable, ariaColumnIndex = props.ariaColumnIndex, ariaLabel = props.ariaLabel, role = props.role, ariaSelected = props.ariaSelected;\n var navigationAttributes = useTableKeyboardNavigation(columnId, navigatable);\n return (React.createElement(\"th\", __assign({ \"aria-sort\": ariaSort, \"aria-label\": ariaLabel, \"aria-colindex\": ariaColumnIndex, \"aria-selected\": ariaSelected, \n // TODO: Enable this with React 18. Currently throws warnings\n // aria-description={ariaDescription}\n colSpan: colSpan, rowSpan: rowSpan, className: className, style: style, onKeyDown: onKeyDown, role: role }, navigationAttributes), props.children));\n};\nHeaderThElement.displayName = 'KendoReactHeaderThElement';\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n/**\n * @hidden\n */\nexport var normalize = function () {\n var settings = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n settings[_i] = arguments[_i];\n }\n return Object.assign.apply(Object, __spreadArray([{ allowUnsort: true, mode: 'single' }], settings, false));\n};\n","import { generateNavigatableId } from '../../navigation/utils';\nimport { ColumnDefaultProps } from '../ColumnProps';\n/**\n * @hidden\n */\nexport function nextColumn(columns, current) {\n var currentDepth = columns[current].depth;\n var next = null;\n for (var index = current + 1; index < columns.length; index++) {\n if (columns[index].depth === currentDepth) {\n next = columns[index];\n break;\n }\n }\n return next;\n}\nvar getColumnWidth = function (column) {\n var width = column.width ? parseFloat(column.width.toString()) : 0;\n if (!width && column.children && column.children.length) {\n width = column.children.reduce(function (currentSum, child) { return getColumnWidth(child) + currentSum; }, 0);\n }\n return width;\n};\n/**\n * @hidden\n */\nexport function mapColumns(columns) {\n var columnsMap = [[]];\n var maxDepth = 0;\n // set colspans, get maxdepth\n for (var q = columns.length - 1; q >= 0; q--) {\n maxDepth = Math.max(maxDepth, columns[q].depth);\n columns[q].colSpan = columns[q].colSpan || 1;\n if (columns[q].parentIndex !== -1) {\n columns[columns[q].parentIndex].colSpan =\n (columns[columns[q].parentIndex].colSpan || 0) + columns[q].colSpan;\n }\n }\n var colIndexByLevel = [];\n var rowSpan = 1;\n // set rowspan, kFirst, index AND create columnsMap\n columns.forEach(function (column, i) {\n columnsMap[column.depth] = columnsMap[column.depth] || [];\n var needKFirst = false;\n if (columnsMap[column.depth].length === 0) {\n if (rowSpan <= 1) {\n rowSpan = 1 + (column.children.length > 0 ? 0 : maxDepth - column.depth);\n }\n else {\n rowSpan--;\n needKFirst = true;\n }\n }\n column.rowSpan = 1 + (column.children.length > 0 ? 0 : maxDepth - column.depth);\n column.kFirst = needKFirst;\n column.index = columnsMap[column.depth].length;\n columnsMap[column.depth].push(i);\n column.ariaColumnIndex = colIndexByLevel[column.depth] ? colIndexByLevel[column.depth] + 1 : 1;\n for (var ci = column.depth; ci < column.depth + column.rowSpan; ci++) {\n colIndexByLevel[ci] = (colIndexByLevel[ci] || 0) + column.colSpan;\n }\n });\n updateLeft(columnsMap, columns);\n updateRight(columnsMap, columns);\n return columnsMap;\n}\n/**\n * @hidden\n */\nexport function updateLeft(columnsMap, columns, generateLeft) {\n var stickyLeftWidth = new Array(columnsMap.length).fill(0);\n var width = 0;\n // set left AND create stickyLeftWidth\n columns.forEach(function (column) {\n if (column.locked && (!column.left || generateLeft)) {\n column.left = stickyLeftWidth[column.depth];\n width = getColumnWidth(column);\n if (column.children.length === 0) {\n for (var i = column.depth; i < stickyLeftWidth.length; i++) {\n stickyLeftWidth[i] += width;\n }\n }\n else {\n stickyLeftWidth[column.depth] += width;\n }\n }\n });\n}\n/**\n * @hidden\n */\nexport function updateRight(columnsMap, columns, generateRight) {\n var width = 0;\n var stickyRightWidth = new Array(columnsMap.length).fill(0);\n // set right, rightBorder AND create stickyRightWidth\n for (var i = columns.length - 1; i >= 0; i--) {\n var column = columns[i];\n if (column.locked && (!column.right || generateRight)) {\n column.right = stickyRightWidth[column.depth];\n width = getColumnWidth(column);\n if (column.children.length === 0) {\n for (var j = column.depth; j < stickyRightWidth.length; j++) {\n stickyRightWidth[j] += width;\n }\n }\n else {\n stickyRightWidth[column.depth] += width;\n }\n var next = nextColumn(columns, i);\n column.rightBorder = !(next && next.locked);\n }\n }\n}\n/**\n * @hidden\n */\nexport function readColumns(elements, idInfo, depth) {\n if (depth === void 0) { depth = 0; }\n var columns = [];\n if (!elements || !elements.length) {\n return [];\n }\n elements.forEach(function (columnProps) {\n var children = readColumns(columnProps.children || [], idInfo, depth + 1);\n columns.push(Object.assign({}, { depth: depth }, ColumnDefaultProps, columnProps, {\n id: columnProps.id ? columnProps.id : generateNavigatableId(\"\".concat(idInfo.prevId++), idInfo.idPrefix, 'column'),\n declarationIndex: columns.length,\n children: children,\n rowSpan: 0,\n colSpan: 0,\n isAccessible: true\n }));\n });\n var comparator = function (a, b) {\n return a.orderIndex === b.orderIndex ?\n a.declarationIndex - b.declarationIndex :\n ((a.orderIndex || 0) - (b.orderIndex || 0));\n };\n columns.sort(comparator);\n if (depth === 0) {\n var ret_1 = [];\n var flat_1 = function (cols, pIndex) {\n return cols.forEach(function (c) {\n c.parentIndex = pIndex;\n flat_1(c.children, ret_1.push(c) - 1);\n });\n };\n flat_1(columns, -1);\n return ret_1;\n }\n return columns;\n}\n/**\n * @hidden\n */\nexport function isRtl(element) {\n return Boolean(element && getComputedStyle(element).direction === 'rtl');\n}\n/**\n * @hidden\n */\nexport function getIndex(event, parent) {\n if (!parent || !event || !event.originalEvent) {\n return -1;\n }\n var coord = { x: event.clientX, y: event.originalEvent.clientY };\n var target = parent.ownerDocument ? parent.ownerDocument.elementFromPoint(coord.x, coord.y) : null;\n while (target && target.parentElement !== parent) {\n target = target.parentElement;\n }\n if (!target && parent.matches('tr')) {\n // parent.ownerDocument.elementFromPoint did not return correct element in grid is in shadow root.\n var predicate = function (c) {\n var pos = c.getBoundingClientRect();\n return coord.x > pos.left && coord.x < pos.left + pos.width && coord.y > pos.top && coord.y < pos.top + pos.height;\n };\n target = Array.from(parent.children).find(predicate) || null;\n }\n var children = parent.children;\n for (var i = 0; i < children.length; i++) {\n if (children[i] === target) {\n return i;\n }\n }\n return -1;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { classNames, kendoThemeMaps } from '@progress/kendo-react-common';\nimport { Button } from '@progress/kendo-react-buttons';\nimport { messages, pagerMobileSelect, pagerPage, pagerMoreButtonLabel } from '../messages';\nimport { provideLocalizationService } from '@progress/kendo-react-intl';\nvar dots = '...';\n/**\n * @hidden\n */\nvar PagerNumericButtons = /** @class */ (function (_super) {\n __extends(PagerNumericButtons, _super);\n function PagerNumericButtons() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.handlePageChange = function (e, page) {\n e.preventDefault();\n _this.props.pageChange(page, e);\n };\n _this.handleSelectPageChange = function (e) {\n e.preventDefault();\n _this.props.pageChange(e.target.value, e);\n };\n return _this;\n }\n PagerNumericButtons.prototype.render = function () {\n var _a;\n var _this = this;\n var localizationService = provideLocalizationService(this);\n var mobileSelectMessage = this.props.messagesMap ? this.props.messagesMap(pagerMobileSelect) :\n ({ messageKey: pagerMobileSelect, defaultMessage: messages[pagerMobileSelect] });\n var pageNumberLabelMessage = this.props.messagesMap ? this.props.messagesMap(pagerPage) :\n ({ messageKey: pagerPage, defaultMessage: messages[pagerPage] });\n var pagerMorePagesLabelMessage = this.props.messagesMap ? this.props.messagesMap(pagerMoreButtonLabel) :\n ({ messageKey: pagerMoreButtonLabel, defaultMessage: messages[pagerMoreButtonLabel] });\n var pagerMoreButtonAriaLabel = localizationService.toLanguageString(pagerMorePagesLabelMessage.messageKey, pagerMorePagesLabelMessage.defaultMessage);\n var prevDots = this.start > 1 && this.renderDots(this.start - 1, pagerMoreButtonAriaLabel);\n var postDots = this.end < this.props.totalPages && this.renderDots(this.end + 1, pagerMoreButtonAriaLabel);\n var prevOptionDots = this.start > 1 && this.renderOptionDots(this.start - 1);\n var postOptionDots = this.end < this.props.totalPages && this.renderOptionDots(this.end + 1);\n var buttons = [];\n for (var idx = this.start; idx <= this.end; idx++) {\n buttons.push(idx);\n }\n var numerics = buttons.map(function (page) { return (React.createElement(Button, { className: classNames({ 'k-selected': _this.props.currentPage === page }), key: page, fillMode: 'flat', themeColor: 'primary', size: _this.props.size, rounded: null, role: \"button\", \"aria-label\": localizationService.toLanguageString(pageNumberLabelMessage.messageKey, pageNumberLabelMessage.defaultMessage) + ' ' + page, \"aria-current\": _this.props.currentPage === page ? true : undefined, onClick: function (e) { return _this.handlePageChange(e, page); } }, page)); });\n var options = buttons.map(function (page) { return (React.createElement(\"option\", { key: page }, page)); });\n return (React.createElement(React.Fragment, null,\n React.createElement(\"select\", { style: { width: '5em', margin: '0px 1em', display: this.props.type === 'dropdown'\n ? 'inline-flex'\n : 'none' }, className: classNames('k-picker k-dropdown-list k-dropdown k-rounded-md', (_a = {},\n _a[\"k-picker-\".concat(kendoThemeMaps.sizeMap[this.props.size] || this.props.size)] = this.props.size,\n _a)), \"aria-label\": localizationService.toLanguageString(mobileSelectMessage.messageKey, mobileSelectMessage.defaultMessage), value: this.props.currentPage, onChange: function (e) { return _this.handleSelectPageChange(e); } },\n prevOptionDots,\n options,\n postOptionDots),\n React.createElement(\"div\", { className: \"k-pager-numbers\", style: { display: this.props.type === 'numbers'\n ? ''\n : 'none' } },\n prevDots,\n numerics,\n postDots)));\n };\n Object.defineProperty(PagerNumericButtons.prototype, \"end\", {\n get: function () {\n return Math.min((this.start + this.props.buttonCount) - 1, this.props.totalPages);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PagerNumericButtons.prototype, \"start\", {\n get: function () {\n var page = this.props.currentPage;\n var buttonCount = this.props.buttonCount;\n if (page > buttonCount) {\n var reminder = (page % buttonCount);\n return (reminder === 0) ? (page - buttonCount) + 1 : (page - reminder) + 1;\n }\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n PagerNumericButtons.prototype.renderDots = function (page, ariaLabel) {\n var _this = this;\n return (React.createElement(Button, { fillMode: 'flat', themeColor: 'primary', size: this.props.size, rounded: null, role: \"button\", \"aria-label\": ariaLabel, onClick: function (e) { return _this.handlePageChange(e, page); } }, dots));\n };\n PagerNumericButtons.prototype.renderOptionDots = function (page) {\n return (React.createElement(\"option\", { value: page }, dots));\n };\n return PagerNumericButtons;\n}(React.Component));\nexport { PagerNumericButtons };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { registerForLocalization, provideLocalizationService, provideIntlService } from '@progress/kendo-react-intl';\nimport { messages, pagerOf, pagerPage, pagerTotalPages } from './../messages';\nimport { NumericTextBox } from '@progress/kendo-react-inputs';\n/**\n * @hidden\n */\nvar PagerInput = /** @class */ (function (_super) {\n __extends(PagerInput, _super);\n function PagerInput() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = { page: _this.props.currentPage };\n _this.handleOnChange = function (e) {\n _this.setState({ page: e.target.value });\n if (e.target.value) {\n _this.props.pageChange(e.target.value, e);\n }\n };\n return _this;\n }\n PagerInput.prototype.render = function () {\n var intlService = provideIntlService(this);\n var localizationService = provideLocalizationService(this);\n var pageMessage = this.props.messagesMap ? this.props.messagesMap(pagerPage) :\n ({ messageKey: pagerPage, defaultMessage: messages[pagerPage] });\n var ofMessage = this.props.messagesMap ? this.props.messagesMap(pagerOf) :\n ({ messageKey: pagerOf, defaultMessage: messages[pagerOf] });\n var totalPagesMessage = this.props.messagesMap ? this.props.messagesMap(pagerTotalPages) :\n ({ messageKey: pagerTotalPages, defaultMessage: messages[pagerTotalPages] });\n return (React.createElement(React.Fragment, null,\n React.createElement(\"span\", { className: \"k-pager-input\" },\n React.createElement(\"span\", null, localizationService.toLanguageString(pageMessage.messageKey, pageMessage.defaultMessage)),\n React.createElement(NumericTextBox, { value: this.props.currentPage !== undefined ? this.props.currentPage : this.state.page, onChange: this.handleOnChange, min: 1, spinners: false }),\n React.createElement(\"span\", null, \"\".concat(localizationService.toLanguageString(ofMessage.messageKey, ofMessage.defaultMessage), \" \").concat(intlService\n .format(localizationService.toLanguageString(totalPagesMessage.messageKey, totalPagesMessage.defaultMessage), [\n this.props.totalPages\n ]))))));\n };\n return PagerInput;\n}(React.Component));\nexport { PagerInput };\nregisterForLocalization(PagerInput);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { messages, pagerItemPerPage, pagerPageSizeAriaLabel } from './../messages';\nimport { DropDownList } from '@progress/kendo-react-dropdowns';\n/**\n * @hidden\n */\nvar PagerPageSizes = /** @class */ (function (_super) {\n __extends(PagerPageSizes, _super);\n function PagerPageSizes() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.pageSizeChange = function (e) {\n if (_this.props.pageChange) {\n _this.props.pageChange({ skip: 0, take: parseInt(e.target.value, 10) }, e);\n }\n };\n return _this;\n }\n PagerPageSizes.prototype.render = function () {\n var _a = this.props, value = _a.value, pageSizes = _a.pageSizes, pageSize = _a.pageSize, messagesMap = _a.messagesMap;\n var sizes = pageSizes.slice();\n if (value === undefined && sizes.filter(function (s) { return s === pageSize; }).length === 0) {\n sizes.unshift(pageSize);\n }\n var itemPerPageMessage = messagesMap ? messagesMap(pagerItemPerPage) :\n ({ messageKey: pagerItemPerPage, defaultMessage: messages[pagerItemPerPage] });\n var pageSelectionMessage = messagesMap ? messagesMap(pagerPageSizeAriaLabel) :\n ({ messageKey: pagerPageSizeAriaLabel, defaultMessage: messages[pagerPageSizeAriaLabel] });\n return (React.createElement(\"span\", { className: \"k-pager-sizes\" },\n React.createElement(DropDownList, { value: value !== undefined ? value : pageSize, data: sizes, onChange: this.pageSizeChange, ariaLabel: provideLocalizationService(this).toLanguageString(pageSelectionMessage.messageKey, pageSelectionMessage.defaultMessage), size: this.props.size }),\n React.createElement(\"span\", null, provideLocalizationService(this).toLanguageString(itemPerPageMessage.messageKey, itemPerPageMessage.defaultMessage))));\n };\n return PagerPageSizes;\n}(React.Component));\nexport { PagerPageSizes };\nregisterForLocalization(PagerPageSizes);\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-data-tools',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1697039677,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { PagerNumericButtons } from './PagerNumericButtons';\nimport { PagerInput } from './PagerInput';\nimport { PagerPageSizes } from './PagerPageSizes';\nimport { Button } from '@progress/kendo-react-buttons';\nimport { messages, pagerFirstPage, pagerLastPage, pagerNextPage, pagerPreviousPage, pagerInfo, pagerAriaKeyshortcuts, pagerAriaLabel } from '../messages';\nimport { registerForIntl, registerForLocalization, provideLocalizationService, provideIntlService } from '@progress/kendo-react-intl';\nimport { classNames, kendoThemeMaps, validatePackage } from '@progress/kendo-react-common';\nimport { caretAltToLeftIcon, caretAltLeftIcon, caretAltRightIcon, caretAltToRightIcon } from '@progress/kendo-svg-icons';\nimport { packageMetadata } from '../package-metadata';\n/**\n * @hidden\n */\nvar RESPONSIVE_BREAKPOINT_MEDIUM = 600;\n/**\n * @hidden\n */\nvar RESPONSIVE_BREAKPOINT_LARGE = 768;\nvar Pager = /** @class */ (function (_super) {\n __extends(Pager, _super);\n function Pager(props) {\n var _this = _super.call(this, props) || this;\n _this._element = null;\n _this.onPageChange = function (eventData, targetEvent) {\n var event = __assign({ target: _this, syntheticEvent: targetEvent.syntheticEvent, nativeEvent: targetEvent.nativeEvent, targetEvent: targetEvent }, eventData);\n if (_this.props.onPageChange) {\n _this.props.onPageChange.call(undefined, event);\n }\n };\n _this.changePage = function (page, event) {\n if (_this.props.onPageChange && page > 0 && page <= _this.totalPages) {\n _this.props.onPageChange({\n target: _this,\n skip: (page - 1) * _this.props.take,\n take: _this.props.take,\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n targetEvent: event\n });\n }\n };\n _this.onWindowResize = function () {\n var element = _this.element;\n if (!element || !_this.props.responsive) {\n return;\n }\n var width = element.offsetWidth;\n if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {\n _this.setState({ showPagerSizes: false });\n }\n else if (width >= RESPONSIVE_BREAKPOINT_MEDIUM && width < RESPONSIVE_BREAKPOINT_LARGE) {\n _this.setState({ showPagerInfo: false, showPagerSizes: true });\n }\n else {\n _this.setState({ showPagerInfo: true, showPagerSizes: true });\n }\n };\n validatePackage(packageMetadata);\n _this.state = { showPagerSizes: true, showPagerInfo: true };\n return _this;\n }\n Object.defineProperty(Pager.prototype, \"isRtl\", {\n get: function () {\n return this.props.dir === 'rtl';\n },\n enumerable: false,\n configurable: true\n });\n ;\n Object.defineProperty(Pager.prototype, \"element\", {\n /**\n * Returns the HTML element of the Pager component.\n */\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n Pager.prototype.componentDidMount = function () {\n window.addEventListener('resize', this.onWindowResize);\n this.onWindowResize();\n };\n /**\n * @hidden\n */\n Pager.prototype.componentWillUnmount = function () {\n window.removeEventListener('resize', this.onWindowResize);\n };\n /**\n * @hidden\n */\n Pager.prototype.render = function () {\n var _a;\n var _this = this;\n var _b = this.state, showPagerSizes = _b.showPagerSizes, showPagerInfo = _b.showPagerInfo;\n var _c = this.props, skip = _c.skip, take = _c.take, total = _c.total, pageSizes = _c.pageSizes, size = _c.size, responsive = _c.responsive, messagesMap = _c.messagesMap, pageSizeValue = _c.pageSizeValue;\n var localizationService = provideLocalizationService(this);\n var intlService = provideIntlService(this);\n var currentPage = Math.floor(skip / take) + 1;\n var changer = this.props.type === 'numeric' ?\n (React.createElement(PagerNumericButtons, { type: (responsive && !showPagerSizes) ? 'dropdown' : 'numbers', buttonCount: this.props.buttonCount || 0, totalPages: this.totalPages, currentPage: currentPage, pageChange: this.changePage, messagesMap: this.props.messagesMap, size: this.props.size })) : (React.createElement(PagerInput, { buttonCount: this.props.buttonCount || 0, totalPages: this.totalPages, currentPage: currentPage, pageChange: this.changePage, messagesMap: messagesMap, size: this.props.size }));\n var firstPageMessage = messagesMap ? messagesMap(pagerFirstPage) :\n ({ messageKey: pagerFirstPage, defaultMessage: messages[pagerFirstPage] });\n var previousPageMessage = messagesMap ? messagesMap(pagerPreviousPage) :\n ({ messageKey: pagerPreviousPage, defaultMessage: messages[pagerPreviousPage] });\n var nextPageMessage = messagesMap ? messagesMap(pagerNextPage) :\n ({ messageKey: pagerNextPage, defaultMessage: messages[pagerNextPage] });\n var lastPageMessage = messagesMap ? messagesMap(pagerLastPage) :\n ({ messageKey: pagerLastPage, defaultMessage: messages[pagerLastPage] });\n var infoMessage = messagesMap ? messagesMap(pagerInfo) :\n ({ messageKey: pagerInfo, defaultMessage: messages[pagerInfo] });\n var ariaKeyshortcutsMessage = messagesMap ? messagesMap(pagerAriaKeyshortcuts) :\n ({ messageKey: pagerAriaKeyshortcuts, defaultMessage: messages[pagerAriaKeyshortcuts] });\n var ariaLabelMessage = messagesMap ? messagesMap(pagerAriaLabel) :\n ({ messageKey: pagerAriaLabel, defaultMessage: messages[pagerAriaLabel] });\n var first, prev, next, last;\n if (this.props.previousNext) {\n first = this.renderButton(1, 'k-pager-nav k-pager-first' + (currentPage === 1 ? ' k-disabled' : ''), localizationService.toLanguageString(firstPageMessage.messageKey, firstPageMessage.defaultMessage), this.isRtl ? 'caret-alt-to-right' : 'caret-alt-to-left', this.isRtl ? caretAltToRightIcon : caretAltToLeftIcon, (currentPage === 1 ? true : undefined));\n prev = this.renderButton(currentPage - 1, 'k-pager-nav' + (currentPage === 1 ? ' k-disabled' : ''), localizationService.toLanguageString(previousPageMessage.messageKey, previousPageMessage.defaultMessage), this.isRtl ? 'caret-alt-right' : 'caret-alt-left', this.isRtl ? caretAltRightIcon : caretAltLeftIcon, (currentPage === 1 ? true : undefined));\n next = this.renderButton(currentPage + 1, 'k-pager-nav' + (currentPage >= this.totalPages ? ' k-disabled' : ''), localizationService.toLanguageString(nextPageMessage.messageKey, nextPageMessage.defaultMessage), this.isRtl ? 'caret-alt-left' : 'caret-alt-right', this.isRtl ? caretAltLeftIcon : caretAltRightIcon, (currentPage >= this.totalPages ? true : undefined));\n last = this.renderButton(this.totalPages, 'k-pager-nav k-pager-last' + (currentPage >= this.totalPages ? ' k-disabled' : ''), localizationService.toLanguageString(lastPageMessage.messageKey, lastPageMessage.defaultMessage), this.isRtl ? 'caret-alt-to-left' : 'caret-alt-to-right', this.isRtl ? caretAltToLeftIcon : caretAltToRightIcon, (currentPage >= this.totalPages ? true : undefined));\n }\n var pagerPageSizes = pageSizes && (React.createElement(PagerPageSizes, { pageChange: this.onPageChange, pageSize: take, pageSizes: pageSizes, value: pageSizeValue, messagesMap: messagesMap, size: this.props.size }));\n var info = this.props.info && (React.createElement(\"span\", { className: \"k-pager-info\" }, intlService\n .format(localizationService.toLanguageString(infoMessage.messageKey, infoMessage.defaultMessage), [\n Math.min(skip + 1, total),\n Math.min(skip + take, total),\n total\n ])));\n return (React.createElement(\"div\", { className: classNames('k-pager', (_a = {},\n _a[\"k-pager-\".concat(kendoThemeMaps.sizeMap[size] || size)] = size,\n _a), this.props.className), style: this.props.style, role: \"application\", \"aria-roledescription\": \"pager\", dir: this.props.dir, \"aria-keyshortcuts\": localizationService.toLanguageString(ariaKeyshortcutsMessage.messageKey, ariaKeyshortcutsMessage.defaultMessage), \"aria-label\": localizationService.toLanguageString(ariaLabelMessage.messageKey, ariaLabelMessage.defaultMessage), ref: function (element) { return _this._element = element; } },\n React.createElement(\"div\", { className: classNames('k-pager-numbers-wrap') },\n first,\n prev,\n changer,\n next,\n last),\n responsive ? (showPagerSizes && pagerPageSizes) : pagerPageSizes,\n responsive ? (showPagerInfo && info) : info));\n };\n Pager.prototype.renderButton = function (page, className, title, icon, svgIcon, isDisabled) {\n var _this = this;\n return (React.createElement(Button, { fillMode: 'flat', themeColor: 'base', size: this.props.size, rounded: null, className: className, icon: icon, svgIcon: svgIcon, title: title, role: \"button\", \"aria-disabled\": isDisabled, onClick: function (e) {\n e.preventDefault();\n _this.changePage(page, e);\n } }));\n };\n Object.defineProperty(Pager.prototype, \"totalPages\", {\n get: function () {\n return Math.ceil((this.props.total || 0) / this.props.take);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n Pager.propTypes = {\n className: PropTypes.string,\n style: PropTypes.object,\n total: PropTypes.number.isRequired,\n skip: PropTypes.number.isRequired,\n take: PropTypes.number.isRequired,\n buttonCount: PropTypes.number,\n info: PropTypes.bool,\n type: PropTypes.oneOf(['numeric', 'input']),\n pageSizes: PropTypes.arrayOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ])),\n previousNext: PropTypes.bool,\n onPageChange: PropTypes.func,\n messagesMap: PropTypes.func,\n size: PropTypes.oneOf([null, 'small', 'medium', 'large']),\n dir: PropTypes.string\n };\n /**\n * @hidden\n */\n Pager.defaultProps = {\n buttonCount: 10,\n info: true,\n type: 'numeric',\n size: 'medium'\n };\n return Pager;\n}(React.Component));\nexport { Pager };\nregisterForIntl(Pager);\nregisterForLocalization(Pager);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { TextBox } from '@progress/kendo-react-inputs';\nimport { provideLocalizationService, registerForLocalization } from '@progress/kendo-react-intl';\nimport { messages, filterTextFilterAriaLabel } from '../../messages';\n/**\n * The TextFilter component used for editing text value of FilterDescriptor object.\n */\nvar TextFilter = /** @class */ (function (_super) {\n __extends(TextFilter, _super);\n function TextFilter() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onChange = function (event) {\n _this.props.onFilterChange.call(undefined, {\n nextFilter: __assign(__assign({}, _this.props.filter), { value: event.value })\n });\n };\n return _this;\n }\n /**\n * @hidden\n */\n TextFilter.prototype.render = function () {\n var locService = provideLocalizationService(this);\n var _a = this.props.ariaLabel, ariaLabel = _a === void 0 ? locService.toLanguageString(filterTextFilterAriaLabel, messages[filterTextFilterAriaLabel]) : _a;\n return (React.createElement(TextBox, { value: this.props.filter.value || '', onChange: this.onChange, \"aria-label\": ariaLabel }));\n };\n /**\n * @hidden\n */\n TextFilter.propTypes = {\n filter: PropTypes.object.isRequired,\n onFilterChange: PropTypes.func.isRequired,\n ariaLabel: PropTypes.string\n };\n return TextFilter;\n}(React.Component));\nexport { TextFilter };\nregisterForLocalization(TextFilter);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { NumericTextBox } from '@progress/kendo-react-inputs';\nimport { provideLocalizationService, registerForLocalization } from '@progress/kendo-react-intl';\nimport { messages, filterNumericFilterAriaLabel } from '../../messages';\n/**\n * The NumericFilter component used for editing numeric value of FilterDescriptor object.\n */\nvar NumericFilter = /** @class */ (function (_super) {\n __extends(NumericFilter, _super);\n function NumericFilter() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onChange = function (event) {\n _this.props.onFilterChange.call(undefined, {\n nextFilter: __assign(__assign({}, _this.props.filter), { value: event.value })\n });\n };\n return _this;\n }\n /**\n * @hidden\n */\n NumericFilter.prototype.render = function () {\n var locService = provideLocalizationService(this);\n var _a = this.props, min = _a.min, max = _a.max, filter = _a.filter, _b = _a.ariaLabel, ariaLabel = _b === void 0 ? locService.toLanguageString(filterNumericFilterAriaLabel, messages[filterNumericFilterAriaLabel]) : _b;\n return (React.createElement(NumericTextBox, { value: typeof filter.value === 'number' ? filter.value : null, onChange: this.onChange, ariaLabel: ariaLabel, \"aria-valuemin\": min, \"aria-valuemax\": max, min: min, max: max }));\n };\n /**\n * @hidden\n */\n NumericFilter.propTypes = {\n filter: PropTypes.object.isRequired,\n onFilterChange: PropTypes.func.isRequired\n };\n return NumericFilter;\n}(React.Component));\nexport { NumericFilter };\nregisterForLocalization(NumericFilter);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { DatePicker } from '@progress/kendo-react-dateinputs';\n/**\n * The DateFilter component used for editing date value of FilterDescriptor object.\n */\nvar DateFilter = /** @class */ (function (_super) {\n __extends(DateFilter, _super);\n function DateFilter() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onChange = function (event) {\n _this.props.onFilterChange.call(undefined, {\n nextFilter: __assign(__assign({}, _this.props.filter), { value: event.value })\n });\n };\n return _this;\n }\n /**\n * @hidden\n */\n DateFilter.prototype.render = function () {\n var filter = this.props.filter;\n return (React.createElement(DatePicker, { value: filter.value || null, onChange: this.onChange, ariaLabel: this.props.ariaLabel }));\n };\n /**\n * @hidden\n */\n DateFilter.propTypes = {\n filter: PropTypes.object.isRequired,\n onFilterChange: PropTypes.func.isRequired,\n ariaLabel: PropTypes.string\n };\n return DateFilter;\n}(React.Component));\nexport { DateFilter };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { DropDownList } from '@progress/kendo-react-dropdowns';\nimport { provideLocalizationService, registerForLocalization } from '@progress/kendo-react-intl';\nimport { messages, filterEnumFilterDropdownAriaLabel } from './../../messages';\n/**\n * The EnumFilter component used for editing the value of FilterDescriptor object.\n * It renders a DropDownList and allows you to choose a value from the predefined list.\n */\nvar EnumFilter = /** @class */ (function (_super) {\n __extends(EnumFilter, _super);\n function EnumFilter() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onChange = function (event) {\n _this.props.onFilterChange.call(undefined, {\n nextFilter: __assign(__assign({}, _this.props.filter), { value: event.value.value })\n });\n };\n return _this;\n }\n /**\n * @hidden\n */\n EnumFilter.prototype.render = function () {\n var locService = provideLocalizationService(this);\n var _a = this.props, filter = _a.filter, _b = _a.data, data = _b === void 0 ? [] : _b, defaultItem = _a.defaultItem, _c = _a.ariaLabel, ariaLabel = _c === void 0 ? locService.toLanguageString(filterEnumFilterDropdownAriaLabel, messages[filterEnumFilterDropdownAriaLabel]) : _c;\n var locData = data.map(function (item) { return (__assign(__assign({}, item), { text: locService.toLanguageString(item.text, messages[item.text] || item.text) })); });\n return (React.createElement(DropDownList, { value: locData.find(function (i) { return i.value === filter.value; }) || null, onChange: this.onChange, defaultItem: defaultItem, data: locData, textField: \"text\", ariaLabel: ariaLabel }));\n };\n /**\n * @hidden\n */\n EnumFilter.propTypes = {\n filter: PropTypes.object.isRequired,\n onFilterChange: PropTypes.func.isRequired,\n data: PropTypes.arrayOf(PropTypes.shape({ text: PropTypes.string, value: PropTypes.any })),\n defaultItem: PropTypes.any,\n ariaLabel: PropTypes.string\n };\n return EnumFilter;\n}(React.Component));\nexport { EnumFilter };\nregisterForLocalization(EnumFilter);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { EnumFilter } from './EnumFilter';\nimport { filterIsTrue, filterIsFalse } from '../../messages';\n/**\n * The BooleanFilter component used for editing boolean value of FilterDescriptor object.\n */\nvar BooleanFilter = /** @class */ (function (_super) {\n __extends(BooleanFilter, _super);\n function BooleanFilter() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.data = [{ text: filterIsTrue, value: true }, { text: filterIsFalse, value: false }];\n return _this;\n }\n /**\n * @hidden\n */\n BooleanFilter.prototype.render = function () {\n return (React.createElement(EnumFilter, { filter: this.props.filter, onFilterChange: this.props.onFilterChange, data: this.props.data || this.data, defaultItem: this.props.defaultItem, ariaLabel: this.props.ariaLabel }));\n };\n /**\n * @hidden\n */\n BooleanFilter.propTypes = {\n filter: PropTypes.object.isRequired,\n onFilterChange: PropTypes.func.isRequired,\n data: PropTypes.arrayOf(PropTypes.shape({ text: PropTypes.string, value: PropTypes.any })),\n ariaLabel: PropTypes.string,\n defaultItem: PropTypes.any\n };\n return BooleanFilter;\n}(React.Component));\nexport { BooleanFilter };\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { filterEqOperator, filterNotEqOperator, filterIsNullOperator, filterIsNotNullOperator, filterIsEmptyOperator, filterIsNotEmptyOperator, filterStartsWithOperator, filterContainsOperator, filterNotContainsOperator, filterEndsWithOperator, filterGteOperator, filterGtOperator, filterLteOperator, filterLtOperator, filterAfterOrEqualOperator, filterAfterOperator, filterBeforeOperator, filterBeforeOrEqualOperator } from './../messages';\nvar textOperators = [\n { text: filterContainsOperator, operator: 'contains' },\n { text: filterNotContainsOperator, operator: 'doesnotcontain' },\n { text: filterEqOperator, operator: 'eq' },\n { text: filterNotEqOperator, operator: 'neq' },\n { text: filterStartsWithOperator, operator: 'startswith' },\n { text: filterEndsWithOperator, operator: 'endswith' },\n { text: filterIsNullOperator, operator: 'isnull' },\n { text: filterIsNotNullOperator, operator: 'isnotnull' },\n { text: filterIsEmptyOperator, operator: 'isempty' },\n { text: filterIsNotEmptyOperator, operator: 'isnotempty' }\n];\nvar numericOperators = [\n { text: filterEqOperator, operator: 'eq' },\n { text: filterNotEqOperator, operator: 'neq' },\n { text: filterGteOperator, operator: 'gte' },\n { text: filterGtOperator, operator: 'gt' },\n { text: filterLteOperator, operator: 'lte' },\n { text: filterLtOperator, operator: 'lt' },\n { text: filterIsNullOperator, operator: 'isnull' },\n { text: filterIsNotNullOperator, operator: 'isnotnull' }\n];\nvar dateOperators = [\n { text: filterEqOperator, operator: 'eq' },\n { text: filterNotEqOperator, operator: 'neq' },\n { text: filterAfterOrEqualOperator, operator: 'gte' },\n { text: filterAfterOperator, operator: 'gt' },\n { text: filterBeforeOperator, operator: 'lt' },\n { text: filterBeforeOrEqualOperator, operator: 'lte' },\n { text: filterIsNullOperator, operator: 'isnull' },\n { text: filterIsNotNullOperator, operator: 'isnotnull' }\n];\nvar booleanOperators = [\n { text: filterEqOperator, operator: 'eq' },\n { text: filterNotEqOperator, operator: 'neq' }\n];\n/**\n * Represents the operators for the TextFilter, NumericFilter, DateFilter and BooleanFilter components.\n *\n * The text field of each operator object will be resolved according to the\n * [localization messages]({% slug globalization_datatools %}#toc-messages).\n */\nvar Operators = /** @class */ (function () {\n function Operators() {\n }\n Object.defineProperty(Operators, \"text\", {\n /**\n * An array containing the operators for the TextFilter component.\n *\n * The operators are:\n *\n * - { text: 'filter.containsOperator', operator: 'contains' }\n * - { text: 'filter.notContainsOperator', operator: 'doesnotcontain' }\n * - { text: 'filter.eqOperator', operator: 'eq' }\n * - { text: 'filter.notEqOperator', operator: 'neq' }\n * - { text: 'filter.startsWithOperator', operator: 'startswith' }\n * - { text: 'filter.endsWithOperator', operator: 'endswith' }\n * - { text: 'filter.isNullOperator', operator: 'isnull' }\n * - { text: 'filter.isNotNullOperator', operator: 'isnotnull' }\n * - { text: 'filter.isEmptyOperator', operator: 'isempty' }\n * - { text: 'filter.isNotEmptyOperator', operator: 'isnotempty' }\n */\n get: function () {\n return __spreadArray([], textOperators, true);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Operators, \"numeric\", {\n /**\n * An array containing the operators for the NumericFilter component.\n *\n * The operators are:\n *\n * - { text: 'filter.eqOperator', operator: 'eq' }\n * - { text: 'filter.notEqOperator', operator: 'neq' }\n * - { text: 'filter.gteOperator', operator: 'gte' }\n * - { text: 'filter.gtOperator', operator: 'gt' }\n * - { text: 'filter.lteOperator', operator: 'lte' }\n * - { text: 'filter.ltOperator', operator: 'lt' }\n * - { text: 'filter.isNullOperator', operator: 'isnull' }\n * - { text: 'filter.isNotNullOperator', operator: 'isnotnull' }\n */\n get: function () {\n return __spreadArray([], numericOperators, true);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Operators, \"date\", {\n /**\n * An array containing the operators for the DateFilter component.\n *\n * The operators are:\n *\n * - { text: 'filter.eqOperator', operator: 'eq' }\n * - { text: 'filter.notEqOperator', operator: 'neq' }\n * - { text: 'filter.afterOrEqualOperator', operator: 'gte' }\n * - { text: 'filter.afterOperator', operator: 'gt' }\n * - { text: 'filter.beforeOperator', operator: 'lt' }\n * - { text: 'filter.beforeOrEqualOperator', operator: 'lte' }\n * - { text: 'filter.isNullOperator', operator: 'isnull' }\n * - { text: 'filter.isNotNullOperator', operator: 'isnotnull' }\n */\n get: function () {\n return __spreadArray([], dateOperators, true);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Operators, \"boolean\", {\n /**\n * An array containing the operators for the BooleanFilter component.\n *\n * The operators are:\n *\n * - { text: 'filter.eqOperator', operator: 'eq' }\n * - { text: 'filter.notEqOperator', operator: 'neq' }\n */\n get: function () {\n return __spreadArray([], booleanOperators, true);\n },\n enumerable: false,\n configurable: true\n });\n return Operators;\n}());\nexport { Operators };\n/**\n * @hidden\n */\nexport var stringOperator = function (operator) {\n return operator === 'contains' || operator === 'doesnotcontain' || operator === 'startswith' || operator === 'endswith';\n};\n/**\n * @hidden\n */\nexport var unaryOperator = function (operator) {\n return operator === 'isnull' || operator === 'isnotnull' || operator === 'isempty' || operator === 'isnotempty';\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Button, Toolbar, ToolbarItem } from '@progress/kendo-react-buttons';\nimport { DropDownList } from '@progress/kendo-react-dropdowns';\nimport { provideLocalizationService, registerForLocalization } from '@progress/kendo-react-intl';\nimport { xIcon } from '@progress/kendo-svg-icons';\nimport { unaryOperator, stringOperator } from './operators';\nimport { messages, filterClose, filterExpressionAriaLabel, filterExpressionDropdownAriaLabel, filterExpressionOperatorDropdownAriaLabel } from '../messages';\nvar setInitialValue = function (filter) {\n if (filter.value === undefined && !unaryOperator(filter.operator)) {\n filter.value = stringOperator(filter.operator) ? '' : null;\n }\n};\n/**\n * @hidden\n */\nvar Expression = /** @class */ (function (_super) {\n __extends(Expression, _super);\n function Expression() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onFieldChange = function (event) {\n var nextFieldName = event.value.name;\n var nextField = _this.props.fields.find(function (f) { return f.name === nextFieldName; });\n var prevFilter = _this.props.filter;\n var operator = (nextField && !nextField.operators.some(function (o) { return o.operator === prevFilter.operator; })) ?\n nextField.operators[0].operator : prevFilter.operator;\n var nextFilter = {\n field: nextFieldName,\n operator: operator\n };\n setInitialValue(nextFilter);\n _this.triggerOnFilterChange(prevFilter, nextFilter, event);\n };\n _this.onOperatorChange = function (event) {\n var operator = event.value.operator;\n var prevFilter = _this.props.filter;\n var nextFilter;\n if (unaryOperator(operator)) {\n var value = prevFilter.value, prevFilterNoValue = __rest(prevFilter, [\"value\"]);\n nextFilter = __assign(__assign({}, prevFilterNoValue), { operator: operator });\n }\n else {\n nextFilter = __assign(__assign({}, prevFilter), { operator: operator });\n }\n setInitialValue(nextFilter);\n _this.triggerOnFilterChange(prevFilter, nextFilter, event);\n };\n _this.onInputChange = function (event) {\n var prevFilter = _this.props.filter;\n var nextFilter = event.nextFilter;\n if (unaryOperator(nextFilter.operator)) {\n var field = _this.props.fields.find(function (f) { return f.name === nextFilter.field; });\n nextFilter = __assign(__assign({}, nextFilter), { operator: (field && field.operators[0].operator) || nextFilter.operator });\n }\n _this.triggerOnFilterChange(prevFilter, nextFilter, event);\n };\n _this.triggerOnFilterChange = function (prevFilter, nextFilter, event) {\n var changeEvent = {\n prevFilter: prevFilter,\n nextFilter: nextFilter,\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n target: _this\n };\n _this.props.onChange.call(undefined, changeEvent);\n };\n _this.onFilterRemove = function (event) {\n var removeEvent = {\n filter: _this.props.filter,\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n target: _this\n };\n _this.props.onRemove.call(undefined, removeEvent);\n };\n return _this;\n }\n Expression.prototype.render = function () {\n var locService = provideLocalizationService(this);\n var _a = this.props, fields = _a.fields, filter = _a.filter, _b = _a.ariaLabel, ariaLabel = _b === void 0 ? locService.toLanguageString(filterExpressionAriaLabel, messages[filterExpressionAriaLabel]) : _b;\n var field = fields.find(function (f) { return f.name === filter.field; });\n var operators = ((field && field.operators) || [])\n .map(function (o) { return (__assign(__assign({}, o), { text: locService.toLanguageString(o.text, messages[o.text] || o.text) })); });\n return (React.createElement(\"div\", { className: \"k-filter-toolbar\" },\n React.createElement(Toolbar, { keyboardNavigation: false, role: \"toolbar\", ariaLabel: ariaLabel },\n React.createElement(ToolbarItem, { className: \"k-filter-field\" },\n React.createElement(DropDownList, { className: \"k-filter-dropdown\", data: fields, textField: \"label\", value: fields.find(function (f) { return f.name === filter.field; }), onChange: this.onFieldChange, ariaLabel: locService.toLanguageString(filterExpressionDropdownAriaLabel, messages[filterExpressionDropdownAriaLabel]) })),\n React.createElement(ToolbarItem, { className: \"k-filter-operator\" },\n React.createElement(DropDownList, { data: operators, textField: \"text\", value: operators.find(function (o) { return o.operator === filter.operator; }), onChange: this.onOperatorChange, ariaLabel: locService.toLanguageString(filterExpressionOperatorDropdownAriaLabel, messages[filterExpressionOperatorDropdownAriaLabel]) })),\n React.createElement(ToolbarItem, { className: \"k-filter-value\" }, field && React.createElement(field.filter, { filter: filter, onFilterChange: this.onInputChange, min: field.min, max: field.max })),\n React.createElement(Button, { className: 'k-toolbar-button', title: locService.toLanguageString(filterClose, messages[filterClose]), icon: \"x\", svgIcon: xIcon, fillMode: \"flat\", type: \"button\", onClick: this.onFilterRemove }))));\n };\n Expression.propTypes = {\n filter: PropTypes.object.isRequired,\n fields: PropTypes.array.isRequired,\n ariaLabel: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n onRemove: PropTypes.func.isRequired\n };\n return Expression;\n}(React.Component));\nexport { Expression };\nregisterForLocalization(Expression);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { isCompositeFilterDescriptor } from '@progress/kendo-data-query';\nimport { Button, Toolbar, ButtonGroup } from '@progress/kendo-react-buttons';\nimport { provideLocalizationService, registerForLocalization } from '@progress/kendo-react-intl';\nimport { filterAddExpressionIcon, filterAddGroupIcon, xIcon } from '@progress/kendo-svg-icons';\nimport { Expression } from './Expression';\nimport { stringOperator } from './operators';\nimport { messages, filterAndLogic, filterOrLogic, filterAddExpression, filterAddGroup, filterClose, filterGroupAriaLabel } from '../messages';\n/**\n * @hidden\n */\nvar Group = /** @class */ (function (_super) {\n __extends(Group, _super);\n function Group() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onGroupRemove = function (event) {\n var ev = {\n filter: _this.props.filter,\n target: _this,\n syntheticEvent: event,\n nativeEvent: event.nativeEvent\n };\n _this.props.onRemove.call(undefined, ev);\n };\n _this.onAddExpression = function (event) {\n var prevFilter = _this.props.filter;\n var firstField = _this.props.fields[0];\n var newExpression = { field: firstField.name, operator: firstField.operators[0].operator };\n newExpression.value = stringOperator(newExpression.operator) ? '' : null;\n var ev = {\n nextFilter: __assign(__assign({}, prevFilter), { filters: __spreadArray(__spreadArray([], prevFilter.filters, true), [newExpression], false) }),\n prevFilter: prevFilter,\n target: _this,\n syntheticEvent: event,\n nativeEvent: event.nativeEvent\n };\n _this.props.onChange.call(undefined, ev);\n };\n _this.onAddGroup = function (event) {\n var prevFilter = _this.props.filter;\n var ev = {\n nextFilter: __assign(__assign({}, prevFilter), { filters: __spreadArray(__spreadArray([], prevFilter.filters, true), [__assign({}, _this.props.defaultGroupFilter)], false) }),\n prevFilter: prevFilter,\n target: _this,\n syntheticEvent: event,\n nativeEvent: event.nativeEvent\n };\n _this.props.onChange.call(undefined, ev);\n };\n _this.onLogicAnd = function (event) { return _this.changeLogic('and', event); };\n _this.onLogicOr = function (event) { return _this.changeLogic('or', event); };\n _this.changeLogic = function (logic, event) {\n var prevFilter = _this.props.filter;\n if (prevFilter.logic !== logic) {\n var ev = {\n nextFilter: __assign(__assign({}, prevFilter), { logic: logic }),\n prevFilter: prevFilter,\n target: _this,\n syntheticEvent: event,\n nativeEvent: event.nativeEvent\n };\n _this.props.onChange.call(undefined, ev);\n }\n };\n _this.replaceFilter = function (prevFilter, nextFilter) {\n var filter = _this.props.filter;\n var filters = filter.filters.map(function (f) { return f === prevFilter ? nextFilter : f; });\n return __assign(__assign({}, filter), { filters: filters });\n };\n _this.onChange = function (event) {\n var nextFilter = _this.replaceFilter(event.prevFilter, event.nextFilter);\n var changeEvent = {\n nextFilter: nextFilter,\n prevFilter: _this.props.filter,\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n target: _this\n };\n _this.props.onChange.call(undefined, changeEvent);\n };\n _this.onRemove = function (event) {\n var prevFilter = _this.props.filter;\n var filters = prevFilter.filters.filter(function (f) { return f !== event.filter; });\n var changeEvent = {\n nextFilter: __assign(__assign({}, prevFilter), { filters: filters }),\n prevFilter: prevFilter,\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n target: _this\n };\n _this.props.onChange.call(undefined, changeEvent);\n };\n return _this;\n }\n Group.prototype.render = function () {\n var _this = this;\n var locService = provideLocalizationService(this);\n var _a = this.props, fields = _a.fields, filter = _a.filter, _b = _a.ariaLabel, ariaLabel = _b === void 0 ? locService.toLanguageString(filterGroupAriaLabel, messages[filterGroupAriaLabel]) : _b;\n return (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: \"k-filter-toolbar\" },\n React.createElement(Toolbar, { keyboardNavigation: false, role: \"toolbar\", ariaLabel: ariaLabel },\n React.createElement(ButtonGroup, { className: 'k-toolbar-button-group' },\n React.createElement(Button, { className: 'k-toolbar-button', togglable: true, onClick: this.onLogicAnd, selected: filter.logic === 'and', type: \"button\" }, locService.toLanguageString(filterAndLogic, messages[filterAndLogic])),\n React.createElement(Button, { className: 'k-toolbar-button', togglable: true, onClick: this.onLogicOr, selected: filter.logic === 'or', type: \"button\" }, locService.toLanguageString(filterOrLogic, messages[filterOrLogic]))),\n React.createElement(Button, { className: 'k-toolbar-button', title: locService.toLanguageString(filterAddExpression, messages[filterAddExpression]), icon: \"filter-add-expression\", svgIcon: filterAddExpressionIcon, type: \"button\", onClick: this.onAddExpression }, locService.toLanguageString(filterAddExpression, messages[filterAddExpression])),\n React.createElement(Button, { className: 'k-toolbar-button', title: locService.toLanguageString(filterAddGroup, messages[filterAddGroup]), icon: \"filter-add-group\", svgIcon: filterAddGroupIcon, type: \"button\", onClick: this.onAddGroup }, locService.toLanguageString(filterAddGroup, messages[filterAddGroup])),\n React.createElement(Button, { className: 'k-toolbar-button', title: locService.toLanguageString(filterClose, messages[filterClose]), icon: \"x\", svgIcon: xIcon, fillMode: \"flat\", type: \"button\", onClick: this.onGroupRemove }))),\n filter.filters.length > 0 && (React.createElement(\"ul\", { role: 'group', className: \"k-filter-lines\" }, filter.filters.map(function (f, idx) {\n return (React.createElement(\"li\", { role: 'treeitem', key: idx, className: \"k-filter-item\" }, isCompositeFilterDescriptor(f) ?\n React.createElement(Group, { filter: f, fields: fields, onChange: _this.onChange, onRemove: _this.onRemove, defaultGroupFilter: _this.props.defaultGroupFilter, ariaLabel: _this.props.ariaLabel, ariaLabelExpression: _this.props.ariaLabelExpression })\n :\n React.createElement(Expression, { filter: f, fields: fields, ariaLabel: _this.props.ariaLabelExpression, onChange: _this.onChange, onRemove: _this.onRemove })));\n })))));\n };\n Group.propTypes = {\n filter: PropTypes.object.isRequired,\n fields: PropTypes.array.isRequired,\n ariaLabel: PropTypes.string,\n ariaLabelExpression: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n onRemove: PropTypes.func.isRequired,\n defaultGroupFilter: PropTypes.object.isRequired\n };\n return Group;\n}(React.Component));\nexport { Group };\nregisterForLocalization(Group);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\nimport { Group } from './Group';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * Represents the [KendoReact Filter component]({% slug overview_filter %}).\n */\nvar Filter = /** @class */ (function (_super) {\n __extends(Filter, _super);\n function Filter(props) {\n var _this = _super.call(this, props) || this;\n _this.onFilterChange = function (event) {\n var changeEvent = {\n filter: event.nextFilter,\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n target: _this\n };\n _this.props.onChange.call(undefined, changeEvent);\n };\n _this.onGroupRemove = function (event) {\n var changeEvent = {\n filter: __assign(__assign({}, _this.props.value), { filters: [] }),\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n target: _this\n };\n _this.props.onChange.call(undefined, changeEvent);\n };\n validatePackage(packageMetadata);\n return _this;\n }\n /**\n * @hidden\n */\n Filter.prototype.render = function () {\n return (React.createElement(\"div\", { className: classNames('k-filter', this.props.className), style: this.props.style },\n React.createElement(\"ul\", { role: 'tree', className: \"k-filter-container\", \"aria-label\": this.props.ariaLabel },\n React.createElement(\"li\", { role: 'treeitem', className: \"k-filter-group-main\" },\n React.createElement(Group, { filter: this.props.value, fields: this.props.fields, ariaLabel: this.props.ariaLabelGroup, ariaLabelExpression: this.props.ariaLabelExpression, onChange: this.onFilterChange, onRemove: this.onGroupRemove, defaultGroupFilter: this.props.defaultGroupFilter || { logic: 'and', filters: [] } })))));\n };\n /**\n * @hidden\n */\n Filter.propTypes = {\n className: PropTypes.string,\n style: PropTypes.object,\n fields: function (props, propName) {\n var prop = props[propName];\n if (prop === undefined) {\n return new Error(\"Property '\".concat(propName, \"' is missing.\"));\n }\n else if (!Array.isArray(prop)) {\n return new Error(\"Property '\".concat(propName, \"' needs to be Array.\"));\n }\n else if (Object.keys(prop.reduce(function (acc, cur) {\n var _a;\n return (__assign(__assign({}, acc), (_a = {}, _a[cur.name] = 1, _a)));\n }, {})).length !== prop.length) {\n return new Error(\"Property '\".concat(propName, \"' needs to contain objects with unique 'name' field.\"));\n }\n return null;\n },\n ariaLabelGroup: PropTypes.string,\n ariaLabelExpression: PropTypes.string,\n value: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired\n };\n return Filter;\n}(React.Component));\nexport { Filter };\n","import * as React from 'react';\nimport { classNames, IconWrap, toIconName } from '@progress/kendo-react-common';\nexport var ColumnMenuItem = function (props) {\n return (React.createElement(\"div\", { onClick: props.onClick, className: classNames('k-columnmenu-item', { 'k-selected': props.selected }, { 'k-disabled': props.disabled }) },\n (props.iconClass || props.svgIcon) && React.createElement(IconWrap, { name: props.iconClass ? toIconName(props.iconClass) : undefined, icon: props.svgIcon }),\n props.title));\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Keys, classNames, guid, useDir, getTabIndex, dispatchEvent, createPropsContext, usePropsContext, kendoThemeMaps } from '@progress/kendo-react-common';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { useLocalization } from '@progress/kendo-react-intl';\nimport { messages, checkboxValidation, checkboxOptionalText } from './../messages';\n/**\n * Represents the PropsContext of the `Checkbox` component.\n * Used for global configuration of all `Checkbox` instances.\n *\n * For more information, refer to the [Inputs Props Context]({% slug props-context_inputs %}) article.\n */\nexport var CheckboxPropsContext = createPropsContext();\n/**\n * Represents the [KendoReact Checkbox component]({% slug overview_checkbox %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * render() {\n * return ;\n * }\n * }\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nexport var Checkbox = React.forwardRef(function (directProps, target) {\n var _a;\n validatePackage(packageMetadata);\n var props = usePropsContext(CheckboxPropsContext, directProps);\n var _b = props, ariaDescribedBy = _b.ariaDescribedBy, ariaLabelledBy = _b.ariaLabelledBy, checked = _b.checked, className = _b.className, labelClassName = _b.labelClassName, children = _b.children, defaultChecked = _b.defaultChecked, disabled = _b.disabled, defaultValue = _b.defaultValue, id = _b.id, size = _b.size, rounded = _b.rounded, label = _b.label, labelPlacement = _b.labelPlacement, name = _b.name, labelOptional = _b.labelOptional, onChange = _b.onChange, onFocus = _b.onFocus, onBlur = _b.onBlur, tabIndex = _b.tabIndex, value = _b.value, required = _b.required, valid = _b.valid, validationMessage = _b.validationMessage, validityStyles = _b.validityStyles, \n // Removed to support direct use in Form Field component\n visited = _b.visited, touched = _b.touched, modified = _b.modified, others = __rest(_b, [\"ariaDescribedBy\", \"ariaLabelledBy\", \"checked\", \"className\", \"labelClassName\", \"children\", \"defaultChecked\", \"disabled\", \"defaultValue\", \"id\", \"size\", \"rounded\", \"label\", \"labelPlacement\", \"name\", \"labelOptional\", \"onChange\", \"onFocus\", \"onBlur\", \"tabIndex\", \"value\", \"required\", \"valid\", \"validationMessage\", \"validityStyles\", \"visited\", \"touched\", \"modified\"]);\n var elementRef = React.useRef(null);\n var focusElement = React.useCallback(function () {\n if (elementRef.current) {\n elementRef.current.focus();\n }\n }, []);\n var getImperativeHandle = React.useCallback(function () { return ({\n element: elementRef.current,\n focus: focusElement,\n get name() { return elementRef.current && elementRef.current.name; }\n }); }, [focusElement]);\n React.useImperativeHandle(target, getImperativeHandle);\n var _c = React.useState(defaultChecked), stateChecked = _c[0], setStateChecked = _c[1];\n var _d = React.useState(defaultValue), stateValue = _d[0], setStateValue = _d[1];\n var valueIsBoolean = (typeof value === 'boolean' || value === null);\n var isCheckedControlled = checked !== undefined;\n var isValueControlled = valueIsBoolean;\n var currentValue = isValueControlled ? value : stateValue;\n var currentChecked = isCheckedControlled ? checked : isValueControlled ? undefined : stateChecked;\n var useValueAsChecked = currentChecked === undefined && currentValue;\n var checkedProp = useValueAsChecked ? currentValue : currentChecked;\n var valueProp = (useValueAsChecked || isValueControlled) ? (value === null ? value : undefined) : value || currentValue;\n var indeterminateProp = checkedProp === null || valueProp === null;\n var calculatedId = React.useMemo(function () { return guid(); }, []);\n var localizationService = useLocalization();\n var localizeMessage = function (message) {\n return localizationService.toLanguageString(message, messages[message]);\n };\n var defaultValidationMessage = localizeMessage(checkboxValidation);\n var optionalMessage = localizeMessage(checkboxOptionalText);\n var isValid = valid !== undefined ?\n valid :\n !required ?\n true :\n currentChecked ? true : false;\n React.useEffect(function () {\n if (elementRef.current && elementRef.current.setCustomValidity) {\n elementRef.current.setCustomValidity(isValid\n ? ''\n : (validationMessage || defaultValidationMessage));\n }\n }, [isValid, validationMessage, defaultValidationMessage]);\n var setValue = React.useCallback(function (e, val) {\n if (!isValueControlled && !disabled) {\n setStateValue(val);\n if (!isCheckedControlled && !disabled) {\n setStateChecked(val);\n }\n }\n if (onChange && !disabled) {\n dispatchEvent(onChange, e, __assign(__assign({}, getImperativeHandle()), { value: val }), { value: val });\n }\n }, [isCheckedControlled, disabled, onChange, isValueControlled, getImperativeHandle]);\n var handleChange = React.useCallback(function (e) {\n var newValue = e.target.checked;\n setValue(e, newValue);\n }, [setValue, value]);\n var handleKeyDown = React.useCallback(function (e) {\n if (disabled) {\n return;\n }\n var keyCode = e.keyCode;\n var currentVal = e.currentTarget.checked;\n if (keyCode === Keys.space) {\n e.preventDefault();\n e.stopPropagation();\n setValue(e, !currentVal);\n }\n }, [disabled, setValue]);\n var handleKeyUp = React.useCallback(function (e) {\n if (disabled) {\n return;\n }\n var keyCode = e.keyCode;\n if (keyCode === Keys.space) {\n e.preventDefault();\n }\n }, [disabled]);\n var handleFocus = React.useCallback(function (e) {\n if (onFocus && !disabled) {\n dispatchEvent(onFocus, e, getImperativeHandle(), undefined);\n }\n }, [onFocus, disabled, getImperativeHandle]);\n var handleBlur = React.useCallback(function (e) {\n if (onBlur && !disabled) {\n dispatchEvent(onBlur, e, getImperativeHandle(), undefined);\n }\n }, [onBlur, disabled, getImperativeHandle]);\n var dir = useDir(elementRef, props.dir);\n var checkboxClasses = classNames('k-checkbox-wrap', className);\n var inputProps = __assign(__assign({ type: 'checkbox', className: classNames('k-checkbox', (_a = {},\n _a[\"k-checkbox-\".concat(kendoThemeMaps.sizeMap[size] || size)] = size,\n _a[\"k-rounded-\".concat(kendoThemeMaps.roundedMap[rounded] || rounded)] = rounded,\n _a['k-indeterminate'] = indeterminateProp,\n _a['k-disabled'] = disabled,\n _a['k-invalid k-invalid'] = !(isValid || validityStyles !== undefined || validityStyles === true),\n _a)), ref: elementRef, name: name, id: id || calculatedId, 'aria-labelledby': ariaLabelledBy, 'aria-describedby': ariaDescribedBy, checked: Boolean(checkedProp), disabled: disabled, tabIndex: getTabIndex(tabIndex, disabled), role: 'checkbox', required: required !== undefined ? required : false, 'aria-checked': currentChecked || checkedProp ?\n true :\n indeterminateProp ?\n 'mixed' :\n false, 'aria-disabled': disabled || undefined }, others), { onChange: handleChange, onKeyDown: handleKeyDown, onKeyUp: handleKeyUp, onFocus: handleFocus, onBlur: handleBlur });\n var checkboxInput = (React.createElement(React.Fragment, null, \n // removing value prop is required due to bug in react where\n // value set to undefined override default submit value\n valueProp === undefined ? (React.createElement(\"input\", __assign({}, inputProps))) : (React.createElement(\"input\", __assign({}, inputProps, { value: valueIsBoolean ? undefined : valueProp === null ? '' : valueProp })))));\n var checkboxLabel = (React.createElement(React.Fragment, null, label !== undefined ? (React.createElement(\"label\", { className: classNames('k-checkbox-label', labelClassName), htmlFor: id || calculatedId, style: { userSelect: 'none' } },\n label,\n labelOptional && React.createElement(\"span\", { className: \"k-label-optional\" }, optionalMessage))) : null));\n return (React.createElement(React.Fragment, null, (labelPlacement === 'before') ? (React.createElement(\"span\", { className: checkboxClasses, dir: 'rtl' },\n checkboxInput,\n checkboxLabel,\n children)) : (React.createElement(\"span\", { className: checkboxClasses, dir: dir },\n checkboxInput,\n checkboxLabel,\n children))));\n});\nCheckbox.propTypes = {\n checked: PropTypes.bool,\n className: PropTypes.string,\n defaultChecked: PropTypes.bool,\n defaultValue: PropTypes.any,\n dir: PropTypes.string,\n disabled: PropTypes.bool,\n id: PropTypes.string,\n size: PropTypes.oneOf([null, 'small', 'medium', 'large']),\n rounded: PropTypes.oneOf([null, 'small', 'medium', 'large']),\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n label: PropTypes.any,\n labelPlacement: PropTypes.string,\n labelOptional: PropTypes.bool,\n name: PropTypes.string,\n tabIndex: PropTypes.number,\n value: PropTypes.any,\n validationMessage: PropTypes.string,\n required: PropTypes.bool,\n validate: PropTypes.bool,\n valid: PropTypes.bool,\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func\n};\nvar defaultProps = {\n size: 'medium',\n rounded: 'medium'\n};\nCheckbox.defaultProps = defaultProps;\nCheckbox.displayName = 'KendoCheckbox';\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { columnMenuFilterEqOperator, columnMenuFilterNotEqOperator, columnMenuFilterIsNullOperator, columnMenuFilterIsNotNullOperator, columnMenuFilterIsEmptyOperator, columnMenuFilterIsNotEmptyOperator, columnMenuFilterStartsWithOperator, columnMenuFilterContainsOperator, columnMenuFilterNotContainsOperator, columnMenuFilterEndsWithOperator, columnMenuFilterGteOperator, columnMenuFilterGtOperator, columnMenuFilterLteOperator, columnMenuFilterLtOperator, columnMenuFilterAfterOrEqualOperator, columnMenuFilterAfterOperator, columnMenuFilterBeforeOperator, columnMenuFilterBeforeOrEqualOperator, columnMenuFilterIsTrue } from '../messages';\nvar textOperators = [\n { text: columnMenuFilterContainsOperator, operator: 'contains' },\n { text: columnMenuFilterNotContainsOperator, operator: 'doesnotcontain' },\n { text: columnMenuFilterEqOperator, operator: 'eq' },\n { text: columnMenuFilterNotEqOperator, operator: 'neq' },\n { text: columnMenuFilterStartsWithOperator, operator: 'startswith' },\n { text: columnMenuFilterEndsWithOperator, operator: 'endswith' },\n { text: columnMenuFilterIsNullOperator, operator: 'isnull' },\n { text: columnMenuFilterIsNotNullOperator, operator: 'isnotnull' },\n { text: columnMenuFilterIsEmptyOperator, operator: 'isempty' },\n { text: columnMenuFilterIsNotEmptyOperator, operator: 'isnotempty' }\n];\nvar numericOperators = [\n { text: columnMenuFilterEqOperator, operator: 'eq' },\n { text: columnMenuFilterNotEqOperator, operator: 'neq' },\n { text: columnMenuFilterGteOperator, operator: 'gte' },\n { text: columnMenuFilterGtOperator, operator: 'gt' },\n { text: columnMenuFilterLteOperator, operator: 'lte' },\n { text: columnMenuFilterLtOperator, operator: 'lt' },\n { text: columnMenuFilterIsNullOperator, operator: 'isnull' },\n { text: columnMenuFilterIsNotNullOperator, operator: 'isnotnull' }\n];\nvar dateOperators = [\n { text: columnMenuFilterEqOperator, operator: 'eq' },\n { text: columnMenuFilterNotEqOperator, operator: 'neq' },\n { text: columnMenuFilterAfterOrEqualOperator, operator: 'gte' },\n { text: columnMenuFilterAfterOperator, operator: 'gt' },\n { text: columnMenuFilterBeforeOperator, operator: 'lt' },\n { text: columnMenuFilterBeforeOrEqualOperator, operator: 'lte' },\n { text: columnMenuFilterIsNullOperator, operator: 'isnull' },\n { text: columnMenuFilterIsNotNullOperator, operator: 'isnotnull' }\n];\nvar booleanOperators = [\n { text: columnMenuFilterIsTrue, operator: '' }\n];\n/**\n * Represents the operators for the ColumnMenuTextFilter, ColumnMenuNumericFilter,\n * ColumnMenuDateFilter and ColumnMenuBooleanFilter components.\n *\n * The text field of each operator object will be resolved according to the\n * [localization messages]({% slug globalization_datatools %}#toc-messages).\n */\nvar ColumnMenuOperators = /** @class */ (function () {\n function ColumnMenuOperators() {\n }\n Object.defineProperty(ColumnMenuOperators, \"text\", {\n /**\n * An array containing the operators for the ColumnMenuTextFilter component.\n *\n * The operators are:\n *\n * - { text: 'columnMenu.filterContainsOperator', operator: 'contains' }\n * - { text: 'columnMenu.filterNotContainsOperator', operator: 'doesnotcontain' }\n * - { text: 'columnMenu.filterEqOperator', operator: 'eq' }\n * - { text: 'columnMenu.filterNotEqOperator', operator: 'neq' }\n * - { text: 'columnMenu.filterStartsWithOperator', operator: 'startswith' }\n * - { text: 'columnMenu.filterEndsWithOperator', operator: 'endswith' }\n * - { text: 'columnMenu.filterIsNullOperator', operator: 'isnull' }\n * - { text: 'columnMenu.filterIsNotNullOperator', operator: 'isnotnull' }\n * - { text: 'columnMenu.filterIsEmptyOperator', operator: 'isempty' }\n * - { text: 'columnMenu.filterIsNotEmptyOperator', operator: 'isnotempty' }\n */\n get: function () {\n return __spreadArray([], textOperators, true);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ColumnMenuOperators, \"numeric\", {\n /**\n * An array containing the operators for the ColumnMenuNumericFilter component.\n *\n * The operators are:\n *\n * - { text: 'columnMenu.filterEqOperator', operator: 'eq' }\n * - { text: 'columnMenu.filterNotEqOperator', operator: 'neq' }\n * - { text: 'columnMenu.filterGteOperator', operator: 'gte' }\n * - { text: 'columnMenu.filterGtOperator', operator: 'gt' }\n * - { text: 'columnMenu.filterLteOperator', operator: 'lte' }\n * - { text: 'columnMenu.filterLtOperator', operator: 'lt' }\n * - { text: 'columnMenu.filterIsNullOperator', operator: 'isnull' }\n * - { text: 'columnMenu.filterIsNotNullOperator', operator: 'isnotnull' }\n */\n get: function () {\n return __spreadArray([], numericOperators, true);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ColumnMenuOperators, \"date\", {\n /**\n * An array containing the operators for the ColumnMenuDateFilter component.\n *\n * The operators are:\n *\n * - { text: 'columnMenu.filterEqOperator', operator: 'eq' }\n * - { text: 'columnMenu.filterNotEqOperator', operator: 'neq' }\n * - { text: 'columnMenu.filterAfterOrEqualOperator', operator: 'gte' }\n * - { text: 'columnMenu.filterAfterOperator', operator: 'gt' }\n * - { text: 'columnMenu.filterBeforeOperator', operator: 'lt' }\n * - { text: 'columnMenu.filterBeforeOrEqualOperator', operator: 'lte' }\n * - { text: 'columnMenu.filterIsNullOperator', operator: 'isnull' }\n * - { text: 'columnMenu.filterIsNotNullOperator', operator: 'isnotnull' }\n */\n get: function () {\n return __spreadArray([], dateOperators, true);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ColumnMenuOperators, \"boolean\", {\n /**\n * An array containing the operators for the ColumnMenuBooleanFilter component.\n *\n * The operators are:\n *\n * - { text: 'columnMenu.filterIsTrue', operator: '' }\n */\n get: function () {\n return __spreadArray([], booleanOperators, true);\n },\n enumerable: false,\n configurable: true\n });\n return ColumnMenuOperators;\n}());\nexport { ColumnMenuOperators };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { useLocalization } from '@progress/kendo-react-intl';\nimport { DropDownList } from '@progress/kendo-react-dropdowns';\nimport { NumericTextBox, Checkbox, Input } from '@progress/kendo-react-inputs';\nimport { DatePicker } from '@progress/kendo-react-dateinputs';\nimport { messages } from '../messages';\nimport { ColumnMenuOperators } from './ColumnMenuOperators';\nvar ColumnMenuFilter = function (props) {\n var filter = props.filter, onFilterChange = props.onFilterChange, operators = props.operators, initialFilter = props.initialFilter;\n var operatorChange = React.useCallback(function (event) {\n var prevFilter = filter;\n var operator = event.target.value.operator;\n var nextFilter = prevFilter ? __assign(__assign({}, prevFilter), { operator: operator }) : { value: initialFilter.value, operator: operator };\n onFilterChange.call(undefined, event.syntheticEvent, nextFilter, prevFilter);\n }, [filter, onFilterChange, initialFilter]);\n var inputChange = React.useCallback(function (event) {\n var value = event.target.value;\n var prevFilter = filter;\n var nextFilter = prevFilter ? __assign(__assign({}, prevFilter), { value: value }) : { value: value, operator: operators[0].operator };\n onFilterChange.call(undefined, event, nextFilter, prevFilter);\n }, [filter, onFilterChange, operators]);\n var localization = useLocalization();\n var data = operators.map(function (o) { return (__assign(__assign({}, o), { text: localization.toLanguageString(o.text, messages[o.text]) })); });\n return (React.createElement(React.Fragment, null,\n React.createElement(DropDownList, { value: data.find(function (item) { return item.operator === filter.operator; }) || null, onChange: operatorChange, data: data, textField: \"text\" }),\n React.createElement(props.input, { value: filter.value, onChange: inputChange })));\n};\nexport var ColumnMenuBooleanFilter = function (props) {\n var filter = props.filter, onFilterChange = props.onFilterChange;\n var inputChange = React.useCallback(function (event) { return onFilterChange.call(undefined, event.syntheticEvent, __assign(__assign({}, filter), { value: event.value }), filter); }, [filter, onFilterChange]);\n var isTrue = ColumnMenuOperators.boolean[0].text;\n return (React.createElement(Checkbox, { onChange: inputChange, checked: filter.value, label: useLocalization().toLanguageString(isTrue, messages[isTrue]), labelPlacement: \"after\" }));\n};\nexport var ColumnMenuTextFilter = function (props) {\n var input = React.useCallback(function (pr) { return React.createElement(Input, __assign({}, pr, { value: pr.value || '' })); }, []);\n var operators = React.useRef(ColumnMenuOperators.text);\n var initialFilter = React.useRef({ operator: '', value: '' });\n return (React.createElement(ColumnMenuFilter, __assign({ initialFilter: initialFilter.current, input: input, operators: props.operators || operators.current }, props)));\n};\nexport var ColumnMenuNumericFilter = function (props) {\n var input = React.useCallback(function (pr) { return React.createElement(NumericTextBox, __assign({}, pr, { value: pr.value || null })); }, []);\n var operators = React.useRef(ColumnMenuOperators.numeric);\n var initialFilter = React.useRef({ operator: '', value: null });\n return (React.createElement(ColumnMenuFilter, __assign({ initialFilter: initialFilter.current, input: input, operators: props.operators || operators.current }, props)));\n};\nexport var ColumnMenuDateFilter = function (props) {\n var input = React.useCallback(function (pr) { return React.createElement(DatePicker, __assign({}, pr, { value: pr.value || null })); }, []);\n var operators = React.useRef(ColumnMenuOperators.date);\n var initialFilter = React.useRef({ operator: '', value: null });\n return (React.createElement(ColumnMenuFilter, __assign({ initialFilter: initialFilter.current, input: input, operators: props.operators || operators.current }, props)));\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { DropDownList } from '@progress/kendo-react-dropdowns';\nimport { useLocalization } from '@progress/kendo-react-intl';\nimport { messages, columnMenuFilterAndLogic as and, columnMenuFilterOrLogic as or } from '../messages';\nvar logicData = [{ text: and, logic: 'and' }, { text: or, logic: 'or' }];\nexport var ColumnMenuFilterLogic = function (props) {\n var localization = useLocalization();\n var data = (props.data || logicData)\n .map(function (i) { return (__assign(__assign({}, i), { text: localization.toLanguageString(i.text, messages[i.text]) })); });\n return (React.createElement(DropDownList, __assign({ onChange: props.onChange, className: \"k-filter-and\", textField: \"text\" }, props, { data: data, value: data.find(function (i) { return i.logic === props.value; }) })));\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { Reveal } from '@progress/kendo-react-animation';\nimport { useLocalization } from '@progress/kendo-react-intl';\nimport { messages, columnMenuFilterClearButton as clear, columnMenuFilterSubmitButton as submit } from '../messages';\nimport { Button } from '@progress/kendo-react-buttons';\nexport var ColumnMenuForm = function (props) {\n return (React.createElement(\"div\", { className: \"k-columnmenu-item-content\" },\n React.createElement(Reveal, { style: { position: 'relative', display: 'block' } }, props.show && (React.createElement(\"div\", { className: \"kendo-grid-filter-menu-container\" },\n React.createElement(\"form\", { className: \"k-filter-menu k-group k-reset k-state-border-up\", onSubmit: props.onSubmit, onReset: props.onReset },\n React.createElement(\"div\", { className: \"k-filter-menu-container\" },\n props.children,\n React.createElement(\"div\", { className: \"k-actions k-hstack k-justify-content-stretch\" }, props.actions))))))));\n};\n/**\n * @hidden\n */\nexport var ColumnMenuFilterForm = function (props) {\n var localization = useLocalization();\n return (React.createElement(ColumnMenuForm, __assign({}, props, { actions: (React.createElement(React.Fragment, null,\n React.createElement(Button, { type: \"reset\" }, localization.toLanguageString(clear, messages[clear])),\n React.createElement(Button, { themeColor: 'primary' }, localization.toLanguageString(submit, messages[submit])))) })));\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport * as React from 'react';\nimport { Popup } from '@progress/kendo-react-popup';\nimport { useLocalization } from '@progress/kendo-react-intl';\nimport { isCompositeFilterDescriptor } from '@progress/kendo-data-query';\nimport { ColumnMenuItem } from './ColumnMenuItem';\nimport { ColumnMenuTextFilter, ColumnMenuNumericFilter, ColumnMenuDateFilter, ColumnMenuBooleanFilter } from './ColumnMenuFilters';\nimport { ColumnMenuFilterLogic } from './ColumnMenuFilterLogic';\nimport { ColumnMenuFilterForm } from './ColumnMenuFilterForm';\nimport { messages, columnMenuFilterTitle, columnMenuSortAscending, columnMenuSortDescending } from '../messages';\nimport { IconWrap, validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { filterIcon, moreVerticalIcon, sortAscSmallIcon, sortDescSmallIcon } from '@progress/kendo-svg-icons';\n/** @hidden */\nvar ColumnMenuWrapper = function (props) {\n validatePackage(packageMetadata);\n var emptySort = React.useRef([]);\n var field = props.field, filter = props.filter, _a = props.sort, sort = _a === void 0 ? emptySort.current : _a, onSortChange = props.onSortChange, onFilterChange = props.onFilterChange, initialFilter = props.initialFilter, _b = props.sortAsc, sortAsc = _b === void 0 ? false : _b, _c = props.sortDesc, sortDesc = _c === void 0 ? false : _c, _d = props.filterContent, filterContent = _d === void 0 ? [] : _d, _e = props.expandFilters, expandFilters = _e === void 0 ? false : _e;\n var _f = React.useState(false), show = _f[0], setShow = _f[1];\n var _g = React.useState(expandFilters), filterExpand = _g[0], setFilterExpand = _g[1];\n var _h = React.useState(field && initialFilter ? initialFilter(field) : null), currentFilter = _h[0], setCurrentFilter = _h[1];\n var anchor = React.useRef(null);\n var popupRef = React.useRef(null);\n var blurTimeout = React.useRef(null);\n var willBlur = React.useRef(false);\n var menuFilter = React.useCallback(function () {\n return (filter || []).find(function (f) { return f.filters.every(function (inF) { return !isCompositeFilterDescriptor(inF) && inF.field === field; }); });\n }, [filter, field]);\n var closeMenu = React.useCallback(function () {\n setShow(false);\n }, []);\n var onBlur = React.useCallback(function () {\n if (willBlur.current) {\n willBlur.current = false;\n return;\n }\n clearTimeout(blurTimeout.current);\n blurTimeout.current = window.setTimeout(function () { closeMenu(); });\n }, [closeMenu]);\n var onFocus = React.useCallback(function () { return clearTimeout(blurTimeout.current); }, []);\n var onAnchorMouseDown = React.useCallback(function (event) {\n willBlur.current = show && event.currentTarget === anchor.current;\n }, [show]);\n var onColumnMenuButtonClick = React.useCallback(function () {\n setShow(!show);\n if (field && initialFilter) {\n setFilterExpand(!show ? expandFilters : false);\n setCurrentFilter(show ?\n currentFilter :\n (menuFilter() || initialFilter(field)));\n }\n }, [menuFilter, field, show, currentFilter, initialFilter, expandFilters]);\n React.useEffect(function () {\n if (show && popupRef.current) {\n popupRef.current.focus();\n }\n }, [show]);\n var filterItemClick = React.useCallback(function () { return setFilterExpand(!filterExpand); }, [filterExpand]);\n var changeSort = React.useCallback(function (event, dir) {\n var newSort = __spreadArray([], sort, true);\n var currentSortIndex = newSort.findIndex(function (d) { return d.field === field; });\n var newSortDescriptor = { field: field, dir: dir };\n if (currentSortIndex >= 0) {\n if (newSort[currentSortIndex].dir !== newSortDescriptor.dir) {\n newSort.splice(currentSortIndex, 1, newSortDescriptor);\n }\n else {\n newSort.splice(currentSortIndex, 1);\n }\n }\n else {\n newSort.push(newSortDescriptor);\n }\n closeMenu();\n if (onSortChange) {\n onSortChange.call(undefined, event, newSort, field);\n }\n }, [sort, field, onSortChange, closeMenu]);\n var filterChange = React.useCallback(function (_event, nextFilter, prevFilter) {\n var stateFilter = __assign(__assign({}, currentFilter), { filters: __spreadArray([], currentFilter.filters, true) });\n var index = stateFilter.filters.indexOf(prevFilter);\n stateFilter.filters.splice(index, 1, nextFilter);\n setCurrentFilter(stateFilter);\n }, [currentFilter]);\n var onFilterSubmit = React.useCallback(function (event) {\n event.preventDefault();\n var newFilter = (filter || []).slice();\n var prev = menuFilter();\n var index = prev ? newFilter.indexOf(prev) : -1;\n if (index >= 0) {\n newFilter.splice(index, 1, currentFilter);\n }\n else {\n newFilter.push(currentFilter);\n }\n closeMenu();\n if (onFilterChange) {\n onFilterChange.call(undefined, event, newFilter, field);\n }\n }, [filter, currentFilter, field, onFilterChange, closeMenu, menuFilter]);\n var onFilterReset = React.useCallback(function (event) {\n var newFilter = (filter || []).slice();\n var prev = menuFilter();\n var index = prev ? newFilter.indexOf(prev) : -1;\n if (index >= 0) {\n newFilter.splice(index, 1);\n }\n if (initialFilter) {\n setCurrentFilter(initialFilter(field));\n }\n closeMenu();\n if (onFilterChange) {\n onFilterChange.call(undefined, event, newFilter, field);\n }\n }, [filter, field, onFilterChange, initialFilter, closeMenu, menuFilter]);\n var sortAscChange = React.useCallback(function (e) { return changeSort(e, 'asc'); }, [changeSort]);\n var sortDescChange = React.useCallback(function (e) { return changeSort(e, 'desc'); }, [changeSort]);\n var onLogicChange = React.useCallback(function (event) { return currentFilter && setCurrentFilter(__assign(__assign({}, currentFilter), { logic: event.value.logic })); }, [currentFilter]);\n var currentSort = sort.find(function (d) { return d.field === field; }) || { dir: '' };\n var FirstFilterComponent = filterContent[0], FilterLogicComponent = filterContent[1], SecondFilterComponent = filterContent[2];\n var localization = useLocalization();\n var sorting = (sortAsc || sortDesc) ? (React.createElement(\"div\", { className: \"k-columnmenu-item-wrapper\", key: \"sorting\" },\n sortAsc &&\n (React.createElement(ColumnMenuItem, { title: localization.toLanguageString(columnMenuSortAscending, messages[columnMenuSortAscending]), iconClass: \"k-i-sort-asc-small\", svgIcon: sortAscSmallIcon, selected: currentSort.dir === 'asc', onClick: sortAscChange })),\n sortDesc &&\n (React.createElement(ColumnMenuItem, { title: localization.toLanguageString(columnMenuSortDescending, messages[columnMenuSortDescending]), iconClass: \"k-i-sort-desc-small\", svgIcon: sortDescSmallIcon, selected: currentSort.dir === 'desc', onClick: sortDescChange })))) : null;\n // filter content empty when no field is supplied\n var filtering = currentFilter && filterContent.length > 0 ? (React.createElement(\"div\", { className: \"k-columnmenu-item-wrapper\", key: \"filtering\" },\n React.createElement(ColumnMenuItem, { iconClass: \"k-i-filter\", svgIcon: filterIcon, title: localization.toLanguageString(columnMenuFilterTitle, messages[columnMenuFilterTitle]), onClick: filterItemClick }),\n React.createElement(ColumnMenuFilterForm, { show: filterExpand, onSubmit: onFilterSubmit, onReset: onFilterReset },\n FirstFilterComponent &&\n React.createElement(FirstFilterComponent, { filter: currentFilter.filters[0], onFilterChange: filterChange }),\n FilterLogicComponent &&\n React.createElement(FilterLogicComponent, { value: currentFilter.logic, onChange: onLogicChange }),\n SecondFilterComponent &&\n React.createElement(SecondFilterComponent, { filter: currentFilter.filters[1], onFilterChange: filterChange })))) : null;\n var menuItems = [sorting, filtering];\n var button = (React.createElement(\"span\", { ref: anchor, onClick: onColumnMenuButtonClick, onMouseDown: onAnchorMouseDown, className: 'k-grid-header-menu k-grid-column-menu' + (Boolean(menuFilter()) ? ' k-active' : ''), key: \"button\" },\n React.createElement(IconWrap, { name: \"more-vertical\", icon: moreVerticalIcon })));\n var popup = (React.createElement(Popup, { anchor: anchor.current, show: show, key: \"popup\" },\n React.createElement(\"div\", { className: \"k-grid-columnmenu-popup\", ref: popupRef, tabIndex: 0, onBlur: onBlur, onFocus: onFocus, style: { outline: 'none' } }, props.itemsRender ?\n props.itemsRender.call(undefined, menuItems, { closeMenu: closeMenu, field: field }) :\n menuItems)));\n var rendering = [button, popup];\n return React.createElement(React.Fragment, null, props.render ? props.render.call(undefined, rendering) : rendering);\n};\n/**\n * The `ColumnMenuTextColumn` component. Use it for `string` type columns.\n */\nexport var ColumnMenuTextColumn = function (props) {\n var field = props.field, others = __rest(props, [\"field\"]);\n var initialFilter = React.useCallback(function (currentField) {\n return ({ logic: 'and', filters: [{ operator: 'contains', field: currentField, value: '' }, { operator: 'contains', field: currentField, value: '' }] });\n }, []);\n var hasField = Boolean(props.field);\n var filterContent = hasField ? [\n ColumnMenuTextFilter,\n ColumnMenuFilterLogic,\n ColumnMenuTextFilter\n ] : [];\n return (React.createElement(ColumnMenuWrapper, __assign({ sortAsc: true && hasField, sortDesc: true && hasField, filterContent: filterContent, initialFilter: hasField ? initialFilter : undefined, field: field }, others)));\n};\n/**\n * The `ColumnMenuNumericColumn` component. Use it for `number` type columns.\n */\nexport var ColumnMenuNumericColumn = function (props) {\n var field = props.field, others = __rest(props, [\"field\"]);\n var initialFilter = React.useCallback(function (currentField) {\n return ({ logic: 'or', filters: [{ operator: 'eq', field: currentField, value: null }, { operator: 'eq', field: currentField, value: null }] });\n }, []);\n var hasField = Boolean(props.field);\n var filterContent = hasField ? [\n ColumnMenuNumericFilter,\n ColumnMenuFilterLogic,\n ColumnMenuNumericFilter\n ] : [];\n return (React.createElement(ColumnMenuWrapper, __assign({ sortAsc: true && hasField, sortDesc: true && hasField, filterContent: filterContent, initialFilter: hasField ? initialFilter : undefined, field: field }, others)));\n};\n/**\n * The `ColumnMenuDateColumn` component. Use it for `Date` type columns.\n */\nexport var ColumnMenuDateColumn = function (props) {\n var field = props.field, others = __rest(props, [\"field\"]);\n var initialFilter = React.useCallback(function (currentField) {\n return ({ logic: 'or', filters: [{ operator: 'eq', field: currentField, value: null }, { operator: 'eq', field: currentField, value: null }] });\n }, []);\n var hasField = Boolean(props.field);\n var filterContent = hasField ? [\n ColumnMenuDateFilter,\n ColumnMenuFilterLogic,\n ColumnMenuDateFilter\n ] : [];\n return (React.createElement(ColumnMenuWrapper, __assign({ sortAsc: true && hasField, sortDesc: true && hasField, filterContent: filterContent, initialFilter: hasField ? initialFilter : undefined, field: field }, others)));\n};\n/**\n * The `ColumnMenuBooleanColumn` component. Use it for `boolean` type columns.\n */\nexport var ColumnMenuBooleanColumn = function (props) {\n var field = props.field, others = __rest(props, [\"field\"]);\n var initialFilter = React.useCallback(function (currentField) {\n return ({ logic: 'and', filters: [{ operator: 'eq', field: currentField, value: false }] });\n }, []);\n var hasField = Boolean(props.field);\n var filterContent = hasField ? [\n ColumnMenuBooleanFilter\n ] : [];\n return (React.createElement(ColumnMenuWrapper, __assign({ sortAsc: true && hasField, sortDesc: true && hasField, filterContent: filterContent, initialFilter: hasField ? initialFilter : undefined, field: field }, others)));\n};\n","import { extendDataItem, mapTree } from '@progress/kendo-react-common';\nvar GROUP_ID_FIELD = 'groupId';\nvar GROUP_SUBITEMS_COLLECTION = 'items';\n/**\n * @hidden\n */\nvar setGroupId = function (group, depth, parentValue) {\n if (group.items) {\n group[GROUP_ID_FIELD] = \"\".concat(parentValue).concat(parentValue && '_').concat(group.value).concat(group.field);\n if (depth > 1) {\n group.items.forEach(function (item) { return setGroupId(item, depth - 1, group[GROUP_ID_FIELD]); });\n }\n }\n};\n/**\n * Add unique ids to the group items inside data.\n *\n * @param {{data: any[], group: GroupDescriptor[]}} options - The options to be processed.\n */\nexport var setGroupIds = function (options) {\n var group = options.group;\n if (group && group.length && options.data) {\n return options.data.forEach(function (item) { return setGroupId(item, group.length, ''); });\n }\n};\n/**\n * Get all group ids from the data.\n *\n * @param {{data: any[]}} options - The options to be processed.\n * @returns {string[]} - Collection of all group ids from the data.\n */\nexport var getGroupIds = function (options) {\n var groupIds = [];\n mapTree(options.data, GROUP_SUBITEMS_COLLECTION, function (item) {\n if (item[GROUP_ID_FIELD]) {\n groupIds.push(item[GROUP_ID_FIELD]);\n }\n });\n return groupIds;\n};\n/**\n * Apply the `expanded` prop to the group items in data based on the provided collection of group ids.\n *\n * @param {{data: any[], collapsedIds: string[]}} options - The options to be processed.\n * @returns {string[]} - Collection of all group ids from the data.\n */\nexport var setExpandedState = function (options) {\n // TODO: no need to traverse whole tree, only group levels\n return mapTree(options.data, GROUP_SUBITEMS_COLLECTION, function (item) {\n return extendDataItem(item, GROUP_SUBITEMS_COLLECTION, {\n expanded: !options.collapsedIds.some(function (groupId) { return groupId === item[GROUP_ID_FIELD]; })\n });\n });\n};\n","var _a;\n/**\n * @hidden\n */\nexport var pagerInfo = 'pager.info';\n/**\n * @hidden\n */\nexport var pagerFirstPage = 'pager.firstPage';\n/**\n * @hidden\n */\nexport var pagerPreviousPage = 'pager.previousPage';\n/**\n * @hidden\n */\nexport var pagerNextPage = 'pager.nextPage';\n/**\n * @hidden\n */\nexport var pagerLastPage = 'pager.lastPage';\n/**\n * @hidden\n */\nexport var pagerItemPerPage = 'pager.itemsPerPage';\n/**\n * @hidden\n */\nexport var pagerPageSelection = 'pager.pageSelection';\n/**\n * @hidden\n */\nexport var pagerPage = 'pager.page';\n/**\n * @hidden\n */\nexport var pagerOf = 'pager.of';\n/**\n * @hidden\n */\nexport var pagerTotalPages = 'pager.totalPages';\n/**\n * @hidden\n */\nexport var pagerPageNumberLabel = 'pager.pageLabel';\n/**\n * @hidden\n */\nexport var pagerAriaKeyshortcuts = 'pager.ariaKeyshortcuts';\n/**\n * @hidden\n */\nexport var pagerAriaLabel = 'pager.ariaLabel';\n/**\n * @hidden\n */\nexport var pagerPageSizeAriaLabel = 'pager.pageSizeAriaLabel';\n/**\n * @hidden\n */\nexport var pagerMobileSelect = 'pager.mobileSelect';\n/**\n * @hidden\n */\nexport var pagerMoreButtonLabel = 'pager.moreButtonLabel';\n/**\n * @hidden\n */\nexport var filterEqOperator = 'filter.eqOperator';\n/**\n * @hidden\n */\nexport var filterNotEqOperator = 'filter.notEqOperator';\n/**\n * @hidden\n */\nexport var filterIsNullOperator = 'filter.isNullOperator';\n/**\n * @hidden\n */\nexport var filterIsNotNullOperator = 'filter.isNotNullOperator';\n/**\n * @hidden\n */\nexport var filterIsEmptyOperator = 'filter.isEmptyOperator';\n/**\n * @hidden\n */\nexport var filterIsNotEmptyOperator = 'filter.isNotEmptyOperator';\n/**\n * @hidden\n */\nexport var filterStartsWithOperator = 'filter.startsWithOperator';\n/**\n * @hidden\n */\nexport var filterContainsOperator = 'filter.containsOperator';\n/**\n * @hidden\n */\nexport var filterNotContainsOperator = 'filter.notContainsOperator';\n/**\n * @hidden\n */\nexport var filterEndsWithOperator = 'filter.endsWithOperator';\n/**\n * @hidden\n */\nexport var filterGteOperator = 'filter.gteOperator';\n/**\n * @hidden\n */\nexport var filterGtOperator = 'filter.gtOperator';\n/**\n * @hidden\n */\nexport var filterLteOperator = 'filter.lteOperator';\n/**\n * @hidden\n */\nexport var filterLtOperator = 'filter.ltOperator';\n/**\n * @hidden\n */\nexport var filterIsTrue = 'filter.isTrue';\n/**\n * @hidden\n */\nexport var filterIsFalse = 'filter.isFalse';\n/**\n * @hidden\n */\nexport var filterAfterOrEqualOperator = 'filter.afterOrEqualOperator';\n/**\n * @hidden\n */\nexport var filterAfterOperator = 'filter.afterOperator';\n/**\n * @hidden\n */\nexport var filterBeforeOperator = 'filter.beforeOperator';\n/**\n * @hidden\n */\nexport var filterBeforeOrEqualOperator = 'filter.beforeOrEqualOperator';\n/**\n * @hidden\n */\nexport var filterAndLogic = 'filter.andLogic';\n/**\n * @hidden\n */\nexport var filterOrLogic = 'filter.orLogic';\n/**\n * @hidden\n */\nexport var filterAddExpression = 'filter.addExpression';\n/**\n * @hidden\n */\nexport var filterAddGroup = 'filter.addGroup';\n/**\n * @hidden\n */\nexport var filterClose = 'filter.close';\n/**\n * @hidden\n */\nexport var filterGroupAriaLabel = 'filter.groupAriaLabel';\n/**\n * @hidden\n */\nexport var filterExpressionAriaLabel = 'filter.expressionAriaLabel';\n/**\n * @hidden\n */\nexport var filterExpressionDropdownAriaLabel = 'filter.expressionDropdownAriaLabel';\n/**\n * @hidden\n */\nexport var filterExpressionOperatorDropdownAriaLabel = 'filter.expressionOperatorDropdownAriaLabel';\n/**\n * @hidden\n */\nexport var filterEnumFilterDropdownAriaLabel = 'filter.enumFilterDropdownAriaLabel';\n/**\n * @hidden\n */\nexport var filterNumericFilterAriaLabel = 'filter.numericFilterAriaLabel';\n/**\n * @hidden\n */\nexport var filterTextFilterAriaLabel = 'filter.textFilterAriaLabel';\n/**\n * @hidden\n */\nexport var columnMenuFilterClearButton = 'columnMenu.filterClearButton';\n/**\n * @hidden\n */\nexport var columnMenuFilterSubmitButton = 'columnMenu.filterSubmitButton';\n/**\n * @hidden\n */\nexport var columnMenuFilterTitle = 'columnMenu.filterTitle';\n/**\n * @hidden\n */\nexport var columnMenuSortAscending = 'columnMenu.sortAscending';\n/**\n * @hidden\n */\nexport var columnMenuSortDescending = 'columnMenu.sortDescending';\n/**\n * @hidden\n */\nexport var columnMenuFilterEqOperator = 'columnMenu.filterEqOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterNotEqOperator = 'columnMenu.filterNotEqOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterIsNullOperator = 'columnMenu.filterIsNullOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterIsNotNullOperator = 'columnMenu.filterIsNotNullOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterIsEmptyOperator = 'columnMenu.filterIsEmptyOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterIsNotEmptyOperator = 'columnMenu.filterIsNotEmptyOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterStartsWithOperator = 'columnMenu.filterStartsWithOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterContainsOperator = 'columnMenu.filterContainsOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterNotContainsOperator = 'columnMenu.filterNotContainsOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterEndsWithOperator = 'columnMenu.filterEndsWithOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterGteOperator = 'columnMenu.filterGteOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterGtOperator = 'columnMenu.filterGtOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterLteOperator = 'columnMenu.filterLteOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterLtOperator = 'columnMenu.filterLtOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterIsTrue = 'columnMenu.filterIsTrue';\n/**\n * @hidden\n */\nexport var columnMenuFilterAfterOrEqualOperator = 'columnMenu.filterAfterOrEqualOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterAfterOperator = 'columnMenu.filterAfterOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterBeforeOperator = 'columnMenu.filterBeforeOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterBeforeOrEqualOperator = 'columnMenu.filterBeforeOrEqualOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterAndLogic = 'columnMenu.filterAndLogic';\n/**\n * @hidden\n */\nexport var columnMenuFilterOrLogic = 'columnMenu.filterOrLogic';\n/**\n * @hidden\n */\nexport var sortAriaLabel = 'sort.ariaLabel';\n/**\n * @hidden\n */\nexport var filterAriaLabel = 'filter.ariaLabel';\n/**\n * @hidden\n */\nexport var messages = (_a = {},\n _a[pagerItemPerPage] = 'items per page',\n _a[pagerPageSelection] = 'Select page',\n _a[pagerInfo] = '{0} - {1} of {2} items',\n _a[pagerFirstPage] = 'Go to the first page',\n _a[pagerPreviousPage] = 'Go to the previous page',\n _a[pagerNextPage] = 'Go to the next page',\n _a[pagerLastPage] = 'Go to the last page',\n _a[pagerPage] = 'Page',\n _a[pagerOf] = 'of',\n _a[pagerTotalPages] = '{0}',\n _a[pagerPageNumberLabel] = 'Page',\n _a[pagerAriaKeyshortcuts] = 'Enter ArrowRight ArrowLeft',\n _a[pagerAriaLabel] = 'Pager',\n _a[pagerPageSizeAriaLabel] = 'Page size',\n _a[pagerMobileSelect] = 'Select',\n _a[pagerMoreButtonLabel] = 'More pages',\n _a[sortAriaLabel] = 'Sortable',\n _a[filterAriaLabel] = 'Filter',\n _a[filterEqOperator] = 'Is equal to',\n _a[filterNotEqOperator] = 'Is not equal to',\n _a[filterIsNullOperator] = 'Is null',\n _a[filterIsNotNullOperator] = 'Is not null',\n _a[filterIsEmptyOperator] = 'Is empty',\n _a[filterIsNotEmptyOperator] = 'Is not empty',\n _a[filterStartsWithOperator] = 'Starts with',\n _a[filterContainsOperator] = 'Contains',\n _a[filterNotContainsOperator] = 'Does not contain',\n _a[filterEndsWithOperator] = 'Ends with',\n _a[filterGteOperator] = 'Is greater than or equal to',\n _a[filterGtOperator] = 'Is greater than',\n _a[filterLteOperator] = 'Is less than or equal to',\n _a[filterLtOperator] = 'Is less than',\n _a[filterIsTrue] = 'Is true',\n _a[filterIsFalse] = 'Is false',\n _a[filterAfterOrEqualOperator] = 'Is after or equal to',\n _a[filterAfterOperator] = 'Is after',\n _a[filterBeforeOperator] = 'Is before',\n _a[filterBeforeOrEqualOperator] = 'Is before or equal to',\n _a[filterAndLogic] = 'And',\n _a[filterOrLogic] = 'Or',\n _a[filterAddExpression] = 'Add Expression',\n _a[filterAddGroup] = 'Add Group',\n _a[filterClose] = 'Close',\n _a[filterGroupAriaLabel] = 'Filter toolbar',\n _a[filterExpressionAriaLabel] = 'Filter expression row',\n _a[filterExpressionDropdownAriaLabel] = 'Filter dropdown',\n _a[filterExpressionOperatorDropdownAriaLabel] = 'Filter operator dropdown',\n _a[filterEnumFilterDropdownAriaLabel] = 'Select True/False',\n _a[filterNumericFilterAriaLabel] = 'Enter number',\n _a[filterTextFilterAriaLabel] = 'Enter text',\n _a[columnMenuFilterClearButton] = 'Clear',\n _a[columnMenuFilterSubmitButton] = 'Filter',\n _a[columnMenuFilterTitle] = 'Filter',\n _a[columnMenuSortAscending] = 'Sort Ascending',\n _a[columnMenuSortDescending] = 'Sort Descending',\n _a[columnMenuFilterEqOperator] = 'Is equal to',\n _a[columnMenuFilterNotEqOperator] = 'Is not equal to',\n _a[columnMenuFilterIsNullOperator] = 'Is null',\n _a[columnMenuFilterIsNotNullOperator] = 'Is not null',\n _a[columnMenuFilterIsEmptyOperator] = 'Is empty',\n _a[columnMenuFilterIsNotEmptyOperator] = 'Is not empty',\n _a[columnMenuFilterStartsWithOperator] = 'Starts with',\n _a[columnMenuFilterContainsOperator] = 'Contains',\n _a[columnMenuFilterNotContainsOperator] = 'Does not contain',\n _a[columnMenuFilterEndsWithOperator] = 'Ends with',\n _a[columnMenuFilterGteOperator] = 'Is greater than or equal to',\n _a[columnMenuFilterGtOperator] = 'Is greater than',\n _a[columnMenuFilterLteOperator] = 'Is less than or equal to',\n _a[columnMenuFilterLtOperator] = 'Is less than',\n _a[columnMenuFilterIsTrue] = 'Is true',\n _a[columnMenuFilterAfterOrEqualOperator] = 'Is after or equal to',\n _a[columnMenuFilterAfterOperator] = 'Is after',\n _a[columnMenuFilterBeforeOperator] = 'Is before',\n _a[columnMenuFilterBeforeOrEqualOperator] = 'Is before or equal to',\n _a[columnMenuFilterAndLogic] = 'And',\n _a[columnMenuFilterOrLogic] = 'Or',\n _a);\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { getActiveElement, guid, Keys } from '@progress/kendo-react-common';\nimport { findId, findNextIdByCellIndex, findNextIdByRowIndex, getBodyElement, getHeaderElement, getNavigatableId, tableKeyboardNavigationTools as navigationTools } from './utils';\n/**\n * @hidden\n */\nvar onConstructor = function (options) {\n var navigatable = options.navigatable, contextStateRef = options.contextStateRef, navigationStateRef = options.navigationStateRef, idPrefix = options.idPrefix;\n // v.2: check if nested navigation\n if (navigatable) {\n contextStateRef.current = {\n activeId: '',\n level: 0\n };\n navigationStateRef.current = {\n activeElementIsFocused: false,\n prevNavigationIndexes: undefined,\n idPrefix: idPrefix || guid(),\n navigationMatrix: [],\n lastHeaderIndex: -1\n };\n }\n};\n/**\n * @hidden\n */\nvar onComponentDidMount = function (options) {\n var scope = options.scope, contextStateRef = options.contextStateRef, navigationStateRef = options.navigationStateRef;\n if (contextStateRef.current && navigationStateRef.current && scope) {\n generateMatrix(options);\n var firstId = navigationStateRef.current.navigationMatrix[0][0];\n var firstIdElement = navigationTools.getActiveElement(scope, firstId);\n if (firstId && firstIdElement) {\n contextStateRef.current.activeId = firstId;\n firstIdElement.setAttribute('tabIndex', '0');\n }\n }\n};\n/**\n * @hidden\n */\nvar onGetSnapshotBeforeUpdate = function (options) {\n var contextStateRef = options.contextStateRef, navigationStateRef = options.navigationStateRef, currentDocument = options.document;\n if (contextStateRef.current && navigationStateRef.current && currentDocument) {\n var activeElement = getActiveElement(currentDocument);\n var activeId = navigationTools.getNavigatableId(activeElement);\n if (activeId && activeId === contextStateRef.current.activeId) {\n navigationStateRef.current.activeElementIsFocused = true;\n }\n }\n};\n/**\n * @hidden\n */\nvar onComponentDidUpdate = function (options) {\n var scope = options.scope, contextStateRef = options.contextStateRef, navigationStateRef = options.navigationStateRef;\n generateMatrix(options);\n // check if nested navigation\n if (contextStateRef.current && navigationStateRef.current && scope) {\n var activeElement = navigationTools.getActiveElement(scope, contextStateRef.current.activeId);\n if (!activeElement) {\n var firstId = navigationStateRef.current.navigationMatrix[0][0];\n var firstIdElement = navigationTools.getActiveElement(scope, firstId);\n if (firstId && firstIdElement) {\n contextStateRef.current.activeId = firstId;\n firstIdElement.setAttribute('tabIndex', '0');\n if (navigationStateRef.current.activeElementIsFocused) {\n firstIdElement.focus();\n }\n }\n }\n navigationStateRef.current.activeElementIsFocused = false;\n }\n};\n/**\n * @hidden\n */\nvar onFocus = function (event, options) {\n var contextStateRef = options.contextStateRef;\n if (event.isDefaultPrevented()) {\n return;\n }\n if (!contextStateRef.current) {\n return;\n }\n var focusedElement = event.target;\n var activeId = navigationTools.getNavigatableId(focusedElement);\n if (activeId && activeId !== contextStateRef.current.activeId) {\n var scope = navigationTools.getClosestScope(focusedElement);\n if (!scope) {\n return;\n }\n var prevElement = navigationTools.getActiveElement(scope, contextStateRef.current.activeId);\n if (prevElement) {\n prevElement.setAttribute('tabIndex', '-1');\n }\n focusedElement.setAttribute('tabIndex', '0');\n contextStateRef.current.activeId = activeId;\n }\n};\n/**\n * @hidden\n */\nvar onKeyDown = function (event, options) {\n var contextStateRef = options.contextStateRef, navigationStateRef = options.navigationStateRef, onNavigationAction = options.onNavigationAction;\n if (event.isDefaultPrevented()) {\n return;\n }\n if (!contextStateRef.current || !navigationStateRef.current) {\n return;\n }\n if (event.keyCode === Keys.esc) {\n // activate navigation\n var elementForFocus = navigationTools.getClosestNavigatableElement(event.target);\n navigationTools.focusElement({ elementForFocus: elementForFocus, event: event, contextStateRef: contextStateRef });\n return;\n }\n var element = event.target;\n var elementId = navigationTools.getNavigatableId(element);\n var dataLevel = navigationTools.getNavigatableLevel(element);\n var scope = navigationTools.getClosestScope(element);\n var matrix = navigationStateRef.current.navigationMatrix;\n if (dataLevel !== undefined && scope) {\n if (event.keyCode === Keys.enter) {\n // activate nested navigation or focus focusable element\n var navigatableElement = navigationTools.getNavigatableElement(element, { level: dataLevel + 1 });\n if (navigatableElement) {\n navigationTools.focusElement({\n elementForFocus: navigatableElement,\n event: event,\n contextStateRef: contextStateRef,\n prevElement: element\n });\n return;\n }\n else {\n var elementForFocus = navigationTools.getFocusableElements(element)[0];\n navigationTools.focusElement({ elementForFocus: elementForFocus, event: event, contextStateRef: contextStateRef, prevElement: element });\n return;\n }\n }\n if (event.keyCode === Keys.up ||\n event.keyCode === Keys.down ||\n event.keyCode === Keys.left ||\n event.keyCode === Keys.right) {\n var isReverse = event.keyCode === Keys.up || event.keyCode === Keys.left;\n var isVertical = event.keyCode === Keys.up || event.keyCode === Keys.down;\n var currentIdIndexes = void 0;\n if (navigationStateRef.current && navigationStateRef.current.prevNavigationIndexes) {\n var _a = navigationStateRef.current.prevNavigationIndexes, rowIndex = _a[0], cellIndex = _a[1];\n if (matrix[rowIndex][cellIndex] === elementId) {\n currentIdIndexes = navigationStateRef.current.prevNavigationIndexes;\n }\n else {\n currentIdIndexes = findId(matrix, elementId);\n }\n }\n else {\n currentIdIndexes = findId(matrix, elementId);\n }\n if (currentIdIndexes) {\n var rowIndex = currentIdIndexes[0], cellIndex = currentIdIndexes[1];\n var _b = isVertical ?\n findNextIdByRowIndex(rowIndex, cellIndex, elementId, matrix, isReverse) :\n findNextIdByCellIndex(rowIndex, cellIndex, elementId, matrix, isReverse), idForFocus = _b[0], currentIndexes = _b[1];\n if (idForFocus) {\n var elementForFocus = navigationTools.getActiveElement(scope, idForFocus);\n // emit event\n navigationTools.focusElement({ elementForFocus: elementForFocus, event: event, contextStateRef: contextStateRef, prevElement: element });\n navigationStateRef.current.prevNavigationIndexes = currentIndexes;\n if (onNavigationAction) {\n onNavigationAction({ focusElement: elementForFocus, event: event });\n }\n }\n }\n }\n }\n};\n/**\n * @hidden\n */\nvar generateMatrix = function (options) {\n var navigationStateRef = options.navigationStateRef, scope = options.scope;\n if (!navigationStateRef.current || !scope) {\n return;\n }\n var matrix = [];\n var thead = getHeaderElement(scope);\n var tbody = getBodyElement(scope);\n if (!thead || !tbody) {\n return;\n }\n var headerRows = Array.from(thead.children);\n var bodyRows = Array.from(tbody.children);\n __spreadArray(__spreadArray([], headerRows, true), bodyRows, true).forEach(function (row, rowIndex) {\n Array.from(row.children).forEach(function (cell) {\n var cellId = getNavigatableId(cell);\n if (!cellId) {\n return;\n } // cell is not navigatable\n var rowSpan = cell.rowSpan || 1;\n var cellSpan = cell.colSpan || 1;\n var cellIndex;\n for (var depth = rowIndex, maxDepth = rowIndex + rowSpan; depth < maxDepth; depth++) {\n if (!matrix[depth]) {\n matrix[depth] = [];\n }\n if (cellIndex === undefined) {\n var freeSlotIndex = matrix[depth].findIndex(function (mi) { return !mi; });\n cellIndex = freeSlotIndex > -1 ? freeSlotIndex : matrix[depth].length;\n }\n matrix[depth][cellIndex] = cellId || '';\n }\n for (var depth = cellIndex + 1, maxDepth = cellIndex + cellSpan; depth < maxDepth; depth++) {\n matrix[rowIndex][depth] = cellId || '';\n }\n });\n });\n navigationStateRef.current.navigationMatrix = matrix.filter(function (row) { return !!row; });\n navigationStateRef.current.lastHeaderIndex = headerRows.length - 1;\n};\n/**\n * @hidden\n */\nexport var tableKeyboardNavigation = {\n onConstructor: onConstructor,\n onComponentDidMount: onComponentDidMount,\n onGetSnapshotBeforeUpdate: onGetSnapshotBeforeUpdate,\n onComponentDidUpdate: onComponentDidUpdate,\n onFocus: onFocus,\n onKeyDown: onKeyDown,\n generateMatrix: generateMatrix\n};\n","import * as React from 'react';\n/**\n * @hidden\n */\nexport var TableKeyboardNavigationContext = React.createContext(undefined);\nTableKeyboardNavigationContext.displayName = 'KendoReactTableKeyboardNavigationContext';\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar _a, _b, _c;\n/**\n * @hidden\n */\nexport var KEYBOARD_NAV_DATA_LEVEL = 'data-keyboardnavlevel';\n/**\n * @hidden\n */\nexport var KEYBOARD_NAV_DATA_SCOPE = 'data-keyboardnavscope';\n/**\n * @hidden\n */\nexport var KEYBOARD_NAV_DATA_HEADER = 'data-keyboardnavheader';\n/**\n * @hidden\n */\nexport var KEYBOARD_NAV_DATA_BODY = 'data-keyboardnavbody';\n/**\n * @hidden\n */\nexport var KEYBOARD_NAV_DATA_ID = 'data-keyboardnavid';\n/**\n * @hidden\n */\nexport var KEYBOARD_NAV_DATA_ZONE = 'data-keyboardnavzone';\n/**\n * @hidden\n */\nexport var KEYBOARD_NAV_FILTER_COL_SUFFIX = '_filter';\nvar FOCUSABLE_ELEMENTS_BASE = [\n 'input:not([disabled]):not([type=hidden])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'button:not([disabled])',\n 'a[href]',\n 'area[href]',\n 'summary',\n 'iframe',\n 'object',\n 'embed',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]'\n];\n/**\n * @hidden\n */\nexport var FOCUSABLE_ELEMENTS = __spreadArray(__spreadArray([], FOCUSABLE_ELEMENTS_BASE, true), ['[tabindex]'], false);\n/**\n * @hidden\n */\nexport var TABBABLE_ELEMENTS = __spreadArray(__spreadArray([], FOCUSABLE_ELEMENTS_BASE, true), ['[tabindex]'], false).map(function (selector) { return selector + ':not([tabindex=\"-1\"])'; });\n/**\n * @hidden\n */\nexport var tableKeyboardNavigationScopeAttributes = (_a = {},\n _a[KEYBOARD_NAV_DATA_SCOPE] = true,\n _a);\n/**\n * @hidden\n */\nexport var tableKeyboardNavigationHeaderAttributes = (_b = {},\n _b[KEYBOARD_NAV_DATA_HEADER] = true,\n _b);\n/**\n * @hidden\n */\nexport var tableKeyboardNavigationBodyAttributes = (_c = {},\n _c[KEYBOARD_NAV_DATA_BODY] = true,\n _c);\n","import * as React from 'react';\nimport { KEYBOARD_NAV_DATA_ID, KEYBOARD_NAV_DATA_LEVEL } from './constants';\nimport { TableKeyboardNavigationContext } from './TableKeyboardNavigationContext';\n/**\n * @hidden\n */\nexport var useTableKeyboardNavigation = function (elementId, navigatable) {\n var _a;\n var navigationContext = React.useContext(TableKeyboardNavigationContext);\n if (!navigationContext || !elementId || navigatable === false) {\n return {};\n }\n return _a = {\n tabIndex: navigationContext && navigationContext.activeId && navigationContext.activeId === elementId ? 0 : -1\n },\n _a[KEYBOARD_NAV_DATA_LEVEL] = navigationContext.level,\n _a[KEYBOARD_NAV_DATA_ID] = elementId,\n _a;\n};\n","import { FOCUSABLE_ELEMENTS, KEYBOARD_NAV_DATA_BODY, KEYBOARD_NAV_DATA_HEADER, KEYBOARD_NAV_DATA_ID, KEYBOARD_NAV_DATA_LEVEL, KEYBOARD_NAV_DATA_SCOPE, KEYBOARD_NAV_FILTER_COL_SUFFIX, TABBABLE_ELEMENTS } from './constants';\n/**\n * @hidden\n */\nexport var generateNavigatableId = function (navigationId, idPrefix, type) {\n if (type === void 0) { type = 'cell'; }\n return \"\".concat(idPrefix, \"_\").concat(navigationId, \"_\").concat(type);\n};\n/**\n * @hidden\n */\nexport var getNavigatableLevel = function (element) {\n if (!element) {\n return;\n }\n return parseInt(element.getAttribute(KEYBOARD_NAV_DATA_LEVEL) || '', 10);\n};\n/**\n * @hidden\n */\nexport var getNavigatableId = function (element) {\n if (!element) {\n return;\n }\n var dataId = element.getAttribute(KEYBOARD_NAV_DATA_ID);\n return dataId ? dataId : undefined;\n};\n/**\n * @hidden\n */\nexport var isNavigatable = function (element) {\n if (!element) {\n return false;\n }\n var dataId = element.getAttribute(KEYBOARD_NAV_DATA_ID);\n return Boolean(dataId);\n};\n/**\n * @hidden\n */\nexport var getNavigatableElement = function (scope, options) {\n if (options === void 0) { options = { level: 0 }; }\n return scope.querySelector(\"[\".concat(KEYBOARD_NAV_DATA_LEVEL, \"='\").concat(options.level, \"']\"));\n};\n/**\n * @hidden\n */\nexport var getClosestNavigatableElement = function (target) {\n return (target.parentElement &&\n target.parentElement.closest(\"[\".concat(KEYBOARD_NAV_DATA_LEVEL, \"]\")));\n};\n/**\n * @hidden\n */\nexport var getActiveElement = function (scope, activeId) {\n return scope.querySelector(\"[\".concat(KEYBOARD_NAV_DATA_ID, \"='\").concat(activeId, \"']\"));\n};\n/**\n * @hidden\n */\nexport var getClosestScope = function (target) {\n return (target.parentElement &&\n target.parentElement.closest(\"[\".concat(KEYBOARD_NAV_DATA_SCOPE, \"]\")));\n};\n/**\n * @hidden\n */\nexport var getHeaderElement = function (scope) {\n return scope.querySelector(\"[\".concat(KEYBOARD_NAV_DATA_HEADER, \"]\"));\n};\n/**\n * @hidden\n */\nexport var getBodyElement = function (scope) {\n return scope.querySelector(\"[\".concat(KEYBOARD_NAV_DATA_BODY, \"]\"));\n};\n/**\n * @hidden\n */\nexport var getFocusableElements = function (scope, options) {\n if (options === void 0) { options = { focusable: false }; }\n var selectors = options.focusable ? FOCUSABLE_ELEMENTS : TABBABLE_ELEMENTS;\n return Array.from(scope.querySelectorAll(selectors.join(',')));\n};\n/**\n * @hidden\n */\nexport var getNavigatableElements = function (scope, options) {\n if (options === void 0) { options = { level: 0 }; }\n if (!scope) {\n return [];\n }\n var selector = FOCUSABLE_ELEMENTS.map(function (el) { return el + \"[\".concat(KEYBOARD_NAV_DATA_LEVEL, \"='\").concat(options.level, \"']\"); }).join(',');\n return Array.from(scope.querySelectorAll(selector));\n};\n/**\n * @hidden\n */\nexport var filterNavigatableElements = function (options) {\n if (options === void 0) { options = { level: 0 }; }\n var selector = FOCUSABLE_ELEMENTS.map(function (sel) { return sel + \"[\".concat(KEYBOARD_NAV_DATA_LEVEL, \"='\").concat(options.level, \"']\"); }).join(',');\n return function (element) { return element.matches(selector); };\n};\n/**\n * @hidden\n */\nexport var focusElement = function (options) {\n var elementForFocus = options.elementForFocus, event = options.event, contextStateRef = options.contextStateRef, prevElement = options.prevElement;\n if (contextStateRef.current && elementForFocus && elementForFocus.focus) {\n event.preventDefault();\n elementForFocus.focus();\n if (isNavigatable(elementForFocus)) {\n elementForFocus.setAttribute('tabIndex', '0');\n contextStateRef.current.activeId = getNavigatableId(elementForFocus);\n }\n if (prevElement && isNavigatable(prevElement)) {\n prevElement.setAttribute('tabIndex', '-1');\n }\n }\n};\n/**\n * @hidden\n */\nexport var getIdPrefix = function (navigationStateRef) {\n return navigationStateRef.current ? navigationStateRef.current.idPrefix : '';\n};\n/**\n * @hidden\n */\nexport var findNextIdByRowIndex = function (initialRowIndex, cellIndex, elementId, matrix, isReverse) {\n if (!elementId) {\n return [];\n }\n var currentRowIndex = initialRowIndex + (isReverse ? -1 : 1);\n while (currentRowIndex >= 0 && currentRowIndex < matrix.length) {\n var currentId = matrix[currentRowIndex][cellIndex];\n if (currentId !== elementId) {\n return [currentId, [currentRowIndex, cellIndex]];\n }\n currentRowIndex = currentRowIndex + (isReverse ? -1 : 1);\n }\n return [];\n};\n/**\n * @hidden\n */\nexport var findNextIdByCellIndex = function (rowIndex, initialCellIndex, elementId, matrix, isReverse) {\n if (!elementId) {\n return [];\n }\n var currentCellIndex = initialCellIndex + (isReverse ? -1 : 1);\n while (currentCellIndex >= 0 && currentCellIndex < matrix[rowIndex].length) {\n var currentId = matrix[rowIndex][currentCellIndex];\n if (currentId !== elementId) {\n return [currentId, [rowIndex, currentCellIndex]];\n }\n currentCellIndex = currentCellIndex + (isReverse ? -1 : 1);\n }\n return [];\n};\n/**\n * @hidden\n */\nexport var findId = function (navigationMatrix, cellId) {\n if (!cellId) {\n return;\n }\n for (var rowIndex = 0; rowIndex < navigationMatrix.length; rowIndex++) {\n for (var cellIndex = 0; cellIndex < navigationMatrix[rowIndex].length; cellIndex++) {\n if (navigationMatrix[rowIndex][cellIndex] === cellId) {\n return [rowIndex, cellIndex];\n }\n }\n }\n};\n/**\n * @hidden\n */\nexport var getNextNavigationIndex = function (navigationStateRef) {\n return navigationStateRef.current ? navigationStateRef.current.navigationMatrix.length : 0;\n};\n/**\n * @hidden\n */\nexport var getFilterColumnId = function (columnId) {\n return columnId ? \"\".concat(columnId).concat(KEYBOARD_NAV_FILTER_COL_SUFFIX) : '';\n};\n/**\n * @hidden\n */\nexport var tableKeyboardNavigationTools = {\n generateNavigatableId: generateNavigatableId,\n getNavigatableId: getNavigatableId,\n getNavigatableLevel: getNavigatableLevel,\n getNavigatableElement: getNavigatableElement,\n getClosestNavigatableElement: getClosestNavigatableElement,\n getActiveElement: getActiveElement,\n getClosestScope: getClosestScope,\n getHeaderElement: getHeaderElement,\n getBodyElement: getBodyElement,\n getFocusableElements: getFocusableElements,\n getNavigatableElements: getNavigatableElements,\n filterNavigatableElements: filterNavigatableElements,\n focusElement: focusElement,\n getIdPrefix: getIdPrefix,\n isNavigatable: isNavigatable,\n findNextIdByRowIndex: findNextIdByRowIndex,\n findNextIdByCellIndex: findNextIdByCellIndex,\n findId: findId,\n getNextNavigationIndex: getNextNavigationIndex,\n getFilterColumnId: getFilterColumnId\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { Draggable, useDocument } from '@progress/kendo-react-common';\nimport { closestTagName, getColumnIndex, getOffset, getRowIndex, getSelectionOptions, relativeContextElement } from './utils';\nimport { TABLE_PREVENT_SELECTION_ELEMENT } from './constants';\n/** @hidden */\nexport var TableSelection = function (props) {\n var _a;\n var onRelease = props.onRelease, childRef = props.childRef;\n var _b = getSelectionOptions(props.selectable), selectionEnabled = _b.enabled, selectionDrag = _b.drag, selectionMode = _b.mode, selectionCell = _b.cell;\n var draggableRef = React.useRef(null);\n var overlayElementRef = React.useRef(null);\n var dragStartRef = React.useRef({ clientX: 0, clientY: 0 });\n var _c = React.useState(null), overlaySettings = _c[0], setOverlaySettings = _c[1];\n var offsetParentRef = React.useRef();\n var isDraggedRef = React.useRef(false);\n var isPreventedRef = React.useRef(false);\n var onPressHandler = React.useCallback(function (eventData) {\n var event = eventData.event;\n isPreventedRef.current = event.originalEvent.target.hasAttribute(TABLE_PREVENT_SELECTION_ELEMENT);\n if (isPreventedRef.current || !draggableRef.current) {\n return;\n }\n offsetParentRef.current = relativeContextElement(draggableRef.current.element);\n dragStartRef.current = {\n clientY: event.clientY,\n clientX: event.clientX\n };\n }, []);\n var onDragHandler = React.useCallback(function (eventData) {\n var event = eventData.event;\n var _a = dragStartRef.current, clientX = _a.clientX, clientY = _a.clientY;\n if (isPreventedRef.current) {\n return;\n }\n if (!selectionDrag || selectionMode === 'single') {\n return;\n }\n if (Math.abs(clientY - event.clientY) > 5 || Math.abs(clientX - event.clientX) > 5) {\n isDraggedRef.current = true;\n }\n if (isDraggedRef.current) {\n var offset = getOffset(offsetParentRef.current);\n setOverlaySettings({\n top: Math.min(clientY, event.clientY) - offset.top,\n left: Math.min(clientX, event.clientX) - offset.left,\n width: Math.abs(event.clientX - clientX),\n height: Math.abs(event.clientY - clientY)\n });\n }\n }, [setOverlaySettings, selectionDrag, selectionMode]);\n var onReleaseHandler = React.useCallback(function (eventData) {\n var event = eventData.event;\n var _a = dragStartRef.current, clientX = _a.clientX, clientY = _a.clientY;\n if (isPreventedRef.current || !draggableRef.current) {\n return;\n }\n var currentDocument = draggableRef.current.element && draggableRef.current.element.ownerDocument;\n if (!currentDocument) {\n return;\n }\n if (!isDraggedRef.current) {\n var startElement = currentDocument.elementFromPoint(clientX, clientY);\n if (!startElement) {\n return;\n }\n var tdElement = closestTagName(startElement, 'TD');\n var trElement = closestTagName(startElement, 'TR');\n var colIndex = getColumnIndex(tdElement);\n var rowIndex = getRowIndex(trElement);\n if (tdElement && trElement && rowIndex !== undefined && colIndex !== undefined) {\n onRelease({\n nativeEvent: event.originalEvent,\n startRowIndex: rowIndex,\n startColIndex: colIndex,\n endRowIndex: rowIndex,\n endColIndex: colIndex,\n altKey: event.altKey,\n shiftKey: event.shiftKey,\n ctrlKey: event.ctrlKey,\n metaKey: event.metaKey,\n mode: selectionMode,\n cell: selectionCell,\n isDrag: false\n });\n }\n }\n else {\n var top_1 = Math.min(clientY, event.clientY);\n var left = Math.min(clientX, event.clientX);\n var bottom = Math.max(clientY, event.clientY);\n var right = Math.max(clientX, event.clientX);\n var overlayElement = overlayElementRef.current;\n if (!overlayElement) {\n return;\n }\n overlayElement.style.visibility = 'hidden';\n var startElement = currentDocument.elementFromPoint(left, top_1);\n var endElement = currentDocument.elementFromPoint(right, bottom);\n overlayElement.style.visibility = '';\n if (!startElement || !endElement) {\n return;\n }\n var startTdElement = closestTagName(startElement, 'TD');\n var startTrElement = closestTagName(startTdElement, 'TR');\n var endTdElement = closestTagName(endElement, 'TD');\n var endTrElement = closestTagName(endTdElement, 'TR');\n var startColIndex = getColumnIndex(startTdElement);\n var startRowIndex = getRowIndex(startTrElement);\n var endColIndex = getColumnIndex(endTdElement);\n var endRowIndex = getRowIndex(endTrElement);\n if (startColIndex !== undefined &&\n startRowIndex !== undefined &&\n endColIndex !== undefined &&\n endRowIndex !== undefined) {\n onRelease({\n nativeEvent: event.originalEvent,\n startRowIndex: startRowIndex,\n startColIndex: startColIndex,\n endRowIndex: endRowIndex,\n endColIndex: endColIndex,\n altKey: event.altKey,\n shiftKey: event.shiftKey,\n ctrlKey: event.ctrlKey,\n metaKey: event.metaKey,\n mode: selectionMode,\n cell: selectionCell,\n isDrag: true\n });\n }\n }\n setOverlaySettings(null);\n isDraggedRef.current = false;\n dragStartRef.current = { clientX: 0, clientY: 0 };\n }, [setOverlaySettings, selectionMode, selectionCell, onRelease]);\n var getDocument = useDocument(overlayElementRef);\n if (!selectionEnabled) {\n return (React.cloneElement(React.Children.only(props.children), { ref: childRef }));\n }\n return (React.createElement(React.Fragment, null,\n React.createElement(Draggable, { onPress: onPressHandler, onDrag: onDragHandler, onRelease: onReleaseHandler, ref: draggableRef, childRef: childRef }, props.children),\n overlaySettings &&\n ReactDOM.createPortal(React.createElement(\"div\", { ref: overlayElementRef, style: __assign(__assign({}, overlaySettings), { position: 'fixed' }), className: 'k-marquee k-marquee-color' }), (_a = getDocument()) === null || _a === void 0 ? void 0 : _a.body)));\n};\n","/** @hidden */\nexport var TABLE_ROW_INDEX_ATTRIBUTE = 'data-grid-row-index';\n/** @hidden */\nexport var TABLE_COL_INDEX_ATTRIBUTE = 'data-grid-col-index';\n/** @hidden */\nexport var TABLE_PREVENT_SELECTION_ELEMENT = 'data-prevent-selection';\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { extendDataItem, getter, Keys, mapTree, hasRelativeStackingContext } from '@progress/kendo-react-common';\nimport { TABLE_COL_INDEX_ATTRIBUTE, TABLE_ROW_INDEX_ATTRIBUTE } from './constants';\nvar GROUP_SUBITEMS_COLLECTION = 'items';\nvar LAST_SELECTION_STATE = {};\nvar getCellSelection = function (currentSelection, selectedColumn) {\n if (!currentSelection || (Array.isArray(currentSelection) && currentSelection.length === 0)) {\n return [selectedColumn];\n }\n else {\n var foundIndex = currentSelection.findIndex(function (columnIndex) { return columnIndex === selectedColumn; });\n if (foundIndex > -1) {\n return currentSelection.filter(function (columnIndex) { return columnIndex !== selectedColumn; });\n }\n else {\n return __spreadArray(__spreadArray([], currentSelection, true), [selectedColumn], false);\n }\n }\n};\n/** @hidden */\nexport var closestTagName = function (target, tagName) {\n var currentTarget = target;\n while (currentTarget) {\n if (currentTarget.tagName === tagName) {\n return currentTarget;\n }\n else if (currentTarget.tagName === 'TABLE') {\n return null;\n }\n currentTarget = currentTarget.parentElement;\n }\n return null;\n};\n/** @hidden */\nexport var getRowIndex = function (element) {\n if (!element) {\n return;\n }\n var rowIndex = element.getAttribute(TABLE_ROW_INDEX_ATTRIBUTE);\n return rowIndex ? parseInt(rowIndex, 10) : undefined;\n};\n/** @hidden */\nexport var getColumnIndex = function (element) {\n if (!element) {\n return;\n }\n var colIndex = element.getAttribute(TABLE_COL_INDEX_ATTRIBUTE);\n return colIndex ? parseInt(colIndex, 10) : undefined;\n};\n/**\n * @hidden\n *\n * Apply the selected field to the data items based on the selected state.\n *\n * @param {{data: any, selectedState: {[id: string]: boolean | number[]}, dataItemKey: string; selectedField: string; subItemsField?: string; }} options\n * @returns {any[]}\n */\nexport var setSelectedState = function (options) {\n var subItemsField = options.subItemsField || GROUP_SUBITEMS_COLLECTION;\n var idGetter = getter(options.dataItemKey);\n return mapTree(options.data, subItemsField, function (item) {\n var _a;\n return extendDataItem(item, subItemsField, (_a = {},\n _a[options.selectedField] = options.selectedState[idGetter(item)],\n _a));\n });\n};\n/**\n * Get selected state from the component KeyDown event.\n *\n * @param {{event: TableKeyDownEvent, selectedState: {[id: string]: boolean | number[]}, dataItemKey: string}} options\n * @returns {{[id: string]: boolean | number[]}} - The new selected state.\n */\nexport var getSelectedStateFromKeyDown = function (options) {\n var event = options.event, dataItemKey = options.dataItemKey, selectedState = options.selectedState;\n var syntheticEvent = event.syntheticEvent, nativeEvent = event.nativeEvent, dataItems = event.dataItems, componentId = event.componentId, mode = event.mode, cell = event.cell, selectedField = event.selectedField;\n var target = nativeEvent.target, ctrlKey = nativeEvent.ctrlKey, metaKey = nativeEvent.metaKey, altKey = nativeEvent.altKey, shiftKey = nativeEvent.shiftKey;\n if (syntheticEvent.isDefaultPrevented() || nativeEvent.keyCode !== Keys.enter) {\n return selectedState;\n }\n var tdElement = closestTagName(target, 'TD');\n var trElement = closestTagName(target, 'TR');\n var colIndex = getColumnIndex(tdElement);\n var rowIndex = getRowIndex(trElement);\n var selectionState = {};\n if (tdElement && trElement && rowIndex !== undefined && colIndex !== undefined) {\n selectionState = getSelectedState({\n selectedState: selectedState,\n dataItemKey: dataItemKey,\n event: {\n ctrlKey: ctrlKey,\n metaKey: metaKey,\n altKey: altKey,\n shiftKey: shiftKey,\n dataItems: dataItems,\n cell: cell,\n mode: mode,\n selectedField: selectedField,\n componentId: componentId,\n startColIndex: colIndex, endColIndex: colIndex, startRowIndex: rowIndex, endRowIndex: rowIndex,\n isDrag: false,\n syntheticEvent: syntheticEvent,\n nativeEvent: nativeEvent,\n target: event.target,\n dataItem: null\n }\n });\n }\n return selectionState;\n};\n/**\n * Get selected state from the component selection event.\n *\n * @param {{event: TableSelectionChangeEvent, selectedState: {[id: string]: boolean | number[]}, dataItemKey: string}} options\n * @returns {{[id: string]: boolean | number[]}} - The new selected state.\n */\nexport var getSelectedState = function (options) {\n var event = options.event, dataItemKey = options.dataItemKey, prevSelectedState = options.selectedState;\n var dataItems = event.dataItems, startRowIndex = event.startRowIndex, endRowIndex = event.endRowIndex, startColIndex = event.startColIndex, endColIndex = event.endColIndex, cell = event.cell, isDrag = event.isDrag, ctrlKey = event.ctrlKey, shiftKey = event.shiftKey, metaKey = event.metaKey, componentId = event.componentId, mode = event.mode, dataItem = event.dataItem;\n var idGetter = getter(dataItemKey);\n var selectionState = {};\n var isInputEvent = dataItem !== null;\n if (mode === 'single') {\n var currentDataItem = dataItems.slice(startRowIndex, startRowIndex + 1)[0];\n var itemId = idGetter(currentDataItem);\n LAST_SELECTION_STATE[componentId] = {\n rowIndex: startRowIndex,\n colIndex: startColIndex\n };\n selectionState[itemId] = cell ? [startColIndex] : true;\n }\n else if (isDrag || (!shiftKey && !ctrlKey && !metaKey && !isInputEvent)) {\n if (!isDrag) {\n LAST_SELECTION_STATE[componentId] = {\n rowIndex: startRowIndex,\n colIndex: startColIndex\n };\n }\n var selectedColumns_1 = [];\n for (var i = startColIndex; i <= endColIndex; i++) {\n selectedColumns_1.push(i);\n }\n var selectedDataItems = dataItems.slice(startRowIndex, endRowIndex + 1);\n selectedDataItems.forEach(function (currentItem) {\n var itemId = idGetter(currentItem);\n selectionState[itemId] = cell ? __spreadArray([], selectedColumns_1, true) : true;\n });\n }\n else {\n if (ctrlKey || metaKey || isInputEvent) {\n LAST_SELECTION_STATE[componentId] = {\n rowIndex: startRowIndex,\n colIndex: startColIndex\n };\n var selectedDataItems = dataItems.slice(startRowIndex, endRowIndex + 1);\n var currentDataItem = selectedDataItems[0];\n var itemId = idGetter(currentDataItem);\n selectionState = __assign({}, prevSelectedState);\n selectionState[itemId] = cell && !isInputEvent ? getCellSelection(selectionState[itemId], startColIndex) : !selectionState[itemId];\n }\n else if (shiftKey) {\n var lastRowIndex = (LAST_SELECTION_STATE[componentId] && LAST_SELECTION_STATE[componentId].rowIndex) || 0;\n var lastColIndex = (LAST_SELECTION_STATE[componentId] && LAST_SELECTION_STATE[componentId].colIndex) || 0;\n var currentStartRowIndex = Math.min(lastRowIndex, startRowIndex, endRowIndex);\n var currentEndRowIndex = Math.max(lastRowIndex, startRowIndex, endRowIndex);\n var currentStarColIndex = Math.min(lastColIndex, startColIndex, endColIndex);\n var currentEndColIndex = Math.max(lastColIndex, startColIndex, endColIndex);\n var selectedColumns_2 = [];\n for (var i = currentStarColIndex; i <= currentEndColIndex; i++) {\n selectedColumns_2.push(i);\n }\n var selectedDataItems = dataItems.slice(currentStartRowIndex, currentEndRowIndex + 1);\n selectedDataItems.forEach(function (currentItem) {\n var itemId = idGetter(currentItem);\n selectionState[itemId] = cell ? __spreadArray([], selectedColumns_2, true) : true;\n });\n }\n }\n return selectionState;\n};\n/** @hidden */\nvar HAS_RELATIVE_STACKING_CONTEXT = hasRelativeStackingContext();\n/** @hidden */\nexport var relativeContextElement = function (element) {\n if (!element || !HAS_RELATIVE_STACKING_CONTEXT) {\n return null;\n }\n var node = element.parentElement;\n while (node) {\n if (window.getComputedStyle(node).transform !== 'none') {\n return node;\n }\n node = node.parentElement;\n }\n};\n/** @hidden */\nexport var getOffset = function (offsetParent) {\n if (offsetParent && offsetParent.ownerDocument) {\n if (offsetParent !== offsetParent.ownerDocument.body) {\n var rect = offsetParent.getBoundingClientRect();\n return {\n left: rect.left - offsetParent.scrollLeft,\n top: rect.top - offsetParent.scrollTop\n };\n }\n }\n return { left: 0, top: 0 };\n};\n/** @hidden */\nexport var getSelectionOptions = function (selectable) {\n var enabled = selectable ?\n (typeof selectable.enabled === 'boolean' ? selectable.enabled : true) :\n false;\n var drag = selectable ? Boolean(selectable.drag) : false;\n var mode = selectable && selectable.mode ? selectable.mode : 'multiple';\n var cell = Boolean(selectable && selectable.cell);\n return { enabled: enabled, drag: drag, mode: mode, cell: cell };\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { orderBy as kendoDataQueryOrderBy, filterBy as kendoDataQueryFilterBy } from '@progress/kendo-data-query';\nimport { mapTree, extendDataItem as extendDataItemCommon, getItemPath as getItemPathCommon, getNestedValue } from '@progress/kendo-react-common';\n// Gets and sets the children. Returns the children or the re-created item with the new children.\nfunction children(item, subItemsField, subItems) {\n var _a;\n if (subItems) {\n return __assign(__assign({}, item), (_a = {}, _a[subItemsField] = subItems.length ? __spreadArray([], subItems, true) : undefined, _a));\n }\n else {\n return item && item[subItemsField] ? __spreadArray([], item[subItemsField], true) : [];\n }\n}\nfunction sortChildren(dataItem, sort, subItemsField) {\n var _a;\n if (dataItem[subItemsField]) {\n var item = children(dataItem, subItemsField, kendoDataQueryOrderBy(children(dataItem, subItemsField), sort));\n var subItems = children(item, subItemsField).map(function (root) { return sortChildren(root, sort, subItemsField); });\n return __assign(__assign({}, item), (_a = {}, _a[subItemsField] = subItems, _a));\n }\n return dataItem;\n}\n/**\n * Orders the specified tree according to the provided sort descriptors.\n *\n * @param {T[]} data - The data that will be sorted.\n * @param {SortDescriptor[]} descriptors - The descriptors by which the data will be sorted.\n * @param {string} subItemsField - The field which points to the subitems collection of each data item.\n * @returns {T[]} - The sorted data.\n */\nexport function orderBy(data, descriptors, subItemsField) {\n var sorted = kendoDataQueryOrderBy(data, descriptors);\n sorted = sorted.map(function (dataItem) { return sortChildren(dataItem, descriptors, subItemsField); });\n return sorted;\n}\nfunction filterChildren(dataItem, filters, subItemsField) {\n var subItems = children(dataItem, subItemsField);\n if (subItems && subItems.length) {\n subItems = subItems.map(function (item) { return filterChildren(item, filters, subItemsField); });\n var hasChildrenFilter = { operator: function (item) { return Boolean((item[subItemsField] || []).length); } };\n var filter = {\n filters: [\n { filters: filters, logic: 'and' },\n hasChildrenFilter\n ],\n logic: 'or'\n };\n var filtered = kendoDataQueryFilterBy(subItems, filter);\n return children(dataItem, subItemsField, filtered);\n }\n return dataItem;\n}\n/**\n * Filters the provided data tree according to the specified `Array`.\n *\n * @param {T[]} data - The data that will be filtered.\n * @param {FilterDescriptor[]|CompositeFilterDescriptor[]} descriptors - The filter criteria that will be applied.\n * @param {string} subItemsField - The field which points to the subitems collection of each data item.\n * @returns {T[]} - The filtered data.\n */\nexport function filterBy(data, descriptors, subItemsField) {\n var _a;\n var filtered = (_a = {}, _a[subItemsField] = __spreadArray([], data, true), _a);\n filtered = filterChildren(filtered, descriptors, subItemsField);\n return filtered[subItemsField] || [];\n}\n/**\n * @hidden\n */\nexport function flatData(data, getChildren, itemMap) {\n var stack = [];\n var flatted = [];\n // we start from end as push() improves performance by up to 50%\n for (var i = data.length - 1; i >= 0; i--) {\n var root = data[i];\n stack.push({\n root: root,\n data: getChildren(root),\n level: [i],\n levelCount: data.length\n });\n }\n while (stack.length > 0) {\n var stackItem = stack.pop();\n flatted.push(__assign(__assign({ dataItem: stackItem.root, level: __spreadArray([], stackItem.level, true) }, itemMap(stackItem.root)), { levelCount: stackItem.levelCount }));\n if (stackItem.data.length) {\n for (var i = stackItem.data.length - 1; i >= 0; i--) {\n var root = stackItem.data[i];\n stack.push({\n root: root,\n data: getChildren(root),\n level: __spreadArray(__spreadArray([], stackItem.level, true), [i], false),\n levelCount: stackItem.data.length\n });\n }\n }\n }\n return flatted;\n}\n/**\n * Creates a flat data array from the passed tree dataset.\n *\n * @param {object[]} dataset - The source dataset of data items.\n * @param {string} expandField - The field which points to the expanded value of each data item.\n * @param {string} subItemsField - The field which points to the subitems collection of each data item.\n * @returns {object[]} - A collection of the generated data items that are in a flat structure.\n */\nexport var treeToFlat = function (data, expandField, subItemsField) {\n var expanded = function (dataItem) { return Boolean(getNestedValue(expandField, dataItem)); };\n var hasChildren = function (dataItem) { return Boolean(getNestedValue(subItemsField, dataItem)); };\n var getChildren = function (dataItem) {\n var items = [];\n if (expanded(dataItem) && hasChildren(dataItem)) {\n items.push.apply(items, getNestedValue(subItemsField, dataItem));\n }\n return items;\n };\n var flatItems = function (dataItem, flatted, level) {\n flatted.push(__assign(__assign({}, dataItem), { level: level }));\n getChildren(dataItem).forEach(function (root) { return flatItems(root, flatted, level + 1); });\n };\n var flattedData = [];\n data.forEach(function (root) { return flatItems(root, flattedData, 0); });\n return flattedData;\n};\n/**\n * Creates a tree from the passed dataset.\n *\n * @param {object[]} dataset - The source dataset of data items.\n * @param {(item: object) => any} getId - A function which will return the id of the data item.\n * @param {(item: object) => any} getParentId - A function which will return the data item id of its parent data item.\n * @param {string} subItemsField - The field which points to the subitems collection of each data item.\n * @returns {object[]} - A collection of the generated data items that are structured in a tree.\n */\nexport var createDataTree = function (dataset, getId, getParentId, subItemsField) {\n var hashTable = {}, dataTree = [], parentItem;\n dataset.forEach(function (dataItem) { return hashTable[getId(dataItem)] = __assign({}, dataItem); });\n dataset.forEach(function (dataItem) {\n parentItem = hashTable[getParentId(dataItem)];\n if (parentItem) {\n parentItem[subItemsField] = parentItem[subItemsField] || [];\n parentItem[subItemsField].push(hashTable[getId(dataItem)]);\n }\n else {\n dataTree.push(hashTable[getId(dataItem)]);\n }\n });\n return dataTree;\n};\n/**\n * Similar to the `Object.assign` function. Additionally, creates a new array for the subitems.\n *\n * @param {object} item - The source data item.\n * @param {string} subItemsField - The field which points to the subitems collection of each data item.\n * @param {object} propsToExtend - The props with which the source data item will be extended.\n * @returns {object} - The target data item.\n */\nexport var extendDataItem = function (item, subItemsField, propsToExtend) {\n return extendDataItemCommon(item, subItemsField, propsToExtend);\n};\n/**\n * Removes the items from the passed `data` which match the passed `condition`.\n *\n * @param {any[]} data - The data tree.\n * @param {string} subItemsField - The field which points to the subitems collection of each data item.\n * @param {(item: object) => Boolean} condition - A function that will be executed for each data item\n * in the tree data and the items for which returns true will be removed.\n * @returns {any[]} - The new data tree.\n */\nexport var removeItems = function (data, subItemsField, condition) {\n var _a;\n var newData = mapTree([(_a = {}, _a[subItemsField] = __spreadArray([], data, true), _a)], subItemsField, function (item) { return removeChild(item, condition, subItemsField); });\n return __spreadArray([], newData[0][subItemsField], true);\n};\n/**\n * @hidden\n */\nvar removeChild = function (item, condition, subItemsField) {\n var _a;\n var subItems = item[subItemsField] || [];\n var childIndex = subItems.findIndex(condition);\n if (childIndex !== -1) {\n var newChildren = __spreadArray([], subItems, true);\n newChildren.splice(childIndex, 1);\n return __assign(__assign({}, item), (_a = {}, _a[subItemsField] = newChildren, _a));\n }\n return item;\n};\n/**\n * Changes the `subItems` collection of each data item which matches the passed `condition`.\n *\n * @param {any[]} data - The data tree.\n * @param {string} subItemsField - The field which points to the subitems collection of each data item.\n * @param {(item: object) => Boolean} condition - A function that will be executed for each data item and\n * will return `true` for items that have to change the subitems collection.\n * @param {(subItems: object[]) => object[]} change - A function which\n * has as a parameter the subitems collection of the matched items and which will return the new subitems collection.\n * @returns {any[]} - The new data tree.\n */\nexport var modifySubItems = function (data, subItemsField, condition, change) {\n return mapTree(data, subItemsField, function (item) {\n var _a;\n return condition(item) ? __assign(__assign({}, item), (_a = {}, _a[subItemsField] = change(item[subItemsField] || []), _a)) :\n item;\n });\n};\n/**\n * Returns the data item path in the tree based on the level parameter.\n *\n * @param {any[]} tree - The data tree.\n * @param {number[]} level - The level of the target tree item.\n * @param {string} subItemsField - The field which points to the subitems collection of each data item.\n * @returns {any[]} - The path of the data item.\n */\nexport var getItemPath = function (tree, level, subItemsField) {\n return getItemPathCommon(tree, level, subItemsField);\n};\n/**\n * Moves the targeted item in the tree to another position.\n *\n * @param {any[]} data - The data tree.\n * @param {number[]} target - The level of the target tree item which will be moved.\n * @param {number[] | null} destination - The level of the destination tree item where the target item will be moved in.\n * If it is null, the target item will be added at the root level.\n * @param {string} subItemsField - The field which points to the subitems collection of each data item.\n * @returns {any[]} - The new data tree.\n */\nexport var moveTreeItem = function (data, target, destination, subItemsField) {\n var tree = __spreadArray([], data, true);\n var targetItemPath = getItemPath(tree, target, subItemsField);\n var targetItem = targetItemPath.pop();\n var targetParent = targetItemPath.pop();\n var targetItemIndex = target[target.length - 1];\n if (destination) {\n var destinationItemPath = getItemPath(tree, destination, subItemsField);\n var destinationItem = destinationItemPath.pop();\n (targetParent ? targetParent[subItemsField] : tree).splice(targetItemIndex, 1);\n destinationItem[subItemsField] = destinationItem[subItemsField] || [];\n destinationItem[subItemsField].push(targetItem);\n }\n else {\n (targetParent ? targetParent[subItemsField] : tree).splice(targetItemIndex, 1);\n tree.push(targetItem);\n }\n return tree;\n};\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n/**\n * @hidden\n */\nexport function tableColumnsVirtualization(args) {\n var enabled = args.enabled, _a = args.columns, columns = _a === void 0 ? [] : _a, tableViewPortWidth = args.tableViewPortWidth, scrollLeft = args.scrollLeft;\n var colSpans = columns.map(function () { return 1; });\n var hiddenColumns = columns.map(function () { return false; });\n if (!enabled) {\n return { colSpans: colSpans, hiddenColumns: hiddenColumns };\n }\n var widths = columns.map(function (c) { return parseFloat((c.width || '').toString()) || 10; });\n var widthOfHiddenColumns = 0;\n for (var i = 0; i < columns.length; i++) {\n if (columns[i].locked) {\n continue;\n }\n var considerNext = (i < widths.length - 1) ? widths[i + 1] : 0;\n if (widthOfHiddenColumns + widths[i] + considerNext < scrollLeft) {\n hiddenColumns[i] = true;\n widthOfHiddenColumns += widths[i];\n }\n else {\n break;\n }\n }\n var totalWidth = widths.reduce(function (acc, current) { return acc + current; }, 0);\n widthOfHiddenColumns = 0;\n for (var i = columns.length - 1; i >= 0; i--) {\n if (columns[i].locked) {\n continue;\n }\n if (widthOfHiddenColumns + 2 * widths[i] < totalWidth - tableViewPortWidth - scrollLeft) {\n hiddenColumns[i] = true;\n widthOfHiddenColumns += widths[i];\n }\n else {\n break;\n }\n }\n var hiddenCols = __spreadArray([], hiddenColumns, true);\n var hidden = function (value) { return value; };\n var lastVisible = hiddenCols.lastIndexOf(false);\n var anyHidden = hiddenCols.some(hidden);\n var allHidden = hiddenCols.every(hidden);\n var hiddenSeqLength;\n var updateIndex;\n while (anyHidden && hiddenCols.length && (lastVisible !== -1 || allHidden)) {\n if (lastVisible < hiddenCols.length - 1) {\n hiddenSeqLength = allHidden ? hiddenCols.length : hiddenCols.length - lastVisible - 1;\n updateIndex = hiddenCols.length - hiddenSeqLength;\n if (updateIndex === 0) {\n updateIndex = hiddenSeqLength - 1;\n }\n hiddenColumns[updateIndex] = false;\n colSpans[updateIndex] = hiddenSeqLength;\n hiddenCols.splice(lastVisible + 1, hiddenSeqLength);\n }\n while (hiddenCols.length && !hiddenCols[hiddenCols.length - 1]) {\n hiddenCols.pop();\n }\n lastVisible = hiddenCols.lastIndexOf(false);\n anyHidden = hiddenCols.some(hidden);\n allHidden = hiddenCols.every(hidden);\n }\n return { colSpans: colSpans, hiddenColumns: hiddenColumns };\n}\n","/**\n * A function that clones the passed date. The parameter could be `null`.\n *\n * @param date - The initial date value.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * cloneDate(new Date(2016, 0, 1)); // returns new Date(2016, 0, 1);\n * cloneDate(null); // returns null\n * ```\n */\nexport var cloneDate = function (date) { return date ? new Date(date.getTime()) : null; };\n","import { cloneDate } from './clone-date';\n/**\n * @hidden\n */\nexport var adjustDST = function (date, hour) {\n var newDate = cloneDate(date);\n if (hour === 0 && newDate.getHours() === 23) {\n newDate.setHours(newDate.getHours() + 2);\n }\n return newDate;\n};\n","import { adjustDST } from './adjust-dst';\n/**\n * A function which returns a new `Date` instance.\n *\n * @param year - The year value.\n * @param month - The month value.\n * @param day - The day value.\n * @param hours - The hours value.\n * @param minutes - The minutes value.\n * @param seconds - The seconds value.\n * @param milliseconds - milliseconds value.\n * @returns The date instance.\n *\n * @example\n * ```ts-no-run\n * createDate(2016, 0, 15); // 2016-01-15 00:00:00\n * createDate(2016, 0, 15, 22, 22, 20); // 2016-01-15 22:22:20\n * ```\n */\nexport var createDate = function (year, month, day, hours, minutes, seconds, milliseconds) {\n if (hours === void 0) { hours = 0; }\n if (minutes === void 0) { minutes = 0; }\n if (seconds === void 0) { seconds = 0; }\n if (milliseconds === void 0) { milliseconds = 0; }\n var date = new Date(year, month, day, hours, minutes, seconds, milliseconds);\n if (year > -1 && year < 100) {\n date.setFullYear(date.getFullYear() - 1900);\n }\n return adjustDST(date, hours);\n};\n","import { createDate } from './create-date';\n/**\n * A function which returns the passed date with a midnight time portion.\n *\n * @param date - The initial date.\n * @returns - The date with a midnight time portion.\n *\n * @example\n * ```ts-no-run\n * getDate(new Date(2016, 0, 15, 14, 30, 30)); // 2016-01-15 00:00:00\n * ```\n */\nexport var getDate = function (date) {\n return createDate(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);\n};\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-dateinputs',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1697039303,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","/**\n * A function that compares two dates. The comparison also includes the time portion.\n *\n * @param candidate - The candidate date.\n * @param expected - The expected date.\n * @returns - A Boolean value indicating whether the values are equal.\n *\n * @example\n * ```ts-no-run\n * isEqual(new Date(2016, 0, 1), new Date(2016, 0, 1)); // true\n * isEqual(new Date(2016, 0, 1), new Date(2016, 0, 2)); // false\n * isEqual(new Date(2016, 0, 1, 10), new Date(2016, 0, 1, 20)); // false\n * ```\n */\nexport var isEqual = function (candidate, expected) {\n if (!candidate && !expected) {\n return true;\n }\n return candidate && expected && candidate.getTime() === expected.getTime();\n};\n","import { adjustDST } from './adjust-dst';\nimport { cloneDate } from './clone-date';\n/**\n * A function that adds and subtracts days from a `Date` object.\n *\n * @param date - The initial date value.\n * @param offset - The number of days to add and subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addDays(new Date(2016, 0, 1), 5); // 2016-1-6\n * addDays(new Date(2016, 0, 1), -5); // 2015-12-26\n * ```\n */\nexport var addDays = function (date, offset) {\n var newDate = cloneDate(date);\n newDate.setDate(newDate.getDate() + offset);\n return adjustDST(newDate, date.getHours());\n};\n","import { addDays } from './add-days';\nimport { createDate } from './create-date';\n/**\n * A function which returns the last date of the month.\n *\n * @param date - The initial date.\n * @returns - The last date of the initial date month.\n *\n * @example\n * ```ts-no-run\n * lastDayOfMonth(new Date(2016, 0, 15)); // 2016-01-31\n * ```\n */\nexport var lastDayOfMonth = function (date) {\n var newDate = createDate(date.getFullYear(), date.getMonth() + 1, 1, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n return addDays(newDate, -1);\n};\n","import { adjustDST } from './adjust-dst';\nimport { cloneDate } from './clone-date';\nimport { lastDayOfMonth } from './last-day-of-month';\nvar MONTHS_LENGTH = 12;\nvar normalize = function (date, expectedMonth) { return (date.getMonth() !== expectedMonth ? lastDayOfMonth(addMonths(date, -1)) : date //tslint:disable-line:no-use-before-declare\n); };\n/**\n * A function that adds and subtracts months from a `Date` object.\n *\n * @param date - The initial date value.\n * @param offset - The number of months to add or subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addMonths(new Date(2016, 5, 1), 5); // 2016-11-1\n * addMonths(new Date(2016, 5, 1), -5); // 2015-1-1\n * ```\n */\nexport var addMonths = function (date, offset) {\n var newDate = cloneDate(date);\n var diff = (newDate.getMonth() + offset) % MONTHS_LENGTH;\n var expectedMonth = (MONTHS_LENGTH + diff) % MONTHS_LENGTH;\n newDate.setMonth(newDate.getMonth() + offset);\n return normalize(adjustDST(newDate, date.getHours()), expectedMonth);\n};\n","/**\n * @hidden\n */\nvar Mask = /** @class */ (function () {\n function Mask() {\n this.symbols = '';\n this.partMap = [];\n }\n return Mask;\n}());\nexport { Mask };\n","/**\n * @hidden\n */\nexport var defaultFormat = 'd';\n/**\n * @hidden\n */\nexport var defaultFormatPlaceholder = 'wide';\n/**\n * @hidden\n */\nexport var padZero = function (length) { return new Array(Math.max(length, 0)).fill('0').join(''); };\n/**\n * @hidden\n */\nexport var approximateStringMatching = function (oldTextOrigin, oldFormat, newTextOrigin, selectionStart) {\n /*\n Remove the right part of the cursor.\n oldFormat = oldFormat.substring(0, caret + oldText.length - newText.length);\n */\n var oldTextSeparator = oldTextOrigin[selectionStart + oldTextOrigin.length - newTextOrigin.length];\n var oldText = oldTextOrigin.substring(0, selectionStart + oldTextOrigin.length - newTextOrigin.length);\n var newText = newTextOrigin.substring(0, selectionStart);\n var diff = [];\n /* Handle the typing of a single character over the same selection. */\n if (oldText === newText && selectionStart > 0) {\n diff.push([oldFormat[selectionStart - 1], newText[selectionStart - 1]]);\n return diff;\n }\n if (oldText.indexOf(newText) === 0 &&\n (newText.length === 0 || oldFormat[newText.length - 1] !== oldFormat[newText.length])) {\n /* Handle Delete/Backspace. */\n var deletedSymbol = '';\n /*\n The whole text is replaced by the same character.\n A nasty patch is required to keep the selection in the first segment.\n */\n if (newText.length === 1) {\n diff.push([oldFormat[0], newText[0]]);\n }\n for (var i = newText.length; i < oldText.length; i++) {\n if (oldFormat[i] !== deletedSymbol && oldFormat[i] !== '_') {\n deletedSymbol = oldFormat[i];\n diff.push([deletedSymbol, '']);\n }\n }\n return diff;\n }\n /*\n Handle the insertion of the text (the new text is longer than the previous one).\n Handle the typing over a literal as well.\n */\n if (newText.indexOf(oldText) === 0 || oldFormat[selectionStart - 1] === '_') {\n var symbol = oldFormat[0];\n for (var i = Math.max(0, oldText.length - 1); i < oldFormat.length; i++) {\n if (oldFormat[i] !== '_') {\n symbol = oldFormat[i];\n break;\n }\n }\n return [[symbol, newText[selectionStart - 1]]];\n }\n /* Handle the entering of a space or a separator for navigating to the next item. */\n if (newText[newText.length - 1] === ' ' || newText[newText.length - 1] === oldTextSeparator) {\n return [[oldFormat[selectionStart - 1], '_']];\n }\n /* Handle typing over a correctly selected part. */\n return [[oldFormat[selectionStart - 1], newText[selectionStart - 1]]];\n};\n/**\n * @hidden\n */\nexport var dateSymbolMap = function (map, part) { map[part.pattern[0]] = part.type; return map; };\n/**\n * @hidden\n */\nexport var isInRange = function (candidate, min, max) { return (candidate === null || !((min && min > candidate) || (max && max < candidate))); };\n/**\n * @hidden\n */\nexport var invalidClasses = ['k-invalid'];\n/** @hidden */\nexport var wrapperClasses = ['k-widget', 'k-dateinput'];\n","import { addMonths, cloneDate, createDate, isEqual, getDate, lastDayOfMonth } from '@progress/kendo-date-math';\nimport { Mask } from './mask';\nimport { dateSymbolMap } from './../utils';\n/**\n * @hidden\n */\nvar KendoDate = /** @class */ (function () {\n function KendoDate(intlProvider, formatPlaceholder, format) {\n this.year = true;\n this.month = true;\n this.date = true;\n this.hours = true;\n this.minutes = true;\n this.seconds = true;\n this.milliseconds = true;\n this.leadingZero = null;\n this.typedMonthPart = '';\n this.knownParts = 'adHhmMsEy';\n this.symbols = {\n 'E': 'E',\n 'H': 'H',\n 'M': 'M',\n 'a': 'a',\n 'd': 'd',\n 'h': 'h',\n 'm': 'm',\n 's': 's',\n 'y': 'y'\n };\n this._value = getDate(new Date());\n this.intlProvider = intlProvider;\n this.formatPlaceholder = formatPlaceholder;\n this.format = format;\n this.monthNames = this.allFormatedMonths();\n }\n Object.defineProperty(KendoDate.prototype, \"intl\", {\n get: function () {\n return this.intlProvider();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(KendoDate.prototype, \"value\", {\n get: function () {\n return this._value;\n },\n enumerable: false,\n configurable: true\n });\n KendoDate.prototype.setValue = function (value) {\n if (!value) {\n this._value = getDate(new Date());\n this.modifyExisting(false);\n }\n else if (!isEqual(value, this._value)) {\n this._value = cloneDate(value);\n this.modifyExisting(true);\n }\n };\n KendoDate.prototype.hasValue = function () {\n var _this = this;\n var pred = function (a, p) { return a || p.type !== 'literal' && p.type !== 'dayperiod' && _this.getExisting(p.pattern[0]); };\n return this.intl.splitDateFormat(this.format).reduce(pred, false);\n };\n KendoDate.prototype.getDateObject = function () {\n for (var i = 0; i < this.knownParts.length; i++) {\n if (!this.getExisting(this.knownParts[i])) {\n return null;\n }\n }\n return cloneDate(this.value);\n };\n KendoDate.prototype.getTextAndFormat = function () {\n return this.merge(this.intl.formatDate(this.value, this.format), this.dateFormatString(this.value, this.format));\n };\n KendoDate.prototype.modifyExisting = function (value) {\n var sampleFormat = this.dateFormatString(this.value, this.format).symbols;\n for (var i = 0; i < sampleFormat.length; i++) {\n this.setExisting(sampleFormat[i], value);\n }\n };\n KendoDate.prototype.getExisting = function (symbol) {\n switch (symbol) {\n case 'y': return this.year;\n case 'M':\n case 'L': return this.month;\n case 'd': return this.date;\n case 'E': return this.date && this.month && this.year;\n case 'h':\n case 'H': return this.hours;\n case 'm': return this.minutes;\n case 's': return this.seconds;\n default: return true;\n }\n };\n KendoDate.prototype.setExisting = function (symbol, value) {\n switch (symbol) {\n case 'y':\n // allow 2/29 dates\n this.year = value;\n if (value === false) {\n this._value.setFullYear(2000);\n }\n break;\n case 'M':\n // make sure you can type 31 in the day part\n this.month = value;\n if (value === false) {\n this._value.setMonth(0);\n }\n break;\n case 'd':\n this.date = value;\n break;\n case 'h':\n case 'H':\n this.hours = value;\n break;\n case 'm':\n this.minutes = value;\n break;\n case 's':\n this.seconds = value;\n break;\n default: return;\n }\n };\n KendoDate.prototype.modifyPart = function (symbol, offset) {\n var newValue = cloneDate(this.value);\n switch (symbol) {\n case 'y':\n newValue.setFullYear(newValue.getFullYear() + offset);\n break;\n case 'M':\n newValue = addMonths(this.value, offset);\n break;\n case 'd':\n case 'E':\n newValue.setDate(newValue.getDate() + offset);\n break;\n case 'h':\n case 'H':\n newValue.setHours(newValue.getHours() + offset);\n break;\n case 'm':\n newValue.setMinutes(newValue.getMinutes() + offset);\n break;\n case 's':\n newValue.setSeconds(newValue.getSeconds() + offset);\n break;\n case 'a':\n newValue.setHours(newValue.getHours() + (12 * offset));\n break;\n default: break;\n }\n this.setExisting(symbol, true);\n this._value = newValue;\n };\n KendoDate.prototype.parsePart = function (symbol, currentChar) {\n var _a;\n this.resetLeadingZero();\n if (!currentChar) {\n this.setExisting(symbol, false);\n return { value: null };\n }\n var baseDate = this.intl.formatDate(this.value, this.format);\n var dateParts = this.dateFormatString(this.value, this.format);\n var baseFormat = dateParts.symbols;\n var replaced = false;\n var prefix = '';\n var current = '';\n var suffix = '';\n for (var i = 0; i < baseDate.length; i++) {\n if (baseFormat[i] === symbol) {\n current += this.getExisting(symbol) ? baseDate[i] : '0';\n replaced = true;\n }\n else if (!replaced) {\n prefix += baseDate[i];\n }\n else {\n suffix += baseDate[i];\n }\n }\n var parsedDate = null;\n var month = this.matchMonth(currentChar);\n while (current.length > 0 && current.charAt(0) === '0') {\n current = current.slice(1);\n }\n if (current.length >= 4) {\n current = '';\n }\n for (var i = 0; i < 2; i++) {\n var middle = current + currentChar;\n var middleNumber = parseInt(middle, 10);\n parsedDate = this.intl.parseDate(prefix + middle + suffix, this.format);\n if (!parsedDate && !isNaN(middleNumber) && !isNaN(parseInt(currentChar, 10))) {\n if (symbol === 'M' && !month) {\n var monthNumber = middleNumber - 1;\n if (monthNumber > -1 && monthNumber < 12) {\n parsedDate = cloneDate(this.value);\n parsedDate.setMonth(monthNumber);\n if (parsedDate.getMonth() !== monthNumber) {\n parsedDate = lastDayOfMonth(addMonths(parsedDate, -1));\n }\n }\n }\n if (symbol === 'y') {\n parsedDate = createDate(parseInt(middle, 10), this.month ? this.value.getMonth() : 0, this.date ? this.value.getDate() : 1, this.hours ? this.value.getHours() : 0, this.minutes ? this.value.getMinutes() : 0, this.seconds ? this.value.getSeconds() : 0, this.milliseconds ? this.value.getMilliseconds() : 0);\n if (this.date && parsedDate.getDate() !== this.value.getDate()) {\n parsedDate = lastDayOfMonth(addMonths(parsedDate, -1));\n }\n }\n }\n if (parsedDate) {\n this._value = parsedDate;\n this.setExisting(symbol, true);\n return { value: this.value };\n }\n current = '';\n }\n if (month) {\n parsedDate = this.intl.parseDate(prefix + month + suffix, this.format);\n if (parsedDate) {\n this._value = parsedDate;\n this.setExisting(symbol, true);\n return { value: this.value };\n }\n }\n if (currentChar === '0') {\n this.leadingZero = !this.isAbbrMonth(dateParts.partMap, symbol) ? (_a = {}, _a[symbol] = true, _a) : null;\n this.setExisting(symbol, false);\n }\n return { value: null };\n };\n KendoDate.prototype.symbolMap = function (symbol) {\n return this.intl.splitDateFormat(this.format).reduce(dateSymbolMap, {})[symbol];\n };\n KendoDate.prototype.resetLeadingZero = function () {\n var hasLeadingZero = this.leadingZero !== null;\n this.leadingZero = null;\n return hasLeadingZero;\n };\n KendoDate.prototype.isAbbrMonth = function (parts, symbol) {\n var pattern = this.partPattern(parts, symbol);\n return pattern.type === 'month' && pattern.names;\n };\n KendoDate.prototype.partPattern = function (parts, symbol) {\n return parts.filter(function (part) { return part.pattern.indexOf(symbol) !== -1; })[0];\n };\n KendoDate.prototype.matchMonth = function (typedChar) {\n this.typedMonthPart += typedChar.toLowerCase();\n if (this.monthNames.length === 0) {\n return '';\n }\n while (this.typedMonthPart.length > 0) {\n for (var i = 0; i < this.monthNames.length; i++) {\n if (this.monthNames[i].toLowerCase().indexOf(this.typedMonthPart) === 0) {\n return this.monthNames[i];\n }\n }\n var monthAsNum = parseInt(this.typedMonthPart, 10);\n /* ensure they exact match */\n if (monthAsNum >= 1 && monthAsNum <= 12 && monthAsNum.toString() === this.typedMonthPart) {\n return this.monthNames[monthAsNum - 1];\n }\n this.typedMonthPart = this.typedMonthPart.substring(1, this.typedMonthPart.length);\n }\n return '';\n };\n KendoDate.prototype.allFormatedMonths = function () {\n var dateFormatParts = this.intl.splitDateFormat(this.format);\n for (var i = 0; i < dateFormatParts.length; i++) {\n if (dateFormatParts[i].type === 'month' && dateFormatParts[i].names) {\n return this.intl.dateFormatNames(dateFormatParts[i].names);\n }\n }\n return [];\n };\n KendoDate.prototype.dateFormatString = function (date, format) {\n var dateFormatParts = this.intl.splitDateFormat(format);\n var parts = [];\n var partMap = [];\n for (var i = 0; i < dateFormatParts.length; i++) {\n var partLength = this.intl.formatDate(date, { pattern: dateFormatParts[i].pattern }).length;\n while (partLength > 0) {\n parts.push(this.symbols[dateFormatParts[i].pattern[0]] || '_');\n partMap.push(dateFormatParts[i]);\n partLength--;\n }\n }\n var returnValue = new Mask();\n returnValue.symbols = parts.join('');\n returnValue.partMap = partMap;\n return returnValue;\n };\n KendoDate.prototype.merge = function (text, mask) {\n // Important: right to left.\n var resultText = '';\n var resultFormat = '';\n var format = mask.symbols;\n for (var r = format.length - 1; r >= 0; r--) {\n if (this.knownParts.indexOf(format[r]) === -1 || this.getExisting(format[r])) {\n resultText = text[r] + resultText;\n resultFormat = format[r] + resultFormat;\n }\n else {\n var currentSymbol = format[r];\n while (r >= 0 && currentSymbol === format[r]) {\n r--;\n }\n r++;\n if (this.leadingZero && this.leadingZero[currentSymbol]) {\n resultText = '0' + resultText;\n }\n else {\n resultText = this.dateFieldName(mask.partMap[r]) + resultText;\n }\n while (resultFormat.length < resultText.length) {\n resultFormat = format[r] + resultFormat;\n }\n }\n }\n return { text: resultText, format: resultFormat };\n };\n KendoDate.prototype.dateFieldName = function (part) {\n var formatPlaceholder = (this.formatPlaceholder || 'wide');\n if (formatPlaceholder[part.type]) {\n return formatPlaceholder[part.type];\n }\n if (formatPlaceholder === 'formatPattern') {\n return part.pattern;\n }\n return this.intl.dateFieldName(Object.assign(part, { nameType: formatPlaceholder }));\n };\n return KendoDate;\n}());\nexport { KendoDate };\n","/**\n * @hidden\n */\nexport var EMPTY_SELECTIONRANGE = { start: null, end: null };\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { cloneDate, isEqual } from '@progress/kendo-date-math';\nimport { getDate } from '@progress/kendo-date-math';\nimport { EMPTY_SELECTIONRANGE } from './calendar/models/SelectionRange';\n/**\n * @hidden\n */\nexport var isEqualRange = function (initial, updated) {\n var _a = initial || EMPTY_SELECTIONRANGE, initialStart = _a.start, initialEnd = _a.end;\n var _b = updated || EMPTY_SELECTIONRANGE, updatedStart = _b.start, updatedEnd = _b.end;\n if (initialStart === null || initialEnd === null || updatedStart === null || updatedEnd === null) {\n return false;\n }\n return isEqual(initialStart, updatedStart) && isEqual(initialEnd, updatedEnd);\n};\n// Polyfill for PropTypes.null\n/**\n * @hidden\n */\nexport function nullable(subRequirement) {\n var check = function (required, props, key) {\n var rest = [];\n for (var _i = 3; _i < arguments.length; _i++) {\n rest[_i - 3] = arguments[_i];\n }\n if (props[key] === null) {\n return null;\n }\n var sub = required ? subRequirement.isRequired : subRequirement;\n return sub.apply(void 0, __spreadArray([props, key], rest, false));\n };\n var fn = check.bind(null, false);\n fn.isRequired = check.bind(null, true);\n return fn;\n}\n/**\n * @hidden\n */\nexport var viewInRange = function (candidate, min, max) {\n if (min === undefined || max === undefined) {\n return candidate;\n }\n return min <= candidate && candidate <= max\n ? candidate\n : candidate < min\n ? min\n : max;\n};\n/**\n * @hidden\n */\nexport var MIDNIGHT_DATE = new Date(1980, 0, 1);\n/**\n * @hidden\n */\nexport var MIN_DATE = new Date(1900, 0, 1);\n/**\n * @hidden\n */\nexport var MAX_DATE = new Date(2099, 11, 31);\n/**\n * @hidden\n */\nexport var MIN_TIME = new Date(1980, 0, 1);\n/**\n * @hidden\n */\nexport var MAX_TIME = new Date(1980, 0, 1, 23, 59, 59);\nvar isSet = function (value) { return value !== null && value !== undefined; };\n/**\n * @hidden\n */\nexport var isValidRange = function (min, max) { return (!isSet(min) || !isSet(max) || min <= max); };\n/**\n * @hidden\n */\nexport var setTime = function (origin, candidate) {\n var date = cloneDate(origin);\n date.setHours(candidate.getHours(), candidate.getMinutes(), candidate.getSeconds(), candidate.getMilliseconds());\n return date;\n};\n/**\n * @hidden\n */\nexport var getToday = function () { return getDate(new Date()); };\n/**\n * @hidden\n */\nexport var isInRange = function (candidate, min, max) { return (!candidate || !((min && min > candidate) || (max && max < candidate))); };\n/**\n * @hidden\n */\nexport var isInDateRange = function (candidate, min, max) { return (candidate === null\n || !((min && getDate(min) > getDate(candidate))\n || (max && getDate(max) < getDate(candidate)))); };\n/**\n * @hidden\n */\nexport var isInSelectionRange = function (value, selectionRange) {\n var _a = selectionRange || EMPTY_SELECTIONRANGE, start = _a.start, end = _a.end;\n if (!start || !end) {\n return false;\n }\n return start < value && value < end;\n};\n/**\n * @hidden\n */\nexport var range = function (start, end, step) {\n if (step === void 0) { step = 1; }\n var result = [];\n for (var i = start; i < end; i = i + step) {\n result.push(i);\n }\n return result;\n};\n/**\n * @hidden\n */\nexport var intersects = function (date, min, max) {\n return min.getTime() <= date.getTime() && date.getTime() <= max.getTime();\n};\n/**\n * @hidden\n */\nexport var shiftWeekNames = function (names, offset) { return (names.slice(offset).concat(names.slice(0, offset))); };\n/**\n * @hidden\n */\nexport var dateInRange = function (candidate, min, max) {\n if (!candidate) {\n return candidate;\n }\n if (min && candidate < min) {\n return cloneDate(min);\n }\n if (max && candidate > max) {\n return cloneDate(max);\n }\n return candidate;\n};\n/**\n * @hidden\n */\nexport var domContainerFactory = function (type) { return function (children, classes, styles) {\n if (classes === void 0) { classes = ''; }\n if (styles === void 0) { styles = {}; }\n var container = document.createElement(type);\n container.className = classes;\n Object.keys(styles).map(function (key) { return container.style[key] = styles[key]; });\n if (typeof children === 'string') {\n container.innerHTML = children || '';\n }\n else {\n (children || []).forEach(function (child) { return child && container.appendChild(child); });\n }\n return container;\n}; };\n/**\n * @hidden\n */\nexport function debounce(func, wait, options) {\n if (options === void 0) { options = {}; }\n var lastArgs;\n var lastThis;\n var maxWait = options.maxWait;\n var result;\n var timerId;\n var lastCallTime;\n var root = window;\n var lastInvokeTime = 0;\n var leading = false;\n var maxing = false;\n var trailing = true;\n // Bypass `requestAnimationFrame` by explicitly setting `wait=0`.\n var useRAF = (!wait && wait !== 0 && typeof root.requestAnimationFrame === 'function');\n if (typeof func !== 'function') {\n throw new TypeError('Expected a function');\n }\n wait = +wait || 0;\n function invokeFunc(time) {\n var args = lastArgs;\n var thisArg = lastThis;\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n function startTimer(pendingFunc, tmr) {\n if (useRAF) {\n root.cancelAnimationFrame(timerId);\n return root.requestAnimationFrame(pendingFunc);\n }\n return setTimeout(pendingFunc, tmr);\n }\n function cancelTimer(id) {\n if (useRAF) {\n return root.cancelAnimationFrame(id);\n }\n clearTimeout(id);\n }\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = startTimer(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime;\n var timeSinceLastInvoke = time - lastInvokeTime;\n var timeWaiting = wait - timeSinceLastCall;\n return maxing\n ? Math.min(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime;\n var timeSinceLastInvoke = time - lastInvokeTime;\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n function timerExpired() {\n var time = Date.now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = startTimer(timerExpired, remainingWait(time));\n }\n function trailingEdge(time) {\n timerId = undefined;\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n function cancel() {\n if (timerId !== undefined) {\n cancelTimer(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n function flush() {\n return timerId === undefined ? result : trailingEdge(Date.now());\n }\n function pending() {\n return timerId !== undefined;\n }\n function debounced() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var time = Date.now();\n var isInvoking = shouldInvoke(time);\n lastArgs = args;\n /* @ts-ignore */\n lastThis = this;\n lastCallTime = time;\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = startTimer(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = startTimer(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n debounced.pending = pending;\n return debounced;\n}\n/**\n * @hidden\n */\nexport function throttle(func, wait) {\n return debounce(func, wait, {\n leading: true,\n trailing: true,\n 'maxWait': wait\n });\n}\n","var _a;\n/**\n * @hidden\n */\nexport var prevView = 'multiviewcalendar.prevView';\n/**\n * @hidden\n */\nexport var nextView = 'multiviewcalendar.nextView';\n/**\n * @hidden\n */\nexport var increaseValue = 'dateinput.increment';\n/**\n * @hidden\n */\nexport var decreaseValue = 'dateinput.decrement';\n/**\n * @hidden\n */\nexport var today = 'calendar.today';\n/**\n * @hidden\n */\nexport var toggleCalendar = 'datepicker.toggleCalendar';\n/**\n * @hidden\n */\nexport var swapStartEnd = 'daterangepicker.swapStartEnd';\n/**\n * @hidden\n */\nexport var start = 'daterangepicker.start';\n/**\n * @hidden\n */\nexport var end = 'daterangepicker.end';\n/**\n * @hidden\n */\nexport var separator = 'daterangepicker.separator';\n/**\n * @hidden\n */\nexport var toggleDateTimeSelector = 'datetimepicker.toggleDateTimeSelector';\n/**\n * @hidden\n */\nexport var now = 'timepicker.now';\n/**\n * @hidden\n */\nexport var selectNow = 'timepicker.selectNow';\n/**\n * @hidden\n */\nexport var timePickerCancel = 'timepicker.cancel';\n/**\n * @hidden\n */\nexport var timePickerSet = 'timepicker.set';\n/**\n * @hidden\n */\nexport var toggleTimeSelector = 'timepicker.toggleTimeSelector';\n/**\n * @hidden\n */\nexport var toggleClock = 'timepicker.toggleClock';\n/**\n * @hidden\n */\nexport var date = 'datetimepicker.date';\n/**\n * @hidden\n */\nexport var time = 'datetimepicker.time';\n/**\n * @hidden\n */\nexport var dateTimePickerCancel = 'datetimepicker.cancel';\n/**\n * @hidden\n */\nexport var dateTimePickerSet = 'datetimepicker.set';\n/**\n * @hidden\n */\nexport var dateRangePickerCancel = 'daterangepicker.cancel';\n/**\n * @hidden\n */\nexport var dateRangePickerSet = 'daterangepicker.set';\n/**\n * @hidden\n */\nexport var messages = (_a = {},\n _a[today] = 'TODAY',\n _a[now] = 'NOW',\n _a[timePickerSet] = 'Set',\n _a[timePickerCancel] = 'Cancel',\n _a[date] = 'Date',\n _a[time] = 'Time',\n _a[dateTimePickerCancel] = 'Cancel',\n _a[dateTimePickerSet] = 'Set',\n _a[dateRangePickerCancel] = 'Cancel',\n _a[dateRangePickerSet] = 'Set',\n _a[start] = 'Start',\n _a[end] = 'End',\n _a[separator] = ' ',\n _a[selectNow] = 'Select Now',\n _a[toggleTimeSelector] = 'Toggle TimeSelector',\n _a[toggleClock] = 'Toggle Clock',\n _a[increaseValue] = 'Increase value',\n _a[decreaseValue] = 'Decrease value',\n _a[toggleCalendar] = 'Toggle calendar',\n _a[prevView] = 'Navigate to previous view',\n _a[nextView] = 'Navigate to next view',\n _a[swapStartEnd] = 'Swap start and end values',\n _a[toggleDateTimeSelector] = 'Toggle date-time selector',\n _a);\n","import { cloneDate, addDays } from '@progress/kendo-date-math';\nimport { TIME_PART } from './models/TimePart';\nimport { MIDNIGHT_DATE, setTime } from '../utils';\nvar setter = function (method) { return function (date, value) {\n var clone = cloneDate(date);\n clone[method](value);\n return clone;\n}; };\nvar defaultGetters = [\n { type: TIME_PART.hour, getter: function (value) { return value.getHours(); } },\n { type: TIME_PART.minute, getter: function (value) { return value.getMinutes(); } },\n { type: TIME_PART.second, getter: function (value) { return value.getSeconds(); } },\n { type: TIME_PART.millisecond, getter: function (value) { return value.getMilliseconds(); } }\n];\nvar left = function (getter) { return function (origin, _) { return getter(origin); }; };\nvar right = function (getter) { return function (_, candidate) { return getter(candidate); }; };\nvar convertToObject = function (parts) { return parts.reduce(function (obj, p) { obj[p.type] = p.type; return obj; }, {}); };\nvar getterByPart = function (parts) { return function (g) { return parts[g.type] ? right(g.getter) : left(g.getter); }; };\nvar gettersFactory = function (getters) { return function (parts) { return (getters.map(getterByPart(convertToObject(parts)))); }; };\nvar snapValue = function (getter, step, min, type) { return function (date) {\n var value = getter(date);\n var minValue = getter(min);\n if (type === 'hour') {\n return value - ((value - minValue) % step);\n }\n if (date.getTime() <= min.getTime()\n && value !== 0\n && value <= minValue) {\n return (Math.ceil(value / step)) * step;\n }\n return value - (value % step);\n}; };\nvar snappersFactory = function (getters) { return function (steps, min) { return (getters.map(function (g) {\n var step = Math.floor(steps[g.type]);\n return step ? snapValue(g.getter, step, min, g.type) : g.getter;\n})); }; };\n/**\n * @hidden\n */\nexport var generateGetters = gettersFactory(defaultGetters);\n/**\n * @hidden\n */\nexport var generateSnappers = snappersFactory(defaultGetters);\n/**\n * @hidden\n */\nexport var valueMerger = function (getters) { return function (origin, candidate) {\n origin.setHours.apply(origin, getters.map(function (g) { return g(origin, candidate); }));\n return origin;\n}; };\n/**\n * @hidden\n */\nexport var snapTime = function (snappers) { return function (candidate) {\n var date = cloneDate(candidate);\n date.setHours.apply(date, snappers.map(function (s) { return s(date); }));\n return date;\n}; };\n/**\n * @hidden\n */\nexport var setHours = setter('setHours');\n/**\n * @hidden\n */\nexport var setMinutes = setter('setMinutes');\n/**\n * @hidden\n */\nexport var setSeconds = setter('setSeconds');\n/**\n * @hidden\n */\nexport var getNow = function () { return new Date(); };\n/**\n * @hidden\n */\nexport var range = function (start, end, step) {\n if (step === void 0) { step = 1; }\n var result = [];\n for (var i = start; i < end; i = i + step) {\n result.push(i);\n }\n return result;\n};\nvar normalizeTimes = function (candidate, min, max) { return ({\n candidateValue: setTime(MIDNIGHT_DATE, candidate),\n maxValue: addDays(setTime(MIDNIGHT_DATE, max), min.getHours() < max.getHours() ? 0 : 1),\n minValue: setTime(MIDNIGHT_DATE, min)\n}); };\n/**\n * @hidden\n */\nexport var timeInRange = function (candidate, min, max) {\n if (!candidate || !min || !max) {\n return candidate;\n }\n var _a = normalizeTimes(candidate, min, max), candidateValue = _a.candidateValue, minValue = _a.minValue, maxValue = _a.maxValue;\n if (candidateValue < minValue) {\n return setTime(candidate, min);\n }\n if (candidateValue > maxValue) {\n return setTime(candidate, max);\n }\n return candidate;\n};\n/**\n * @hidden\n */\nexport var isInTimeRange = function (candidate, min, max) {\n if (!candidate || !min || !max) {\n return true;\n }\n var _a = normalizeTimes(candidate, min, max), candidateValue = _a.candidateValue, minValue = _a.minValue, maxValue = _a.maxValue;\n return minValue <= candidateValue && candidateValue <= maxValue;\n};\n/**\n * @hidden\n */\nexport var isInRange = function (candidate, min, max) {\n if (candidate === null) {\n return true;\n }\n var _a = normalizeTimes(candidate, min, max), candidateValue = _a.candidateValue, minValue = _a.minValue, maxValue = _a.maxValue;\n return minValue <= candidateValue && candidateValue <= maxValue;\n};\n/**\n * @hidden\n */\nexport var isSmallerThanMin = function (val, min) {\n if (val === null || min === null) {\n return false;\n }\n var normalizedValue = setTime(MIDNIGHT_DATE, val);\n var normalizedMin = setTime(MIDNIGHT_DATE, min);\n return normalizedValue.getTime() < normalizedMin.getHours();\n};\n/**\n * @hidden\n */\nexport var isBiggerThanMax = function (val, max) {\n if (val === null || max === null) {\n return false;\n }\n var normalizedValue = setTime(MIDNIGHT_DATE, val);\n var normalizedMax = setTime(MIDNIGHT_DATE, max);\n return normalizedMax.getTime() < normalizedValue.getHours();\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { isEqual, cloneDate } from '@progress/kendo-date-math';\nimport { Button } from '@progress/kendo-react-buttons';\nimport { caretAltUpIcon, caretAltDownIcon } from '@progress/kendo-svg-icons';\nimport { registerForIntl, provideIntlService, registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { KendoDate } from './models';\nimport { guid, AsyncFocusBlur, noop, classNames, createPropsContext, withPropsContext, kendoThemeMaps, getActiveElement } from '@progress/kendo-react-common';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { approximateStringMatching, defaultFormat, defaultFormatPlaceholder, isInRange, wrapperClasses } from './utils';\nimport { MAX_DATE, MIN_DATE } from './../utils';\nimport { messages, increaseValue, decreaseValue } from './../messages';\nimport { isInTimeRange } from '../timepicker/utils';\nimport { MIN_TIME, MAX_TIME } from '../utils';\nvar VALIDATION_MESSAGE = 'Please enter a valid value!';\n// tslint:enable:max-line-length\n/** @hidden */\nvar DateInputWithoutContext = /** @class */ (function (_super) {\n __extends(DateInputWithoutContext, _super);\n function DateInputWithoutContext(props) {\n var _this = _super.call(this, props) || this;\n _this.kendoDate = null;\n _this.currentFormat = '';\n _this.paste = false;\n _this._element = null;\n _this._wrapper = null;\n _this._inputId = guid();\n _this._lastSelectedSymbol = '';\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this._element) {\n _this._element.focus();\n }\n };\n /**\n * @hidden\n */\n _this.setValidity = function () {\n if (_this.element && _this.element.setCustomValidity) {\n _this.element.setCustomValidity(_this.validity.valid\n ? ''\n : _this.props.validationMessage || DateInputWithoutContext.defaultProps.validationMessage);\n }\n };\n _this.updateOnPaste = function (event) {\n if (!_this.element || !_this.kendoDate) {\n return;\n }\n var value = provideIntlService(_this).parseDate(_this.element.value, _this.props.format) || _this.value;\n var oldValue = _this.value;\n _this.kendoDate.setValue(value);\n _this.triggerChange(event, oldValue);\n };\n /* Handlers */\n _this.spinnersMouseDown = function (event) {\n /* do not steal focus from input when changing value with spinners */\n event.preventDefault();\n var activeElement = getActiveElement(document);\n /* manually focus the input in case the user clicks the spinners first */\n if (_this.element && activeElement !== _this.element) {\n _this.element.focus({ preventScroll: true });\n }\n };\n _this.handlePaste = function () {\n _this.paste = true;\n };\n _this.elementChange = function (event) {\n if (!_this.element || !_this.kendoDate) {\n return;\n }\n if (_this.paste) {\n _this.updateOnPaste(event);\n _this.paste = false;\n return;\n }\n var _a = _this.kendoDate.getTextAndFormat(), text = _a.text, currentFormat = _a.format;\n _this.currentFormat = currentFormat;\n var dateBeforeChange = _this.value;\n var diff = approximateStringMatching(text, _this.currentFormat, _this.element.value, _this.selection.start);\n var navigationOnly = (diff.length === 1 && diff[0][1] === '_');\n if (!navigationOnly) {\n for (var i = 0; i < diff.length; i++) {\n _this.kendoDate.parsePart(diff[i][0], diff[i][1]);\n }\n }\n if (diff.length && diff[0][0] !== '_') {\n _this.setSelection(_this.selectionBySymbol(diff[0][0]));\n }\n if (navigationOnly) {\n _this.switchDateSegment(1);\n }\n _this.triggerChange(event, dateBeforeChange);\n };\n _this.elementClick = function (_) {\n _this.setSelection(_this.selectionByIndex(_this.selection.start));\n };\n _this.nativeWheel = function (event) {\n var activeElement = getActiveElement(document);\n if (activeElement === _this.element) {\n event.preventDefault();\n }\n };\n _this.wheel = function (event) {\n var activeElement = getActiveElement(document);\n if (activeElement !== _this.element) {\n return;\n }\n if (event.nativeEvent.deltaY < 0) {\n _this.increasePart(event);\n }\n if (event.nativeEvent.deltaY > 0) {\n _this.decreasePart(event);\n }\n };\n _this.increasePart = function (event) {\n _this.modifyDateSegmentValue(1, event);\n };\n _this.decreasePart = function (event) {\n _this.modifyDateSegmentValue(-1, event);\n };\n _this.elementKeyDown = function (event) {\n if (event.altKey) {\n return;\n }\n switch (event.keyCode) {\n case 37:\n /*\n * Key: `Left Arrow`\n * Action: Switches to previous logical* segment.\n * (*) https://www.w3.org/International/articles/inline-bidi-markup/uba-basics\n */\n _this.switchDateSegment(-1);\n break;\n case (38):\n /*\n * Key: `Up Arrow`\n * Action: Increases the currently selected segment value.\n */\n _this.modifyDateSegmentValue(1, event);\n break;\n case 39:\n /*\n * Key: `Right Arrow`\n * Action: Switches to the next logical segment.\n */\n _this.switchDateSegment(1);\n break;\n case 40:\n /*\n * Key: `Down Arrow`\n * Action: Decreases the currently selected segment value.\n */\n _this.modifyDateSegmentValue(-1, event);\n break;\n default:\n /*\n * Key: any\n * Action: Does not prevent the default behavior.\n */\n return;\n }\n event.preventDefault();\n };\n _this.elementOnFocus = function (_) {\n if (_this.wrapper) {\n _this.wrapper.classList.add('k-focus');\n }\n _this.setState({ focused: true });\n };\n _this.elementOnBlur = function (_) {\n if (_this.wrapper) {\n _this.wrapper.classList.remove('k-focus');\n }\n _this.setState({ focused: false });\n };\n validatePackage(packageMetadata);\n _this.state = {\n focused: false\n };\n return _this;\n }\n /**\n * @hidden\n */\n DateInputWithoutContext.prototype.componentDidMount = function () {\n this.setValidity();\n if (this.wrapper) {\n this.wrapper.addEventListener('wheel', this.nativeWheel, { passive: false });\n }\n };\n /**\n * @hidden\n */\n DateInputWithoutContext.prototype.componentDidUpdate = function (_, prevState) {\n if (this._lastSelectedSymbol && prevState.focused === this.state.focused) {\n this.setSelection(this.selectionBySymbol(this._lastSelectedSymbol));\n }\n else if (this.props.placeholder !== undefined && this.selection.start === this.selection.end) {\n this.setSelection({ start: 0, end: this.currentFormat.length });\n }\n this.setValidity();\n };\n /**\n * @hidden\n */\n DateInputWithoutContext.prototype.componentWillUnmount = function () {\n if (this.wrapper) {\n this.wrapper.removeEventListener('wheel', this.nativeWheel);\n }\n };\n /**\n * @hidden\n */\n DateInputWithoutContext.prototype.render = function () {\n var _this = this;\n var _a = this.props, _b = _a.size, size = _b === void 0 ? DateInputWithoutContext.defaultProps.size : _b, _c = _a.fillMode, fillMode = _c === void 0 ? DateInputWithoutContext.defaultProps.fillMode : _c, _d = _a.rounded, rounded = _d === void 0 ? DateInputWithoutContext.defaultProps.rounded : _d;\n if (this.props._ref) {\n this.props._ref.current = this;\n }\n var localizationService = provideLocalizationService(this);\n var props = __assign(__assign({}, DateInputWithoutContext.defaultProps), this.props);\n var name = props.name, label = props.label, id = props.id;\n var currentText = this.text;\n var text = currentText === this.props.placeholder ? '' : currentText;\n var placeholder = currentText === this.props.placeholder ? currentText : undefined;\n var inputId = id || this._inputId;\n var isValid = !this.validityStyles || this.validity.valid;\n var wrapperClassesInstance = __spreadArray([], wrapperClasses, true);\n if (this.props.className) {\n wrapperClassesInstance.push(this.props.className);\n }\n var dateinput = (React.createElement(AsyncFocusBlur, { onFocus: this.elementOnFocus, onBlur: this.elementOnBlur }, function (_a) {\n var _b;\n var onFocus = _a.onFocus, onBlur = _a.onBlur;\n return (React.createElement(\"span\", { ref: function (span) { _this._wrapper = span; }, style: !label\n ? { width: _this.props.width }\n : undefined, dir: _this.props.dir, className: classNames('k-dateinput', 'k-input', (_b = {},\n _b[\"k-input-\".concat(kendoThemeMaps.sizeMap[size] || size)] = size,\n _b[\"k-input-\".concat(fillMode)] = fillMode,\n _b[\"k-rounded-\".concat(kendoThemeMaps.roundedMap[rounded] || rounded)] = rounded,\n _b['k-invalid'] = !isValid,\n _b['k-required'] = _this.required,\n _b['k-disabled'] = _this.props.disabled,\n _b), _this.props.className), onFocus: onFocus, onBlur: onBlur },\n React.createElement(\"input\", { role: _this.props.ariaRole || 'textbox', readOnly: _this.props.readonly, tabIndex: _this.props.tabIndex, disabled: _this.props.disabled, title: _this.props.title !== undefined ? _this.props.title : currentText, type: \"text\", spellCheck: false, autoComplete: \"off\", autoCorrect: \"off\", className: \"k-input-inner\", id: inputId, \"aria-label\": _this.props.ariaLabel, \"aria-labelledby\": _this.props.ariaLabelledBy, \"aria-describedby\": _this.props.ariaDescribedBy, \"aria-haspopup\": _this.props.ariaHasPopup, \"aria-disabled\": _this.props.disabled, \"aria-expanded\": _this.props.ariaExpanded, \"aria-controls\": _this.props.ariaControls, onWheel: _this.wheel, onClick: _this.elementClick, onInput: _this.elementChange, onPaste: _this.handlePaste, onKeyDown: _this.elementKeyDown, onChange: noop, value: text, placeholder: placeholder, name: name, ref: function (input) { return _this._element = input; } }),\n _this.props.children,\n _this.props.spinners && (React.createElement(\"span\", { className: \"k-input-spinner k-spin-button\", onMouseDown: _this.spinnersMouseDown },\n React.createElement(Button, { tabIndex: -1, type: \"button\", rounded: null, className: \"k-spinner-increase\", icon: 'caret-alt-up', svgIcon: caretAltUpIcon, \"aria-label\": localizationService.toLanguageString(increaseValue, messages[increaseValue]), title: localizationService.toLanguageString(increaseValue, messages[increaseValue]), onClick: _this.increasePart }),\n React.createElement(Button, { tabIndex: -1, type: \"button\", rounded: null, className: \"k-spinner-decrease\", icon: 'caret-alt-down', svgIcon: caretAltDownIcon, \"aria-label\": localizationService.toLanguageString(decreaseValue, messages[decreaseValue]), title: localizationService.toLanguageString(decreaseValue, messages[decreaseValue]), onClick: _this.decreasePart })))));\n }));\n return label\n ? (React.createElement(FloatingLabel, { label: label, editorId: inputId, editorValue: currentText, editorValid: isValid, editorDisabled: this.props.disabled, children: dateinput, style: { width: this.props.width } }))\n : dateinput;\n };\n Object.defineProperty(DateInputWithoutContext.prototype, \"value\", {\n /* Public Getters */\n /**\n * Gets the value of the DateInput.\n */\n get: function () {\n if (this.valueDuringOnChange !== undefined) {\n return this.valueDuringOnChange;\n }\n return this.kendoDate && this.kendoDate.getDateObject();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateInputWithoutContext.prototype, \"name\", {\n /**\n * Gets the `name` property of the DateInput.\n */\n get: function () {\n return this.props.name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateInputWithoutContext.prototype, \"min\", {\n get: function () {\n return this.props.min !== undefined\n ? this.props.min\n : DateInputWithoutContext.defaultProps.min;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateInputWithoutContext.prototype, \"max\", {\n get: function () {\n return this.props.max !== undefined\n ? this.props.max\n : DateInputWithoutContext.defaultProps.max;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateInputWithoutContext.prototype, \"text\", {\n /**\n * @hidden\n */\n get: function () {\n var props = __assign(__assign({}, DateInput.defaultProps), this.props);\n var _a = props.formatPlaceholder, formatPlaceholder = _a === void 0 ? DateInputWithoutContext.defaultProps.formatPlaceholder : _a, _b = props.format, format = _b === void 0 ? DateInputWithoutContext.defaultProps.format : _b, value = props.value, defaultValue = props.defaultValue;\n if (this.kendoDate === null) {\n this.kendoDate = new KendoDate(this.intl.bind(this), formatPlaceholder, format);\n this.kendoDate.setValue(value || defaultValue || null);\n }\n else {\n this.kendoDate.format = format;\n this.kendoDate.formatPlaceholder = formatPlaceholder;\n }\n if (value !== undefined && this.value !== value) {\n this.kendoDate.setValue(value);\n }\n var _c = this.kendoDate.getTextAndFormat(), currentText = _c.text, currentFormat = _c.format;\n this.currentFormat = currentFormat;\n return props.placeholder !== null && props.placeholder !== undefined\n && !this.state.focused\n && !this.kendoDate.hasValue()\n ? props.placeholder\n : currentText;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateInputWithoutContext.prototype, \"validity\", {\n /**\n * Represents the validity state into which the DateInput is set.\n */\n get: function () {\n var inRange = isInRange(this.value, this.min, this.max)\n && isInTimeRange(this.value, this.props.minTime, this.props.maxTime);\n var customError = this.props.validationMessage !== undefined;\n var isValid = (!this.required || this.value !== null) && inRange;\n var valid = this.props.valid !== undefined ? this.props.valid : isValid;\n return {\n customError: customError,\n rangeOverflow: (this.value && this.max.getTime() < this.value.getTime()) || false,\n rangeUnderflow: (this.value && this.value.getTime() < this.min.getTime()) || false,\n valid: valid,\n valueMissing: this.value === null\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateInputWithoutContext.prototype, \"element\", {\n /**\n * Gets the element of the DateInput.\n *\n * @return - An `HTMLInputElement`.\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * constructor(props) {\n * super(props);\n * }\n * element = null;\n * render() {\n * return (\n *

\n * \n * this.element = dateInput ? dateInput.element : null}\n * />\n * \n *
\n * );\n * }\n * }\n *\n * ReactDOM.render(\n * ,\n * document.getElementsByTagName('my-app')[0]\n * );\n * ```\n */\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateInputWithoutContext.prototype, \"validityStyles\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.validityStyles !== undefined\n ? this.props.validityStyles\n : DateInputWithoutContext.defaultProps.validityStyles;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateInputWithoutContext.prototype, \"required\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.required !== undefined\n ? this.props.required\n : DateInputWithoutContext.defaultProps.required;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateInputWithoutContext.prototype, \"wrapper\", {\n /**\n * @hidden\n */\n get: function () {\n return this._wrapper;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n DateInputWithoutContext.prototype.intl = function () {\n return provideIntlService(this);\n };\n Object.defineProperty(DateInputWithoutContext.prototype, \"selection\", {\n /* end handlers */\n get: function () {\n var returnValue = { start: 0, end: 0 };\n if (this.element !== null && this.element.selectionStart !== undefined) {\n returnValue = { start: this.element.selectionStart, end: this.element.selectionEnd };\n }\n return returnValue;\n },\n enumerable: false,\n configurable: true\n });\n DateInputWithoutContext.prototype.setSelection = function (selection) {\n var _this = this;\n this._lastSelectedSymbol = this.currentFormat[selection.start];\n window.requestAnimationFrame(function () {\n var activeElement = getActiveElement(document);\n if (_this.element && activeElement === _this.element && !_this.props.disableSelection) {\n _this.element.setSelectionRange(selection.start, selection.end);\n }\n });\n };\n DateInputWithoutContext.prototype.triggerChange = function (event, oldValue) {\n this.valueDuringOnChange = this.value;\n this.forceUpdate();\n if (this.props.onChange\n && !isEqual(oldValue, this.value)) {\n // isEqual works with null\n this.props.onChange.call(undefined, {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n value: this.value,\n target: this\n // inRange: this.props.min && this.props.max ? isInRange(value, this.props.min, this.props.max) : true\n });\n }\n this.valueDuringOnChange = undefined;\n };\n DateInputWithoutContext.prototype.selectionBySymbol = function (symbol) {\n var start = -1;\n var end = 0;\n for (var i = 0; i < this.currentFormat.length; i++) {\n if (this.currentFormat[i] === symbol) {\n end = i + 1;\n if (start === -1) {\n start = i;\n }\n }\n }\n if (start < 0) {\n start = 0;\n }\n return { start: start, end: end };\n };\n DateInputWithoutContext.prototype.selectionByIndex = function (index) {\n // console.log(42, index);\n var selection = { start: index, end: index };\n for (var i = index, j = index - 1; i < this.currentFormat.length || j >= 0; i++, j--) {\n if (i < this.currentFormat.length && this.currentFormat[i] !== '_') {\n selection = this.selectionBySymbol(this.currentFormat[i]);\n break;\n }\n if (j >= 0 && this.currentFormat[j] !== '_') {\n selection = this.selectionBySymbol(this.currentFormat[j]);\n break;\n }\n }\n return selection;\n };\n DateInputWithoutContext.prototype.switchDateSegment = function (offset) {\n var _a = this.selection, selectionStart = _a.start, selectionEnd = _a.end;\n if (selectionStart < selectionEnd &&\n this.currentFormat[selectionStart] !== this.currentFormat[selectionEnd - 1]) {\n this.setSelection(this.selectionByIndex(offset > 0 ? selectionStart : selectionEnd - 1));\n return;\n }\n var previousFormatSymbol = this.currentFormat[selectionStart];\n var a = selectionStart + offset;\n while (a > 0 && a < this.currentFormat.length) {\n if (this.currentFormat[a] !== previousFormatSymbol &&\n this.currentFormat[a] !== '_') {\n break;\n }\n a += offset;\n }\n if (this.currentFormat[a] === '_') {\n // no known symbol is found\n return;\n }\n var b = a;\n while (b >= 0 && b < this.currentFormat.length) {\n if (this.currentFormat[b] !== this.currentFormat[a]) {\n break;\n }\n b += offset;\n }\n if (a > b && (b + 1 !== selectionStart || a + 1 !== selectionEnd)) {\n this.setSelection({ start: b + 1, end: a + 1 });\n }\n else if (a < b && (a !== selectionStart || b !== selectionEnd)) {\n this.setSelection({ start: a, end: b });\n }\n };\n DateInputWithoutContext.prototype.modifyDateSegmentValue = function (offset, event) {\n if (!this.kendoDate) {\n return;\n }\n var oldValue = this.value;\n var symbol = this.currentFormat[this.selection.start];\n var currentStepSymbol = this.kendoDate.symbolMap(symbol);\n var step = ((this.props.steps || {})[currentStepSymbol] || 1) * offset;\n this.kendoDate.modifyPart(symbol, step);\n this.triggerChange(event, oldValue);\n };\n /**\n * @hidden\n */\n DateInputWithoutContext.displayName = 'DateInput';\n /**\n * @hidden\n */\n DateInputWithoutContext.propTypes = {\n value: PropTypes.instanceOf(Date),\n format: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n skeleton: PropTypes.string,\n pattern: PropTypes.string,\n date: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n time: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n datetime: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n era: PropTypes.oneOf(['narrow', 'short', 'long']),\n year: PropTypes.oneOf(['numeric', '2-digit']),\n month: PropTypes.oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day: PropTypes.oneOf(['numeric', '2-digit']),\n weekday: PropTypes.oneOf(['narrow', 'short', 'long']),\n hour: PropTypes.oneOf(['numeric', '2-digit']),\n hour12: PropTypes.bool,\n minute: PropTypes.oneOf(['numeric', '2-digit']),\n second: PropTypes.oneOf(['numeric', '2-digit']),\n timeZoneName: PropTypes.oneOf(['short', 'long'])\n })\n ]),\n formatPlaceholder: PropTypes.oneOfType([\n PropTypes.oneOf(['wide', 'narrow', 'short', 'formatPattern']),\n PropTypes.shape({\n year: PropTypes.string,\n month: PropTypes.string,\n day: PropTypes.string,\n hour: PropTypes.string,\n minute: PropTypes.string,\n second: PropTypes.string\n })\n ]),\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]),\n tabIndex: PropTypes.number,\n title: PropTypes.string,\n steps: PropTypes.shape({\n year: PropTypes.number,\n month: PropTypes.number,\n day: PropTypes.number,\n hour: PropTypes.number,\n minute: PropTypes.number,\n second: PropTypes.number\n }),\n min: PropTypes.instanceOf(Date),\n max: PropTypes.instanceOf(Date),\n disabled: PropTypes.bool,\n spinners: PropTypes.bool,\n name: PropTypes.string,\n dir: PropTypes.string,\n label: PropTypes.string,\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n ariaLabel: PropTypes.string,\n ariaRole: PropTypes.string,\n ariaHasPopup: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string\n ]),\n ariaExpanded: PropTypes.oneOfType([\n PropTypes.bool\n ]),\n onChange: PropTypes.func,\n validationMessage: PropTypes.string,\n required: PropTypes.bool,\n validate: PropTypes.bool,\n valid: PropTypes.bool,\n size: PropTypes.oneOf([null, 'small', 'medium', 'large']),\n rounded: PropTypes.oneOf([null, 'small', 'medium', 'large', 'full']),\n fillMode: PropTypes.oneOf([null, 'solid', 'flat', 'outline'])\n };\n /**\n * @hidden\n */\n DateInputWithoutContext.defaultProps = {\n format: defaultFormat,\n size: 'medium',\n rounded: 'medium',\n fillMode: 'solid',\n formatPlaceholder: defaultFormatPlaceholder,\n // defaultValue: null as Date | null,\n spinners: false,\n disabled: false,\n max: cloneDate(MAX_DATE),\n min: cloneDate(MIN_DATE),\n minTime: cloneDate(MIN_TIME),\n maxTime: cloneDate(MAX_TIME),\n required: false,\n validityStyles: true,\n validationMessage: VALIDATION_MESSAGE,\n placeholder: null,\n // the rest of the properties are undefined by default\n ariaHasPopup: 'grid'\n };\n return DateInputWithoutContext;\n}(React.Component));\nexport { DateInputWithoutContext };\n/**\n * Represents the PropsContext of the `DateInput` component.\n * Used for global configuration of all `DateInput` instances.\n *\n * For more information, refer to the [DateInputs Props Context]({% slug props-context_dateinputs %}) article.\n */\nexport var DateInputPropsContext = createPropsContext();\n;\n/* eslint-disable @typescript-eslint/no-redeclare -- intentionally naming the component the same as the type */\n/**\n * Represents the KendoReact DateInput Component.\n *\n * Accepts properties of type [DateInputProps]({% slug api_dateinputs_dateinputprops %}).\n * Obtaining the `ref` returns an object of type [DateInputHandle]({% slug api_dateinputs_dateinputhandle %}).\n */\nexport var DateInput = withPropsContext(DateInputPropsContext, DateInputWithoutContext);\nDateInput.displayName = 'KendoReactDateInput';\nregisterForIntl(DateInputWithoutContext);\nregisterForLocalization(DateInputWithoutContext);\n","/**\n * @hidden\n */\nexport var TIME_PART = {\n dayperiod: 'dayperiod',\n hour: 'hour',\n millisecond: 'millisecond',\n minute: 'minute',\n second: 'second'\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar _a, _b, _c;\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\nimport { RowHeightService, ScrollerService } from './services';\n/**\n * @hidden\n */\nexport var ScrollDirection;\n(function (ScrollDirection) {\n ScrollDirection[ScrollDirection[\"Backward\"] = 0] = \"Backward\";\n ScrollDirection[ScrollDirection[\"Forward\"] = 1] = \"Forward\";\n})(ScrollDirection || (ScrollDirection = {}));\nvar differenceToScroll = function (scrollTop, staticOffset, maxScrollDifference) {\n return Math.min(Math.abs(staticOffset - scrollTop), maxScrollDifference);\n};\nvar FRAME_DURATION = 17;\nvar scrollModifiers = (_a = {},\n _a[ScrollDirection.Forward] = function (step) { return function (value) { return value + step; }; },\n _a[ScrollDirection.Backward] = function (step) { return function (value) { return value - step; }; },\n _a);\nvar scrollNormalizers = (_b = {},\n _b[ScrollDirection.Forward] = function (end) { return function (value) { return Math.min(value, end); }; },\n _b[ScrollDirection.Backward] = function (end) { return function (value) { return Math.max(value, end); }; },\n _b);\nvar scrollValidators = (_c = {},\n _c[ScrollDirection.Forward] = function (end) { return function (start) { return start < end; }; },\n _c[ScrollDirection.Backward] = function (end) { return function (start) { return start > end; }; },\n _c);\n/**\n * @hidden\n */\nvar Virtualization = /** @class */ (function (_super) {\n __extends(Virtualization, _super);\n function Virtualization(props) {\n var _this = _super.call(this, props) || this;\n _this.rowHeightService = null;\n _this.scrollContainer = null;\n _this.lastDirection = null;\n _this.lastTotal = 0;\n _this.lastTake = 0;\n _this.animationInProgress = false;\n _this.scrollTo = function (value) {\n var scrollProperty = _this.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';\n if (!_this.scrollContainer) {\n return;\n }\n _this.scrollContainer[scrollProperty] = value;\n };\n _this.scrollToIndex = function (index) {\n _this.animationInProgress = false;\n if (_this.rowHeightService) {\n _this.scrollTo(_this.rowHeightService.offset(index));\n }\n };\n _this.animateToIndex = function (index) {\n if (!_this.rowHeightService || !window) {\n return;\n }\n window.cancelAnimationFrame(_this.cancelAnimation);\n var indexOffset = _this.rowHeightService.offset(index);\n var direction = _this.getContainerScrollDirection(indexOffset);\n var _a = _this.scrollRange(indexOffset, direction), start = _a.start, end = _a.end;\n if (start === end) {\n return;\n }\n var step = _this.scrollStep(start, end);\n var modifyScroll = scrollModifiers[direction](step);\n var normalizeScroll = scrollNormalizers[direction](end);\n var isScrollValid = scrollValidators[direction](modifyScroll(end));\n var animate = function (progress) {\n _this.animationInProgress = true;\n var next = modifyScroll(progress);\n _this.scrollTo(normalizeScroll(next));\n isScrollValid(next)\n ? _this.cancelAnimation = window.requestAnimationFrame(function () { animate(next); })\n : _this.animationInProgress = false;\n };\n _this.cancelAnimation = window.requestAnimationFrame(function () { animate(start); });\n };\n _this.scrollToBottom = function () {\n if (!_this.rowHeightService) {\n return;\n }\n _this.scrollTo(_this.rowHeightService.totalHeight() + _this.props.bottomOffset);\n };\n _this.scrollStep = function (start, end) {\n var duration = _this.props.scrollDuration || Virtualization.defaultProps.scrollDuration;\n return Math.abs(end - start) / (duration / FRAME_DURATION);\n };\n _this.scrollRange = function (indexOffset, direction) {\n var containerScroll = _this.containerScrollPosition;\n if (parseInt(\"\".concat(indexOffset), 10) === parseInt(\"\".concat(containerScroll), 10)) {\n return { start: indexOffset, end: indexOffset };\n }\n var maxScroll = _this.containerMaxScroll();\n var sign = direction === ScrollDirection.Backward ? 1 : -1;\n var difference = differenceToScroll(containerScroll, indexOffset, _this.props.maxScrollDifference || 0);\n var end = Math.min(indexOffset, maxScroll);\n var start = Math.min(Math.max(end + (sign * difference), 0), maxScroll);\n return { start: start, end: end };\n };\n _this.containerMaxScroll = function () {\n return _this.containerScrollSize - _this.containerOffsetSize;\n };\n _this.getContainerScrollDirection = function (indexOffset) {\n return indexOffset < _this.containerScrollPosition ? ScrollDirection.Backward : ScrollDirection.Forward;\n };\n _this.initServices = function (props) {\n if (props === void 0) { props = _this.props; }\n var dimension = _this.direction === 'vertical' ? props.itemHeight : props.itemWidth;\n if (dimension === undefined) {\n return;\n }\n _this.rowHeightService = new RowHeightService(props.total, dimension, 0);\n _this.scrollerService.create(_this.rowHeightService, props.skip, props.take, props.total, props.topOffset, _this.scrollOffsetSize, _this.direction);\n };\n _this.getContainerProperty = function (propertyName) {\n if (!_this.scrollContainer) {\n return 0;\n }\n return _this.scrollContainer[propertyName];\n };\n _this.handleScroll = function (event) {\n if (!_this.scrollContainer || !_this.rowHeightService) {\n return;\n }\n var target = event.target;\n _this.scrollerService.onScroll({\n scrollLeft: target.scrollLeft,\n scrollTop: target.scrollTop,\n offsetHeight: target.offsetHeight,\n offsetWidth: target.offsetWidth\n });\n var index = _this.rowHeightService.index(_this.containerScrollPosition - _this.props.topOffset);\n var onScrollAction = _this.props.onScrollAction;\n var args = {\n index: index,\n target: target,\n scrollAction: _this.scrollAction,\n pageAction: _this.pageAction,\n animationInProgress: _this.animationInProgress\n };\n if (_this.props.onScroll) {\n _this.props.onScroll.call(undefined, event);\n }\n if (onScrollAction) {\n onScrollAction.call(undefined, args);\n }\n _this.scrollAction = undefined;\n _this.pageAction = undefined;\n };\n _this.handleScrollAction = function (action) {\n _this.scrollAction = action;\n };\n _this.handlePageAction = function (action) {\n _this.pageAction = action;\n };\n _this.scrollerService = new ScrollerService(_this.handleScrollAction, _this.handlePageAction);\n return _this;\n }\n Object.defineProperty(Virtualization.prototype, \"element\", {\n get: function () {\n return this.scrollContainer;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Virtualization.prototype, \"containerOffsetSize\", {\n get: function () {\n return this.getContainerProperty(this.direction === 'vertical' ? 'offsetHeight' : 'offsetWidth');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Virtualization.prototype, \"containerScrollSize\", {\n get: function () {\n return this.getContainerProperty(this.direction === 'vertical' ? 'scrollHeight' : 'scrollWidth');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Virtualization.prototype, \"containerScrollPosition\", {\n get: function () {\n return this.getContainerProperty(this.direction === 'vertical' ? 'scrollTop' : 'scrollLeft');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Virtualization.prototype, \"direction\", {\n get: function () {\n return this.props.direction !== undefined ? this.props.direction : Virtualization.defaultProps.direction;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Virtualization.prototype, \"scrollOffsetSize\", {\n get: function () {\n return this.props.scrollOffsetSize !== undefined\n ? this.props.scrollOffsetSize : Virtualization.defaultProps.scrollOffsetSize;\n },\n enumerable: false,\n configurable: true\n });\n Virtualization.prototype.activeIndex = function () {\n return this.itemIndex(Math.ceil(this.containerScrollPosition));\n };\n Virtualization.prototype.itemIndex = function (offset) {\n if (!this.rowHeightService) {\n return 0;\n }\n return this.rowHeightService.index(offset);\n };\n Virtualization.prototype.itemOffset = function (index) {\n if (!this.rowHeightService) {\n return 0;\n }\n return this.rowHeightService.offset(index);\n };\n Virtualization.prototype.isIndexVisible = function (index) {\n if (!this.rowHeightService) {\n return false;\n }\n var containerTop = this.containerScrollPosition;\n var containerBottom = containerTop + this.containerOffsetSize;\n var top = this.rowHeightService.offset(index);\n var bottom = top + this.rowHeightService.height(index);\n return top >= containerTop && bottom <= containerBottom;\n };\n Virtualization.prototype.isListScrolled = function (index) {\n if (!this.rowHeightService) {\n return false;\n }\n return this.containerScrollPosition !== this.rowHeightService.offset(index);\n };\n Virtualization.prototype.componentDidMount = function () {\n var onMount = this.props.onMount;\n if (onMount) {\n onMount.call(undefined, this);\n }\n };\n Virtualization.prototype.render = function () {\n var _this = this;\n if (this.lastTotal !== this.props.total\n || this.lastDirection !== this.direction\n || this.lastTake !== this.props.take) {\n this.initServices();\n this.lastTotal = this.props.total;\n this.lastDirection = this.direction;\n this.lastTake = this.props.take;\n }\n var vertexLength = \"\".concat((this.rowHeightService ? this.rowHeightService.totalHeight() : 0) + this.props.bottomOffset);\n var placeholderStyle = this.direction === 'vertical'\n ? { height: \"\".concat(vertexLength, \"px\") }\n : { width: \"\".concat(vertexLength, \"px\") };\n var rootClassNames = classNames('k-content k-scrollable', {\n 'k-scrollable-horizontal': this.direction === 'horizontal'\n }, this.props.className);\n var scrollableClassNames = classNames('k-scrollable-placeholder', {\n 'k-scrollable-horizontal-placeholder': this.direction === 'horizontal'\n });\n return (React.createElement(\"div\", { ref: function (el) { _this.scrollContainer = el; }, onScroll: this.handleScroll, className: rootClassNames, tabIndex: this.props.tabIndex, role: this.props.role },\n this.props.children,\n React.createElement(\"div\", { style: placeholderStyle, className: scrollableClassNames })));\n };\n Virtualization.propTypes = {\n bottomOffset: PropTypes.number.isRequired,\n className: PropTypes.string,\n direction: PropTypes.oneOf(['horizontal', 'vertical']),\n forceScroll: PropTypes.bool,\n itemHeight: PropTypes.number,\n itemWidth: PropTypes.number,\n maxScrollDifference: PropTypes.number,\n onScroll: PropTypes.func,\n onScrollAction: PropTypes.func,\n scrollDuration: PropTypes.number,\n scrollOffsetSize: PropTypes.number,\n skip: PropTypes.number.isRequired,\n tabIndex: PropTypes.number,\n take: PropTypes.number.isRequired,\n topOffset: PropTypes.number.isRequired,\n total: PropTypes.number.isRequired,\n role: PropTypes.string\n };\n Virtualization.defaultProps = {\n direction: 'vertical',\n forceScroll: false,\n scrollOffsetSize: 0,\n maxScrollDifference: 100,\n scrollDuration: 100\n };\n return Virtualization;\n}(React.Component));\nexport { Virtualization };\n","import { getDate } from './get-date';\nimport { isEqual } from './is-equal';\n/**\n * A function that compares the date portions of 2 dates.\n *\n * @param candidate - The candidate date.\n * @param expected - The expected date.\n * @returns - A Boolean value whether the values are equal.\n *\n * @example\n * ```ts-no-run\n * isEqualDate(new Date(2016, 0, 1, 10), new Date(2016, 0, 1, 20)); // true\n * isEqualDate(new Date(2016, 0, 1, 10), new Date(2016, 0, 2, 10)); // false\n * ```\n */\nexport var isEqualDate = function (candidate, expected) {\n if (!candidate && !expected) {\n return true;\n }\n return candidate && expected && isEqual(getDate(candidate), getDate(expected));\n};\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n/**\n * @hidden\n */\nvar update = function (arr, idx, value) { return (__spreadArray(__spreadArray([], arr.slice(0, idx + 1), true), (arr.slice(idx + 1).map(function (x) { return x + value; })), true)); };\n/**\n * @hidden\n */\nvar RowHeightService = /** @class */ (function () {\n function RowHeightService(total, rowHeight, detailRowHeight) {\n if (total === void 0) { total = 0; }\n this.total = total;\n this.rowHeight = rowHeight;\n this.detailRowHeight = detailRowHeight;\n this.offsets = [];\n this.heights = [];\n var agg = 0;\n for (var idx = 0; idx < total; idx++) {\n this.offsets.push(agg);\n agg += rowHeight;\n this.heights.push(rowHeight);\n }\n }\n RowHeightService.prototype.height = function (rowIndex) {\n return this.heights[rowIndex];\n };\n RowHeightService.prototype.expandDetail = function (rowIndex) {\n if (this.height(rowIndex) === this.rowHeight) {\n this.updateRowHeight(rowIndex, this.detailRowHeight);\n }\n };\n RowHeightService.prototype.collapseDetail = function (rowIndex) {\n if (this.height(rowIndex) > this.rowHeight) {\n this.updateRowHeight(rowIndex, this.detailRowHeight * -1);\n }\n };\n RowHeightService.prototype.index = function (position) {\n for (var i = 0; i < this.offsets.length; i++) {\n if (position === this.offsets[i]) {\n return i;\n }\n if (position < this.offsets[i]) {\n return i - 1;\n }\n }\n return this.total - 1;\n };\n RowHeightService.prototype.offset = function (rowIndex) {\n return this.offsets[rowIndex];\n };\n RowHeightService.prototype.totalHeight = function () {\n return this.heights.reduce(function (prev, curr) { return prev + curr; }, 0);\n };\n RowHeightService.prototype.updateRowHeight = function (rowIndex, value) {\n this.heights[rowIndex] += value;\n this.offsets = update(this.offsets, rowIndex, value);\n };\n return RowHeightService;\n}());\nexport { RowHeightService };\n","var normalize = function (x) { return Math.max(x, 0); };\n/**\n * @hidden\n */\nvar ScrollAction = /** @class */ (function () {\n function ScrollAction(offset) {\n this.offset = offset;\n }\n return ScrollAction;\n}());\nexport { ScrollAction };\n/**\n * @hidden\n */\nvar PageAction = /** @class */ (function () {\n function PageAction(skip) {\n this.skip = skip;\n }\n return PageAction;\n}());\nexport { PageAction };\n/**\n * @hidden\n */\nvar ScrollerService = /** @class */ (function () {\n function ScrollerService(onScrollAction, onPageAction) {\n this.onScrollAction = onScrollAction;\n this.onPageAction = onPageAction;\n this.direction = 'vertical';\n this.firstLoaded = 0;\n this.lastLoaded = 0;\n this.lastScrollTop = 0;\n this.take = 0;\n this.total = 0;\n this.rowHeightService = null;\n this.bottomOffset = 0;\n this.topOffset = 0;\n }\n ScrollerService.prototype.create = function (rowHeightService, skip, take, total, topOffset, bottomOffset, direction) {\n if (topOffset === void 0) { topOffset = 0; }\n if (bottomOffset === void 0) { bottomOffset = 0; }\n if (direction === void 0) { direction = 'vertical'; }\n this.rowHeightService = rowHeightService;\n this.firstLoaded = skip;\n this.lastLoaded = skip + take;\n this.take = take;\n this.total = total;\n this.lastScrollTop = 0;\n this.topOffset = topOffset;\n this.bottomOffset = bottomOffset;\n this.direction = direction;\n var offsetBufferRows = this.rowsForHeight(topOffset);\n var skipWithOffset = normalize(skip - offsetBufferRows);\n this.onScrollAction(new ScrollAction(this.rowOffset(skipWithOffset)));\n this.onPageAction(new PageAction(skipWithOffset));\n };\n ScrollerService.prototype.onScroll = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollTop = _a.scrollTop, offsetHeight = _a.offsetHeight, offsetWidth = _a.offsetWidth;\n var scrollPosition = this.direction === 'vertical' ? scrollTop : scrollLeft;\n var offsetSize = this.direction === 'vertical' ? offsetHeight : offsetWidth;\n if (this.lastScrollTop === scrollPosition || !this.rowHeightService) {\n return;\n }\n var up = this.lastScrollTop >= scrollPosition;\n this.lastScrollTop = scrollPosition;\n var firstItemIndex = this.rowHeightService.index(normalize(scrollPosition - this.topOffset));\n var lastItemIndex = this.rowHeightService.index(normalize(scrollPosition + offsetSize - this.bottomOffset));\n if (!up && lastItemIndex >= this.lastLoaded && this.lastLoaded < this.total) {\n this.firstLoaded = firstItemIndex;\n this.onScrollAction(new ScrollAction(this.rowOffset(firstItemIndex)));\n this.lastLoaded = Math.min(this.firstLoaded + this.take, this.total);\n this.onPageAction(new PageAction(this.firstLoaded));\n }\n if (up && firstItemIndex <= this.firstLoaded) {\n var nonVisibleBuffer = Math.floor(this.take * 0.3);\n this.firstLoaded = normalize(firstItemIndex - nonVisibleBuffer);\n this.onScrollAction(new ScrollAction(this.rowOffset(this.firstLoaded)));\n this.lastLoaded = Math.min(this.firstLoaded + this.take, this.total);\n this.onPageAction(new PageAction(this.firstLoaded));\n }\n };\n ScrollerService.prototype.rowOffset = function (index) {\n return this.rowHeightService ? this.rowHeightService.offset(index) + this.topOffset : 0;\n };\n ScrollerService.prototype.rowsForHeight = function (height) {\n return this.rowHeightService ? Math.ceil(height / this.rowHeightService.height(0)) : 0;\n };\n return ScrollerService;\n}());\nexport { ScrollerService };\n","/**\n * Enumeration which represents the week days.\n */\nexport var Day;\n(function (Day) {\n /**\n * The Sunday value with an underlying `0` number value.\n */\n Day[Day[\"Sunday\"] = 0] = \"Sunday\";\n /**\n * The Monday value with an underlying `1` number value.\n */\n Day[Day[\"Monday\"] = 1] = \"Monday\";\n /**\n * The Tuesday value with an underlying `2` number value.\n */\n Day[Day[\"Tuesday\"] = 2] = \"Tuesday\";\n /**\n * The Wednesday value with an underlying `3` number value.\n */\n Day[Day[\"Wednesday\"] = 3] = \"Wednesday\";\n /**\n * The Thursday value with an underlying `4` number value.\n */\n Day[Day[\"Thursday\"] = 4] = \"Thursday\";\n /**\n * The Friday value with an underlying `5` number value.\n */\n Day[Day[\"Friday\"] = 5] = \"Friday\";\n /**\n * The Saturday value with an underlying `6` number value.\n */\n Day[Day[\"Saturday\"] = 6] = \"Saturday\";\n})(Day || (Day = {}));\n","// tslint:disable:max-line-length\n/**\n * An enumeration which represents the horizontal direction. The `Forward` option moves forward. The `Backward` option moves backward.\n */\nexport var Direction;\n(function (Direction) {\n /**\n * The `Forward` value with an underlying `1` number value.\n */\n Direction[Direction[\"Forward\"] = 1] = \"Forward\";\n /**\n * The `Backward` value with an underlying `-1` (minus one) number value.\n */\n Direction[Direction[\"Backward\"] = -1] = \"Backward\";\n})(Direction || (Direction = {}));\n// tslint:enable:max-line-length\n","import { Direction } from \"./direction.enum\";\nimport { adjustDST } from \"./adjust-dst\";\nimport { cloneDate } from './clone-date';\n/**\n * @hidden\n *\n * A function which returns the next or previous date for a specific week day. For example, `Day.Monday`.\n *\n * @param date - The date to calculate from.\n * @param weekDay - The `Day` enum specifying the desired week day.\n * @param direction - The `Direction` enum specifying the calculation direction.\n * @returns - A `Date` instance.\n *\n * @example\n * ```ts-no-run\n * dayOfWeek(new Date(2016, 0, 1), Day.Wednesday, Direction.Forward); // 2016-01-06, Wednesday\n * dayOfWeek(new Date(2016, 0, 1), Day.Wednesday, Direction.Backward); // 2015-12-30, Wednesday\n * ```\n */\nexport var dayOfWeek = function (date, weekDay, direction) {\n if (direction === void 0) { direction = Direction.Forward; }\n var newDate = cloneDate(date);\n var newDay = ((weekDay - newDate.getDay()) + (7 * direction)) % 7;\n newDate.setDate(newDate.getDate() + newDay);\n return adjustDST(newDate, date.getHours());\n};\n","/**\n * The Enum which defines all possible Calendar view types.\n */\nexport var CalendarViewEnum;\n(function (CalendarViewEnum) {\n CalendarViewEnum[CalendarViewEnum[\"month\"] = 0] = \"month\";\n CalendarViewEnum[CalendarViewEnum[\"year\"] = 1] = \"year\";\n CalendarViewEnum[CalendarViewEnum[\"decade\"] = 2] = \"decade\";\n CalendarViewEnum[CalendarViewEnum[\"century\"] = 3] = \"century\";\n})(CalendarViewEnum || (CalendarViewEnum = {}));\n","import { Day } from './day.enum';\nimport { addDays } from './add-days';\nimport { createDate } from './create-date';\nimport { prevDayOfWeek } from './prev-day-of-week';\nimport { MS_PER_DAY } from './constants';\nimport { getDate } from './get-date';\nvar moveDateToWeekStart = function (date, weekStartDay) {\n if (weekStartDay !== Day.Monday) {\n return addDays(prevDayOfWeek(date, weekStartDay), 4);\n }\n return addDays(date, (4 - (date.getDay() || 7)));\n};\nvar calcWeekInYear = function (date, weekStartDay) {\n var firstWeekInYear = createDate(date.getFullYear(), 0, 1, -6);\n var newDate = moveDateToWeekStart(date, weekStartDay);\n var diffInMS = newDate.getTime() - firstWeekInYear.getTime();\n var days = Math.floor(diffInMS / MS_PER_DAY);\n return 1 + Math.floor(days / 7);\n};\n/**\n * A function that returns the number of the week within a year, which is calculated in relation to the date.\n *\n * For more information, refer to the [**ISO week date**](https://en.wikipedia.org/wiki/ISO_week_date) article.\n *\n * @param date - The date used for the week number calculation.\n * @param weekStartDay - The first day of the week. By default, the first week day is Monday.\n * @returns - The number of the week within the year.\n *\n * @example\n * ```ts-no-run\n * weekInYear(new Date(2016, 0, 1)); // Week 53, 2015\n * weekInYear(new Date(2016, 0, 5)); // Week 1, 2016\n * weekInYear(new Date(2017, 0, 1)); // Week 52, 2016\n * weekInYear(new Date(2017, 0, 2)); // Week 1, 2017\n * ```\n */\nexport var weekInYear = function (date, weekStartDay) {\n if (weekStartDay === void 0) { weekStartDay = Day.Monday; }\n date = getDate(date);\n var prevWeekDate = addDays(date, -7);\n var nextWeekDate = addDays(date, 7);\n var weekNumber = calcWeekInYear(date, weekStartDay);\n if (weekNumber === 0) {\n return calcWeekInYear(prevWeekDate, weekStartDay) + 1;\n }\n if (weekNumber === 53 && calcWeekInYear(nextWeekDate, weekStartDay) > 1) {\n return 1;\n }\n return weekNumber;\n};\n","import { Direction } from \"./direction.enum\";\nimport { dayOfWeek } from './day-of-week';\n/**\n * A function which returns a date by a specific week name. For example, `Day.Monday`.\n *\n * @param date - The date to calculate from.\n * @param weekDay - The `Day` enum specifying the desired week day.\n * @returns - A `Date` instance.\n *\n * @example\n * ```ts-no-run\n * prevDayOfWeek(new Date(2016, 0, 1), Day.Wednesday); // 2015-12-30, Wednesday\n * ```\n */\nexport var prevDayOfWeek = function (date, weekDay) {\n return dayOfWeek(date, weekDay, Direction.Backward);\n};\n","/**\n * The number of milliseconds in one minute.\n */\nexport var MS_PER_MINUTE = 60000;\n/**\n * The number of milliseconds in one hour.\n */\nexport var MS_PER_HOUR = 3600000;\n/**\n * The number of milliseconds in one standard day.\n */\nexport var MS_PER_DAY = 86400000;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar compareProps = function (x, y) {\n var xProps = Object.getOwnPropertyNames(x);\n var yProps = Object.getOwnPropertyNames(y);\n if (xProps.length !== yProps.length) {\n return false;\n }\n for (var i = 0; i < xProps.length; i++) {\n var propName = xProps[i];\n if (x[propName] !== y[propName]) {\n return false;\n }\n }\n return true;\n};\n/**\n * The `CalendarCell` component is internally used for rendering the items in the current view. Also be used as a custom `cell` of the [Calendar]({% slug api_dateinputs_calendarprops %}#toc-cell) and the [MultiViewCalendar]({% slug api_dateinputs_multiviewcalendarprops %}#toc-cell).\n *\n * * [Customizing the cells inside the Calendar view]({% slug custom_rendering_calendar %}#toc-cells-inside-the-view)\n * * [Customizing the cells inside the MultiViewCalendar view]({% slug custom_rendering_multiviewcalendar %}#toc-cells-inside-the-view)\n */\nvar CalendarCell = /** @class */ (function (_super) {\n __extends(CalendarCell, _super);\n function CalendarCell() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // tslint:enable:max-line-length\n _this.handleClick = function (event) {\n var _a = _this.props, onClick = _a.onClick, value = _a.value;\n if (onClick) {\n onClick.call(undefined, value, event);\n }\n };\n _this.handleMouseEnter = function () {\n var _a = _this.props, onMouseEnter = _a.onMouseEnter, value = _a.value;\n if (onMouseEnter) {\n onMouseEnter.call(undefined, value);\n }\n };\n _this.handleMouseLeave = function () {\n var _a = _this.props, onMouseLeave = _a.onMouseLeave, value = _a.value;\n if (onMouseLeave) {\n onMouseLeave.call(undefined, value);\n }\n };\n return _this;\n }\n // Manually checking if the component needs an update\n // due to date object being compared by instance\n // and new Date object is created\n // every time and fails the shallow compare of the React.PureComponent.\n /**\n * @hidden\n */\n CalendarCell.prototype.shouldComponentUpdate = function (nextProps) {\n var _a = this.props, value = _a.value, props = __rest(_a, [\"value\"]);\n var newValue = nextProps.value, newProps = __rest(nextProps, [\"value\"]);\n var valueEqual = !(value && newValue) || value.getTime() === newValue.getTime();\n return !(valueEqual && compareProps(props, newProps));\n };\n /* eslint-disable max-len */\n /**\n * @return\n * Returns a `` element with a `` inside to apply the styles. The text inside is the [`formattedValue`]({% slug api_dateinputs_calendarcellprops %}#toc-formattedvalue) of the `cell`.\n */\n CalendarCell.prototype.render = function () {\n var _a = this.props, className = _a.className, formattedValue = _a.formattedValue, isWeekend = _a.isWeekend, isFocused = _a.isFocused, isInRange = _a.isInRange, isSelected = _a.isSelected, isRangeStart = _a.isRangeStart, isRangeMid = _a.isRangeMid, isRangeEnd = _a.isRangeEnd, isRangeSplitStart = _a.isRangeSplitStart, isRangeSplitEnd = _a.isRangeSplitEnd, isToday = _a.isToday, isDisabled = _a.isDisabled, view = _a.view, value = _a.value, other = __rest(_a, [\"className\", \"formattedValue\", \"isWeekend\", \"isFocused\", \"isInRange\", \"isSelected\", \"isRangeStart\", \"isRangeMid\", \"isRangeEnd\", \"isRangeSplitStart\", \"isRangeSplitEnd\", \"isToday\", \"isDisabled\", \"view\", \"value\"]);\n var isEndActive = this.props.activeRangeEnd === 'end' && isRangeEnd;\n var isStartActive = this.props.activeRangeEnd === 'start' && isRangeStart;\n var rootClassName = classNames('k-calendar-td', {\n 'k-range-end': isRangeEnd,\n 'k-range-mid': isRangeMid,\n 'k-range-split-end': isRangeSplitEnd,\n 'k-range-split-start': isRangeSplitStart,\n 'k-range-start': isRangeStart,\n 'k-active': isStartActive || isEndActive,\n 'k-state-pending-focus': isFocused,\n 'k-selected': isSelected || isRangeStart || isRangeEnd,\n 'k-today': isToday,\n 'k-weekend': isWeekend,\n 'k-disabled': isDisabled\n }, className);\n return (React.createElement(\"td\", __assign({}, other, { className: rootClassName, onClick: this.handleClick, onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave }),\n React.createElement(\"span\", { className: \"k-link\" }, this.props.children)));\n };\n return CalendarCell;\n}(React.Component));\nexport { CalendarCell };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * The `CalendarWeekCell` component is internally used for rendering the week cells inside the `month` view of the Calendar. Also used as a [custom week cell for the Calendar]({% slug api_dateinputs_calendarprops %}#toc-weekcell) and the [MultiViewCalendar]({% slug api_dateinputs_multiviewcalendarprops %}#toc-weekcell) components.\n *\n * * [Customizing week-column cells in the Calendar]({% slug custom_rendering_calendar %}#toc-cells-inside-the-week-column)\n * * [Customizing week-column cells in the MultiViewCalendar]({% slug custom_rendering_multiviewcalendar %}#toc-cells-inside-the-week-column)\n */\nvar CalendarWeekCell = /** @class */ (function (_super) {\n __extends(CalendarWeekCell, _super);\n function CalendarWeekCell() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @return\n * Returns a `` element with the [`value`]({% slug api_dateinputs_calendarweekcellprops %}#toc-value) as a child.\n */\n CalendarWeekCell.prototype.render = function () {\n var _a = this.props, className = _a.className, firstDate = _a.firstDate, other = __rest(_a, [\"className\", \"firstDate\"]);\n return (React.createElement(\"td\", __assign({ className: classNames('k-calendar-td', className) }, other), this.props.children));\n };\n return CalendarWeekCell;\n}(React.Component));\nexport { CalendarWeekCell };\n","import { shiftWeekNames } from '../../utils';\n/**\n * @hidden\n */\nvar WeekNamesService = /** @class */ (function () {\n function WeekNamesService(intl) {\n this.intl = intl;\n }\n WeekNamesService.prototype.getWeekNames = function (includeWeekNumber) {\n if (includeWeekNumber === void 0) { includeWeekNumber = false; }\n var weekNames = shiftWeekNames(this.intl.dateFormatNames({ nameType: 'short', type: 'days' }), this.intl.firstDay());\n return includeWeekNumber ? [''].concat(weekNames) : weekNames;\n };\n return WeekNamesService;\n}());\nexport { WeekNamesService };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { weekInYear, cloneDate } from '@progress/kendo-date-math';\nimport { registerForIntl, provideIntlService } from '@progress/kendo-react-intl';\nimport { CalendarCell } from './CalendarCell';\nimport { CalendarWeekCell } from './CalendarWeekCell';\nimport { CalendarViewEnum } from '../models';\nimport { setTime, getToday } from '../../utils';\nimport { WeekNamesService } from '../services';\n// In case we decide to render content for the next month in the empty cells,\n// add k-other-month class to all cells and k-weekend for weekend cells.\n// tslint:disable-next-line jsx-use-translation-function\nvar emptyCell = function (idx) { return (React.createElement(\"td\", { key: idx, className: 'k-calendar-td' }, \"\\u00A0\")); };\n/**\n * @hidden\n */\nvar View = /** @class */ (function (_super) {\n __extends(View, _super);\n function View() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.intl = null;\n _this.weekService = null;\n _this.buildWeekNumber = function (row, idx) {\n var firstDayOfWeek = _this.firstDate(row);\n if (!firstDayOfWeek) {\n return emptyCell(\"week-cell-\".concat(idx));\n }\n var firstDate = _this.firstDate(row);\n var weekCellValue = _this.getWeekNumber(firstDate);\n var uniqueID = \"kendo-react-calendar-week-cell-\".concat(weekCellValue);\n var cellProps = {\n className: 'k-alt',\n value: weekCellValue,\n firstDate: firstDate\n };\n return _this.props.weekCell\n ? React.createElement(_this.props.weekCell, __assign({}, cellProps, { key: uniqueID }), weekCellValue)\n : React.createElement(CalendarWeekCell, __assign({}, cellProps, { key: uniqueID }), weekCellValue);\n };\n _this.buildRow = function (row) {\n return row.map(function (cell, idx) {\n if (!cell) {\n return emptyCell(idx);\n }\n var aria = { 'aria-selected': cell.isSelected };\n var uniqueID = \"kendo-react-calendar-cell-\".concat(cell.value.getTime());\n var cellProps = __assign(__assign(__assign({}, aria), cell), { isDisabled: !cell.isInRange, view: _this.props.activeView, onClick: _this.handleClick, onMouseEnter: _this.handleMouseEnter, onMouseLeave: _this.handleMouseLeave });\n return _this.props.cell\n ? (React.createElement(_this.props.cell, __assign({}, cellProps, { key: uniqueID }), cell.formattedValue))\n : (React.createElement(CalendarCell, __assign({}, cellProps, { key: uniqueID }), cell.formattedValue));\n });\n };\n _this.firstDate = function (row) {\n var cell = _this.firstWeekDateContext(row);\n return cell ? cell.value : null;\n };\n _this.firstWeekDateContext = function (rowCtx) {\n if (!_this.weekNumber) {\n return null;\n }\n var idx = 0;\n var ctx = rowCtx[idx];\n while (!ctx && idx < rowCtx.length) {\n ctx = rowCtx[++idx];\n }\n return ctx;\n };\n _this.handleClick = function (value, event) {\n var onChange = _this.props.onChange;\n if (onChange && event) {\n var args = {\n value: cloneDate(value),\n target: _this,\n nativeEvent: event && event.nativeEvent,\n syntheticEvent: event\n };\n onChange.call(undefined, args);\n }\n };\n _this.handleMouseEnter = function (value) {\n var onCellEnter = _this.props.onCellEnter;\n if (onCellEnter) {\n onCellEnter.call(undefined, cloneDate(value));\n }\n };\n _this.handleMouseLeave = function (value) {\n var onCellLeave = _this.props.onCellLeave;\n if (onCellLeave) {\n onCellLeave.call(undefined, cloneDate(value));\n }\n };\n return _this;\n }\n Object.defineProperty(View.prototype, \"min\", {\n get: function () {\n return this.props.min;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(View.prototype, \"max\", {\n get: function () {\n return this.props.max;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(View.prototype, \"isHorizontal\", {\n get: function () {\n return this.props.direction === 'horizontal';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(View.prototype, \"isMonthView\", {\n get: function () {\n return this.props.activeView === CalendarViewEnum.month;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(View.prototype, \"weekNumber\", {\n get: function () {\n return Boolean(this.props.showWeekNumbers && this.props.activeView === CalendarViewEnum.month);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(View.prototype, \"selectedDate\", {\n get: function () {\n return this.props.selectedDate !== undefined ? this.props.selectedDate : View.defaultProps.selectedDate;\n },\n enumerable: false,\n configurable: true\n });\n View.prototype.render = function () {\n var _this = this;\n this.intl = provideIntlService(this);\n this.weekService = new WeekNamesService(this.intl);\n var weekNames = this.weekService.getWeekNames(this.weekNumber);\n var colSpan = this.props.service.rowLength(this.weekNumber);\n var title = this.props.service.title(this.props.viewDate);\n var time = getToday();\n var viewDate = setTime(this.props.viewDate, time);\n var data = this.props.service.data({\n cellUID: this.props.cellUID,\n min: this.min,\n max: this.max,\n focusedDate: this.props.focusedDate,\n isActiveView: !this.props.bus.canMoveDown(this.props.activeView),\n selectedDate: this.selectedDate,\n selectionRange: this.props.selectionRange,\n viewDate: viewDate\n });\n return (React.createElement(React.Fragment, null,\n (this.isMonthView && this.isHorizontal) && (React.createElement(\"thead\", { role: \"rowgroup\", className: \"k-calendar-thead\" },\n React.createElement(\"tr\", { role: \"row\", className: \"k-calendar-tr\" }, weekNames.map(function (name, idx) { return (React.createElement(\"th\", { key: idx, className: \"k-calendar-th\" }, name)); })))),\n React.createElement(\"tbody\", { role: \"rowgroup\", className: \"k-calendar-tbody\" },\n !this.isHorizontal && (React.createElement(\"tr\", { role: \"presentation\", className: \"k-calendar-tr\" },\n React.createElement(\"th\", { scope: \"col\", colSpan: colSpan, className: \"k-calendar-caption\" }, title))),\n data.map(function (row, idx) {\n return (React.createElement(\"tr\", { role: \"row\", className: \"k-calendar-tr\", key: idx },\n _this.weekNumber && _this.buildWeekNumber(row, idx),\n _this.buildRow(row)));\n }))));\n };\n View.prototype.getWeekNumber = function (date) {\n if (!this.weekNumber || !this.intl) {\n return null;\n }\n return weekInYear(date, this.intl.firstDay());\n };\n View.propTypes = {\n activeRangeEnd: PropTypes.oneOf(['start', 'end', null]),\n activeView: PropTypes.number.isRequired,\n cellUID: PropTypes.string.isRequired,\n direction: PropTypes.oneOf(['horizontal', 'vertical']),\n focusedDate: PropTypes.instanceOf(Date).isRequired,\n max: PropTypes.instanceOf(Date).isRequired,\n min: PropTypes.instanceOf(Date).isRequired,\n onChange: PropTypes.func,\n selectedDate: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.arrayOf(PropTypes.instanceOf(Date))]),\n showWeekNumbers: PropTypes.bool,\n viewDate: PropTypes.instanceOf(Date).isRequired\n };\n View.defaultProps = {\n direction: 'vertical',\n selectedDate: getToday(),\n showWeekNumbers: false\n };\n return View;\n}(React.Component));\nexport { View };\nregisterForIntl(View);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { Button } from '@progress/kendo-react-buttons';\nimport * as React from 'react';\n/**\n * The `CalendarHeaderTitle` component is internally used for rendering the title of the current calendar view. Also used as a custom `headerTitle` for the [Calendar]({% slug api_dateinputs_calendarprops %}#toc-headertitle) and the [MultiViewCalendar]({% slug api_dateinputs_multiviewcalendarprops %}#toc-headertitle) components.\n *\n * * [Customizing the title for the current Calendar view]({% slug custom_rendering_calendar %}#toc-cells-inside-the-view)\n * * [Customizing the title for the current MultiViewCalendar view]({% slug custom_rendering_multiviewcalendar %}#toc-cells-inside-the-view)\n */\nvar CalendarHeaderTitle = /** @class */ (function (_super) {\n __extends(CalendarHeaderTitle, _super);\n function CalendarHeaderTitle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @return\n * Returns a `` element with the [`value`]({% slug api_dateinputs_calendarheadertitleprops %}#toc-value) of the title as a child.\n */\n CalendarHeaderTitle.prototype.render = function () {\n var _a = this.props, view = _a.view, props = __rest(_a, [\"view\"]);\n return (React.createElement(Button, __assign({ type: \"button\", fillMode: \"flat\" }, props), this.props.children));\n };\n return CalendarHeaderTitle;\n}(React.PureComponent));\nexport { CalendarHeaderTitle };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { registerForLocalization } from '@progress/kendo-react-intl';\nimport { classNames } from '@progress/kendo-react-common';\nimport { CalendarHeaderTitle } from './CalendarHeaderTitle';\nimport { MIN_DATE, MAX_DATE } from '../../utils';\n/**\n * @hidden\n */\nvar Header = /** @class */ (function (_super) {\n __extends(Header, _super);\n function Header() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.getTitle = function () {\n if (!_this.props.currentDate) {\n return '';\n }\n var take = _this.rangeLength - 1;\n var title = _this.props.service.title(_this.props.currentDate);\n var nextDate = _this.props.service.addToDate(_this.props.currentDate, take);\n if (take < 1 || !_this.props.service.isInRange(nextDate, _this.min, _this.max)) {\n return title;\n }\n return \"\".concat(title, \" - \").concat(_this.props.service.title(nextDate));\n };\n _this.handleTitleClick = function (event) {\n if (!_this.canMoveUp) {\n return;\n }\n _this.props.bus.moveUp(_this.props.activeView, event);\n };\n return _this;\n }\n Object.defineProperty(Header.prototype, \"min\", {\n get: function () {\n return this.props.min !== undefined\n ? this.props.min\n : Header.defaultProps.min;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Header.prototype, \"max\", {\n get: function () {\n return this.props.max !== undefined\n ? this.props.max\n : Header.defaultProps.max;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Header.prototype, \"rangeLength\", {\n get: function () {\n return this.props.rangeLength !== undefined ? this.props.rangeLength : Header.defaultProps.rangeLength;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Header.prototype, \"canMoveUp\", {\n get: function () {\n return this.props.bus.canMoveUp(this.props.activeView);\n },\n enumerable: false,\n configurable: true\n });\n Header.prototype.render = function () {\n var title = this.getTitle();\n var titleClassNames = classNames('k-calendar-title');\n var headerTitleProps = {\n children: title,\n value: title,\n view: this.props.activeView,\n className: titleClassNames,\n onClick: this.handleTitleClick,\n disabled: !this.canMoveUp\n };\n var headerTitle = this.props.headerTitle\n ? React.createElement(this.props.headerTitle, __assign({}, headerTitleProps), title)\n : React.createElement(CalendarHeaderTitle, __assign({}, headerTitleProps), title);\n return (React.createElement(\"div\", { className: classNames('k-calendar-header', {\n 'k-vstack': this.props.verticalView,\n 'k-hstack': !this.props.verticalView\n }) },\n headerTitle,\n React.createElement(\"span\", { className: \"k-spacer\" }),\n React.createElement(\"span\", { className: \"k-calendar-nav k-hstack\" }, this.props.commands)));\n };\n Header.propTypes = {\n activeView: PropTypes.number.isRequired,\n currentDate: PropTypes.instanceOf(Date).isRequired,\n max: PropTypes.instanceOf(Date).isRequired,\n min: PropTypes.instanceOf(Date).isRequired,\n rangeLength: PropTypes.number\n };\n Header.defaultProps = {\n rangeLength: 1,\n min: MIN_DATE,\n max: MAX_DATE\n };\n return Header;\n}(React.Component));\nexport { Header };\nregisterForLocalization(Header);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { provideLocalizationService, registerForLocalization } from '@progress/kendo-react-intl';\nimport { classNames } from '@progress/kendo-react-common';\nimport { Button } from '@progress/kendo-react-buttons';\nimport { getDate } from '@progress/kendo-date-math';\nimport { messages, today } from '../../messages';\nimport { dateInRange, getToday, isInRange } from '../../utils';\nimport { MIN_DATE, MAX_DATE } from '../../utils';\nvar TodayCommand = /** @class */ (function (_super) {\n __extends(TodayCommand, _super);\n function TodayCommand() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.localization = null;\n _this.handleClick = function (syntheticEvent) {\n if (!_this.todayIsInRange) {\n return;\n }\n if (_this.props.onClick) {\n var event_1 = {\n syntheticEvent: syntheticEvent,\n nativeEvent: syntheticEvent.nativeEvent,\n value: dateInRange(getToday(), _this.min, _this.max),\n target: _this,\n isTodayClick: true\n };\n _this.props.onClick.call(undefined, event_1);\n }\n };\n return _this;\n }\n Object.defineProperty(TodayCommand.prototype, \"min\", {\n get: function () {\n return this.props.min !== undefined\n ? this.props.min\n : TodayCommand.defaultProps.min;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TodayCommand.prototype, \"max\", {\n get: function () {\n return this.props.max !== undefined\n ? this.props.max\n : TodayCommand.defaultProps.max;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TodayCommand.prototype, \"todayIsInRange\", {\n get: function () {\n return isInRange(getToday(), getDate(this.min), getDate(this.max));\n },\n enumerable: false,\n configurable: true\n });\n TodayCommand.prototype.render = function () {\n this.localization = provideLocalizationService(this);\n var todayMessage = this.localization.toLanguageString(today, messages[today]);\n var todayClassNames = classNames('k-calendar-nav-today', {\n 'k-disabled': this.props.disabled\n });\n return (React.createElement(Button, { className: todayClassNames, onClick: this.handleClick, tabIndex: this.props.tabIndex, fillMode: 'flat' }, todayMessage));\n };\n TodayCommand.propTypes = {\n max: PropTypes.instanceOf(Date).isRequired,\n min: PropTypes.instanceOf(Date).isRequired,\n onClick: PropTypes.func,\n disabled: PropTypes.bool\n };\n TodayCommand.defaultProps = {\n min: MIN_DATE,\n max: MAX_DATE\n };\n return TodayCommand;\n}(React.Component));\nexport { TodayCommand };\nregisterForLocalization(TodayCommand);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\nimport { cloneDate, getDate, isEqualDate } from '@progress/kendo-date-math';\nimport { registerForIntl, provideIntlService } from '@progress/kendo-react-intl';\nimport { Virtualization } from '../../virtualization/Virtualization';\nimport { View } from './View';\nimport { Header } from './Header';\nimport { dateInRange, getToday, isInRange, shiftWeekNames } from '../../utils';\nimport { CalendarViewEnum } from '../models';\nimport { TodayCommand } from './TodayCommand';\nvar VIEWS_COUNT = 5;\n/**\n * @hidden\n */\nvar ViewList = /** @class */ (function (_super) {\n __extends(ViewList, _super);\n function ViewList(props) {\n var _this = _super.call(this, props) || this;\n _this.virtualization = null;\n _this.calendarView = null;\n _this.table = null;\n _this.intl = null;\n _this.bottomOffset = 0;\n _this.viewOffset = 0;\n _this.viewHeight = 0;\n _this._element = null;\n _this.isActive = false;\n _this.animateToIndex = true;\n _this.shouldScroll = false;\n _this.focusActiveDate = function () {\n if (!_this._element) {\n return;\n }\n var focusedCell = _this._element.querySelector('td.k-focus');\n var nextActiveCell = _this._element.querySelector('.k-state-pending-focus');\n if (focusedCell && focusedCell[0]) {\n focusedCell[0].classList.remove('k-focus');\n }\n if (nextActiveCell) {\n nextActiveCell.classList.add('k-focus');\n }\n _this.isActive = true;\n };\n _this.blurActiveDate = function () {\n if (!_this._element) {\n return;\n }\n var focusedCell = _this._element.querySelector('td.k-focus');\n if (focusedCell) {\n focusedCell.classList.remove('k-focus');\n }\n _this.isActive = false;\n };\n _this.handleVirtualizationMount = function (virtualization) {\n _this.virtualization = virtualization;\n if (_this.virtualization && _this.table) {\n _this.table.style.transform = \"translateY(\".concat(_this.viewOffset, \"px)\");\n var viewDate = dateInRange(_this.props.focusedDate, _this.props.min, _this.props.max);\n var indexToScroll = _this.props.service.skip(viewDate, _this.props.min);\n _this.virtualization.scrollToIndex(indexToScroll);\n }\n };\n _this.buildMonthView = function (cols, weekNames) {\n return (React.createElement(\"table\", { key: \"calendar-view-list-weekdays\", className: \"k-calendar-table k-calendar-weekdays\", role: \"grid\", tabIndex: _this.props.tabIndex },\n React.createElement(\"colgroup\", null, cols.map(function (_, idx) { return (React.createElement(\"col\", { key: idx })); })),\n React.createElement(\"thead\", { className: \"k-calendar-thead\" },\n React.createElement(\"tr\", { className: \"k-calendar-tr\" }, weekNames.map(function (name, idx) { return (React.createElement(\"th\", { key: idx, className: \"k-calendar-th\" }, name)); })))));\n };\n _this.buildDates = function (cols, dates) {\n var cellUID = _this.props.cellUID;\n return (React.createElement(\"table\", { className: \"k-calendar-table\", ref: function (table) { return _this.table = table; }, role: \"grid\", tabIndex: _this.props.tabIndex, \"aria-activedescendant\": cellUID + _this.props.focusedDate.getTime() },\n React.createElement(\"colgroup\", null, cols.map(function (_, idx) { return (React.createElement(\"col\", { key: idx })); })),\n dates.map(function (date) { return (React.createElement(View, { ref: function (el) { if (!_this.calendarView) {\n _this.calendarView = el;\n } }, key: date.getTime(), activeView: _this.props.activeView, viewDate: date, min: _this.props.min, max: _this.props.max, cellUID: cellUID, focusedDate: _this.props.focusedDate, cell: _this.props.cell, selectedDate: _this.props.value, showWeekNumbers: _this.weekNumber, onChange: _this.handleDateChange, bus: _this.props.bus, service: _this.props.service, weekCell: _this.props.weekCell })); })));\n };\n _this.calculateHeights = function () {\n if (!_this.props.dom) {\n return;\n }\n var scrollableHeight = _this.props.activeView === CalendarViewEnum.month ?\n _this.props.dom.scrollableContentHeight :\n _this.props.dom.scrollableYearContentHeight;\n _this.bottomOffset = scrollableHeight - _this.props.dom.viewHeight(_this.props.activeView);\n _this.viewOffset = -1 * _this.props.dom.headerHeight;\n _this.viewHeight = _this.props.dom.viewHeight(_this.props.activeView) || 1;\n };\n _this.getTake = function (skip, total) {\n return Math.min(total - skip, _this.take);\n };\n _this.handleScrollAction = function (_a) {\n var index = _a.index, scrollAction = _a.scrollAction, pageAction = _a.pageAction;\n var skip = pageAction ? pageAction.skip : _this.state.skip;\n if (_this.state.index !== index || _this.state.skip !== skip) {\n _this.setState({ index: index, skip: skip });\n }\n if (_this.table && scrollAction) {\n var translate = \"translateY(\".concat(scrollAction.offset, \"px)\");\n _this.table.style.transform = translate;\n }\n };\n _this.handleTodayClick = function (event) {\n _this.shouldScroll = true;\n _this.handleDateChange.call(undefined, event, true);\n };\n _this.handleDateChange = function (event, isTodayClick) {\n if (isTodayClick === void 0) { isTodayClick = false; }\n var onChange = _this.props.onChange;\n if (onChange) {\n var args = {\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n value: cloneDate(event.value),\n target: _this,\n isTodayClick: isTodayClick\n };\n onChange.call(undefined, args);\n }\n };\n _this.lastView = _this.props.activeView;\n _this.lastFocus = _this.props.focusedDate;\n _this.state = {\n skip: _this.props.service.skip(_this.props.focusedDate, _this.props.min),\n index: _this.props.service.skip(_this.props.focusedDate, _this.props.min)\n };\n return _this;\n }\n Object.defineProperty(ViewList.prototype, \"element\", {\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ViewList.prototype, \"weekNames\", {\n get: function () {\n this.intl = provideIntlService(this);\n var weekNames = shiftWeekNames(this.intl.dateFormatNames({ nameType: 'short', type: 'days' }), this.intl.firstDay());\n return this.weekNumber ? [''].concat(weekNames) : weekNames;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ViewList.prototype, \"weekNumber\", {\n get: function () {\n return Boolean(this.props.showWeekNumbers && this.props.activeView === CalendarViewEnum.month);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ViewList.prototype, \"take\", {\n get: function () {\n return this.props.take !== undefined ? this.props.take : ViewList.defaultProps.take;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ViewList.prototype, \"animate\", {\n get: function () {\n return Boolean(this.props.smoothScroll && this.animateToIndex);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ViewList.prototype, \"todayIsInRange\", {\n get: function () {\n return isInRange(getToday(), getDate(this.props.min), getDate(this.props.max));\n },\n enumerable: false,\n configurable: true\n });\n ViewList.prototype.componentDidUpdate = function (_prevProps, _prevState) {\n this.shouldScroll = false;\n if (this.indexToScroll !== undefined && this.virtualization) {\n this.virtualization[this.animate ? 'animateToIndex' : 'scrollToIndex'](this.indexToScroll);\n }\n if (this.isActive) {\n this.focusActiveDate();\n }\n this.lastView = this.props.activeView;\n // this.lastFocus = this.props.focusedDate;\n this.indexToScroll = undefined;\n };\n ViewList.prototype.render = function () {\n var _this = this;\n this.calculateHeights();\n var didViewChange = this.lastView !== this.props.activeView;\n var focusedDate = dateInRange(this.props.focusedDate, this.props.min, this.props.max);\n var skip = !didViewChange ? this.state.skip : this.props.service.skip(focusedDate, this.props.min);\n var total = this.props.service.total(this.props.min, this.props.max);\n var take = this.getTake(skip, total);\n var viewDate = this.props.service.addToDate(this.props.min, skip);\n var activeDate = this.props.service.addToDate(this.props.min, this.state.index);\n var cols = new Array(this.props.service.rowLength(this.weekNumber)).fill('');\n var didViewChanged = this.props.activeView !== this.lastView;\n this.animateToIndex = !didViewChanged;\n if (didViewChanged\n || !isEqualDate(this.lastFocus, focusedDate)\n || this.shouldScroll\n || (!this.props.shouldScroll || this.props.shouldScroll())) {\n this.indexToScroll = this.props.service.skip(focusedDate, this.props.min);\n }\n this.lastFocus = focusedDate;\n var rootClassNames = classNames('k-calendar-view k-vstack', {\n 'k-calendar-monthview': this.props.activeView === CalendarViewEnum.month,\n 'k-calendar-yearview': this.props.activeView === CalendarViewEnum.year,\n 'k-calendar-decadeview': this.props.activeView === CalendarViewEnum.decade,\n 'k-calendar-centuryview': this.props.activeView === CalendarViewEnum.century\n });\n var dates = this.buildDates(cols, this.props.service.datesList(viewDate, take));\n var viewListBody = (React.createElement(React.Fragment, null,\n React.createElement(Header, { key: \"calendar-view-list-header\", currentDate: activeDate, min: this.props.min, max: this.props.max, activeView: this.props.activeView, bus: this.props.bus, service: this.props.service, headerTitle: this.props.headerTitle, commands: (React.createElement(React.Fragment, null,\n React.createElement(TodayCommand, { min: this.props.min, max: this.props.max, onClick: this.handleTodayClick, disabled: !this.todayIsInRange, tabIndex: this.props.tabIndex }))) }),\n this.props.activeView === CalendarViewEnum.month && this.buildMonthView(cols, this.weekNames),\n React.createElement(Virtualization, { key: \"calendar-view-list-content\", skip: skip, take: this.take, total: total, itemHeight: this.viewHeight, topOffset: this.viewOffset, bottomOffset: this.bottomOffset, scrollOffsetSize: this.viewOffset, maxScrollDifference: this.viewHeight, onScroll: this.props.onScroll, onScrollAction: this.handleScrollAction, onMount: this.handleVirtualizationMount, children: dates, tabIndex: this.props.tabIndex })));\n return (React.createElement(\"div\", { ref: function (el) { _this._element = el; }, className: rootClassNames }, this.props.dom.didCalculate ? viewListBody : null));\n };\n ViewList.propTypes = {\n activeView: PropTypes.number.isRequired,\n bottomOffset: PropTypes.number,\n cellUID: PropTypes.string.isRequired,\n focusedDate: PropTypes.instanceOf(Date).isRequired,\n max: PropTypes.instanceOf(Date).isRequired,\n min: PropTypes.instanceOf(Date).isRequired,\n onChange: PropTypes.func,\n showWeekNumbers: PropTypes.bool,\n smoothScroll: PropTypes.bool,\n take: PropTypes.number,\n value: PropTypes.instanceOf(Date),\n viewHeight: PropTypes.number,\n viewOffset: PropTypes.number,\n tabIndex: PropTypes.number\n };\n ViewList.defaultProps = {\n take: VIEWS_COUNT,\n showWeekNumbers: false,\n smoothScroll: true\n };\n return ViewList;\n}(React.Component));\nexport { ViewList };\nregisterForIntl(ViewList);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * The `CalendarNavigationItem` component is internally used for rendering the items in the side navigation of the Calendar. Also used as a custom navigation item for the [Calendar]({% slug api_dateinputs_calendarprops %}#toc-navigationitem) ([see example]({% slug custom_rendering_calendar %}#toc-items-in-the-side-navigation)).\n */\nvar CalendarNavigationItem = /** @class */ (function (_super) {\n __extends(CalendarNavigationItem, _super);\n function CalendarNavigationItem() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.handleClick = function (event) {\n var _a = _this.props, onClick = _a.onClick, value = _a.value;\n if (onClick) {\n onClick.call(undefined, value, event);\n }\n };\n return _this;\n }\n /**\n * @return\n * Returns a `
  • ` element with a `` inside. The text inside represents the [`value`]({% slug api_dateinputs_calendarnavigationitemprops %}#toc-value) of the `navigationItem`.\n */\n CalendarNavigationItem.prototype.render = function () {\n var _a = this.props, isRangeStart = _a.isRangeStart, value = _a.value, text = _a.text, other = __rest(_a, [\"isRangeStart\", \"value\", \"text\"]);\n return (React.createElement(\"li\", __assign({}, other, { onClick: this.handleClick }),\n React.createElement(\"span\", { className: classNames({ 'k-calendar-navigation-marker': isRangeStart }) }, this.props.children)));\n };\n return CalendarNavigationItem;\n}(React.Component));\nexport { CalendarNavigationItem };\n","/**\n * @hidden\n */\nexport var Action;\n(function (Action) {\n Action[Action[\"Left\"] = 0] = \"Left\";\n Action[Action[\"Right\"] = 1] = \"Right\";\n Action[Action[\"Up\"] = 2] = \"Up\";\n Action[Action[\"Down\"] = 3] = \"Down\";\n Action[Action[\"PrevView\"] = 4] = \"PrevView\";\n Action[Action[\"NextView\"] = 5] = \"NextView\";\n Action[Action[\"FirstInView\"] = 6] = \"FirstInView\";\n Action[Action[\"LastInView\"] = 7] = \"LastInView\";\n Action[Action[\"LowerView\"] = 8] = \"LowerView\";\n Action[Action[\"UpperView\"] = 9] = \"UpperView\";\n})(Action || (Action = {}));\n","var _a;\n/* tslint:disable:object-literal-sort-keys */\nimport { addDecades, addCenturies, cloneDate, durationInCenturies, firstYearOfDecade, firstDecadeOfCentury, lastDecadeOfCentury } from '@progress/kendo-date-math';\nimport { Action, EMPTY_SELECTIONRANGE } from '../models';\nimport { getToday, isInRange, isInSelectionRange, range, intersects } from '../../utils';\nvar EMPTY_DATA = [[]];\nvar CELLS_LENGTH = 4;\nvar ROWS_LENGTH = 3;\nvar ACTIONS = (_a = {},\n _a[Action.Left] = function (date) { return addDecades(date, -1); },\n _a[Action.Up] = function (date) { return addDecades(date, -5); },\n _a[Action.Right] = function (date) { return addDecades(date, 1); },\n _a[Action.Down] = function (date) { return addDecades(date, 5); },\n _a[Action.PrevView] = function (date) { return addCenturies(date, -1); },\n _a[Action.NextView] = function (date) { return addCenturies(date, 1); },\n _a[Action.FirstInView] = function (date) { return firstDecadeOfCentury(date); },\n _a[Action.LastInView] = function (date) { return lastDecadeOfCentury(date); },\n _a);\n/**\n * @hidden\n */\nvar CenturyViewService = /** @class */ (function () {\n function CenturyViewService() {\n }\n CenturyViewService.prototype.addToDate = function (min, skip) {\n return addCenturies(min, skip);\n };\n CenturyViewService.prototype.datesList = function (start, count) {\n return range(0, count).map(function (i) { return addCenturies(start, i); });\n };\n CenturyViewService.prototype.data = function (options) {\n var _this = this;\n var cellUID = options.cellUID, focusedDate = options.focusedDate, isActiveView = options.isActiveView, max = options.max, min = options.min, selectedDate = options.selectedDate, _a = options.selectionRange, selectionRange = _a === void 0 ? EMPTY_SELECTIONRANGE : _a, viewDate = options.viewDate;\n if (!viewDate) {\n return EMPTY_DATA;\n }\n var cells = range(0, CELLS_LENGTH);\n var firstDate = firstDecadeOfCentury(viewDate);\n var lastDate = lastDecadeOfCentury(viewDate);\n var today = getToday();\n return range(0, ROWS_LENGTH).map(function (rowOffset) {\n var baseDate = addDecades(firstDate, rowOffset * CELLS_LENGTH);\n return cells.map(function (cellOffset) {\n var cellDate = _this.normalize(addDecades(baseDate, cellOffset), min, max);\n var isRangeStart = _this.isEqual(cellDate, selectionRange.start);\n var isRangeEnd = _this.isEqual(cellDate, selectionRange.end);\n var isInMiddle = !isRangeStart && !isRangeEnd;\n var isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);\n var isSelected = isActiveView && (!Array.isArray(selectedDate)\n ? isInRange(selectedDate, min, max) && _this.isEqual(cellDate, selectedDate)\n : _this.isSelectedFromArray(cellDate, selectedDate, min, max));\n return intersects(cellDate, firstDate, lastDate) ? ({\n formattedValue: _this.value(cellDate),\n id: \"\".concat(cellUID).concat(cellDate.getTime()),\n isFocused: _this.isEqual(cellDate, focusedDate),\n isSelected: isSelected,\n isWeekend: false,\n isInRange: isInRange(cellDate, min, max),\n isRangeStart: isRangeStart,\n isRangeMid: isRangeMid,\n isRangeEnd: isRangeEnd,\n isRangeSplitEnd: isRangeMid && _this.isEqual(cellDate, lastDate),\n isRangeSplitStart: isRangeMid && _this.isEqual(cellDate, firstDate),\n isToday: _this.isEqual(cellDate, today),\n title: _this.cellTitle(cellDate),\n value: cellDate\n }) : null;\n });\n });\n };\n CenturyViewService.prototype.isSelectedFromArray = function (candidate, dates, min, max) {\n var _this = this;\n var result = false;\n dates.forEach(function (date) {\n if (isInRange(candidate, min, max) && _this.isEqual(candidate, date)) {\n result = true;\n }\n });\n return result;\n };\n CenturyViewService.prototype.isEqual = function (candidate, expected) {\n if (!candidate || !expected) {\n return false;\n }\n // TODO: double-check this!\n return firstYearOfDecade(candidate).getFullYear() === firstYearOfDecade(expected).getFullYear();\n };\n CenturyViewService.prototype.isInArray = function (date, dates) {\n if (!dates.length) {\n return false;\n }\n var year = date.getFullYear();\n return dates[0].getFullYear() <= year && year <= (dates[dates.length - 1].getFullYear() + 99);\n };\n CenturyViewService.prototype.isInRange = function (candidate, min, max) {\n var year = firstYearOfDecade(candidate).getFullYear();\n var aboveMin = !min || firstYearOfDecade(min).getFullYear() <= year;\n var belowMax = !max || year <= firstYearOfDecade(max).getFullYear();\n return aboveMin && belowMax;\n };\n CenturyViewService.prototype.isInSameView = function (candidate, value) {\n return durationInCenturies(candidate, value) === 0;\n };\n CenturyViewService.prototype.isRangeStart = function (value) {\n return value.getFullYear() % 1000 === 0;\n };\n CenturyViewService.prototype.move = function (value, action) {\n var modifier = ACTIONS[action];\n if (!modifier) {\n return value;\n }\n return modifier(value);\n };\n CenturyViewService.prototype.cellTitle = function (value) {\n return firstYearOfDecade(value).getFullYear().toString();\n };\n CenturyViewService.prototype.navigationTitle = function (value) {\n return value ? firstDecadeOfCentury(value).getFullYear().toString() : '';\n };\n CenturyViewService.prototype.title = function (value) {\n if (!value) {\n return '';\n }\n return \"\".concat(firstDecadeOfCentury(value).getFullYear(), \" - \").concat(lastDecadeOfCentury(value).getFullYear());\n };\n CenturyViewService.prototype.rowLength = function (_) {\n return CELLS_LENGTH;\n };\n CenturyViewService.prototype.skip = function (value, min) {\n return durationInCenturies(min, value);\n };\n CenturyViewService.prototype.total = function (min, max) {\n return durationInCenturies(min, max) + 1;\n };\n CenturyViewService.prototype.value = function (current) {\n return current ? firstYearOfDecade(current).getFullYear().toString() : '';\n };\n CenturyViewService.prototype.viewDate = function (date, max, border) {\n if (border === void 0) { border = 1; }\n var renderTwoViews = durationInCenturies(date, max) < border;\n return renderTwoViews ? addCenturies(date, -1) : date;\n };\n CenturyViewService.prototype.normalize = function (cellDate, min, max) {\n if (cellDate < min && this.isEqual(cellDate, min)) {\n return cloneDate(min);\n }\n if (cellDate > max && this.isEqual(cellDate, max)) {\n return cloneDate(max);\n }\n return cellDate;\n };\n return CenturyViewService;\n}());\nexport { CenturyViewService };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { cloneDate, isEqual } from '@progress/kendo-date-math';\nimport { CalendarNavigationItem } from './CalendarNavigationItem';\nimport { dateInRange } from '../../utils';\nimport { Virtualization } from '../../virtualization/Virtualization';\nvar ITEMS_COUNT = 30;\n/**\n * @hidden\n */\nvar Navigation = /** @class */ (function (_super) {\n __extends(Navigation, _super);\n function Navigation(props) {\n var _this = _super.call(this, props) || this;\n _this.virtualization = null;\n _this.list = null;\n _this.itemHeight = 0;\n _this.topOffset = 0;\n _this.maxViewHeight = 0;\n _this.bottomOffset = 0;\n _this.handleVirtualizationMount = function (virtualization) {\n _this.virtualization = virtualization;\n if (_this.virtualization && _this.list) {\n _this.list.style.transform = \"translateY(\".concat(_this.topOffset, \"px)\");\n var viewDate = dateInRange(_this.props.focusedDate, _this.props.min, _this.props.max);\n var indexToScroll = _this.props.service.skip(viewDate, _this.props.min);\n _this.virtualization.scrollToIndex(indexToScroll);\n }\n };\n _this.buildNavigationItem = function (date) {\n var text = _this.props.service.navigationTitle(date);\n var isRangeStart = _this.props.service.isRangeStart(date);\n var uniqueID = \"kendo-react-calendar-nav-item-\".concat(date.getTime());\n var navigationItemProps = {\n text: text,\n value: date,\n isRangeStart: isRangeStart,\n view: _this.props.activeView,\n onClick: _this.handleDateChange\n };\n return _this.props.navigationItem\n ? (React.createElement(_this.props.navigationItem, __assign({}, navigationItemProps, { key: uniqueID }), text))\n : (React.createElement(CalendarNavigationItem, __assign({}, navigationItemProps, { key: uniqueID }), text));\n };\n _this.calculateHeights = function () {\n var calendarHeight = _this.props.dom.calendarHeight;\n _this.itemHeight = _this.props.dom.navigationItemHeight || 1;\n _this.maxViewHeight = _this.props.dom.monthViewHeight;\n _this.topOffset = (calendarHeight - _this.itemHeight) / 2;\n _this.bottomOffset = calendarHeight - _this.itemHeight;\n };\n _this.handleDateChange = function (value, event) {\n var onChange = _this.props.onChange;\n if (onChange && event) {\n var args = {\n value: cloneDate(value),\n target: _this,\n nativeEvent: event && event.nativeEvent,\n syntheticEvent: event\n };\n onChange.call(undefined, args);\n }\n };\n _this.handleScrollAction = function (_a) {\n var scrollAction = _a.scrollAction, pageAction = _a.pageAction;\n var skip = pageAction ? pageAction.skip : _this.state.skip;\n if (_this.state.skip !== skip) {\n _this.setState({ skip: skip });\n }\n if (_this.list && scrollAction) {\n var translate = \"translateY(\".concat(scrollAction.offset, \"px)\");\n _this.list.style.transform = translate;\n }\n };\n _this.lastView = _this.props.activeView;\n _this.lastFocus = _this.props.focusedDate;\n var skip = _this.props.service.skip(_this.props.focusedDate, _this.props.min);\n var total = _this.props.service.total(_this.props.min, _this.props.max);\n _this.state = {\n skip: (skip - _this.getTake(skip, total) > 0) ? skip : 0\n };\n return _this;\n }\n Object.defineProperty(Navigation.prototype, \"take\", {\n get: function () {\n return this.props.take !== undefined\n ? this.props.take\n : Navigation.defaultProps.take;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n Navigation.prototype.componentDidUpdate = function (_prevProps, _prevState) {\n if (this.indexToScroll !== undefined && this.virtualization) {\n this.virtualization.scrollToIndex(this.indexToScroll);\n }\n this.lastView = this.props.activeView;\n this.lastFocus = this.props.focusedDate;\n this.indexToScroll = undefined;\n };\n Navigation.prototype.render = function () {\n var _this = this;\n this.calculateHeights();\n var didViewChange = this.lastView !== this.props.activeView;\n var focusedDate = dateInRange(this.props.focusedDate, this.props.min, this.props.max);\n var skip = !didViewChange ? this.state.skip : this.props.service.skip(focusedDate, this.props.min);\n var total = this.props.service.total(this.props.min, this.props.max);\n var take = this.getTake(skip, total);\n var viewDate = this.props.service.addToDate(this.props.min, skip);\n var dates = this.props.service.datesList(viewDate, take);\n if (this.props.activeView !== this.lastView\n || !isEqual(focusedDate, this.lastFocus)) {\n this.indexToScroll = this.props.service.skip(focusedDate, this.props.min);\n }\n var navigationBody = (React.createElement(Virtualization, { skip: skip, take: this.take, total: total, itemHeight: this.itemHeight, topOffset: this.topOffset, bottomOffset: this.bottomOffset, onScroll: this.props.onScroll, maxScrollDifference: this.maxViewHeight, onScrollAction: this.handleScrollAction, onMount: this.handleVirtualizationMount, tabIndex: this.props.tabIndex },\n React.createElement(\"ul\", { ref: function (el) { _this.list = el; }, className: \"k-reset\" }, dates.map(function (date) { return (_this.buildNavigationItem(date)); }))));\n return (React.createElement(\"div\", { className: \"k-calendar-navigation\" },\n React.createElement(\"span\", { className: \"k-calendar-navigation-highlight\" }),\n this.props.dom.didCalculate ? navigationBody : null));\n };\n Navigation.prototype.getTake = function (skip, total) {\n return Math.min(total - skip, this.take);\n };\n Navigation.propTypes = {\n activeView: PropTypes.number.isRequired,\n focusedDate: PropTypes.instanceOf(Date).isRequired,\n max: PropTypes.instanceOf(Date).isRequired,\n min: PropTypes.instanceOf(Date).isRequired,\n onChange: PropTypes.func,\n take: PropTypes.number,\n tabIndex: PropTypes.number\n };\n Navigation.defaultProps = {\n take: ITEMS_COUNT\n };\n return Navigation;\n}(React.Component));\nexport { Navigation };\n","import { CalendarViewEnum } from '../models/CalendarViewEnum';\nimport { domContainerFactory as containerFactory } from '../../utils';\nimport { canUseDOM } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar DOMService = /** @class */ (function () {\n function DOMService() {\n // heights\n this.calendarHeight = 0;\n this.headerHeight = 0;\n this.monthViewHeight = 0;\n this.yearViewHeight = 0;\n this.decadeViewHeight = 0;\n this.centuryViewHeight = 0;\n this.navigationItemHeight = 0;\n this.scrollableContentHeight = 0;\n this.scrollableYearContentHeight = 0;\n // widths\n this.calendarWidth = 0;\n this.monthViewWidth = 0;\n this.yearViewWidth = 0;\n this.decadeViewWidth = 0;\n this.centuryViewWidth = 0;\n this.scrollableContentWidth = 0;\n this.didCalculate = false;\n this.hostContainer = null;\n }\n DOMService.prototype.ensureHeights = function () {\n if (this.calendarHeight !== undefined) {\n return;\n }\n this.calculateHeights();\n };\n DOMService.prototype.calculateHeights = function (container) {\n var _this = this;\n if (!canUseDOM) {\n return;\n }\n var div = containerFactory('div');\n var ul = containerFactory('ul');\n var li = containerFactory('li');\n var td = containerFactory('td');\n var th = containerFactory('th');\n var tr = containerFactory('tr');\n var tbody = containerFactory('tbody');\n var thead = containerFactory('thead');\n var table = containerFactory('table');\n var monthHeader = function () { return (div(\"\\n \\n March 2017\\n \\n \\n \\n \", 'k-calendar-header k-hstack')); };\n var monthWeekHeader = function () { return (table([\n thead([\n tr([th('MO', 'k-calendar-th')], 'k-calendar-tr')\n ], 'k-calendar-thead')\n ], 'k-calendar-table k-calendar-weekdays')); };\n var repeat = function (count, mapper) { return new Array(count).fill('1').map(mapper); };\n var content = function (rows, cells) {\n if (cells === void 0) { cells = 1; }\n return (table([\n tbody([tr([td('1', 'k-calendar-td k-alt')])].concat(repeat(rows, function () { return tr(repeat(cells, function (c) { return td(\"\".concat(c, \"\"), 'k-calendar-td'); }), 'k-calendar-tr'); })), 'k-calendar-tbody')\n ], 'k-calendar-table'));\n };\n var scrollable = function (children) { return div(children, 'k-content k-scrollable'); };\n var view = function (contentElement, className, renderWeekHeader) { return (div(renderWeekHeader\n ? [\n monthHeader(),\n monthWeekHeader(),\n scrollable([contentElement, contentElement])\n ]\n : [\n monthHeader(),\n scrollable([contentElement, contentElement])\n ], className, { left: '-10000px', position: 'absolute' })); };\n var navigationList = (function () {\n var navElement;\n return function () {\n if (!canUseDOM) {\n return null;\n }\n if (!navElement) {\n navElement = div([scrollable([ul([li('FEB')])])], 'k-calendar-navigation', { left: '0px', position: 'absolute' });\n }\n return navElement;\n };\n })();\n var viewFactory = function (_a, className, renderWeekHeader) {\n var cells = _a.cells, rows = _a.rows;\n var viewElement;\n return function () {\n if (!canUseDOM) {\n return null;\n }\n if (!viewElement) {\n viewElement = view(content(rows, cells), className, renderWeekHeader);\n }\n return viewElement;\n };\n };\n var getScrollable = function (element) { return element.querySelector('.k-scrollable'); };\n var horizontal = function (element) {\n var scrollableElement = getScrollable(element);\n scrollableElement.className = \"\".concat(scrollableElement.className, \" k-scrollable-horizontal\");\n return element;\n };\n var monthView = viewFactory({ cells: 7, rows: 6 }, 'k-calendar-view k-calendar-monthview k-vstack', true);\n var yearView = viewFactory({ cells: 5, rows: 3 }, 'k-calendar-view k-calendar-yearview', false);\n var decadeView = viewFactory({ cells: 5, rows: 2 }, 'k-calendar-view k-calendar-decadeview', false);\n var horzMonthView = function () { return horizontal(monthView()); };\n var horzYearView = function () { return horizontal(yearView()); };\n var horzDecadeView = function () { return horizontal(decadeView()); };\n var height = function (element) { return (parseFloat(window.getComputedStyle(element).height) || element.offsetHeight); };\n var width = function (element) {\n var styles = window.getComputedStyle(element);\n var computed = parseFloat(styles.width)\n + parseFloat(styles.paddingLeft)\n + parseFloat(styles.paddingRight);\n return computed || element.offsetWidth;\n };\n var getBody = function (element) { return element.querySelector('tbody'); };\n this.didCalculate = true;\n if (container) {\n this.hostContainer = container;\n }\n this.batch(monthView(), function (contentElement) {\n var viewElement = getBody(contentElement);\n _this.calendarHeight = height(contentElement);\n _this.monthViewHeight = height(viewElement);\n _this.headerHeight = height(viewElement.children[0]);\n _this.scrollableContentHeight = height(getScrollable(contentElement));\n });\n this.batch(horzMonthView(), function (contentElement) {\n var viewElement = getBody(contentElement);\n _this.calendarWidth = width(contentElement);\n _this.monthViewWidth = width(viewElement);\n _this.scrollableContentWidth = width(getScrollable(contentElement));\n });\n this.batch(yearView(), function (contentElement) {\n _this.yearViewHeight = height(getBody(contentElement));\n _this.scrollableYearContentHeight = height(getScrollable(contentElement));\n });\n this.batch(horzYearView(), function (contentElement) {\n _this.yearViewWidth = width(getBody(contentElement));\n });\n this.batch(decadeView(), function (contentElement) {\n _this.decadeViewHeight = height(getBody(contentElement));\n _this.centuryViewHeight = _this.decadeViewHeight;\n });\n this.batch(horzDecadeView(), function (contentElement) {\n _this.decadeViewWidth = width(getBody(contentElement));\n _this.centuryViewWidth = _this.decadeViewWidth;\n });\n this.batch(navigationList(), function (contentElement) {\n _this.navigationItemHeight = height(contentElement.querySelector('li'));\n });\n };\n DOMService.prototype.viewHeight = function (viewType) {\n return this.viewDimension(viewType, 'height');\n };\n DOMService.prototype.viewWidth = function (viewType) {\n return this.viewDimension(viewType, 'width');\n };\n DOMService.prototype.viewDimension = function (viewType, dimension) {\n var viewProp = dimension === 'height' ? 'ViewHeight' : 'ViewWidth';\n switch (viewType) {\n case CalendarViewEnum.month:\n return this[\"month\".concat(viewProp)];\n case CalendarViewEnum.year:\n return this[\"year\".concat(viewProp)];\n case CalendarViewEnum.decade:\n return this[\"decade\".concat(viewProp)];\n case CalendarViewEnum.century:\n return this[\"century\".concat(viewProp)];\n default:\n return 1;\n }\n };\n DOMService.prototype.batch = function (contentElement, action) {\n var hostContainer = this.hostContainer || document.body;\n var appendedContent = hostContainer.appendChild(contentElement);\n action(appendedContent);\n hostContainer.removeChild(appendedContent);\n };\n return DOMService;\n}());\nexport { DOMService };\n","import { addMonths } from './add-months';\nimport { createDate } from './create-date';\nimport { lastDayOfMonth } from './last-day-of-month';\n/**\n * @hidden\n */\nexport var setYear = function (value, year) {\n var month = value.getMonth();\n var candidate = createDate(year, month, value.getDate(), value.getHours(), value.getMinutes(), value.getSeconds(), value.getMilliseconds());\n return candidate.getMonth() === month ? candidate : lastDayOfMonth(addMonths(candidate, -1));\n};\n","import { adjustDST } from './adjust-dst';\nimport { setYear } from './set-year';\n/**\n * A function that adds and subtracts years from a `Date` object.\n *\n * @param date - The initial date value.\n * @param offset - The number of years to add or subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addYears(new Date(2016, 5, 1), 5); // 2011-6-1\n * addYears(new Date(2016, 5, 1), -5); // 2021-6-1\n * ```\n */\nexport var addYears = function (value, offset) {\n return adjustDST(setYear(value, value.getFullYear() + offset), value.getHours());\n};\n","import { addYears } from './add-years';\n/**\n * A function that adds and subtracts decades from a `Date` object.\n *\n * @param date - The initial date value.\n * @param offset - The number of decades to add or subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addDecades(new Date(2016, 5, 1), 5); // 2066-6-1\n * addDecades(new Date(2016, 5, 1), -5); // 1966-6-1\n * ```\n */\nexport var addDecades = function (value, offset) {\n return addYears(value, 10 * offset);\n};\n","import { addYears } from './add-years';\n/**\n * A function that adds and subtracts centuries from a `Date` object.\n *\n * @param date - The initial date value.\n * @param offset - The number of centuries to add or subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addCenturies(new Date(2016, 5, 1), 5); // 2516-6-1\n * addCenturies(new Date(2016, 5, 1), -5); // 1516-6-1\n * ```\n */\nexport var addCenturies = function (value, offset) {\n return addYears(value, 100 * offset);\n};\n","import { setYear } from './set-year';\n/**\n * @hidden\n */\nexport var normalizeYear = function (value, year) { return (setYear(value, year(value.getFullYear()))); };\n","import { normalizeYear } from './normalize-year';\n/**\n * A function that returns a `Date` object of the first decade in a century.\n *\n * @param date - The start date value.\n * @returns - The first year in a century.\n *\n * @example\n * ```ts-no-run\n * firstDecadeOfCentury(new Date(2017, 0, 1)); // 2000-1-1\n * firstDecadeOfCentury(new Date(2007, 10, 22)); // 2000-11-22\n * firstDecadeOfCentury(new Date(2126, 0, 1)); // 2100-1-1\n * ```\n */\nexport var firstDecadeOfCentury = function (value) { return (normalizeYear(value, function (y) { return y - (y % 100); })); };\n","import { normalizeYear } from './normalize-year';\n/**\n * A function that returns a `Date` object of the last decade in a century.\n *\n * @param date - The start date value.\n * @returns - The last year in a decade.\n *\n * @example\n * ```ts-no-run\n * lastDecadeOfCentury(new Date(2017, 0, 1)); // 2090-1-1\n * lastDecadeOfCentury(new Date(2007, 10, 22)); // 2090-11-22\n * lastDecadeOfCentury(new Date(2126, 0, 1)); // 2190-1-1\n * ```\n */\nexport var lastDecadeOfCentury = function (value) { return (normalizeYear(value, function (y) { return y - (y % 100) + 90; })); };\n","import { normalizeYear } from './normalize-year';\n/**\n * A function that returns a `Date` object of the first year in a decade.\n *\n * @param date - The start date value.\n * @returns - The first year in a decade.\n *\n * @example\n * ```ts-no-run\n * firstYearOfDecade(new Date(2017, 0, 1)); // 2010-1-1\n * firstYearOfDecade(new Date(2007, 10, 22)); // 2000-11-22\n * firstYearOfDecade(new Date(2026, 0, 1)); // 2020-1-1\n * ```\n */\nexport var firstYearOfDecade = function (value) { return (normalizeYear(value, function (y) { return y - (y % 10); })); };\n","import { firstDecadeOfCentury } from './first-decade-of-century';\n/**\n * A function that calculates duration in centuries between two `Date` objects.\n *\n * @param start - The start date value.\n * @param end - The end date value.\n * @returns - The duration in months.\n *\n * @example\n * ```ts-no-run\n * durationInCenturies(new Date(2016, 0, 1), new Date(3216, 0, 1)); // 12\n * durationInCenturies(new Date(2016, 6, 1), new Date(2617, 0, 1)); // 6\n * durationInCenturies(new Date(2016, 0, 1), new Date(2016, 0, 1)); // 0\n * ```\n */\nexport var durationInCenturies = function (start, end) { return ((firstDecadeOfCentury(end).getFullYear() - firstDecadeOfCentury(start).getFullYear()) / 100); };\n","var _a;\nimport { addDecades, addYears, cloneDate, durationInDecades, firstYearOfDecade, lastYearOfDecade } from '@progress/kendo-date-math';\nimport { Action } from '../models/NavigationAction';\nimport { EMPTY_SELECTIONRANGE } from '../models/SelectionRange';\nimport { getToday, isInRange, isInSelectionRange, range, intersects } from '../../utils';\nvar EMPTY_DATA = [[]];\nvar CELLS_LENGTH = 4;\nvar ROWS_LENGTH = 3;\nvar ACTIONS = (_a = {},\n _a[Action.Left] = function (date) { return addYears(date, -1); },\n _a[Action.Up] = function (date) { return addYears(date, -5); },\n _a[Action.Right] = function (date) { return addYears(date, 1); },\n _a[Action.Down] = function (date) { return addYears(date, 5); },\n _a[Action.PrevView] = function (date) { return addDecades(date, -1); },\n _a[Action.NextView] = function (date) { return addDecades(date, 1); },\n _a[Action.FirstInView] = function (date) { return firstYearOfDecade(date); },\n _a[Action.LastInView] = function (date) { return lastYearOfDecade(date); },\n _a);\n/**\n * @hidden\n */\nvar DecadeViewService = /** @class */ (function () {\n function DecadeViewService() {\n }\n DecadeViewService.prototype.addToDate = function (min, skip) {\n return addDecades(min, skip);\n };\n DecadeViewService.prototype.datesList = function (start, count) {\n return range(0, count).map(function (i) { return addDecades(start, i); });\n };\n DecadeViewService.prototype.data = function (options) {\n var _this = this;\n var cellUID = options.cellUID, focusedDate = options.focusedDate, isActiveView = options.isActiveView, max = options.max, min = options.min, selectedDate = options.selectedDate, _a = options.selectionRange, selectionRange = _a === void 0 ? EMPTY_SELECTIONRANGE : _a, viewDate = options.viewDate;\n if (!viewDate) {\n return EMPTY_DATA;\n }\n var cells = range(0, CELLS_LENGTH);\n var firstDate = firstYearOfDecade(viewDate);\n var lastDate = lastYearOfDecade(viewDate);\n var today = getToday();\n return range(0, ROWS_LENGTH).map(function (rowOffset) {\n var baseDate = addYears(firstDate, rowOffset * CELLS_LENGTH);\n return cells.map(function (cellOffset) {\n var cellDate = _this.normalize(addYears(baseDate, cellOffset), min, max);\n var isRangeStart = _this.isEqual(cellDate, selectionRange.start);\n var isRangeEnd = _this.isEqual(cellDate, selectionRange.end);\n var isInMiddle = !isRangeStart && !isRangeEnd;\n var isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);\n var isSelected = isActiveView && (!Array.isArray(selectedDate)\n ? isInRange(selectedDate, min, max) && _this.isEqual(cellDate, selectedDate)\n : _this.isSelectedFromArray(cellDate, selectedDate, min, max));\n return intersects(cellDate, firstDate, lastDate) ? ({\n formattedValue: _this.value(cellDate),\n id: \"\".concat(cellUID).concat(cellDate.getTime()),\n isFocused: _this.isEqual(cellDate, focusedDate),\n isSelected: isSelected,\n isWeekend: false,\n isInRange: isInRange(cellDate, min, max),\n isRangeStart: isRangeStart,\n isRangeMid: isRangeMid,\n isRangeEnd: isRangeEnd,\n isRangeSplitEnd: isRangeMid && _this.isEqual(cellDate, lastDate),\n isRangeSplitStart: isRangeMid && _this.isEqual(cellDate, firstDate),\n isToday: _this.isEqual(cellDate, today),\n title: _this.cellTitle(cellDate),\n value: cellDate\n }) : null;\n });\n });\n };\n DecadeViewService.prototype.isSelectedFromArray = function (candidate, dates, min, max) {\n var _this = this;\n var result = false;\n dates.forEach(function (date) {\n if (isInRange(candidate, min, max) && _this.isEqual(candidate, date)) {\n result = true;\n }\n });\n return result;\n };\n DecadeViewService.prototype.isEqual = function (candidate, expected) {\n if (!candidate || !expected) {\n return false;\n }\n return candidate.getFullYear() === expected.getFullYear();\n };\n DecadeViewService.prototype.isInArray = function (date, dates) {\n if (!dates.length) {\n return false;\n }\n var year = date.getFullYear();\n return dates[0].getFullYear() <= year && year <= (dates[dates.length - 1].getFullYear() + 9);\n };\n DecadeViewService.prototype.isInRange = function (candidate, min, max) {\n var year = candidate.getFullYear();\n var aboveMin = !min || min.getFullYear() <= year;\n var belowMax = !max || year <= max.getFullYear();\n return aboveMin && belowMax;\n };\n DecadeViewService.prototype.isRangeStart = function (value) {\n return value.getFullYear() % 100 === 0;\n };\n DecadeViewService.prototype.isInSameView = function (candidate, value) {\n return durationInDecades(candidate, value) === 0;\n };\n DecadeViewService.prototype.move = function (value, action) {\n var modifier = ACTIONS[action];\n if (!modifier) {\n return value;\n }\n return modifier(value);\n };\n DecadeViewService.prototype.cellTitle = function (value) {\n return value.getFullYear().toString();\n };\n DecadeViewService.prototype.navigationTitle = function (value) {\n return value ? firstYearOfDecade(value).getFullYear().toString() : '';\n };\n DecadeViewService.prototype.title = function (value) {\n if (!value) {\n return '';\n }\n return \"\".concat(firstYearOfDecade(value).getFullYear(), \" - \").concat(lastYearOfDecade(value).getFullYear());\n };\n DecadeViewService.prototype.rowLength = function (_) {\n return CELLS_LENGTH;\n };\n DecadeViewService.prototype.skip = function (value, min) {\n return durationInDecades(min, value);\n };\n DecadeViewService.prototype.total = function (min, max) {\n return durationInDecades(min, max) + 1;\n };\n DecadeViewService.prototype.value = function (current) {\n return current ? current.getFullYear().toString() : '';\n };\n DecadeViewService.prototype.viewDate = function (date, max, border) {\n if (border === void 0) { border = 1; }\n var renderTwoViews = durationInDecades(date, max) < border;\n return renderTwoViews ? addDecades(date, -1) : date;\n };\n DecadeViewService.prototype.normalize = function (cellDate, min, max) {\n if (cellDate < min && this.isEqual(cellDate, min)) {\n return cloneDate(min);\n }\n if (cellDate > max && this.isEqual(cellDate, max)) {\n return cloneDate(max);\n }\n return cellDate;\n };\n return DecadeViewService;\n}());\nexport { DecadeViewService };\n","var _a;\nimport { addDays, addWeeks, addMonths, dayOfWeek, durationInMonths, getDate, firstDayOfMonth, lastDayOfMonth } from '@progress/kendo-date-math';\nimport { Action } from '../models/NavigationAction';\nimport { EMPTY_SELECTIONRANGE } from '../models/SelectionRange';\nimport { getToday, isInRange, isInSelectionRange, range } from '../../utils';\nvar EMPTY_DATA = [[]];\nvar CELLS_LENGTH = 7;\nvar ROWS_LENGTH = 6;\nvar SATURDAY = 6;\nvar SUNDAY = 0;\nvar ACTIONS = (_a = {},\n _a[Action.Left] = function (date) { return addDays(date, -1); },\n _a[Action.Up] = function (date) { return addWeeks(date, -1); },\n _a[Action.Right] = function (date) { return addDays(date, 1); },\n _a[Action.Down] = function (date) { return addWeeks(date, 1); },\n _a[Action.PrevView] = function (date) { return addMonths(date, -1); },\n _a[Action.NextView] = function (date) { return addMonths(date, 1); },\n _a[Action.FirstInView] = function (date) { return firstDayOfMonth(date); },\n _a[Action.LastInView] = function (date) { return lastDayOfMonth(date); },\n _a);\n/**\n * @hidden\n */\nvar MonthViewService = /** @class */ (function () {\n function MonthViewService(intl) {\n this.intl = intl;\n }\n MonthViewService.prototype.addToDate = function (min, skip) {\n return addMonths(min, skip);\n };\n MonthViewService.prototype.datesList = function (start, count) {\n return range(0, count).map(function (i) { return addMonths(start, i); });\n };\n MonthViewService.prototype.data = function (options) {\n var _this = this;\n var cellUID = options.cellUID, focusedDate = options.focusedDate, isActiveView = options.isActiveView, max = options.max, min = options.min, selectedDate = options.selectedDate, _a = options.selectionRange, selectionRange = _a === void 0 ? EMPTY_SELECTIONRANGE : _a, viewDate = options.viewDate;\n if (!viewDate) {\n return EMPTY_DATA;\n }\n var firstMonthDate = firstDayOfMonth(viewDate);\n var lastMonthDate = lastDayOfMonth(viewDate);\n var backward = -1;\n var date = dayOfWeek(firstMonthDate, this.intl.firstDay(), backward);\n var cells = range(0, CELLS_LENGTH);\n var today = getToday();\n return range(0, ROWS_LENGTH).map(function (rowOffset) {\n var baseDate = addDays(date, rowOffset * CELLS_LENGTH);\n return cells.map(function (cellOffset) {\n var cellDate = _this.normalize(addDays(baseDate, cellOffset), min, max);\n var otherMonth = cellDate < firstMonthDate || cellDate > lastMonthDate;\n if (otherMonth) {\n return null;\n }\n var isRangeStart = _this.isEqual(cellDate, selectionRange.start);\n var isRangeEnd = _this.isEqual(cellDate, selectionRange.end);\n var isInMiddle = !isRangeStart && !isRangeEnd;\n var isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);\n var isSelected = isActiveView && (!Array.isArray(selectedDate)\n ? isInRange(selectedDate, min, max) && _this.isEqual(cellDate, selectedDate)\n : _this.isSelectedFromArray(cellDate, selectedDate, min, max));\n var cell = {\n formattedValue: _this.value(cellDate),\n id: \"\".concat(cellUID).concat(cellDate.getTime()),\n isFocused: _this.isEqual(cellDate, focusedDate),\n isSelected: isSelected,\n isInRange: isInRange(cellDate, min, max),\n isWeekend: _this.isWeekend(cellDate),\n isRangeStart: isRangeStart,\n isRangeMid: isRangeMid,\n isRangeEnd: isRangeEnd,\n isRangeSplitStart: isRangeMid && _this.isEqual(cellDate, firstMonthDate),\n isRangeSplitEnd: isRangeMid && _this.isEqual(cellDate, lastMonthDate),\n isToday: _this.isEqual(cellDate, today),\n title: _this.cellTitle(cellDate),\n value: cellDate\n };\n return cell;\n });\n });\n };\n MonthViewService.prototype.isEqual = function (candidate, expected) {\n if (!candidate || !expected) {\n return false;\n }\n return getDate(candidate).getTime() === getDate(expected).getTime();\n };\n MonthViewService.prototype.isSelectedFromArray = function (candidate, dates, min, max) {\n var _this = this;\n var result = false;\n dates.forEach(function (date) {\n if (isInRange(candidate, min, max) && _this.isEqual(candidate, date)) {\n result = true;\n }\n });\n return result;\n };\n MonthViewService.prototype.isInArray = function (date, dates) {\n return !!dates.length && firstDayOfMonth(dates[0]) <= date && date <= lastDayOfMonth(dates[dates.length - 1]);\n };\n MonthViewService.prototype.isInRange = function (candidate, min, max) {\n var value = getDate(candidate);\n var aboveMin = !min || getDate(min) <= value;\n var belowMax = !max || value <= getDate(max);\n return aboveMin && belowMax;\n };\n MonthViewService.prototype.isInSameView = function (candidate, value) {\n return durationInMonths(candidate, value) === 0;\n };\n MonthViewService.prototype.isRangeStart = function (value) {\n return !value.getMonth();\n };\n MonthViewService.prototype.move = function (value, action) {\n var modifier = ACTIONS[action];\n if (!modifier) {\n return value;\n }\n return modifier(value);\n };\n MonthViewService.prototype.cellTitle = function (value) {\n return this.intl.formatDate(value, 'D');\n };\n MonthViewService.prototype.navigationTitle = function (value) {\n if (!value) {\n return '';\n }\n return this.isRangeStart(value) ? value.getFullYear().toString() : this.abbrMonthNames()[value.getMonth()];\n };\n MonthViewService.prototype.title = function (current) {\n return \"\".concat(this.wideMonthNames()[current.getMonth()], \" \").concat(current.getFullYear());\n };\n MonthViewService.prototype.rowLength = function (prependCell) {\n return CELLS_LENGTH + (prependCell ? 1 : 0);\n };\n MonthViewService.prototype.skip = function (value, min) {\n return durationInMonths(min, value);\n };\n MonthViewService.prototype.total = function (min, max) {\n return durationInMonths(min, max) + 1;\n };\n MonthViewService.prototype.value = function (current) {\n return current ? current.getDate().toString() : '';\n };\n MonthViewService.prototype.viewDate = function (date, max, border) {\n if (border === void 0) { border = 1; }\n var renderTwoViews = durationInMonths(date, max) < border;\n return renderTwoViews ? addMonths(date, -1) : date;\n };\n MonthViewService.prototype.isWeekend = function (date) {\n var day = date.getDay();\n return day === SATURDAY || day === SUNDAY;\n };\n MonthViewService.prototype.abbrMonthNames = function () {\n return this.intl.dateFormatNames({ nameType: 'abbreviated', type: 'months' });\n };\n MonthViewService.prototype.normalize = function (cellDate, min, max) {\n if (cellDate < min && this.isEqual(cellDate, min)) {\n return getDate(min);\n }\n if (cellDate > max && this.isEqual(cellDate, max)) {\n return getDate(max);\n }\n return cellDate;\n };\n MonthViewService.prototype.wideMonthNames = function () {\n return this.intl.dateFormatNames({ nameType: 'wide', type: 'months', standAlone: true });\n };\n return MonthViewService;\n}());\nexport { MonthViewService };\n","var _a;\nimport { addMonths, addYears, createDate, durationInYears, firstMonthOfYear, lastMonthOfYear } from '@progress/kendo-date-math';\nimport { Action } from '../models/NavigationAction';\nimport { getToday, isInRange, isInSelectionRange, range } from '../../utils';\nimport { EMPTY_SELECTIONRANGE } from '../models/SelectionRange';\nimport { cloneDate } from '@progress/kendo-date-math';\nvar EMPTY_DATA = [[]];\nvar CELLS_LENGTH = 4;\nvar ROWS_LENGTH = 3;\nvar upStep = function (month) {\n if (month > 4) {\n return -5;\n }\n if (month < 2) {\n return -2;\n }\n return -7;\n};\nvar downStep = function (month) {\n if (month < 7) {\n return 5;\n }\n if (month < 10) {\n return 7;\n }\n return 2;\n};\nvar ACTIONS = (_a = {},\n _a[Action.Left] = function (date) { return addMonths(date, -1); },\n _a[Action.Up] = function (date) { return addMonths(date, upStep(date.getMonth())); },\n _a[Action.Right] = function (date) { return addMonths(date, 1); },\n _a[Action.Down] = function (date) { return addMonths(date, downStep(date.getMonth())); },\n _a[Action.PrevView] = function (date) { return addYears(date, -1); },\n _a[Action.NextView] = function (date) { return addYears(date, 1); },\n _a[Action.FirstInView] = function (date) { return firstMonthOfYear(date); },\n _a[Action.LastInView] = function (date) { return lastMonthOfYear(date); },\n _a);\n/**\n * @hidden\n */\nvar YearViewService = /** @class */ (function () {\n function YearViewService(intl) {\n this._intl = intl;\n }\n YearViewService.prototype.addToDate = function (min, skip) {\n return addYears(min, skip);\n };\n YearViewService.prototype.datesList = function (start, count) {\n return range(0, count).map(function (i) { return addYears(start, i); });\n };\n YearViewService.prototype.data = function (options) {\n var _this = this;\n var cellUID = options.cellUID, focusedDate = options.focusedDate, isActiveView = options.isActiveView, max = options.max, min = options.min, selectedDate = options.selectedDate, _a = options.selectionRange, selectionRange = _a === void 0 ? EMPTY_SELECTIONRANGE : _a, viewDate = options.viewDate;\n if (!viewDate) {\n return EMPTY_DATA;\n }\n var months = this.abbrMonthNames();\n var firstDate = firstMonthOfYear(viewDate);\n var lastDate = lastMonthOfYear(viewDate);\n var currentYear = firstDate.getFullYear();\n var cells = range(0, CELLS_LENGTH);\n var today = getToday();\n return range(0, ROWS_LENGTH).map(function (rowOffset) {\n var baseDate = addMonths(firstDate, rowOffset * CELLS_LENGTH);\n return cells.map(function (cellOffset) {\n var cellDate = _this.normalize(addMonths(baseDate, cellOffset), min, max);\n var changedYear = currentYear < cellDate.getFullYear();\n if (changedYear) {\n return null;\n }\n var isRangeStart = _this.isEqual(cellDate, selectionRange.start);\n var isRangeEnd = _this.isEqual(cellDate, selectionRange.end);\n var isInMiddle = !isRangeStart && !isRangeEnd;\n var isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);\n var isSelected = isActiveView && (!Array.isArray(selectedDate)\n ? isInRange(selectedDate, min, max) && _this.isEqual(cellDate, selectedDate)\n : _this.isSelectedFromArray(cellDate, selectedDate, min, max));\n return {\n formattedValue: months[cellDate.getMonth()],\n id: \"\".concat(cellUID).concat(cellDate.getTime()),\n isFocused: _this.isEqual(cellDate, focusedDate),\n isSelected: isSelected,\n isInRange: isInRange(cellDate, min, max),\n isWeekend: false,\n isRangeStart: isRangeStart,\n isRangeMid: isRangeMid,\n isRangeEnd: isRangeEnd,\n isRangeSplitEnd: isRangeMid && _this.isEqual(cellDate, lastDate),\n isRangeSplitStart: isRangeMid && _this.isEqual(cellDate, firstDate),\n isToday: _this.isEqual(cellDate, today),\n title: _this.cellTitle(cellDate),\n value: cellDate\n };\n });\n });\n };\n YearViewService.prototype.isSelectedFromArray = function (candidate, dates, min, max) {\n var _this = this;\n var result = false;\n dates.forEach(function (date) {\n if (isInRange(candidate, min, max) && _this.isEqual(candidate, date)) {\n result = true;\n }\n });\n return result;\n };\n YearViewService.prototype.isEqual = function (candidate, expected) {\n if (!candidate || !expected) {\n return false;\n }\n return candidate.getFullYear() === expected.getFullYear() &&\n candidate.getMonth() === expected.getMonth();\n };\n YearViewService.prototype.isInArray = function (date, dates) {\n if (!dates.length) {\n return false;\n }\n var year = date.getFullYear();\n return dates[0].getFullYear() <= year && year <= dates[dates.length - 1].getFullYear();\n };\n YearViewService.prototype.isInRange = function (candidate, min, max) {\n var candidateValue = createDate(candidate.getFullYear(), candidate.getMonth(), 1);\n var aboveMin = !min || createDate(min.getFullYear(), min.getMonth(), 1) <= candidateValue;\n var belowMax = !max || candidateValue <= createDate(max.getFullYear(), max.getMonth(), 1);\n return aboveMin && belowMax;\n };\n YearViewService.prototype.isInSameView = function (candidate, value) {\n return durationInYears(candidate, value) === 0;\n };\n YearViewService.prototype.isRangeStart = function (value) {\n return value.getFullYear() % 10 === 0;\n };\n YearViewService.prototype.move = function (value, action) {\n var modifier = ACTIONS[action];\n if (!modifier) {\n return value;\n }\n return modifier(value);\n };\n YearViewService.prototype.cellTitle = function (value) {\n return \"\".concat(value.getFullYear(), \" \").concat(this.value(value));\n };\n YearViewService.prototype.navigationTitle = function (value) {\n return this.title(value);\n };\n YearViewService.prototype.title = function (current) {\n return current ? current.getFullYear().toString() : '';\n };\n YearViewService.prototype.rowLength = function (_) {\n return CELLS_LENGTH;\n };\n YearViewService.prototype.skip = function (value, min) {\n return durationInYears(min, value);\n };\n YearViewService.prototype.total = function (min, max) {\n return durationInYears(min, max) + 1;\n };\n YearViewService.prototype.value = function (current) {\n return current ? this.abbrMonthNames()[current.getMonth()] : '';\n };\n YearViewService.prototype.viewDate = function (date, max, border) {\n if (border === void 0) { border = 1; }\n var renderTwoViews = durationInYears(date, max) < border;\n return renderTwoViews ? addYears(date, -1) : date;\n };\n YearViewService.prototype.abbrMonthNames = function () {\n return this._intl.dateFormatNames({ nameType: 'abbreviated', type: 'months' });\n };\n YearViewService.prototype.normalize = function (cellDate, min, max) {\n if (cellDate < min && this.isEqual(cellDate, min)) {\n return cloneDate(min);\n }\n if (cellDate > max && this.isEqual(cellDate, max)) {\n return cloneDate(max);\n }\n return cellDate;\n };\n return YearViewService;\n}());\nexport { YearViewService };\n","var _a;\nimport { CenturyViewService } from './CenturyViewService';\nimport { DecadeViewService } from './DecadeViewService';\nimport { MonthViewService } from './MonthViewService';\nimport { YearViewService } from './YearViewService';\nimport { CalendarViewEnum } from '../models/CalendarViewEnum';\nvar services = (_a = {},\n _a[CalendarViewEnum.month] = MonthViewService,\n _a[CalendarViewEnum.year] = YearViewService,\n _a[CalendarViewEnum.decade] = DecadeViewService,\n _a[CalendarViewEnum.century] = CenturyViewService,\n _a);\nvar viewOffset = function (view, offset) {\n var candidate = CalendarViewEnum[CalendarViewEnum[view + offset]];\n return candidate !== undefined ? candidate : view;\n};\n/**\n * @hidden\n */\nvar BusViewService = /** @class */ (function () {\n function BusViewService(onViewChanged) {\n this.bottom = CalendarViewEnum.month;\n this.top = CalendarViewEnum.century;\n this.onViewChanged = onViewChanged;\n }\n BusViewService.prototype.configure = function (bottom, top) {\n this.bottom = bottom;\n this.top = top;\n };\n BusViewService.prototype.service = function (view, intl) {\n return new services[\"\".concat(view)](intl);\n };\n BusViewService.prototype.moveDown = function (view, event) {\n this.move(view, -1, event);\n };\n BusViewService.prototype.moveUp = function (view, event) {\n this.move(view, 1, event);\n };\n BusViewService.prototype.moveToBottom = function (activeView) {\n if (activeView === this.bottom) {\n return;\n }\n this.onViewChanged({ view: this.bottom });\n };\n BusViewService.prototype.canMoveDown = function (view) {\n return this.bottom < view;\n };\n BusViewService.prototype.canMoveUp = function (view) {\n return view < this.top;\n };\n BusViewService.prototype.clamp = function (view) {\n if (view < this.bottom) {\n return this.bottom;\n }\n if (view > this.top) {\n return this.top;\n }\n return view;\n };\n BusViewService.prototype.move = function (view, offset, event) {\n var candidate = this.clamp(viewOffset(view, offset));\n if (candidate === view) {\n return;\n }\n this.onViewChanged({ view: candidate }, event);\n };\n return BusViewService;\n}());\nexport { BusViewService };\n","import { normalizeYear } from './normalize-year';\n/**\n * A function that returns a `Date` object of the last year in a decade.\n *\n * @param date - The start date value.\n * @returns - The last year in a decade.\n *\n * @example\n * ```ts-no-run\n * lastYearOfDecade(new Date(2017, 0, 1)); // 2019-1-1\n * lastYearOfDecade(new Date(2007, 10, 22)); // 2009-11-22\n * lastYearOfDecade(new Date(2026, 0, 1)); // 2029-1-1\n * ```\n */\nexport var lastYearOfDecade = function (value) { return (normalizeYear(value, function (y) { return y - (y % 10) + 9; })); };\n","import { firstYearOfDecade } from './first-year-of-decade';\n/**\n * A function that calculates duration in decades between two `Date` objects.\n *\n * @param start - The start date value.\n * @param end - The end date value.\n * @returns - The duration in months.\n *\n * @example\n * ```ts-no-run\n * durationInDecades(new Date(2016, 0, 1), new Date(2136, 0, 1)); // 12\n * durationInDecades(new Date(2016, 0, 1), new Date(2016, 0, 1)); // 0\n * ```\n */\nexport var durationInDecades = function (start, end) { return ((firstYearOfDecade(end).getFullYear() - firstYearOfDecade(start).getFullYear()) / 10); };\n","import { addDays } from './add-days';\n/**\n * A function that adds and subtracts weeks from a Date object.\n *\n * @param date - The initial date value.\n * @param offset - The number of weeks to add/subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addWeeks(new Date(2016, 5, 1), 3); // 2016-6-22\n * addWeeks(new Date(2016, 5, 1), -3); // 2015-5-11\n * ```\n */\nexport var addWeeks = function (date, offset) {\n return addDays(date, offset * 7);\n};\n","import { createDate } from './create-date';\n/**\n * A function which returns the first date of the month.\n *\n * @param date - The initial date.\n * @returns - The first date of the initial date month.\n *\n * @example\n * ```ts-no-run\n * firstDayOfMonth(new Date(2016, 0, 15)); // 2016-01-01\n * ```\n */\nexport var firstDayOfMonth = function (date) {\n return createDate(date.getFullYear(), date.getMonth(), 1, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n};\n","/**\n * A function that calculates duration in months between two `Date` objects.\n *\n * @param start - The start date value.\n * @param end - The end date value.\n * @returns - The duration in months.\n *\n * @example\n * ```ts-no-run\n * durationInMonths(new Date(2016, 0, 1), new Date(2017, 0, 1)); // 12\n * durationInMonths(new Date(2016, 6, 1), new Date(2017, 0, 1)); // 6\n * durationInMonths(new Date(2016, 0, 1), new Date(2016, 0, 1)); // 0\n * ```\n */\nexport var durationInMonths = function (start, end) { return (((end.getFullYear() - start.getFullYear())) * 12 + (end.getMonth() - start.getMonth())); };\n","import { addMonths } from './add-months';\nimport { createDate } from './create-date';\nimport { lastDayOfMonth } from './last-day-of-month';\n/**\n * @hidden\n */\nexport var setMonth = function (value, month) {\n var day = value.getDate();\n var candidate = createDate(value.getFullYear(), month, day, value.getHours(), value.getMinutes(), value.getSeconds(), value.getMilliseconds());\n return candidate.getDate() === day ? candidate : lastDayOfMonth(addMonths(candidate, -1));\n};\n","import { setMonth } from './set-month';\n/**\n * A function that returns a `Date` object of the first month in a year.\n *\n * @param date - The start date value.\n * @returns - The first month in a year.\n *\n * @example\n * ```ts-no-run\n * firstMonthOfYear(new Date(2017, 11, 1)); // 2017-1-1\n * firstMonthOfYear(new Date(2017, 0, 1)); // 2017-1-1\n * ```\n */\nexport var firstMonthOfYear = function (value) { return setMonth(value, 0); };\n","import { setMonth } from './set-month';\n/**\n * A function that returns a `Date` object of the last month in a year.\n *\n * @param date - The start date value.\n * @returns - The last month in a year.\n *\n * @example\n * ```ts-no-run\n * lastMonthOfYear(new Date(2017, 5, 3)); // 2017-12-3\n * lastMonthOfYear(new Date(2017, 11, 3)); // 2017-12-3\n * ```\n */\nexport var lastMonthOfYear = function (value) { return setMonth(value, 11); };\n","/**\n * A function that calculates duration in years between two `Date` objects.\n *\n * @param start - The start date value.\n * @param end - The end date value.\n * @returns - The duration in years.\n *\n * @example\n * ```ts-no-run\n * durationInYears(new Date(2016, 0, 1), new Date(2028, 0, 1)); // 12\n * durationInYears(new Date(2016, 0, 1), new Date(2022, 0, 1)); // 6\n * durationInYears(new Date(2016, 0, 1), new Date(2016, 0, 1)); // 0\n * ```\n */\nexport var durationInYears = function (start, end) { return (end.getFullYear() - start.getFullYear()); };\n","import { Action } from '../models/NavigationAction';\nvar KEY_TO_ACTION = {\n '33': Action.PrevView,\n '34': Action.NextView,\n '35': Action.LastInView,\n '36': Action.FirstInView,\n '37': Action.Left,\n '38': Action.Up,\n '39': Action.Right,\n '40': Action.Down,\n 'meta+38': Action.UpperView,\n 'meta+40': Action.LowerView\n};\n/**\n * @hidden\n */\nvar NavigationService = /** @class */ (function () {\n function NavigationService(bus) {\n this.bus = bus;\n }\n NavigationService.prototype.action = function (event) {\n var action = \"\".concat(event.ctrlKey || event.metaKey ? 'meta+' : '').concat(event.keyCode);\n return KEY_TO_ACTION[action];\n };\n NavigationService.prototype.move = function (value, action, activeView, service, event) {\n if (!service) {\n return value;\n }\n if (action === Action.UpperView && this.bus.canMoveUp(activeView)) {\n this.bus.moveUp(activeView, event);\n return value;\n }\n if (action === Action.LowerView && this.bus.canMoveDown(activeView)) {\n this.bus.moveDown(activeView, event);\n return value;\n }\n return service.move(value, action);\n };\n return NavigationService;\n}());\nexport { NavigationService };\n","var divideByMagnitude = function (magnitude) { return function (x) { return Math.floor(x / magnitude); }; };\nvar powerByMagnitude = function (magnitude) { return function (x) { return x * magnitude; }; };\n/**\n * @hidden\n */\nvar ScrollSyncService = /** @class */ (function () {\n function ScrollSyncService(dom) {\n this.dom = dom;\n this.divideByMagnitude = null;\n this.powerByMagnitude = null;\n this.navigator = null;\n this.view = null;\n this.monthScrolled = false;\n this.navScrolled = false;\n }\n ScrollSyncService.prototype.configure = function (activeView) {\n var magnitude = Math.max(this.dom.viewHeight(activeView) / this.dom.navigationItemHeight, 1);\n this.divideByMagnitude = divideByMagnitude(magnitude);\n this.powerByMagnitude = powerByMagnitude(magnitude);\n };\n ScrollSyncService.prototype.sync = function (navigator, view, e) {\n if (!navigator || !view) {\n return;\n }\n this.navigator = navigator;\n this.view = view;\n if (e.target === this.navigator.element) {\n if (this.monthScrolled) {\n this.monthScrolled = false;\n return;\n }\n this.navScrolled = true;\n this.scrollSiblingOf(this.navigator.element);\n }\n if (e.target === this.view.element) {\n if (this.navScrolled) {\n this.navScrolled = false;\n return;\n }\n this.monthScrolled = true;\n this.scrollSiblingOf(this.view.element);\n }\n };\n ScrollSyncService.prototype.scrollSiblingOf = function (scrolledElement) {\n var component = this.siblingComponent(scrolledElement);\n var scrollTop = this.calculateScroll(component, scrolledElement.scrollTop);\n component.scrollTo(scrollTop);\n };\n ScrollSyncService.prototype.siblingComponent = function (scrollableElement) {\n return this.navigator.element === scrollableElement ? this.view : this.navigator;\n };\n ScrollSyncService.prototype.calculateScroll = function (component, scrollTop) {\n var modifier = component === this.navigator ? this.divideByMagnitude : this.powerByMagnitude;\n return modifier ? modifier(scrollTop) : 0;\n };\n return ScrollSyncService;\n}());\nexport { ScrollSyncService };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, guid, Keys, validatePackage, withPropsContext, createPropsContext, setScrollbarWidth } from '@progress/kendo-react-common';\nimport { cloneDate, getDate, isEqualDate } from '@progress/kendo-date-math';\nimport { provideIntlService, registerForIntl } from '@progress/kendo-react-intl';\nimport { packageMetadata } from '../../package-metadata';\nimport { ViewList } from './ViewList';\nimport { Navigation } from './Navigation';\nimport { CalendarViewEnum } from '../models';\nimport { getToday, dateInRange, isInRange, viewInRange, MIN_DATE, MAX_DATE } from '../../utils';\nimport { BusViewService, DOMService, ScrollSyncService, NavigationService } from '../services';\nvar virtualizationProp = function (x) { return x ? x.virtualization : null; };\nvar calculateValue = function (min, max, stateValue, propValue) {\n if (min === void 0) { min = CalendarWithoutContext.defaultProps.min; }\n if (max === void 0) { max = CalendarWithoutContext.defaultProps.max; }\n return propValue !== undefined\n ? propValue !== null && isInRange(getDate(propValue), min, max)\n ? propValue\n : null\n : stateValue !== null && isInRange(getDate(stateValue), min, max)\n ? stateValue\n : null;\n};\n/** @hidden */\nvar CalendarWithoutContext = /** @class */ (function (_super) {\n __extends(CalendarWithoutContext, _super);\n function CalendarWithoutContext(props) {\n var _this = _super.call(this, props) || this;\n _this.scrollSyncService = null;\n _this.focusedDate = null;\n _this.cellUID = guid();\n _this.id = guid();\n _this.Navigation = null;\n _this.calendarViewList = null;\n _this._element = null;\n _this.intl = null;\n _this.service = null;\n _this.isActive = false;\n _this.didNavigationChange = false;\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this._element) {\n _this._element.focus();\n }\n };\n _this.shouldScroll = function () { return _this.didNavigationChange; };\n _this.handleScroll = function (event) {\n if (!_this.scrollSyncService) {\n return;\n }\n _this.scrollSyncService.sync(virtualizationProp(_this.Navigation), virtualizationProp(_this.calendarViewList), event);\n };\n _this.handleNavigationChange = function (event) {\n if (_this.props.disabled) {\n return;\n }\n _this.didNavigationChange = true;\n var focusedDate = cloneDate(event.value);\n _this.setState({ focusedDate: focusedDate });\n };\n _this.handleViewChange = function (_a) {\n var view = _a.view;\n if (_this.scrollSyncService) {\n _this.scrollSyncService.configure(view);\n }\n _this.setState({ activeView: view });\n };\n _this.handleDateChange = function (event) {\n var value = cloneDate(event.value);\n var focusedDate = cloneDate(event.value);\n var canNavigateDown = _this.bus.canMoveDown(_this.state.activeView);\n if (_this.props.disabled) {\n return;\n }\n if (canNavigateDown) {\n if (event.isTodayClick) {\n _this.bus.moveToBottom(_this.state.activeView);\n }\n else {\n _this.bus.moveDown(_this.state.activeView, event.syntheticEvent);\n _this.setState({ focusedDate: focusedDate });\n return;\n }\n }\n _this.setState({ value: value, focusedDate: focusedDate });\n _this.valueDuringOnChange = value;\n var onChange = _this.props.onChange;\n if (onChange) {\n var args = {\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n value: value,\n target: _this\n };\n onChange.call(undefined, args);\n }\n _this.valueDuringOnChange = undefined;\n };\n _this.handleFocus = function (event) {\n _this.isActive = true;\n if (!_this.calendarViewList) {\n return;\n }\n _this.calendarViewList.focusActiveDate();\n var onFocus = _this.props.onFocus;\n if (onFocus) {\n onFocus.call(undefined, event);\n }\n };\n _this.handleBlur = function (event) {\n _this.isActive = false;\n if (!_this.calendarViewList) {\n return;\n }\n _this.calendarViewList.blurActiveDate();\n var onBlur = _this.props.onBlur;\n if (onBlur) {\n onBlur.call(undefined, event);\n }\n };\n _this.handleKeyDown = function (event) {\n var keyCode = event.keyCode;\n if (!_this.focusedDate || !_this.service) {\n return;\n }\n if (keyCode === Keys.enter) {\n if (_this.value !== null\n && isEqualDate(_this.focusedDate, _this.value)) {\n var viewDate = dateInRange(_this.focusedDate, _this.min, _this.max);\n virtualizationProp(_this.calendarViewList).scrollToIndex(_this.service.skip(viewDate, _this.min));\n }\n var args = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n value: _this.focusedDate,\n target: _this\n };\n _this.handleDateChange(args);\n }\n else {\n var candidate = dateInRange(_this.navigation.move(_this.focusedDate, _this.navigation.action(event), _this.state.activeView, _this.service, event), _this.min, _this.max);\n if (isEqualDate(_this.focusedDate, candidate)) {\n return;\n }\n _this.setState({ focusedDate: candidate });\n }\n event.preventDefault();\n };\n _this.handleMouseDown = function (event) {\n event.preventDefault();\n };\n _this.handleClick = function (_) {\n if (_this._element) {\n _this._element.focus({ preventScroll: true });\n }\n };\n validatePackage(packageMetadata);\n var value = calculateValue(_this.min, _this.max, _this.props.defaultValue || CalendarWithoutContext.defaultProps.defaultValue, _this.props.value);\n _this.state = {\n value: value,\n activeView: viewInRange(CalendarViewEnum[props.defaultActiveView], _this.bottomView, _this.topView),\n focusedDate: dateInRange(props.focusedDate\n || value\n || getToday(), _this.min, _this.max)\n };\n _this.dom = new DOMService();\n _this.bus = new BusViewService(_this.handleViewChange);\n _this.navigation = new NavigationService(_this.bus);\n _this.oldValue = value;\n return _this;\n }\n Object.defineProperty(CalendarWithoutContext.prototype, \"element\", {\n /**\n * Gets the wrapping element of the Calendar.\n */\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CalendarWithoutContext.prototype, \"value\", {\n /**\n * Gets the value of the Calendar.\n */\n get: function () {\n return this.valueDuringOnChange !== undefined\n ? this.valueDuringOnChange\n : this.props.value !== undefined\n ? this.props.value\n : this.state.value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CalendarWithoutContext.prototype, \"min\", {\n get: function () {\n return getDate(this.props.min !== undefined\n ? this.props.min\n : CalendarWithoutContext.defaultProps.min);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CalendarWithoutContext.prototype, \"max\", {\n get: function () {\n return getDate(this.props.max !== undefined\n ? this.props.max\n : CalendarWithoutContext.defaultProps.max);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CalendarWithoutContext.prototype, \"bottomView\", {\n get: function () {\n return CalendarViewEnum[this.props.bottomView !== undefined\n ? this.props.bottomView\n : CalendarWithoutContext.defaultProps.bottomView];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CalendarWithoutContext.prototype, \"topView\", {\n get: function () {\n return CalendarViewEnum[this.props.topView !== undefined\n ? this.props.topView\n : CalendarWithoutContext.defaultProps.topView];\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n CalendarWithoutContext.prototype.componentDidMount = function () {\n var _this = this;\n // Async calculation of height to avoid animation cancellation\n Promise.resolve().then(function () {\n setScrollbarWidth();\n if (!_this._element) {\n return;\n }\n _this.dom.calculateHeights(_this._element);\n _this.scrollSyncService = new ScrollSyncService(_this.dom);\n _this.scrollSyncService.configure(_this.state.activeView);\n _this.forceUpdate();\n });\n };\n /**\n * @hidden\n */\n CalendarWithoutContext.prototype.componentDidUpdate = function (_, prevState) {\n setScrollbarWidth();\n if (prevState.activeView !== this.state.activeView && this.scrollSyncService) {\n this.scrollSyncService.configure(this.state.activeView);\n }\n if (this.calendarViewList) {\n (this.isActive ? this.calendarViewList.focusActiveDate : this.calendarViewList.blurActiveDate)();\n }\n this.didNavigationChange = false;\n this.oldValue = this.value;\n };\n /**\n * @hidden\n */\n CalendarWithoutContext.prototype.render = function () {\n var _this = this;\n if (this.props._ref) {\n this.props._ref(this);\n }\n var didValueChange = this.value !== null && this.oldValue !== null\n ? !isEqualDate(this.value, this.oldValue)\n : this.value !== this.oldValue;\n var activeView = viewInRange(this.state.activeView, CalendarViewEnum[this.props.bottomView !== undefined\n ? this.props.bottomView\n : CalendarWithoutContext.defaultProps.bottomView], CalendarViewEnum[this.props.topView !== undefined\n ? this.props.topView\n : CalendarWithoutContext.defaultProps.topView]);\n var value = calculateValue(this.min, this.max, this.value, this.value);\n var sanitizedValue = value ? getDate(value) : null;\n this.focusedDate = getDate(dateInRange(didValueChange && value !== null\n ? value\n : this.state.focusedDate, this.min, this.max));\n this.intl = provideIntlService(this);\n this.bus.configure(this.bottomView, this.topView);\n this.service = this.bus.service(activeView, this.intl);\n var _a = this.props.smoothScroll, smoothScroll = _a === void 0 ? Number.parseFloat(React.version) < 18 : _a;\n var rootClassNames = classNames('k-widget k-calendar k-calendar-infinite', {\n 'k-disabled': this.props.disabled,\n 'k-week-number': this.props.weekNumber,\n 'k-calendar-lg': this.props.mobileMode\n }, this.props.className);\n var calendarBody = [this.props.navigation && (React.createElement(Navigation, { key: 0, ref: function (el) { _this.Navigation = el; }, activeView: this.state.activeView, focusedDate: this.focusedDate, min: this.min, max: this.max, onScroll: this.handleScroll, onChange: this.handleNavigationChange, service: this.service, dom: this.dom, navigationItem: this.props.navigationItem, tabIndex: this.props.tabIndex })), (React.createElement(ViewList, { key: 1, ref: function (el) { _this.calendarViewList = el; }, activeView: this.state.activeView, focusedDate: this.focusedDate, min: this.min, max: this.max, bus: this.bus, shouldScroll: this.shouldScroll, onScroll: this.handleScroll, service: this.service, cell: this.props.cell, weekCell: this.props.weekCell, dom: this.dom, smoothScroll: smoothScroll, showWeekNumbers: this.props.weekNumber, onChange: this.handleDateChange, value: sanitizedValue, cellUID: this.cellUID, headerTitle: this.props.headerTitle, tabIndex: this.props.tabIndex }))];\n return (React.createElement(\"div\", { ref: function (el) { _this._element = el; }, className: rootClassNames, id: this.props.id || this.id, \"aria-labelledby\": this.props.ariaLabelledBy, \"aria-describedby\": this.props.ariaDescribedBy, \"aria-disabled\": this.props.disabled, tabIndex: !this.props.disabled ? this.props.tabIndex || 0 : undefined, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, onMouseDown: this.handleMouseDown, onClick: this.handleClick }, calendarBody));\n };\n /**\n * @hidden\n */\n CalendarWithoutContext.displayName = 'Calendar';\n /**\n * @hidden\n */\n CalendarWithoutContext.propTypes = {\n className: PropTypes.string,\n defaultActiveView: PropTypes.oneOf(['month', 'year', 'decade', 'century']),\n defaultValue: PropTypes.instanceOf(Date),\n disabled: PropTypes.bool,\n focusedDate: PropTypes.instanceOf(Date),\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n max: PropTypes.instanceOf(Date),\n min: PropTypes.instanceOf(Date),\n navigation: PropTypes.bool,\n smoothScroll: PropTypes.bool,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n tabIndex: PropTypes.number,\n value: PropTypes.instanceOf(Date),\n weekNumber: PropTypes.bool,\n topView: function (props, propName, componentName) {\n var prop = props[propName];\n var bottomView = props.bottomView;\n if (prop && bottomView && CalendarViewEnum[prop] < CalendarViewEnum[bottomView]) {\n return new Error(\"Invalid prop + \".concat(propName, \" suplied to \").concat(componentName, \".\\n \").concat(propName, \" can not be smaller than bottomView.\\n \"));\n }\n return null;\n },\n bottomView: function (props, propName, componentName) {\n var prop = props[propName];\n var topView = props.topView;\n if (prop && topView && CalendarViewEnum[prop] > CalendarViewEnum[topView]) {\n return new Error(\"Invalid prop + \".concat(propName, \" suplied to \").concat(componentName, \".\\n \").concat(propName, \" can not be bigger than topView.\\n \"));\n }\n return null;\n }\n };\n /**\n * @hidden\n */\n CalendarWithoutContext.defaultProps = {\n disabled: false,\n min: MIN_DATE,\n max: MAX_DATE,\n navigation: true,\n defaultActiveView: 'month',\n defaultValue: null,\n topView: 'century',\n bottomView: 'month'\n };\n return CalendarWithoutContext;\n}(React.Component));\nexport { CalendarWithoutContext };\n/**\n * Represents the PropsContext of the `Calendar` component.\n * Used for global configuration of all `Calendar` instances.\n *\n * For more information, refer to the [DateInputs Props Context]({% slug props-context_dateinputs %}) article.\n */\nexport var CalendarPropsContext = createPropsContext();\n/* eslint-disable @typescript-eslint/no-redeclare -- intentionally naming the component the same as the type */\n/**\n * Represents the KendoReact Calendar Component.\n *\n * Accepts properties of type [CalendarProps]({% slug api_dateinputs_calendarprops %}).\n * Obtaining the `ref` returns an object of type [CalendarHandle]({% slug api_dateinputs_calendarhandle %}).\n */\nexport var Calendar = withPropsContext(CalendarPropsContext, CalendarWithoutContext);\nCalendar.displayName = 'KendoReactCalendar';\nregisterForIntl(CalendarWithoutContext);\n","import { Button } from '@progress/kendo-react-buttons';\n/**\n * Represents the default `toggleButton` component rendered by the [KendoReact Scheduler DatePicker]({% slug overview_datepicker %}).\n */\nexport var ToggleButton = Button;\n","import * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * @hidden\n * @deprecated\n */\nexport var PickerWrap = React.forwardRef(function (props, ref) {\n var _ref = props._ref;\n var element = React.useRef(null);\n React.useImperativeHandle(ref, function () { return element.current; });\n React.useImperativeHandle(_ref, function () { return element.current; });\n var className = React.useMemo(function () { return classNames(props.className, 'k-picker-wrap'); }, [props.className]);\n return (React.createElement(\"span\", { ref: element, id: props.id, style: props.style, className: className, tabIndex: props.tabIndex }, props.children));\n});\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\n/**\n * @hidden\n */\nexport var usePickerFloatingLabel = function (dateInput) {\n var _a = React.useState(false), show = _a[0], setShow = _a[1];\n var syncText = function () {\n if (dateInput.current) {\n setShow(Boolean(dateInput.current.text));\n }\n };\n React.useEffect(syncText);\n return {\n editorValue: show\n };\n};\n/**\n * @hidden\n */\nexport var PickerFloatingLabel = function (props) {\n var floatingLabelProps = usePickerFloatingLabel(props.dateInput);\n return (React.createElement(FloatingLabel, __assign({}, props, floatingLabelProps)));\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { ActionSheet, ActionSheetFooter, ActionSheetHeader } from '@progress/kendo-react-layout';\nimport { xIcon } from '@progress/kendo-svg-icons';\nimport { Button } from '@progress/kendo-react-buttons';\n/** @hidden */\nvar MOBILE_SMALL_DEVISE = 500;\n/** @hidden */\nexport var AdaptiveMode = function (props) {\n var footer = props.footer, children = props.children, _a = props.windowWidth, windowWidth = _a === void 0 ? 0 : _a, navigatable = props.navigatable, navigatableElements = props.navigatableElements, expand = props.expand, animation = props.animation, onClose = props.onClose, adaptiveTitle = props.adaptiveTitle, mobileFilter = props.mobileFilter;\n var defaultProps = {\n navigatable: navigatable || false,\n navigatableElements: navigatableElements || [],\n expand: expand,\n animation: animation === false ? false : true,\n onClose: onClose,\n animationStyles: windowWidth <= MOBILE_SMALL_DEVISE ? { top: 0, width: '100%', height: '100%' } : undefined,\n className: windowWidth <= MOBILE_SMALL_DEVISE\n ? 'k-adaptive-actionsheet k-actionsheet-fullscreen'\n : 'k-adaptive-actionsheet k-actionsheet-bottom'\n };\n return (React.createElement(ActionSheet, __assign({}, defaultProps),\n React.createElement(ActionSheetHeader, { className: 'k-text-center' },\n React.createElement(\"div\", { className: \"k-actionsheet-titlebar-group k-hbox\" },\n React.createElement(\"div\", { className: \"k-actionsheet-title\" },\n React.createElement(\"div\", null, adaptiveTitle)),\n React.createElement(\"div\", { className: \"k-actionsheet-actions\" },\n React.createElement(Button, { tabIndex: 0, \"aria-label\": \"Cancel\", \"aria-disabled\": \"false\", type: \"button\", fillMode: \"flat\", icon: 'x', svgIcon: xIcon, onClick: onClose }))),\n mobileFilter &&\n React.createElement(\"div\", { className: \"k-actionsheet-titlebar-group k-actionsheet-filter\" }, mobileFilter)),\n children,\n footer && React.createElement(ActionSheetFooter, { className: 'k-actions k-actions-stretched' },\n React.createElement(Button, { size: \"large\", tabIndex: 0, \"aria-label\": footer.cancelText, \"aria-disabled\": \"false\", type: \"button\", onClick: footer.onCancel }, footer.cancelText),\n React.createElement(Button, { tabIndex: 0, themeColor: \"primary\", size: \"large\", \"aria-label\": footer.applyText, \"aria-disabled\": \"false\", type: \"button\", onClick: footer.onApply }, footer.applyText))));\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Popup } from '@progress/kendo-react-popup';\nimport { getDate, cloneDate } from '@progress/kendo-date-math';\nimport { classNames, guid, Keys, AsyncFocusBlur, createPropsContext, withPropsContext, validatePackage, kendoThemeMaps, canUseDOM } from '@progress/kendo-react-common';\nimport { calendarIcon } from '@progress/kendo-svg-icons';\nimport { packageMetadata } from '../package-metadata';\nimport { DateInput } from '../dateinput/DateInput';\nimport { Calendar } from '../calendar/components/Calendar';\nimport { MIN_DATE, MAX_DATE, setTime } from '../utils';\nimport { isInDateRange } from '../utils';\nimport { messages, toggleCalendar } from '../messages';\nimport { registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { ToggleButton } from './ToggleButton';\nimport { PickerWrap } from '../common/PickerWrap';\nimport { PickerFloatingLabel } from '../hooks/usePickerFloatingLabel';\nimport { ActionSheetContent } from '@progress/kendo-react-layout';\nimport { AdaptiveMode } from '../common/AdaptiveMode';\nimport { MOBILE_MEDIUM_DEVISE } from '../common/constants';\n/** @hidden */\nvar DatePickerWithoutContext = /** @class */ (function (_super) {\n __extends(DatePickerWithoutContext, _super);\n function DatePickerWithoutContext(props) {\n var _this = _super.call(this, props) || this;\n _this._popupId = guid();\n _this._element = null;\n _this._dateInput = React.createRef();\n _this._calendar = null;\n _this.shouldFocusDateInput = false;\n _this.prevShow = false;\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this.dateInput) {\n _this.dateInput.focus();\n }\n };\n _this.setCalendarRef = function (calendar) {\n _this._calendar = calendar;\n };\n _this.nextValue = function (nextProps, nextState) {\n return nextProps.value !== undefined\n ? nextProps.value\n : nextState.value;\n };\n _this.nextShow = function (nextProps, nextState) {\n return nextProps.show !== undefined\n ? nextProps.show\n : nextState.show;\n };\n _this.renderPopup = function () {\n var _a = _this.props, disabled = _a.disabled, min = _a.min, max = _a.max, weekNumber = _a.weekNumber, focusedDate = _a.focusedDate;\n var _b = _this.props.popupSettings, popupClass = _b.popupClass, otherPopupSettings = __rest(_b, [\"popupClass\"]);\n var show = _this.show;\n var value = _this.value;\n var sanitizedValue = value && getDate(value);\n var popupClassNames = classNames('k-calendar-container k-group k-reset', popupClass);\n var popupProps = __assign({ popupClass: 'k-datepicker-popup', show: show, anchor: _this._element, className: popupClassNames, id: _this._popupId, anchorAlign: {\n horizontal: 'left',\n vertical: 'bottom'\n }, popupAlign: {\n horizontal: 'left',\n vertical: 'top'\n } }, otherPopupSettings);\n var calendarProps = {\n disabled: disabled,\n value: sanitizedValue,\n min: min,\n max: max,\n weekNumber: weekNumber,\n focusedDate: focusedDate,\n className: _this.mobileMode ? 'k-calendar-lg' : '',\n navigation: _this.mobileMode ? false : true,\n onChange: _this.handleCalendarValueChange\n };\n if (_this.mobileMode) {\n return React.createElement(_this.calendarComp, __assign({ _ref: _this.setCalendarRef }, calendarProps));\n }\n return (React.createElement(_this.popupComp, __assign({}, popupProps),\n React.createElement(_this.calendarComp, __assign({ _ref: _this.setCalendarRef }, calendarProps))));\n };\n _this.renderAdaptivePopup = function () {\n var _a = _this.state.windowWidth, windowWidth = _a === void 0 ? 0 : _a;\n var actionSheetProps = {\n expand: _this.show,\n onClose: _this.handleBlur,\n adaptiveTitle: _this.props.adaptiveTitle,\n windowWidth: windowWidth\n };\n return (React.createElement(AdaptiveMode, __assign({}, actionSheetProps),\n React.createElement(ActionSheetContent, { className: '!k-overflow-hidden' }, _this.renderPopup())));\n };\n _this.handleInputValueChange = function (event) {\n _this.handleValueChange(event.value, event);\n };\n _this.handleCalendarValueChange = function (event) {\n var value = _this.mergeTime(event.value);\n _this.handleValueChange(value, event);\n };\n _this.handleValueChange = function (value, event) {\n _this.setState({\n value: cloneDate(value || undefined)\n });\n _this.valueDuringOnChange = value;\n _this.showDuringOnChange = false;\n if (!_this.mobileMode) {\n _this.shouldFocusDateInput = true;\n }\n var onChange = _this.props.onChange;\n if (onChange) {\n onChange.call(undefined, {\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n value: _this.value,\n show: _this.show,\n target: _this\n });\n }\n _this.valueDuringOnChange = undefined;\n _this.showDuringOnChange = undefined;\n _this.setShow(false);\n };\n _this.handleFocus = function () {\n _this.setState({ focused: true });\n };\n _this.handleBlur = function () {\n _this.setState({ focused: false });\n _this.setShow(false);\n };\n _this.handleIconClick = function () {\n if (_this.props.disabled) {\n return;\n }\n _this.shouldFocusDateInput = true;\n _this.setShow(!_this.show);\n };\n _this.handleIconMouseDown = function (event) {\n event.preventDefault();\n };\n _this.handleKeyDown = function (event) {\n var altKey = event.altKey, keyCode = event.keyCode;\n if (keyCode === Keys.esc) {\n _this.shouldFocusDateInput = true;\n _this.setShow(false);\n return;\n }\n if (altKey && (keyCode === Keys.up || keyCode === Keys.down)) {\n event.preventDefault();\n event.stopPropagation();\n _this.shouldFocusDateInput = keyCode === Keys.up;\n _this.setShow(keyCode === Keys.down);\n }\n };\n validatePackage(packageMetadata);\n _this.state = {\n value: _this.props.defaultValue || DatePickerWithoutContext.defaultProps.defaultValue,\n show: _this.props.defaultShow || DatePickerWithoutContext.defaultProps.defaultShow,\n focused: false\n };\n return _this;\n }\n Object.defineProperty(DatePickerWithoutContext.prototype, \"document\", {\n get: function () {\n if (!canUseDOM) {\n return;\n }\n // useful only for user actions\n return (this.element && this.element.ownerDocument) || document;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"element\", {\n /**\n * Gets the wrapping element of the DatePickerWithoutContext.\n */\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"mobileMode\", {\n /**\n * The mobile mode of the DatePicker.\n */\n get: function () {\n var isAdaptive = this.state.windowWidth && this.state.windowWidth <= MOBILE_MEDIUM_DEVISE && this.props.adaptive;\n return !!isAdaptive;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"dateInput\", {\n /**\n * Gets the DateInput component inside the DatePicker component.\n */\n get: function () {\n return this._dateInput.current;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"calendar\", {\n /**\n * Gets the Calendar component inside the DatePicker component.\n */\n get: function () {\n return this._calendar;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"value\", {\n /**\n * Gets the value of the DatePickerWithoutContext.\n */\n get: function () {\n var value = this.valueDuringOnChange !== undefined\n ? this.valueDuringOnChange\n : this.props.value !== undefined\n ? this.props.value\n : this.state.value;\n return (value !== null) ? cloneDate(value) : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"show\", {\n /**\n * Gets the popup state of the DatePickerWithoutContext.\n */\n get: function () {\n return this.showDuringOnChange !== undefined\n ? this.showDuringOnChange\n : this.props.show !== undefined\n ? this.props.show\n : this.state.show;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"name\", {\n /**\n * Gets the `name` property of the DatePickerWithoutContext.\n */\n get: function () {\n return this.props.name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"min\", {\n get: function () {\n return this.props.min !== undefined\n ? this.props.min\n : DatePickerWithoutContext.defaultProps.min;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"max\", {\n get: function () {\n return this.props.max !== undefined\n ? this.props.max\n : DatePickerWithoutContext.defaultProps.max;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"dateInputComp\", {\n get: function () {\n return this.props.dateInput || DatePickerWithoutContext.defaultProps.dateInput;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"toggleButtonComp\", {\n get: function () {\n return this.props.toggleButton || DatePickerWithoutContext.defaultProps.toggleButton;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"calendarComp\", {\n get: function () {\n return this.props.calendar || DatePickerWithoutContext.defaultProps.calendar;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"popupComp\", {\n get: function () {\n return this.props.popup || DatePickerWithoutContext.defaultProps.popup;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"pickerWrapComp\", {\n get: function () {\n return this.props.pickerWrap || DatePickerWithoutContext.defaultProps.pickerWrap;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"validity\", {\n /**\n * Represents the validity state into which the DatePicker is set.\n */\n get: function () {\n var inRange = isInDateRange(this.value, this.min, this.max);\n var customError = this.props.validationMessage !== undefined;\n var isValid = (!this.required || this.value !== null) && inRange;\n var valid = this.props.valid !== undefined ? this.props.valid : isValid;\n return {\n customError: customError,\n rangeOverflow: (this.value && this.max.getTime() < this.value.getTime()) || false,\n rangeUnderflow: (this.value && this.value.getTime() < this.min.getTime()) || false,\n valid: valid,\n valueMissing: this.value === null\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"validityStyles\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.validityStyles !== undefined\n ? this.props.validityStyles\n : DatePickerWithoutContext.defaultProps.validityStyles;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"required\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.required !== undefined\n ? this.props.required\n : DatePickerWithoutContext.defaultProps.required;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n DatePickerWithoutContext.prototype.componentDidMount = function () {\n var _a;\n this.observerResize = canUseDOM && window.ResizeObserver && new window.ResizeObserver(this.calculateMedia.bind(this));\n if (this.show) {\n // If defaultShow is true during the initial render, the popup is not aligned.\n this.forceUpdate();\n }\n if (((_a = this.document) === null || _a === void 0 ? void 0 : _a.body) && this.observerResize) {\n this.observerResize.observe(this.document.body);\n }\n };\n /**\n * @hidden\n */\n DatePickerWithoutContext.prototype.componentDidUpdate = function () {\n if (this._calendar && this._calendar.element && this.show && !this.prevShow) {\n this._calendar.element.focus({ preventScroll: true });\n }\n if (this.dateInput\n && this.dateInput.element\n && !this.show\n && this.shouldFocusDateInput) {\n this.dateInput.element.focus({ preventScroll: true });\n }\n this.prevShow = this.show;\n this.shouldFocusDateInput = false;\n };\n /**\n * @hidden\n */\n DatePickerWithoutContext.prototype.componentWillUnmount = function () {\n var _a;\n clearTimeout(this.nextTickId);\n if (((_a = this.document) === null || _a === void 0 ? void 0 : _a.body) && this.observerResize) {\n this.observerResize.disconnect();\n }\n };\n /**\n * @hidden\n */\n DatePickerWithoutContext.prototype.render = function () {\n var _this = this;\n var _a = this.props, _b = _a.size, size = _b === void 0 ? DatePickerWithoutContext.defaultProps.size : _b, _c = _a.rounded, rounded = _c === void 0 ? DatePickerWithoutContext.defaultProps.rounded : _c, _d = _a.fillMode, fillMode = _d === void 0 ? DatePickerWithoutContext.defaultProps.fillMode : _d, disabled = _a.disabled, tabIndex = _a.tabIndex, title = _a.title, id = _a.id, format = _a.format, formatPlaceholder = _a.formatPlaceholder, min = _a.min, max = _a.max, className = _a.className, width = _a.width, name = _a.name, validationMessage = _a.validationMessage, required = _a.required, validityStyles = _a.validityStyles, ariaLabelledBy = _a.ariaLabelledBy, ariaDescribedBy = _a.ariaDescribedBy, ariaLabel = _a.ariaLabel;\n var show = this.show;\n var value = this.value;\n var isValid = !this.validityStyles || this.validity.valid;\n var dateInputProps = {\n disabled: disabled,\n format: format,\n formatPlaceholder: formatPlaceholder,\n id: id,\n ariaLabelledBy: ariaLabelledBy,\n ariaDescribedBy: ariaDescribedBy,\n ariaLabel: ariaLabel,\n max: max,\n min: min,\n name: name,\n onChange: this.handleInputValueChange,\n required: required,\n tabIndex: !show ? tabIndex : -1,\n title: title,\n valid: this.validity.valid,\n validationMessage: validationMessage,\n validityStyles: validityStyles,\n value: value,\n label: undefined,\n placeholder: !this.state.focused ? this.props.placeholder : null,\n ariaExpanded: this.show,\n size: null,\n fillMode: null,\n rounded: null\n };\n var toggleButtonTitle = provideLocalizationService(this)\n .toLanguageString(toggleCalendar, messages[toggleCalendar]);\n var datepicker = (React.createElement(AsyncFocusBlur, { onFocus: this.handleFocus, onBlur: this.mobileMode ? undefined : this.handleBlur, onSyncBlur: this.props.onBlur, onSyncFocus: this.props.onFocus }, function (_a) {\n var _b;\n var onFocus = _a.onFocus, onBlur = _a.onBlur;\n return (React.createElement(React.Fragment, null,\n React.createElement(\"span\", { ref: function (span) { _this._element = span; }, className: classNames('k-input', 'k-datepicker', (_b = {},\n _b[\"k-input-\".concat(kendoThemeMaps.sizeMap[size] || size)] = size,\n _b[\"k-rounded-\".concat(kendoThemeMaps.roundedMap[rounded] || rounded)] = rounded,\n _b[\"k-input-\".concat(fillMode)] = fillMode,\n _b['k-invalid'] = !isValid,\n _b['k-required'] = _this.required,\n _b['k-disabled'] = _this.props.disabled,\n _b), className), onKeyDown: _this.handleKeyDown, style: { width: width }, onFocus: onFocus, onBlur: onBlur, onClick: _this.mobileMode ? _this.handleIconClick : undefined },\n React.createElement(_this.dateInputComp, __assign({ _ref: _this._dateInput, ariaRole: 'combobox', readonly: _this.mobileMode, ariaExpanded: _this.show, ariaControls: _this._popupId }, dateInputProps)),\n React.createElement(_this.toggleButtonComp, { type: \"button\", icon: \"calendar\", svgIcon: calendarIcon, title: toggleButtonTitle, className: \"k-input-button\", rounded: null, onClick: _this.mobileMode ? undefined : _this.handleIconClick, \"aria-label\": toggleButtonTitle, onMouseDown: _this.handleIconMouseDown }),\n !_this.mobileMode && _this.renderPopup()),\n _this.mobileMode && _this.renderAdaptivePopup()));\n }));\n return this.props.label\n ? (React.createElement(PickerFloatingLabel, { dateInput: this._dateInput, label: this.props.label, editorId: id, editorValid: isValid, editorDisabled: this.props.disabled, children: datepicker, style: { width: this.props.width } }))\n : datepicker;\n };\n DatePickerWithoutContext.prototype.setShow = function (show) {\n var _a = this.props, onOpen = _a.onOpen, onClose = _a.onClose;\n if (this.show === show) {\n return;\n }\n this.setState({ show: show });\n if (show && onOpen) {\n onOpen.call(undefined, {\n target: this\n });\n }\n if (!show && onClose) {\n onClose.call(undefined, {\n target: this\n });\n }\n };\n DatePickerWithoutContext.prototype.mergeTime = function (value) {\n return this.value && value ? setTime(value, this.value) : value;\n };\n DatePickerWithoutContext.prototype.nextTick = function (f) {\n // XXX: use window.setTimeout due to async focus/blur events in IE, and missing relatedTarget prop.\n // XXX: https://github.com/facebook/react/issues/3751\n // Handles multiple focus events happening at the same time.\n clearTimeout(this.nextTickId);\n this.nextTickId = window.setTimeout(function () { return f(); });\n };\n DatePickerWithoutContext.prototype.calculateMedia = function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n this.setState({ windowWidth: entry.target.clientWidth });\n }\n ;\n };\n ;\n /**\n * @hidden\n */\n DatePickerWithoutContext.displayName = 'DatePicker';\n /**\n * @hidden\n */\n DatePickerWithoutContext.propTypes = {\n className: PropTypes.string,\n defaultShow: PropTypes.bool,\n defaultValue: PropTypes.instanceOf(Date),\n disabled: PropTypes.bool,\n focusedDate: PropTypes.instanceOf(Date),\n format: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n skeleton: PropTypes.string,\n pattern: PropTypes.string,\n date: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n time: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n datetime: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n era: PropTypes.oneOf(['narrow', 'short', 'long']),\n year: PropTypes.oneOf(['numeric', '2-digit']),\n month: PropTypes.oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day: PropTypes.oneOf(['numeric', '2-digit']),\n weekday: PropTypes.oneOf(['narrow', 'short', 'long']),\n hour: PropTypes.oneOf(['numeric', '2-digit']),\n hour12: PropTypes.bool,\n minute: PropTypes.oneOf(['numeric', '2-digit']),\n second: PropTypes.oneOf(['numeric', '2-digit']),\n timeZoneName: PropTypes.oneOf(['short', 'long'])\n })\n ]),\n formatPlaceholder: PropTypes.oneOfType([\n PropTypes.oneOf(['wide', 'narrow', 'short', 'formatPattern']),\n PropTypes.shape({\n year: PropTypes.string,\n month: PropTypes.string,\n day: PropTypes.string,\n hour: PropTypes.string,\n minute: PropTypes.string,\n second: PropTypes.string\n })\n ]),\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n ariaLabel: PropTypes.string,\n min: PropTypes.instanceOf(Date),\n max: PropTypes.instanceOf(Date),\n name: PropTypes.string,\n popupSettings: PropTypes.shape({\n animate: PropTypes.bool,\n appendTo: PropTypes.any,\n popupClass: PropTypes.string\n }),\n show: PropTypes.bool,\n tabIndex: PropTypes.number,\n title: PropTypes.string,\n value: PropTypes.instanceOf(Date),\n weekNumber: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n validationMessage: PropTypes.string,\n required: PropTypes.bool,\n validate: PropTypes.bool,\n valid: PropTypes.bool,\n size: PropTypes.oneOf([null, 'small', 'medium', 'large']),\n rounded: PropTypes.oneOf([null, 'small', 'medium', 'large', 'full']),\n fillMode: PropTypes.oneOf([null, 'solid', 'flat', 'outline']),\n adaptive: PropTypes.bool,\n adaptiveTitle: PropTypes.string\n };\n /**\n * @hidden\n */\n DatePickerWithoutContext.defaultProps = {\n defaultShow: false,\n defaultValue: null,\n dateInput: DateInput,\n calendar: Calendar,\n toggleButton: ToggleButton,\n popup: Popup,\n pickerWrap: PickerWrap,\n disabled: false,\n format: 'd',\n max: MAX_DATE,\n min: MIN_DATE,\n popupSettings: {},\n tabIndex: 0,\n weekNumber: false,\n required: false,\n validityStyles: true,\n size: 'medium',\n rounded: 'medium',\n fillMode: 'solid'\n };\n return DatePickerWithoutContext;\n}(React.Component));\nexport { DatePickerWithoutContext };\n/**\n * Represents the PropsContext of the `DatePicker` component.\n * Used for global configuration of all `DatePicker` instances.\n *\n * For more information, refer to the [DateInputs Props Context]({% slug props-context_dateinputs %}) article.\n */\nexport var DatePickerPropsContext = createPropsContext();\n/* eslint-disable @typescript-eslint/no-redeclare */\n/**\n * Represents the KendoReact DatePicker Component.\n *\n * Accepts properties of type [DatePickerProps]({% slug api_dateinputs_datepickerprops %}).\n * Obtaining the `ref` returns an object of type [DatePickerHandle]({% slug api_dateinputs_datepickerhandle %}).\n */\nexport var DatePicker = withPropsContext(DatePickerPropsContext, DatePickerWithoutContext);\nDatePicker.displayName = 'KendoReactDatePicker';\nregisterForLocalization(DatePickerWithoutContext);\n","/** @hidden */\nexport var MOBILE_SMALL_DEVISE = 500;\n/** @hidden */\nexport var MOBILE_MEDIUM_DEVISE = 768;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\nimport { getItemValue } from './utils';\nvar preventDefault = function (e) { return e.preventDefault(); };\n/**\n * @hidden\n */\nvar ListDefaultItem = /** @class */ (function (_super) {\n __extends(ListDefaultItem, _super);\n function ListDefaultItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ListDefaultItem.prototype.render = function () {\n var _a = this.props, selected = _a.selected, defaultItem = _a.defaultItem, textField = _a.textField;\n return (React.createElement(\"div\", { onClick: this.props.onClick, onMouseDown: preventDefault, style: { position: 'unset' }, className: classNames('k-list-optionlabel', {\n 'k-selected': selected\n }) }, getItemValue(defaultItem, textField) || ''));\n };\n return ListDefaultItem;\n}(React.Component));\nexport default ListDefaultItem;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, Keys, getTabIndex, createPropsContext, withPropsContext, kendoThemeMaps, IconWrap, svgIconPropType, guid } from '@progress/kendo-react-common';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\nimport { caretAltDownIcon, xIcon } from '@progress/kendo-svg-icons';\nimport ListContainer from '../common/ListContainer';\nimport ListFilter from '../common/ListFilter';\nimport GroupStickyHeader from '../common/GroupStickyHeader';\nimport ListDefaultItem from '../common/ListDefaultItem';\nimport List from '../common/List';\nimport DropDownBase from '../common/DropDownBase';\nimport { isPresent, getItemValue, sameCharsOnly, shuffleData, matchText, areSame, itemIndexStartsWith } from '../common/utils';\nimport { validatePackage, canUseDOM } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { Button } from '@progress/kendo-react-buttons';\nimport { provideLocalizationService } from '@progress/kendo-react-intl';\nimport { dropDownListArrowBtnAriaLabel, messages } from '../messages';\nimport { MOBILE_SMALL_DEVISE, MOBILE_MEDIUM_DEVISE } from '../common/constants';\nimport { ActionSheet, ActionSheetContent, ActionSheetHeader } from '@progress/kendo-react-layout';\nvar VALIDATION_MESSAGE = 'Please select a value from the list!';\nvar sizeMap = kendoThemeMaps.sizeMap, roundedMap = kendoThemeMaps.roundedMap;\n/**\n * @hidden\n */\nvar DropDownListWithoutContext = /** @class */ (function (_super) {\n __extends(DropDownListWithoutContext, _super);\n function DropDownListWithoutContext(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.state = {};\n _this._element = null;\n _this.base = new DropDownBase(_this);\n _this.searchState = { word: '', last: '' };\n _this._select = null;\n _this._skipFocusEvent = false;\n _this._filterInput = null;\n _this._navigated = false;\n _this._lastKeypressIsFilter = false;\n _this._inputId = guid();\n _this.itemHeight = 0;\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this.base.wrapper) {\n _this.base.wrapper.focus();\n }\n };\n /**\n * @hidden\n */\n _this.handleItemSelect = function (index, state) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, virtual = _a.virtual, dataItemKey = _a.dataItemKey, defaultItem = _a.defaultItem;\n var skip = virtual ? virtual.skip : 0;\n var item = (index === -1 && defaultItem !== undefined) ?\n defaultItem : data[index - skip];\n var newSelected = !areSame(item, _this.value, dataItemKey);\n _this.triggerOnChange(item, state);\n if (newSelected) {\n _this.base.triggerPageChangeCornerItems(item, state);\n }\n };\n _this.componentRef = function (element) {\n _this._element = element;\n _this.base.wrapper = element;\n };\n _this.dummySelect = function (value) {\n /* Dummy component to support forms */\n return (React.createElement(\"select\", { name: _this.props.name, ref: function (el) { _this._select = el; }, tabIndex: -1, \"aria-hidden\": true, title: _this.props.label, style: { opacity: 0, width: 1, border: 0, zIndex: -1, position: 'absolute', left: '50%' } },\n React.createElement(\"option\", { value: _this.props.valueMap ? _this.props.valueMap.call(undefined, value) : value })));\n };\n _this.renderListContainer = function () {\n var _a;\n var _b = _this.props, header = _b.header, footer = _b.footer, dir = _b.dir, _c = _b.data, data = _c === void 0 ? [] : _c, size = _b.size, groupField = _b.groupField, groupStickyHeaderItemRender = _b.groupStickyHeaderItemRender, list = _b.list;\n var base = _this.base;\n var popupSettings = base.getPopupSettings();\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;\n var listContainerProps = {\n dir: dir !== undefined ? dir : base.dirCalculated,\n width: popupWidth,\n popupSettings: {\n popupClass: classNames(popupSettings.popupClass, 'k-list-container', 'k-dropdownlist-popup'),\n className: popupSettings.className,\n animate: popupSettings.animate,\n anchor: _this.element,\n show: opened,\n onOpen: _this.onPopupOpened,\n onClose: _this.onPopupClosed,\n appendTo: popupSettings.appendTo\n },\n itemsCount: [data.length]\n };\n var group = _this.state.group;\n if (group === undefined && groupField !== undefined) {\n group = getItemValue(data[0], groupField);\n }\n return (React.createElement(ListContainer, __assign({}, listContainerProps),\n _this.renderListFilter(),\n header && React.createElement(\"div\", { className: \"k-list-header\" }, header),\n React.createElement(\"div\", { className: classNames('k-list', (_a = {}, _a[\"k-list-\".concat(sizeMap[size] || size)] = size, _a['k-virtual-list'] = _this.base.vs.enabled, _a)) },\n _this.renderDefaultItem(),\n !list && group && data.length !== 0 && React.createElement(GroupStickyHeader, { group: group, groupMode: 'modern', render: groupStickyHeaderItemRender }),\n _this.renderList()),\n footer && React.createElement(\"div\", { className: \"k-list-footer\" }, footer)));\n };\n _this.renderList = function () {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField, dataItemKey = _a.dataItemKey, _c = _a.virtual, virtual = _c === void 0 ? { skip: 0 } : _c, groupHeaderItemRender = _a.groupHeaderItemRender, listNoDataRender = _a.listNoDataRender, itemRender = _a.itemRender;\n var vs = _this.base.vs;\n var skip = virtual.skip;\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var popupSettings = _this.base.getPopupSettings();\n var translate = \"translateY(\".concat(vs.translate, \"px)\");\n return (React.createElement(List, { id: _this.base.listBoxId, show: opened, data: data.slice(), focusedIndex: _this.getFocusedIndex(), value: _this.value, textField: textField, valueField: dataItemKey, optionsGuid: _this.base.guid, groupField: _this.props.groupField, groupMode: 'modern', listRef: function (list) { return vs.list = _this.base.list = list; }, wrapperStyle: { maxHeight: popupSettings.height }, wrapperCssClass: \"k-list-content\", listStyle: vs.enabled ? { transform: translate } : undefined, key: \"listkey\", skip: skip, onClick: _this.handleItemClick, itemRender: itemRender, groupHeaderItemRender: groupHeaderItemRender, noDataRender: listNoDataRender, onScroll: _this.onScroll, wrapperRef: vs.scrollerRef, scroller: _this.base.renderScrollElement() }));\n };\n _this.onScroll = function (event) {\n var _a = _this.base, vs = _a.vs, list = _a.list;\n vs.scrollHandler(event);\n var groupField = _this.props.groupField;\n var _b = _this.props.data, data = _b === void 0 ? [] : _b;\n if (!groupField || !data.length) {\n return;\n }\n if (groupField) {\n var itemHeight = _this.itemHeight =\n _this.itemHeight || (vs.enabled ? vs.itemHeight : (list ? list.children[0].offsetHeight : 0));\n var target = event.target;\n var scrollTop = target.scrollTop - (vs.skip * itemHeight);\n data = _this.base.getGroupedDataModernMode(data, groupField);\n var group = data[0][groupField];\n for (var i = 1; i < data.length; i++) {\n if (itemHeight * i > scrollTop) {\n break;\n }\n if (data[i] && data[i][groupField]) {\n group = data[i][groupField];\n }\n }\n if (group !== _this.state.group) {\n _this.setState({\n group: group\n });\n }\n }\n };\n _this.renderListFilter = function () {\n var filterText = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n return _this.props.filterable && (React.createElement(ListFilter, { value: filterText, ref: function (filter) { return _this._filterInput = filter && filter.element; }, onChange: _this.handleListFilterChange, onKeyDown: _this.handleKeyDown, size: _this.props.size, rounded: _this.props.rounded, fillMode: _this.props.fillMode }));\n };\n _this.renderDefaultItem = function () {\n var _a = _this.props, textField = _a.textField, defaultItem = _a.defaultItem, dataItemKey = _a.dataItemKey;\n return defaultItem !== undefined && (React.createElement(ListDefaultItem, { defaultItem: defaultItem, textField: textField, selected: areSame(_this.value, defaultItem, dataItemKey), key: \"defaultitemkey\", onClick: _this.handleDefaultItemClick }));\n };\n _this.search = function (event) {\n clearTimeout(_this._typingTimeout);\n if (!_this.props.filterable) {\n _this._typingTimeout = window.setTimeout(function () { return _this.searchState.word = ''; }, _this.props.delay);\n _this.selectNext(event);\n }\n };\n _this.selectNext = function (event) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, dataItemKey = _a.dataItemKey;\n var mappedData = data.map(function (item, idx) {\n return { item: item, itemIndex: idx };\n });\n var word = _this.searchState.word;\n var last = _this.searchState.last;\n var isInLoop = sameCharsOnly(word, last);\n var dataLength = mappedData.length;\n var startIndex = Math.max(0, data.findIndex(function (i) { return areSame(i, _this.value, dataItemKey); }));\n var defaultItem;\n if (_this.props.defaultItem) {\n defaultItem = { item: _this.props.defaultItem, itemIndex: -1 };\n dataLength += 1;\n startIndex += 1;\n }\n startIndex += isInLoop ? 1 : 0;\n mappedData = shuffleData(mappedData, startIndex, defaultItem);\n var text, loopMatch, nextMatch, index = 0;\n var _c = _this.props, textField = _c.textField, ignoreCase = _c.ignoreCase;\n for (; index < dataLength; index++) {\n text = getItemValue(mappedData[index].item, textField);\n loopMatch = isInLoop && matchText(text, last, ignoreCase);\n nextMatch = matchText(text, word, ignoreCase);\n if (loopMatch || nextMatch) {\n index = mappedData[index].itemIndex;\n break;\n }\n }\n if (index !== dataLength) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n _this.handleItemSelect(index, state);\n _this.applyState(state);\n _this._valueDuringOnChange = undefined;\n }\n };\n _this.handleKeyDown = function (event) {\n // The following added here to prevent the propagation of the keyDown event when the filter prop is set to true\n event && event.stopPropagation && event.stopPropagation();\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, filterable = _a.filterable, disabled = _a.disabled, defaultItem = _a.defaultItem, _c = _a.leftRightKeysNavigation, leftRightKeysNavigation = _c === void 0 ? true : _c, _d = _a.virtual, virtual = _d === void 0 ? { skip: 0, total: 0, pageSize: 0 } : _d, dataItemKey = _a.dataItemKey, _e = _a.groupField, groupField = _e === void 0 ? '' : _e, textField = _a.textField, _f = _a.skipDisabledItems, skipDisabledItems = _f === void 0 ? true : _f;\n var value = _this.value;\n var selectedIndex = data.findIndex(function (i) { return areSame(i, value, dataItemKey); });\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var keyCode = event.keyCode;\n var homeOrEndKeys = keyCode === Keys.home || keyCode === Keys.end;\n var upOrDownKeys = keyCode === Keys.up || keyCode === Keys.down;\n var shouldOpen = !opened &&\n ((event.altKey && keyCode === Keys.down) || keyCode === Keys.enter || keyCode === Keys.space);\n var shouldClose = opened && ((event.altKey && keyCode === Keys.up) || keyCode === Keys.esc);\n var leftOrRightKeys = leftRightKeysNavigation && (keyCode === Keys.left || keyCode === Keys.right);\n var shouldNavigate = upOrDownKeys || (leftOrRightKeys && !filterable) || homeOrEndKeys;\n var state = _this.base.initState();\n state.syntheticEvent = event;\n if (disabled) {\n return;\n }\n else if (homeOrEndKeys && _this.base.vs.enabled) {\n if (keyCode === Keys.home) {\n if (virtual.skip !== 0) {\n _this.base.triggerOnPageChange(state, 0, virtual.pageSize);\n _this._navigated = true;\n }\n else {\n _this.triggerOnChange(data[0], state);\n }\n }\n else {\n if (virtual.skip < virtual.total - virtual.pageSize) {\n _this.base.triggerOnPageChange(state, virtual.total - virtual.pageSize, virtual.pageSize);\n _this._navigated = true;\n }\n else {\n _this.triggerOnChange(data[data.length - 1], state);\n }\n }\n }\n else if (opened && keyCode === Keys.pageUp) {\n _this.base.scrollPopupByPageSize(-1);\n }\n else if (opened && keyCode === Keys.pageDown) {\n _this.base.scrollPopupByPageSize(1);\n }\n else if (opened && keyCode === Keys.enter) {\n var focusedIndex = _this.getFocusedIndex();\n if (_this.haveFocusedItemAndDataNotEmpty(data, focusedIndex)) {\n _this.triggerOnChange(null, state);\n _this.applyState(state);\n }\n else {\n _this.handleItemSelect(focusedIndex, state);\n }\n _this.base.togglePopup(state);\n event.preventDefault();\n }\n else if (shouldOpen || shouldClose) {\n if (shouldClose) {\n _this.resetValueIfDisabledItem();\n }\n _this.base.togglePopup(state);\n event.preventDefault();\n }\n else if (shouldNavigate) {\n _this._lastKeypressIsFilter = false;\n if (groupField !== '' && textField) {\n if (!skipDisabledItems && opened) {\n _this.onNavigate(state, keyCode);\n }\n else {\n var newIndex = undefined;\n if (keyCode === Keys.down || keyCode === Keys.right) {\n var tempnewIndex_1 = data.slice(selectedIndex + 1).find(function (i) { return !i.disabled && i[textField]; });\n newIndex = tempnewIndex_1 && data.findIndex(function (el) { return el[textField] === tempnewIndex_1[textField]; });\n }\n else if (keyCode === Keys.up || keyCode === Keys.left) {\n var dataToSearch = void 0;\n if (selectedIndex === 0 && defaultItem) {\n newIndex = -1;\n }\n else if (selectedIndex === -1) {\n dataToSearch = data;\n newIndex = data.findIndex(function (i) { return !i.disabled && i[textField]; });\n }\n else {\n dataToSearch = data.slice(0, selectedIndex);\n var tempnewIndex_2 = dataToSearch.pop();\n while (tempnewIndex_2 && tempnewIndex_2.disabled) {\n tempnewIndex_2 = dataToSearch.pop();\n }\n newIndex = tempnewIndex_2 && data.findIndex(function (el) { return el[textField] === tempnewIndex_2[textField]; });\n }\n }\n if (newIndex !== undefined) {\n var skipItems = newIndex - selectedIndex;\n _this.onNavigate(state, keyCode, skipItems);\n }\n else if (newIndex === undefined && data.findIndex(function (el) { return el[textField] === value[textField]; }) === data.length - 1) {\n _this.onNavigate(state, keyCode);\n }\n }\n }\n else if (!skipDisabledItems && opened || homeOrEndKeys) {\n _this.onNavigate(state, keyCode);\n }\n else if (textField) {\n var newIndex = undefined;\n if (keyCode === Keys.down || keyCode === Keys.right) {\n var tempnewIndex_3 = data.slice(selectedIndex + 1).find(function (i) { return !i.disabled && i[textField]; });\n newIndex = tempnewIndex_3 && data.findIndex(function (el) { return el[textField] === tempnewIndex_3[textField]; });\n }\n else if (keyCode === Keys.up || keyCode === Keys.left) {\n var dataTest = void 0;\n if (selectedIndex === 0 && defaultItem) {\n newIndex = -1;\n }\n else if (selectedIndex === -1) {\n dataTest = data;\n newIndex = data.find(function (i) { return !i.disabled && i[textField]; });\n }\n else {\n dataTest = data.slice(0, selectedIndex);\n var tempnewIndex_4 = dataTest.pop();\n while (tempnewIndex_4 && tempnewIndex_4.disabled) {\n tempnewIndex_4 = dataTest.pop();\n }\n newIndex = tempnewIndex_4 && data.findIndex(function (el) { return el[textField] === tempnewIndex_4[textField]; });\n }\n }\n if (newIndex !== undefined) {\n var skipItems = newIndex - selectedIndex;\n _this.onNavigate(state, keyCode, skipItems);\n }\n else if (newIndex === undefined && data.findIndex(function (el) { return el[textField] === value[textField]; }) === data.length - 1) {\n _this.onNavigate(state, keyCode);\n }\n }\n else {\n _this.onNavigate(state, keyCode);\n }\n event.preventDefault();\n }\n _this.applyState(state);\n };\n _this.handleItemClick = function (index, event) {\n _this.base.handleItemClick(index, event);\n _this._valueDuringOnChange = undefined;\n };\n _this.handleFocus = function (event) {\n if (_this._skipFocusEvent) {\n return;\n }\n _this.base.handleFocus(event);\n };\n _this.handleBlur = function (event) {\n if (_this._skipFocusEvent || !_this.state.focused) {\n return;\n }\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var adaptive = _this.props.adaptive;\n var _a = _this.state.windowWidth, windowWidth = _a === void 0 ? 0 : _a;\n var renderAdaptive = windowWidth <= MOBILE_MEDIUM_DEVISE && adaptive;\n var state = _this.base.initState();\n state.syntheticEvent = event;\n state.data.focused = false;\n state.events.push({ type: 'onBlur' });\n if (opened) {\n _this.resetValueIfDisabledItem();\n }\n if (opened && !renderAdaptive) {\n _this.base.togglePopup(state);\n }\n _this.applyState(state);\n };\n _this.handleDefaultItemClick = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n _this.base.togglePopup(state);\n _this.triggerOnChange(_this.props.defaultItem, state);\n _this.applyState(state);\n };\n _this.handleWrapperClick = function (event) {\n if (event.isPropagationStopped()) {\n return;\n }\n var state = _this.base.initState();\n state.syntheticEvent = event;\n if (!_this.state.focused) {\n state.data.focused = true;\n }\n _this.resetValueIfDisabledItem();\n _this.base.togglePopup(state);\n _this.applyState(state);\n };\n _this.handleKeyPress = function (event) {\n if (_this.props.filterable || event.which === 0 || event.keyCode === Keys.enter) {\n return;\n }\n var character = String.fromCharCode(event.charCode || event.keyCode);\n if (_this.props.ignoreCase) {\n character = character.toLowerCase();\n }\n if (character === ' ') {\n event.preventDefault();\n }\n _this.searchState = {\n word: _this.searchState.word + character,\n last: _this.searchState.last + character\n };\n _this.search(event);\n };\n _this.handleListFilterChange = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event.syntheticEvent;\n if (_this.props.filter === undefined) {\n state.data.text = event.target.value;\n }\n _this.base.filterChanged(event.target.value, state);\n _this._lastKeypressIsFilter = true;\n _this.applyState(state);\n _this.setState({ group: undefined });\n };\n _this.onPopupOpened = function () {\n if (_this._filterInput) {\n _this.focusElement(_this._filterInput);\n }\n if (_this.props.adaptive) {\n setTimeout(function () {\n if (_this._filterInput) {\n _this.focusElement(_this._filterInput);\n }\n }, 300);\n }\n };\n _this.onPopupClosed = function () {\n if (_this.state.focused) {\n window.setTimeout(function () {\n if (_this.state.focused && _this.base.wrapper) {\n _this.focusElement(_this.base.wrapper);\n }\n });\n }\n };\n _this.setValidity = function () {\n if (_this._select && _this._select.setCustomValidity) {\n _this._select.setCustomValidity(_this.validity.valid\n ? ''\n : _this.props.validationMessage || VALIDATION_MESSAGE);\n }\n };\n validatePackage(packageMetadata);\n return _this;\n }\n Object.defineProperty(DropDownListWithoutContext.prototype, \"document\", {\n get: function () {\n if (!canUseDOM) {\n return;\n }\n // useful only for user actions\n return (this.element && this.element.ownerDocument) || document;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DropDownListWithoutContext.prototype, \"element\", {\n /**\n * @hidden\n */\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DropDownListWithoutContext.prototype, \"value\", {\n /**\n * The value of the DropDownList.\n */\n get: function () {\n var value;\n if (this._valueDuringOnChange !== undefined) {\n value = this._valueDuringOnChange;\n }\n else if (this.props.value !== undefined) {\n value = this.props.value;\n }\n else if (this.state.value !== undefined) {\n value = this.state.value;\n }\n else if (this.props.defaultValue !== undefined) {\n value = this.props.defaultValue;\n }\n if (!isPresent(value) && this.props.defaultItem !== undefined) {\n value = this.props.defaultItem;\n }\n return value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DropDownListWithoutContext.prototype, \"index\", {\n /**\n * The index of the selected item.\n */\n get: function () {\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, dataItemKey = _a.dataItemKey;\n var value = this.value;\n // TO DO: deprecate it!\n return data.findIndex(function (i) { return areSame(i, value, dataItemKey); });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DropDownListWithoutContext.prototype, \"name\", {\n /**\n * Gets the `name` property of the DropDownList.\n */\n get: function () {\n return this.props.name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DropDownListWithoutContext.prototype, \"validity\", {\n /**\n * Represents the validity state into which the DropDownList is set.\n */\n get: function () {\n var customError = this.props.validationMessage !== undefined;\n var isValid = (!this.required\n || (this.value !== null && this.value !== '' && this.value !== undefined));\n var valid = this.props.valid !== undefined ? this.props.valid : isValid;\n return {\n customError: customError,\n valid: valid,\n valueMissing: this.value === null\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DropDownListWithoutContext.prototype, \"validityStyles\", {\n get: function () {\n return this.props.validityStyles !== undefined\n ? this.props.validityStyles\n : DropDownListWithoutContext.defaultProps.validityStyles;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DropDownListWithoutContext.prototype, \"required\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.required !== undefined\n ? this.props.required\n : DropDownListWithoutContext.defaultProps.required;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n DropDownListWithoutContext.prototype.componentDidUpdate = function (prevProps, prevState) {\n var _a;\n var _b = this.props, dataItemKey = _b.dataItemKey, virtual = _b.virtual, _c = _b.groupField, groupField = _c === void 0 ? '' : _c, textField = _b.textField;\n var _d = this.props.data, data = _d === void 0 ? [] : _d;\n var prevTotal = prevProps.virtual ? prevProps.virtual.total : 0;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var prevOpened = prevProps.opened !== undefined ? prevProps.opened : prevState.opened;\n var opening = !prevOpened && opened;\n var closing = prevOpened && !opened;\n if (!this.base.getPopupSettings().animate) {\n if (opening) {\n this.onPopupOpened();\n }\n else if (closing) {\n // this.onPopupClosed();\n }\n }\n if (virtual && virtual.total !== prevTotal) {\n this.base.vs.calcScrollElementHeight();\n this.base.vs.reset();\n }\n else {\n var selectedItem_1 = this.value;\n var prevSelectedItem = prevProps.value !== undefined ? prevProps.value : prevState.value;\n var selectedItemIndex = data.findIndex(function (i) { return areSame(i, selectedItem_1, dataItemKey); });\n if (groupField !== '' && selectedItem_1 && textField) {\n selectedItemIndex = (_a = this.base.getGroupedDataModernMode(data, groupField)) === null || _a === void 0 ? void 0 : _a.map(function (el) { return el[textField]; }).indexOf(selectedItem_1[textField]);\n }\n var selectedItemChanged = !areSame(prevSelectedItem, selectedItem_1, dataItemKey);\n if (opening && virtual) {\n this.base.scrollToVirtualItem(virtual, selectedItemIndex);\n }\n else if (opening && !virtual) {\n this.onPopupOpened();\n // Resets the sticky header group value for scenarios with open/close of component's popup\n if (data && data.length !== 0) {\n this.base.resetGroupStickyHeader(data[0][groupField], this);\n }\n this.base.scrollToItem(selectedItemIndex);\n }\n else if (opened && prevOpened && selectedItem_1 && selectedItemChanged && !this._navigated) {\n this.base.scrollToItem(selectedItemIndex);\n }\n else if (opened && prevOpened && this._navigated) {\n if (this._navigated && virtual && virtual.skip === 0) {\n this.base.vs.reset();\n }\n else if (this._navigated && virtual && virtual.skip === virtual.total - virtual.pageSize) {\n this.base.vs.scrollToEnd();\n }\n }\n }\n this._navigated = false;\n this.setValidity();\n };\n /**\n * @hidden\n */\n DropDownListWithoutContext.prototype.componentDidMount = function () {\n var _a;\n this.observerResize = canUseDOM && window.ResizeObserver && new window.ResizeObserver(this.calculateMedia.bind(this));\n this.base.didMount();\n this.setValidity();\n if (((_a = this.document) === null || _a === void 0 ? void 0 : _a.body) && this.observerResize) {\n this.observerResize.observe(this.document.body);\n }\n };\n /** @hidden */\n DropDownListWithoutContext.prototype.componentWillUnmount = function () {\n var _a;\n if (((_a = this.document) === null || _a === void 0 ? void 0 : _a.body) && this.observerResize) {\n this.observerResize.disconnect();\n }\n };\n /**\n * @hidden\n */\n DropDownListWithoutContext.prototype.render = function () {\n var _a;\n var _this = this;\n var btnAriaLabel = provideLocalizationService(this).toLanguageString(dropDownListArrowBtnAriaLabel, messages[dropDownListArrowBtnAriaLabel]);\n var _b = this.props, style = _b.style, className = _b.className, label = _b.label, dir = _b.dir, virtual = _b.virtual, size = _b.size, rounded = _b.rounded, fillMode = _b.fillMode, adaptive = _b.adaptive;\n var _c = this.state.windowWidth, windowWidth = _c === void 0 ? 0 : _c;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var value = this.value;\n var text = getItemValue(value, this.props.textField);\n var isValid = !this.validityStyles || this.validity.valid;\n var base = this.base;\n var vs = base.vs;\n var renderAdaptive = windowWidth <= MOBILE_MEDIUM_DEVISE && adaptive;\n vs.enabled = virtual !== undefined;\n if (virtual !== undefined) {\n base.vs.skip = virtual.skip;\n base.vs.total = virtual.total;\n base.vs.pageSize = virtual.pageSize;\n }\n var _d = this.props, dataItemKey = _d.dataItemKey, _e = _d.data, data = _e === void 0 ? [] : _e, disabled = _d.disabled, tabIndex = _d.tabIndex, loading = _d.loading, iconClassName = _d.iconClassName, valueRender = _d.valueRender;\n var focused = this.state.focused;\n var selectedIndex = data.findIndex(function (i) { return areSame(i, value, dataItemKey); });\n var valueDefaultRendering = (React.createElement(\"span\", { id: this._inputId, className: \"k-input-inner\" },\n React.createElement(\"span\", { className: \"k-input-value-text\" }, text)));\n var valueElement = valueRender !== undefined ?\n valueRender.call(undefined, valueDefaultRendering, value) : valueDefaultRendering;\n var dropdownlist = (React.createElement(React.Fragment, null,\n React.createElement(\"span\", { ref: this.componentRef, className: classNames('k-dropdownlist k-picker', className, (_a = {},\n _a[\"k-picker-\".concat(sizeMap[size] || size)] = size,\n _a[\"k-rounded-\".concat(roundedMap[rounded] || rounded)] = rounded,\n _a[\"k-picker-\".concat(fillMode)] = fillMode,\n _a['k-focus'] = focused,\n _a['k-disabled'] = disabled,\n _a['k-invalid'] = !isValid,\n _a['k-loading'] = loading,\n _a['k-required'] = this.required,\n _a)), style: !label\n ? style\n : __assign(__assign({}, style), { width: undefined }), dir: dir, onMouseDown: opened ? function (event) {\n if (event.target.nodeName !== 'INPUT') {\n _this.focusElement(_this.base.wrapper);\n event.preventDefault();\n }\n } : undefined, onFocus: this.handleFocus, onBlur: this.handleBlur, tabIndex: getTabIndex(tabIndex, disabled), accessKey: this.props.accessKey, onKeyDown: this.handleKeyDown, onKeyPress: this.handleKeyPress, onClick: disabled ? undefined : this.handleWrapperClick, role: 'combobox', \"aria-required\": this.required, \"aria-disabled\": disabled || undefined, \"aria-haspopup\": 'listbox', \"aria-expanded\": opened || false, \"aria-owns\": this.base.listBoxId, \"aria-activedescendant\": opened ? ('option-' + this.base.guid + '-' + (selectedIndex + (virtual ? virtual.skip : 0))) : undefined, \"aria-label\": this.props.ariaLabel || this.props.label, \"aria-labelledby\": this.props.ariaLabelledBy, \"aria-describedby\": this.props.ariaDescribedBy || this._inputId, id: this.props.id, title: this.props.title },\n valueElement,\n loading && React.createElement(IconWrap, { className: \"k-input-loading-icon\", name: 'loading' }),\n React.createElement(Button, { tabIndex: -1, type: \"button\", \"aria-label\": btnAriaLabel, \"aria-hidden\": true, size: size, fillMode: fillMode, iconClass: iconClassName, className: \"k-input-button\", rounded: null, themeColor: 'base', icon: !iconClassName ? 'caret-alt-down' : undefined, svgIcon: !iconClassName ? caretAltDownIcon : this.props.svgIcon, onMouseDown: function (e) { return _this.state.focused && e.preventDefault(); } }),\n this.dummySelect(value),\n !renderAdaptive && this.renderListContainer()),\n renderAdaptive && this.renderAdaptiveListContainer()));\n return label ? (React.createElement(FloatingLabel, { label: label, editorValue: text, editorValid: isValid, editorDisabled: this.props.disabled, style: { width: style ? style.width : undefined }, children: dropdownlist })) : dropdownlist;\n };\n /**\n * @hidden\n */\n DropDownListWithoutContext.prototype.onNavigate = function (state, keyCode, skipItems) {\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, defaultItem = _a.defaultItem, dataItemKey = _a.dataItemKey, _c = _a.virtual, virtual = _c === void 0 ? { skip: 0, total: 0, pageSize: 0 } : _c;\n var vs = this.base.vs;\n var value = this.value;\n var index = data.findIndex(function (i) { return areSame(i, value, dataItemKey); });\n var newIndex = this.base.navigation.navigate({\n current: virtual.skip + index,\n max: (vs.enabled ? virtual.total : data.length) - 1,\n min: defaultItem !== undefined ? -1 : 0,\n keyCode: keyCode,\n skipItems: skipItems ? skipItems : undefined\n });\n if (newIndex !== undefined) {\n this.handleItemSelect(newIndex, state);\n }\n this.applyState(state);\n };\n DropDownListWithoutContext.prototype.renderAdaptiveListContainer = function () {\n var _a;\n var _this = this;\n var _b = this.state.windowWidth, windowWidth = _b === void 0 ? 0 : _b;\n var _c = this.props, header = _c.header, footer = _c.footer, size = _c.size, adaptiveTitle = _c.adaptiveTitle, groupField = _c.groupField, groupStickyHeaderItemRender = _c.groupStickyHeaderItemRender, list = _c.list, _d = _c.data, data = _d === void 0 ? [] : _d;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var actionSheetProps = {\n navigatable: false,\n navigatableElements: [],\n expand: opened,\n animation: true,\n onClose: function (event) { return _this.handleWrapperClick(event); },\n animationStyles: windowWidth <= MOBILE_SMALL_DEVISE ? { top: 0, width: '100%', height: '100%' } : undefined,\n className: windowWidth <= MOBILE_SMALL_DEVISE\n ? 'k-adaptive-actionsheet k-actionsheet-fullscreen'\n : 'k-adaptive-actionsheet k-actionsheet-bottom'\n };\n var group = this.state.group;\n if (group === undefined && groupField !== undefined) {\n group = getItemValue(data[0], groupField);\n }\n return (React.createElement(React.Fragment, null,\n React.createElement(ActionSheet, __assign({}, actionSheetProps),\n React.createElement(ActionSheetHeader, { className: 'k-text-center' },\n React.createElement(\"div\", { className: \"k-actionsheet-titlebar-group k-hbox\" },\n React.createElement(\"div\", { className: \"k-actionsheet-title\" },\n React.createElement(\"div\", null, adaptiveTitle)),\n React.createElement(\"div\", { className: \"k-actionsheet-actions\" },\n React.createElement(Button, { tabIndex: 0, \"aria-label\": \"Cancel\", \"aria-disabled\": \"false\", type: \"button\", fillMode: \"flat\", onClick: this.handleWrapperClick, icon: 'x', svgIcon: xIcon }))),\n React.createElement(\"div\", { className: \"k-actionsheet-titlebar-group k-actionsheet-filter\" }, this.renderListFilter())),\n React.createElement(ActionSheetContent, { className: '!k-overflow-hidden' },\n header && React.createElement(\"div\", { className: \"k-list-header\" }, header),\n React.createElement(\"div\", { className: classNames('k-list', (_a = {}, _a[\"k-list-\".concat(sizeMap[size] || size)] = size, _a['k-virtual-list'] = this.base.vs.enabled, _a)) },\n this.renderDefaultItem(),\n !list && group && data.length !== 0 && React.createElement(GroupStickyHeader, { group: group, groupMode: 'modern', render: groupStickyHeaderItemRender }),\n this.renderList()),\n footer && React.createElement(\"div\", { className: \"k-list-footer\" }, footer)))));\n };\n DropDownListWithoutContext.prototype.getFocusedIndex = function () {\n var value = this.value;\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField, dataItemKey = _a.dataItemKey, _c = _a.virtual, virtual = _c === void 0 ? { skip: 0 } : _c, _d = _a.focusedItemIndex, focusedItemIndex = _d === void 0 ? itemIndexStartsWith : _d, filterable = _a.filterable, _e = _a.skipDisabledItems, skipDisabledItems = _e === void 0 ? true : _e;\n var text = this.props.filter ? this.props.filter : this.state.text;\n if (skipDisabledItems && textField && !text && !value) {\n return data.findIndex(function (i) { return !i.disabled && i[textField]; });\n }\n else if (isPresent(value) && text === undefined || filterable && text === '') {\n return data.findIndex(function (i) { return areSame(i, value, dataItemKey); });\n }\n else if (text) {\n if (this._lastKeypressIsFilter) {\n return focusedItemIndex(data, text, textField);\n }\n return data.findIndex(function (i) { return areSame(i, value, dataItemKey); });\n }\n else {\n return virtual.skip === 0 ? 0 : -1;\n }\n };\n DropDownListWithoutContext.prototype.focusElement = function (element) {\n var _this = this;\n this._skipFocusEvent = true;\n element.focus();\n window.setTimeout(function () { return _this._skipFocusEvent = false; }, 30);\n };\n DropDownListWithoutContext.prototype.triggerOnChange = function (item, state) {\n if (areSame(this.value, item, this.props.dataItemKey)) {\n return;\n }\n if (this.props.value === undefined) {\n state.data.value = item;\n }\n this._valueDuringOnChange = item;\n state.events.push({ type: 'onChange' });\n };\n DropDownListWithoutContext.prototype.applyState = function (state) {\n this.base.applyState(state);\n this._valueDuringOnChange = undefined;\n };\n DropDownListWithoutContext.prototype.calculateMedia = function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n this.setState({ windowWidth: entry.target.clientWidth });\n }\n ;\n };\n ;\n DropDownListWithoutContext.prototype.resetValueIfDisabledItem = function () {\n var _a = this.props.data, data = _a === void 0 ? [] : _a;\n var state = this.base.initState();\n var focusedIndex = this.getFocusedIndex();\n if (this.haveFocusedItemAndDataNotEmpty(data, focusedIndex)) {\n this.triggerOnChange(null, state);\n this.applyState(state);\n }\n };\n DropDownListWithoutContext.prototype.haveFocusedItemAndDataNotEmpty = function (data, focusedIndex) {\n return focusedIndex !== undefined && focusedIndex !== -1 && data && data.length > 0 && data[focusedIndex].disabled;\n };\n DropDownListWithoutContext.displayName = 'DropDownList';\n /**\n * @hidden\n */\n DropDownListWithoutContext.propTypes = __assign({ delay: PropTypes.number, ignoreCase: PropTypes.bool, iconClassName: PropTypes.string, svgIcon: svgIconPropType, defaultItem: PropTypes.any, valueRender: PropTypes.func, valueMap: PropTypes.func, validationMessage: PropTypes.string, required: PropTypes.bool, id: PropTypes.string, ariaLabelledBy: PropTypes.string, ariaDescribedBy: PropTypes.string, ariaLabel: PropTypes.string, leftRightKeysNavigation: PropTypes.bool, title: PropTypes.string, groupField: PropTypes.string, list: PropTypes.any, skipDisabledItems: PropTypes.bool }, DropDownBase.propTypes);\n /**\n * @hidden\n */\n DropDownListWithoutContext.defaultProps = __assign(__assign({ delay: 500, tabIndex: 0, ignoreCase: true }, DropDownBase.defaultProps), { required: false, size: 'medium', rounded: 'medium', fillMode: 'solid', groupMode: 'modern' });\n return DropDownListWithoutContext;\n}(React.Component));\nexport { DropDownListWithoutContext };\n/**\n * Represents the PropsContext of the `DropDownList` component.\n * Used for global configuration of all `DropDownList` instances.\n *\n * For more information, refer to the [Dropdowns Props Context]({% slug props-context_dropdowns %}) article.\n */\nexport var DropDownListPropsContext = createPropsContext();\n/* eslint-disable @typescript-eslint/no-redeclare -- intentionally naming the component the same as the type */\n/**\n * Represents the [KendoReact DropDownList component]({% slug overview_dropdownlist %}).\n *\n * Accepts properties of type [DropDownListProps]({% slug api_dropdowns_dropdownlistprops %}).\n * Obtaining the `ref` returns an object of type [DropDownListHandle]({% slug api_dropdowns_dropdownlisthandle %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * dropdownlist = null;\n * render() {\n * return (\n *
    \n * this.dropdownlist = component}\n * />\n * \n *
    \n * );\n * }\n * }\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nexport var DropDownList = withPropsContext(DropDownListPropsContext, DropDownListWithoutContext);\nDropDownList.displayName = 'KendoReactDropDownList';\n","var maxHeightIE = 1533915;\n/**\n * @hidden\n */\nvar VirtualScroll = /** @class */ (function () {\n function VirtualScroll() {\n var _this = this;\n this.container = null;\n this.scrollElement = null;\n this.list = null;\n this.containerHeight = 0;\n this.skip = 0;\n this.total = 0;\n this.enabled = false;\n this.pageSize = 0;\n this.itemHeight = 0;\n this.PageChange = null;\n this.prevScrollPos = 0;\n this.listTranslate = 0;\n this.scrollSyncing = false;\n this.scrollerRef = function (element) {\n var vs = _this;\n vs.container = element;\n if (element) {\n element.setAttribute('unselectable', 'on');\n window.setTimeout(vs.calcScrollElementHeight.bind(vs), 0);\n }\n };\n this.calcScrollElementHeight = function () {\n _this.scrollSyncing = true;\n var heightChanged = false;\n _this.itemHeight = _this.list ? _this.list.children[0].offsetHeight : _this.itemHeight;\n _this.containerHeight = Math.min(maxHeightIE, _this.itemHeight * _this.total);\n var newHeight = _this.containerHeight;\n if (_this.scrollElement) {\n heightChanged = _this.scrollElement.style.height !== newHeight + 'px';\n if (heightChanged) {\n _this.scrollElement.style.height = newHeight + 'px';\n }\n }\n _this.scrollSyncing = false;\n return heightChanged;\n };\n this.scrollHandler = this.scrollHandler.bind(this);\n }\n Object.defineProperty(VirtualScroll.prototype, \"translate\", {\n get: function () {\n return this.listTranslate;\n },\n enumerable: false,\n configurable: true\n });\n VirtualScroll.prototype.changePage = function (skip, e) {\n var newSkip = Math.min(Math.max(0, skip), this.total - this.pageSize);\n if (newSkip !== this.skip && this.PageChange) {\n this.PageChange({ skip: newSkip, take: this.pageSize }, e);\n }\n };\n VirtualScroll.prototype.translateTo = function (dY) {\n this.listTranslate = dY;\n if (this.list) {\n this.list.style.transform = 'translateY(' + dY + 'px)';\n }\n };\n VirtualScroll.prototype.reset = function () {\n if (this.container) {\n this.calcScrollElementHeight();\n this.container.scrollTop = 0;\n this.translateTo(0);\n }\n };\n VirtualScroll.prototype.scrollToEnd = function () {\n if (this.container && this.list) {\n this.calcScrollElementHeight();\n this.container.scrollTop = this.container.scrollHeight - this.container.offsetHeight;\n this.translateTo(this.container.scrollHeight); // - this.list.offsetHeight\n }\n };\n VirtualScroll.prototype.localScrollUp = function (e) {\n var height = this.itemHeight;\n var scrollTop = this.container.scrollTop;\n var targetTranslate = this.listTranslate;\n var items;\n var additionalOnTop = scrollTop - targetTranslate;\n if (additionalOnTop > height) {\n return;\n }\n for (items = 0; items < this.skip; items++) {\n if (targetTranslate + height + additionalOnTop <= scrollTop) {\n break;\n }\n targetTranslate -= height;\n }\n targetTranslate = this.validateTranslate(targetTranslate);\n if (this.skip - items <= 0 && targetTranslate >= scrollTop) {\n this.translateTo(0);\n this.changePage(0, e);\n this.container.scrollTop = 0;\n return;\n }\n if (targetTranslate !== this.listTranslate) {\n this.translateTo(targetTranslate);\n this.changePage(this.skip - items, e);\n }\n };\n VirtualScroll.prototype.localScrollDown = function (e) {\n var height = this.itemHeight;\n var scrollTop = this.container.scrollTop;\n var targetTranslate = this.listTranslate;\n var itemsLenght = this.list.children.length;\n var items;\n for (items = 0; items < itemsLenght; items++) {\n if (targetTranslate + height >= scrollTop) {\n break;\n }\n targetTranslate += height;\n }\n targetTranslate = this.validateTranslate(targetTranslate);\n if (items >= itemsLenght && this.skip + items >= this.total) {\n this.translateTo(targetTranslate);\n this.changePage(this.total - 1, e);\n }\n else if (targetTranslate !== this.listTranslate) {\n this.translateTo(targetTranslate);\n this.changePage(this.skip + items, e);\n }\n };\n VirtualScroll.prototype.scrollNonStrict = function (e) {\n var floatItemIndex = this.total * this.prevScrollPos / (this.containerHeight);\n var itemIndex = Math.min(Math.floor(floatItemIndex), this.total - 1);\n var targetTranslate = this.containerHeight * floatItemIndex / this.total;\n targetTranslate = this.validateTranslate(targetTranslate);\n this.translateTo(targetTranslate);\n this.changePage(itemIndex, e);\n };\n VirtualScroll.prototype.scrollHandler = function (e) {\n var scrollTop = this.container ? this.container.scrollTop : 0;\n var prev = this.prevScrollPos;\n this.prevScrollPos = scrollTop;\n if (!this.enabled || !this.list || !this.container || this.scrollSyncing) {\n return;\n }\n if (scrollTop - prev <= 0 && scrollTop > this.listTranslate - this.list.scrollHeight / 10) {\n this.localScrollUp(e);\n }\n else if (scrollTop - prev > 0 && scrollTop < this.listTranslate + this.list.scrollHeight * 2 / 3) {\n this.localScrollDown(e);\n }\n else {\n this.scrollNonStrict(e);\n }\n };\n VirtualScroll.prototype.validateTranslate = function (translate) {\n translate = Math.max(0, translate);\n // translate = Math.min(this.containerHeight - this.list!.offsetHeight, translate);\n translate = Math.min(this.containerHeight, translate);\n return translate;\n };\n return VirtualScroll;\n}());\nexport default VirtualScroll;\n","import { isPresent } from './utils';\nimport { Keys } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar Navigation = /** @class */ (function () {\n function Navigation() {\n }\n Navigation.prototype.navigate = function (args) {\n var keyCode = args.keyCode;\n if (keyCode === Keys.up || keyCode === Keys.left) {\n return this.next({ current: args.current, min: args.min, max: args.max, step: args.skipItems ? args.skipItems : -1 });\n }\n else if (keyCode === Keys.down || keyCode === Keys.right) {\n return this.next({ current: args.current, min: args.min, max: args.max, step: args.skipItems ? args.skipItems : 1 });\n }\n else if (keyCode === Keys.home) {\n return 0;\n }\n else if (keyCode === Keys.end) {\n return args.max;\n }\n };\n Navigation.prototype.next = function (args) {\n if (!isPresent(args.current)) {\n return args.min;\n }\n else {\n return Math.min(args.max, Math.max(args.current + args.step, args.min));\n }\n };\n return Navigation;\n}());\nexport { Navigation };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport VirtualScroll from './VirtualScroll';\nimport { Navigation } from './Navigation';\nimport { scrollToItem, areSame } from './utils';\nimport { guid } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar DropDownBase = /** @class */ (function () {\n function DropDownBase(component) {\n var _this = this;\n this.wrapper = null;\n this.list = null;\n this.vs = new VirtualScroll();\n this.navigation = new Navigation();\n this.handleItemClick = function (index, event) {\n var state = _this.initState();\n state.syntheticEvent = event;\n event.stopPropagation();\n _this.component.handleItemSelect(index, state);\n _this.togglePopup(state);\n _this.applyState(state);\n };\n this.handleFocus = function (event) {\n if (!_this.component.state.focused) {\n var state = _this.initState();\n state.data.focused = true;\n state.events.push({ type: 'onFocus' });\n state.syntheticEvent = event;\n _this.applyState(state);\n }\n };\n this.filterChanged = function (text, state) {\n var _a = _this.component.props, textField = _a.textField, filterable = _a.filterable;\n if (filterable) {\n state.events.push({\n type: 'onFilterChange',\n filter: {\n field: textField,\n operator: 'contains',\n ignoreCase: true,\n value: text\n }\n });\n }\n };\n this.togglePopup = function (state) {\n var props = _this.component.props;\n var opened = props.opened !== undefined ? props.opened : _this.component.state.opened;\n if (props.opened === undefined) {\n state.data.opened = !opened;\n }\n if (opened) {\n state.events.push({ type: 'onClose' });\n }\n else {\n state.events.push({ type: 'onOpen' });\n _this.calculatePopupWidth();\n }\n };\n this.pageChange = function (page, syntheticEvent) {\n var state = _this.initState();\n state.syntheticEvent = syntheticEvent;\n _this.triggerOnPageChange(state, page.skip, page.take);\n _this.applyState(state);\n };\n this.scrollToVirtualItem = function (virtual, selectedItemIndex) {\n var vs = _this.vs;\n vs.enabled = false;\n if (virtual.skip === 0) {\n vs.reset();\n }\n else if (virtual.skip + virtual.pageSize === virtual.total) {\n vs.scrollToEnd();\n }\n else {\n var scrollTop = vs.translate;\n if (scrollTop === 0) {\n vs.calcScrollElementHeight();\n scrollTop = (vs.itemHeight * virtual.skip);\n vs.translateTo(scrollTop - vs.itemHeight);\n }\n if (vs.container) {\n vs.container.scrollTop = scrollTop;\n }\n _this.scrollToItem(selectedItemIndex, true);\n }\n window.setTimeout(function () { return vs.enabled = true; }, 10);\n };\n /**\n * @hidden\n * Scrolls the data inside the popup of a selected DropDown by `one page`. The page size\n * depends on the height of the popup.\n *\n * @param {number} direction Defines the direction(Up/Down) in which the page will be moved\n * @param {number} filterHeight Defines the heigh of the filter element that appears in the DropDownList and DropDownTree.\n * This property is added for handling the filtering scenarios of the mentioned components.\n */\n this.scrollPopupByPageSize = function (direction) {\n var _a, _b, _c, _d, _e, _f;\n var vs = _this.vs;\n var offsetTop = (_b = (_a = _this.list) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.scrollTop;\n var itemHeight = (vs.enabled && vs.itemHeight ? vs.itemHeight : (_this.list ? _this.list.children[0].offsetHeight : 0));\n var height = (_d = (_c = _this.list) === null || _c === void 0 ? void 0 : _c.parentElement) === null || _d === void 0 ? void 0 : _d.offsetHeight;\n if (offsetTop !== undefined && height !== undefined) {\n (_f = (_e = _this.list) === null || _e === void 0 ? void 0 : _e.parentElement) === null || _f === void 0 ? void 0 : _f.scroll({ top: offsetTop + direction * Math.floor(height / itemHeight) * itemHeight });\n }\n };\n this.renderScrollElement = function () {\n var vs = _this.vs;\n return vs.enabled && (React.createElement(\"div\", { ref: function (element) { return vs.scrollElement = element; }, key: 'scrollElementKey' }));\n };\n this.resetGroupStickyHeader = function (groupName, that) {\n if (groupName !== that.state.group) {\n that.setState(__assign(__assign({}, that.state), { group: groupName }));\n }\n };\n this.listBoxId = guid();\n this.guid = guid();\n this.component = component;\n this.vs.PageChange = this.pageChange;\n }\n DropDownBase.prototype.didMount = function () {\n var props = this.component.props;\n var popupSettings = props.popupSettings || {};\n var style = props.style || {};\n var popupWidth = popupSettings.width;\n var shouldUpdate = props.opened === true;\n if (popupWidth === undefined) {\n this.calculatePopupWidth();\n }\n if (props.dir === undefined && style.direction === undefined) {\n this.calculateDir();\n shouldUpdate = true;\n }\n if (shouldUpdate) {\n this.component.forceUpdate();\n }\n };\n DropDownBase.prototype.calculateDir = function () {\n var element = this.component.element;\n if (element && element.ownerDocument && element.ownerDocument.defaultView) {\n this.dirCalculated = element.ownerDocument.defaultView.getComputedStyle(element).direction || undefined;\n }\n };\n DropDownBase.prototype.calculatePopupWidth = function () {\n if (this.wrapper) {\n this.popupWidth = this.wrapper.offsetWidth + 'px';\n }\n };\n DropDownBase.prototype.scrollToItem = function (itemIndex, vsEnabled, once) {\n var _this = this;\n var list = this.list || this.vs.list;\n if (!list && !once) {\n setTimeout(function () {\n _this.scrollToItem(itemIndex, vsEnabled, true);\n }, 10);\n }\n if (list && itemIndex >= 0) {\n var vs = this.vs;\n var scrollElement = (vs.container || list.parentNode);\n var virtualScroll = vsEnabled !== undefined ? vsEnabled : vs.enabled;\n scrollToItem(scrollElement, list, itemIndex, vs.translate, virtualScroll);\n }\n };\n DropDownBase.prototype.initState = function () {\n var state = {\n data: {},\n events: [],\n syntheticEvent: undefined\n };\n return state;\n };\n DropDownBase.prototype.applyState = function (state) {\n var _this = this;\n if (Object.keys(state.data).length > 0) {\n this.component.setState(state.data);\n }\n var eventArgs = {\n syntheticEvent: state.syntheticEvent,\n nativeEvent: state.syntheticEvent ? state.syntheticEvent.nativeEvent : undefined,\n target: this.component,\n value: this.component.value\n };\n state.events.forEach(function (eventData) {\n var type = eventData.type;\n delete eventData.type;\n var handler = type && _this.component.props[type];\n if (handler) {\n handler.call(undefined, __assign(__assign({}, eventArgs), eventData));\n }\n });\n };\n DropDownBase.prototype.triggerOnPageChange = function (state, skip, take) {\n var virtual = this.component.props.virtual;\n if (virtual) {\n var newSkip = Math.min(Math.max(0, skip), Math.max(0, virtual.total - take));\n if (newSkip !== virtual.skip) {\n state.events.push({\n type: 'onPageChange',\n page: { skip: newSkip, take: take }\n });\n }\n }\n };\n DropDownBase.prototype.triggerPageChangeCornerItems = function (item, state) {\n var props = this.component.props;\n var _a = props.data, data = _a === void 0 ? [] : _a, dataItemKey = props.dataItemKey, virtual = props.virtual;\n var opened = props.opened !== undefined ? props.opened : this.component.state.opened;\n if (item && virtual && this.vs.enabled) {\n if (virtual.skip > 0 && areSame(item, data[0], dataItemKey)) {\n this.triggerOnPageChange(state, virtual.skip - 1, virtual.pageSize);\n }\n else if (!opened && virtual.skip + virtual.pageSize < virtual.total &&\n areSame(item, data[data.length - 1], dataItemKey)) {\n this.triggerOnPageChange(state, virtual.skip + 1, virtual.pageSize);\n }\n }\n };\n DropDownBase.prototype.getPopupSettings = function () {\n return Object\n .assign({}, DropDownBase.defaultProps.popupSettings, this.component.props.popupSettings);\n };\n DropDownBase.prototype.getGroupedDataModernMode = function (data, groupField) {\n var newData = [];\n data.forEach(function (el, index) {\n var _a;\n if (data[index - 1] && el[groupField] !== data[index - 1][groupField]) {\n newData.push((_a = {}, _a[groupField] = el[groupField], _a));\n newData.push(data[index]);\n }\n else {\n newData.push(data[index]);\n }\n });\n return newData;\n };\n DropDownBase.basicPropTypes = {\n opened: PropTypes.bool,\n disabled: PropTypes.bool,\n dir: PropTypes.string,\n tabIndex: PropTypes.number,\n accessKey: PropTypes.string,\n data: PropTypes.array,\n textField: PropTypes.string,\n className: PropTypes.string,\n label: PropTypes.string,\n loading: PropTypes.bool,\n popupSettings: PropTypes.shape({\n animate: PropTypes.oneOfType([PropTypes.bool, PropTypes.shape({\n openDuration: PropTypes.number,\n closeDuration: PropTypes.number\n })]),\n popupClass: PropTypes.string,\n className: PropTypes.string,\n appendTo: PropTypes.any,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n }),\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n itemRender: PropTypes.func,\n listNoDataRender: PropTypes.func,\n focusedItemIndex: PropTypes.func,\n header: PropTypes.node,\n footer: PropTypes.node\n };\n DropDownBase.propTypes = __assign(__assign({}, DropDownBase.basicPropTypes), { value: PropTypes.any, defaultValue: PropTypes.any, filterable: PropTypes.bool, filter: PropTypes.string, virtual: PropTypes.shape({\n pageSize: PropTypes.number.isRequired,\n skip: PropTypes.number.isRequired,\n total: PropTypes.number.isRequired\n }), onFilterChange: PropTypes.func, onPageChange: PropTypes.func });\n DropDownBase.defaultProps = {\n popupSettings: {\n height: '200px'\n },\n required: false,\n validityStyles: true\n };\n return DropDownBase;\n}());\nexport default DropDownBase;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\n/**\n * @hidden\n */\nvar GroupStickyHeader = /** @class */ (function (_super) {\n __extends(GroupStickyHeader, _super);\n function GroupStickyHeader() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GroupStickyHeader.prototype.render = function () {\n var _a = this.props, group = _a.group, groupMode = _a.groupMode, renderer = _a.render;\n var item = (React.createElement(\"div\", { className: \"k-list-group-sticky-header\" }, groupMode === 'classic'\n ? group\n : React.createElement(\"div\", { className: \"k-list-header-text\" }, group)));\n return renderer !== undefined ? renderer.call(undefined, item, this.props) : item;\n };\n return GroupStickyHeader;\n}(React.Component));\nexport default GroupStickyHeader;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\n/**\n * @hidden\n */\nvar ListGroupItem = /** @class */ (function (_super) {\n __extends(ListGroupItem, _super);\n function ListGroupItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ListGroupItem.prototype.render = function () {\n var _a = this.props, group = _a.group, virtual = _a.virtual, renderer = _a.render, _b = _a.isMultiColumn, isMultiColumn = _b === void 0 ? false : _b;\n var item = (React.createElement(\"li\", { id: this.props.id, role: \"group\", className: isMultiColumn ? 'k-table-group-row' : 'k-list-group-item', style: isMultiColumn ? { 'boxSizing': 'inherit' } : { position: virtual ? 'relative' : 'unset' } },\n React.createElement(\"span\", { className: !renderer ? isMultiColumn ? 'k-table-th' : 'k-list-item-text' : undefined }, group)));\n return renderer !== undefined ? renderer.call(undefined, item, this.props) : item;\n };\n return ListGroupItem;\n}(React.Component));\nexport default ListGroupItem;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport ListItem from './ListItem';\nimport ListGroupItem from './ListGroupItem';\nimport { areSame, getItemValue } from './utils';\nimport { registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { messages, nodata } from '../messages';\n/**\n * @hidden\n */\nvar List = /** @class */ (function (_super) {\n __extends(List, _super);\n function List() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n List.prototype.renderItems = function () {\n var _this = this;\n var _a = this.props, textField = _a.textField, valueField = _a.valueField, groupField = _a.groupField, groupMode = _a.groupMode, isMultiColumn = _a.isMultiColumn, optionsGuid = _a.optionsGuid, _b = _a.skip, skip = _b === void 0 ? 0 : _b, virtual = _a.virtual, focusedIndex = _a.focusedIndex, _c = _a.highlightSelected, highlightSelected = _c === void 0 ? true : _c, value = _a.value, data = _a.data, itemRender = _a.itemRender, groupHeaderItemRender = _a.groupHeaderItemRender;\n var isArray = Array.isArray(value);\n var groupCounter = 0;\n return data.map(function (item, index) {\n var realIndex = skip + index;\n var idIndex = skip + index + groupCounter;\n var selected = item.disabled ? false : highlightSelected &&\n ((!isArray && areSame(item, value, valueField)) ||\n (isArray && value.findIndex(function (i) { return areSame(i, item, valueField); }) !== -1));\n var group = undefined;\n var current, previous;\n if (index > 0 && groupField !== undefined) {\n current = getItemValue(item, groupField);\n previous = getItemValue(data[index - 1], groupField);\n if (current && previous && current !== previous) {\n group = current;\n }\n }\n group !== undefined && groupMode === 'modern' ? groupCounter += 1 : '';\n return [\n group !== undefined && groupMode === 'modern' && React.createElement(ListGroupItem, { id: \"option-\".concat(optionsGuid, \"-\").concat(idIndex), virtual: virtual, key: realIndex + '-group-item', group: group, isMultiColumn: isMultiColumn, render: groupHeaderItemRender }),\n React.createElement(ListItem, { id: \"option-\".concat(optionsGuid, \"-\").concat(group !== undefined && groupMode === 'modern' ? idIndex + 1 : idIndex), virtual: virtual, dataItem: item, groupMode: groupMode, selected: selected, focused: focusedIndex === index, index: realIndex, key: realIndex, onClick: _this.props.onClick, textField: textField, group: group, render: itemRender, disabled: item.disabled })\n ];\n });\n };\n List.prototype.renderNoValueElement = function (localizationService) {\n var noDataRender = this.props.noDataRender;\n var noDataElement = (React.createElement(\"div\", { className: 'k-nodata' },\n React.createElement(\"div\", null, localizationService.toLanguageString(nodata, messages[nodata]))));\n return noDataRender ?\n noDataRender.call(undefined, noDataElement) : noDataElement;\n };\n List.prototype.render = function () {\n var localizationService = provideLocalizationService(this);\n var _a = this.props, id = _a.id, show = _a.show, wrapperCssClass = _a.wrapperCssClass, wrapperStyle = _a.wrapperStyle, listStyle = _a.listStyle, listRef = _a.listRef, wrapperRef = _a.wrapperRef, _b = _a.listClassName, listClassName = _b === void 0 ? 'k-list-ul' : _b;\n var items = this.renderItems();\n return (items.length ? (React.createElement(\"div\", { className: wrapperCssClass, style: wrapperStyle, ref: wrapperRef, onMouseDown: this.props.onMouseDown, onBlur: this.props.onBlur, onScroll: this.props.onScroll, unselectable: \"on\" },\n React.createElement(\"ul\", { id: id, role: \"listbox\", \"aria-hidden\": !show ? true : undefined, className: listClassName, ref: listRef, style: listStyle }, items),\n this.props.scroller && React.createElement(\"div\", { className: \"k-height-container\" }, this.props.scroller))) : this.renderNoValueElement(localizationService));\n };\n return List;\n}(React.Component));\nexport default List;\nregisterForLocalization(List);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { Popup } from '@progress/kendo-react-popup';\n/**\n * @hidden\n */\nvar ListContainer = /** @class */ (function (_super) {\n __extends(ListContainer, _super);\n function ListContainer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ListContainer.prototype.render = function () {\n var _a = this.props, children = _a.children, width = _a.width, dir = _a.dir, itemsCount = _a.itemsCount, popupSettings = _a.popupSettings;\n return (React.createElement(Popup, __assign({ style: { width: width, direction: dir }, contentKey: itemsCount && itemsCount.join() }, popupSettings), children));\n };\n return ListContainer;\n}(React.Component));\nexport default ListContainer;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { classNames } from '@progress/kendo-react-common';\nimport * as React from 'react';\n/**\n * Represents the KendoReact InputPrefix component.\n */\nexport var InputPrefix = React.forwardRef(function (props, ref) {\n var target = React.useRef(null);\n var element = React.useRef(null);\n React.useImperativeHandle(target, function () { return ({ element: element.current }); });\n React.useImperativeHandle(ref, function () { return target.current; });\n return (React.createElement(\"span\", __assign({}, props, { className: classNames('k-input-prefix', props.className) })));\n});\nInputPrefix.displayName = 'KendoReactInputPrefix';\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { TextBox, InputPrefix } from '@progress/kendo-react-inputs';\nimport { searchIcon } from '@progress/kendo-svg-icons';\nimport { IconWrap } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar ListFilter = React.forwardRef(function (props, ref) {\n var input = React.useRef(null);\n React.useImperativeHandle(ref, function () { return input.current; });\n return (React.createElement(\"div\", { className: \"k-list-filter\" },\n React.createElement(TextBox, __assign({}, props, { ref: input, value: props.value || '', onChange: props.onChange, onKeyDown: props.onKeyDown, tabIndex: props.tabIndex, onClick: function (e) { return e.stopPropagation(); }, size: props.size, fillMode: props.fillMode, rounded: props.rounded, prefix: function () { return (React.createElement(InputPrefix, null,\n React.createElement(IconWrap, { name: 'search', icon: searchIcon }))); } }))));\n});\nListFilter.propTypes = {\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.array]),\n tabIndex: PropTypes.number,\n onChange: PropTypes.func,\n onKeyDown: PropTypes.func,\n size: PropTypes.oneOf([null, 'small', 'medium', 'large']),\n rounded: PropTypes.oneOf([null, 'small', 'medium', 'large', 'full']),\n fillMode: PropTypes.oneOf([null, 'solid', 'flat', 'outline'])\n};\nListFilter.displayName = 'KendoReactListFilter';\nexport default ListFilter;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\nimport { getItemValue } from './utils';\n// tslint:enable:max-line-length\n/**\n * @hidden\n */\nvar ListItem = /** @class */ (function (_super) {\n __extends(ListItem, _super);\n function ListItem() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.handleClick = function (e) { return _this.props.onClick(_this.props.index, e); };\n return _this;\n }\n ListItem.prototype.render = function () {\n var _a = this.props, selected = _a.selected, group = _a.group, dataItem = _a.dataItem, virtual = _a.virtual, groupMode = _a.groupMode, disabled = _a.disabled, renderer = _a.render;\n var item = (React.createElement(\"li\", { id: this.props.id, role: \"option\", \"aria-selected\": selected, \"aria-disabled\": disabled ? true : undefined, className: classNames('k-list-item', {\n 'k-selected': selected,\n 'k-focus': this.props.focused,\n 'k-first': Boolean(group) && groupMode === 'classic',\n 'k-disabled': disabled\n }), onClick: this.handleClick, style: { position: virtual ? 'relative' : 'unset' } },\n React.createElement(\"span\", { className: 'k-list-item-text' }, getItemValue(dataItem, this.props.textField).toString()),\n group !== undefined && groupMode === 'classic' ? React.createElement(\"div\", { className: \"k-list-item-group-label\" }, group) : null));\n return renderer !== undefined ? renderer.call(undefined, item, this.props) : item;\n };\n return ListItem;\n}(React.Component));\nexport default ListItem;\n","/** @hidden */\nexport var MOBILE_SMALL_DEVISE = 500;\n/** @hidden */\nexport var MOBILE_MEDIUM_DEVISE = 768;\n","/**\n * @hidden\n */\nvar isPresent = function (value) { return value !== null && value !== undefined; };\n/**\n * @hidden\n */\nvar sameCharsOnly = function (word, character) {\n for (var idx = 0; idx < word.length; idx++) {\n if (word.charAt(idx) !== character) {\n return false;\n }\n }\n return true;\n};\n/**\n * @hidden\n */\nvar shuffleData = function (data, splitIndex, defaultItem) {\n var result = data;\n if (defaultItem) {\n result = [defaultItem].concat(result);\n }\n return result.slice(splitIndex).concat(result.slice(0, splitIndex));\n};\n/**\n * @hidden\n */\nvar matchText = function (text, word, ignoreCase) {\n if (!isPresent(text)) {\n return false;\n }\n var temp = String(text);\n if (ignoreCase) {\n temp = temp.toLowerCase();\n }\n return temp.indexOf(word) === 0;\n};\n/**\n * @hidden\n */\nvar scrollToItem = function (scrollElem, list, itemIndex, translate, virtualScroll) {\n var viewportHeight = scrollElem.offsetHeight;\n var li = list.children.item(itemIndex);\n var itemOffsetTop = li.offsetTop + (virtualScroll ? translate - scrollElem.scrollTop : 0);\n var itemHeight = li.offsetHeight;\n if (virtualScroll) {\n var diff = 0;\n if (itemOffsetTop + itemHeight > viewportHeight) {\n diff = itemOffsetTop + itemHeight - viewportHeight;\n }\n else if (itemOffsetTop < 0) {\n diff = itemOffsetTop;\n }\n if (diff !== 0) {\n scrollElem.scrollTop += diff;\n }\n else if (scrollElem.scrollTop === 0 && translate !== 0) {\n scrollElem.scrollTop = translate;\n }\n }\n else {\n if (itemOffsetTop + itemHeight > viewportHeight + scrollElem.scrollTop) {\n scrollElem.scrollTop = (itemOffsetTop + itemHeight - viewportHeight);\n }\n else if (itemOffsetTop < scrollElem.scrollTop) {\n scrollElem.scrollTop -= scrollElem.scrollTop - itemOffsetTop;\n }\n }\n};\n/**\n * @hidden\n */\nvar itemIndexStartsWith = function (items, text, field) {\n var result = -1;\n if (text) {\n text = text.toLowerCase();\n for (var i = 0; i < items.length; i++) {\n var itemText = (getItemValue(items[i], field) || '') + '';\n if (itemText && itemText.toLowerCase().startsWith(text)) {\n result = i;\n break;\n }\n }\n }\n return result;\n};\n/**\n * @hidden\n */\nvar getItemIndexByText = function (data, text, textField, matchCase) {\n if (matchCase === void 0) { matchCase = false; }\n var casing = function (value) { return matchCase ? value : value.toLowerCase(); };\n return data.findIndex(function (item) {\n return textField ? casing(getItemValue(item, textField)) === casing(text) :\n casing(text) === casing(item.toString());\n });\n};\n/**\n * @hidden\n */\nvar getItemValue = function (item, field) {\n if (field && isPresent(item)) {\n var path = field.split('.');\n var data_1 = item;\n path.forEach(function (p) {\n data_1 = data_1 ? data_1[p] : undefined;\n });\n return data_1;\n }\n return item;\n};\n/**\n * @hidden\n */\nvar matchDataCollections = function (data1, data2, key) {\n if (data1 === void 0) { data1 = []; }\n if (data2 === void 0) { data2 = []; }\n if (data1 === data2) {\n return true;\n }\n if (data1.length !== data2.length) {\n return false;\n }\n for (var i = 0; i < data1.length; i++) {\n if (!areSame(data1[i], data2[i], key)) {\n return false;\n }\n }\n return true;\n};\n/**\n * @hidden\n */\nvar removeDataItems = function (items, toRemove, key) {\n toRemove.forEach(function (item) {\n var itemIndex = items.findIndex(function (i) { return areSame(i, item, key); });\n if (itemIndex !== -1) {\n items.splice(itemIndex, 1);\n }\n });\n};\n/**\n * @hidden\n */\nvar areSame = function (item1, item2, key) {\n return item1 === item2 ||\n (isPresent(item1) === isPresent(item2) && getItemValue(item1, key) === getItemValue(item2, key));\n};\n/**\n * @hidden\n */\nvar getFocusedItem = function (data, value, textField) {\n if (value) {\n var selectedIndex = getItemIndexByText(data, value, textField, true);\n return selectedIndex !== -1 ? data[selectedIndex] : data[itemIndexStartsWith(data, value, textField)];\n }\n return data[0];\n};\n/**\n * @hidden\n */\nvar suggestValue = function (value, data, textField) {\n if (data === void 0) { data = []; }\n var suggested = '';\n if (value) {\n var suggestedItem = data[itemIndexStartsWith(data, value, textField)];\n if (suggestedItem) {\n var suggestedText = getItemValue(suggestedItem, textField);\n if (value.toLowerCase() !== suggestedText.toLowerCase()) {\n suggested = suggestedText.substring(value.length);\n }\n }\n }\n return suggested;\n};\n/**\n * @hidden\n */\nvar preventDefaultNonInputs = function (event) {\n if (event.target.nodeName !== 'INPUT') {\n event.preventDefault();\n }\n};\n/**\n * @hidden\n */\nvar matchTags = function (tag1, tag2, key) {\n if (!!tag1 !== !!tag2 || tag1.text !== tag2.text) {\n return false;\n }\n return tag1 === tag2 || matchDataCollections(tag1.data, tag2.data, key);\n};\nexport { isPresent, sameCharsOnly, shuffleData, matchText, scrollToItem, itemIndexStartsWith, getItemIndexByText, getItemValue, matchDataCollections, removeDataItems, areSame, getFocusedItem, preventDefaultNonInputs, suggestValue, matchTags };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { getActiveElement } from '@progress/kendo-react-common';\nimport * as React from 'react';\n/**\n * @hidden\n */\nvar SearchBar = /** @class */ (function (_super) {\n __extends(SearchBar, _super);\n function SearchBar() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._input = null;\n return _this;\n }\n Object.defineProperty(SearchBar.prototype, \"input\", {\n /**\n * @hidden\n */\n get: function () {\n return this._input;\n },\n enumerable: false,\n configurable: true\n });\n SearchBar.prototype.componentDidUpdate = function (prevProps) {\n var prevValue = prevProps.value;\n var prevSuggestedText = prevProps.suggestedText;\n var _a = this.props, value = _a.value, suggestedText = _a.suggestedText, focused = _a.focused;\n var input = this.input;\n var valueChanged = prevValue !== value || suggestedText !== prevSuggestedText;\n var deleting = valueChanged && prevValue.startsWith(value) &&\n !(prevSuggestedText && suggestedText && prevSuggestedText.endsWith(suggestedText));\n var activeElement = getActiveElement(document);\n if (focused && input && activeElement !== input) {\n input.focus();\n }\n if (suggestedText && valueChanged && !deleting && input) {\n input.setSelectionRange(value.length - suggestedText.length, value.length);\n }\n };\n SearchBar.prototype.render = function () {\n var _this = this;\n var _a = this.props, _b = _a.expanded, expanded = _b === void 0 ? false : _b, disabled = _a.disabled, _c = _a.role, role = _c === void 0 ? 'listbox' : _c, render = _a.render;\n var searchbar = (React.createElement(\"input\", { autoComplete: \"off\", id: this.props.id, type: \"text\", key: \"searchbar\", size: this.props.size, placeholder: this.props.placeholder, className: \"k-input-inner\", tabIndex: this.props.tabIndex, accessKey: this.props.accessKey, role: role, name: this.props.name, value: this.props.value, onChange: this.props.onChange, ref: function (input) { return _this._input = input; }, onKeyDown: this.props.onKeyDown, onFocus: this.props.onFocus, onBlur: this.props.onBlur, onClick: this.props.onClick, \"aria-disabled\": disabled || undefined, disabled: disabled || undefined, readOnly: this.props.readOnly || undefined, title: this.props.title, \"aria-haspopup\": \"listbox\", \"aria-expanded\": expanded, \"aria-owns\": this.props.owns, \"aria-activedescendant\": expanded ? this.props.activedescendant : undefined, \"aria-describedby\": this.props.ariaDescribedBy, \"aria-labelledby\": this.props.ariaLabelledBy, \"aria-required\": this.props.ariaRequired }));\n return render ? render.call(undefined, searchbar) : searchbar;\n };\n return SearchBar;\n}(React.Component));\nexport default SearchBar;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { messages, clear } from '../messages';\nimport { IconWrap } from '@progress/kendo-react-common';\nimport { xIcon } from '@progress/kendo-svg-icons';\n/**\n * @hidden\n */\nvar ClearButton = /** @class */ (function (_super) {\n __extends(ClearButton, _super);\n function ClearButton() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onMouseDown = function (e) { return e.preventDefault(); };\n return _this;\n }\n ClearButton.prototype.render = function () {\n var title = provideLocalizationService(this).toLanguageString(clear, messages[clear]);\n return (React.createElement(\"span\", { className: \"k-clear-value\", role: \"button\", onClick: this.props.onClick, onMouseDown: this.onMouseDown, tabIndex: -1, title: title, key: \"clearbutton\" },\n React.createElement(IconWrap, { name: 'x', icon: xIcon })));\n };\n return ClearButton;\n}(React.Component));\nexport default ClearButton;\nregisterForLocalization(ClearButton);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport DropDownBase from '../common/DropDownBase';\nimport { guid, classNames, Keys, createPropsContext, withPropsContext, kendoThemeMaps, svgIconPropType } from '@progress/kendo-react-common';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\nimport { areSame, itemIndexStartsWith, getItemIndexByText, getItemValue, isPresent, suggestValue } from '../common/utils';\nimport SearchBar from '../common/SearchBar';\nimport ListContainer from '../common/ListContainer';\nimport List from '../common/List';\nimport ListFilter from '../common/ListFilter';\nimport GroupStickyHeader from '../common/GroupStickyHeader';\nimport { validatePackage, canUseDOM, IconWrap } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport ClearButton from '../common/ClearButton';\nimport { Button } from '@progress/kendo-react-buttons';\nimport { caretAltDownIcon, xIcon } from '@progress/kendo-svg-icons';\nimport { messages, comboArrowBtnAriaLabelExpand, comboArrowBtnAriaLabelCollapse } from './../messages';\nimport { provideLocalizationService } from '@progress/kendo-react-intl';\nimport { ActionSheet, ActionSheetContent, ActionSheetHeader } from '@progress/kendo-react-layout';\nimport { MOBILE_SMALL_DEVISE, MOBILE_MEDIUM_DEVISE } from '../common/constants';\nvar VALIDATION_MESSAGE = 'Please enter a valid value!';\nvar sizeMap = kendoThemeMaps.sizeMap, roundedMap = kendoThemeMaps.roundedMap;\n/** @hidden */\nvar ComboBoxWithoutContext = /** @class */ (function (_super) {\n __extends(ComboBoxWithoutContext, _super);\n function ComboBoxWithoutContext(props) {\n var _this = _super.call(this, props) || this;\n /** @hidden */\n _this.state = {};\n _this.base = new DropDownBase(_this);\n _this._element = null;\n _this._inputId = guid();\n _this._suggested = '';\n _this._skipBlur = false;\n _this._input = null;\n _this._adaptiveFilterInput = null;\n _this.itemHeight = 0;\n /** @hidden */\n _this.focus = function () {\n if (_this._input) {\n _this._input.focus();\n }\n };\n /** @hidden */\n _this.handleItemSelect = function (index, state) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, virtual = _a.virtual, dataItemKey = _a.dataItemKey;\n var skip = virtual ? virtual.skip : 0;\n var item = data[index - skip];\n var newSelected = !areSame(item, _this.value, dataItemKey);\n _this.triggerOnChange(item, state);\n if (_this.state.text !== undefined) {\n state.data.text = undefined;\n }\n if (newSelected) {\n _this.base.triggerPageChangeCornerItems(item, state);\n }\n };\n _this.onPopupOpened = function () {\n setTimeout(function () {\n if (_this.mobileMode && _this._adaptiveFilterInput) {\n _this._skipBlur = true;\n _this._adaptiveFilterInput.focus();\n _this._skipBlur = false;\n }\n }, 300);\n };\n _this.componentRef = function (element) {\n _this._element = element;\n _this.base.wrapper = element;\n };\n _this.toggleBtnClick = function (event) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, skipDisabledItems = _a.skipDisabledItems, textField = _a.textField;\n var focusedIndex = _this.getFocusedIndex();\n var isCurrentValueDisabled = _this.getCurrentValueDisabledStatus(textField, data, focusedIndex);\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var state = _this.base.initState();\n state.syntheticEvent = event;\n if (!skipDisabledItems && textField && isCurrentValueDisabled) {\n _this.clearValueOnToggleBtnClick(event);\n }\n _this.base.togglePopup(state);\n if (!opened && _this.mobileMode) {\n var mobileText = _this.props.adaptiveFilter !== undefined ? _this.props.adaptiveFilter : _this.state.text || null;\n _this.base.filterChanged(mobileText, state);\n }\n _this.applyState(state);\n };\n _this.renderMobileListFilter = function () {\n var mobileText = _this.props.adaptiveFilter !== undefined ? _this.props.adaptiveFilter : _this.state.text;\n var selectedItemText = getItemValue(_this.value, _this.props.textField);\n var mobileInputText = isPresent(mobileText) ? mobileText : selectedItemText;\n return (React.createElement(ListFilter, { value: mobileInputText, ref: function (filter) { return _this._adaptiveFilterInput = filter && filter.element; }, onChange: _this.handleMobileFilterChange, onKeyDown: _this.onInputKeyDown, size: _this.props.size, rounded: _this.props.rounded, fillMode: _this.props.fillMode }));\n };\n _this.handleMobileFilterChange = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event.syntheticEvent;\n state.data.text = event.target.value;\n _this.base.filterChanged(event.target.value, state);\n _this.applyState(state);\n };\n _this.onScroll = function (event) {\n var _a = _this.base, vs = _a.vs, list = _a.list;\n vs.scrollHandler(event);\n var groupField = _this.props.groupField;\n var _b = _this.props.data, data = _b === void 0 ? [] : _b;\n if (!groupField || !data.length) {\n return;\n }\n var itemHeight = _this.itemHeight =\n _this.itemHeight || (vs.enabled ? vs.itemHeight : (list ? list.children[0].offsetHeight : 0));\n var target = event.target;\n var scrollTop = target.scrollTop - (vs.skip * itemHeight);\n if (_this.props.groupMode === 'modern') {\n data = _this.base.getGroupedDataModernMode(data, groupField);\n }\n var group = data[0][groupField];\n for (var i = 1; i < data.length; i++) {\n if (itemHeight * i > scrollTop) {\n break;\n }\n if (data[i] && data[i][groupField]) {\n group = data[i][groupField];\n }\n }\n if (group !== _this.state.group) {\n _this.setState({\n group: group\n });\n if (_this.props.onGroupScroll) {\n _this.props.onGroupScroll.call(undefined, { group: group });\n }\n }\n };\n _this.handleItemClick = function (index, event) {\n _this.base.handleItemClick(index, event);\n _this._valueDuringOnChange = undefined;\n };\n _this.handleBlur = function (event) {\n if (_this.state.focused && !_this._skipBlur) {\n var state = _this.base.initState();\n var _a = _this.props, textField = _a.textField, _b = _a.data, data = _b === void 0 ? [] : _b;\n var focusedIndex = _this.getFocusedIndex();\n var isCustomValue = focusedIndex === -1;\n var isCurrentValueDisabled = !isCustomValue && _this.getCurrentValueDisabledStatus(textField, data, focusedIndex);\n state.data.focused = false;\n state.events.push({ type: 'onBlur' });\n state.syntheticEvent = event;\n if (textField && isCurrentValueDisabled) {\n _this.clearValueOnBlur(event);\n }\n _this.applyValueOnRejectSuggestions(event.currentTarget.value, state);\n }\n };\n _this.onInputClick = function (event) {\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var mobileText = _this.props.adaptiveFilter !== undefined ? _this.props.adaptiveFilter : _this.state.text || null;\n if (!opened && _this.mobileMode) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n _this.base.togglePopup(state);\n _this.base.filterChanged(mobileText, state);\n _this.applyState(state);\n }\n };\n _this.onInputKeyDown = function (event) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, skipDisabledItems = _a.skipDisabledItems, textField = _a.textField, dataItemKey = _a.dataItemKey, groupField = _a.groupField;\n var value = _this.value;\n var selectedIndex = Math.max(0, data.findIndex(function (i) { return areSame(i, value, dataItemKey); }));\n var keyCode = event.keyCode;\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var state = _this.base.initState();\n state.syntheticEvent = event;\n if (!event.altKey && (keyCode === Keys.up || keyCode === Keys.down)) {\n event.preventDefault();\n if (groupField !== '' && textField) {\n if (!_this.props.skipDisabledItems && opened) {\n _this.onNavigate(state, keyCode);\n }\n else {\n var newIndex = 0;\n if (keyCode === Keys.down || keyCode === Keys.right) {\n var tempnewIndex_1 = data.slice(selectedIndex + 1).find(function (i) { return !i.disabled && i[textField]; });\n newIndex = tempnewIndex_1 && data.findIndex(function (el) { return el[textField] === tempnewIndex_1[textField]; });\n }\n else if (keyCode === Keys.up || keyCode === Keys.left) {\n var dataToSearch = void 0;\n if (selectedIndex === 0) {\n dataToSearch = data;\n newIndex = data.findIndex(function (i) { return !i.disabled && i[textField]; });\n }\n else {\n dataToSearch = data.slice(0, selectedIndex);\n var tempnewIndex_2 = dataToSearch.pop();\n while (tempnewIndex_2 && tempnewIndex_2.disabled) {\n tempnewIndex_2 = dataToSearch.pop();\n }\n newIndex = tempnewIndex_2 && data.findIndex(function (el) { return el[textField] === tempnewIndex_2[textField]; });\n }\n }\n if (newIndex !== undefined) {\n var skipItems = newIndex - selectedIndex;\n _this.onNavigate(state, keyCode, skipItems);\n }\n else if (newIndex === undefined && data.findIndex(function (el) { return el[textField] === value[textField]; }) === data.length - 1) {\n _this.onNavigate(state, keyCode);\n }\n }\n }\n else if (!_this.props.skipDisabledItems && opened) {\n _this.onNavigate(state, keyCode);\n }\n else {\n var newIndex = null;\n if (keyCode === Keys.down || keyCode === Keys.right) {\n newIndex = data.slice(selectedIndex + 1).find(function (i) { return !i.disabled; });\n }\n else if (keyCode === Keys.up || keyCode === Keys.left) {\n var dataTest = data.slice(0, selectedIndex);\n newIndex = dataTest.pop();\n while (newIndex && newIndex.disabled) {\n newIndex = dataTest.pop();\n }\n }\n if (newIndex) {\n var skipItems = newIndex.id - selectedIndex - 1;\n _this.onNavigate(state, keyCode, skipItems);\n }\n else {\n _this.onNavigate(state, keyCode);\n }\n }\n _this.applyState(state);\n }\n var togglePopup = function () {\n event.preventDefault();\n _this.base.togglePopup(state);\n _this.applyState(state);\n };\n var focusedIndex = _this.getFocusedIndex();\n var isCustomValue = focusedIndex === -1;\n var isCurrentValueDisabled = !isCustomValue && _this.getCurrentValueDisabledStatus(textField, data, focusedIndex);\n if (opened) {\n if (keyCode === Keys.pageUp) {\n _this.base.scrollPopupByPageSize(-1);\n }\n else if (keyCode === Keys.pageDown) {\n _this.base.scrollPopupByPageSize(1);\n }\n else if (event.altKey && keyCode === Keys.up) {\n togglePopup();\n }\n else if (keyCode === Keys.enter) {\n event.preventDefault();\n var currentValueText = textField && !isCustomValue && event.currentTarget.value ? data[focusedIndex][textField] : undefined;\n if (currentValueText) {\n if (!skipDisabledItems && textField && isCurrentValueDisabled) {\n _this.clearValueOnEnterOrEsc(event);\n }\n else if (!isCurrentValueDisabled) {\n _this.applyValueOnEnter(event.currentTarget.value, state);\n }\n }\n else {\n _this.applyValueOnEnter(event.currentTarget.value, state);\n }\n }\n else if (keyCode === Keys.esc) {\n if (!skipDisabledItems && textField && isCurrentValueDisabled) {\n _this.clearValueOnEnterOrEsc(event);\n }\n _this.applyValueOnRejectSuggestions(event.currentTarget.value, state);\n }\n }\n else if (!opened && keyCode === Keys.esc) {\n _this.clearValueOnEnterOrEsc(event);\n }\n else if (event.altKey && keyCode === Keys.down) {\n togglePopup();\n }\n };\n _this.inputOnChange = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var input = event.currentTarget;\n var value = input.value;\n if (_this.props.suggest) {\n var selectionAtEnd = input.selectionEnd === value.length;\n var prevText = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n if (!isPresent(prevText)) {\n prevText = getItemValue(_this.value, _this.props.textField) || '';\n }\n var deletedSuggestion = prevText && prevText === value;\n var deleting = prevText && prevText.length > value.length;\n if (deletedSuggestion || deleting || !selectionAtEnd) {\n _this._suggested = '';\n }\n else {\n _this.suggestValue(value);\n }\n }\n if (_this.props.filter === undefined) {\n state.data.text = value;\n }\n if (_this.state.focusedItem !== undefined) {\n state.data.focusedItem = undefined;\n }\n if (!opened) {\n _this.base.togglePopup(state);\n }\n _this.base.filterChanged(value, state);\n _this.applyState(state);\n _this.setState({ group: undefined });\n };\n _this.clearButtonClick = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n event.stopPropagation();\n _this.clearValue();\n };\n _this.clearValueOnEnterOrEsc = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n event.stopPropagation();\n _this.clearValue();\n };\n _this.clearValueOnBlur = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n event.stopPropagation();\n _this.clearValue();\n };\n _this.clearValueOnToggleBtnClick = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n event.stopPropagation();\n _this.clearValue();\n };\n _this.setValidity = function () {\n if (_this._input && _this._input.setCustomValidity) {\n _this._input.setCustomValidity(_this.validity.valid\n ? ''\n : _this.props.validationMessage || VALIDATION_MESSAGE);\n }\n };\n validatePackage(packageMetadata);\n return _this;\n }\n Object.defineProperty(ComboBoxWithoutContext.prototype, \"document\", {\n get: function () {\n if (!canUseDOM) {\n return;\n }\n // useful only for user actions\n return (this.element && this.element.ownerDocument) || document;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ComboBoxWithoutContext.prototype, \"element\", {\n /** @hidden */\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ComboBoxWithoutContext.prototype, \"mobileMode\", {\n /**\n * The mobile mode of the ComboBox.\n */\n get: function () {\n var isAdaptive = this.state.windowWidth && this.state.windowWidth <= MOBILE_MEDIUM_DEVISE && this.props.adaptive;\n return !!isAdaptive;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ComboBoxWithoutContext.prototype, \"value\", {\n /**\n * The value of the ComboBox.\n */\n get: function () {\n if (this._valueDuringOnChange !== undefined) {\n return this._valueDuringOnChange;\n }\n else if (this.props.value !== undefined) {\n return this.props.value;\n }\n else if (this.state.value !== undefined) {\n return this.state.value;\n }\n else if (this.props.defaultValue !== undefined) {\n return this.props.defaultValue;\n }\n return undefined;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ComboBoxWithoutContext.prototype, \"index\", {\n /**\n * The index of the selected item.\n */\n get: function () {\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, dataItemKey = _a.dataItemKey;\n var value = this.value;\n // TO DO: deprecate it!\n return data.findIndex(function (i) { return areSame(i, value, dataItemKey); });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ComboBoxWithoutContext.prototype, \"name\", {\n /**\n * Gets the `name` property of the ComboBox.\n */\n get: function () {\n return this.props.name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ComboBoxWithoutContext.prototype, \"validity\", {\n /**\n * Represents the validity state into which the component is set.\n */\n get: function () {\n // remove the undefined check when this is fixed:\n // https://github.com/telerik/kendo-react-private/issues/252\n var customError = this.props.validationMessage !== undefined;\n var isValid = (!this.required\n || (this.value !== null && this.value !== '' && this.value !== undefined));\n var valid = this.props.valid !== undefined ? this.props.valid : isValid;\n return {\n customError: customError,\n valid: valid,\n valueMissing: this.value === null\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ComboBoxWithoutContext.prototype, \"validityStyles\", {\n get: function () {\n return this.props.validityStyles !== undefined\n ? this.props.validityStyles\n : ComboBoxWithoutContext.defaultProps.validityStyles;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ComboBoxWithoutContext.prototype, \"required\", {\n /** @hidden */\n get: function () {\n return this.props.required !== undefined\n ? this.props.required\n : ComboBoxWithoutContext.defaultProps.required;\n },\n enumerable: false,\n configurable: true\n });\n /** @hidden */\n ComboBoxWithoutContext.prototype.componentDidUpdate = function (prevProps, prevState) {\n var _a;\n var _b = this.props, dataItemKey = _b.dataItemKey, virtual = _b.virtual, _c = _b.groupField, groupField = _c === void 0 ? '' : _c, _d = _b.data, data = _d === void 0 ? [] : _d, textField = _b.textField;\n var prevTotal = prevProps.virtual ? prevProps.virtual.total : 0;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var prevOpened = prevProps.opened !== undefined ? prevProps.opened : prevState.opened;\n var opening = !prevOpened && opened;\n var selectedItem = this.value;\n this._valueOnDidUpdate = selectedItem;\n if (virtual && virtual.total !== prevTotal) {\n this.base.vs.calcScrollElementHeight();\n this.base.vs.reset();\n }\n else {\n var prevSelectedItem = prevProps.value !== undefined ? prevProps.value : prevState.value;\n var selectedItemIndex = data.findIndex(function (i) { return areSame(i, selectedItem, dataItemKey); });\n // Needed to calculate the proper item index when in 'modern' grouping mode\n if (this.props.groupMode === 'modern' && textField && selectedItem) {\n selectedItemIndex = (_a = this.base.getGroupedDataModernMode(data, groupField)) === null || _a === void 0 ? void 0 : _a.map(function (el) { return el[textField]; }).indexOf(selectedItem[textField]);\n }\n var selectedItemChanged = !areSame(prevSelectedItem, selectedItem, dataItemKey);\n if (opening && virtual) {\n this.base.scrollToVirtualItem(virtual, selectedItemIndex);\n }\n else if (opening && !virtual) {\n this.onPopupOpened();\n // Resets the sticky header group value for scenarios with open/close of component's popup\n if (data && data.length !== 0) {\n this.base.resetGroupStickyHeader(data[0][groupField], this);\n }\n this.base.scrollToItem(selectedItemIndex);\n }\n else if (opened && prevOpened && selectedItem && selectedItemChanged) {\n this.base.scrollToItem(selectedItemIndex);\n }\n }\n if (opening && this._input) {\n this._input.focus();\n }\n this.setValidity();\n };\n /** @hidden */\n ComboBoxWithoutContext.prototype.componentDidMount = function () {\n var _a;\n this.observerResize = canUseDOM && window.ResizeObserver && new window.ResizeObserver(this.calculateMedia.bind(this));\n this.base.didMount();\n this.setValidity();\n if (((_a = this.document) === null || _a === void 0 ? void 0 : _a.body) && this.observerResize) {\n this.observerResize.observe(this.document.body);\n }\n };\n /** @hidden */\n ComboBoxWithoutContext.prototype.componentWillUnmount = function () {\n var _a;\n if (((_a = this.document) === null || _a === void 0 ? void 0 : _a.body) && this.observerResize) {\n this.observerResize.disconnect();\n }\n };\n /** @hidden */\n ComboBoxWithoutContext.prototype.render = function () {\n var _a;\n var btnAriaLabelExpand = provideLocalizationService(this).toLanguageString(comboArrowBtnAriaLabelExpand, messages[comboArrowBtnAriaLabelExpand]);\n var btnAriaLabelCollapse = provideLocalizationService(this).toLanguageString(comboArrowBtnAriaLabelCollapse, messages[comboArrowBtnAriaLabelCollapse]);\n var _b = this.props, dir = _b.dir, disabled = _b.disabled, _c = _b.clearButton, clearButton = _c === void 0 ? ComboBoxWithoutContext.defaultProps.clearButton : _c, label = _b.label, textField = _b.textField, adaptive = _b.adaptive, className = _b.className, style = _b.style, loading = _b.loading, iconClassName = _b.iconClassName, virtual = _b.virtual, size = _b.size, rounded = _b.rounded, fillMode = _b.fillMode, _d = _b.opened, opened = _d === void 0 ? this.state.opened : _d, placeholder = _b.placeholder;\n var _e = this.state.windowWidth, windowWidth = _e === void 0 ? 0 : _e;\n var isValid = !this.validityStyles || this.validity.valid;\n var text = this.props.filter !== undefined ? this.props.filter : this.state.text;\n var selectedItemText = getItemValue(this.value, textField);\n var inputText = isPresent(text) ? text : selectedItemText;\n var renderClearButton = clearButton && (!!(inputText) || isPresent(this.value));\n var base = this.base;\n var vs = base.vs;\n var id = this.props.id || this._inputId;\n var renderAdaptive = windowWidth <= MOBILE_MEDIUM_DEVISE && adaptive;\n vs.enabled = virtual !== undefined;\n if (virtual !== undefined) {\n vs.skip = virtual.skip;\n vs.total = virtual.total;\n vs.pageSize = virtual.pageSize;\n }\n var combobox = (React.createElement(React.Fragment, null,\n React.createElement(\"span\", { className: classNames('k-combobox k-input', (_a = {},\n _a[\"k-input-\".concat(sizeMap[size] || size)] = size,\n _a[\"k-rounded-\".concat(roundedMap[rounded] || rounded)] = rounded,\n _a[\"k-input-\".concat(fillMode)] = fillMode,\n _a['k-invalid'] = !isValid,\n _a['k-loading'] = loading,\n _a['k-required'] = this.required,\n _a['k-disabled'] = disabled,\n _a), className), ref: this.componentRef, style: !label ? style : __assign(__assign({}, style), { width: undefined }), dir: dir },\n this.renderSearchBar(inputText || '', id, placeholder),\n renderClearButton && !loading && React.createElement(ClearButton, { onClick: this.clearButtonClick, key: \"clearbutton\" }),\n loading && React.createElement(IconWrap, { className: \"k-input-loading-icon\", name: 'loading', key: \"loading\" }),\n React.createElement(Button, { tabIndex: -1, type: \"button\", \"aria-label\": opened ? btnAriaLabelCollapse : btnAriaLabelExpand, icon: !iconClassName ? 'caret-alt-down' : undefined, svgIcon: !iconClassName ? caretAltDownIcon : this.props.svgIcon, iconClass: iconClassName, size: size, fillMode: fillMode, rounded: null, themeColor: 'base', className: \"k-input-button\", onClick: this.toggleBtnClick, onMouseDown: function (e) { return e.preventDefault(); } }),\n !renderAdaptive && this.renderListContainer()),\n renderAdaptive && this.renderAdaptiveListContainer()));\n return label\n ? (React.createElement(FloatingLabel, { label: label, editorId: id, editorValue: inputText, editorValid: isValid, editorDisabled: disabled, style: { width: style ? style.width : undefined }, children: combobox }))\n : combobox;\n };\n /** @hidden */\n ComboBoxWithoutContext.prototype.onNavigate = function (state, keyCode, skipItems) {\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, _c = _a.virtual, virtual = _c === void 0 ? { skip: 0 } : _c;\n var text = this.props.filter ? this.props.filter : this.state.text;\n var focusedIndex = this.getFocusedIndex();\n var vs = this.base.vs;\n var value = this.value;\n this._suggested = '';\n if (focusedIndex !== -1 && !isPresent(value)) {\n this.handleItemSelect(focusedIndex, state);\n }\n else if (text === '') {\n this.handleItemSelect(0, state);\n }\n else {\n var currentIndex = virtual.skip + focusedIndex;\n var newIndex = this.base.navigation.navigate({\n keyCode: keyCode,\n current: currentIndex,\n max: (vs.enabled ? vs.total : data.length) - 1,\n min: 0,\n skipItems: skipItems ? skipItems : undefined\n });\n if (newIndex !== undefined) {\n this.handleItemSelect(newIndex, state);\n }\n }\n };\n ;\n ComboBoxWithoutContext.prototype.getCurrentValueDisabledStatus = function (textField, data, focusedIndex) {\n return textField && data && data[focusedIndex] && data[focusedIndex].disabled;\n };\n ComboBoxWithoutContext.prototype.applyValueOnEnter = function (value, state) {\n var _a;\n var _b = this.props, _c = _b.data, data = _c === void 0 ? [] : _c, textField = _b.textField, allowCustom = _b.allowCustom;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var currentValueText = getItemValue(this.value, textField);\n var valueIndex = currentValueText === value ?\n this.index : getItemIndexByText(data, value, textField);\n var itemSelected = valueIndex !== -1;\n var newSelected = undefined;\n this._suggested = '';\n if (itemSelected) { // typed text match item from list\n newSelected = data[valueIndex];\n }\n else {\n if (allowCustom) { // any custom text not in list\n newSelected = textField !== undefined ? (_a = {}, _a[textField] = value, _a) : value;\n }\n else {\n return this.selectFocusedItem(value, state);\n }\n }\n this.triggerOnChange(newSelected, state);\n if (opened) {\n this.base.togglePopup(state);\n }\n if (this.props.filter === undefined && this.state.text !== undefined) {\n state.data.text = undefined;\n }\n this.applyState(state);\n };\n ComboBoxWithoutContext.prototype.applyValueOnRejectSuggestions = function (text, state) {\n var _a;\n var _b = this.props, _c = _b.data, data = _c === void 0 ? [] : _c, textField = _b.textField, allowCustom = _b.allowCustom;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var valueItemText = getItemValue(this.value, textField);\n var isMobileDevice = this.state.windowWidth && this.state.windowWidth <= MOBILE_MEDIUM_DEVISE;\n this._suggested = '';\n if (text === valueItemText || (text === '' && !isPresent(valueItemText))) {\n if (opened && !isMobileDevice) {\n this.base.togglePopup(state);\n }\n return this.applyState(state);\n }\n var valueIndex = getItemIndexByText(data, text, textField, true);\n var itemSelected = valueIndex !== -1;\n var newSelected = null;\n if (itemSelected) {\n newSelected = data[valueIndex];\n }\n else if (allowCustom) {\n newSelected = text ? (textField ? (_a = {}, _a[textField] = text, _a) : text) : null;\n }\n this.triggerOnChange(newSelected, state);\n if (this.state.text !== undefined) {\n state.data.text = undefined;\n this.base.filterChanged('', state);\n }\n if (opened && !isMobileDevice) {\n this.base.togglePopup(state);\n }\n this.applyState(state);\n };\n ComboBoxWithoutContext.prototype.selectFocusedItem = function (text, state) {\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField, _c = _a.virtual, virtual = _c === void 0 ? { skip: 0 } : _c, _d = _a.focusedItemIndex, focusedItemIndex = _d === void 0 ? itemIndexStartsWith : _d;\n var skip = virtual.skip;\n var focusedIndex = (text === '' && skip === 0) ? 0 :\n focusedItemIndex(data, text, textField);\n if (focusedIndex !== -1) {\n this.handleItemSelect(focusedIndex + skip, state);\n }\n else {\n this.triggerOnChange(null, state);\n if (this.state.text !== undefined) {\n state.data.text = undefined;\n }\n }\n if (opened) {\n this.base.togglePopup(state);\n }\n return this.applyState(state);\n };\n ComboBoxWithoutContext.prototype.renderAdaptiveListContainer = function () {\n var _a;\n var _this = this;\n var _b = this.state.windowWidth, windowWidth = _b === void 0 ? 0 : _b;\n var _c = this.props, header = _c.header, footer = _c.footer, size = _c.size, _d = _c.data, data = _d === void 0 ? [] : _d, groupField = _c.groupField, groupMode = _c.groupMode, list = _c.list, virtual = _c.virtual, adaptiveTitle = _c.adaptiveTitle, groupStickyHeaderItemRender = _c.groupStickyHeaderItemRender;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var group = this.state.group;\n if (group === undefined && groupField !== undefined) {\n group = getItemValue(data[0], groupField);\n }\n var actionSheetProps = {\n navigatable: false,\n navigatableElements: [],\n expand: opened,\n animation: true,\n onClose: function (event) { return _this.toggleBtnClick(event); },\n animationStyles: windowWidth <= MOBILE_SMALL_DEVISE ? { top: 0, width: '100%', height: '100%' } : undefined,\n className: windowWidth <= MOBILE_SMALL_DEVISE\n ? 'k-adaptive-actionsheet k-actionsheet-fullscreen'\n : 'k-adaptive-actionsheet k-actionsheet-bottom'\n };\n return (React.createElement(React.Fragment, null,\n React.createElement(ActionSheet, __assign({}, actionSheetProps),\n React.createElement(ActionSheetHeader, { className: 'k-text-center' },\n React.createElement(\"div\", { className: \"k-actionsheet-titlebar-group k-hbox\" },\n React.createElement(\"div\", { className: \"k-actionsheet-title\" },\n React.createElement(\"div\", null, adaptiveTitle)),\n React.createElement(\"div\", { className: \"k-actionsheet-actions\" },\n React.createElement(Button, { tabIndex: 0, \"aria-label\": \"Cancel\", \"aria-disabled\": \"false\", type: \"button\", fillMode: \"flat\", onClick: this.toggleBtnClick, icon: 'x', svgIcon: xIcon }))),\n React.createElement(\"div\", { className: \"k-actionsheet-titlebar-group k-actionsheet-filter\" }, this.renderMobileListFilter())),\n React.createElement(ActionSheetContent, { className: '!k-overflow-hidden' },\n React.createElement(\"div\", { className: 'k-list-container' },\n React.createElement(\"div\", { className: classNames((_a = {},\n _a['k-list'] = !list,\n _a['k-list-lg'] = true,\n _a['k-virtual-list'] = virtual,\n _a['k-data-table'] = list,\n _a[\"k-table-\".concat(sizeMap[size] || size)] = list && size,\n _a)) },\n header && React.createElement(\"div\", { className: \"k-table-header\" }, header),\n !list && group && data.length !== 0 && React.createElement(GroupStickyHeader, { group: group, groupMode: groupMode, render: groupStickyHeaderItemRender }),\n this.renderList(),\n footer && React.createElement(\"div\", { className: \"k-list-footer\" }, footer)))))));\n };\n ComboBoxWithoutContext.prototype.renderListContainer = function () {\n var _a, _b;\n var base = this.base;\n var _c = this.props, dir = _c.dir, header = _c.header, footer = _c.footer, _d = _c.data, data = _d === void 0 ? [] : _d, groupField = _c.groupField, groupMode = _c.groupMode, size = _c.size, list = _c.list, virtual = _c.virtual, groupStickyHeaderItemRender = _c.groupStickyHeaderItemRender;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var popupSettings = base.getPopupSettings();\n var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;\n var group = this.state.group;\n if (group === undefined && groupField !== undefined) {\n group = getItemValue(data[0], groupField);\n }\n return (React.createElement(ListContainer, { width: popupWidth, popupSettings: {\n animate: popupSettings.animate,\n anchor: this.element,\n show: opened,\n popupClass: classNames(popupSettings.popupClass, 'k-list-container', 'k-combobox-popup'),\n className: popupSettings.className,\n appendTo: popupSettings.appendTo\n }, dir: dir !== undefined ? dir : this.base.dirCalculated, itemsCount: [data.length] },\n React.createElement(\"div\", { className: classNames((_a = {},\n _a['k-list'] = !list,\n _a[\"k-list-\".concat(sizeMap[size] || size)] = !list && size,\n _a['k-virtual-list'] = virtual,\n _a['k-data-table'] = list,\n _a[\"k-table-\".concat(sizeMap[size] || size)] = list && size,\n _a)) },\n header && React.createElement(\"div\", { className: \"k-table-header\" }, header),\n !list && group && data.length !== 0 && React.createElement(GroupStickyHeader, { group: group, groupMode: groupMode, render: groupStickyHeaderItemRender }),\n this.renderList(),\n footer &&\n React.createElement(\"div\", { className: classNames((_b = {},\n _b['k-list-footer'] = !this.props.footerClassName,\n _b), this.props.footerClassName) }, footer))));\n };\n ComboBoxWithoutContext.prototype.renderList = function () {\n var _a;\n var _this = this;\n var base = this.base;\n var _b = this.props, textField = _b.textField, dataItemKey = _b.dataItemKey, listNoDataRender = _b.listNoDataRender, itemRender = _b.itemRender, groupHeaderItemRender = _b.groupHeaderItemRender, _c = _b.data, data = _c === void 0 ? [] : _c, _d = _b.virtual, virtual = _d === void 0 ? { skip: 0 } : _d;\n var popupSettings = base.getPopupSettings();\n var vs = base.vs;\n var skip = virtual.skip;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var translate = \"translateY(\".concat(vs.translate, \"px)\");\n var focusedIndex = opened ? this.getFocusedIndex() : undefined;\n var text = this.props.filter !== undefined ? this.props.filter : this.state.text;\n var selectedItemText = getItemValue(this.value, textField);\n var value = isPresent(text) && text !== selectedItemText ? null : this.value;\n var ListComponent = this.props.list || List;\n return (React.createElement(ListComponent, { id: base.listBoxId, virtual: Boolean(virtual), show: opened, data: data, focusedIndex: focusedIndex, value: value, textField: textField, valueField: dataItemKey, groupField: this.props.groupField, groupMode: this.props.groupMode, isMultiColumn: this.props.isMultiColumn, optionsGuid: base.guid, listRef: function (list) { vs.list = _this.base.list = list; _this.itemHeight = 0; }, wrapperStyle: (this.state.windowWidth && this.state.windowWidth > MOBILE_MEDIUM_DEVISE)\n ? { maxHeight: popupSettings.height }\n : {}, wrapperCssClass: classNames('k-list-content', (_a = {},\n _a['k-list-scroller'] = !virtual,\n _a)), listStyle: vs.enabled ? { transform: translate } : undefined, key: \"listkey\", skip: skip, onClick: this.handleItemClick, itemRender: itemRender, groupHeaderItemRender: groupHeaderItemRender, noDataRender: listNoDataRender, onMouseDown: function (e) { return e.preventDefault(); }, onScroll: this.onScroll, wrapperRef: vs.scrollerRef, scroller: this.base.renderScrollElement() }));\n };\n ComboBoxWithoutContext.prototype.renderSearchBar = function (text, id, placeholder) {\n var _this = this;\n var _a = this.props, tabIndex = _a.tabIndex, disabled = _a.disabled, _b = _a.data, data = _b === void 0 ? [] : _b, dataItemKey = _a.dataItemKey, _c = _a.virtual, virtual = _c === void 0 ? { skip: 0 } : _c;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var value = this.value;\n var selectedIndex = Math.max(0, data.findIndex(function (i) { return areSame(i, value, dataItemKey); }));\n if (this._suggested && !areSame(this._valueOnDidUpdate, value, dataItemKey)) {\n this._suggested = '';\n }\n return (React.createElement(SearchBar, { id: id, readOnly: (opened && this.mobileMode), placeholder: placeholder, tabIndex: tabIndex, title: this.props.title, accessKey: this.props.accessKey, value: text + this._suggested, suggestedText: this._suggested, ref: function (el) { return _this._input = el && el.input; }, onClick: this.onInputClick, onKeyDown: this.onInputKeyDown, onChange: this.inputOnChange, onFocus: this.base.handleFocus, onBlur: this.handleBlur, disabled: disabled, expanded: opened, owns: this.base.listBoxId, activedescendant: \"option-\".concat(this.base.guid, \"-\").concat(selectedIndex + virtual.skip), role: \"combobox\", ariaLabelledBy: this.props.ariaLabelledBy, ariaDescribedBy: this.props.ariaDescribedBy, ariaRequired: this.required, render: this.props.valueRender }));\n };\n ComboBoxWithoutContext.prototype.clearValue = function () {\n var state = this.base.initState();\n this._suggested = '';\n this.base.filterChanged('', state);\n if (this.props.filter === undefined && this.state.text !== undefined) {\n state.data.text = undefined;\n }\n this.triggerOnChange(null, state);\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var isAdaptive = this.mobileMode;\n if (opened && !isAdaptive) {\n this.base.togglePopup(state);\n }\n this.applyState(state);\n };\n ComboBoxWithoutContext.prototype.triggerOnChange = function (item, state) {\n var value = this.value;\n if ((!isPresent(value) && !isPresent(item)) || areSame(value, item, this.props.dataItemKey)) {\n return;\n }\n if (this.props.value === undefined) {\n state.data.value = item;\n }\n this._valueDuringOnChange = item;\n state.events.push({ type: 'onChange' });\n };\n ComboBoxWithoutContext.prototype.getFocusedIndex = function () {\n var value = this.value;\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField, dataItemKey = _a.dataItemKey, _c = _a.virtual, virtual = _c === void 0 ? { skip: 0 } : _c, _d = _a.focusedItemIndex, focusedItemIndex = _d === void 0 ? itemIndexStartsWith : _d, skipDisabledItems = _a.skipDisabledItems;\n var text = this.props.filter ? this.props.filter : this.state.text;\n if (isPresent(value) && text === undefined) {\n return data.findIndex(function (i) { return areSame(i, value, dataItemKey); });\n }\n else if (text) {\n return focusedItemIndex(data, text, textField);\n }\n else if (skipDisabledItems && textField && !text && virtual.skip === 0) {\n return data.findIndex(function (i) { return !i.disabled && i[textField]; });\n }\n else {\n return virtual.skip === 0 ? 0 : -1;\n }\n };\n ComboBoxWithoutContext.prototype.suggestValue = function (value) {\n var _a = this.props, data = _a.data, textField = _a.textField;\n this._suggested = suggestValue(value, data, textField);\n };\n ComboBoxWithoutContext.prototype.applyState = function (state) {\n this.base.applyState(state);\n this._valueDuringOnChange = undefined;\n };\n ComboBoxWithoutContext.prototype.calculateMedia = function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n this.setState({ windowWidth: entry.target.clientWidth });\n }\n ;\n };\n ;\n ComboBoxWithoutContext.displayName = 'ComboBox';\n /** @hidden */\n ComboBoxWithoutContext.propTypes = __assign(__assign({}, DropDownBase.propTypes), { size: PropTypes.oneOf([null, 'small', 'medium', 'large']), rounded: PropTypes.oneOf([null, 'small', 'medium', 'large', 'full']), fillMode: PropTypes.oneOf([null, 'solid', 'flat', 'outline']), dataItemKey: PropTypes.string, groupField: PropTypes.string, groupMode: PropTypes.oneOf([undefined, 'classic', 'modern']), isMultiColumn: PropTypes.bool, suggest: PropTypes.bool, placeholder: PropTypes.string, title: PropTypes.string, allowCustom: PropTypes.bool, clearButton: PropTypes.bool, iconClassName: PropTypes.string, svgIcon: svgIconPropType, validationMessage: PropTypes.string, required: PropTypes.bool, id: PropTypes.string, ariaLabelledBy: PropTypes.string, ariaDescribedBy: PropTypes.string, list: PropTypes.any, valueRender: PropTypes.func, skipDisabledItems: PropTypes.bool });\n /** @hidden */\n ComboBoxWithoutContext.defaultProps = __assign(__assign({}, DropDownBase.defaultProps), { size: 'medium', rounded: 'medium', fillMode: 'solid', allowCustom: false, clearButton: true, required: false, groupMode: 'modern', isMultiColumn: false, skipDisabledItems: true });\n return ComboBoxWithoutContext;\n}(React.Component));\nexport { ComboBoxWithoutContext };\n/**\n * Represents the PropsContext of the `ComboBox` component.\n * Used for global configuration of all `ComboBox` instances.\n *\n * For more information, refer to the [Dropdowns Props Context]({% slug props-context_dropdowns %}) article.\n */\nexport var ComboBoxPropsContext = createPropsContext();\n/* eslint-disable @typescript-eslint/no-redeclare -- intentionally naming the component the same as the type */\n/**\n * Represents the [KendoReact ComboBox component]({% slug overview_combobox %}).\n *\n * Accepts properties of type [ComboBoxProps]({% slug api_dropdowns_comboboxprops %}).\n * Obtaining the `ref` returns an object of type [ComboBoxHandle]({% slug api_dropdowns_comboboxhandle %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * combobox = null;\n * render() {\n * return (\n *
    \n * this.combobox = component}\n * />\n * \n *
    \n * );\n * }\n * }\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nexport var ComboBox = withPropsContext(ComboBoxPropsContext, ComboBoxWithoutContext);\nComboBox.displayName = 'KendoReactComboBox';\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport SearchBar from './../common/SearchBar';\nimport ListContainer from './../common/ListContainer';\nimport List from './../common/List';\nimport DropDownBase from '../common/DropDownBase';\nimport GroupStickyHeader from '../common/GroupStickyHeader';\nimport { itemIndexStartsWith, getItemValue, areSame, getFocusedItem } from '../common/utils';\nimport { guid, Keys, classNames, createPropsContext, withPropsContext, kendoThemeMaps, IconWrap } from '@progress/kendo-react-common';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport ClearButton from '../common/ClearButton';\nvar VALIDATION_MESSAGE = 'Please enter a valid value!';\nvar sizeMap = kendoThemeMaps.sizeMap, roundedMap = kendoThemeMaps.roundedMap;\n/** @hidden */\nvar AutoCompleteWithoutContext = /** @class */ (function (_super) {\n __extends(AutoCompleteWithoutContext, _super);\n function AutoCompleteWithoutContext(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.state = {};\n _this.base = new DropDownBase(_this);\n _this._element = null;\n _this._inputId = guid();\n _this._suggested = '';\n _this._input = null;\n _this._isScrolling = false;\n _this.itemHeight = 0;\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this._input) {\n _this._input.focus();\n }\n };\n /**\n * @hidden\n */\n _this.handleItemSelect = function (index, state) {\n var _a = _this.props.data, data = _a === void 0 ? [] : _a;\n var newText = getItemValue(data[index], _this.props.textField);\n _this.triggerOnChange(newText, state);\n };\n /**\n * @hidden\n */\n _this.itemFocus = function (index, state) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField;\n var focusedItem = data[index];\n if (!areSame(_this.state.focusedItem, focusedItem, textField)) {\n state.data.focusedItem = focusedItem;\n }\n };\n /**\n * @hidden\n */\n _this.togglePopup = function (state) {\n _this.base.togglePopup(state);\n };\n _this.setValidity = function () {\n if (_this._input && _this._input.setCustomValidity) {\n _this._input.setCustomValidity(_this.validity.valid\n ? ''\n : _this.props.validationMessage || VALIDATION_MESSAGE);\n }\n };\n _this.onScroll = function (event) {\n _this._isScrolling = true;\n var list = _this.base.list;\n var groupField = _this.props.groupField;\n var _a = _this.props.data, data = _a === void 0 ? [] : _a;\n if (!groupField || !data.length) {\n return;\n }\n var itemHeight = _this.itemHeight || (list ? list.children[0].offsetHeight : 0);\n var target = event.target;\n var scrollTop = target.scrollTop;\n if (groupField) {\n data = _this.base.getGroupedDataModernMode(data, groupField);\n }\n ;\n var group = data[0][groupField];\n for (var i = 1; i < data.length; i++) {\n if (itemHeight * i > scrollTop) {\n break;\n }\n if (data[i] && data[i][groupField]) {\n group = data[i][groupField];\n }\n }\n if (group !== _this.state.group) {\n _this.setState({\n group: group\n });\n }\n };\n _this.handleItemClick = function (index, event) {\n _this.base.handleItemClick(index, event);\n _this._valueDuringOnChange = undefined;\n };\n _this.onChangeHandler = function (event) {\n var base = _this.base;\n var state = base.initState();\n var input = event.currentTarget;\n var value = input.value;\n var selectionAtEnd = input.selectionEnd === value.length;\n state.syntheticEvent = event;\n var prevSuggestion = _this._suggested;\n var prevValue = _this.value;\n var prevUserInput = prevValue &&\n prevValue.substring(0, prevValue.length - prevSuggestion.length);\n var deletedSuggestion = prevUserInput && prevUserInput === value;\n var deleting = prevUserInput && prevUserInput.length > value.length;\n var suggest = _this.props.suggest;\n var opened = _this.props.opened !== undefined ?\n _this.props.opened : _this.state.opened;\n if (suggest !== undefined && suggest !== false) {\n if (deletedSuggestion || deleting || !selectionAtEnd) {\n _this._suggested = '';\n }\n else {\n _this.suggestValue(value);\n }\n var newValue = value + _this._suggested;\n var suggestion = { userInput: value, value: _this._suggested };\n _this.triggerOnChange(newValue, state, { suggestion: suggestion });\n }\n else {\n _this._suggested = '';\n _this.triggerOnChange(value, state);\n }\n if ((!opened && value) || (opened && !value)) {\n _this.togglePopup(state);\n }\n state.data.focusedItem = undefined;\n _this.applyState(state);\n _this.setState({ group: undefined });\n };\n _this.clearButtonClick = function (event) {\n var base = _this.base;\n var state = base.initState();\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n state.syntheticEvent = event;\n var newValue = '';\n _this._suggested = '';\n _this.triggerOnChange(newValue, state);\n if (_this.state.focusedItem !== undefined) {\n state.data.focusedItem = undefined;\n }\n if (opened) {\n _this.togglePopup(state);\n }\n _this.applyState(state);\n };\n _this.onInputKeyDown = function (event) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, skipDisabledItems = _a.skipDisabledItems, groupField = _a.groupField, textField = _a.textField;\n if (_this._isScrolling) {\n _this._isScrolling = false;\n }\n var focusedIndex = _this.focusedIndex();\n var focusedItem = data[focusedIndex];\n var keyCode = event.keyCode;\n var altOrOptionsKeyPressed = event.altKey;\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var state = _this.base.initState();\n state.syntheticEvent = event;\n var preventDefault = function () {\n if (opened) {\n event.preventDefault();\n }\n };\n if (altOrOptionsKeyPressed && keyCode === Keys.down) {\n _this.setState({\n opened: true\n });\n }\n else if (altOrOptionsKeyPressed && keyCode === Keys.up) {\n _this.setState({\n opened: false\n });\n }\n else if (opened && keyCode === Keys.pageUp) {\n _this.base.scrollPopupByPageSize(-1);\n }\n else if (opened && keyCode === Keys.pageDown) {\n _this.base.scrollPopupByPageSize(1);\n }\n else if (opened && (keyCode === Keys.enter || keyCode === Keys.esc)) {\n preventDefault();\n if (skipDisabledItems === false && focusedItem && focusedItem.disabled) {\n if (opened) {\n _this.togglePopup(state);\n }\n _this.applyState(state);\n }\n else {\n _this.applyInputValue(event.currentTarget.value, state, event.keyCode);\n }\n }\n else if (!opened && keyCode === Keys.esc) {\n var newValue = '';\n _this._suggested = '';\n _this.triggerOnChange(newValue, state);\n if (_this.state.focusedItem !== undefined) {\n state.data.focusedItem = undefined;\n }\n _this.applyState(state);\n }\n else if (keyCode === Keys.up || keyCode === Keys.down) {\n if (groupField !== '' && textField) {\n if (!_this.props.skipDisabledItems && opened) {\n _this.onNavigate(state, keyCode);\n }\n else {\n var newIndex = 0;\n if (keyCode === Keys.down || keyCode === Keys.right) {\n var tempnewIndex_1 = data.slice(focusedIndex + 1).find(function (i) { return !i.disabled && i[textField]; });\n newIndex = tempnewIndex_1 && data.findIndex(function (el) { return el[textField] === tempnewIndex_1[textField]; });\n }\n else if (keyCode === Keys.up || keyCode === Keys.left) {\n var dataToSearch = void 0;\n if (focusedIndex === -1) {\n dataToSearch = data;\n newIndex = data.findIndex(function (i) { return !i.disabled && i[textField]; });\n }\n else {\n dataToSearch = data.slice(0, focusedIndex);\n var tempnewIndex_2 = dataToSearch.pop();\n while (tempnewIndex_2 && tempnewIndex_2.disabled) {\n tempnewIndex_2 = dataToSearch.pop();\n }\n newIndex = tempnewIndex_2 && data.findIndex(function (el) { return el[textField] === tempnewIndex_2[textField]; });\n }\n }\n if (newIndex !== undefined) {\n var skipItems = newIndex - focusedIndex;\n _this.onNavigate(state, keyCode, skipItems);\n }\n else if (newIndex === undefined && data.findIndex(function (el) { return el[textField]; }) === data.length - 1) {\n _this.onNavigate(state, keyCode);\n }\n }\n }\n else if (!_this.props.skipDisabledItems && opened) {\n _this.onNavigate(state, keyCode);\n }\n else {\n var newIndex = null;\n if (keyCode === Keys.down || keyCode === Keys.right) {\n newIndex = data.slice(focusedIndex + 1).find(function (i) { return !i.disabled; });\n }\n else if (keyCode === Keys.up || keyCode === Keys.left) {\n var dataTest = data.slice(0, focusedIndex);\n newIndex = dataTest.pop();\n while (newIndex && newIndex.disabled) {\n newIndex = dataTest.pop();\n }\n }\n if (newIndex) {\n var skipItems = newIndex.id - focusedIndex - 1;\n _this.onNavigate(state, keyCode, skipItems);\n }\n else {\n _this.onNavigate(state, keyCode);\n }\n }\n _this.applyState(state);\n preventDefault();\n }\n };\n _this.handleBlur = function (event) {\n if (_this.state.focused) {\n var state = _this.base.initState();\n state.data.focused = false;\n state.events.push({ type: 'onBlur' });\n state.syntheticEvent = event;\n _this.applyInputValue(event.currentTarget.value, state);\n }\n };\n validatePackage(packageMetadata);\n return _this;\n }\n Object.defineProperty(AutoCompleteWithoutContext.prototype, \"element\", {\n /**\n * @hidden\n */\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AutoCompleteWithoutContext.prototype, \"value\", {\n /**\n * The value of the AutoComplete.\n */\n get: function () {\n if (this._valueDuringOnChange !== undefined) {\n return this._valueDuringOnChange;\n }\n else if (this.props.value !== undefined) {\n return this.props.value;\n }\n else if (this.state.value !== undefined) {\n return this.state.value;\n }\n else if (this.props.defaultValue !== undefined) {\n return this.props.defaultValue;\n }\n return '';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AutoCompleteWithoutContext.prototype, \"name\", {\n /**\n * Gets the `name` property of the AutoComplete.\n */\n get: function () {\n return this.props.name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AutoCompleteWithoutContext.prototype, \"validity\", {\n /**\n * Represents the validity state into which the AutoComplete is set.\n */\n get: function () {\n // The AutoComplete component is in a invalid state\n // only if it's required and the value is null!\n var customError = this.props.validationMessage !== undefined;\n var isValid = (!this.required || this.value !== '');\n var valid = this.props.valid !== undefined ? this.props.valid : isValid;\n return {\n customError: customError,\n valid: valid,\n valueMissing: this.value === null\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AutoCompleteWithoutContext.prototype, \"validityStyles\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.validityStyles !== undefined\n ? this.props.validityStyles\n : AutoCompleteWithoutContext.defaultProps.validityStyles;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AutoCompleteWithoutContext.prototype, \"required\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.required !== undefined\n ? this.props.required\n : AutoCompleteWithoutContext.defaultProps.required;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n AutoCompleteWithoutContext.prototype.componentDidUpdate = function (prevProps, prevState) {\n var _a;\n var _b = this.props, _c = _b.groupField, groupField = _c === void 0 ? '' : _c, _d = _b.data, data = _d === void 0 ? [] : _d;\n var _e = prevProps.data, prevData = _e === void 0 ? [] : _e;\n var focusedIndex = this.focusedIndex();\n var focusedItem = data[focusedIndex];\n var dataChanged = prevData !== data;\n var focusedItemChanged = focusedItem !== undefined && prevState.focusedItem !== focusedItem;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var prevOpened = prevProps.opened !== undefined ? prevProps.opened : prevState.opened;\n var opening = !prevOpened && opened;\n if (groupField === '') {\n if ((opened && (focusedItemChanged || dataChanged)) || opening) {\n this.base.scrollToItem(focusedIndex);\n }\n }\n else if (!this._isScrolling) {\n var focusedItemIndex = (_a = this.base.getGroupedDataModernMode(data, groupField)) === null || _a === void 0 ? void 0 : _a.indexOf(focusedItem);\n if (opening) {\n // Resets the sticky header group value for scenarios with open/close of component's popup\n if (data && data.length !== 0) {\n this.base.resetGroupStickyHeader(data[0][groupField], this);\n }\n this.base.scrollToItem(focusedItemIndex);\n }\n ;\n if (opened && prevOpened && focusedItemChanged) {\n this.base.scrollToItem(focusedItemIndex);\n }\n }\n this.setValidity();\n };\n /**\n * @hidden\n */\n AutoCompleteWithoutContext.prototype.componentDidMount = function () {\n this.base.didMount();\n this.setValidity();\n };\n /**\n * @hidden\n */\n AutoCompleteWithoutContext.prototype.render = function () {\n var _a;\n var _this = this;\n var _b = this.props, dir = _b.dir, disabled = _b.disabled, label = _b.label, className = _b.className, style = _b.style, loading = _b.loading, suggest = _b.suggest, size = _b.size, rounded = _b.rounded, fillMode = _b.fillMode;\n var isValid = !this.validityStyles || this.validity.valid;\n var base = this.base;\n var value = this.value;\n var renderClearButton = this.props.clearButton !== false && !loading && !!value;\n var id = this.props.id || this._inputId;\n if (typeof suggest === 'string') {\n this._suggested = suggest;\n }\n var autoComplete = (React.createElement(\"span\", { className: classNames('k-autocomplete k-input', className, (_a = {},\n _a[\"k-input-\".concat(sizeMap[size] || size)] = size,\n _a[\"k-rounded-\".concat(roundedMap[rounded] || rounded)] = rounded,\n _a[\"k-input-\".concat(fillMode)] = fillMode,\n _a['k-invalid'] = !isValid,\n _a['k-loading'] = loading,\n _a['k-required'] = this.required,\n _a['k-disabled'] = disabled,\n _a)), ref: function (element) {\n _this._element = element;\n base.wrapper = element;\n }, style: !label\n ? style\n : __assign(__assign({}, style), { width: undefined }), dir: dir },\n this.renderSearchBar(value || '', id),\n loading && React.createElement(IconWrap, { className: \"k-input-loading-icon\", name: 'loading' }),\n renderClearButton && !loading && React.createElement(ClearButton, { onClick: this.clearButtonClick, key: \"clearbutton\" }),\n this.renderListContainer()));\n return label\n ? (React.createElement(FloatingLabel, { label: label, editorId: id, editorValue: value, editorValid: isValid, editorDisabled: disabled, style: { width: style ? style.width : undefined }, children: autoComplete }))\n : autoComplete;\n };\n /**\n * @hidden\n */\n AutoCompleteWithoutContext.prototype.onNavigate = function (state, keyCode, skipItems) {\n var _this = this;\n var typedText = this.value;\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField, focusedItemIndex = _a.focusedItemIndex;\n var focusedIndex = this.state.focusedItem !== undefined ?\n data.findIndex(function (i) { return areSame(i, _this.state.focusedItem, textField); }) :\n (focusedItemIndex ? focusedItemIndex(data, typedText, textField) :\n data.indexOf(getFocusedItem(data, typedText, textField)));\n var newFocused = this.base.navigation.navigate({\n keyCode: keyCode,\n current: focusedIndex,\n max: data.length - 1,\n min: 0,\n skipItems: skipItems ? skipItems : undefined\n });\n if (newFocused !== undefined) {\n this.itemFocus(newFocused, state);\n }\n this.applyState(state);\n };\n /**\n * @hidden\n */\n AutoCompleteWithoutContext.prototype.applyInputValue = function (value, state, eventKey) {\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField;\n var focusedIndex = this.focusedIndex();\n var focusedItem = data[focusedIndex];\n this._suggested = '';\n if (opened && eventKey === Keys.enter) {\n if (focusedItem && !focusedItem.disabled) {\n var newValue = getItemValue(data[this.focusedIndex(value)], textField);\n this.triggerOnChange(newValue, state);\n }\n }\n if (opened) {\n this.togglePopup(state);\n }\n this.applyState(state);\n };\n AutoCompleteWithoutContext.prototype.renderSearchBar = function (value, id) {\n var _this = this;\n var base = this.base;\n var _a = this.props, placeholder = _a.placeholder, tabIndex = _a.tabIndex, disabled = _a.disabled, readonly = _a.readonly;\n var focused = this.state.focused;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n return (React.createElement(SearchBar, { id: id, placeholder: placeholder, tabIndex: tabIndex, accessKey: this.props.accessKey, value: value, suggestedText: this._suggested, focused: focused, name: this.props.name, ref: function (searchbar) { return _this._input = searchbar && searchbar.input; }, onKeyDown: this.onInputKeyDown, onChange: this.onChangeHandler, onFocus: base.handleFocus, onBlur: this.handleBlur, disabled: disabled, readOnly: readonly, expanded: opened, owns: base.listBoxId, activedescendant: 'option-' + base.guid + '-' + this.focusedIndex(), role: \"combobox\", ariaLabelledBy: this.props.ariaLabelledBy, ariaDescribedBy: this.props.ariaDescribedBy, ariaRequired: this.required, render: this.props.valueRender }));\n };\n AutoCompleteWithoutContext.prototype.renderListContainer = function () {\n var _a;\n var base = this.base;\n var _b = this.props, dir = _b.dir, header = _b.header, footer = _b.footer, _c = _b.data, data = _c === void 0 ? [] : _c, size = _b.size, groupField = _b.groupField, list = _b.list, groupStickyHeaderItemRender = _b.groupStickyHeaderItemRender;\n var popupSettings = base.getPopupSettings();\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;\n var group = this.state.group;\n if (group === undefined && groupField !== undefined) {\n group = getItemValue(data[0], groupField);\n }\n return (React.createElement(ListContainer, { width: popupWidth, popupSettings: {\n animate: popupSettings.animate,\n anchor: this.element,\n show: opened,\n popupClass: classNames(popupSettings.popupClass, 'k-list-container', 'k-autocomplete-popup'),\n className: popupSettings.className,\n appendTo: popupSettings.appendTo\n }, dir: dir !== undefined ? dir : this.base.dirCalculated, itemsCount: [data.length] },\n header && React.createElement(\"div\", { className: \"k-list-header\" }, header),\n React.createElement(\"div\", { className: classNames('k-list', (_a = {},\n _a[\"k-list-\".concat(sizeMap[size] || size)] = size,\n _a)) },\n !list && group && data.length !== 0 && React.createElement(GroupStickyHeader, { group: group, groupMode: 'modern', render: groupStickyHeaderItemRender }),\n this.renderList()),\n footer && React.createElement(\"div\", { className: \"k-list-footer\" }, footer)));\n };\n AutoCompleteWithoutContext.prototype.renderList = function () {\n var base = this.base;\n var popupSettings = base.getPopupSettings();\n var _a = this.props, textField = _a.textField, _b = _a.data, data = _b === void 0 ? [] : _b, listNoDataRender = _a.listNoDataRender, itemRender = _a.itemRender, groupHeaderItemRender = _a.groupHeaderItemRender;\n var value = this.value;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n return (React.createElement(List, { id: base.listBoxId, show: opened, data: data.slice(), focusedIndex: this.focusedIndex(), value: value, textField: textField, valueField: textField, highlightSelected: false, optionsGuid: base.guid, groupField: this.props.groupField, groupMode: 'modern', listRef: function (list) { return base.list = list; }, wrapperStyle: { maxHeight: popupSettings.height }, wrapperCssClass: \"k-list-content\", onClick: this.handleItemClick, itemRender: itemRender, groupHeaderItemRender: groupHeaderItemRender, noDataRender: listNoDataRender, onMouseDown: function (e) { return e.preventDefault(); }, onScroll: this.onScroll }));\n };\n AutoCompleteWithoutContext.prototype.triggerOnChange = function (newValue, state, eventArgs) {\n if (this.value === newValue && !eventArgs) {\n return;\n }\n state.data.value = newValue;\n this._valueDuringOnChange = newValue;\n state.events.push(__assign({ type: 'onChange' }, (eventArgs || {})));\n };\n AutoCompleteWithoutContext.prototype.applyState = function (state) {\n this.base.applyState(state);\n this._valueDuringOnChange = undefined;\n };\n AutoCompleteWithoutContext.prototype.suggestValue = function (value) {\n this._suggested = '';\n if (value) {\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField;\n var suggestedItem = data[itemIndexStartsWith(data, value, textField)];\n if (suggestedItem) {\n var suggestedText = getItemValue(suggestedItem, textField);\n if (value.toLowerCase() !== suggestedText.toLowerCase()) {\n this._suggested = suggestedText.substring(value.length);\n }\n }\n }\n };\n AutoCompleteWithoutContext.prototype.focusedIndex = function (value) {\n var _this = this;\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField, focusedItemIndex = _a.focusedItemIndex, skipDisabledItems = _a.skipDisabledItems;\n var inputValue = value !== undefined ? value : this.value;\n if (this.state.focusedItem !== undefined) {\n return data.findIndex(function (i) { return areSame(i, _this.state.focusedItem, textField); });\n }\n else if (focusedItemIndex) {\n return focusedItemIndex(data, inputValue, textField);\n }\n else {\n var indexOfFocusedItem = data.indexOf(getFocusedItem(data, inputValue, textField));\n if (skipDisabledItems && textField && indexOfFocusedItem === -1) {\n return data.findIndex(function (i) { return !i.disabled && i[textField]; });\n }\n return Math.max(0, indexOfFocusedItem);\n }\n };\n AutoCompleteWithoutContext.displayName = 'AutoComplete';\n /**\n * @hidden\n */\n AutoCompleteWithoutContext.propTypes = __assign(__assign({}, DropDownBase.basicPropTypes), { size: PropTypes.oneOf([null, 'small', 'medium', 'large']), rounded: PropTypes.oneOf([null, 'small', 'medium', 'large', 'full']), fillMode: PropTypes.oneOf([null, 'solid', 'flat', 'outline']), groupField: PropTypes.string, suggest: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]), placeholder: PropTypes.string, value: PropTypes.string, defaultValue: PropTypes.string, validationMessage: PropTypes.string, required: PropTypes.bool, readonly: PropTypes.bool, clearButton: PropTypes.bool, valueRender: PropTypes.func, id: PropTypes.string, ariaLabelledBy: PropTypes.string, ariaDescribedBy: PropTypes.string, list: PropTypes.any, skipDisabledItems: PropTypes.bool });\n /**\n * @hidden\n */\n AutoCompleteWithoutContext.defaultProps = __assign(__assign({}, DropDownBase.defaultProps), { size: 'medium', rounded: 'medium', fillMode: 'solid', skipDisabledItems: true });\n return AutoCompleteWithoutContext;\n}(React.Component));\nexport { AutoCompleteWithoutContext };\n/**\n * Represents the PropsContext of the `AutoComplete` component.\n * Used for global configuration of all `AutoComplete` instances.\n *\n * For more information, refer to the [Dropdowns Props Context]({% slug props-context_dropdowns %}) article.\n */\nexport var AutoCompletePropsContext = createPropsContext();\n/* eslint-disable @typescript-eslint/no-redeclare -- intentionally naming the component the same as the type */\n/**\n * Represents the [KendoReact AutoComplete component]({% slug overview_autocomplete %}).\n *\n * Accepts properties of type [AutoCompleteProps]({% slug api_dropdowns_autocompleteprops %}).\n * Obtaining the `ref` returns an object of type [AutoCompleteHandle]({% slug api_dropdowns_autocompletehandle %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * autocomplete = null;\n * render() {\n * return (\n *
    \n * this.autocomplete = component}\n * />\n * \n *
    \n * );\n * }\n * }\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nexport var AutoComplete = withPropsContext(AutoCompletePropsContext, AutoCompleteWithoutContext);\nAutoComplete.displayName = 'KendoReactAutoComplete';\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { Chip } from '@progress/kendo-react-buttons';\nvar preventDefault = function (event) { return event.syntheticEvent.preventDefault(); };\nvar stopPropagation = function (event) { return event.syntheticEvent.stopPropagation(); };\n/**\n * @hidden\n */\nvar TagList = /** @class */ (function (_super) {\n __extends(TagList, _super);\n function TagList() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TagList.prototype.render = function () {\n var _a = this.props, data = _a.data, guid = _a.guid, focused = _a.focused, tagRender = _a.tagRender, TagComponent = _a.tag, onTagDelete = _a.onTagDelete, size = _a.size;\n return (React.createElement(React.Fragment, null,\n data.map(function (tagData, index) {\n var tag = TagComponent ? (React.createElement(TagComponent, { key: tagData.text + index, tagData: tagData, guid: guid, focusedTag: focused, onTagDelete: onTagDelete })) : (React.createElement(Chip, { id: \"tag-\".concat(guid, \"-\").concat(tagData.text.replace(/\\s+/g, '-')), \"aria-selected\": true, role: \"option\", \"aria-setsize\": data.length, key: tagData.text + index, text: tagData.text, removable: true, onRemove: function (e) { return onTagDelete.call(undefined, tagData.data, e.syntheticEvent); }, onMouseDown: preventDefault, onClick: stopPropagation, className: tagData === focused ? 'k-focus' : undefined, size: size }));\n return tagRender ? tagRender(tagData, tag) : tag;\n }),\n this.props.children));\n };\n return TagList;\n}(React.Component));\nexport default TagList;\n","/**\n * @hidden\n */\nexport var ActiveDescendant;\n(function (ActiveDescendant) {\n ActiveDescendant[ActiveDescendant[\"PopupList\"] = 0] = \"PopupList\";\n ActiveDescendant[ActiveDescendant[\"TagsList\"] = 1] = \"TagsList\";\n})(ActiveDescendant || (ActiveDescendant = {}));\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, Keys, guid, createPropsContext, kendoThemeMaps, withPropsContext, IconWrap, canUseDOM } from '@progress/kendo-react-common';\nimport { plusIcon } from '@progress/kendo-svg-icons';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\nimport ListContainer from '../common/ListContainer';\nimport List from '../common/List';\nimport GroupStickyHeader from '../common/GroupStickyHeader';\nimport TagList from './TagList';\nimport SearchBar from '../common/SearchBar';\nimport DropDownBase from '../common/DropDownBase';\nimport { ActiveDescendant } from './../common/settings';\nimport { itemIndexStartsWith, getItemValue, areSame, removeDataItems, isPresent, preventDefaultNonInputs, matchTags } from '../common/utils';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport ClearButton from '../common/ClearButton';\nimport { AdaptiveMode } from '../common/AdaptiveMode';\nimport { ActionSheetContent } from '@progress/kendo-react-layout';\nimport { MOBILE_MEDIUM_DEVISE } from '../common/constants';\nimport { provideLocalizationService } from '@progress/kendo-react-intl';\nimport { adaptiveModeFooterApply, adaptiveModeFooterCancel, messages } from '../messages';\nimport ListFilter from '../common/ListFilter';\nvar sizeMap = kendoThemeMaps.sizeMap, roundedMap = kendoThemeMaps.roundedMap;\nvar VALIDATION_MESSAGE = 'Please enter a valid value!';\nvar preventDefault = function (event) { return event.preventDefault(); };\nvar isCustom = function (type) { return type === FocusedItemType.CustomItem; };\nvar FocusedItemType;\n(function (FocusedItemType) {\n FocusedItemType[FocusedItemType[\"None\"] = 0] = \"None\";\n FocusedItemType[FocusedItemType[\"ListItem\"] = 1] = \"ListItem\";\n FocusedItemType[FocusedItemType[\"CustomItem\"] = 2] = \"CustomItem\";\n})(FocusedItemType || (FocusedItemType = {}));\n/** @hidden */\nvar MultiSelectWithoutContext = /** @class */ (function (_super) {\n __extends(MultiSelectWithoutContext, _super);\n function MultiSelectWithoutContext(props) {\n var _this = _super.call(this, props) || this;\n /** @hidden */\n _this.state = {\n activedescendant: ActiveDescendant.PopupList,\n currentValue: []\n };\n _this._element = null;\n _this._valueItemsDuringOnChange = null;\n _this._inputId = guid();\n _this.base = new DropDownBase(_this);\n _this._tags = [];\n _this._input = null;\n _this._adaptiveInput = null;\n _this._skipFocusEvent = false;\n _this.itemHeight = 0;\n _this.scrollToFocused = false;\n _this.localization = null;\n /** @hidden */\n _this.focus = function () {\n if (_this._input) {\n _this._input.focus();\n }\n };\n /** @hidden */\n _this.handleItemSelect = function (index, state) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, dataItemKey = _a.dataItemKey, virtual = _a.virtual;\n var skip = virtual ? virtual.skip : 0;\n var dataItem = data[index - skip];\n var indexInValue = _this.value.findIndex(function (i) { return areSame(i, dataItem, dataItemKey); });\n var newItems = [];\n if (indexInValue !== -1) { // item is already selected\n newItems = _this.value;\n newItems.splice(indexInValue, 1);\n }\n else {\n newItems = __spreadArray(__spreadArray([], _this.value, true), [dataItem], false);\n }\n var text = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n if (text && !_this.mobileMode) {\n if (_this.state.text) {\n state.data.text = '';\n }\n _this.base.filterChanged('', state);\n }\n if (_this._adaptiveInput) {\n _this._adaptiveInput.blur();\n }\n ;\n if (_this.state.focusedIndex !== undefined) {\n state.data.focusedIndex = undefined;\n }\n _this.triggerOnChange(newItems, state);\n _this.base.triggerPageChangeCornerItems(dataItem, state);\n };\n /** @hidden */\n _this.onTagDelete = function (itemsToRemove, event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n if (_this.opened) {\n _this.base.togglePopup(state);\n }\n if (!_this.state.focused && !_this.mobileMode) {\n state.data.focused = true;\n _this.focus();\n }\n var selected = _this.value;\n removeDataItems(selected, itemsToRemove, _this.props.dataItemKey);\n _this.triggerOnChange(selected, state);\n _this.applyState(state);\n };\n /** @hidden */\n _this.itemFocus = function (index, state) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, allowCustom = _a.allowCustom, virtual = _a.virtual;\n var skip = virtual ? virtual.skip : 0;\n var text = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n var focusedIndex = _this.getFocusedState().focusedIndex;\n var customItem = allowCustom && text;\n var nextFocusedItem = data[index - skip];\n if (nextFocusedItem && focusedIndex !== index) {\n if (_this.state.focusedIndex !== index) {\n state.data.focusedIndex = index;\n state.data.activedescendant = ActiveDescendant.PopupList;\n }\n }\n else if (customItem && index === -1) {\n if (_this.state.focusedIndex !== undefined) {\n state.data.focusedIndex = undefined;\n }\n }\n _this.base.triggerPageChangeCornerItems(nextFocusedItem, state);\n };\n _this.componentRef = function (element) {\n _this._element = element;\n _this.base.wrapper = element;\n };\n _this.searchbarRef = function (searchbar) {\n var input = _this._input = searchbar && searchbar.input;\n if (input && _this.state.focused) {\n window.setTimeout(function () { return input.focus(); }, 0);\n }\n };\n _this.onChangeHandler = function (event) {\n var state = _this.base.initState();\n var value = event.target.value;\n state.syntheticEvent = event;\n if (_this.props.filter === undefined) {\n state.data.text = value;\n }\n state.data.focusedIndex = undefined;\n if (!_this.opened) {\n _this.base.togglePopup(state);\n _this.setState({ currentValue: _this.value });\n }\n _this.base.filterChanged(value, state);\n _this.applyState(state);\n _this.setState({ group: undefined });\n };\n _this.clearButtonClick = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n event.stopPropagation();\n if (_this.value.length > 0) {\n _this.triggerOnChange([], state);\n }\n if (_this.state.focusedIndex !== undefined) {\n state.data.focusedIndex = undefined;\n }\n if (_this.opened) {\n _this.base.togglePopup(state);\n }\n var text = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n if (isPresent(text) && text !== '') {\n _this.base.filterChanged('', state);\n }\n if (_this.state.text) {\n state.data.text = '';\n }\n _this.applyState(state);\n };\n _this.onInputKeyDown = function (event) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField, groupField = _a.groupField;\n var keyCode = event.keyCode;\n var text = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var _c = _this.getFocusedState(), focusedItem = _c.focusedItem, focusedIndex = _c.focusedIndex;\n var state = _this.base.initState();\n state.syntheticEvent = event;\n if (!text && _this.value.length > 0 &&\n (keyCode === Keys.left || keyCode === Keys.right ||\n keyCode === Keys.home || keyCode === Keys.end ||\n keyCode === Keys.delete || keyCode === Keys.backspace)) {\n return _this.onTagsNavigate(event, state);\n }\n var togglePopup = function () {\n event.preventDefault();\n _this.base.togglePopup(state);\n _this.applyState(state);\n };\n if (_this.opened) {\n if (event.altKey && keyCode === Keys.up) {\n togglePopup();\n }\n else if (keyCode === Keys.up || keyCode === Keys.down) {\n if (groupField !== '' && textField) {\n if (!_this.props.skipDisabledItems && opened) {\n _this.onNavigate(state, keyCode);\n }\n else {\n var newIndex = 0;\n if (keyCode === Keys.down || keyCode === Keys.right) {\n var tempnewIndex_1 = data.slice(focusedIndex + 1).find(function (i) { return !i.disabled && i[textField]; });\n newIndex = tempnewIndex_1 && data.findIndex(function (el) { return el[textField] === tempnewIndex_1[textField]; });\n }\n else if (keyCode === Keys.up || keyCode === Keys.left) {\n var dataToSearch = void 0;\n if (focusedIndex === -1) {\n dataToSearch = data;\n newIndex = data.findIndex(function (i) { return !i.disabled && i[textField]; });\n }\n else {\n dataToSearch = data.slice(0, focusedIndex);\n var tempnewIndex_2 = dataToSearch.pop();\n while (tempnewIndex_2 && tempnewIndex_2.disabled) {\n tempnewIndex_2 = dataToSearch.pop();\n }\n newIndex = tempnewIndex_2 && data.findIndex(function (el) { return el[textField] === tempnewIndex_2[textField]; });\n }\n }\n if (newIndex) {\n var skipItems = newIndex - focusedIndex;\n _this.onNavigate(state, keyCode, skipItems);\n }\n else if (newIndex !== undefined) {\n _this.onNavigate(state, keyCode);\n }\n }\n }\n else if (!_this.props.skipDisabledItems && opened) {\n _this.onNavigate(state, keyCode);\n }\n else {\n var newIndex = null;\n if (keyCode === Keys.down || keyCode === Keys.right) {\n newIndex = data.slice(focusedIndex + 1).find(function (i) { return !i.disabled; });\n }\n else if (keyCode === Keys.up || keyCode === Keys.left) {\n var dataTest = data.slice(0, focusedIndex);\n newIndex = dataTest.pop();\n while (newIndex && newIndex.disabled) {\n newIndex = dataTest.pop();\n }\n }\n if (newIndex) {\n var skipItems = newIndex.id - focusedIndex - 1;\n _this.onNavigate(state, keyCode, skipItems);\n }\n else {\n _this.onNavigate(state, keyCode);\n }\n }\n _this.applyState(state);\n event.preventDefault();\n }\n else if (keyCode === Keys.enter) {\n event.preventDefault();\n if (_this.props.allowCustom && text && focusedItem === null) {\n _this.customItemSelect(event);\n }\n else if (focusedItem && focusedItem.disabled) {\n togglePopup();\n }\n else {\n _this.selectFocusedItem(event);\n }\n }\n else if (keyCode === Keys.esc) {\n togglePopup();\n }\n }\n else if (event.altKey && keyCode === Keys.down) {\n togglePopup();\n }\n };\n _this.listContainerContent = function () {\n var _a, _b;\n var _c = _this.props, header = _c.header, footer = _c.footer, allowCustom = _c.allowCustom, size = _c.size, _d = _c.data, data = _d === void 0 ? [] : _d, groupStickyHeaderItemRender = _c.groupStickyHeaderItemRender, groupField = _c.groupField, list = _c.list;\n var text = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n var focusedType = _this.getFocusedState().focusedType;\n var customItem = allowCustom && text && (React.createElement(\"div\", { className: classNames('k-list', (_a = {},\n _a[\"k-list-\".concat(sizeMap[size] || size)] = size,\n _a)), key: \"customitem\", onClick: _this.customItemSelect, onMouseDown: preventDefault },\n React.createElement(\"div\", { className: classNames('k-list-item k-custom-item', { 'k-focus': isCustom(focusedType) }), style: { fontStyle: 'italic' } },\n text,\n React.createElement(IconWrap, { name: 'plus', icon: plusIcon, style: { position: 'absolute', right: '0.5em' } }))));\n var group = _this.state.group;\n if (group === undefined && groupField !== undefined) {\n group = getItemValue(data[0], groupField);\n }\n return (React.createElement(React.Fragment, null,\n header && React.createElement(\"div\", { className: \"k-list-header\" }, header),\n customItem,\n React.createElement(\"div\", { className: classNames('k-list', (_b = {},\n _b[\"k-list-\".concat(_this.mobileMode ? 'lg' : sizeMap[size] || size)] = size,\n _b['k-virtual-list'] = _this.base.vs.enabled,\n _b)) },\n !list && group && data.length !== 0 && React.createElement(GroupStickyHeader, { group: group, groupMode: 'modern', render: groupStickyHeaderItemRender }),\n _this.renderList()),\n footer && React.createElement(\"div\", { className: \"k-list-footer\" }, footer)));\n };\n _this.renderListContainer = function () {\n var base = _this.base;\n var _a = _this.props, dir = _a.dir, _b = _a.data, data = _b === void 0 ? [] : _b;\n var popupSettings = _this.base.getPopupSettings();\n var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;\n var listContainerProps = {\n dir: dir !== undefined ? dir : base.dirCalculated,\n width: popupWidth,\n popupSettings: {\n popupClass: classNames(popupSettings.popupClass, 'k-list-container', 'k-multiselect-popup'),\n className: popupSettings.className,\n animate: popupSettings.animate,\n anchor: _this.element,\n show: _this.opened,\n onOpen: _this.onPopupOpened,\n onClose: _this.onPopupClosed,\n appendTo: popupSettings.appendTo\n },\n itemsCount: [data.length, _this.value.length]\n };\n return (React.createElement(ListContainer, __assign({}, listContainerProps), _this.listContainerContent()));\n };\n _this.renderAdaptiveListContainer = function () {\n var _a = _this.props, adaptiveTitle = _a.adaptiveTitle, filterable = _a.filterable, filter = _a.filter;\n var _b = _this.state.windowWidth, windowWidth = _b === void 0 ? 0 : _b;\n var mobileText = filter !== undefined ? filter : _this.state.text;\n _this.localization = provideLocalizationService(_this);\n var mobileFilter = filterable ? (React.createElement(ListFilter, { value: mobileText, ref: function (adaptiveFilter) { return _this._adaptiveInput = adaptiveFilter && adaptiveFilter.element; }, onChange: _this.onChangeHandler, onKeyDown: _this.onInputKeyDown, size: _this.props.size, rounded: _this.props.rounded, fillMode: _this.props.fillMode })) : null;\n var actionSheetProps = {\n adaptiveTitle: adaptiveTitle,\n expand: _this.opened,\n onClose: function (event) { return _this.onCancel(event); },\n windowWidth: windowWidth,\n mobileFilter: mobileFilter,\n footer: {\n cancelText: _this.localization.toLanguageString(adaptiveModeFooterCancel, messages[adaptiveModeFooterCancel]),\n onCancel: _this.onCancel,\n applyText: _this.localization.toLanguageString(adaptiveModeFooterApply, messages[adaptiveModeFooterApply]),\n onApply: _this.closePopup\n }\n };\n return (React.createElement(AdaptiveMode, __assign({}, actionSheetProps),\n React.createElement(ActionSheetContent, { className: '!k-overflow-hidden' },\n React.createElement(\"div\", { className: 'k-list-container' }, _this.listContainerContent()))));\n };\n _this.closePopup = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n event.stopPropagation();\n if (_this.state.focusedIndex !== undefined) {\n state.data.focusedIndex = undefined;\n }\n if (_this.opened) {\n _this.base.togglePopup(state);\n }\n state.events.push({ type: 'onClose' });\n var text = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n if (isPresent(text) && text !== '') {\n _this.base.filterChanged('', state);\n }\n if (_this.state.text) {\n state.data.text = '';\n }\n _this.applyState(state);\n };\n _this.onCancel = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n event.stopPropagation();\n if (_this.state.focusedIndex !== undefined) {\n state.data.focusedIndex = undefined;\n }\n if (_this.opened) {\n _this.base.togglePopup(state);\n }\n state.events.push({ type: 'onCancel' });\n var text = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n if (isPresent(text) && text !== '') {\n _this.base.filterChanged('', state);\n }\n if (_this.state.text) {\n state.data.text = '';\n }\n _this.applyState(state);\n };\n _this.renderList = function () {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField, listNoDataRender = _a.listNoDataRender, itemRender = _a.itemRender, groupHeaderItemRender = _a.groupHeaderItemRender, dataItemKey = _a.dataItemKey, virtual = _a.virtual;\n var vs = _this.base.vs;\n var skip = virtual ? virtual.skip : 0;\n var focusedIndex = _this.getFocusedState().focusedIndex;\n var popupSettings = _this.base.getPopupSettings();\n var translate = \"translateY(\".concat(vs.translate, \"px)\");\n return (React.createElement(List, { id: _this.base.listBoxId, show: _this.opened, data: data.slice(), focusedIndex: focusedIndex - skip, value: _this.value, textField: textField, valueField: dataItemKey, optionsGuid: _this.base.guid, groupField: _this.props.groupField, groupMode: 'modern', listRef: function (list) { vs.list = _this.base.list = list; }, wrapperStyle: _this.mobileMode ? {} : { maxHeight: popupSettings.height }, wrapperCssClass: \"k-list-content\", listStyle: vs.enabled ? { transform: translate } : undefined, key: \"listKey\", skip: skip, onClick: _this.handleItemClick, itemRender: itemRender, groupHeaderItemRender: groupHeaderItemRender, noDataRender: listNoDataRender, onMouseDown: preventDefault, onBlur: _this.handleBlur, onScroll: _this.onScroll, wrapperRef: vs.scrollerRef, scroller: _this.base.renderScrollElement() }));\n };\n _this.onScroll = function (event) {\n var _a = _this.base, vs = _a.vs, list = _a.list;\n vs.scrollHandler(event);\n var groupField = _this.props.groupField;\n var _b = _this.props.data, data = _b === void 0 ? [] : _b;\n if (!groupField || !data.length) {\n return;\n }\n if (groupField) {\n var itemHeight = _this.itemHeight =\n _this.itemHeight || (vs.enabled ? vs.itemHeight : (list ? list.children[0].offsetHeight : 0));\n var target = event.target;\n var scrollTop = target.scrollTop - (vs.skip * itemHeight);\n data = _this.base.getGroupedDataModernMode(data, groupField);\n var group = data[0][groupField];\n for (var i = 1; i < data.length; i++) {\n if (itemHeight * i > scrollTop) {\n break;\n }\n if (data[i] && data[i][groupField]) {\n group = data[i][groupField];\n }\n }\n if (group !== _this.state.group) {\n _this.setState({\n group: group\n });\n }\n }\n };\n _this.customItemSelect = function (event) {\n var _a;\n var itemText = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n var textField = _this.props.textField;\n if (!itemText) {\n return;\n }\n var state = _this.base.initState();\n state.syntheticEvent = event;\n var item = textField ? (_a = {}, _a[textField] = itemText, _a) : itemText;\n if (_this.state.text !== undefined) {\n state.data.text = '';\n }\n state.data.focusedIndex = undefined;\n _this.base.filterChanged('', state);\n var newItems = __spreadArray(__spreadArray([], _this.value, true), [item], false);\n _this.triggerOnChange(newItems, state);\n _this.base.togglePopup(state);\n _this.applyState(state);\n };\n _this.handleWrapperClick = function (event) {\n var input = _this._input;\n if (!_this.opened && input) {\n _this.focusElement(input);\n }\n var state = _this.base.initState();\n state.syntheticEvent = event;\n if (!_this.state.focused && !_this.mobileMode) {\n state.events.push({ type: 'onFocus' });\n state.data.focused = true;\n }\n if (_this.mobileMode) {\n _this.setState({ currentValue: _this.tagsToRender });\n if (_this.mobileMode) {\n window.setTimeout(function () { return _this._adaptiveInput && _this._adaptiveInput.focus(); }, 300);\n }\n }\n _this.base.togglePopup(state);\n _this.applyState(state);\n };\n _this.handleItemClick = function (index, event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n _this.handleItemSelect(index, state);\n if (_this.props.autoClose && !_this.mobileMode) {\n _this.base.togglePopup(state);\n }\n event.stopPropagation();\n _this.applyState(state);\n };\n _this.handleBlur = function (event) {\n if (!_this.state.focused || _this._skipFocusEvent) {\n return;\n }\n var state = _this.base.initState();\n var _a = _this.props, allowCustom = _a.allowCustom, filterable = _a.filterable;\n state.syntheticEvent = event;\n state.data.focused = false;\n state.events.push({ type: 'onBlur' });\n if (_this.opened && !_this.mobileMode) {\n if (_this.state.opened) {\n state.data.opened = false;\n }\n state.events.push({ type: 'onClose' });\n }\n if (!allowCustom && !filterable && _this.state.text) {\n state.data.text = '';\n }\n _this.applyState(state);\n };\n _this.handleFocus = function (event) {\n if (_this._skipFocusEvent) {\n return;\n }\n _this.base.handleFocus(event);\n };\n _this.onPopupOpened = function () {\n if (_this._input && _this.state.focused && !_this.mobileMode) {\n _this.focusElement(_this._input);\n }\n };\n _this.onPopupClosed = function () {\n if (_this.state.focused) {\n window.setTimeout(function () { if (_this.state.focused) {\n _this.focusElement(_this._input);\n } }, 0);\n }\n };\n _this.setValidity = function () {\n if (_this._input && _this._input.setCustomValidity) {\n _this._input.setCustomValidity(_this.validity.valid\n ? ''\n : _this.props.validationMessage || VALIDATION_MESSAGE);\n }\n };\n validatePackage(packageMetadata);\n return _this;\n }\n Object.defineProperty(MultiSelectWithoutContext.prototype, \"document\", {\n get: function () {\n if (!canUseDOM) {\n return;\n }\n // useful only for user actions\n return (this.element && this.element.ownerDocument) || document;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MultiSelectWithoutContext.prototype, \"element\", {\n /** @hidden */\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MultiSelectWithoutContext.prototype, \"opened\", {\n /** @hidden */\n get: function () {\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n return !!opened;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MultiSelectWithoutContext.prototype, \"tagsToRender\", {\n /** @hidden */\n get: function () {\n var _a = this.props, tags = _a.tags, textField = _a.textField;\n var tagsToRender = [];\n if (tags === undefined) {\n this.value.forEach(function (item) {\n tagsToRender.push({ text: getItemValue(item, textField), data: [item] });\n });\n }\n else {\n tagsToRender.push.apply(tagsToRender, tags);\n }\n return tagsToRender;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MultiSelectWithoutContext.prototype, \"mobileMode\", {\n /**\n * The mobile mode of the ComboBox.\n */\n get: function () {\n var isAdaptive = this.state.windowWidth && this.state.windowWidth <= MOBILE_MEDIUM_DEVISE && this.props.adaptive;\n return !!isAdaptive;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MultiSelectWithoutContext.prototype, \"value\", {\n /**\n * Represents the value of the MultiSelect.\n */\n get: function () {\n var result = [];\n if (this._valueItemsDuringOnChange) {\n result.push.apply(result, this._valueItemsDuringOnChange);\n }\n else if (this.props.value) {\n result.push.apply(result, this.props.value);\n }\n else if (this.state.value) {\n result.push.apply(result, this.state.value);\n }\n else if (this.props.defaultValue) {\n result.push.apply(result, this.props.defaultValue);\n }\n return result;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MultiSelectWithoutContext.prototype, \"name\", {\n /**\n * Gets the `name` property of the MultiSelect.\n */\n get: function () {\n return this.props.name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MultiSelectWithoutContext.prototype, \"validity\", {\n /**\n * Represents the validity state into which the MultiSelect is set.\n */\n get: function () {\n var customError = this.props.validationMessage !== undefined;\n var isValid = (!this.required\n || (this.value !== null && this.value.length > 0 && this.value !== undefined));\n var valid = this.props.valid !== undefined ? this.props.valid : isValid;\n return {\n customError: customError,\n valid: valid,\n valueMissing: this.value === null\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MultiSelectWithoutContext.prototype, \"required\", {\n /** @hidden */\n get: function () {\n return this.props.required !== undefined\n ? this.props.required\n : MultiSelectWithoutContext.defaultProps.required;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MultiSelectWithoutContext.prototype, \"validityStyles\", {\n get: function () {\n return this.props.validityStyles !== undefined\n ? this.props.validityStyles\n : MultiSelectWithoutContext.defaultProps.validityStyles;\n },\n enumerable: false,\n configurable: true\n });\n /** @hidden */\n MultiSelectWithoutContext.prototype.componentDidUpdate = function (prevProps, prevState) {\n var _a;\n var _b = this.props, virtual = _b.virtual, _c = _b.groupField, groupField = _c === void 0 ? '' : _c, _d = _b.data, data = _d === void 0 ? [] : _d;\n var skip = virtual ? virtual.skip : 0;\n var prevTotal = prevProps.virtual ? prevProps.virtual.total : 0;\n var prevOpened = prevProps.opened !== undefined ? prevProps.opened : prevState.opened;\n var opening = !prevOpened && this.opened;\n var closing = prevOpened && !this.opened;\n var popupSettings = this.base.getPopupSettings();\n if (!popupSettings.animate && closing) {\n this.onPopupClosed();\n }\n if (virtual && virtual.total !== prevTotal) {\n this.base.vs.calcScrollElementHeight();\n this.base.vs.reset();\n }\n else {\n var _e = this.getFocusedState(), focusedItem = _e.focusedItem, focusedIndex = _e.focusedIndex;\n if (groupField !== '') {\n focusedIndex = (_a = this.base.getGroupedDataModernMode(data, groupField)) === null || _a === void 0 ? void 0 : _a.indexOf(focusedItem);\n }\n if (opening && virtual) {\n this.base.scrollToVirtualItem(virtual, focusedIndex - skip);\n }\n else if (opening && !virtual) {\n // Resets the sticky header group value for scenarios with open/close of component's popup\n if (data && data.length !== 0) {\n this.base.resetGroupStickyHeader(data[0][groupField], this);\n }\n this.base.scrollToItem(focusedIndex);\n }\n else if (this.opened && prevOpened && focusedItem && this.scrollToFocused) {\n this.base.scrollToItem(focusedIndex - skip);\n }\n }\n this.scrollToFocused = false;\n this.setValidity();\n };\n /** @hidden */\n MultiSelectWithoutContext.prototype.componentDidMount = function () {\n var _a;\n this.observerResize = canUseDOM && window.ResizeObserver && new window.ResizeObserver(this.calculateMedia.bind(this));\n this.base.didMount();\n this.setValidity();\n if (((_a = this.document) === null || _a === void 0 ? void 0 : _a.body) && this.observerResize) {\n this.observerResize.observe(this.document.body);\n }\n };\n /** @hidden */\n MultiSelectWithoutContext.prototype.componentWillUnmount = function () {\n var _a;\n if (((_a = this.document) === null || _a === void 0 ? void 0 : _a.body) && this.observerResize) {\n this.observerResize.disconnect();\n }\n };\n /** @hidden */\n MultiSelectWithoutContext.prototype.onNavigate = function (state, keyCode, skipItems) {\n var _a = this.props, allowCustom = _a.allowCustom, _b = _a.data, data = _b === void 0 ? [] : _b;\n var text = this.props.filter !== undefined ? this.props.filter : this.state.text;\n var _c = this.getFocusedState(), focusedType = _c.focusedType, focusedIndex = _c.focusedIndex;\n var customItem = allowCustom && text;\n var customItemFocused = isCustom(focusedType);\n var base = this.base;\n var vs = base.vs;\n if (this.opened && keyCode === Keys.up && customItemFocused) {\n if (this.state.focusedIndex !== undefined) {\n state.data.focusedIndex = undefined;\n }\n }\n else {\n var newFocused = base.navigation.navigate({\n keyCode: keyCode,\n current: focusedIndex,\n max: (vs.enabled ? vs.total : data.length) - 1,\n min: customItem ? -1 : 0,\n skipItems: skipItems ? skipItems : undefined\n });\n if (newFocused !== undefined) {\n this.itemFocus(newFocused, state);\n this.scrollToFocused = true;\n }\n }\n this.applyState(state);\n };\n /** @hidden */\n MultiSelectWithoutContext.prototype.render = function () {\n var _a, _b;\n var _c = this.props, style = _c.style, className = _c.className, label = _c.label, dir = _c.dir, disabled = _c.disabled, textField = _c.textField, dataItemKey = _c.dataItemKey, virtual = _c.virtual, size = _c.size, rounded = _c.rounded, fillMode = _c.fillMode, loading = _c.loading, filter = _c.filter;\n var _d = this.state, text = _d.text, focused = _d.focused, focusedTag = _d.focusedTag, currentValue = _d.currentValue;\n var vs = this.base.vs;\n var id = this.props.id || this._inputId;\n vs.enabled = virtual !== undefined;\n if (virtual !== undefined) {\n vs.skip = virtual.skip;\n vs.total = virtual.total;\n vs.pageSize = virtual.pageSize;\n }\n var currentTagsToRender = (this.mobileMode && this.opened) ? currentValue : this.tagsToRender;\n this.setItems(this.tagsToRender, this._tags);\n var isValid = !this.validityStyles || this.validity.valid;\n var clearButton = Boolean(filter !== undefined ? filter : text)\n || (currentTagsToRender && currentTagsToRender.length > 0);\n var component = (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { ref: this.componentRef, className: classNames('k-multiselect k-input', className, (_a = {},\n _a[\"k-input-\".concat(sizeMap[size] || size)] = size,\n _a[\"k-rounded-\".concat(roundedMap[rounded] || rounded)] = rounded,\n _a[\"k-input-\".concat(fillMode)] = fillMode,\n _a['k-focus'] = focused && !disabled,\n _a['k-invalid'] = !isValid,\n _a['k-disabled'] = disabled,\n _a['k-loading'] = loading,\n _a['k-required'] = this.required,\n _a)), style: !label\n ? style\n : __assign(__assign({}, style), { width: undefined }), dir: dir, onFocus: this.handleFocus, onBlur: this.handleBlur, onClick: this.handleWrapperClick, onMouseDown: preventDefaultNonInputs },\n React.createElement(\"div\", { className: classNames('k-input-values') },\n React.createElement(\"div\", { className: classNames('k-chip-list', (_b = {}, _b[\"k-chip-list-\".concat(sizeMap[size] || size)] = size, _b)), role: \"listbox\", id: 'tagslist-' + this.base.guid }, currentTagsToRender && currentTagsToRender.length > 0 && React.createElement(TagList, { tagRender: this.props.tagRender, onTagDelete: this.onTagDelete, data: currentTagsToRender, guid: this.base.guid, focused: focusedTag ? currentTagsToRender.find(function (t) { return matchTags(t, focusedTag, dataItemKey); }) : undefined, size: size })),\n this.renderSearchBar(id)),\n loading && React.createElement(IconWrap, { className: \"k-input-loading-icon\", name: 'loading' }),\n clearButton && React.createElement(ClearButton, { onClick: this.clearButtonClick }),\n !this.mobileMode && this.renderListContainer()),\n this.mobileMode && this.renderAdaptiveListContainer()));\n return label ? (React.createElement(FloatingLabel, { label: label, editorId: id, editorValue: text || getItemValue(this.value[0], textField), editorValid: isValid, editorDisabled: disabled, style: { width: style ? style.width : undefined }, children: component })) : component;\n };\n MultiSelectWithoutContext.prototype.renderSearchBar = function (id) {\n var _a = this.state, activedescendant = _a.activedescendant, focusedTag = _a.focusedTag, currentValue = _a.currentValue;\n var _b = this.props, disabled = _b.disabled, placeholder = _b.placeholder, ariaDescribedBy = _b.ariaDescribedBy;\n var text = !this.mobileMode && (this.props.filter !== undefined ? this.props.filter : this.state.text) || '';\n var focusedIndex = this.getFocusedState().focusedIndex;\n var placeholderToShow = this.value.length === 0 && !text ? placeholder : undefined;\n var adaptivePlaceholder = (currentValue && currentValue.length > 0) ? undefined : placeholder;\n var ariaActivedescendant = activedescendant === ActiveDescendant.TagsList && focusedTag !== undefined ?\n \"tag-\".concat(this.base.guid, \"-\").concat(focusedTag.text.replace(/\\s+/g, '-')) :\n \"option-\".concat(this.base.guid, \"-\").concat(focusedIndex);\n return (React.createElement(SearchBar, { id: id, size: Math.max((placeholderToShow || '').length, text.length, 1), tabIndex: this.props.tabIndex, accessKey: this.props.accessKey, placeholder: this.mobileMode && this.opened ? adaptivePlaceholder : placeholderToShow, value: text, onChange: this.onChangeHandler, onKeyDown: this.onInputKeyDown, ref: this.searchbarRef, disabled: disabled, expanded: this.opened, owns: this.base.listBoxId, role: 'combobox', activedescendant: ariaActivedescendant, ariaDescribedBy: \"tagslist-\".concat(this.base.guid).concat(ariaDescribedBy ? (' ' + ariaDescribedBy) : ''), ariaLabelledBy: this.props.ariaLabelledBy, ariaRequired: this.required }));\n };\n MultiSelectWithoutContext.prototype.onTagsNavigate = function (event, state) {\n var keyCode = event.keyCode;\n var focusedTag = this.state.focusedTag;\n var tags = this._tags;\n var itemsKey = this.props.dataItemKey;\n var focusedIndex = focusedTag ?\n tags.findIndex(function (t) { return matchTags(t, focusedTag, itemsKey); }) : -1;\n var newFocusedTag = undefined;\n var hasFocused = focusedIndex !== -1;\n if (keyCode === Keys.left) {\n if (hasFocused) {\n focusedIndex = Math.max(0, focusedIndex - 1);\n }\n else {\n focusedIndex = tags.length - 1;\n }\n newFocusedTag = tags[focusedIndex];\n }\n else if (keyCode === Keys.right) {\n if (focusedIndex === tags.length - 1) {\n newFocusedTag = undefined;\n }\n else if (hasFocused) {\n focusedIndex = Math.min(tags.length - 1, focusedIndex + 1);\n newFocusedTag = tags[focusedIndex];\n }\n }\n else if (keyCode === Keys.home) {\n newFocusedTag = tags[0];\n }\n else if (keyCode === Keys.end) {\n newFocusedTag = tags[tags.length - 1];\n }\n else if (keyCode === Keys.delete) {\n if (hasFocused) {\n var items = this.value;\n removeDataItems(items, tags[focusedIndex].data, itemsKey);\n this.triggerOnChange(items, state);\n }\n }\n else if (keyCode === Keys.backspace) {\n var items = this.value;\n if (hasFocused) {\n removeDataItems(items, tags[focusedIndex].data, itemsKey);\n this.triggerOnChange(items, state);\n }\n else if (!hasFocused && tags.length) {\n var removed = tags.pop();\n removeDataItems(items, removed.data, itemsKey);\n this.triggerOnChange(items, state);\n }\n }\n if (newFocusedTag !== focusedTag) {\n state.data.focusedTag = newFocusedTag;\n state.data.activedescendant = ActiveDescendant.TagsList;\n }\n this.applyState(state);\n };\n MultiSelectWithoutContext.prototype.triggerOnChange = function (items, state) {\n if (this.props.value === undefined) {\n state.data.value = __spreadArray([], items, true);\n }\n this._valueItemsDuringOnChange = [];\n this.setItems(items, this._valueItemsDuringOnChange);\n state.events.push({ type: 'onChange' });\n };\n MultiSelectWithoutContext.prototype.selectFocusedItem = function (event, itemtoSelect) {\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, virtual = _a.virtual;\n var focusedIndex = (itemtoSelect || this.getFocusedState()).focusedIndex;\n var skip = virtual ? virtual.skip : 0;\n if (data[focusedIndex - skip] !== undefined) {\n this.handleItemClick(focusedIndex, event);\n }\n };\n MultiSelectWithoutContext.prototype.setItems = function (srcItems, destItems) {\n destItems.length = 0;\n destItems.push.apply(destItems, srcItems);\n };\n MultiSelectWithoutContext.prototype.getFocusedState = function () {\n var focusedIndex = this.state.focusedIndex;\n var text = this.props.filter !== undefined ? this.props.filter : this.state.text;\n var _a = this.props, allowCustom = _a.allowCustom, _b = _a.data, data = _b === void 0 ? [] : _b, dataItemKey = _a.dataItemKey, virtual = _a.virtual, textField = _a.textField, _c = _a.focusedItemIndex, focusedItemIndex = _c === void 0 ? itemIndexStartsWith : _c, skipDisabledItems = _a.skipDisabledItems;\n var skip = (virtual && virtual.skip) || 0;\n var focusedInd;\n if (focusedIndex !== undefined) {\n return {\n focusedIndex: focusedIndex,\n focusedItem: data[focusedIndex - skip],\n focusedType: FocusedItemType.ListItem\n };\n }\n var selected = this.value;\n if (allowCustom && text) {\n return { focusedItem: null, focusedIndex: -1, focusedType: FocusedItemType.CustomItem };\n }\n else if (text) {\n focusedInd = focusedItemIndex(data, text, textField);\n return {\n focusedItem: data[focusedInd],\n focusedIndex: focusedInd + skip,\n focusedType: FocusedItemType.ListItem\n };\n }\n else if (selected.length) {\n var last_1 = selected[selected.length - 1];\n focusedInd = data.findIndex(function (i) { return areSame(i, last_1, dataItemKey); });\n if (data[focusedInd] !== undefined) {\n return {\n focusedIndex: focusedInd + skip,\n focusedItem: data[focusedInd],\n focusedType: FocusedItemType.ListItem\n };\n }\n return { focusedType: FocusedItemType.None, focusedIndex: -1 };\n }\n else if (skipDisabledItems && textField && !text && skip === 0) {\n var newIndex = data.findIndex(function (i) { return !i.disabled && i[textField]; });\n return {\n focusedIndex: newIndex,\n focusedItem: data[newIndex - skip],\n focusedType: FocusedItemType.ListItem\n };\n }\n return skip === 0 ?\n { focusedItem: data[0], focusedIndex: 0, focusedType: FocusedItemType.ListItem } :\n { focusedType: FocusedItemType.None, focusedIndex: -1 };\n };\n MultiSelectWithoutContext.prototype.focusElement = function (element) {\n var _this = this;\n this._skipFocusEvent = true;\n element.focus();\n window.setTimeout(function () { return _this._skipFocusEvent = false; }, 0);\n };\n MultiSelectWithoutContext.prototype.applyState = function (state) {\n this.base.applyState(state);\n this._valueItemsDuringOnChange = null;\n };\n MultiSelectWithoutContext.prototype.calculateMedia = function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n this.setState({ windowWidth: entry.target.clientWidth });\n }\n ;\n };\n ;\n MultiSelectWithoutContext.displayName = 'MultiSelect';\n /** @hidden */\n MultiSelectWithoutContext.propTypes = __assign(__assign({}, DropDownBase.propTypes), { autoClose: PropTypes.bool, value: PropTypes.arrayOf(PropTypes.any), defaultValue: PropTypes.arrayOf(PropTypes.any), dataItemKey: PropTypes.string, placeholder: PropTypes.string, tags: PropTypes.arrayOf(PropTypes.shape({\n text: PropTypes.string,\n data: PropTypes.arrayOf(PropTypes.any)\n })), tagRender: PropTypes.func, id: PropTypes.string, ariaLabelledBy: PropTypes.string, ariaDescribedBy: PropTypes.string, groupField: PropTypes.string, list: PropTypes.any, adaptive: PropTypes.bool, adaptiveTitle: PropTypes.string, onCancel: PropTypes.func, skipDisabledItems: PropTypes.bool });\n /** @hidden */\n MultiSelectWithoutContext.defaultProps = __assign(__assign({}, DropDownBase.defaultProps), { autoClose: true, required: false, size: 'medium', rounded: 'medium', fillMode: 'solid', groupMode: 'modern', skipDisabledItems: true });\n return MultiSelectWithoutContext;\n}(React.Component));\nexport { MultiSelectWithoutContext };\n/**\n * Represents the PropsContext of the `MultiSelect` component.\n * Used for global configuration of all `MultiSelect` instances.\n *\n * For more information, refer to the [Dropdowns Props Context]({% slug props-context_dropdowns %}) article.\n */\nexport var MultiSelectPropsContext = createPropsContext();\n/* eslint-disable @typescript-eslint/no-redeclare -- intentionally naming the component the same as the type */\n/**\n * Represents the [KendoReact MultiSelect component]({% slug overview_multiselect %}).\n *\n * Accepts properties of type [MultiSelectProps]({% slug api_dropdowns_multiselectprops %}).\n * Obtaining the `ref` returns an object of type [MultiSelectHandle]({% slug api_dropdowns_multiselecthandle %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * multiselect = null;\n * render() {\n * return (\n *
    \n * this.multiselect = component}\n * />\n * \n *
    \n * );\n * }\n * }\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nexport var MultiSelect = withPropsContext(MultiSelectPropsContext, MultiSelectWithoutContext);\nMultiSelect.displayName = 'KendoReactMultiSelect';\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { ActionSheet, ActionSheetFooter, ActionSheetHeader } from '@progress/kendo-react-layout';\nimport { xIcon } from '@progress/kendo-svg-icons';\nimport { Button } from '@progress/kendo-react-buttons';\n/** @hidden */\nvar MOBILE_SMALL_DEVISE = 500;\n/** @hidden */\nexport var AdaptiveMode = function (props) {\n var footer = props.footer, children = props.children, _a = props.windowWidth, windowWidth = _a === void 0 ? 0 : _a, navigatable = props.navigatable, navigatableElements = props.navigatableElements, expand = props.expand, animation = props.animation, onClose = props.onClose, adaptiveTitle = props.adaptiveTitle, mobileFilter = props.mobileFilter;\n var defaultProps = {\n navigatable: navigatable || false,\n navigatableElements: navigatableElements || [],\n expand: expand,\n animation: animation === false ? false : true,\n onClose: onClose,\n animationStyles: windowWidth <= MOBILE_SMALL_DEVISE ? { top: 0, width: '100%', height: '100%' } : undefined,\n className: windowWidth <= MOBILE_SMALL_DEVISE\n ? 'k-adaptive-actionsheet k-actionsheet-fullscreen'\n : 'k-adaptive-actionsheet k-actionsheet-bottom'\n };\n return (React.createElement(ActionSheet, __assign({}, defaultProps),\n React.createElement(ActionSheetHeader, { className: 'k-text-center' },\n React.createElement(\"div\", { className: \"k-actionsheet-titlebar-group k-hbox\" },\n React.createElement(\"div\", { className: \"k-actionsheet-title\" },\n React.createElement(\"div\", null, adaptiveTitle)),\n React.createElement(\"div\", { className: \"k-actionsheet-actions\" },\n React.createElement(Button, { tabIndex: 0, \"aria-label\": \"Cancel\", \"aria-disabled\": \"false\", type: \"button\", fillMode: \"flat\", icon: 'x', svgIcon: xIcon, onClick: onClose }))),\n mobileFilter &&\n React.createElement(\"div\", { className: \"k-actionsheet-titlebar-group k-actionsheet-filter\" }, mobileFilter)),\n children,\n footer && React.createElement(ActionSheetFooter, { className: 'k-actions k-actions-stretched' },\n React.createElement(Button, { size: \"large\", tabIndex: 0, \"aria-label\": footer.cancelText, \"aria-disabled\": \"false\", type: \"button\", onClick: footer.onCancel }, footer.cancelText),\n React.createElement(Button, { tabIndex: 0, themeColor: \"primary\", size: \"large\", \"aria-label\": footer.applyText, \"aria-disabled\": \"false\", type: \"button\", onClick: footer.onApply }, footer.applyText))));\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport List from './List';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nexport var MultiColumnList = function (props) {\n return (React.createElement(List, __assign({}, props, { wrapperCssClass: \"k-table-body k-table-scroller\", listClassName: classNames('k-table k-table-list', {\n 'k-virtual-table': props.virtual !== undefined\n }), listStyle: __assign({}, props.listStyle) })));\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { PopupPropsContext } from '@progress/kendo-react-popup';\nimport { MultiColumnList } from './../common/MultiColumnList';\nimport { classNames, getScrollbarWidth, setScrollbarWidth, getter, usePropsContext, createPropsContext } from '@progress/kendo-react-common';\nimport { ComboBox, ComboBoxWithoutContext } from '../ComboBox/ComboBox';\nimport { getItemValue } from '../common/utils';\nvar columnWidth = function (width, defaultWidth) {\n if (width) {\n return typeof width === 'number' ? width + 'px' : width;\n }\n return defaultWidth;\n};\n/**\n * Represents the PropsContext of the `MultiColumnComboBox` component.\n * Used for global configuration of all `MultiColumnComboBox` instances.\n *\n * For more information, refer to the [Dropdowns Props Context]({% slug props-context_dropdowns %}) article.\n */\nexport var MultiColumnComboBoxPropsContext = createPropsContext();\n/**\n * Represents the MultiColumnComboBox component.\n *\n * Accepts properties of type [MultiColumnComboBoxProps]({% slug api_dropdowns_multicolumncomboboxprops %}).\n * Obtaining the `ref` returns an object of type [MultiColumnComboBoxHandle]({% slug api_dropdowns_multicolumncomboboxhandle %}).\n *\n * @example\n * ```jsx\n * const columns = [\n * {\n * field: \"id\",\n * header: \"ID\",\n * width: \"100px\",\n * },\n * {\n * field: \"name\",\n * header: \"Name\",\n * width: \"300px\",\n * },\n * {\n * field: \"position\",\n * header: \"Position\",\n * width: \"300px\",\n * },\n * ];\n * const App = () => {\n * return (\n *
    \n *
    Employees:
    \n * \n *
    \n * );\n * };\n * ReactDOM.render(, document.querySelector(\"my-app\"));\n * ```\n */\nexport var MultiColumnComboBox = React.forwardRef(function (directProps, ref) {\n var props = usePropsContext(MultiColumnComboBoxPropsContext, directProps);\n var target = React.useRef(null);\n var comboBoxRef = React.useRef(null);\n var scrollbarWidth = getScrollbarWidth();\n var _a = props.columns, columns = _a === void 0 ? defaultProps.columns : _a, _b = props.popupSettings, popupSettings = _b === void 0 ? defaultProps.popupSettings : _b, className = props.className, size = props.size, onOpen = props.onOpen, onClose = props.onClose, onFocus = props.onFocus, onBlur = props.onBlur, onChange = props.onChange, onFilterChange = props.onFilterChange, onPageChange = props.onPageChange, other = __rest(props, [\"columns\", \"popupSettings\", \"className\", \"size\", \"onOpen\", \"onClose\", \"onFocus\", \"onBlur\", \"onChange\", \"onFilterChange\", \"onPageChange\"]);\n React.useImperativeHandle(target, function () {\n return ({\n element: comboBoxRef.current && comboBoxRef.current.element,\n focus: function () {\n if (comboBoxRef.current) {\n comboBoxRef.current.focus();\n }\n },\n get value() { return comboBoxRef.current && comboBoxRef.current.value; },\n get name() { return comboBoxRef.current && comboBoxRef.current.name; },\n props: props\n });\n });\n React.useImperativeHandle(ref, function () { return target.current; });\n var initialGroupHeader = React.useMemo(function () {\n if (props.groupField !== undefined && props.data) {\n return getItemValue(props.data[0], props.groupField);\n }\n }, [props.data, props.groupField]);\n var _c = React.useState(initialGroupHeader), groupHeader = _c[0], setGroupHeader = _c[1];\n var _d = React.useState(true), showStickyHeader = _d[0], setShowStickyHeader = _d[1];\n var header = React.useMemo(function () {\n var renderer = (React.createElement(\"th\", { className: 'k-table-th', colSpan: columns.length }, groupHeader));\n return (React.createElement(React.Fragment, null,\n props.header,\n React.createElement(\"div\", { className: \"k-table-header-wrap\" },\n React.createElement(\"table\", { className: \"k-table\", role: \"presentation\" },\n React.createElement(\"colgroup\", null, columns.map(function (column, i) {\n return (React.createElement(\"col\", { key: column.uniqueKey ? column.uniqueKey : i, style: { width: column.width ? column.width : defaultProps.width } }));\n })),\n React.createElement(\"thead\", { className: 'k-table-thead' },\n React.createElement(\"tr\", { className: 'k-table-row' }, columns.map(function (column, i) {\n return (React.createElement(\"th\", { className: \"k-table-th\", key: column.uniqueKey ? column.uniqueKey : i }, column.header || '\\u00A0'));\n })),\n groupHeader && showStickyHeader && React.createElement(\"tr\", { className: 'k-table-group-row' }, props.groupStickyHeaderItemRender ? props.groupStickyHeaderItemRender.call(undefined, renderer, {}) : renderer))))));\n }, [props.header, columns, groupHeader, showStickyHeader]);\n var popupWidth = React.useMemo(function () {\n // These additional 4px are coming from the child elements side borders (fixes horizontal scrollbar)\n return \"calc(\".concat(columns.map(function (column) { return columnWidth(column.width, defaultProps.width); }).filter(Boolean).join(' + '), \" + \").concat(scrollbarWidth, \"px + 4px)\");\n }, [columns, scrollbarWidth]);\n var skip = props.virtual ? props.virtual.skip : 0;\n var itemRender = React.useCallback(function (li, liProps) {\n var children = columns.map(function (column, i) { return (React.createElement(\"span\", { className: !props.itemRender ? 'k-table-td' : undefined, style: !props.itemRender ? { width: column.width ? column.width : defaultProps.width } : undefined, key: column.uniqueKey ? column.uniqueKey : i }, column.field ? String(getter(column.field)(liProps.dataItem)) : '')); });\n var group = undefined;\n var curGroup, prevGroup, groupGetter, data = props.data || [];\n var index = liProps.index - skip;\n if (props.groupField !== undefined) {\n groupGetter = getter(props.groupField);\n curGroup = groupGetter(data[index]);\n prevGroup = groupGetter(data[index - 1]);\n if (curGroup && prevGroup && curGroup !== prevGroup) {\n group = curGroup;\n }\n }\n if (group && props.groupMode === 'classic') {\n children.push(React.createElement(\"div\", { key: \"group\", className: \"k-table-td k-table-group-td\" },\n React.createElement(\"span\", null, group)));\n }\n var rendering = React.cloneElement(li, __assign(__assign({}, li.props), { className: classNames('k-table-row', {\n 'k-table-alt-row': liProps.index % 2 !== 0,\n 'k-focus': liProps.focused,\n 'k-selected': liProps.selected,\n 'k-first': Boolean(group),\n 'k-disabled': liProps.dataItem.disabled\n }) }), children);\n return props.itemRender ? props.itemRender.call(undefined, rendering, liProps) : rendering;\n }, [columns, props.groupField, props.itemRender, props.data, skip]);\n var handleEvent = React.useCallback(function (handler, event) {\n if (handler) {\n handler.call(undefined, __assign(__assign({}, event), { target: target.current }));\n }\n }, []);\n var onOpenHandler = React.useCallback(function (event) {\n // Resets the sticky header group value for scenarios with open/close of component's popup\n if (!props.virtual) {\n setGroupHeader(initialGroupHeader);\n }\n ;\n return handleEvent(onOpen, event);\n }, [handleEvent, onOpen, props.virtual, initialGroupHeader]);\n var onCloseHandler = React.useCallback(function (event) { return handleEvent(onClose, event); }, [onClose]);\n var onFocusHandler = React.useCallback(function (event) { return handleEvent(onFocus, event); }, [onFocus]);\n var onBlurHandler = React.useCallback(function (event) { return handleEvent(onBlur, event); }, [onBlur]);\n var onChangeHandler = React.useCallback(function (event) { return handleEvent(onChange, event); }, [onChange]);\n var onPageChangeHandler = React.useCallback(function (event) { return handleEvent(onPageChange, event); }, [onPageChange]);\n var onFilterChangeHandler = React.useCallback(function (event) {\n setGroupHeader(initialGroupHeader);\n return handleEvent(onFilterChange, __assign(__assign({}, event), { mobileMode: event.target.mobileMode }));\n }, [onFilterChange]);\n var onGroupScroll = React.useCallback(function (event) {\n setGroupHeader(event.group);\n }, []);\n React.useEffect(function () { setScrollbarWidth(); });\n React.useEffect(function () {\n var data = props.data;\n setGroupHeader(initialGroupHeader);\n if (data && data.length !== 0) {\n setShowStickyHeader(true);\n }\n else {\n setShowStickyHeader(false);\n }\n ;\n }, [props.data]);\n var List = React.useCallback(function (listProps) { return React.createElement(MultiColumnList, __assign({}, listProps)); }, []);\n return (React.createElement(PopupPropsContext.Provider, { value: function (PopupProps) { return (__assign(__assign({}, PopupProps), { popupClass: \"k-dropdowngrid-popup \".concat(popupSettings.popupClass) })); } },\n React.createElement(ComboBox, __assign({}, other, { list: List, popupSettings: __assign(__assign({ width: popupWidth }, popupSettings), { className: popupSettings.className }), ref: comboBoxRef, header: header, itemRender: itemRender, groupHeaderItemRender: props.groupHeaderItemRender, size: props.size, rounded: props.rounded, fillMode: props.fillMode, groupMode: props.groupMode, groupField: props.groupField, isMultiColumn: true, onOpen: onOpenHandler, onClose: onCloseHandler, onFocus: onFocusHandler, onBlur: onBlurHandler, onChange: onChangeHandler, onFilterChange: onFilterChangeHandler, onPageChange: onPageChangeHandler, onGroupScroll: onGroupScroll, className: classNames('k-dropdowngrid', className), required: props.required, adaptive: props.adaptive, adaptiveFilter: props.adaptiveFilter, adaptiveTitle: props.adaptiveTitle, footer: props.footer, footerClassName: 'k-table-footer' }))));\n});\nvar propTypes = __assign(__assign({}, ComboBoxWithoutContext.propTypes), { columns: PropTypes.any.isRequired });\nvar defaultProps = {\n columns: [],\n popupSettings: {},\n width: '200px',\n size: 'medium',\n rounded: 'medium',\n fillMode: 'solid'\n};\nMultiColumnComboBox.displayName = 'KendoMultiColumnComboBox';\n// TODO: delete casting when @types/react is updated!\nMultiColumnComboBox.propTypes = propTypes;\nMultiColumnComboBox.defaultProps = defaultProps;\n","import * as React from 'react';\n/**\n * @hidden\n */\nexport function useDropdownWidth(elementRef, initialStyleWidth, args) {\n var _a = React.useState(initialStyleWidth), width = _a[0], setWidth = _a[1];\n React.useEffect(function () {\n if (width !== undefined && elementRef.current) {\n setWidth(elementRef.current.offsetWidth);\n }\n }, args);\n return width;\n}\n","import * as React from 'react';\n/**\n * @hidden\n */\nexport var ListNoData = function (props) {\n return React.createElement(\"div\", { className: \"k-nodata\" },\n React.createElement(\"div\", null, props.children));\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar _this = this;\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, noop, useRtl, getTabIndex, Keys, mapTree, extendDataItem, guid, createPropsContext, kendoThemeMaps, usePropsContext, IconWrap, canUseDOM } from '@progress/kendo-react-common';\nimport { Popup } from '@progress/kendo-react-popup';\nimport { useLocalization } from '@progress/kendo-react-intl';\nimport { TreeView } from '@progress/kendo-react-treeview';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from './../package-metadata';\nimport { getItemValue, areSame, isPresent } from '../common/utils';\nimport { useDropdownWidth } from './useDropdownWidth';\nimport { ListNoData } from './ListNoData';\nimport { messages, clear, nodata } from './../messages';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\nimport ListFilter from '../common/ListFilter';\nimport { Button } from '@progress/kendo-react-buttons';\nimport { xIcon, caretAltDownIcon } from '@progress/kendo-svg-icons';\nimport { AdaptiveMode } from '../common/AdaptiveMode';\nimport { ActionSheetContent } from '@progress/kendo-react-layout';\nimport { MOBILE_MEDIUM_DEVISE } from '../common/constants';\nvar sizeMap = kendoThemeMaps.sizeMap, roundedMap = kendoThemeMaps.roundedMap;\nvar VALIDATION_MESSAGE = 'Please select a value from the list!';\nvar ValueHolder = function (props) {\n return React.createElement(\"span\", { className: \"k-input-value-text\" }, props.children);\n};\nvar toLevel = function (hierarchicalIndex) {\n return hierarchicalIndex.split('_').map(function (i) { return parseInt(i, 10); });\n};\nvar getValidity = function (parameters, hasValue) {\n var validationMessage = parameters.validationMessage, valid = parameters.valid, required = parameters.required;\n return ({\n customError: validationMessage !== undefined,\n valid: Boolean(valid !== undefined ? valid : (!required || hasValue)),\n valueMissing: !hasValue\n });\n};\nvar defaultProps = {\n selectField: 'selected',\n subItemsField: 'items',\n popupSettings: {\n animate: true,\n width: '200px',\n height: '200px'\n },\n data: [],\n required: false,\n style: {},\n validityStyles: true,\n size: 'medium',\n rounded: 'medium',\n fillMode: 'solid'\n};\n/**\n * Represents the PropsContext of the `DropDownTree` component.\n * Used for global configuration of all `DropDownTree` instances.\n *\n * For more information, refer to the [Dropdowns Props Context]({% slug props-context_dropdowns %}) article.\n */\nexport var DropDownTreePropsContext = createPropsContext();\n/**\n * Represents the DropDownTree component.\n *\n * Accepts properties of type [DropDownTreeProps]({% slug api_dropdowns_dropdowntreeprops %}).\n * Obtaining the `ref` returns an object of type [DropDownTreeHandle]({% slug api_dropdowns_dropdowntreehandle %}).\n *\n * @example\n * ```jsx\n * const selectField = \"selected\";\n * const expandField = \"expanded\";\n * const dataItemKey = \"id\";\n * const textField = \"text\";\n * const subItemsField = \"items\";\n * const fields = {\n * selectField,\n * expandField,\n * dataItemKey,\n * subItemsField,\n * };\n * const App = () => {\n * const [value, setValue] = React.useState(null);\n * const [expanded, setExpanded] = React.useState([data[0][dataItemKey]]);\n * const onChange = (event) => setValue(event.value);\n * const onExpandChange = React.useCallback(\n * (event) => setExpanded(expandedState(event.item, dataItemKey, expanded)),\n * [expanded]\n * );\n * const treeData = React.useMemo(\n * () =>\n * processTreeData(\n * data,\n * {\n * expanded,\n * value,\n * },\n * fields\n * ),\n * [expanded, value]\n * );\n *\n * return (\n * \n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nexport var DropDownTree = React.forwardRef(function (directProps, ref) {\n var _a;\n validatePackage(packageMetadata);\n var props = usePropsContext(DropDownTreePropsContext, directProps);\n var combinedProps = __assign(__assign({}, defaultProps), props);\n var calculatedId = React.useMemo(function () { return guid(); }, []);\n var id = combinedProps.id || calculatedId;\n var data = combinedProps.data, dataItemKey = combinedProps.dataItemKey, popupSettings = combinedProps.popupSettings, style = combinedProps.style, opened = combinedProps.opened, disabled = combinedProps.disabled, _b = combinedProps.onOpen, onOpen = _b === void 0 ? noop : _b, _c = combinedProps.onClose, onClose = _c === void 0 ? noop : _c, placeholder = combinedProps.placeholder, label = combinedProps.label, name = combinedProps.name, selectField = combinedProps.selectField, subItemsField = combinedProps.subItemsField, validationMessage = combinedProps.validationMessage, valid = combinedProps.valid, required = combinedProps.required, validityStyles = combinedProps.validityStyles;\n var tabIndex = getTabIndex(combinedProps.tabIndex, disabled);\n var target = React.useRef(null);\n var elementRef = React.useRef(null);\n var inputRef = React.useRef(null);\n var adaptiveInputRef = React.useRef(null);\n var selectRef = React.useRef(null);\n var treeViewRef = React.useRef(null);\n var skipFocusRef = React.useRef(false);\n var _d = React.useState(undefined), stateValue = _d[0], setStateValue = _d[1];\n var controlled = combinedProps.value !== undefined;\n var value = controlled ? combinedProps.value : (stateValue !== undefined ? stateValue : combinedProps.defaultValue);\n var hasValue = isPresent(value);\n var currentValueText = hasValue ? getItemValue(value, combinedProps.textField) : '';\n var validity = getValidity({ validationMessage: validationMessage, valid: valid, required: required }, hasValue);\n var focus = React.useCallback(function () { return elementRef.current && elementRef.current.focus(); }, []);\n React.useImperativeHandle(target, function () { return ({\n props: combinedProps,\n element: elementRef.current,\n focus: focus\n }); });\n React.useImperativeHandle(ref, function () { return target.current; });\n var dir = useRtl(elementRef, combinedProps.dir);\n var initialStyleWidth = popupSettings.width !== undefined ?\n popupSettings.width : (style.width !== undefined ? style.width : defaultProps.popupSettings.width);\n var popupWidth = useDropdownWidth(elementRef, initialStyleWidth);\n var popupStyles = __assign({ width: popupWidth }, (dir !== undefined ? { direction: dir } : {}));\n var _e = React.useState(false), open = _e[0], setOpen = _e[1];\n var isOpen = opened !== undefined ? opened : open;\n var _f = React.useState(false), focused = _f[0], setFocused = _f[1];\n var _g = React.useState(), windowWidth = _g[0], setWindowWidth = _g[1];\n var isAdaptive = !!(windowWidth && windowWidth <= MOBILE_MEDIUM_DEVISE && combinedProps.adaptive);\n var _h = React.useState(''), filter = _h[0], setFilter = _h[1];\n var setValidity = React.useCallback(function () {\n if (selectRef.current && selectRef.current.setCustomValidity) {\n selectRef.current.setCustomValidity(validity.valid\n ? ''\n : validationMessage === undefined ? VALIDATION_MESSAGE : validationMessage);\n }\n }, [validationMessage, validity]);\n React.useEffect(setValidity);\n React.useEffect(function () {\n var observerResize = canUseDOM && window.ResizeObserver && new window.ResizeObserver(calculateMedia.bind(_this));\n if ((document === null || document === void 0 ? void 0 : document.body) && observerResize) {\n observerResize.observe(document.body);\n }\n return function () {\n if ((document === null || document === void 0 ? void 0 : document.body) && observerResize) {\n observerResize.disconnect();\n }\n };\n }, []);\n var openPopup = React.useCallback(function (event) {\n if (!isOpen) {\n if (onOpen) {\n var openEvent = __assign({}, event);\n onOpen.call(undefined, openEvent);\n }\n if (opened === undefined) {\n setOpen(true);\n }\n }\n }, [isOpen, opened, onOpen]);\n var closePopup = React.useCallback(function (event) {\n if (isOpen) {\n if (onClose) {\n var closeEvent = __assign({}, event);\n onClose.call(undefined, closeEvent);\n }\n if (opened === undefined) {\n setOpen(false);\n if (isAdaptive) {\n setTimeout(function () {\n var _a;\n focusElement((_a = adaptiveInputRef.current) === null || _a === void 0 ? void 0 : _a.element);\n }, 300);\n }\n }\n }\n }, [isOpen, opened, onClose, isAdaptive]);\n var onWrapperClick = React.useCallback(function (event) {\n if (!event.isDefaultPrevented() && target.current) {\n setFocused(true);\n var ev = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: target.current\n };\n (isOpen ? closePopup : openPopup)(ev);\n }\n }, [isOpen, opened, onOpen, onClose]);\n var switchFocus = React.useCallback(function (focusFn) {\n skipFocusRef.current = true;\n focusFn();\n window.setTimeout(function () { return skipFocusRef.current = false; }, 0);\n }, []);\n var onWrapperKeyDown = React.useCallback(function (event) {\n var _a, _b;\n var keyCode = event.keyCode, altKey = event.altKey;\n var treeview = treeViewRef.current && treeViewRef.current.element;\n if (!target.current || (event.isDefaultPrevented() && ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.element) === event.target)) {\n return;\n }\n var ev = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: target.current\n };\n if (isOpen) {\n if (keyCode === Keys.esc || (altKey && keyCode === Keys.up)) {\n event.preventDefault();\n closePopup(ev);\n }\n else if (treeview && treeview.querySelector('.k-focus') &&\n (keyCode === Keys.up || keyCode === Keys.down ||\n keyCode === Keys.left || keyCode === Keys.right ||\n keyCode === Keys.home || keyCode === Keys.end)) {\n if (keyCode === Keys.up && ((_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.element)) {\n var items = Array.from(treeview.querySelectorAll('.k-treeview-item'));\n var focusedItem = __spreadArray([], items, true).reverse().find(function (i) { return Boolean(i && i.querySelector('.k-focus')); });\n if (focusedItem && items.indexOf(focusedItem) === 0) {\n return switchFocus(function () { var _a; focusElement((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.element); });\n }\n }\n switchFocus(noop);\n }\n else if (keyCode === Keys.down) {\n switchFocus(function () { var _a; focusElement(((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.element) || treeview); });\n }\n }\n else if (altKey && keyCode === Keys.down) {\n event.preventDefault();\n openPopup(ev);\n }\n else if (!isOpen) {\n if (keyCode === Keys.esc) {\n onClear(event);\n }\n }\n }, [isOpen, opened, onOpen, onClose]);\n var onInputKeyDown = React.useCallback(function (event) {\n var keyCode = event.keyCode, altKey = event.altKey;\n if (altKey || (keyCode !== Keys.up && keyCode !== Keys.down)) {\n return;\n }\n event.preventDefault();\n switchFocus(keyCode === Keys.up ?\n function () { focusElement(elementRef.current); } :\n function () { focusElement(treeViewRef.current && treeViewRef.current.element); });\n }, []);\n var focusElement = React.useCallback(function (element) {\n if (element) {\n switchFocus(function () { return element.focus(); });\n }\n }, []);\n var onPopupOpened = React.useCallback(function () {\n var _a;\n if (!focused && isOpen && !opened) {\n closePopup({ target: target.current });\n }\n else {\n if (props.filterable) {\n focusElement((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.element);\n }\n else {\n focusElement(treeViewRef.current && treeViewRef.current.element);\n }\n }\n }, [onClose, props.filterable, focused, opened, isOpen]);\n var onPopupClosed = React.useCallback(function () {\n if (focused) {\n // Move the focus from treeview to dropdown without triggering Focus or Blur events.\n focusElement(elementRef.current);\n }\n }, [focused]);\n var onFocus = React.useCallback(function (event) {\n if (!focused && !skipFocusRef.current) {\n setFocused(true);\n if (props.onFocus && target.current) {\n var focusEvent = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: target.current\n };\n props.onFocus.call(undefined, focusEvent);\n }\n }\n }, [focused, props.onFocus]);\n var onBlur = React.useCallback(function (event) {\n if (focused && !skipFocusRef.current && target.current) {\n setFocused(false);\n var ev = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: target.current\n };\n if (props.onBlur) {\n var focusEvent = __assign({}, ev);\n props.onBlur.call(undefined, focusEvent);\n }\n if (!isAdaptive) {\n closePopup(ev);\n }\n }\n }, [focused, props.onBlur, isOpen, opened, onClose]);\n var onWrapperMouseDown = React.useCallback(function () {\n if (focused) {\n // moving focus from treeview to dropdown triggers Focus and Blur events.\n switchFocus(noop);\n }\n if (isAdaptive) {\n setTimeout(function () {\n var _a;\n focusElement((_a = adaptiveInputRef.current) === null || _a === void 0 ? void 0 : _a.element);\n }, 300);\n }\n }, [focused, isAdaptive]);\n var changeValue = React.useCallback(function (event, newValue, hierarchicalIndex) {\n if (props.onChange) {\n var changeEvent = __assign({ value: newValue, level: hierarchicalIndex ? toLevel(hierarchicalIndex) : [] }, event);\n props.onChange.call(undefined, changeEvent);\n }\n if (!controlled) {\n setStateValue(newValue);\n }\n }, [props.onChange, controlled]);\n var onChange = React.useCallback(function (event) {\n if (areSame(event.item, value, dataItemKey) || !target.current) {\n return;\n }\n var item = event.item, itemHierarchicalIndex = event.itemHierarchicalIndex, nativeEvent = event.nativeEvent, syntheticEvent = event.syntheticEvent;\n var ev = {\n syntheticEvent: syntheticEvent,\n nativeEvent: nativeEvent,\n target: target.current\n };\n changeValue(ev, item, itemHierarchicalIndex);\n closePopup(ev);\n }, [controlled, value, props.onChange, dataItemKey, isOpen, opened, onClose]);\n var onClear = React.useCallback(function (event) {\n if (!target.current) {\n return;\n }\n var ev = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: target.current\n };\n changeValue(ev, null);\n closePopup(ev);\n event.preventDefault();\n }, [controlled, props.onChange, isOpen, opened, onClose]);\n var onExpand = React.useCallback(function (event) {\n event.syntheticEvent.stopPropagation();\n if (props.onExpandChange && target.current) {\n var item = event.item, itemHierarchicalIndex = event.itemHierarchicalIndex, nativeEvent = event.nativeEvent, syntheticEvent = event.syntheticEvent;\n var expandEvent = {\n level: toLevel(itemHierarchicalIndex),\n item: item,\n nativeEvent: nativeEvent,\n syntheticEvent: syntheticEvent,\n target: target.current\n };\n props.onExpandChange.call(undefined, expandEvent);\n }\n }, [props.onExpandChange]);\n var onFilterChange = React.useCallback(function (event) {\n if (props.onFilterChange && target.current) {\n var filterDesc = { field: props.textField, operator: 'contains', value: event.target.value };\n var ev = {\n filter: filterDesc,\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n target: target.current\n };\n props.onFilterChange.call(undefined, ev);\n if (props.filter === undefined) {\n setFilter(event.target.value);\n }\n }\n }, [props.onFilterChange, props.filter, props.textField]);\n var renderAdaptiveListContainer = function () {\n var mobileFilter = combinedProps.filterable ? (React.createElement(ListFilter, { value: combinedProps.filter === undefined ? filter : combinedProps.filter, ref: adaptiveInputRef, onChange: onFilterChange, onKeyDown: onInputKeyDown, size: size, rounded: rounded, fillMode: fillMode })) : null;\n var actionSheetProps = {\n adaptiveTitle: combinedProps.adaptiveTitle,\n expand: isOpen,\n onClose: function (event) { return closePopup(event); },\n windowWidth: windowWidth,\n mobileFilter: mobileFilter\n };\n return (React.createElement(AdaptiveMode, __assign({}, actionSheetProps),\n React.createElement(ActionSheetContent, { className: '!k-overflow-hidden' },\n React.createElement(\"div\", { className: 'k-list-container' },\n React.createElement(\"div\", { className: 'k-list k-list-lg' }, data.length > 0 ? (React.createElement(TreeView, { ref: treeViewRef, tabIndex: tabIndex, data: treeViewData, focusIdField: dataItemKey, textField: combinedProps.textField, selectField: selectField, expandField: combinedProps.expandField, childrenField: subItemsField, expandIcons: true, onItemClick: onChange, onExpandChange: onExpand, size: size, item: combinedProps.item, dir: dir })) : (React.createElement(NoData, null, localization.toLanguageString(nodata, messages[nodata]))))))));\n };\n var calculateMedia = React.useCallback(function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n setWindowWidth(entry.target.clientWidth);\n }\n ;\n }, []);\n var treeViewData = React.useMemo(function () {\n return (controlled || !hasValue) ? data :\n mapTree(data, subItemsField, function (item) {\n var _a;\n return extendDataItem(item, subItemsField, (_a = {}, _a[selectField] = areSame(item, value, dataItemKey), _a));\n });\n }, [data, value, controlled, hasValue, selectField, subItemsField]);\n var NoData = combinedProps.listNoData || ListNoData;\n var ValueComponent = combinedProps.valueHolder || ValueHolder;\n var localization = useLocalization();\n var isValid = !validityStyles || validity.valid;\n var size = combinedProps.size, rounded = combinedProps.rounded, fillMode = combinedProps.fillMode;\n var dropdowntree = (React.createElement(React.Fragment, null,\n React.createElement(\"span\", { className: classNames('k-dropdowntree k-picker', combinedProps.className, (_a = {},\n _a[\"k-picker-\".concat(sizeMap[size] || size)] = size,\n _a[\"k-rounded-\".concat(roundedMap[rounded] || rounded)] = rounded,\n _a[\"k-picker-\".concat(fillMode)] = fillMode,\n _a['k-focus'] = focused,\n _a['k-invalid'] = !isValid,\n _a['k-loading'] = combinedProps.loading,\n _a['k-required'] = required,\n _a['k-disabled'] = combinedProps.disabled,\n _a)), tabIndex: tabIndex, accessKey: combinedProps.accessKey, id: id, style: label ? __assign(__assign({}, style), { width: undefined }) : style, dir: dir, ref: elementRef, onKeyDown: disabled ? undefined : onWrapperKeyDown, onMouseDown: onWrapperMouseDown, onClick: disabled ? undefined : onWrapperClick, onFocus: onFocus, onBlur: onBlur, role: \"combobox\", \"aria-haspopup\": \"tree\", \"aria-expanded\": isOpen, \"aria-disabled\": disabled, \"aria-label\": label, \"aria-labelledby\": combinedProps.ariaLabelledBy, \"aria-describedby\": combinedProps.ariaDescribedBy, \"aria-required\": required },\n React.createElement(\"span\", { className: \"k-input-inner\" },\n React.createElement(ValueComponent, { item: value }, currentValueText || placeholder)),\n combinedProps.loading && React.createElement(IconWrap, { className: \"k-input-loading-icon\", name: 'loading' }),\n hasValue && !disabled && (React.createElement(\"span\", { onClick: onClear, className: \"k-clear-value\", title: localization.toLanguageString(clear, messages[clear]), role: \"button\", tabIndex: -1, onMouseDown: function (e) { return e.preventDefault(); } },\n React.createElement(IconWrap, { name: 'x', icon: xIcon }))),\n React.createElement(Button, { tabIndex: -1, type: \"button\", \"aria-label\": \"select\", className: \"k-input-button\", size: size, fillMode: fillMode, themeColor: \"base\", rounded: null, icon: \"caret-alt-down\", svgIcon: caretAltDownIcon }),\n React.createElement(\"select\", { name: name, ref: selectRef, tabIndex: -1, \"aria-hidden\": true, title: label, style: { opacity: 0, width: 1, border: 0, zIndex: -1, position: 'absolute', left: '50%' } },\n React.createElement(\"option\", { value: combinedProps.valueMap ? combinedProps.valueMap.call(undefined, value) : value })),\n !isAdaptive && React.createElement(Popup, { className: classNames(popupSettings.className, { 'k-rtl': dir === 'rtl' }), popupClass: classNames(popupSettings.popupClass, 'k-dropdowntree-popup'), style: popupStyles, animate: popupSettings.animate, anchor: elementRef.current, show: isOpen, onOpen: onPopupOpened, onClose: onPopupClosed, appendTo: popupSettings.appendTo },\n combinedProps.filterable && (React.createElement(ListFilter, { value: combinedProps.filter === undefined ? filter : combinedProps.filter, ref: inputRef, onChange: onFilterChange, onKeyDown: onInputKeyDown, size: size, rounded: rounded, fillMode: fillMode })),\n data.length > 0 ? (React.createElement(TreeView, { ref: treeViewRef, tabIndex: tabIndex, data: treeViewData, focusIdField: dataItemKey, textField: combinedProps.textField, selectField: selectField, expandField: combinedProps.expandField, childrenField: subItemsField, expandIcons: true, onItemClick: onChange, onExpandChange: onExpand, size: size, item: combinedProps.item, dir: dir })) : (React.createElement(NoData, null, localization.toLanguageString(nodata, messages[nodata]))))),\n isAdaptive && renderAdaptiveListContainer()));\n return label ? (React.createElement(FloatingLabel, { label: label, editorValue: currentValueText, editorPlaceholder: placeholder, editorValid: isValid, editorDisabled: disabled, editorId: id, style: { width: style ? style.width : undefined }, children: dropdowntree, dir: dir })) : dropdowntree;\n});\nvar propTypes = {\n opened: PropTypes.bool,\n disabled: PropTypes.bool,\n dir: PropTypes.string,\n tabIndex: PropTypes.number,\n accessKey: PropTypes.string,\n data: PropTypes.array,\n value: PropTypes.any,\n valueMap: PropTypes.func,\n placeholder: PropTypes.string,\n dataItemKey: PropTypes.string.isRequired,\n textField: PropTypes.string.isRequired,\n selectField: PropTypes.string,\n expandField: PropTypes.string,\n subItemsField: PropTypes.string,\n className: PropTypes.string,\n style: PropTypes.object,\n label: PropTypes.string,\n validationMessage: PropTypes.string,\n validityStyles: PropTypes.bool,\n valid: PropTypes.bool,\n required: PropTypes.bool,\n name: PropTypes.string,\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n filterable: PropTypes.bool,\n filter: PropTypes.string,\n loading: PropTypes.bool,\n popupSettings: PropTypes.shape({\n animate: PropTypes.oneOfType([PropTypes.bool, PropTypes.shape({\n openDuration: PropTypes.number,\n closeDuration: PropTypes.number\n })]),\n popupClass: PropTypes.string,\n className: PropTypes.string,\n appendTo: PropTypes.any,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n }),\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onFilterChange: PropTypes.func,\n onExpandChange: PropTypes.func,\n item: PropTypes.func,\n valueHolder: PropTypes.func,\n listNoData: PropTypes.func,\n adaptiveTitle: PropTypes.string,\n adaptive: PropTypes.bool\n};\nDropDownTree.displayName = 'KendoReactDropDownTree';\nDropDownTree.propTypes = propTypes;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar _this = this;\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, noop, useRtl, getTabIndex, Keys, guid, kendoThemeMaps, createPropsContext, usePropsContext, IconWrap, canUseDOM } from '@progress/kendo-react-common';\nimport { Popup } from '@progress/kendo-react-popup';\nimport { useLocalization } from '@progress/kendo-react-intl';\nimport { TreeView } from '@progress/kendo-react-treeview';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from './../package-metadata';\nimport { getItemValue, areSame, matchTags } from '../common/utils';\nimport { useDropdownWidth } from './../DropDownTree/useDropdownWidth';\nimport { ListNoData } from './../DropDownTree/ListNoData';\nimport { messages, nodata, adaptiveModeFooterCancel, adaptiveModeFooterApply } from './../messages';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\nimport TagList from '../MultiSelect/TagList';\nimport ClearButton from '../common/ClearButton';\nimport ListFilter from '../common/ListFilter';\nimport { AdaptiveMode } from '../common/AdaptiveMode';\nimport { ActionSheetContent } from '@progress/kendo-react-layout';\nimport { MOBILE_MEDIUM_DEVISE } from '../common/constants';\nvar VALIDATION_MESSAGE = 'Please select a value from the list!';\nvar sizeMap = kendoThemeMaps.sizeMap, roundedMap = kendoThemeMaps.roundedMap;\nvar toLevel = function (hierarchicalIndex) {\n return hierarchicalIndex.split('_').map(function (i) { return parseInt(i, 10); });\n};\nvar getValidity = function (parameters, hasValue) {\n var validationMessage = parameters.validationMessage, valid = parameters.valid, required = parameters.required;\n return ({\n customError: validationMessage !== undefined,\n valid: Boolean(valid !== undefined ? valid : (!required || hasValue)),\n valueMissing: !hasValue\n });\n};\nvar defaultProps = {\n checkField: 'checkField',\n checkIndeterminateField: 'checkIndeterminateField',\n subItemsField: 'items',\n popupSettings: {\n animate: true,\n width: '200px',\n height: '200px'\n },\n size: 'medium',\n rounded: 'medium',\n fillMode: 'solid',\n required: false,\n validityStyles: true\n};\n/**\n * Represents the PropsContext of the `MultiSelectTree` component.\n * Used for global configuration of all `MultiSelectTree` instances.\n *\n * For more information, refer to the [Dropdowns Props Context]({% slug props-context_dropdowns %}) article.\n */\nexport var MultiSelectTreePropsContext = createPropsContext();\n/**\n * Represents the MultiSelectTree component.\n *\n * Accepts properties of type [MultiSelectTreeProps]({% slug api_dropdowns_multiselecttreeprops %}).\n * Obtaining the `ref` returns an object of type [MultiSelectTreeHandle]({% slug api_dropdowns_multiselecttreehandle %}).\n *\n * @example\n * ```jsx\n * const dataItemKey = 'id';\n * const checkField = 'checkField';\n * const checkIndeterminateField = 'checkIndeterminateField';\n * const subItemsField = 'items';\n * const expandField = 'expanded';\n * const textField = 'text';\n * const fields = {\n * dataItemKey,\n * checkField,\n * checkIndeterminateField,\n * expandField,\n * subItemsField,\n * };\n * const App = () => {\n * const [value, setValue] = React.useState([]);\n * const [expanded, setExpanded] = React.useState([data[0][dataItemKey]]);\n * const onChange = (event) =>\n * setValue(\n * getMultiSelectTreeValue(data, {\n * ...fields,\n * ...event,\n * value,\n * })\n * );\n * const onExpandChange = React.useCallback(\n * (event) => setExpanded(expandedState(event.item, dataItemKey, expanded)),\n * [expanded]\n * );\n * const treeData = React.useMemo(\n * () =>\n * processMultiSelectTreeData(data, {\n * expanded,\n * value,\n * ...fields,\n * }),\n * [expanded, value]\n * );\n *\n * return (\n *
    \n *
    Categories:
    \n * \n *
    \n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nexport var MultiSelectTree = React.forwardRef(function (directProps, ref) {\n var _a, _b;\n var props = usePropsContext(MultiSelectTreePropsContext, directProps);\n validatePackage(packageMetadata);\n var componentGuid = React.useMemo(function () { return guid(); }, []);\n var id = props.id || componentGuid;\n var _c = props.data, data = _c === void 0 ? [] : _c, dataItemKey = props.dataItemKey, _d = props.popupSettings, popupSettings = _d === void 0 ? {} : _d, _e = props.style, style = _e === void 0 ? {} : _e, opened = props.opened, disabled = props.disabled, _f = props.onOpen, onOpen = _f === void 0 ? noop : _f, _g = props.onClose, onClose = _g === void 0 ? noop : _g, placeholder = props.placeholder, label = props.label, name = props.name, _h = props.checkField, checkField = _h === void 0 ? defaultProps.checkField : _h, _j = props.checkIndeterminateField, checkIndeterminateField = _j === void 0 ? defaultProps.checkIndeterminateField : _j, _k = props.subItemsField, subItemsField = _k === void 0 ? defaultProps.subItemsField : _k, validationMessage = props.validationMessage, valid = props.valid, tags = props.tags, value = props.value, _l = props.required, required = _l === void 0 ? defaultProps.required : _l, _m = props.validityStyles, validityStyles = _m === void 0 ? defaultProps.validityStyles : _m;\n var tabIndex = getTabIndex(props.tabIndex, disabled);\n var targetRef = React.useRef(null);\n var elementRef = React.useRef(null);\n var inputRef = React.useRef(null);\n var adaptiveInputRef = React.useRef(null);\n var selectRef = React.useRef(null);\n var treeViewRef = React.useRef(null);\n var skipFocusRef = React.useRef(false);\n var tagsToRenderRef = React.useRef([]);\n var popupRef = React.useRef(null);\n var _o = React.useState(), focusedTagState = _o[0], setFocusedTagState = _o[1];\n var _p = React.useState(false), openState = _p[0], setOpenState = _p[1];\n var _q = React.useState(false), focusedState = _q[0], setFocusedState = _q[1];\n var _r = React.useState(), windowWidth = _r[0], setWindowWidth = _r[1];\n var _s = React.useState([]), currentTreeValue = _s[0], setCurrentTreeValue = _s[1];\n var _t = React.useState(''), filterState = _t[0], setFilterState = _t[1];\n var isAdaptive = !!(windowWidth && windowWidth <= MOBILE_MEDIUM_DEVISE && props.adaptive);\n var isOpen = opened !== undefined ? opened : openState;\n var hasValue = Boolean(Array.isArray(value) && value.length);\n var validity = getValidity({ validationMessage: validationMessage, valid: valid, required: required }, hasValue);\n var dir = useRtl(elementRef, props.dir);\n var initialStyleWidth = popupSettings.width !== undefined ?\n popupSettings.width : (style.width !== undefined ? style.width : defaultProps.popupSettings.width);\n var popupWidth = useDropdownWidth(elementRef, initialStyleWidth);\n var popupStyles = __assign({ width: popupWidth }, (dir !== undefined ? { direction: dir } : {}));\n var focus = React.useCallback(function () { return elementRef.current && elementRef.current.focus(); }, []);\n tagsToRenderRef.current = tags === undefined ?\n (value || []).map(function (item) { return ({ text: getItemValue(item, props.textField), data: [item] }); }) : __spreadArray([], tags, true);\n React.useImperativeHandle(targetRef, function () { return ({\n props: props,\n element: elementRef.current,\n focus: focus\n }); });\n React.useImperativeHandle(ref, function () { return targetRef.current; });\n var setValidity = React.useCallback(function () {\n if (selectRef.current && selectRef.current.setCustomValidity) {\n selectRef.current.setCustomValidity(validity.valid\n ? ''\n : validationMessage === undefined ? VALIDATION_MESSAGE : validationMessage);\n }\n }, [validationMessage, validity]);\n React.useEffect(setValidity);\n React.useEffect(function () {\n var observerResize = canUseDOM && window.ResizeObserver && new window.ResizeObserver(calculateMedia.bind(_this));\n if ((document === null || document === void 0 ? void 0 : document.body) && observerResize) {\n observerResize.observe(document.body);\n }\n return function () {\n observerResize.disconnect();\n };\n }, []);\n React.useEffect(function () {\n if (popupRef.current && isOpen) {\n popupRef.current.setPosition(popupRef.current._popup);\n }\n }, [value, isOpen]);\n var changeValue = React.useCallback(function (event, relatedItems, operation) {\n if (props.onChange) {\n var changeEvent = __assign({ items: relatedItems, operation: operation }, event);\n props.onChange.call(undefined, changeEvent);\n }\n }, [props.onChange]);\n var onChange = React.useCallback(function (event) {\n if (areSame(event.item, value, dataItemKey) || !targetRef.current) {\n return;\n }\n var item = event.item, nativeEvent = event.nativeEvent, syntheticEvent = event.syntheticEvent;\n var ev = {\n syntheticEvent: syntheticEvent,\n nativeEvent: nativeEvent,\n target: targetRef.current\n };\n changeValue(ev, [item], 'toggle');\n }, [value, dataItemKey, changeValue]);\n var openPopup = React.useCallback(function (event) {\n if (!isOpen) {\n if (onOpen) {\n var openEvent = __assign({}, event);\n onOpen.call(undefined, openEvent);\n }\n if (opened === undefined) {\n setOpenState(true);\n setCurrentTreeValue(value || []);\n if (isAdaptive) {\n setTimeout(function () {\n var _a;\n focusElement((_a = adaptiveInputRef.current) === null || _a === void 0 ? void 0 : _a.element);\n }, 300);\n }\n }\n }\n }, [isOpen, opened, onOpen, isAdaptive, adaptiveInputRef]);\n var closePopup = React.useCallback(function (event) {\n if (isOpen) {\n if (onClose) {\n var closeEvent = __assign({}, event);\n onClose.call(undefined, closeEvent);\n }\n if (opened === undefined) {\n setOpenState(false);\n }\n }\n }, [isOpen, opened, onClose]);\n var switchFocus = React.useCallback(function (focusFn) {\n skipFocusRef.current = true;\n focusFn();\n window.setTimeout(function () { return skipFocusRef.current = false; }, 0);\n }, []);\n var focusElement = React.useCallback(function (element) {\n if (element) {\n switchFocus(function () { return element.focus(); });\n }\n }, [switchFocus]);\n var onPopupOpened = React.useCallback(function () {\n var _a;\n if (!focusedState && isOpen) {\n closePopup({ target: targetRef.current });\n }\n else {\n if (props.filterable) {\n focusElement((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.element);\n }\n else {\n focusElement(treeViewRef.current && treeViewRef.current.element);\n }\n }\n }, [focusedState, isOpen, focusElement, closePopup, props.filterable]);\n var onPopupClosed = React.useCallback(function () {\n if (focusedState) {\n // Move the focus from treeview to dropdown without triggering Focus or Blur events.\n focusElement(elementRef.current);\n }\n }, [focusedState, focusElement]);\n var onFocus = React.useCallback(function (event) {\n if (!focusedState && !skipFocusRef.current) {\n setFocusedState(true);\n if (props.onFocus && targetRef.current) {\n var focusEvent = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: targetRef.current\n };\n props.onFocus.call(undefined, focusEvent);\n }\n }\n }, [focusedState, props.onFocus]);\n var onBlur = React.useCallback(function (event) {\n if (focusedState && !skipFocusRef.current && targetRef.current) {\n setFocusedState(false);\n var ev = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: targetRef.current\n };\n if (props.onBlur) {\n var focusEvent = __assign({}, ev);\n props.onBlur.call(undefined, focusEvent);\n }\n if (!isAdaptive) {\n closePopup(ev);\n }\n }\n }, [focusedState, props.onBlur, isOpen, opened, onClose]);\n var onWrapperMouseDown = React.useCallback(function () {\n if (focusedState) {\n // moving focus from treeview to dropdown triggers Focus and Blur events.\n switchFocus(noop);\n }\n }, [focusedState, switchFocus]);\n var onWrapperClick = React.useCallback(function (event) {\n if (!event.isDefaultPrevented() && targetRef.current) {\n setFocusedState(true);\n var ev = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: targetRef.current\n };\n if (!isOpen) {\n openPopup(ev);\n }\n }\n }, [isOpen, openPopup]);\n var onWrapperKeyDown = React.useCallback(function (event) {\n var _a, _b;\n var keyCode = event.keyCode, altKey = event.altKey;\n var treeviewElement = treeViewRef.current && treeViewRef.current.element;\n if (!targetRef.current || (event.isDefaultPrevented() && ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.element) === event.target)) {\n return;\n }\n var ev = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: targetRef.current\n };\n if (value && value.length > 0 &&\n (keyCode === Keys.left || keyCode === Keys.right ||\n keyCode === Keys.home || keyCode === Keys.end ||\n keyCode === Keys.delete)) {\n var tagsToRender = tagsToRenderRef.current;\n var focusedIndex = focusedTagState ?\n tagsToRender.findIndex(function (t) { return matchTags(t, focusedTagState, dataItemKey); }) : -1;\n var newFocusedTag = undefined;\n var hasFocused = focusedIndex !== -1;\n if (keyCode === Keys.left) {\n if (hasFocused) {\n focusedIndex = Math.max(0, focusedIndex - 1);\n }\n else {\n focusedIndex = tagsToRender.length - 1;\n }\n newFocusedTag = tagsToRender[focusedIndex];\n }\n else if (keyCode === Keys.right) {\n if (focusedIndex === tagsToRender.length - 1) {\n newFocusedTag = undefined;\n }\n else if (hasFocused) {\n focusedIndex = Math.min(tagsToRender.length - 1, focusedIndex + 1);\n newFocusedTag = tagsToRender[focusedIndex];\n }\n }\n else if (keyCode === Keys.home) {\n newFocusedTag = tagsToRender[0];\n }\n else if (keyCode === Keys.end) {\n newFocusedTag = tagsToRender[tagsToRender.length - 1];\n }\n else if (keyCode === Keys.delete) {\n if (hasFocused) {\n changeValue(ev, tagsToRender[focusedIndex].data, 'delete');\n }\n }\n if (newFocusedTag !== focusedTagState) {\n setFocusedTagState(newFocusedTag);\n }\n }\n if (isOpen) {\n if (keyCode === Keys.esc || (altKey && keyCode === Keys.up)) {\n event.preventDefault();\n closePopup(ev);\n }\n else if (treeviewElement && treeviewElement.querySelector('.k-focus') &&\n (keyCode === Keys.up || keyCode === Keys.down ||\n keyCode === Keys.left || keyCode === Keys.right ||\n keyCode === Keys.home || keyCode === Keys.end)) {\n if (keyCode === Keys.up && ((_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.element)) {\n var items = Array.from(treeviewElement.querySelectorAll('.k-treeview-item'));\n var focusedItem = __spreadArray([], items, true).reverse().find(function (i) { return Boolean(i && i.querySelector('.k-focus')); });\n if (focusedItem && items.indexOf(focusedItem) === 0) {\n return switchFocus(function () { var _a; focusElement((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.element); });\n }\n }\n switchFocus(noop);\n }\n else if (keyCode === Keys.down) {\n switchFocus(function () { var _a; focusElement(((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.element) || treeviewElement); });\n }\n }\n else {\n if (altKey && keyCode === Keys.down) {\n event.preventDefault();\n openPopup(ev);\n }\n }\n }, [isOpen, closePopup, focusElement, switchFocus, openPopup, focusedTagState, dataItemKey, value, changeValue]);\n var onInputKeyDown = React.useCallback(function (event) {\n var keyCode = event.keyCode, altKey = event.altKey;\n if (altKey || (keyCode !== Keys.up && keyCode !== Keys.down)) {\n return;\n }\n event.preventDefault();\n switchFocus(keyCode === Keys.up ?\n function () { focusElement(elementRef.current); } :\n function () { focusElement(treeViewRef.current && treeViewRef.current.element); });\n }, [focusElement, switchFocus]);\n var onClear = React.useCallback(function (event) {\n if (!targetRef.current) {\n return;\n }\n var ev = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: targetRef.current\n };\n changeValue(ev, [], 'clear');\n closePopup(ev);\n event.preventDefault();\n }, [changeValue, closePopup]);\n var onTagDelete = React.useCallback(function (itemsToRemove, event) {\n var _a;\n closePopup({ target: targetRef.current });\n if (!focusedState) {\n focusElement((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.element);\n }\n changeValue({\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: targetRef.current\n }, itemsToRemove, 'delete');\n }, [changeValue, closePopup, focusElement, focusedState]);\n var onExpand = React.useCallback(function (event) {\n if (props.onExpandChange && targetRef.current) {\n var item = event.item, itemHierarchicalIndex = event.itemHierarchicalIndex, nativeEvent = event.nativeEvent, syntheticEvent = event.syntheticEvent;\n var expandEvent = {\n level: toLevel(itemHierarchicalIndex),\n item: item,\n nativeEvent: nativeEvent,\n syntheticEvent: syntheticEvent,\n target: targetRef.current\n };\n props.onExpandChange.call(undefined, expandEvent);\n }\n }, [props.onExpandChange]);\n var onFilterChange = React.useCallback(function (event) {\n if (props.onFilterChange && targetRef.current) {\n var filterDesc = { field: props.textField, operator: 'contains', value: event.target.value };\n var ev = {\n filter: filterDesc,\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n target: targetRef.current\n };\n props.onFilterChange.call(undefined, ev);\n if (props.filter === undefined) {\n setFilterState(event.target.value);\n }\n }\n }, [props.onFilterChange, props.filter, props.textField]);\n var onCancel = React.useCallback(function (event) {\n if (!targetRef.current) {\n return;\n }\n var ev = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: targetRef.current\n };\n if (props.onCancel) {\n props.onCancel.call(undefined, ev);\n }\n ;\n closePopup(ev);\n event.preventDefault();\n }, [props.onCancel, closePopup]);\n var renderAdaptiveListContainer = function () {\n var mobileFilter = props.filterable ? (React.createElement(ListFilter, { value: props.filter === undefined ? filterState : props.filter, ref: adaptiveInputRef, onChange: onFilterChange, onKeyDown: onInputKeyDown, size: size, rounded: rounded, fillMode: fillMode })) : null;\n var actionSheetProps = {\n adaptiveTitle: props.adaptiveTitle,\n expand: isOpen,\n onClose: function (event) { return props.onCancel ? onCancel(event) : onClear(event); },\n windowWidth: windowWidth,\n mobileFilter: mobileFilter,\n footer: {\n cancelText: localization.toLanguageString(adaptiveModeFooterCancel, messages[adaptiveModeFooterCancel]),\n onCancel: function (event) { return props.onCancel ? onCancel(event) : onClear(event); },\n applyText: localization.toLanguageString(adaptiveModeFooterApply, messages[adaptiveModeFooterApply]),\n onApply: function (event) { return closePopup(event); }\n }\n };\n return (React.createElement(AdaptiveMode, __assign({}, actionSheetProps),\n React.createElement(ActionSheetContent, { className: '!k-overflow-hidden' },\n React.createElement(\"div\", { className: 'k-list-container' },\n React.createElement(\"div\", { className: 'k-list k-list-lg' }, data.length > 0 ? (React.createElement(TreeView, { ref: treeViewRef, tabIndex: tabIndex, data: data, focusIdField: dataItemKey, textField: props.textField, checkField: checkField, checkIndeterminateField: checkIndeterminateField, expandField: props.expandField, childrenField: subItemsField, expandIcons: true, onItemClick: onChange, onCheckChange: onChange, onExpandChange: onExpand, checkboxes: true, size: size, item: props.item, dir: dir })) : (React.createElement(NoData, null, localization.toLanguageString(nodata, messages[nodata]))))))));\n };\n var calculateMedia = React.useCallback(function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n setWindowWidth(entry.target.clientWidth);\n }\n ;\n }, []);\n var NoData = props.listNoData || ListNoData;\n var localization = useLocalization();\n var isValid = !validityStyles || validity.valid;\n var size = props.size, rounded = props.rounded, fillMode = props.fillMode;\n var currentTagsToRender = isAdaptive && isOpen ? currentTreeValue : tagsToRenderRef.current;\n var multiselecttree = (React.createElement(React.Fragment, null,\n React.createElement(\"span\", { className: classNames('k-multiselecttree k-input', props.className, (_a = {},\n _a[\"k-input-\".concat(sizeMap[size] || size)] = size,\n _a[\"k-rounded-\".concat(roundedMap[rounded] || rounded)] = rounded,\n _a[\"k-input-\".concat(fillMode)] = fillMode,\n _a['k-focus'] = focusedState && !disabled,\n _a['k-invalid'] = !isValid,\n _a['k-disabled'] = disabled,\n _a['k-loading'] = props.loading,\n _a['k-required'] = required,\n _a)), tabIndex: tabIndex, accessKey: props.accessKey, id: id, style: label ? __assign(__assign({}, style), { width: undefined }) : style, dir: dir, ref: elementRef, onKeyDown: disabled ? undefined : onWrapperKeyDown, onMouseDown: onWrapperMouseDown, onFocus: onFocus, onBlur: onBlur, role: \"combobox\", \"aria-haspopup\": \"tree\", \"aria-expanded\": isOpen, \"aria-disabled\": disabled, \"aria-label\": label, \"aria-labelledby\": props.ariaLabelledBy, \"aria-describedby\": props.ariaDescribedBy ? props.ariaDescribedBy : 'tagslist-' + id, \"aria-required\": props.required, onClick: disabled ? undefined : onWrapperClick },\n React.createElement(\"div\", { id: 'tagslist-' + id, className: classNames('k-input-values k-chip-list k-selection-multiple', (_b = {},\n _b[\"k-chip-list-\".concat(sizeMap[size] || size)] = size,\n _b)) }, currentTagsToRender.length > 0 ? (React.createElement(TagList, { tag: props.tag, onTagDelete: onTagDelete, data: currentTagsToRender, guid: id, focused: focusedTagState ? tagsToRenderRef.current.find(function (t) { return matchTags(t, focusedTagState, dataItemKey); }) : undefined, size: size })) : placeholder),\n (!hasValue || isAdaptive) &&\n React.createElement(\"span\", { className: \"k-input-inner\", role: 'combobox', tabIndex: tabIndex, \"aria-expanded\": isOpen, \"aria-describedby\": 'tagslist-' + id, \"aria-label\": props.ariaLabelledBy },\n React.createElement(\"span\", { className: \"k-input-value-text\" }, \"\\u00A0\")),\n props.loading && React.createElement(IconWrap, { className: \"k-input-loading-icon\", name: 'loading' }),\n hasValue && !disabled && currentTagsToRender.length > 0 &&\n React.createElement(ClearButton, { onClick: onClear }),\n React.createElement(\"select\", { name: name, ref: selectRef, tabIndex: -1, \"aria-hidden\": true, title: label, style: { opacity: 0, width: 1, border: 0, zIndex: -1, position: 'absolute', left: '50%' } },\n React.createElement(\"option\", { value: props.valueMap ? props.valueMap.call(undefined, value) : value })),\n !isAdaptive && React.createElement(Popup, { popupClass: classNames(popupSettings.popupClass, 'k-multiselecttree-popup'), className: classNames(popupSettings.className, { 'k-rtl': dir === 'rtl' }), style: popupStyles, animate: popupSettings.animate, anchor: elementRef.current, show: isOpen, onOpen: onPopupOpened, onClose: onPopupClosed, appendTo: popupSettings.appendTo, ref: popupRef },\n props.filterable && (React.createElement(ListFilter, { value: props.filter === undefined ? filterState : props.filter, ref: inputRef, onChange: onFilterChange, onKeyDown: onInputKeyDown, tabIndex: tabIndex, size: size, rounded: rounded, fillMode: fillMode })),\n data.length > 0 ? (React.createElement(TreeView, { ref: treeViewRef, tabIndex: tabIndex, data: data, focusIdField: dataItemKey, textField: props.textField, checkField: checkField, checkIndeterminateField: checkIndeterminateField, expandField: props.expandField, childrenField: subItemsField, expandIcons: true, onItemClick: onChange, onCheckChange: onChange, onExpandChange: onExpand, checkboxes: true, size: size, item: props.item, dir: dir })) : (React.createElement(NoData, null, localization.toLanguageString(nodata, messages[nodata]))))),\n isAdaptive && renderAdaptiveListContainer()));\n return label ? (React.createElement(FloatingLabel, { label: label, editorValue: hasValue, editorPlaceholder: placeholder, editorValid: isValid, editorDisabled: disabled, editorId: id, style: { width: style ? style.width : undefined }, children: multiselecttree, dir: dir })) : multiselecttree;\n});\nvar propTypes = {\n opened: PropTypes.bool,\n disabled: PropTypes.bool,\n dir: PropTypes.string,\n tabIndex: PropTypes.number,\n accessKey: PropTypes.string,\n data: PropTypes.array,\n value: PropTypes.any,\n valueMap: PropTypes.func,\n placeholder: PropTypes.string,\n dataItemKey: PropTypes.string.isRequired,\n textField: PropTypes.string.isRequired,\n checkField: PropTypes.string,\n checkIndeterminateField: PropTypes.string,\n expandField: PropTypes.string,\n subItemsField: PropTypes.string,\n className: PropTypes.string,\n style: PropTypes.object,\n label: PropTypes.string,\n validationMessage: PropTypes.string,\n validityStyles: PropTypes.bool,\n valid: PropTypes.bool,\n required: PropTypes.bool,\n name: PropTypes.string,\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n filterable: PropTypes.bool,\n filter: PropTypes.string,\n loading: PropTypes.bool,\n tags: PropTypes.arrayOf(PropTypes.shape({\n text: PropTypes.string,\n data: PropTypes.arrayOf(PropTypes.any)\n })),\n popupSettings: PropTypes.shape({\n animate: PropTypes.oneOfType([PropTypes.bool, PropTypes.shape({\n openDuration: PropTypes.number,\n closeDuration: PropTypes.number\n })]),\n popupClass: PropTypes.string,\n className: PropTypes.string,\n appendTo: PropTypes.any,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n }),\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onFilterChange: PropTypes.func,\n onExpandChange: PropTypes.func,\n onCancel: PropTypes.func,\n item: PropTypes.func,\n listNoData: PropTypes.func,\n adaptiveTitle: PropTypes.string,\n adaptive: PropTypes.bool\n};\nMultiSelectTree.displayName = 'KendoReactMultiSelectTree';\nMultiSelectTree.defaultProps = defaultProps;\nMultiSelectTree.propTypes = propTypes;\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { getter } from '@progress/kendo-react-common';\n/** @hidden */\nexport var getValueMap = function (value, idGetter) {\n var map = {};\n if (value && value.length) {\n value.forEach(function (item) {\n map[idGetter(item)] = true;\n });\n }\n return map;\n};\n/**\n * Get MultiSelectTree new value from the component `onChange` event.\n *\n * @param {any[]} data\n * @param {object} options\n * @returns {any[]}\n */\nexport var getMultiSelectTreeValue = function (data, options) {\n var items = options.items, dataItemKey = options.dataItemKey, value = options.value, _a = options.subItemsField, subItemsField = _a === void 0 ? 'items' : _a, operation = options.operation;\n var idGetter = getter(dataItemKey);\n var valueMap = getValueMap(value, idGetter);\n if (operation === 'clear') {\n return [];\n }\n else if (operation === 'delete') {\n var deletedItemsMap_1 = getValueMap(items, idGetter);\n return value.filter(function (item) { return !deletedItemsMap_1[idGetter(item)]; });\n }\n // operation === 'toggle'\n var selectedItem = items[0];\n var selectedId = idGetter(selectedItem);\n var subItemGetter = getter(subItemsField);\n var stack = __spreadArray([], data, true);\n var context = [];\n var parents = [];\n var foundItem;\n while (stack.length) {\n var currentItem = stack.pop();\n if (selectedId === idGetter(currentItem)) {\n parents = context.map(function (contextItem) { return contextItem.item; });\n foundItem = currentItem;\n break;\n }\n else {\n if (context &&\n context.length &&\n context[context.length - 1].parentPosition === stack.length) {\n context.pop();\n }\n var subItems = subItemGetter(currentItem);\n if (subItems && subItems.length) {\n context.push({ item: currentItem, parentPosition: stack.length });\n stack.push.apply(stack, subItems);\n }\n }\n }\n var childrenStack = __spreadArray([], (subItemGetter(foundItem) || []), true);\n var children = [];\n while (childrenStack.length) {\n var currentItem = childrenStack.pop();\n children.push(currentItem);\n var subItems = subItemGetter(currentItem);\n if (subItems && subItems.length) {\n childrenStack.push.apply(childrenStack, subItems);\n }\n }\n var isChecked = !valueMap[selectedId];\n var newValue = [];\n if (isChecked) {\n newValue.push.apply(newValue, value);\n newValue.push(foundItem);\n newValue.push.apply(newValue, children.filter(function (item) { return !valueMap[idGetter(item)]; }));\n var parentCandidates = parents.filter(function (item) { return !valueMap[idGetter(item)]; });\n var newValueMap_1 = getValueMap(newValue, idGetter);\n for (var i = parentCandidates.length - 1; i > -1; i--) {\n var candidate = parentCandidates[i];\n var subItems = subItemGetter(candidate);\n var checkedChildrenLength = subItems.filter(function (item) { return newValueMap_1[idGetter(item)]; }).length;\n if (checkedChildrenLength < subItems.length) {\n break;\n }\n else {\n newValue.push(candidate);\n newValueMap_1[idGetter(candidate)] = true;\n }\n }\n }\n else {\n var foundId_1 = idGetter(foundItem);\n var childrenMap_1 = getValueMap(children, idGetter);\n var parentsMap_1 = getValueMap(parents, idGetter);\n newValue.push.apply(newValue, (value\n .filter(function (item) {\n var itemId = idGetter(item);\n return !childrenMap_1[itemId] && foundId_1 !== itemId && !parentsMap_1[itemId];\n })));\n }\n return newValue;\n};\n// /** @hidden */\n// const mapCheckAndIntermidiate = (\n// data,\n// options: {\n// valueMap: {[dataItemKey: string]: boolean};\n// callback?: (item: any) => any;\n// idGetter: (item: any) => any;\n// subItemGetter: (item: any) => any;\n// subItemSetter: (item: any, value: any) => void;\n// checkSetter: (item: any, value: any) => void;\n// checkIndeterminateSetter: (item: any, value: any) => void;\n// }\n// ) => {\n// const {\n// idGetter,\n// subItemGetter,\n// subItemSetter,\n// checkSetter,\n// checkIndeterminateSetter\n// } = options;\n// if (!data || !data.length) { return [data, false];}\n// let hasChecked = false;\n// const newData = [...data].map(dataItem => {\n// const [children, hasCheckedChildren] = mapCheckAndIntermidiate(subItemGetter(dataItem), options);\n// const isChecked = options.valueMap[idGetter(dataItem)];\n// if (isChecked || hasCheckedChildren) {\n// hasChecked = true;\n// }\n// const newItem = { ...dataItem };\n// subItemSetter(newItem, children);\n// checkSetter(newItem, isChecked);\n// checkIndeterminateSetter(newItem, !isChecked && hasCheckedChildren);\n// return options.callback ? options.callback(newItem) : newItem;\n// });\n// return [newData, hasChecked];\n// };\n// /**\n// *\n// * @param data\n// * @param options\n// * @returns\n// */\n// /**\n// * Creates a new array with the results of calling the provided callback function\n// * on every element in the provided data tree. The new tree items have their `check` and `checkIndeterminate` fields set based on provided value.\n// *\n// * @param {any[]} tree - The data tree.\n// * @param {object} options - The options used to map the tree items like check and checkIndeterminateField fields\n// * @returns {any[]} - The new data tree.\n// */\n// export const mapMultiSelectTreeData = (\n// tree,\n// options: {\n// checkField?: string;\n// checkIndeterminateField?: string;\n// subItemsField?: string;\n// dataItemKey: string;\n// value: Array;\n// callback?: (item) => any;\n// }\n// ) => {\n// const {\n// subItemsField = 'items',\n// checkField = 'checkField',\n// checkIndeterminateField = 'checkIndeterminateField',\n// callback\n// } = options;\n// const idGetter = getter(options.dataItemKey);\n// const [result] = mapCheckAndIntermidiate(\n// tree,\n// {\n// callback,\n// valueMap: getValueMap(options.value, idGetter),\n// idGetter,\n// subItemGetter: getter(subItemsField),\n// subItemSetter: setter(subItemsField),\n// checkSetter: setter(checkField),\n// checkIndeterminateSetter: setter(checkIndeterminateField)\n// }\n// );\n// return result;\n// };\n","var _a;\n/**\n * @hidden\n */\nexport var nodata = 'dropdowns.nodata';\n/**\n * @hidden\n */\nexport var clear = 'dropdowns.clear';\n/**\n * @hidden\n */\nexport var comboArrowBtnAriaLabelExpand = 'dropdowns.comboArrowBtnAriaLabelExpand';\n/**\n * @hidden\n */\nexport var comboArrowBtnAriaLabelCollapse = 'dropdowns.comboArrowBtnAriaLabelCollapse';\n/**\n * @hidden\n */\nexport var dropDownListArrowBtnAriaLabel = 'dropdowns.dropDownListArrowBtnAriaLabel';\n/**\n * @hidden\n */\nexport var adaptiveModeFooterApply = 'dropdowns.apply';\n/**\n * @hidden\n */\nexport var adaptiveModeFooterCancel = 'dropdowns.cancel';\n/**\n * @hidden\n */\nexport var messages = (_a = {},\n _a[clear] = 'clear',\n _a[nodata] = 'NO DATA FOUND.',\n _a[comboArrowBtnAriaLabelExpand] = 'expand combobox',\n _a[comboArrowBtnAriaLabelCollapse] = 'collapse combobox',\n _a[dropDownListArrowBtnAriaLabel] = 'select',\n _a[adaptiveModeFooterApply] = 'Apply',\n _a[adaptiveModeFooterCancel] = 'Cancel',\n _a);\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-dropdowns',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1697039598,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { guid, classNames, createPropsContext, withPropsContext } from '@progress/kendo-react-common';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\n/** @hidden */\nvar InputWithoutContext = /** @class */ (function (_super) {\n __extends(InputWithoutContext, _super);\n function InputWithoutContext(props) {\n var _this = _super.call(this, props) || this;\n _this._input = null;\n _this._inputId = guid();\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this._input) {\n _this._input.focus();\n }\n };\n _this.isInvalid = function (state) {\n var result = false;\n for (var prop in state) {\n if (state.hasOwnProperty(prop)) {\n result = result || Boolean(state[prop]);\n }\n }\n return result;\n };\n /**\n * @hidden\n */\n _this.setValidity = function () {\n if (_this._input && _this._input.setCustomValidity) {\n _this.validity.valid || !_this.validityStyles\n ? _this._input.classList.remove('k-invalid')\n : _this._input.classList.add('k-invalid');\n _this._input.setCustomValidity(_this.validity.valid\n ? ''\n : _this.props.validationMessage || '');\n }\n };\n _this.handleChange = function (event) {\n _this.setState({\n value: event.target.value\n });\n _this.valueDuringOnChange = event.target.value;\n if (_this.props.onChange) {\n _this.props.onChange.call(undefined, {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n value: event.target.value,\n target: _this\n });\n }\n _this.valueDuringOnChange = undefined;\n };\n /**\n * @hidden\n */\n _this.handleAutoFill = function (e) {\n if (e.animationName === 'autoFillStart') {\n var parent_1 = e.target.parentNode;\n if (parent_1 && parent_1.classList.contains('k-empty')) {\n parent_1.classList.remove('k-empty');\n }\n }\n };\n validatePackage(packageMetadata);\n _this.state = {\n value: _this.props.defaultValue || InputWithoutContext.defaultProps.defaultValue\n };\n return _this;\n }\n Object.defineProperty(InputWithoutContext.prototype, \"element\", {\n /**\n * Gets the native input element of the Input component.\n */\n get: function () {\n return this._input;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(InputWithoutContext.prototype, \"value\", {\n /**\n * Gets the value of the Input.\n */\n get: function () {\n return this.valueDuringOnChange !== undefined\n ? this.valueDuringOnChange\n : this.props.value !== undefined\n ? this.props.value\n : this.state.value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(InputWithoutContext.prototype, \"name\", {\n /**\n * Gets the `name` property of the Input.\n */\n get: function () {\n return this.props.name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(InputWithoutContext.prototype, \"validity\", {\n /**\n * Represents the validity state into which the Input is set.\n */\n get: function () {\n var result = {\n badInput: this._input ? this._input.validity.badInput : false,\n patternMismatch: this._input\n ? this._input.validity.patternMismatch\n : false,\n rangeOverflow: this._input ? this._input.validity.rangeOverflow : false,\n rangeUnderflow: this._input ? this._input.validity.rangeUnderflow : false,\n stepMismatch: this._input ? this._input.validity.stepMismatch : false,\n tooLong: this._input ? this._input.validity.tooLong : false,\n typeMismatch: this._input ? this._input.validity.typeMismatch : false,\n valueMissing: this._input ? this._input.validity.valueMissing : false\n };\n return __assign(__assign({}, result), { customError: this.props.validationMessage !== undefined, valid: this.props.valid !== undefined\n ? this.props.valid\n : this._input\n ? !this.isInvalid(result)\n : true });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(InputWithoutContext.prototype, \"validityStyles\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.validityStyles !== undefined\n ? this.props.validityStyles\n : InputWithoutContext.defaultProps.validityStyles;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n InputWithoutContext.prototype.componentDidMount = function () {\n this.forceUpdate();\n };\n /**\n * @hidden\n */\n InputWithoutContext.prototype.componentDidUpdate = function () {\n this.setValidity();\n };\n /**\n * @hidden\n */\n InputWithoutContext.prototype.render = function () {\n var _this = this;\n var _a = this.props, className = _a.className, label = _a.label, labelClassName = _a.labelClassName, id = _a.id, validationMessage = _a.validationMessage, defaultValue = _a.defaultValue, valid = _a.valid, \n // Removed to support direct use in Form Field component\n visited = _a.visited, touched = _a.touched, modified = _a.modified, ariaLabelledBy = _a.ariaLabelledBy, ariaDescribedBy = _a.ariaDescribedBy, validityStyles = _a.validityStyles, style = _a.style, ariaLabel = _a.ariaLabel, props = __rest(_a, [\"className\", \"label\", \"labelClassName\", \"id\", \"validationMessage\", \"defaultValue\", \"valid\", \"visited\", \"touched\", \"modified\", \"ariaLabelledBy\", \"ariaDescribedBy\", \"validityStyles\", \"style\", \"ariaLabel\"]);\n var inputId = id || this._inputId;\n var isValid = !this.validityStyles || this.validity.valid;\n var inputClassName = classNames(className, 'k-input k-input-md k-rounded-md k-input-solid');\n var textbox = (React.createElement(\"input\", __assign({ \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy, \"aria-disabled\": this.props.disabled || undefined, \"aria-invalid\": !isValid || undefined, \"aria-label\": ariaLabel || undefined }, props, { style: !label\n ? style\n : undefined, value: this.value, id: inputId, className: inputClassName, onChange: this.handleChange, onAnimationStart: this.handleAutoFill, ref: function (el) {\n _this._input = el;\n } })));\n return label ?\n (React.createElement(FloatingLabel, { label: label, labelClassName: labelClassName, editorId: inputId, editorValue: String(this.value), editorValid: isValid, editorDisabled: props.disabled, editorPlaceholder: props.placeholder, children: textbox, style: style, dir: props.dir }))\n : textbox;\n };\n InputWithoutContext.displayName = 'Input';\n /**\n * @hidden\n */\n InputWithoutContext.propTypes = {\n label: PropTypes.string,\n labelClassName: PropTypes.string,\n validationMessage: PropTypes.string,\n required: PropTypes.bool,\n validate: PropTypes.bool,\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n ariaLabel: PropTypes.string\n };\n /**\n * @hidden\n */\n InputWithoutContext.defaultProps = {\n defaultValue: '',\n required: false,\n validityStyles: true\n };\n return InputWithoutContext;\n}(React.Component));\nexport { InputWithoutContext };\n/**\n * Represents the PropsContext of the `Input` component.\n * Used for global configuration of all `Input` instances.\n *\n * For more information, refer to the [Inputs Props Context]({% slug props-context_inputs %}) article.\n */\nexport var InputPropsContext = createPropsContext();\n;\n/* eslint-disable @typescript-eslint/no-redeclare -- intentionally naming the component the same as the type */\n/**\n * Represents the [KendoReact Input component]({% slug overview_textbox %}).\n *\n * Accepts properties of type [InputProps]({% slug api_inputs_inputprops %}).\n * Obtaining the `ref` returns an object of type [InputHandle]({% slug api_inputs_inputhandle %}).\n */\nexport var Input = withPropsContext(InputPropsContext, InputWithoutContext);\nInput.displayName = 'KendoReactInput';\n","var _a;\n/**\n * @hidden\n */\nexport var numericIncreaseValue = 'numerictextbox.increment';\n/**\n * @hidden\n */\nexport var numericDecreaseValue = 'numerictextbox.decrement';\n/**\n * @hidden\n */\nexport var sliderIncreaseValue = 'slider.increment';\n/**\n * @hidden\n */\nexport var sliderDecreaseValue = 'slider.decrement';\n/**\n * @hidden\n */\nexport var sliderDragTitle = 'slider.dragTitle';\n/**\n * @hidden\n */\nexport var colorGradientR = 'colorGradient.r';\n/**\n * @hidden\n */\nexport var colorGradientG = 'colorGradient.g';\n/**\n * @hidden\n */\nexport var colorGradientB = 'colorGradient.b';\n/**\n * @hidden\n */\nexport var colorGradientA = 'colorGradient.a';\n/**\n * @hidden\n */\nexport var colorGradientHex = 'colorGradient.hex';\n/**\n * @hidden\n */\nexport var colorGradientContrastRatio = 'colorGradient.contrastRatio';\n/**\n * @hidden\n */\nexport var colorGradientAALevel = 'colorGradient.colorGradientAALevel';\n/**\n * @hidden\n */\nexport var colorGradientAAALevel = 'colorGradient.colorGradientAAALevel';\n/**\n * @hidden\n */\nexport var colorGradientPass = 'colorGradient.colorGradientPass';\n/**\n * @hidden\n */\nexport var colorGradientFail = 'colorGradient.colorGradientFail';\n/**\n * @hidden\n */\nexport var colorGradientHueSliderLabel = 'colorGradient.hueSliderLabel';\n/**\n * @hidden\n */\nexport var colorGradientAlphaSliderLabel = 'colorGradient.alphaSliderLabel';\n/**\n * @hidden\n */\nexport var colorGradientToggleInputsButton = 'colorGradient.toggleInputsButton';\n/**\n * @hidden\n */\nexport var flatColorPickerCancelBtn = 'flatColorPicker.cancelBtn';\n/**\n * @hidden\n */\nexport var flatColorPickerApplyBtn = 'flatColorPicker.applyBtn';\n/**\n * @hidden\n */\nexport var flatColorPickerColorGradientBtn = 'flatColorPicker.colorGradientBtn';\n/**\n * @hidden\n */\nexport var flatColorPickerColorPaletteBtn = 'flatColorPicker.colorPaletteBtn';\n/**\n * @hidden\n */\nexport var flatColorPickerClearBtn = 'flatColorPicker.clearBtn';\n/**\n * @hidden\n */\nexport var checkboxValidation = 'checkbox.validation';\n/**\n * @hidden\n */\nexport var checkboxOptionalText = 'checkbox.optionalText';\n/**\n * @hidden\n */\nexport var radioButtonValidation = 'radioButton.validation';\n/**\n * @hidden\n */\nexport var switchValidation = 'switch.validation';\n/**\n * @hidden\n */\nexport var colorPickerDropdownButtonAriaLabel = 'colorPicker.dropdownButtonAriaLabel';\n/**\n * @hidden\n */\nexport var ratingAriaLabel = 'rating.ariaLabel';\n/**\n * @hidden\n */\nexport var signatureClear = 'signature.clear';\n/**\n * @hidden\n */\nexport var signatureMaximize = 'signature.maximize';\n/**\n * @hidden\n */\nexport var signatureMinimize = 'signature.minimize';\n/**\n * @hidden\n */\nexport var messages = (_a = {},\n _a[numericIncreaseValue] = 'Increase value',\n _a[numericDecreaseValue] = 'Decrease value',\n _a[sliderIncreaseValue] = 'Increase',\n _a[sliderDecreaseValue] = 'Decrease',\n _a[sliderDragTitle] = 'Drag',\n _a[colorGradientR] = 'r',\n _a[colorGradientG] = 'g',\n _a[colorGradientB] = 'b',\n _a[colorGradientA] = 'a',\n _a[colorGradientHex] = 'hex',\n _a[colorGradientContrastRatio] = 'Contrast ratio',\n _a[colorGradientAALevel] = 'AA',\n _a[colorGradientAAALevel] = 'AAA',\n _a[colorGradientPass] = 'Pass',\n _a[colorGradientFail] = 'Fail',\n _a[colorGradientHueSliderLabel] = 'Hue slider',\n _a[colorGradientAlphaSliderLabel] = 'Alpha slider',\n _a[colorGradientToggleInputsButton] = 'Toggle colorgradient inputs',\n _a[flatColorPickerCancelBtn] = 'Cancel',\n _a[flatColorPickerApplyBtn] = 'Apply',\n _a[flatColorPickerColorGradientBtn] = 'Color Gradient view',\n _a[flatColorPickerColorPaletteBtn] = 'Color Palette view',\n _a[flatColorPickerClearBtn] = 'Clear color value',\n _a[checkboxValidation] = 'Please check this box if you want to proceed!',\n _a[checkboxOptionalText] = '(Optional)',\n _a[radioButtonValidation] = 'Please select option if you want to proceed!',\n _a[switchValidation] = 'Please turn on if you want to proceed!',\n _a[colorPickerDropdownButtonAriaLabel] = 'Select',\n _a[ratingAriaLabel] = 'Rating',\n _a[signatureClear] = 'Clear',\n _a[signatureMaximize] = 'Maximize',\n _a[signatureMinimize] = 'Minimize',\n _a);\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar DEFAULT_NUMBER = 1111111.1111111;\nvar MAX_DECIMAL = 0.31111111111111117;\nvar MIN_DECIMAL = 1;\nvar ONE_NUMBER = 1;\nvar ZERO_NUMBER = 0;\nvar DIGITS_REGEX = /\\d/;\nvar MAX_PRECISION = 15;\n/**\n * @hidden\n */\nexport var getInitialState = function () { return ({\n eventValue: null,\n prevLooseValue: '',\n currentLooseValue: '',\n focused: false,\n selectionStart: undefined,\n selectionEnd: undefined,\n decimalSelect: false,\n valueIsCorrected: false,\n valueIsOutOfRange: false\n}); };\n/**\n * @hidden\n */\nexport var getStateOrPropsValue = function (value, stateValue) {\n return value !== undefined ? value : stateValue;\n};\n/**\n * @hidden\n */\nexport var formatValue = function (value, format, intlService) {\n if (value === null && value === undefined) {\n return '';\n }\n if (typeof value === 'string') {\n return value;\n }\n return intlService.formatNumber(value, format);\n};\n/**\n * @hidden\n */\nexport var fractionLength = function (value) {\n return (String(value).split('.')[1] || '').length;\n};\n/**\n * @hidden\n */\nvar maxFractionLength = function (value1, value2) {\n return Math.max(fractionLength(value1), fractionLength(value2));\n};\n/**\n * @hidden\n */\nexport var limitPrecision = function (precision) { return Math.min(precision, MAX_PRECISION); };\n/**\n * @hidden\n */\nexport var toFixedPrecision = function (value, precision) {\n var maxPrecision = limitPrecision(precision);\n return parseFloat(value.toFixed(maxPrecision));\n};\n/**\n * @hidden\n */\nexport var increaseValue = function (value, newState, step, min, max, format, intlService) {\n var maxPrecision = maxFractionLength(value || 0, step || 0);\n var increasedValue = rangeValue(toFixedPrecision((value || 0) + (step || 0), maxPrecision), min, max);\n newState.eventValue = increasedValue;\n newState.currentLooseValue = formatValue(increasedValue, format, intlService);\n newState.selectionStart = newState.selectionEnd = getLastNumberIndex(newState.currentLooseValue, DIGITS_REGEX);\n};\n/**\n * @hidden\n */\nexport var decreaseValue = function (value, newState, step, min, max, format, intlService) {\n var maxPrecision = maxFractionLength(value || 0, step || 0);\n var decreasedValue = rangeValue(toFixedPrecision((value || 0) - (step || 0), maxPrecision), min, max);\n newState.eventValue = decreasedValue;\n newState.currentLooseValue = formatValue(decreasedValue, format, intlService);\n newState.selectionStart = newState.selectionEnd = getLastNumberIndex(newState.currentLooseValue, DIGITS_REGEX);\n};\n/**\n * @hidden\n */\nexport var rangeValue = function (value, min, max) {\n if (value == null) {\n return value;\n }\n if (!(value > 1 || value < 1 || value === 1)) {\n // null, undefined or NaN\n return null;\n }\n if (max !== undefined && min !== undefined && max < min) {\n return null;\n }\n if (max !== undefined && value > max) {\n value = max;\n }\n if (min !== undefined && value < min) {\n value = min;\n }\n return value;\n};\n/**\n * @hidden\n */\nexport var getMaxCursorPosition = function (nextValue, formatInfo) {\n var formatSuffixIndex = formatInfo.findIndex(function (_a) {\n var _ = _a[0], currSuffix = _a[1];\n return Boolean(currSuffix) && nextValue.indexOf(currSuffix) === nextValue.length - currSuffix.length;\n });\n if (formatSuffixIndex === -1) {\n return -1;\n }\n var suffix = formatInfo[formatSuffixIndex][1];\n return nextValue.length - suffix.length;\n};\n/**\n * @hidden\n */\nexport var getMinCursorPosition = function (nextValue, formatInfo) {\n var formatPrefixIndex = formatInfo.findIndex(function (_a) {\n var currPrefix = _a[0], _ = _a[1];\n return Boolean(currPrefix) && nextValue.indexOf(currPrefix) === 0;\n });\n if (formatPrefixIndex === -1) {\n return -1;\n }\n var prefix = formatInfo[formatPrefixIndex][0];\n return prefix.length;\n};\n/**\n * @hidden\n */\nexport var rangeSelection = function (nextLooseValue, formatInfo, newState) {\n var maxPosition = getMaxCursorPosition(nextLooseValue, formatInfo);\n if (maxPosition !== -1 && newState.selectionStart > maxPosition) {\n newState.selectionStart = newState.selectionEnd = maxPosition;\n return;\n }\n if (newState.selectionStart > nextLooseValue.length) {\n newState.selectionStart = newState.selectionEnd = nextLooseValue.length;\n }\n var minPosition = getMinCursorPosition(nextLooseValue, formatInfo);\n if (minPosition !== -1 && newState.selectionStart < minPosition) {\n newState.selectionStart = newState.selectionEnd = minPosition;\n }\n if (newState.selectionStart === -1) {\n newState.selectionStart = newState.selectionEnd = 0;\n }\n};\n/**\n * @hidden\n */\nexport var setSelection = function (newState, newIndex, nextLooseValue, formatInfo) {\n newState.selectionStart = newState.selectionEnd = newIndex;\n rangeSelection(nextLooseValue, formatInfo, newState);\n};\n/**\n * @hidden\n */\nexport var setInvalid = function (newState, format, formatInfo, intlService) {\n newState.eventValue = intlService.parseNumber(newState.prevLooseValue, format);\n newState.currentLooseValue = newState.prevLooseValue;\n newState.valueIsCorrected = true;\n setSelection(newState, newState.selectionStart, newState.currentLooseValue, formatInfo);\n};\n/**\n * @hidden\n */\nexport var isMinusSymbolAdded = function (newState, symbols) {\n var newText = String(newState.currentLooseValue);\n var oldText = String(newState.prevLooseValue);\n return (newText.split(symbols.minusSign).length !== oldText.split(symbols.minusSign).length &&\n newText.length === oldText.length + symbols.minusSign.length);\n};\n/**\n * @hidden\n */\nexport var isMinusSymbolRemoved = function (newState, symbols) {\n var newText = String(newState.currentLooseValue);\n var oldText = String(newState.prevLooseValue);\n return (newText.indexOf(symbols.minusSign) === -1 && oldText.indexOf(symbols.minusSign) !== -1);\n};\n/**\n * @hidden\n */\nexport var isDecimalDuplicated = function (newState, symbols) {\n var newText = String(newState.currentLooseValue);\n return newText.split(symbols.decimal).length > 2;\n};\n/**\n * @hidden\n */\nexport var getFormatPrefixSufix = function (format, intlService) {\n var positiveResult = intlService.formatNumber(DEFAULT_NUMBER, format);\n var negativeResult = intlService.formatNumber(-DEFAULT_NUMBER, format);\n var zeroResult = intlService.formatNumber(ZERO_NUMBER, format);\n var oneResult = intlService.formatNumber(ONE_NUMBER, format);\n var positivePrefix = getPrefix(positiveResult);\n var negativePrefix = getPrefix(negativeResult);\n var zeroPrefix = getPrefix(zeroResult);\n var onePrefix = getPrefix(oneResult);\n var positiveSuffix = getSuffix(positiveResult);\n var negativeSuffix = getSuffix(negativeResult);\n var zeroSuffix = getSuffix(zeroResult);\n var oneSuffix = getSuffix(oneResult);\n return {\n positiveInfo: [positivePrefix, positiveSuffix],\n negativeInfo: [negativePrefix, negativeSuffix],\n zeroInfo: [zeroPrefix, zeroSuffix],\n oneInfo: [onePrefix, oneSuffix]\n };\n};\n/**\n * @hidden\n */\nexport var getFormatSymbols = function (format, intlService) {\n var positiveResult = intlService.formatNumber(DEFAULT_NUMBER, format);\n var negativeResult = intlService.formatNumber(-DEFAULT_NUMBER, format);\n var zeroResult = intlService.formatNumber(ZERO_NUMBER, format);\n var oneResult = intlService.formatNumber(ONE_NUMBER, format);\n var symbols = intlService.numberSymbols();\n var sanitizeRegex = new RegExp(\"[\\\\d\\\\\".concat(symbols.decimal).concat(symbols.group, \"]\"), 'g');\n var resultWithDuplicates = [positiveResult, negativeResult, zeroResult, oneResult]\n .map(function (result) { return result.replace(sanitizeRegex, ''); })\n .join('');\n return resultWithDuplicates\n .split('')\n .filter(function (x, n, s) { return s.indexOf(x) === n; })\n .join('');\n};\n/**\n * @hidden\n */\nexport var getInitialPosition = function (nextLooseValue, symbols) {\n var decimalIdex = nextLooseValue.indexOf(symbols.decimal);\n if (decimalIdex > -1) {\n return decimalIdex;\n }\n return getLastNumberIndex(nextLooseValue, DIGITS_REGEX);\n};\n/**\n * @hidden\n */\nexport var reverseString = function (str) {\n return str.split('').reverse().join('');\n};\n/**\n * @hidden\n */\nexport var getLastNumberIndex = function (currentLooseValue, inputRegex) {\n return currentLooseValue.length - reverseString(currentLooseValue).search(inputRegex);\n};\n/**\n * @hidden\n */\nexport var getPrefix = function (str) {\n return str.split(str[str.search(DIGITS_REGEX)])[0];\n};\n/**\n * @hidden\n */\nexport var getSuffix = function (str) {\n var reversedString = reverseString(str);\n return reverseString(reversedString.split(reversedString[reversedString.search(DIGITS_REGEX)])[0]);\n};\n/**\n * @hidden\n */\nexport var getFirstNumberIndex = function (prevLooseValue, inputRegex) {\n return prevLooseValue.search(inputRegex);\n};\n/**\n * @hidden\n */\nexport var getDecimalCount = function (value, decimal) {\n var currentDecimalPlace = value.indexOf(decimal);\n return currentDecimalPlace > -1 ? value.length - currentDecimalPlace - 1 : 0;\n};\n/**\n * @hidden\n */\nexport var changeBasedSelection = function (currentValue, nextValue, selectionPosition, isDelete, sanitizeRegex) {\n var isCurrentLeadingZero = currentValue.replace(sanitizeRegex, '')[0] === '0';\n var isNextLeadingZero = nextValue.replace(sanitizeRegex, '')[0] === '0';\n if (isCurrentLeadingZero && !isNextLeadingZero) {\n return selectionPosition - 1;\n }\n if (isNextLeadingZero && isDelete) {\n return selectionPosition + 1;\n }\n var numberCounter = 0;\n for (var idx = 0; idx < selectionPosition; idx++) {\n if (DIGITS_REGEX.test(currentValue.charAt(idx))) {\n numberCounter++;\n }\n }\n var newSelection = 0;\n while (numberCounter > 0 && nextValue.length > newSelection) {\n if (DIGITS_REGEX.test(nextValue.charAt(newSelection))) {\n numberCounter--;\n }\n newSelection++;\n }\n return newSelection;\n};\n/**\n * @hidden\n */\nexport var sanitizeNumber = function (state, format, intlService) {\n var newState = __assign({}, state);\n var prevLooseValue = newState.prevLooseValue;\n var symbols = intlService.numberSymbols();\n var restrictedSymbols = getFormatSymbols(format, intlService);\n var currentLooseValueAsString = String(newState.currentLooseValue);\n var prevLooseValueAsString = String(prevLooseValue);\n var sanitizeRegex = new RegExp(\"[^\\\\d\\\\\".concat(symbols.decimal, \"]\"), 'g');\n var sanitizeGroupRegex = new RegExp(\"[^\\\\d\\\\\".concat(symbols.decimal, \"\\\\\").concat(symbols.group, \"]\"), 'g');\n var allSymbolsRegex = new RegExp(\"[\\\\d\\\\\".concat(symbols.decimal, \"\\\\\").concat(symbols.group, \"]\"));\n var sanitizedString = currentLooseValueAsString.replace(sanitizeRegex, '');\n var numberStart = getFirstNumberIndex(currentLooseValueAsString, DIGITS_REGEX);\n var numberEnd = numberStart === -1 ? -1 : getLastNumberIndex(currentLooseValueAsString, DIGITS_REGEX);\n var decimalIndex = currentLooseValueAsString.indexOf(symbols.decimal);\n var sanitizedFormattedString = (currentLooseValueAsString.substring(0, numberStart) +\n currentLooseValueAsString.substring(numberStart, numberEnd).replace(sanitizeGroupRegex, '') +\n currentLooseValueAsString.substring(numberEnd, currentLooseValueAsString.length))\n .split('')\n .filter(function (s) { return restrictedSymbols.indexOf(s) !== -1 || s.search(allSymbolsRegex) !== -1; })\n .join('');\n var formattedMax = intlService.formatNumber(MAX_DECIMAL, format).replace(sanitizeRegex, '');\n var maxDecimalIndex = formattedMax.indexOf(symbols.decimal);\n var maxDecimalCount = maxDecimalIndex > -1 ? formattedMax.length - maxDecimalIndex - 1 : 0;\n var formattedMin = intlService.formatNumber(MIN_DECIMAL, format).replace(sanitizeRegex, '');\n var minDecimalIndex = formattedMin.indexOf(symbols.decimal);\n var minDecimalCount = minDecimalIndex > -1 ? formattedMin.length - minDecimalIndex - 1 : 0;\n var _a = getFormatPrefixSufix(format, intlService), positiveInfo = _a.positiveInfo, negativeInfo = _a.negativeInfo, zeroInfo = _a.zeroInfo, oneInfo = _a.oneInfo;\n var formatInfo = [positiveInfo, negativeInfo, zeroInfo, oneInfo];\n var isFormatContainPrefixSuffix = formatInfo.findIndex(function (info) { return info.findIndex(function (nestedInfo) { return Boolean(nestedInfo); }) !== -1; }) !== 1;\n var isDelete = currentLooseValueAsString.length > 0 && currentLooseValueAsString.length < prevLooseValueAsString.length;\n var isPercentFormat = typeof format === 'string' &&\n format[0] === 'p' &&\n currentLooseValueAsString &&\n currentLooseValueAsString.indexOf(symbols.percentSign) === -1;\n if (!newState.isPaste) {\n // 1. Empty input\n if (currentLooseValueAsString === '') {\n newState.eventValue = null;\n newState.currentLooseValue = '';\n return newState;\n }\n // 2. Check is minus sign\n if (newState.currentLooseValue === symbols.minusSign && intlService.formatNumber(-0, format) !== prevLooseValueAsString) {\n newState.eventValue = -0;\n newState.currentLooseValue = formatValue(newState.eventValue, format, intlService);\n setSelection(newState, getInitialPosition(newState.currentLooseValue, symbols), newState.currentLooseValue, formatInfo);\n return newState;\n }\n // 3. Check is decimal symbol\n if (newState.currentLooseValue === symbols.decimal) {\n newState.eventValue = 0;\n var valueCandidate = formatValue(newState.eventValue, format, intlService);\n if (minDecimalCount === 0 && maxDecimalCount > 0) {\n var currentLastNumberIndex = getLastNumberIndex(valueCandidate, DIGITS_REGEX);\n newState.currentLooseValue = valueCandidate.substring(0, currentLastNumberIndex) +\n symbols.decimal +\n valueCandidate.substring(currentLastNumberIndex);\n }\n else {\n newState.currentLooseValue = valueCandidate;\n }\n setSelection(newState, getInitialPosition(newState.currentLooseValue, symbols) + 1, newState.currentLooseValue, formatInfo);\n return newState;\n }\n // 4. Minus sign toggle\n if (isMinusSymbolAdded(newState, symbols)) {\n var nextValue = intlService.parseNumber(prevLooseValue, format);\n newState.eventValue = -(nextValue !== null ? nextValue : 0);\n newState.currentLooseValue = formatValue(newState.eventValue, format, intlService);\n var currentNumberStart = getFirstNumberIndex(newState.currentLooseValue, DIGITS_REGEX);\n var oldNumberStart = getFirstNumberIndex(prevLooseValueAsString, DIGITS_REGEX);\n setSelection(newState, newState.selectionEnd - 1 + (currentNumberStart - oldNumberStart), newState.currentLooseValue, formatInfo);\n return newState;\n }\n if (isMinusSymbolRemoved(newState, symbols)) {\n newState.eventValue = intlService.parseNumber(newState.currentLooseValue, format);\n setSelection(newState, newState.selectionStart, newState.currentLooseValue, formatInfo);\n return newState;\n }\n // 5. Duplicate decimal - it's possible only as trailing\n if (isDecimalDuplicated(newState, symbols)) {\n setInvalid(newState, format, formatInfo, intlService);\n return newState;\n }\n // 6. Percent format\n if (isPercentFormat) {\n newState.eventValue = intlService.parseNumber(currentLooseValueAsString, format) / 100;\n newState.currentLooseValue = formatValue(newState.eventValue, format, intlService);\n return newState;\n }\n // 7. More than 15 numeric symbols\n var numericSymbols = String(newState.currentLooseValue).replace(/[^\\d]/g, '');\n if (numericSymbols.length > MAX_PRECISION) {\n setInvalid(newState, format, formatInfo, intlService);\n return newState;\n }\n // 8. Check prefix / suffix for modifications\n if (sanitizedString !== currentLooseValueAsString &&\n currentLooseValueAsString &&\n isFormatContainPrefixSuffix) {\n var formatInfoIndex = formatInfo.findIndex(function (_a) {\n var prefix = _a[0], suffix = _a[1];\n var prefixIndex = currentLooseValueAsString.indexOf(prefix);\n var suffixIndex = currentLooseValueAsString.indexOf(suffix);\n var prefixFound = prefixIndex === 0;\n var suffixFound = suffixIndex === currentLooseValueAsString.length - suffix.length;\n var prefixGap = prefixIndex + prefix.length !== numberStart &&\n numberStart !== -1 &&\n currentLooseValueAsString[prefixIndex + prefix.length] !== symbols.decimal;\n var suffixGap = suffixIndex !== numberEnd &&\n numberEnd !== -1 &&\n currentLooseValueAsString[suffixIndex - 1] !== symbols.decimal;\n if (prefix && suffix) {\n if (prefixGap || suffixGap) {\n return false;\n }\n return prefixFound && suffixFound;\n }\n if (prefix) {\n if (prefixGap) {\n return false;\n }\n return prefixFound;\n }\n if (suffix) {\n if (suffixGap) {\n return false;\n }\n return suffixFound;\n }\n return false;\n });\n if (formatInfoIndex === -1) {\n setInvalid(newState, format, formatInfo, intlService);\n return newState;\n }\n }\n // 9. Value ending on decimal separator (here as decimal might be typed inside format)\n if (sanitizedString[sanitizedString.length - 1] === symbols.decimal && maxDecimalCount > 0) {\n newState.eventValue = intlService.parseNumber(currentLooseValueAsString, format);\n newState.currentLooseValue = sanitizedFormattedString;\n return newState;\n }\n // 10. prevent deleting decimal and group symbols\n if (newState.currentLooseValue && prevLooseValue) {\n var isSpecialSymbolDeleted = (restrictedSymbols + symbols.decimal + symbols.group)\n .split('')\n .findIndex(function (s) {\n if (currentLooseValueAsString.split('').filter(function (x) { return x === s; }).length <\n prevLooseValueAsString.split('').filter(function (x) { return x === s; }).length &&\n currentLooseValueAsString.length + 1 === prevLooseValueAsString.length) {\n if (s === symbols.decimal &&\n getDecimalCount(prevLooseValueAsString.replace(sanitizeRegex, ''), symbols.decimal) === 0) {\n return false;\n }\n return true;\n }\n return false;\n }) > -1;\n if (isSpecialSymbolDeleted) {\n newState.eventValue = intlService.parseNumber(state.prevLooseValue, format);\n newState.currentLooseValue = state.prevLooseValue;\n return newState;\n }\n }\n var currentDecimalCount = getDecimalCount(sanitizedString, symbols.decimal);\n var endsOnDecimal = sanitizedString[sanitizedString.length - 1] === '0';\n // 11. Deleting more decimals than allowed\n if (isDelete && endsOnDecimal && currentDecimalCount < minDecimalCount) {\n newState.eventValue = intlService.parseNumber(newState.currentLooseValue, format);\n newState.currentLooseValue = formatValue(newState.eventValue, format, intlService);\n return newState;\n }\n // 12. Ending on zero OR more decimals than allowed\n if (currentDecimalCount > 0) {\n var valueUntillDecimal = currentLooseValueAsString.substring(0, decimalIndex);\n if (endsOnDecimal && (!valueUntillDecimal || prevLooseValueAsString.indexOf(valueUntillDecimal) !== 0)) {\n // ending on zero but typing before decimal separator\n newState.eventValue = intlService.parseNumber(newState.currentLooseValue, format);\n var nextLooseValue = formatValue(newState.eventValue, format, intlService);\n setSelection(newState, changeBasedSelection(currentLooseValueAsString, nextLooseValue, newState.selectionEnd, isDelete, sanitizeRegex), nextLooseValue, formatInfo);\n newState.currentLooseValue = nextLooseValue;\n return newState;\n }\n if (currentDecimalCount > maxDecimalCount) {\n // typing more symbols than format allows\n var looseDecimalPlace = currentLooseValueAsString.indexOf(symbols.decimal);\n var result = currentLooseValueAsString.substring(0, looseDecimalPlace) +\n currentLooseValueAsString.substring(looseDecimalPlace, looseDecimalPlace + 1 + maxDecimalCount) +\n currentLooseValueAsString.substring(numberEnd, String(newState.currentLooseValue).length);\n newState.eventValue = intlService.parseNumber(result, format);\n newState.currentLooseValue = result;\n setSelection(newState, newState.selectionStart, result, formatInfo);\n return newState;\n }\n if (minDecimalCount !== maxDecimalCount && currentDecimalCount <= maxDecimalCount && endsOnDecimal) {\n // adding trailing zeroes\n newState.eventValue = intlService.parseNumber(newState.currentLooseValue, format);\n newState.currentLooseValue = sanitizedFormattedString;\n return newState;\n }\n if (currentDecimalCount < minDecimalCount) {\n // deleting more decimals than allowed\n newState.eventValue = intlService.parseNumber(newState.currentLooseValue, format);\n newState.currentLooseValue = formatValue(newState.eventValue, format, intlService);\n return newState;\n }\n }\n }\n // X. All other values should be parsed\n newState.eventValue = intlService.parseNumber(newState.currentLooseValue, format);\n if (isPercentFormat) {\n newState.eventValue = newState.eventValue / 100;\n }\n if (typeof newState.eventValue === 'number') {\n var nextLooseValue = formatValue(newState.eventValue, format, intlService);\n // First digit add\n if (currentLooseValueAsString.length === 1) {\n setSelection(newState, getInitialPosition(nextLooseValue, symbols), nextLooseValue, formatInfo);\n }\n else {\n setSelection(newState, changeBasedSelection(currentLooseValueAsString, nextLooseValue, newState.selectionEnd, isDelete, sanitizeRegex), nextLooseValue, formatInfo);\n }\n newState.currentLooseValue = nextLooseValue;\n }\n else {\n // Case when deleting last number\n newState.currentLooseValue = formatValue(intlService.parseNumber(sanitizedString), format, intlService);\n }\n return newState;\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { useInternationalization, useLocalization } from '@progress/kendo-react-intl';\nimport { classNames, guid, getTabIndex, dispatchEvent, createPropsContext, usePropsContext, kendoThemeMaps, useCustomComponent, getActiveElement } from '@progress/kendo-react-common';\nimport { caretAltUpIcon, caretAltDownIcon } from '@progress/kendo-svg-icons';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { numericIncreaseValue, messages, numericDecreaseValue } from '../messages';\nimport { formatValue, sanitizeNumber, rangeValue, increaseValue, decreaseValue, getStateOrPropsValue, getInitialState } from './utils';\nimport { Button } from '@progress/kendo-react-buttons';\nvar VALIDATION_MESSAGE = 'Please enter a valid value!';\n/**\n * Represents the PropsContext of the `NumericTextBox` component.\n * Used for global configuration of all `NumericTextBox` instances.\n *\n * For more information, refer to the [Inputs Props Context]({% slug props-context_inputs %}) article.\n */\nexport var NumericTextBoxPropsContext = createPropsContext();\n/**\n * Represents the [KendoReact NumericTextBox component]({% slug overview_numerictextbox %}).\n */\nexport var NumericTextBox = React.forwardRef(function (directProps, target) {\n var _a;\n validatePackage(packageMetadata);\n var props = usePropsContext(NumericTextBoxPropsContext, directProps);\n var calculatedId = React.useMemo(function () { return guid(); }, []);\n var inputId = props.id || calculatedId;\n var intlService = useInternationalization();\n var localizationService = useLocalization();\n var elementRef = React.useRef(null);\n var valueDuringChangeRef = React.useRef();\n var _b = React.useState(false), forceUpdate = _b[0], setForceUpdate = _b[1];\n var stateRef = React.useRef(getInitialState());\n var isPasteRef = React.useRef(false);\n var prevLooseValueRef = React.useRef();\n var stateValueRef = React.useRef(props.defaultValue);\n var looseValue = formatValue(stateRef.current.focused && !props.disabled ?\n stateRef.current.currentLooseValue :\n getStateOrPropsValue(props.value, stateValueRef.current), props.format, intlService);\n prevLooseValueRef.current = looseValue;\n var Prefix = useCustomComponent(props.prefix)[0];\n var Suffix = useCustomComponent(props.suffix)[0];\n React.useEffect(function () {\n if (elementRef.current && elementRef.current.setCustomValidity) {\n elementRef.current.setCustomValidity(validityGetter().valid\n ? ''\n : props.validationMessage || VALIDATION_MESSAGE);\n }\n });\n var focusElement = React.useCallback(function () {\n if (elementRef.current) {\n elementRef.current.focus();\n }\n }, []);\n var valueGetter = React.useCallback(function () {\n if (valueDuringChangeRef.current !== undefined) {\n return valueDuringChangeRef.current;\n }\n else {\n return getStateOrPropsValue(props.value, stateValueRef.current);\n }\n }, [props.value]);\n var nameGetter = React.useCallback(function () {\n return props.name;\n }, [props.name]);\n var requiredGetter = React.useCallback(function () {\n return props.required;\n }, [props.required]);\n var validityGetter = React.useCallback(function () {\n var customError = props.validationMessage !== undefined;\n var currentValue = valueGetter();\n var valid = props.valid !== undefined ?\n props.valid :\n !stateRef.current.valueIsOutOfRange &&\n (!requiredGetter() || (currentValue !== null && currentValue !== undefined));\n return {\n customError: customError,\n valid: valid,\n valueMissing: currentValue === null || currentValue === undefined\n };\n }, [props.validationMessage, props.valid, valueGetter, requiredGetter]);\n var validityStylesGetter = React.useCallback(function () {\n return props.validityStyles;\n }, [props.validityStyles]);\n var propsGetter = React.useCallback(function () {\n return props;\n }, [props]);\n var getImperativeHandle = React.useCallback(function () {\n var options = {\n element: elementRef.current,\n focus: focusElement\n };\n Object.defineProperty(options, 'name', { get: nameGetter });\n Object.defineProperty(options, 'value', { get: valueGetter });\n Object.defineProperty(options, 'validity', { get: validityGetter });\n Object.defineProperty(options, 'validityStyles', { get: validityStylesGetter });\n Object.defineProperty(options, 'required', { get: requiredGetter });\n Object.defineProperty(options, 'props', { get: propsGetter });\n return options;\n }, [nameGetter, valueGetter, validityGetter, validityStylesGetter, requiredGetter, focusElement, propsGetter]);\n React.useImperativeHandle(target, getImperativeHandle);\n var getCurrentState = React.useCallback(function () {\n return {\n eventValue: getStateOrPropsValue(props.value, stateValueRef.current),\n prevLooseValue: prevLooseValueRef.current,\n currentLooseValue: elementRef.current.value,\n selectionStart: elementRef.current.selectionStart,\n selectionEnd: elementRef.current.selectionEnd,\n decimalSelect: false,\n valueIsCorrected: false,\n valueIsOutOfRange: false,\n isPaste: isPasteRef.current,\n focused: stateRef.current.focused\n };\n }, [props.value]);\n var triggerChange = React.useCallback(function (event, newState) {\n if (props.disabled) {\n return;\n }\n valueDuringChangeRef.current = newState.eventValue;\n stateValueRef.current = newState.eventValue;\n var formattedValue = formatValue(rangeValue(newState.eventValue, props.min, props.max), props.format, intlService);\n var rangedValue = rangeValue(intlService.parseNumber(formattedValue, props.format), props.min, props.max);\n if (rangedValue !== newState.eventValue) {\n newState.valueIsOutOfRange = true;\n newState.eventValue = rangedValue;\n stateValueRef.current = rangedValue;\n }\n var shouldFireEvent = props.value !== newState.eventValue;\n if (shouldFireEvent) {\n dispatchEvent(props.onChange, event, getImperativeHandle(), { value: newState.eventValue });\n }\n valueDuringChangeRef.current = undefined;\n stateRef.current = newState;\n setForceUpdate(function (_x) { return !_x; });\n }, [props.value, props.onChange, props.disabled, setForceUpdate, getImperativeHandle]);\n var onChangeHandler = React.useCallback(function (event) {\n var stateCandidate = getCurrentState();\n isPasteRef.current = false;\n triggerChange(event, sanitizeNumber(stateCandidate, props.format, intlService));\n }, [props.format, props.onChange, intlService, triggerChange, getCurrentState]);\n var onKeyDown = React.useCallback(function (event) {\n var newState = getCurrentState();\n var currentValue = intlService.parseNumber(String(newState.currentLooseValue), props.format);\n // Select All\n if (newState.selectionEnd > newState.selectionStart &&\n newState.selectionEnd - newState.selectionStart === String(newState.currentLooseValue).length) {\n var numericSymbols = intlService.numberSymbols();\n var isMinus = numericSymbols && event.key === numericSymbols.minusSign;\n var isDecimal = numericSymbols && event.key === numericSymbols.decimal;\n isPasteRef.current = !isMinus && !isDecimal;\n return;\n }\n switch (event.keyCode) {\n case 38:\n // Arrow up\n increaseValue(currentValue, newState, props.step, props.min, props.max, props.format, intlService);\n break;\n case 40:\n // Arrow down\n decreaseValue(currentValue, newState, props.step, props.min, props.max, props.format, intlService);\n break;\n case 13:\n // Enter - range values\n if (props.rangeOnEnter === false) {\n return;\n }\n var formattedValue = formatValue(rangeValue(currentValue, props.min, props.max), props.format, intlService);\n var rangedValue = rangeValue(intlService.parseNumber(formattedValue, props.format), props.min, props.max);\n newState.eventValue = rangedValue;\n newState.currentLooseValue = formatValue(rangedValue, props.format, intlService);\n newState.selectionStart = newState.selectionEnd = newState.currentLooseValue.length;\n break;\n case 110:\n // Numpad decimal key\n var element = elementRef.current;\n var symbols = intlService.numberSymbols();\n if (element) {\n newState.currentLooseValue = newState.currentLooseValue.slice(0, newState.selectionStart) +\n symbols.decimal +\n newState.currentLooseValue.slice(newState.selectionEnd);\n newState.selectionStart = newState.selectionEnd = newState.selectionStart + 1;\n newState = sanitizeNumber(newState, props.format, intlService);\n }\n break;\n default:\n return;\n }\n event.preventDefault();\n triggerChange(event, newState);\n }, [props.format, props.min, props.max, props.step, props.onChange, props.rangeOnEnter, triggerChange, getCurrentState]);\n var onPasteHandler = React.useCallback(function () {\n isPasteRef.current = true;\n }, []);\n var onIncrease = React.useCallback(function (event) {\n if (props.readOnly ||\n props.disabled) {\n return;\n }\n var newState = getCurrentState();\n increaseValue(intlService.parseNumber(String(newState.currentLooseValue), props.format), newState, props.step, props.min, props.max, props.format, intlService);\n triggerChange(event, newState);\n }, [props.format, props.min, props.max, props.step, props.onChange, props.readOnly, props.disabled, triggerChange, getCurrentState]);\n var onDecrease = React.useCallback(function (event) {\n if (props.readOnly ||\n props.disabled) {\n return;\n }\n var newState = getCurrentState();\n decreaseValue(intlService.parseNumber(String(newState.currentLooseValue), props.format), newState, props.step, props.min, props.max, props.format, intlService);\n triggerChange(event, newState);\n }, [props.format, props.min, props.max, props.step, props.onChange, props.readOnly, props.disabled, triggerChange, getCurrentState]);\n var onWheelHandler = React.useCallback(function (event) {\n var activeElement = getActiveElement(document);\n if (!document ||\n activeElement !== elementRef.current ||\n !elementRef.current ||\n props.readOnly ||\n props.disabled) {\n return;\n }\n if (event.nativeEvent.deltaY < 0) {\n onIncrease(event);\n }\n if (event.nativeEvent.deltaY > 0) {\n onDecrease(event);\n }\n }, [onIncrease, onDecrease, props.disabled, props.readOnly]);\n var onFocus = React.useCallback(function (event) {\n stateRef.current.currentLooseValue = prevLooseValueRef.current;\n stateRef.current.focused = true;\n dispatchEvent(props.onFocus, event, getImperativeHandle(), {});\n setForceUpdate(function (x) { return !x; });\n }, [props.onFocus, setForceUpdate, getImperativeHandle]);\n var onBlur = React.useCallback(function (event) {\n stateRef.current = getInitialState();\n dispatchEvent(props.onBlur, event, getImperativeHandle(), {});\n setForceUpdate(function (x) { return !x; });\n }, [props.onBlur, setForceUpdate, getImperativeHandle]);\n var onMouseDown = React.useCallback(function (e) {\n if (document && elementRef.current) {\n var activeElement = getActiveElement(document);\n e.preventDefault();\n if (activeElement !== elementRef.current) {\n elementRef.current.focus();\n }\n }\n }, []);\n React.useLayoutEffect(function () {\n // The input element's type ('number') does not support selection.\n if (elementRef.current && elementRef.current.type !== 'number' &&\n stateRef.current.selectionStart !== undefined && stateRef.current.selectionEnd !== undefined) {\n elementRef.current.selectionStart = stateRef.current.selectionStart;\n elementRef.current.selectionEnd = stateRef.current.selectionEnd;\n stateRef.current.selectionStart = undefined;\n stateRef.current.selectionEnd = undefined;\n }\n }, [forceUpdate]);\n var isValid = !validityStylesGetter() || validityGetter().valid;\n var numerictextbox = (React.createElement(\"span\", { dir: props.dir, style: !props.label\n ? __assign({ width: props.width }, props.style) : props.style, className: classNames('k-input', 'k-numerictextbox', (_a = {},\n _a[\"k-input-\".concat(kendoThemeMaps.sizeMap[props.size] || props.size)] = props.size,\n _a[\"k-input-\".concat(props.fillMode)] = props.fillMode,\n _a[\"k-rounded-\".concat(kendoThemeMaps.roundedMap[props.rounded] || props.rounded)] = props.rounded,\n _a['k-invalid'] = !isValid,\n _a['k-required'] = props.required,\n _a['k-disabled'] = props.disabled,\n _a), props.className), \"aria-disabled\": props.disabled ? 'true' : undefined },\n React.createElement(Prefix, null),\n React.createElement(\"input\", { role: 'spinbutton', value: looseValue === null ? '' : looseValue, tabIndex: getTabIndex(props.tabIndex, props.disabled), accessKey: props.accessKey, disabled: props.disabled, title: props.title, \"aria-disabled\": props.disabled ? 'true' : undefined, \"aria-valuemin\": props.min, \"aria-valuemax\": props.max, \"aria-label\": props.ariaLabel, \"aria-labelledby\": props.ariaLabelledBy, \"aria-describedby\": props.ariaDescribedBy, placeholder: props.placeholder, spellCheck: false, autoComplete: 'off', autoCorrect: 'off', type: props.inputType || 'tel', className: 'k-input-inner', id: inputId, name: props.name, readOnly: props.readOnly, style: props.inputStyle, onChange: onChangeHandler, onFocus: onFocus, onBlur: onBlur, onKeyDown: onKeyDown, onPaste: onPasteHandler, onWheel: onWheelHandler, ref: elementRef }),\n React.createElement(Suffix, null),\n props.children,\n props.spinners &&\n (React.createElement(\"span\", { className: \"k-input-spinner k-spin-button\", onMouseDown: onMouseDown },\n React.createElement(Button, { tabIndex: -1, type: \"button\", icon: 'caret-alt-up', svgIcon: caretAltUpIcon, rounded: null, className: \"k-spinner-increase\", \"aria-label\": localizationService.toLanguageString(numericIncreaseValue, messages[numericIncreaseValue]), title: localizationService.toLanguageString(numericIncreaseValue, messages[numericIncreaseValue]), onClick: onIncrease }),\n React.createElement(Button, { tabIndex: -1, type: \"button\", icon: 'caret-alt-down', svgIcon: caretAltDownIcon, rounded: null, className: \"k-spinner-decrease\", \"aria-label\": localizationService.toLanguageString(numericDecreaseValue, messages[numericDecreaseValue]), title: localizationService.toLanguageString(numericDecreaseValue, messages[numericDecreaseValue]), onClick: onDecrease })))));\n return props.label\n ? (React.createElement(FloatingLabel, { label: props.label, editorId: inputId, editorValue: looseValue === null ? '' : looseValue, editorValid: isValid, editorDisabled: props.disabled, editorPlaceholder: props.placeholder, children: numerictextbox, style: { width: props.width }, dir: props.dir }))\n : numerictextbox;\n});\nNumericTextBox.propTypes = {\n value: PropTypes.number,\n defaultValue: PropTypes.number,\n step: PropTypes.number,\n format: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n style: PropTypes.oneOf(['decimal', 'currency', 'percent', 'scientific', 'accounting']),\n currency: PropTypes.string,\n currencyDisplay: PropTypes.oneOf(['symbol', 'code', 'name']),\n useGrouping: PropTypes.bool,\n minimumIntegerDigits: PropTypes.number,\n minimumFractionDigits: PropTypes.number,\n maximumFractionDigits: PropTypes.number\n })\n ]),\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]),\n tabIndex: PropTypes.number,\n accessKey: PropTypes.string,\n title: PropTypes.string,\n placeholder: PropTypes.string,\n min: PropTypes.number,\n max: PropTypes.number,\n spinners: PropTypes.bool,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n dir: PropTypes.string,\n name: PropTypes.string,\n label: PropTypes.string,\n validationMessage: PropTypes.string,\n required: PropTypes.bool,\n id: PropTypes.string,\n rangeOnEnter: PropTypes.bool,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n ariaLabel: PropTypes.string,\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n size: PropTypes.oneOf([null, 'small', 'medium', 'large']),\n rounded: PropTypes.oneOf([null, 'small', 'medium', 'large', 'full']),\n fillMode: PropTypes.oneOf([null, 'solid', 'flat', 'outline'])\n};\nNumericTextBox.displayName = 'KendoNumericTextBox';\nNumericTextBox.defaultProps = {\n prefix: function (_) { return null; },\n suffix: function (_) { return null; },\n step: 1,\n spinners: true,\n disabled: false,\n required: false,\n validityStyles: true,\n rangeOnEnter: true,\n onChange: function (_) { return; },\n onFocus: function (_) { return; },\n onBlur: function (_) { return; },\n size: 'medium',\n rounded: 'medium',\n fillMode: 'solid'\n};\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-inputs',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1697039475,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, kendoThemeMaps, useAsyncFocusBlur, useCustomComponent, validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\n;\n/**\n * Represents the [KendoReact TextBox component]({% slug overview_textbox %}).\n */\nexport var TextBox = React.forwardRef(function (props, ref) {\n var _a;\n validatePackage(packageMetadata);\n var element = React.useRef(null);\n var target = React.useRef(null);\n var valueDuringChangeRef = React.useRef();\n var valueGetter = React.useCallback(function () {\n var _a;\n if (valueDuringChangeRef.current !== undefined) {\n return valueDuringChangeRef.current;\n }\n else {\n return (_a = element.current) === null || _a === void 0 ? void 0 : _a.value;\n }\n }, []);\n React.useImperativeHandle(target, function () {\n var result = {\n element: element.current\n };\n Object.defineProperty(result, 'value', { get: valueGetter });\n return result;\n });\n React.useImperativeHandle(ref, function () { return target.current; });\n var _b = props, size = _b.size, fillMode = _b.fillMode, rounded = _b.rounded, className = _b.className, dir = _b.dir, style = _b.style, _c = _b.prefix, prefix = _c === void 0 ? defaultProps.prefix : _c, _d = _b.suffix, suffix = _d === void 0 ? defaultProps.suffix : _d, valid = _b.valid, \n // Destruct to avoid warning when used inside a form field\n _modified = _b.modified, _touched = _b.touched, _visited = _b.visited, other = __rest(_b, [\"size\", \"fillMode\", \"rounded\", \"className\", \"dir\", \"style\", \"prefix\", \"suffix\", \"valid\", \"modified\", \"touched\", \"visited\"]);\n var Prefix = useCustomComponent(prefix)[0];\n var Suffix = useCustomComponent(suffix)[0];\n var _e = React.useState(false), focused = _e[0], setFocused = _e[1];\n var handleFocus = function (_) {\n setFocused(true);\n };\n var handleBlur = function (_) {\n setFocused(false);\n };\n var handleChange = React.useCallback(function (event) {\n valueDuringChangeRef.current = event.target.value;\n if (props.onChange) {\n props.onChange.call(undefined, {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n value: event.target.value,\n target: target.current\n });\n }\n valueDuringChangeRef.current = undefined;\n }, [props.onChange]);\n var _f = useAsyncFocusBlur({\n onFocus: handleFocus,\n onBlur: handleBlur,\n onSyncFocus: props.onFocus,\n onSyncBlur: props.onBlur\n }), onFocus = _f.onFocus, onBlur = _f.onBlur;\n return (React.createElement(\"span\", { style: style, dir: dir, className: classNames('k-textbox k-input', (_a = {},\n _a[\"k-input-\".concat(kendoThemeMaps.sizeMap[size] || size)] = size,\n _a[\"k-input-\".concat(fillMode)] = fillMode,\n _a[\"k-rounded-\".concat(kendoThemeMaps.roundedMap[rounded] || rounded)] = rounded,\n _a), {\n 'k-focus': focused,\n 'k-required': props.required,\n 'k-disabled': props.disabled,\n 'k-invalid': props.valid === false\n }, className), onFocus: onFocus, onBlur: onBlur },\n React.createElement(Prefix, null),\n React.createElement(\"input\", __assign({ ref: element, className: \"k-input-inner\" }, other, { onChange: handleChange })),\n React.createElement(Suffix, null)));\n});\nvar defaultProps = {\n prefix: function (_) { return null; },\n suffix: function (_) { return null; },\n size: 'medium',\n rounded: 'medium',\n fillMode: 'solid'\n};\nTextBox.propTypes = {\n size: PropTypes.oneOf([null, 'small', 'medium', 'large']),\n rounded: PropTypes.oneOf([null, 'small', 'medium', 'large', 'full']),\n fillMode: PropTypes.oneOf([null, 'solid', 'flat', 'outline'])\n};\nTextBox.displayName = 'KendoReactTextBoxComponent';\nTextBox.defaultProps = defaultProps;\n","var defaultData = {\n en: {\n name: \"en\",\n identity: {\n version: {\n _unicodeVersion: \"14.0.0\",\n _cldrVersion: \"41\"\n },\n language: \"en\"\n },\n territory: \"US\",\n numbers: {\n symbols: {\n decimal: \".\",\n group: \",\",\n list: \";\",\n percentSign: \"%\",\n plusSign: \"+\",\n minusSign: \"-\",\n exponential: \"E\",\n superscriptingExponent: \"×\",\n perMille: \"‰\",\n infinity: \"∞\",\n nan: \"NaN\",\n timeSeparator: \":\",\n approximatelySign: \"~\"\n },\n decimal: {\n patterns: [\n \"n\"\n ],\n groupSize: [\n 3\n ]\n },\n scientific: {\n patterns: [\n \"nEn\"\n ],\n groupSize: []\n },\n percent: {\n patterns: [\n \"n%\"\n ],\n groupSize: [\n 3\n ]\n },\n currency: {\n patterns: [\n \"$n\"\n ],\n groupSize: [\n 3\n ],\n \"unitPattern-count-one\": \"n $\",\n \"unitPattern-count-other\": \"n $\"\n },\n currencies: {\n BGN: {\n displayName: \"Bulgarian Lev\",\n \"displayName-count-one\": \"Bulgarian lev\",\n \"displayName-count-other\": \"Bulgarian leva\",\n symbol: \"BGN\"\n },\n EUR: {\n displayName: \"Euro\",\n \"displayName-count-one\": \"euro\",\n \"displayName-count-other\": \"euros\",\n symbol: \"€\",\n \"symbol-alt-narrow\": \"€\"\n },\n USD: {\n displayName: \"US Dollar\",\n \"displayName-count-one\": \"US dollar\",\n \"displayName-count-other\": \"US dollars\",\n symbol: \"$\",\n \"symbol-alt-narrow\": \"$\"\n }\n },\n localeCurrency: \"USD\",\n accounting: {\n patterns: [\n \"$n\",\n \"($n)\"\n ],\n groupSize: [\n 3\n ]\n }\n },\n calendar: {\n gmtFormat: \"GMT{0}\",\n gmtZeroFormat: \"GMT\",\n patterns: {\n d: \"M/d/y\",\n D: \"EEEE, MMMM d, y\",\n m: \"MMM d\",\n M: \"MMMM d\",\n y: \"MMM y\",\n Y: \"MMMM y\",\n F: \"EEEE, MMMM d, y h:mm:ss a\",\n g: \"M/d/y h:mm a\",\n G: \"M/d/y h:mm:ss a\",\n t: \"h:mm a\",\n T: \"h:mm:ss a\",\n s: \"yyyy'-'MM'-'dd'T'HH':'mm':'ss\",\n u: \"yyyy'-'MM'-'dd HH':'mm':'ss'Z'\"\n },\n dateTimeFormats: {\n full: \"{1} 'at' {0}\",\n long: \"{1} 'at' {0}\",\n medium: \"{1}, {0}\",\n short: \"{1}, {0}\",\n availableFormats: {\n Bh: \"h B\",\n Bhm: \"h:mm B\",\n Bhms: \"h:mm:ss B\",\n d: \"d\",\n E: \"ccc\",\n EBhm: \"E h:mm B\",\n EBhms: \"E h:mm:ss B\",\n Ed: \"d E\",\n Ehm: \"E h:mm a\",\n EHm: \"E HH:mm\",\n Ehms: \"E h:mm:ss a\",\n EHms: \"E HH:mm:ss\",\n Gy: \"y G\",\n GyMd: \"M/d/y GGGGG\",\n GyMMM: \"MMM y G\",\n GyMMMd: \"MMM d, y G\",\n GyMMMEd: \"E, MMM d, y G\",\n h: \"h a\",\n H: \"HH\",\n hm: \"h:mm a\",\n Hm: \"HH:mm\",\n hms: \"h:mm:ss a\",\n Hms: \"HH:mm:ss\",\n hmsv: \"h:mm:ss a v\",\n Hmsv: \"HH:mm:ss v\",\n hmv: \"h:mm a v\",\n Hmv: \"HH:mm v\",\n M: \"L\",\n Md: \"M/d\",\n MEd: \"E, M/d\",\n MMM: \"LLL\",\n MMMd: \"MMM d\",\n MMMEd: \"E, MMM d\",\n MMMMd: \"MMMM d\",\n \"MMMMW-count-one\": \"'week' W 'of' MMMM\",\n \"MMMMW-count-other\": \"'week' W 'of' MMMM\",\n ms: \"mm:ss\",\n y: \"y\",\n yM: \"M/y\",\n yMd: \"M/d/y\",\n yMEd: \"E, M/d/y\",\n yMMM: \"MMM y\",\n yMMMd: \"MMM d, y\",\n yMMMEd: \"E, MMM d, y\",\n yMMMM: \"MMMM y\",\n yQQQ: \"QQQ y\",\n yQQQQ: \"QQQQ y\",\n \"yw-count-one\": \"'week' w 'of' Y\",\n \"yw-count-other\": \"'week' w 'of' Y\"\n }\n },\n timeFormats: {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\"\n },\n dateFormats: {\n full: \"EEEE, MMMM d, y\",\n long: \"MMMM d, y\",\n medium: \"MMM d, y\",\n short: \"M/d/yy\"\n },\n days: {\n format: {\n abbreviated: [\n \"Sun\",\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\"\n ],\n narrow: [\n \"S\",\n \"M\",\n \"T\",\n \"W\",\n \"T\",\n \"F\",\n \"S\"\n ],\n short: [\n \"Su\",\n \"Mo\",\n \"Tu\",\n \"We\",\n \"Th\",\n \"Fr\",\n \"Sa\"\n ],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\"\n ]\n },\n \"stand-alone\": {\n abbreviated: [\n \"Sun\",\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\"\n ],\n narrow: [\n \"S\",\n \"M\",\n \"T\",\n \"W\",\n \"T\",\n \"F\",\n \"S\"\n ],\n short: [\n \"Su\",\n \"Mo\",\n \"Tu\",\n \"We\",\n \"Th\",\n \"Fr\",\n \"Sa\"\n ],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\"\n ]\n }\n },\n months: {\n format: {\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ],\n narrow: [\n \"J\",\n \"F\",\n \"M\",\n \"A\",\n \"M\",\n \"J\",\n \"J\",\n \"A\",\n \"S\",\n \"O\",\n \"N\",\n \"D\"\n ],\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n ]\n },\n \"stand-alone\": {\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ],\n narrow: [\n \"J\",\n \"F\",\n \"M\",\n \"A\",\n \"M\",\n \"J\",\n \"J\",\n \"A\",\n \"S\",\n \"O\",\n \"N\",\n \"D\"\n ],\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n ]\n }\n },\n quarters: {\n format: {\n abbreviated: [\n \"Q1\",\n \"Q2\",\n \"Q3\",\n \"Q4\"\n ],\n narrow: [\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n wide: [\n \"1st quarter\",\n \"2nd quarter\",\n \"3rd quarter\",\n \"4th quarter\"\n ]\n },\n \"stand-alone\": {\n abbreviated: [\n \"Q1\",\n \"Q2\",\n \"Q3\",\n \"Q4\"\n ],\n narrow: [\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n wide: [\n \"1st quarter\",\n \"2nd quarter\",\n \"3rd quarter\",\n \"4th quarter\"\n ]\n }\n },\n dayPeriods: {\n format: {\n abbreviated: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"in the morning\",\n afternoon1: \"in the afternoon\",\n evening1: \"in the evening\",\n night1: \"at night\"\n },\n narrow: {\n midnight: \"mi\",\n am: \"a\",\n \"am-alt-variant\": \"am\",\n noon: \"n\",\n pm: \"p\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"in the morning\",\n afternoon1: \"in the afternoon\",\n evening1: \"in the evening\",\n night1: \"at night\"\n },\n wide: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"in the morning\",\n afternoon1: \"in the afternoon\",\n evening1: \"in the evening\",\n night1: \"at night\"\n }\n },\n \"stand-alone\": {\n abbreviated: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"morning\",\n afternoon1: \"afternoon\",\n evening1: \"evening\",\n night1: \"night\"\n },\n narrow: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"morning\",\n afternoon1: \"afternoon\",\n evening1: \"evening\",\n night1: \"night\"\n },\n wide: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"morning\",\n afternoon1: \"afternoon\",\n evening1: \"evening\",\n night1: \"night\"\n }\n }\n },\n eras: {\n format: {\n wide: {\n \"0\": \"Before Christ\",\n \"1\": \"Anno Domini\",\n \"0-alt-variant\": \"Before Common Era\",\n \"1-alt-variant\": \"Common Era\"\n },\n abbreviated: {\n \"0\": \"BC\",\n \"1\": \"AD\",\n \"0-alt-variant\": \"BCE\",\n \"1-alt-variant\": \"CE\"\n },\n narrow: {\n \"0\": \"B\",\n \"1\": \"A\",\n \"0-alt-variant\": \"BCE\",\n \"1-alt-variant\": \"CE\"\n }\n }\n },\n dateFields: {\n era: {\n wide: \"era\",\n short: \"era\",\n narrow: \"era\"\n },\n year: {\n wide: \"year\",\n short: \"yr.\",\n narrow: \"yr.\"\n },\n quarter: {\n wide: \"quarter\",\n short: \"qtr.\",\n narrow: \"qtr.\"\n },\n month: {\n wide: \"month\",\n short: \"mo.\",\n narrow: \"mo.\"\n },\n week: {\n wide: \"week\",\n short: \"wk.\",\n narrow: \"wk.\"\n },\n weekOfMonth: {\n wide: \"week of month\",\n short: \"wk. of mo.\",\n narrow: \"wk. of mo.\"\n },\n day: {\n wide: \"day\",\n short: \"day\",\n narrow: \"day\"\n },\n dayOfYear: {\n wide: \"day of year\",\n short: \"day of yr.\",\n narrow: \"day of yr.\"\n },\n weekday: {\n wide: \"day of the week\",\n short: \"day of wk.\",\n narrow: \"day of wk.\"\n },\n weekdayOfMonth: {\n wide: \"weekday of the month\",\n short: \"wkday. of mo.\",\n narrow: \"wkday. of mo.\"\n },\n dayperiod: {\n short: \"AM/PM\",\n wide: \"AM/PM\",\n narrow: \"AM/PM\"\n },\n hour: {\n wide: \"hour\",\n short: \"hr.\",\n narrow: \"hr.\"\n },\n minute: {\n wide: \"minute\",\n short: \"min.\",\n narrow: \"min.\"\n },\n second: {\n wide: \"second\",\n short: \"sec.\",\n narrow: \"sec.\"\n },\n zone: {\n wide: \"time zone\",\n short: \"zone\",\n narrow: \"zone\"\n },\n millisecond: {\n narrow: \"ms\",\n short: \"ms\",\n wide: \"millisecond\"\n }\n }\n }\n },\n supplemental: {\n likelySubtags: {\n en: \"en-Latn-US\"\n },\n currencyData: {\n region: {\n US: [\n {\n USD: {\n _from: \"1792-01-01\"\n }\n }\n ]\n }\n },\n weekData: {\n firstDay: {\n US: \"sun\"\n },\n weekendStart: {\n \"001\": \"sat\"\n },\n weekendEnd: {\n \"001\": \"sun\"\n }\n }\n }\n};\nexport default defaultData;","export default function isString(value) {\n return typeof value === \"string\";\n}","import errorDetails from './error-details';\n\nvar formatRegExp = /\\{(\\d+)}?\\}/g;\n\nvar IntlError = function IntlError(ref) {\n var name = ref.name;\n var message = ref.message;\n\n if (!name || !message) {\n throw new Error(\"{ name: string, message: string } object is required!\");\n }\n\n this.name = name;\n this.message = message;\n};\n\nIntlError.prototype.formatMessage = function formatMessage () {\n var values = [], len = arguments.length;\n while ( len-- ) values[ len ] = arguments[ len ];\n\n var flattenValues = flatten(values);\n\n var formattedMessage = this.message.replace(formatRegExp, function(match, index) {\n return flattenValues[parseInt(index, 10)];\n });\n\n return ((this.name) + \": \" + formattedMessage);\n};\n\nIntlError.prototype.error = function error () {\n var values = [], len = arguments.length;\n while ( len-- ) values[ len ] = arguments[ len ];\n\n return new Error(this.formatMessage(values));\n};\n\nvar flatten = function(arr) {\n return arr.reduce(function (a, b) { return a.concat(b); }, []);\n};\n\nvar toIntlErrors = function(errors) {\n var predicate = function(prev, name) {\n prev[name] = new IntlError({ name: name, message: errors[name] });\n return prev;\n };\n\n return Object.keys(errors).reduce(predicate, {});\n};\n\nvar errors = toIntlErrors(errorDetails);\n\nexport {\n errors,\n IntlError,\n toIntlErrors\n};\n","//The error is represented by unique name and corresponding message\n//The message can contain placeholders with index, e.g. {0}, {1}\n\nexport default {\n \"NoLocale\": \"Missing locale info for '{0}'\",\n \"NoCurrency\": \"Cannot determine currency information. Please load the locale currencies data.\",\n \"NoSupplementalCurrency\": \"Cannot determine currency. Please load the supplemental currencyData.\",\n \"NoCurrencyRegion\": \"No currency data for region '{0}'\",\n \"NoCurrencyDisplay\": \"Cannot determine currency display information. Please load the locale currencies data. The default culture does not include the all currencies data.\",\n \"NoGMTInfo\": \"Cannot determine locale GMT format. Please load the locale timeZoneNames data.\",\n \"NoWeekData\": \"Cannot determine locale first day of week. Please load the supplemental weekData.\",\n \"NoFirstDay\": \"Cannot determine locale first day of week. Please load the supplemental weekData. The default culture includes only the 'en-US' first day info.\",\n \"NoValidCurrency\": \"Cannot determine a default currency for the {0} locale. Please specify explicitly the currency with the format options.\",\n \"NoDateFieldNames\": \"Cannot determine the locale date field names. Please load the locale dateFields data.\"\n};\n","import defaultData from './default-data';\nimport isString from '../common/is-string';\nimport { errors } from '../errors';\n\nfunction availableLocaleInfo(fullName, suffixes) {\n var parts = fullName.split(\"-\");\n var language = parts[0];\n var script = parts[1];\n var territory = parts[2];\n\n return cldr[fullName] || (suffixes.indexOf(territory) !== -1 && cldr[language + \"-\" + territory]) || (suffixes.indexOf(script) !== -1 && cldr[language + \"-\" + script]) || cldr[language];\n}\n\nfunction localeFullName(language, suffixes) {\n var likelySubtags = cldr.supplemental.likelySubtags;\n\n for (var idx = 0; idx < suffixes.length; idx++) {\n var name = likelySubtags[language + \"-\" + suffixes[idx ]];\n if (name) {\n return name;\n }\n }\n\n if (likelySubtags[language]) {\n return likelySubtags[language];\n }\n}\n\nexport var cldr = defaultData;\n\nexport function getLocaleInfo(locale) {\n var info;\n if (isString(locale)) {\n info = localeInfo(locale);\n } else {\n info = locale;\n }\n return info;\n}\n\nexport function localeInfo(locale) {\n if (cldr[locale]) {\n return cldr[locale];\n }\n\n var likelySubtags = cldr.supplemental.likelySubtags;\n if (likelySubtags) {\n var parts = locale.split(\"-\");\n var language = parts[0];\n var suffixes = parts.slice(1);\n var fullName = localeFullName(language, suffixes);\n var info = fullName ? availableLocaleInfo(fullName, suffixes) : null;\n if (info) {\n return info;\n }\n }\n\n throw errors.NoLocale.error(locale);\n}\n","import { cldr } from './info';\n\nfunction territoryFromName(name, identity) {\n var likelySubtags = cldr.supplemental.likelySubtags;\n var parts = name.split(\"-\");\n if (likelySubtags) {\n var likelyName = likelySubtags[name] || likelySubtags[parts[0]];\n if (likelyName) {\n parts = likelyName.split(\"-\");\n }\n }\n\n if (identity) {\n for (var idx = parts.length - 1; idx >= 1; idx--) {\n var part = parts[idx];\n if (part === identity.variant || part === identity.script) {\n parts.splice(idx, 1);\n }\n }\n }\n\n var length = parts.length;\n\n if (length > 1) {\n var territory = parts[length - 1];\n return territory.toUpperCase();\n }\n}\n\nexport default function localeTerritory(info) {\n if (info.territory) {\n return info.territory;\n }\n\n var name = info.name;\n var identity = info.identity;\n var territory;\n\n if (identity && identity.territory) {\n territory = identity.territory;\n } else {\n territory = territoryFromName(name, identity);\n }\n\n info.territory = territory;\n\n return territory;\n}\n","export var DECIMAL = \"decimal\";\nexport var CURRENCY = \"currency\";\nexport var ACCOUNTING = \"accounting\";\nexport var PERCENT = \"percent\";\nexport var SCIENTIFIC = \"scientific\";\n\nexport var CURRENCY_PLACEHOLDER = \"$\";\nexport var PERCENT_PLACEHOLDER = \"%\";\nexport var NUMBER_PLACEHOLDER = \"n\";\n\nexport var LIST_SEPARATOR = \";\";\nexport var GROUP_SEPARATOR = \",\";\n\nexport var POINT = \".\";\nexport var EMPTY = \"\";\n\nexport var DEFAULT_LOCALE = \"en\";\n\n","import { getLocaleInfo } from './info';\nimport { EMPTY } from '../common/constants';\n\nfunction lowerArray(arr) {\n var result = [];\n for (var idx = 0; idx < arr.length; idx++) {\n result.push(arr[idx].toLowerCase());\n }\n return result;\n}\n\nfunction lowerObject(obj) {\n var result = {};\n for (var field in obj) {\n result[field] = obj[field].toLowerCase();\n }\n return result;\n}\n\nfunction cloneLower(obj) {\n var result = Array.isArray(obj) ? lowerArray(obj) : lowerObject(obj);\n return result;\n}\n\nexport default function dateFormatNames(locale, options) {\n var type = options.type;\n var nameType = options.nameType;\n var standAlone = options.standAlone;\n var lower = options.lower;\n var info = getLocaleInfo(locale);\n var formatType = standAlone ? \"stand-alone\" : \"format\";\n var lowerNameType = (lower ? \"lower-\" : EMPTY) + nameType;\n var formatNames = info.calendar[type][formatType];\n var result = formatNames[lowerNameType];\n if (!result && lower) {\n result = formatNames[lowerNameType] = cloneLower(formatNames[nameType]);\n }\n return result;\n}","export default function parseRangeDate(value) {\n var parts = value.split('-');\n var year = parseInt(parts[0], 10);\n var month = parseInt(parts[1], 10) - 1;\n var day = parseInt(parts[2], 10);\n\n return new Date(year, month, day);\n}\n","import { cldr, getLocaleInfo } from './info';\nimport { errors } from '../errors';\nimport localeTerritory from './territory';\nimport parseRangeDate from './parse-range-date';\n\n/* eslint-disable consistent-return */\n\nvar NoCurrency = errors.NoCurrency;\nvar NoCurrencyDisplay = errors.NoCurrencyDisplay;\nvar NoSupplementalCurrency = errors.NoSupplementalCurrency;\nvar NoCurrencyRegion = errors.NoCurrencyRegion;\nvar NoValidCurrency = errors.NoValidCurrency;\n\nvar DEFAULT_CURRENCY_FRACTIONS = 2;\nvar SYMBOL = \"symbol\";\nvar INVALID_CURRENCY_CODE = 'XXX';\n\nvar GLOBAL_CURRENCIES = {\n '001': 'USD', // 001 refers to world. not sure if it is correct to assume USD but seems better than throw an error\n '150': 'EUR' // 150 territory for Europe\n\n};\n\nfunction getCurrencyInfo(locale, currency, throwIfNoValid) {\n var info = getLocaleInfo(locale);\n var currencies = info.numbers.currencies;\n if (!currencies) {\n if (throwIfNoValid) {\n throw NoCurrency.error();\n }\n\n return;\n }\n\n var currencyDisplayInfo = currencies[currency];\n\n if (!currencyDisplayInfo) {\n if (throwIfNoValid) {\n throw NoCurrencyDisplay.error();\n }\n\n return;\n }\n\n return currencyDisplayInfo;\n}\n\nfunction lengthComparer(a, b) {\n return b.length - a.length;\n}\n\nfunction regionCurrency(regionCurrencies) {\n var latestValidUntil, latestValidUntilRange;\n var latestStillValid, latestStillValidDate;\n\n for (var idx = 0; idx < regionCurrencies.length; idx++) {\n var currency = regionCurrencies[idx];\n var code = Object.keys(currency)[0];\n var info = currency[code];\n if (code !== INVALID_CURRENCY_CODE && info._tender !== 'false' && info._from) {\n if (!info._to) {\n var stillValidDate = parseRangeDate(info._from);\n if (!latestStillValidDate || latestStillValidDate < stillValidDate) {\n latestStillValid = code;\n latestStillValidDate = stillValidDate;\n }\n } else if (!latestStillValid) {\n var validFrom = parseRangeDate(info._from);\n var validTo = parseRangeDate(info._to);\n if (!latestValidUntilRange || latestValidUntilRange.to < validTo || latestValidUntilRange.from < validFrom) {\n latestValidUntil = code;\n latestValidUntilRange = {\n from: validFrom,\n to: validTo\n };\n }\n }\n }\n }\n\n return latestStillValid || latestValidUntil;\n}\n\nexport function currencyDisplays(locale, currency, throwIfNoValid) {\n if ( throwIfNoValid === void 0 ) throwIfNoValid = true;\n\n var currencyInfo = getCurrencyInfo(locale, currency, throwIfNoValid);\n if (!currencyInfo) {\n return;\n }\n\n if (!currencyInfo.displays) {\n var displays = [ currency ];\n for (var field in currencyInfo) {\n displays.push(currencyInfo[field]);\n }\n displays.sort(lengthComparer);\n currencyInfo.displays = displays;\n }\n\n return currencyInfo.displays;\n}\n\nexport function currencyDisplay(locale, options) {\n var value = options.value;\n var currency = options.currency;\n var currencyDisplay = options.currencyDisplay; if ( currencyDisplay === void 0 ) currencyDisplay = SYMBOL;\n\n if (currencyDisplay === \"code\") {\n return currency;\n }\n\n var currencyInfo = getCurrencyInfo(locale, currency, true);\n var result;\n\n if (currencyDisplay === SYMBOL) {\n result = currencyInfo[\"symbol-alt-narrow\"] || currencyInfo[SYMBOL];\n } else {\n if (typeof value === \"undefined\" || value !== 1) {\n result = currencyInfo[\"displayName-count-other\"];\n } else {\n result = currencyInfo[\"displayName-count-one\"];\n }\n }\n\n return result;\n}\n\nexport function currencyFractionOptions(code) {\n var minimumFractionDigits = DEFAULT_CURRENCY_FRACTIONS;\n var maximumFractionDigits = DEFAULT_CURRENCY_FRACTIONS;\n\n var fractions = ((cldr.supplemental.currencyData || {}).fractions || {})[code];\n\n if (fractions && fractions._digits) {\n maximumFractionDigits = minimumFractionDigits = parseInt(fractions._digits, 10);\n }\n\n return {\n minimumFractionDigits: minimumFractionDigits,\n maximumFractionDigits: maximumFractionDigits\n };\n}\n\nexport function territoryCurrencyCode(territory, throwIfNoValid) {\n if ( throwIfNoValid === void 0 ) throwIfNoValid = true;\n\n if (GLOBAL_CURRENCIES[territory]) {\n return GLOBAL_CURRENCIES[territory];\n }\n\n var currencyData = cldr.supplemental.currencyData;\n if (!currencyData) {\n if (throwIfNoValid) {\n throw NoSupplementalCurrency.error();\n }\n\n return;\n }\n\n var regionCurrencies = currencyData.region[territory];\n\n if (!regionCurrencies) {\n if (throwIfNoValid) {\n throw NoCurrencyRegion.error(territory);\n }\n\n return;\n }\n\n var currencyCode = regionCurrency(regionCurrencies);\n\n return currencyCode;\n}\n\nexport function localeCurrency(locale, throwIfNoValid) {\n var info = getLocaleInfo(locale);\n var numbers = info.numbers;\n\n if (!numbers.localeCurrency) {\n var currency = territoryCurrencyCode(localeTerritory(info), throwIfNoValid);\n\n if (!currency && throwIfNoValid) {\n throw NoValidCurrency.error(info.name);\n }\n\n numbers.localeCurrency = currency;\n }\n\n return numbers.localeCurrency;\n}\n","\nexport var DAYS_OF_WEEK = [ \"sun\", \"mon\", \"tue\", \"wed\", \"thu\", \"fri\", \"sat\" ];\n\nexport var DEFAULT_TERRITORY = '001';\n","import { cldr, getLocaleInfo } from './info';\nimport localeTerritory from './territory';\n\nimport { DAYS_OF_WEEK, DEFAULT_TERRITORY } from './constants';\nimport { errors } from '../errors';\n\nvar NoWeekData = errors.NoWeekData;\nvar NoFirstDay = errors.NoFirstDay;\n\nexport default function firstDay(locale) {\n var info = getLocaleInfo(locale);\n\n if (!isNaN(info.firstDay)) {\n return info.firstDay;\n }\n\n var weekData = cldr.supplemental.weekData;\n if (!weekData) {\n throw NoWeekData.error();\n }\n\n var firstDay = weekData.firstDay[localeTerritory(info)] || weekData.firstDay[DEFAULT_TERRITORY];\n\n if (!firstDay) {\n throw NoFirstDay.error();\n }\n\n info.firstDay = DAYS_OF_WEEK.indexOf(firstDay);\n\n return info.firstDay;\n}\n","import { cldr, getLocaleInfo } from './info';\nimport localeTerritory from './territory';\n\nimport { DAYS_OF_WEEK, DEFAULT_TERRITORY } from './constants';\nimport { errors } from '../errors';\n\nvar NoWeekData = errors.NoWeekData;\n\nexport default function weekendRange(locale) {\n var info = getLocaleInfo(locale);\n\n if (info.weekendRange) {\n return info.weekendRange;\n }\n\n var weekData = cldr.supplemental.weekData;\n if (!weekData) {\n throw NoWeekData.error();\n }\n\n var territory = localeTerritory(info);\n var start = weekData.weekendStart[territory] || weekData.weekendStart[DEFAULT_TERRITORY];\n var end = weekData.weekendEnd[territory] || weekData.weekendEnd[DEFAULT_TERRITORY];\n\n info.weekendRange = {\n start: DAYS_OF_WEEK.indexOf(start),\n end: DAYS_OF_WEEK.indexOf(end)\n };\n\n return info.weekendRange;\n}\n","export default function isNegativeZero(value) {\n return (1 / value === -Infinity);\n}\n","import { currencyDisplay, localeCurrency } from '../cldr';\n\nexport default function formatCurrencySymbol(info, options) {\n if ( options === void 0 ) options = {};\n\n if (!options.currency) {\n options.currency = localeCurrency(info, true);\n }\n\n var display = currencyDisplay(info, options);\n\n return display;\n}\n","export default function groupInteger(number, start, end, options, info) {\n var symbols = info.numbers.symbols;\n var decimalIndex = number.indexOf(symbols.decimal);\n var groupSizes = options.groupSize.slice();\n var groupSize = groupSizes.shift();\n\n var integerEnd = decimalIndex !== -1 ? decimalIndex : end + 1;\n\n var integer = number.substring(start, integerEnd);\n var result = number;\n var integerLength = integer.length;\n\n if (integerLength >= groupSize) {\n var idx = integerLength;\n var parts = [];\n\n while (idx > -1) {\n var value = integer.substring(idx - groupSize, idx);\n if (value) {\n parts.push(value);\n }\n idx -= groupSize;\n var newGroupSize = groupSizes.shift();\n groupSize = newGroupSize !== undefined ? newGroupSize : groupSize;\n\n if (groupSize === 0) {\n value = integer.substring(0, idx);\n if (value) {\n parts.push(value);\n }\n break;\n }\n }\n\n integer = parts.reverse().join(symbols.group);\n result = number.substring(0, start) + integer + number.substring(integerEnd);\n }\n\n return result;\n}","import { CURRENCY, ACCOUNTING } from '../common/constants';\n\nexport default function isCurrencyStyle(style) {\n return style === CURRENCY || style === ACCOUNTING;\n}","export default function pad(number, digits, right) {\n if ( digits === void 0 ) digits = 2;\n if ( right === void 0 ) right = false;\n\n var count = digits - String(number).length;\n var result = number;\n\n if (count > 0) {\n var padString = new Array(count + 1).join(\"0\");\n result = right ? number + padString : padString + number;\n }\n\n return result;\n}","var MAX_PRECISION = 20;\n\nexport default function round(value, precision) {\n var result = value;\n var decimals = precision || 0;\n\n result = result.toString().split('e');\n result = Math.round(Number(result[0] + 'e' + (result[1] ? (Number(result[1]) + decimals) : decimals)));\n\n result = result.toString().split('e');\n result = Number(result[0] + 'e' + (result[1] ? (Number(result[1]) - decimals) : -decimals));\n\n return result.toFixed(Math.min(decimals, MAX_PRECISION));\n}","import { PERCENT, SCIENTIFIC, NUMBER_PLACEHOLDER, CURRENCY_PLACEHOLDER, PERCENT_PLACEHOLDER, EMPTY, POINT } from '../common/constants';\nimport isNegativeZero from '../common/is-negative-zero';\nimport formatCurrencySymbol from './format-currency-symbol';\nimport groupInteger from './group-integer';\nimport isCurrencyStyle from './is-currency-style';\nimport pad from '../common/pad';\nimport round from '../common/round';\nimport { currencyFractionOptions } from '../cldr';\n\nvar DEFAULT_DECIMAL_ROUNDING = 3;\nvar DEFAULT_PERCENT_ROUNDING = 0;\n\nvar trailingZeroRegex = /0+$/;\n\nfunction fractionOptions(options) {\n var minimumFractionDigits = options.minimumFractionDigits;\n var maximumFractionDigits = options.maximumFractionDigits;\n var style = options.style;\n var isCurrency = isCurrencyStyle(style);\n var currencyFractions;\n if (isCurrency) {\n currencyFractions = currencyFractionOptions(options.currency);\n }\n\n if (minimumFractionDigits === undefined) {\n minimumFractionDigits = isCurrency ? currencyFractions.minimumFractionDigits : 0;\n }\n\n if (maximumFractionDigits === undefined) {\n if (style === PERCENT) {\n maximumFractionDigits = Math.max(minimumFractionDigits, DEFAULT_PERCENT_ROUNDING);\n } else if (isCurrency) {\n maximumFractionDigits = Math.max(minimumFractionDigits, currencyFractions.maximumFractionDigits);\n } else {\n maximumFractionDigits = Math.max(minimumFractionDigits, DEFAULT_DECIMAL_ROUNDING);\n }\n }\n\n return {\n minimumFractionDigits: minimumFractionDigits,\n maximumFractionDigits: maximumFractionDigits\n };\n}\n\nfunction applyPattern(value, pattern, symbol) {\n var result = EMPTY;\n for (var idx = 0, length = pattern.length; idx < length; idx++) {\n var ch = pattern.charAt(idx);\n\n if (ch === NUMBER_PLACEHOLDER) {\n result += value;\n } else if (ch === CURRENCY_PLACEHOLDER || ch === PERCENT_PLACEHOLDER) {\n result += symbol;\n } else {\n result += ch;\n }\n }\n return result;\n}\n\nfunction currencyUnitPattern(info, value) {\n var currencyInfo = info.numbers.currency;\n var pattern = value !== 1 ? currencyInfo[\"unitPattern-count-other\"] : currencyInfo[\"unitPattern-count-one\"];\n if (value < 0) {\n pattern = pattern.replace(NUMBER_PLACEHOLDER, (\"-\" + NUMBER_PLACEHOLDER));\n }\n\n return pattern;\n}\n\n\nexport default function standardNumberFormat(number, options, info) {\n var symbols = info.numbers.symbols;\n var style = options.style;\n var isCurrency = isCurrencyStyle(style);\n\n //return number in exponential format\n if (style === SCIENTIFIC) {\n var exponential = options.minimumFractionDigits !== undefined ? number.toExponential(options.minimumFractionDigits) : number.toExponential();\n return exponential.replace(POINT, symbols.decimal);\n }\n\n var value = number;\n var symbol;\n\n if (isCurrency) {\n options.value = value;\n symbol = formatCurrencySymbol(info, options);\n }\n\n if (style === PERCENT) {\n value *= 100;\n symbol = symbols.percentSign;\n }\n\n var ref = fractionOptions(options);\n var minimumFractionDigits = ref.minimumFractionDigits;\n var maximumFractionDigits = ref.maximumFractionDigits;\n\n value = round(value, maximumFractionDigits);\n\n var negative = value < 0;\n var negativeZero = isNegativeZero(number);\n\n var parts = value.split(POINT);\n\n var integer = parts[0];\n var fraction = pad(parts[1] ? parts[1].replace(trailingZeroRegex, EMPTY) : EMPTY, minimumFractionDigits, true);\n\n //exclude \"-\" if number is negative.\n if (negative) {\n integer = integer.substring(1);\n }\n\n if (options.minimumIntegerDigits) {\n integer = pad(integer, options.minimumIntegerDigits);\n }\n\n var formattedValue = options.useGrouping !== false ? groupInteger(integer, 0, integer.length, options, info) : integer;\n\n if (fraction) {\n formattedValue += symbols.decimal + fraction;\n }\n\n var pattern;\n\n if (isCurrency && options.currencyDisplay === \"name\") {\n pattern = currencyUnitPattern(info, number);\n } else {\n var patterns = options.patterns;\n pattern = (negative || negativeZero) ? patterns[1] || (\"-\" + patterns[0]) : patterns[0];\n }\n\n if (pattern === NUMBER_PLACEHOLDER && !negative) {\n return formattedValue;\n }\n\n var result = applyPattern(formattedValue, pattern, symbol);\n\n return result;\n}","import { PERCENT_PLACEHOLDER, CURRENCY_PLACEHOLDER, CURRENCY, PERCENT, EMPTY } from '../common/constants';\nimport formatCurrencySymbol from './format-currency-symbol';\n\nvar literalRegExp = /(\\\\.)|(['][^']*[']?)|([\"][^\"]*[\"]?)/g;\nvar PLACEHOLDER = \"__??__\";\n\nexport function setStyleOptions(formatOptions, info) {\n var format = formatOptions.format;\n\n //multiply number if the format has percent\n if (format.indexOf(PERCENT_PLACEHOLDER) !== -1) {\n formatOptions.style = PERCENT;\n formatOptions.symbol = info.numbers.symbols.percentSign;\n formatOptions.number *= 100;\n }\n\n if (format.indexOf(CURRENCY_PLACEHOLDER) !== -1) {\n formatOptions.style = CURRENCY;\n formatOptions.symbol = formatCurrencySymbol(info);\n }\n}\n\nexport function setFormatLiterals(formatOptions) {\n var format = formatOptions.format;\n if (format.indexOf(\"'\") > -1 || format.indexOf(\"\\\"\") > -1 || format.indexOf(\"\\\\\") > -1) {\n var literals = formatOptions.literals = [];\n formatOptions.format = format.replace(literalRegExp, function(match) {\n var quoteChar = match.charAt(0).replace(\"\\\\\", EMPTY);\n var literal = match.slice(1).replace(quoteChar, EMPTY);\n\n literals.push(literal);\n\n return PLACEHOLDER;\n });\n }\n}\n\nexport function replaceLiterals(number, literals) {\n var result = number;\n if (literals) {\n var length = literals.length;\n for (var idx = 0; idx < length; idx++) {\n result = result.replace(PLACEHOLDER, literals[idx]);\n }\n }\n return result;\n}","import { CURRENCY, PERCENT, LIST_SEPARATOR, GROUP_SEPARATOR, CURRENCY_PLACEHOLDER, PERCENT_PLACEHOLDER, POINT, EMPTY } from '../common/constants';\nimport isNegativeZero from '../common/is-negative-zero';\nimport groupInteger from './group-integer';\nimport round from '../common/round';\nimport { setStyleOptions, setFormatLiterals, replaceLiterals } from './utils';\n\nvar SHARP = \"#\";\nvar ZERO = \"0\";\n\nvar trailingZerosRegExp = /(\\.(?:[0-9]*[1-9])?)0+$/g;\nvar trailingPointRegExp = /\\.$/;\nvar commaRegExp = /,/g;\n\nfunction trimTrailingZeros(value, lastZero) {\n var trimRegex;\n\n if (lastZero === 0) {\n trimRegex = trailingZerosRegExp;\n } else {\n trimRegex = new RegExp((\"(\\\\.[0-9]{\" + lastZero + \"}[1-9]*)0+$\"), 'g');\n }\n\n return value.replace(trimRegex, '$1').replace(trailingPointRegExp, EMPTY);\n}\n\nfunction roundNumber(formatOptions) {\n var number = formatOptions.number;\n var format = formatOptions.format;\n var decimalIndex = format.indexOf(POINT);\n\n if (decimalIndex !== -1) {\n var zeroIndex = format.lastIndexOf(ZERO) - decimalIndex;\n var sharpIndex = format.lastIndexOf(SHARP) - decimalIndex;\n var hasZero = zeroIndex > -1;\n var hasSharp = sharpIndex > -1;\n var fraction = number.toString().split(\"e\");\n\n if (fraction[1]) {\n fraction = round(number, Math.abs(fraction[1]));\n } else {\n fraction = fraction[0];\n }\n fraction = fraction.split(POINT)[1] || EMPTY;\n\n var precision = fraction.length;\n var trailingZeros = -1;\n\n if (!hasZero && !hasSharp) {\n formatOptions.format = format.substring(0, decimalIndex) + format.substring(decimalIndex + 1);\n decimalIndex = -1;\n precision = 0;\n } else if (hasZero && zeroIndex > sharpIndex) {\n precision = zeroIndex;\n } else if (sharpIndex > zeroIndex) {\n if (hasSharp && precision > sharpIndex) {\n precision = sharpIndex;\n } else if (hasZero && precision < zeroIndex) {\n precision = zeroIndex;\n }\n\n trailingZeros = hasZero ? zeroIndex : 0;\n }\n\n if (precision > -1) {\n number = round(number, precision);\n if (trailingZeros > -1) {\n number = trimTrailingZeros(number, trailingZeros);\n }\n }\n } else {\n number = round(number);\n }\n\n if (formatOptions.negative && (number * -1) >= 0 && !formatOptions.negativeZero) {\n formatOptions.negative = false;\n }\n\n formatOptions.number = number;\n formatOptions.decimalIndex = decimalIndex;\n}\n\nfunction isConstantFormat(format) {\n return format.indexOf(SHARP) === -1 && format.indexOf(ZERO) === -1;\n}\n\nfunction setValueSpecificFormat(formatOptions) {\n var number = formatOptions.number;\n var format = formatOptions.format;\n format = format.split(LIST_SEPARATOR);\n if ((formatOptions.negative || formatOptions.negativeZero) && format[1]) {\n format = format[1];\n formatOptions.hasNegativeFormat = true;\n } else if (number === 0) {\n var zeroFormat = format[2];\n format = zeroFormat || format[0];\n if (zeroFormat && isConstantFormat(zeroFormat)) {\n formatOptions.constant = zeroFormat;\n }\n } else {\n format = format[0];\n }\n\n formatOptions.format = format;\n}\n\nfunction setGroupOptions(formatOptions) {\n formatOptions.hasGroup = formatOptions.format.indexOf(GROUP_SEPARATOR) > -1;\n if (formatOptions.hasGroup) {\n formatOptions.format = formatOptions.format.replace(commaRegExp, EMPTY);\n }\n}\n\nfunction placeholderIndex(index1, index2, start) {\n var index;\n if (index1 === -1 && index2 !== -1) {\n index = index2;\n } else if (index1 !== -1 && index2 === -1) {\n index = index1;\n } else {\n index = start ? Math.min(index1, index2) : Math.max(index1, index2);\n }\n return index;\n}\n\nfunction setPlaceholderIndices(formatOptions) {\n var format = formatOptions.format;\n var sharpIndex = format.indexOf(SHARP);\n var zeroIndex = format.indexOf(ZERO);\n\n var start = placeholderIndex(sharpIndex, zeroIndex, true);\n\n sharpIndex = format.lastIndexOf(SHARP);\n zeroIndex = format.lastIndexOf(ZERO);\n\n var end = placeholderIndex(sharpIndex, zeroIndex);\n\n if (start === format.length) {\n end = start;\n }\n\n formatOptions.start = start;\n formatOptions.end = end;\n formatOptions.lastZeroIndex = zeroIndex;\n}\n\nfunction replaceStyleSymbols(number, style, symbol) {\n var result = number;\n if (style === CURRENCY || style === PERCENT) {\n result = EMPTY;\n for (var idx = 0, length = number.length; idx < length; idx++) {\n var ch = number.charAt(idx);\n result += (ch === CURRENCY_PLACEHOLDER || ch === PERCENT_PLACEHOLDER) ? symbol : ch;\n }\n }\n return result;\n}\n\nfunction replacePlaceHolders(formatOptions, info) {\n var start = formatOptions.start;\n var end = formatOptions.end;\n var negative = formatOptions.negative;\n var negativeZero = formatOptions.negativeZero;\n var format = formatOptions.format;\n var decimalIndex = formatOptions.decimalIndex;\n var lastZeroIndex = formatOptions.lastZeroIndex;\n var hasNegativeFormat = formatOptions.hasNegativeFormat;\n var hasGroup = formatOptions.hasGroup;\n var number = formatOptions.number;\n var value = number.toString().split(POINT);\n var length = format.length;\n var integer = value[0];\n var fraction = value[1] || EMPTY;\n var integerLength = integer.length;\n var replacement = EMPTY;\n\n number = format.substring(0, start);\n\n if ((negative || negativeZero) && !hasNegativeFormat) {\n number += \"-\";\n }\n\n for (var idx = start; idx < length; idx++) {\n var ch = format.charAt(idx);\n\n if (decimalIndex === -1) {\n if (end - idx < integerLength) {\n\n number += integer;\n break;\n }\n } else {\n if (lastZeroIndex !== -1 && lastZeroIndex < idx) {\n replacement = EMPTY;\n }\n\n if ((decimalIndex - idx) <= integerLength && decimalIndex - idx > -1) {\n number += integer;\n idx = decimalIndex;\n }\n\n if (decimalIndex === idx) {\n number += (fraction ? info.numbers.symbols.decimal : EMPTY) + fraction;\n idx += end - decimalIndex + 1;\n continue;\n }\n }\n\n if (ch === ZERO) {\n number += ch;\n replacement = ch;\n } else if (ch === SHARP) {\n number += replacement;\n }\n }\n\n if (hasGroup) {\n number = groupInteger(number, start + (negative && !hasNegativeFormat ? 1 : 0), Math.max(end, (integerLength + start)), info.numbers.decimal, info);\n }\n\n if (end >= start) {\n number += format.substring(end + 1);\n }\n\n return number;\n}\n\nfunction applyCustomFormat(formatOptions, info) {\n var number = formatOptions.number;\n if (formatOptions.start !== -1) {\n number = replacePlaceHolders(formatOptions, info);\n number = replaceStyleSymbols(number, formatOptions.style, formatOptions.symbol);\n number = replaceLiterals(number, formatOptions.literals);\n }\n\n return number;\n}\n\nexport default function customNumberFormat(number, format, info) {\n var formatOptions = {\n negative: number < 0,\n number: Math.abs(number),\n negativeZero: isNegativeZero(number),\n format: format\n };\n\n setValueSpecificFormat(formatOptions);\n\n if (formatOptions.constant) {\n return formatOptions.constant;\n }\n\n setFormatLiterals(formatOptions);\n setStyleOptions(formatOptions, info);\n setGroupOptions(formatOptions);\n roundNumber(formatOptions);\n setPlaceholderIndices(formatOptions);\n\n return applyCustomFormat(formatOptions, info);\n}","import { CURRENCY, ACCOUNTING, DECIMAL, PERCENT, SCIENTIFIC } from '../common/constants';\nimport isString from '../common/is-string';\n\nvar standardFormatRegExp = /^(n|c|p|e|a)(\\d*)$/i;\n\nfunction standardFormatOptions(format) {\n var formatAndPrecision = standardFormatRegExp.exec(format);\n\n if (formatAndPrecision) {\n var options = {\n style: DECIMAL\n };\n\n var style = formatAndPrecision[1].toLowerCase();\n\n if (style === \"c\") {\n options.style = CURRENCY;\n } else if (style === \"a\") {\n options.style = ACCOUNTING;\n } else if (style === \"p\") {\n options.style = PERCENT;\n } else if (style === \"e\") {\n options.style = SCIENTIFIC;\n }\n\n if (formatAndPrecision[2]) {\n options.minimumFractionDigits = options.maximumFractionDigits = parseInt(formatAndPrecision[2], 10);\n }\n\n return options;\n }\n}\n\nexport default function formatOptions(format) {\n var options;\n if (isString(format)) {\n options = standardFormatOptions(format);\n } else {\n options = format;\n }\n\n return options;\n}","import { localeInfo } from '../cldr';\nimport { DECIMAL, DEFAULT_LOCALE, NUMBER_PLACEHOLDER, EMPTY } from '../common/constants';\nimport standardNumberFormat from './standard-number-format';\nimport customNumberFormat from './custom-number-format';\nimport formatOptions from './format-options';\n\nexport default function formatNumber(number, format, locale) {\n if ( format === void 0 ) format = NUMBER_PLACEHOLDER;\n if ( locale === void 0 ) locale = DEFAULT_LOCALE;\n\n if (number === undefined || number === null) {\n return EMPTY;\n }\n\n if (!isFinite(number)) {\n return String(number);\n }\n\n var info = localeInfo(locale);\n var options = formatOptions(format);\n\n var result;\n if (options) {\n var style = options.style || DECIMAL;\n result = standardNumberFormat(number, Object.assign({}, info.numbers[style], options), info);\n } else {\n result = customNumberFormat(number, format, info);\n }\n\n return result;\n}\n","export default function isNumber(value) {\n return typeof value === \"number\";\n}","import { localeInfo, localeCurrency, currencyDisplays } from '../cldr';\nimport { PERCENT, NUMBER_PLACEHOLDER, CURRENCY_PLACEHOLDER, DEFAULT_LOCALE, EMPTY, POINT } from '../common/constants';\nimport { setStyleOptions, setFormatLiterals } from './utils';\nimport isNumber from '../common/is-number';\nimport isCurrencyStyle from './is-currency-style';\nimport formatOptions from './format-options';\nimport isString from '../common/is-string';\n\nvar exponentRegExp = /[eE][-+]?[0-9]+/;\nvar nonBreakingSpaceRegExp = /\\u00A0/g;\n\nfunction cleanNegativePattern(number, patterns) {\n if (patterns.length > 1) {\n var parts = (patterns[1] || EMPTY).replace(CURRENCY_PLACEHOLDER, EMPTY).split(NUMBER_PLACEHOLDER);\n if (number.indexOf(parts[0]) > -1 && number.indexOf(parts[1]) > -1) {\n return number.replace(parts[0], EMPTY).replace(parts[1], EMPTY);\n }\n }\n}\n\nfunction cleanCurrencyNumber(value, info, format) {\n var options = formatOptions(format) || {};\n var isCurrency = isCurrencyStyle(options.style);\n var number = value;\n var negative;\n\n var currency = options.currency || localeCurrency(info, isCurrency);\n\n if (currency) {\n var displays = currencyDisplays(info, currency, isCurrency);\n if (displays) {\n for (var idx = 0; idx < displays.length; idx++) {\n var display = displays[idx];\n if (number.includes(display)) {\n number = number.replace(display, EMPTY);\n isCurrency = true;\n break;\n }\n }\n }\n\n if (isCurrency) {\n var cleanNumber = cleanNegativePattern(number, info.numbers.currency.patterns) ||\n cleanNegativePattern(number, info.numbers.accounting.patterns);\n\n if (cleanNumber) {\n negative = true;\n number = cleanNumber;\n }\n\n }\n }\n\n return {\n number: number,\n negative: negative\n };\n}\n\nfunction cleanLiterals(number, formatOptions) {\n var literals = formatOptions.literals;\n var result = number;\n\n if (literals) {\n for (var idx = 0; idx < literals.length; idx++) {\n result = result.replace(literals[idx], EMPTY);\n }\n }\n\n return result;\n}\n\nfunction divideBy100(number) {\n var strNumber = String(number);\n var pointIndex = strNumber.indexOf(POINT);\n var zeroesCount = 2;\n var result = number / Math.pow(10, zeroesCount);\n\n if (pointIndex === -1 || String(result).length <= strNumber.length + zeroesCount) {\n return result;\n }\n\n var fractionDigits = strNumber.length - pointIndex + 1 + zeroesCount;\n return parseFloat(result.toFixed(fractionDigits));\n}\n\nexport default function parseNumber(value, locale, format) {\n if ( locale === void 0 ) locale = DEFAULT_LOCALE;\n if ( format === void 0 ) format = {};\n\n if (!value && value !== 0) {\n return null;\n }\n\n if (isNumber(value)) {\n return value;\n }\n\n var info = localeInfo(locale);\n var symbols = info.numbers.symbols;\n\n var number = value.toString();\n var formatOptions = format || {};\n var isPercent;\n\n if (isString(format)) {\n formatOptions = { format: format };\n setFormatLiterals(formatOptions);\n number = cleanLiterals(number, formatOptions);\n\n setStyleOptions(formatOptions, info);\n }\n\n if (formatOptions.style === PERCENT || number.indexOf(symbols.percentSign) > -1) {\n number = number.replace(symbols.percentSign, EMPTY);\n isPercent = true;\n }\n\n if (exponentRegExp.test(number)) {\n number = parseFloat(number.replace(symbols.decimal, POINT));\n return isNaN(number) ? null : number;\n }\n\n var ref = cleanCurrencyNumber(number, info, formatOptions);\n var negativeCurrency = ref.negative;\n var currencyNumber = ref.number;\n number = String(currencyNumber).trim();\n\n var negativeSignIndex = number.indexOf(\"-\");\n if (negativeSignIndex > 0) {\n return null;\n }\n\n var isNegative = negativeSignIndex > -1;\n\n isNegative = negativeCurrency !== undefined ? negativeCurrency : isNegative;\n\n number = number.replace(\"-\", EMPTY)\n .replace(nonBreakingSpaceRegExp, \" \")\n .split(symbols.group.replace(nonBreakingSpaceRegExp, \" \")).join(EMPTY)\n .replace(symbols.decimal, POINT);\n\n number = parseFloat(number);\n\n if (isNaN(number)) {\n number = null;\n } else if (isNegative) {\n number *= -1;\n }\n\n if (number && isPercent) {\n number = divideBy100(number);\n }\n\n return number;\n}\n","var formatRegExp = /\\{(\\d+)}/g;\n\nexport default function formatString(format) {\n var values = arguments;\n\n return format.replace(formatRegExp, function (match, index) {\n var value = values[parseInt(index, 10) + 1];\n\n return value;\n });\n}","import formatString from '../common/format-string';\nimport isString from '../common/is-string';\nimport { EMPTY } from '../common/constants';\n\nvar REMOVAL_PENALTY = 120;\nvar ADDITION_PENALTY = 20;\nvar LENGHT_DELTA = [ 2, 1, 5, 3, 4 ];\nvar LONG_LESS_PENALTY_DELTA = -2;\nvar SHORT_LESS_PENALTY_DELTA = -1;\nvar SHORT_MORE_PENALTY_DELTA = 1;\nvar LONG_MORE_PENALTY_DELTA = 2;\n\nvar PENALTIES = {};\nPENALTIES[LONG_LESS_PENALTY_DELTA.toString()] = 8;\nPENALTIES[SHORT_LESS_PENALTY_DELTA.toString()] = 6;\nPENALTIES[LONG_MORE_PENALTY_DELTA.toString()] = 6;\nPENALTIES[SHORT_MORE_PENALTY_DELTA.toString()] = 3;\n\nvar VALUE_FORMAT_LENGTH = {\n numeric: 1,\n \"2-digit\": 2,\n short: 3,\n long: 4,\n narrow: 5\n};\n\nvar TIME_SPECIFIERS_REGEX = /[hHmsSzZoOvVxX]/;\n\nfunction getHourSpecifier(options) {\n return options.hour12 ? \"h\" : \"H\";\n}\n\nvar DATE_OPTIONS_MAP = [ {\n key: \"era\",\n specifier: \"G\"\n}, {\n key: \"year\",\n specifier: \"y\"\n}, {\n key: \"month\",\n specifier: \"M\"\n}, {\n key: \"day\",\n specifier: \"d\"\n}, {\n key: \"weekday\",\n specifier: \"E\"\n}, {\n key: \"hour\",\n getSpecifier: getHourSpecifier\n}, {\n key: \"minute\",\n specifier: \"m\"\n}, {\n key: \"second\",\n specifier: \"s\"\n}, {\n key: \"timeZoneName\",\n specifier: \"z\"\n} ];\n\nvar STAND_ALONE_SPECIFIERS = {\n e: 'c',\n E: 'c',\n M: 'L',\n Q: 'q'\n};\n\nvar specifiersRegex = {};\nvar resolvedFormats = {};\n\nfunction getSpecifierRegex(specifier) {\n if (!specifiersRegex[specifier]) {\n specifiersRegex[specifier] = new RegExp(specifier + \"+\");\n }\n return specifiersRegex[specifier];\n}\n\nfunction skeletonSpecifiers(skeleton) {\n var result = [];\n var current = skeleton.charAt(0);\n var specifier = current;\n for (var idx = 1; idx < skeleton.length; idx++) {\n var character = skeleton.charAt(idx);\n if (character === specifier) {\n current += character;\n } else {\n result.push(current);\n current = specifier = character;\n }\n }\n\n result.push(current);\n\n return result;\n}\n\nfunction findBestMatch(specifiers, availableFormats) {\n var specifiersLength = specifiers.length;\n var maxScore = -Number.MAX_VALUE;\n var bestMatches, result;\n for (var format in availableFormats) {\n var matches = [];\n var currentFormat = format.replace(\"v\", \"z\");\n var score = 0;\n for (var idx = 0; idx < specifiersLength; idx++) {\n var specifier = specifiers[idx];\n var specifierRegex = getSpecifierRegex(specifier[0]);\n var match = (specifierRegex.exec(currentFormat) || [])[0];\n\n if (!match) {\n score -= REMOVAL_PENALTY;\n } else {\n currentFormat = currentFormat.replace(match, EMPTY);\n if (match.length !== specifier.length) {\n var delta = Math.max(Math.min(LENGHT_DELTA[match.length] - LENGHT_DELTA[specifier.length], 2), -2);\n score -= PENALTIES[delta];\n }\n }\n\n matches.push(match);\n\n if (score < maxScore) {\n break;\n }\n }\n\n if (currentFormat.length) {\n score -= skeletonSpecifiers(currentFormat).length * ADDITION_PENALTY;\n }\n\n if (score > maxScore) {\n maxScore = score;\n bestMatches = matches;\n result = availableFormats[format];\n }\n }\n\n result = result.replace(\"v\", \"z\");\n\n for (var idx$1 = 0; idx$1 < specifiersLength; idx$1++) {\n var bestMatch = bestMatches[idx$1];\n if (bestMatch && bestMatch !== specifiers[idx$1]) {\n var matchSpecifier = bestMatches[idx$1][0];\n result = result.replace(getSpecifierRegex(matchSpecifier), specifiers[idx$1]);\n if (STAND_ALONE_SPECIFIERS[matchSpecifier]) {\n result = result.replace(getSpecifierRegex(STAND_ALONE_SPECIFIERS[matchSpecifier]), specifiers[idx$1]);\n }\n }\n }\n\n return result;\n}\n\nfunction cacheFormat(skeleton, format, locale) {\n if (!resolvedFormats[locale]) {\n resolvedFormats[locale] = {};\n }\n resolvedFormats[locale][skeleton] = format;\n}\n\n\nfunction skeletonFormat(skeleton, info) {\n var availableFormats = info.calendar.dateTimeFormats.availableFormats;\n if (availableFormats[skeleton]) {\n return availableFormats[skeleton];\n }\n if (resolvedFormats[info.name] && resolvedFormats[info.name][skeleton]) {\n return resolvedFormats[info.name][skeleton];\n }\n var timeStartIndex = skeleton.search(TIME_SPECIFIERS_REGEX);\n var result;\n if (timeStartIndex > 0) {\n var dateSkeleton = skeleton.substr(0, timeStartIndex);\n var timeSkeleton = skeleton.substr(timeStartIndex);\n\n result = formatString(info.calendar.dateTimeFormats.short, //should be deterimed based on specifiers\n availableFormats[timeSkeleton] || findBestMatch(skeletonSpecifiers(timeSkeleton), availableFormats),\n availableFormats[dateSkeleton] || findBestMatch(skeletonSpecifiers(dateSkeleton), availableFormats));\n } else {\n result = findBestMatch(skeletonSpecifiers(skeleton), availableFormats);\n }\n\n cacheFormat(skeleton, result, info.name);\n return result;\n}\n\nfunction skeletonFromOptions(options) {\n var result = [];\n for (var idx = 0; idx < DATE_OPTIONS_MAP.length; idx++) {\n var option = DATE_OPTIONS_MAP[idx];\n var field = option.key;\n var value = options[field];\n if (value) {\n var spcifier = option.specifier || option.getSpecifier(options);\n result.push(spcifier.repeat(VALUE_FORMAT_LENGTH[value]));\n }\n }\n\n return result.join(EMPTY);\n}\n\nexport default function datePattern(format, info) {\n var calendar = info.calendar;\n var result;\n if (isString(format)) {\n if (calendar.patterns[format]) {\n result = calendar.patterns[format];\n } else {\n result = format;\n }\n } else if (format) {\n if (format.pattern) {\n return format.pattern;\n }\n\n var skeleton = format.skeleton;\n if (!skeleton) {\n if (format.datetime) {\n result = formatString(calendar.dateTimeFormats[format.datetime], calendar.timeFormats[format.datetime], calendar.dateFormats[format.datetime]);\n } else if (format.date) {\n result = calendar.dateFormats[format.date];\n } else if (format.time) {\n result = calendar.timeFormats[format.time];\n } else {\n skeleton = skeletonFromOptions(format);\n }\n }\n\n if (skeleton) {\n result = skeletonFormat(skeleton, info);\n }\n }\n\n if (!result) {\n result = calendar.patterns.d;\n }\n\n return result;\n}\n","export default function dateNameType(formatLength) {\n var nameType;\n if (formatLength <= 3) {\n nameType = \"abbreviated\";\n } else if (formatLength === 4) {\n nameType = \"wide\";\n } else if (formatLength === 5) {\n nameType = \"narrow\";\n } else if (formatLength === 6) {\n nameType = \"short\";\n }\n\n return nameType;\n}","import dateFormatNames from '../cldr/date-format-names';\nimport dateNameType from './date-name-type';\n\nexport default function formatNames(locale, type, formatLength, standAlone, lower) {\n return dateFormatNames(locale, {\n type: type,\n nameType: dateNameType(formatLength),\n standAlone: standAlone,\n lower: lower\n });\n}","function isFunction(fun) {\n return typeof(fun) === 'function';\n}\n\nexport default function isDate(value) {\n return Boolean(value) && isFunction(value.getTime) && isFunction(value.getMonth);\n}\n","var MONTH = 'month';\nvar HOUR = 'hour';\nvar ZONE = 'zone';\nvar WEEKDAY = 'weekday';\nvar QUARTER = 'quarter';\n\nvar DATE_FIELD_MAP = {\n 'G': 'era',\n 'y': 'year',\n 'q': QUARTER,\n 'Q': QUARTER,\n 'M': MONTH,\n 'L': MONTH,\n 'd': 'day',\n 'E': WEEKDAY,\n 'c': WEEKDAY,\n 'e': WEEKDAY,\n 'h': HOUR,\n 'H': HOUR,\n 'k': HOUR,\n 'K': HOUR,\n 'm': 'minute',\n 's': 'second',\n 'S': 'millisecond',\n 'a': 'dayperiod',\n 'x': ZONE,\n 'X': ZONE,\n 'z': ZONE,\n 'Z': ZONE\n};\n\nvar dateFormatRegExp = /d{1,2}|E{1,6}|e{1,6}|c{3,6}|c{1}|M{1,5}|L{1,5}|y{1,4}|H{1,2}|h{1,2}|k{1,2}|K{1,2}|m{1,2}|a{1,5}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|x{1,5}|X{1,5}|G{1,5}|q{1,5}|Q{1,5}|\"[^\"]*\"|'[^']*'/g;\n\nexport { dateFormatRegExp, DATE_FIELD_MAP };","import { localeInfo, firstDay } from '../cldr';\nimport { DEFAULT_LOCALE, EMPTY } from '../common/constants';\nimport formatString from '../common/format-string';\nimport datePattern from './date-pattern';\nimport formatNames from './format-names';\nimport pad from '../common/pad';\nimport isDate from '../common/is-date';\nimport { dateFormatRegExp } from './constants';\n\nfunction formatDayOfWeekIndex(day, formatLength, localeInfo) {\n var firstDayIndex = firstDay(localeInfo);\n var dayIndex;\n if (day < firstDayIndex) {\n dayIndex = 7 - firstDayIndex + day;\n } else {\n dayIndex = day - firstDayIndex;\n }\n\n return dayIndex + 1;\n}\n\nfunction formatMonth(month, formatLength, info, standAlone) {\n if (formatLength <= 2) {\n return pad(month + 1, formatLength);\n }\n return formatNames(info, \"months\", formatLength, standAlone)[month];\n}\n\nfunction formatQuarter(date, formatLength, info, standAlone) {\n var quarter = Math.floor(date.getMonth() / 3);\n if (formatLength < 3) {\n return quarter + 1;\n }\n\n return formatNames(info, \"quarters\", formatLength, standAlone)[quarter];\n}\n\n\nfunction formatTimeZone(date, info, options) {\n var shortHours = options.shortHours;\n var optionalMinutes = options.optionalMinutes;\n var separator = options.separator;\n var localizedName = options.localizedName;\n var zZeroOffset = options.zZeroOffset;\n var offset = date.getTimezoneOffset() / 60;\n if (offset === 0 && zZeroOffset) {\n return \"Z\";\n }\n var sign = offset <= 0 ? \"+\" : \"-\";\n var hoursMinutes = Math.abs(offset).toString().split(\".\");\n var minutes = hoursMinutes[1] || 0;\n var result = sign + (shortHours ? hoursMinutes[0] : pad(hoursMinutes[0], 2));\n if (minutes || !optionalMinutes) {\n result += (separator ? \":\" : EMPTY) + pad(minutes, 2);\n }\n\n if (localizedName) {\n var localizedFormat = offset === 0 ? info.calendar.gmtZeroFormat : info.calendar.gmtFormat;\n result = formatString(localizedFormat, result);\n }\n\n return result;\n}\n\nfunction formatDayOfWeek(date, formatLength, info, standAlone) {\n var result;\n if (formatLength < 3) {\n result = formatDayOfWeekIndex(date.getDay(), formatLength, info);\n } else {\n result = formatNames(info, \"days\", formatLength, standAlone)[date.getDay()];\n }\n return result;\n}\n\nvar formatters = {};\n\nformatters.d = function(date, formatLength) {\n return pad(date.getDate(), formatLength);\n};\n\nformatters.E = function(date, formatLength, info) {\n return formatNames(info, \"days\", formatLength)[date.getDay()];\n};\n\nformatters.M = function(date, formatLength, info) {\n return formatMonth(date.getMonth(), formatLength, info, false);\n};\n\nformatters.L = function(date, formatLength, info) {\n return formatMonth(date.getMonth(), formatLength, info, true);\n};\n\nformatters.y = function(date, formatLength) {\n var year = date.getFullYear();\n if (formatLength === 2) {\n year = year % 100;\n }\n return pad(year, formatLength);\n};\n\nformatters.h = function(date, formatLength) {\n var hours = date.getHours() % 12 || 12;\n return pad(hours, formatLength);\n};\n\nformatters.H = function(date, formatLength) {\n return pad(date.getHours(), formatLength);\n};\n\nformatters.k = function(date, formatLength) {\n return pad(date.getHours() || 24, formatLength);\n};\n\nformatters.K = function(date, formatLength) {\n return pad(date.getHours() % 12, formatLength);\n};\n\nformatters.m = function(date, formatLength) {\n return pad(date.getMinutes(), formatLength);\n};\n\nformatters.s = function(date, formatLength) {\n return pad(date.getSeconds(), formatLength);\n};\n\nformatters.S = function(date, formatLength) {\n var milliseconds = date.getMilliseconds();\n var result;\n if (milliseconds !== 0) {\n result = pad(String(milliseconds / 1000).split(\".\")[1].substr(0, formatLength), formatLength, true);\n } else {\n result = pad(EMPTY, formatLength);\n }\n return result;\n};\n\nformatters.a = function(date, formatLength, info) {\n return formatNames(info, \"dayPeriods\", formatLength)[date.getHours() < 12 ? \"am\" : \"pm\"];\n};\n\nformatters.z = function(date, formatLength, info) {\n return formatTimeZone(date, info, {\n shortHours: formatLength < 4,\n optionalMinutes: formatLength < 4,\n separator: true,\n localizedName: true\n });\n};\n\nformatters.Z = function(date, formatLength, info) {\n return formatTimeZone(date, info, {\n separator: formatLength > 3,\n localizedName: formatLength === 4,\n zZeroOffset: formatLength === 5\n });\n};\n\nformatters.x = function(date, formatLength, info) {\n return formatTimeZone(date, info, {\n optionalMinutes: formatLength === 1,\n separator: formatLength === 3 || formatLength === 5\n });\n};\n\nformatters.X = function(date, formatLength, info) {\n return formatTimeZone(date, info, {\n optionalMinutes: formatLength === 1,\n separator: formatLength === 3 || formatLength === 5,\n zZeroOffset: true\n });\n};\n\nformatters.G = function(date, formatLength, info) {\n var era = date.getFullYear() >= 0 ? 1 : 0;\n return formatNames(info, \"eras\", formatLength)[era];\n};\n\nformatters.e = formatDayOfWeek;\n\nformatters.c = function(date, formatLength, info) {\n return formatDayOfWeek(date, formatLength, info, true);\n};\n\nformatters.q = function(date, formatLength, info) {\n return formatQuarter(date, formatLength, info, true);\n};\n\nformatters.Q = formatQuarter;\n\nexport default function formatDate(date, format, locale) {\n if ( locale === void 0 ) locale = DEFAULT_LOCALE;\n\n if (!isDate(date)) {\n if (date === undefined || date === null) {\n return EMPTY;\n }\n return date;\n }\n\n var info = localeInfo(locale);\n var pattern = datePattern(format, info);\n\n return pattern.replace(dateFormatRegExp, function(match) {\n var formatLength = match.length;\n var result;\n\n if (match.includes(\"'\") || match.includes(\"\\\"\")) {\n result = match.slice(1, formatLength - 1);\n } else {\n result = formatters[match[0]](date, formatLength, info);\n }\n\n return result;\n });\n}\n","export function convertTimeZone(date, fromOffset, toOffset) {\n var fromLocalOffset = date.getTimezoneOffset();\n\n var offsetDate = new Date(date.getTime() + (fromOffset - toOffset) * 60000);\n\n var toLocalOffset = offsetDate.getTimezoneOffset();\n\n return new Date(offsetDate.getTime() + (toLocalOffset - fromLocalOffset) * 60000);\n}\n\nexport function adjustDST(date, hours) {\n if (!hours && date.getHours() === 23) {\n date.setHours(date.getHours() + 2);\n }\n}","import { adjustDST, convertTimeZone } from './time-utils';\nimport { localeInfo } from '../cldr';\nimport { DEFAULT_LOCALE, EMPTY } from '../common/constants';\nimport { errors } from '../errors';\nimport formatNames from './format-names';\nimport datePattern from './date-pattern';\nimport round from '../common/round';\nimport isDate from '../common/is-date';\n\nvar timeZoneOffsetRegExp = /([+|-]\\d{1,2})(:?)(\\d{2})?/;\nvar dateRegExp = /^\\/Date\\((.*?)\\)\\/$/;\nvar offsetRegExp = /[+-]\\d*/;\nvar numberRegExp = {\n 2: /^\\d{1,2}/,\n 3: /^\\d{1,3}/,\n 4: /^\\d{4}/\n};\nvar numberRegex = /\\d+/;\nvar PLACEHOLDER = \"{0}\";\n\nvar leadingSpacesRegex = /^ */;\nvar trailingSpacesRegex = / *$/;\n\nvar standardDateFormats = [\n \"yyyy/MM/dd HH:mm:ss\",\n \"yyyy/MM/dd HH:mm\",\n \"yyyy/MM/dd\",\n \"E MMM dd yyyy HH:mm:ss\",\n \"yyyy-MM-ddTHH:mm:ss.SSSSSSSXXX\",\n \"yyyy-MM-ddTHH:mm:ss.SSSXXX\",\n \"yyyy-MM-ddTHH:mm:ss.SSXXX\",\n \"yyyy-MM-ddTHH:mm:ssXXX\",\n \"yyyy-MM-ddTHH:mm:ss.SSSSSSS\",\n \"yyyy-MM-ddTHH:mm:ss.SSS\",\n \"yyyy-MM-ddTHH:mmXXX\",\n \"yyyy-MM-ddTHH:mmX\",\n \"yyyy-MM-ddTHH:mm:ss\",\n \"yyyy-MM-ddTHH:mm\",\n \"yyyy-MM-dd HH:mm:ss\",\n \"yyyy-MM-dd HH:mm\",\n \"yyyy-MM-dd\",\n \"HH:mm:ss\",\n \"HH:mm\"\n];\nvar FORMATS_SEQUENCE = [ \"G\", \"g\", \"F\", \"Y\", \"y\", \"M\", \"m\", \"D\", \"d\", \"y\", \"T\", \"t\" ];\nvar TWO_DIGIT_YEAR_MAX = 2029;\n\nfunction outOfRange(value, start, end) {\n return !(value >= start && value <= end);\n}\n\nfunction lookAhead(match, state) {\n var format = state.format;\n var idx = state.idx;\n var i = 0;\n while (format[idx] === match) {\n i++;\n idx++;\n }\n if (i > 0) {\n idx -= 1;\n }\n state.idx = idx;\n return i;\n}\n\nfunction getNumber(size, state) {\n var regex = size ? (numberRegExp[size] || new RegExp('^\\\\d{1,' + size + '}')) : numberRegex,\n match = state.value.substr(state.valueIdx, size).match(regex);\n\n if (match) {\n match = match[0];\n state.valueIdx += match.length;\n return parseInt(match, 10);\n }\n return null;\n}\n\nfunction getIndexByName(names, state, lower) {\n var i = 0,\n length = names.length,\n name, nameLength,\n matchLength = 0,\n matchIdx = 0,\n subValue;\n\n for (; i < length; i++) {\n name = names[i];\n nameLength = name.length;\n subValue = state.value.substr(state.valueIdx, nameLength);\n\n if (lower) {\n subValue = subValue.toLowerCase();\n }\n\n if (subValue === name && nameLength > matchLength) {\n matchLength = nameLength;\n matchIdx = i;\n }\n }\n\n if (matchLength) {\n state.valueIdx += matchLength;\n return matchIdx + 1;\n }\n\n return null;\n}\n\nfunction checkLiteral(state) {\n var result = false;\n if (state.value.charAt(state.valueIdx) === state.format[state.idx]) {\n state.valueIdx++;\n result = true;\n }\n return result;\n}\n\nfunction calendarGmtFormats(calendar) {\n var gmtFormat = calendar.gmtFormat;\n var gmtZeroFormat = calendar.gmtZeroFormat;\n if (!gmtFormat) {\n throw errors.NoGMTInfo.error();\n }\n\n return [ gmtFormat.replace(PLACEHOLDER, EMPTY).toLowerCase(), gmtZeroFormat.replace(PLACEHOLDER, EMPTY).toLowerCase() ];\n}\n\nfunction parseTimeZoneOffset(state, info, options) {\n var shortHours = options.shortHours;\n var noSeparator = options.noSeparator;\n var optionalMinutes = options.optionalMinutes;\n var localizedName = options.localizedName;\n var zLiteral = options.zLiteral;\n state.UTC = true;\n\n if (zLiteral && state.value.charAt(state.valueIdx) === \"Z\") {\n state.valueIdx++;\n return false;\n }\n\n if (localizedName && !getIndexByName(calendarGmtFormats(info.calendar), state, true)) {\n return true;\n }\n\n var matches = timeZoneOffsetRegExp.exec(state.value.substr(state.valueIdx, 6));\n if (!matches) {\n return !localizedName;\n }\n\n var hoursMatch = matches[1];\n var minutesMatch = matches[3];\n var hoursOffset = parseInt(hoursMatch, 10);\n var separator = matches[2];\n var minutesOffset = parseInt(minutesMatch, 10);\n\n if (isNaN(hoursOffset) || (!shortHours && hoursMatch.length !== 3) || (!optionalMinutes && isNaN(minutesOffset)) || (noSeparator && separator)) {\n return true;\n }\n\n if (isNaN(minutesOffset)) {\n minutesOffset = null;\n }\n\n if (outOfRange(hoursOffset, -12, 13) || (minutesOffset && outOfRange(minutesOffset, 0, 59))) {\n return true;\n }\n\n state.valueIdx += matches[0].length;\n state.hoursOffset = hoursOffset;\n state.minutesOffset = minutesOffset;\n}\n\nfunction parseMonth(ch, state, info) {\n var count = lookAhead(ch, state);\n var names = formatNames(info, \"months\", count, ch === \"L\", true);\n\n var month = count < 3 ? getNumber(2, state) : getIndexByName(names, state, true);\n\n if (month === null || outOfRange(month, 1, 12)) {\n return true;\n }\n state.month = month - 1;\n}\n\nfunction parseDayOfWeek(ch, state, info) {\n var count = lookAhead(ch, state);\n var names = formatNames(info, \"days\", count, ch === \"c\", true);\n var dayOfWeek = count < 3 ? getNumber(1, state) : getIndexByName(names, state, true);\n if ((!dayOfWeek && dayOfWeek !== 0) || outOfRange(dayOfWeek, 1, 7)) {\n return true;\n }\n}\n\nvar parsers = {};\n\nparsers.d = function(state) {\n lookAhead(\"d\", state);\n var day = getNumber(2, state);\n\n if (day === null || outOfRange(day, 1, 31)) {\n return true;\n }\n\n if (state.day === null) {\n state.day = day;\n }\n};\n\nparsers.E = function(state, info) {\n var count = lookAhead(\"E\", state);\n //validate if it matches the day?\n var dayOfWeek = getIndexByName(formatNames(info, \"days\", count, false, true), state, true);\n if (dayOfWeek === null) {\n return true;\n }\n};\n\nparsers.M = function(state, info) {\n return parseMonth(\"M\", state, info);\n};\n\nparsers.L = function(state, info) {\n return parseMonth(\"L\", state, info);\n};\n\nparsers.y = function(state) {\n var count = lookAhead(\"y\", state);\n var year = getNumber(count === 1 ? undefined : count, state);\n\n if (year === null) {\n return true;\n }\n\n if (count === 2) {\n var currentYear = new Date().getFullYear();\n year = (currentYear - currentYear % 100) + year;\n if (year > TWO_DIGIT_YEAR_MAX) {\n year -= 100;\n }\n }\n\n state.year = year;\n};\n\nparsers.h = function(state) {\n lookAhead(\"h\", state);\n\n var hours = getNumber(2, state);\n if (hours === 12) {\n hours = 0;\n }\n\n if (hours === null || outOfRange(hours, 0, 11)) {\n return true;\n }\n\n state.hours = hours;\n};\n\nparsers.K = function(state) {\n lookAhead(\"K\", state);\n\n var hours = getNumber(2, state);\n\n if (hours === null || outOfRange(hours, 0, 11)) {\n return true;\n }\n\n state.hours = hours;\n};\n\nparsers.a = function(state, info) {\n var count = lookAhead(\"a\", state);\n var periodFormats = formatNames(info, \"dayPeriods\", count, false, true);\n\n var pmHour = getIndexByName([ periodFormats.pm ], state, true);\n if (!pmHour && !getIndexByName([ periodFormats.am ], state, true)) {\n return true;\n }\n\n state.pmHour = pmHour;\n};\n\nparsers.H = function(state) {\n lookAhead(\"H\", state);\n var hours = getNumber(2, state);\n if (hours === null || outOfRange(hours, 0, 23)) {\n return true;\n }\n state.hours = hours;\n};\n\nparsers.k = function(state) {\n lookAhead(\"k\", state);\n\n var hours = getNumber(2, state);\n\n if (hours === null || outOfRange(hours, 1, 24)) {\n return true;\n }\n\n state.hours = hours === 24 ? 0 : hours;\n};\n\nparsers.m = function(state) {\n lookAhead(\"m\", state);\n var minutes = getNumber(2, state);\n\n if (minutes === null || outOfRange(minutes, 0, 59)) {\n return true;\n }\n\n state.minutes = minutes;\n};\n\nparsers.s = function(state) {\n lookAhead(\"s\", state);\n var seconds = getNumber(2, state);\n if (seconds === null || outOfRange(seconds, 0, 59)) {\n return true;\n }\n state.seconds = seconds;\n};\n\nparsers.S = function(state) {\n var count = lookAhead(\"S\", state);\n var match = state.value.substr(state.valueIdx, count);\n var milliseconds = null;\n\n if (!isNaN(parseInt(match, 10))) {\n milliseconds = parseFloat(\"0.\" + match, 10);\n milliseconds = round(milliseconds, 3);\n milliseconds *= 1000;\n state.valueIdx += count;\n }\n\n if (milliseconds === null || outOfRange(milliseconds, 0, 999)) {\n return true;\n }\n\n state.milliseconds = milliseconds;\n};\n\nparsers.z = function(state, info) {\n var count = lookAhead(\"z\", state);\n\n var shortFormat = count < 4;\n\n var invalid = parseTimeZoneOffset(state, info, {\n shortHours: shortFormat,\n optionalMinutes: shortFormat,\n localizedName: true\n });\n\n if (invalid) {\n return invalid;\n }\n};\n\nparsers.Z = function(state, info) {\n var count = lookAhead(\"Z\", state);\n\n var invalid = parseTimeZoneOffset(state, info, {\n noSeparator: count < 4,\n zLiteral: count === 5,\n localizedName: count === 4\n });\n\n if (invalid) {\n return invalid;\n }\n};\n\nparsers.x = function(state, info) {\n var count = lookAhead(\"x\", state);\n\n var invalid = parseTimeZoneOffset(state, info, {\n noSeparator: count !== 3 && count !== 5,\n optionalMinutes: count === 1\n });\n if (invalid) {\n return invalid;\n }\n};\n\nparsers.X = function(state, info) {\n var count = lookAhead(\"X\", state);\n\n var invalid = parseTimeZoneOffset(state, info, {\n noSeparator: count !== 3 && count !== 5,\n optionalMinutes: count === 1,\n zLiteral: true\n });\n if (invalid) {\n return invalid;\n }\n};\n\nparsers.G = function(state, info) {\n var count = lookAhead(\"G\", state);\n var eras = formatNames(info, \"eras\", count, false, true);\n var era = getIndexByName([ eras[0], eras[1] ], state, true);\n\n if (era === null) {\n return true;\n }\n};\n\nparsers.e = function(state, info) {\n return parseDayOfWeek(\"e\", state, info);\n};\n\nparsers.c = function(state, info) {\n return parseDayOfWeek(\"c\", state, info);\n};\n\nfunction createDate(state) {\n var year = state.year;\n var month = state.month;\n var day = state.day;\n var hours = state.hours;\n var minutes = state.minutes;\n var seconds = state.seconds;\n var milliseconds = state.milliseconds;\n var pmHour = state.pmHour;\n var UTC = state.UTC;\n var hoursOffset = state.hoursOffset;\n var minutesOffset = state.minutesOffset;\n var hasTime = hours !== null || minutes !== null || seconds || null;\n var date = new Date();\n var result;\n\n if (year === null && month === null && day === null && hasTime) {\n year = date.getFullYear();\n month = date.getMonth();\n day = date.getDate();\n } else {\n if (year === null) {\n year = date.getFullYear();\n }\n\n if (day === null) {\n day = 1;\n }\n }\n\n if (pmHour && hours < 12) {\n hours += 12;\n }\n\n if (UTC) {\n if (hoursOffset) {\n hours += -hoursOffset;\n }\n\n if (minutesOffset) {\n minutes += -minutesOffset * (hoursOffset < 0 ? -1 : 1);\n }\n\n result = new Date(Date.UTC(year, month, day, hours, minutes, seconds, milliseconds));\n } else {\n result = new Date(year, month, day, hours, minutes, seconds, milliseconds);\n adjustDST(result, hours);\n }\n\n if (year < 100) {\n result.setFullYear(year);\n }\n\n if (result.getDate() !== day && UTC === undefined) {\n return null;\n }\n\n return result;\n}\n\nfunction addFormatSpaces(value, format) {\n var leadingSpaces = leadingSpacesRegex.exec(format)[0];\n var trailingSpaces = trailingSpacesRegex.exec(format)[0];\n\n return (\"\" + leadingSpaces + value + trailingSpaces);\n}\n\nfunction parseExact(value, format, info) {\n var pattern = datePattern(format, info).split(EMPTY);\n\n var state = {\n format: pattern,\n idx: 0,\n value: addFormatSpaces(value, format),\n valueIdx: 0,\n year: null,\n month: null,\n day: null,\n hours: null,\n minutes: null,\n seconds: null,\n milliseconds: null\n };\n var length = pattern.length;\n var literal = false;\n\n for (; state.idx < length; state.idx++) {\n var ch = pattern[state.idx];\n\n if (literal) {\n if (ch === \"'\") {\n literal = false;\n }\n\n checkLiteral(state);\n } else {\n if (parsers[ch]) {\n var invalid = parsers[ch](state, info);\n if (invalid) {\n return null;\n }\n } else if (ch === \"'\") {\n literal = true;\n checkLiteral(state);\n } else if (!checkLiteral(state)) {\n return null;\n }\n }\n }\n\n if (state.valueIdx < value.length) {\n return null;\n }\n\n return createDate(state) || null;\n}\n\nfunction parseMicrosoftDateOffset(offset) {\n var sign = offset.substr(0, 1) === \"-\" ? -1 : 1;\n\n var result = offset.substring(1);\n result = (parseInt(result.substr(0, 2), 10) * 60) + parseInt(result.substring(2), 10);\n\n return sign * result;\n}\n\nfunction parseMicrosoftDateFormat(value) {\n if (value && value.indexOf(\"/D\") === 0) {\n var date = dateRegExp.exec(value);\n if (date) {\n date = date[1];\n var tzoffset = offsetRegExp.exec(date.substring(1));\n\n date = new Date(parseInt(date, 10));\n\n if (tzoffset) {\n tzoffset = parseMicrosoftDateOffset(tzoffset[0]);\n date = convertTimeZone(date, date.getTimezoneOffset(), 0);\n date = convertTimeZone(date, 0, -1 * tzoffset);\n }\n\n return date;\n }\n }\n}\n\nfunction defaultFormats(calendar) {\n var formats = [];\n var patterns = calendar.patterns;\n var length = FORMATS_SEQUENCE.length;\n\n for (var idx = 0; idx < length; idx++) {\n formats.push(patterns[FORMATS_SEQUENCE[idx]]);\n }\n\n return formats.concat(standardDateFormats);\n}\n\nexport default function parseDate(value, formats, locale) {\n if ( locale === void 0 ) locale = DEFAULT_LOCALE;\n\n if (!value) {\n return null;\n }\n\n if (isDate(value)) {\n return value;\n }\n\n var parseValue = String(value).trim();\n var date = parseMicrosoftDateFormat(parseValue);\n if (date) {\n return date;\n }\n\n var info = localeInfo(locale);\n var parseFormats = formats || defaultFormats(info.calendar);\n parseFormats = Array.isArray(parseFormats) ? parseFormats : [ parseFormats ];\n\n var length = parseFormats.length;\n\n for (var idx = 0; idx < length; idx++) {\n date = parseExact(parseValue, parseFormats[idx], info);\n if (date) {\n return date;\n }\n }\n\n return date;\n}\n","import { DEFAULT_LOCALE } from '../common/constants';\nimport isNumber from '../common/is-number';\nimport datePattern from './date-pattern';\nimport dateNameType from './date-name-type';\nimport { dateFormatRegExp, DATE_FIELD_MAP } from './constants';\nimport { localeInfo } from '../cldr';\n\nvar NAME_TYPES = {\n month: {\n type: 'months',\n minLength: 3,\n standAlone: 'L'\n },\n\n quarter: {\n type: 'quarters',\n minLength: 3,\n standAlone: 'q'\n },\n\n weekday: {\n type: 'days',\n minLength: {\n E: 0,\n c: 3,\n e: 3\n },\n standAlone: 'c'\n },\n\n dayperiod: {\n type: 'dayPeriods',\n minLength: 0\n },\n\n era: {\n type: 'eras',\n minLength: 0\n }\n};\n\nvar LITERAL = 'literal';\n\nfunction addLiteral(parts, value) {\n var lastPart = parts[parts.length - 1];\n if (lastPart && lastPart.type === LITERAL) {\n lastPart.pattern += value;\n } else {\n parts.push({\n type: LITERAL,\n pattern: value\n });\n }\n}\n\nfunction isHour12(pattern) {\n return pattern === 'h' || pattern === 'K';\n}\n\nexport default function splitDateFormat(format, locale) {\n if ( locale === void 0 ) locale = DEFAULT_LOCALE;\n\n var info = localeInfo(locale);\n var pattern = datePattern(format, info);\n var parts = [];\n var lastIndex = dateFormatRegExp.lastIndex = 0;\n var match = dateFormatRegExp.exec(pattern);\n\n while (match) {\n var value = match[0];\n\n if (lastIndex < match.index) {\n addLiteral(parts, pattern.substring(lastIndex, match.index));\n }\n\n if (value.startsWith('\"') || value.startsWith(\"'\")) {\n addLiteral(parts, value);\n } else {\n var specifier = value[0];\n var type = DATE_FIELD_MAP[specifier];\n var part = {\n type: type,\n pattern: value\n };\n\n if (type === 'hour') {\n part.hour12 = isHour12(value);\n }\n\n var names = NAME_TYPES[type];\n\n if (names) {\n var minLength = isNumber(names.minLength) ? names.minLength : names.minLength[specifier];\n var patternLength = value.length;\n\n if (patternLength >= minLength) {\n part.names = {\n type: names.type,\n nameType: dateNameType(patternLength),\n standAlone: names.standAlone === specifier\n };\n }\n }\n\n parts.push(part);\n }\n\n lastIndex = dateFormatRegExp.lastIndex;\n match = dateFormatRegExp.exec(pattern);\n }\n\n if (lastIndex < pattern.length) {\n addLiteral(parts, pattern.substring(lastIndex));\n }\n\n return parts;\n}\n","import { formatDate } from './dates';\nimport { formatNumber } from './numbers';\nimport { EMPTY } from './common/constants';\nimport isDate from './common/is-date';\nimport isNumber from './common/is-number';\n\nvar formatRegExp = /\\{(\\d+)(:[^}]+)?\\}/g;\n\nexport function toString(value, format, locale) {\n if (format) {\n if (isDate(value)) {\n return formatDate(value, format, locale);\n } else if (isNumber(value)) {\n return formatNumber(value, format, locale);\n }\n }\n\n return value !== undefined && value !== null ? value : EMPTY;\n}\n\nexport function format(format, values, locale) {\n return format.replace(formatRegExp, function(match, index, placeholderFormat) {\n var value = values[parseInt(index, 10)];\n\n return toString(value, placeholderFormat ? placeholderFormat.substring(1) : EMPTY, locale);\n });\n}\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-intl',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1697038821,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","import * as coreIntl from '@progress/kendo-intl';\nimport * as licensing from '@progress/kendo-licensing';\nimport { packageMetadata } from '../package-metadata';\n/* eslint-disable max-len */\n/**\n * A service which provides internationalization methods and is bound to a specific locale.\n */\nvar IntlService = /** @class */ (function () {\n /**\n * Creates a new instance of the internationalization service.\n *\n * @param locale - The locale that will be used by the internationalization methods.\n */\n function IntlService(locale) {\n this.locale = locale;\n if (typeof licensing !== 'undefined') {\n licensing.validatePackage(packageMetadata);\n }\n else {\n var message = \"License activation failed for \".concat(packageMetadata.name, \"\\n\");\n message += 'The @progress/kendo-licensing script is not loaded.\\n';\n message += \"See \".concat(packageMetadata.licensingDocsUrl, \" for more information.\\n\");\n console.warn(message);\n }\n if (locale === '' && process.env.NODE_ENV !== 'production') {\n throw 'Locale should not be empty string';\n }\n }\n /**\n * Formats a string with placeholders such as `Total amount {0:c}`.\n *\n * @param format - The format string.\n * @param values - One or more values to output in the format string placeholders.\n * @return - The formatted string.\n */\n IntlService.prototype.format = function (format) {\n var values = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n values[_i - 1] = arguments[_i];\n }\n /* The following code retains backward compatibility with the old API */\n if (values.length === 1 && Array.isArray(values[0])) {\n return coreIntl.format(format, values[0], this.locale);\n }\n return coreIntl.format(format, values, this.locale);\n };\n /**\n * Converts a `Date` object to a string based on the specified format. If no format is provided, the default short date format is used.\n *\n * @param value - The date which will be formatted.\n * @param format - The format string or options.\n * @return - The formatted date.\n */\n IntlService.prototype.formatDate = function (value, format) {\n return coreIntl.formatDate(value, format, this.locale);\n };\n /**\n * Converts an object to a string based on the specified format.\n *\n * @param value - The value which will be formatted.\n * @param format - The format to use.\n * @return - The formatted object.\n */\n IntlService.prototype.toString = function (value, format) {\n return coreIntl.toString(value, format, this.locale);\n };\n /**\n * Converts a string to a `Number`.\n *\n * @param value - The string which will be parsed.\n * @param format - The format string or options.\n * @return - The parsed number.\n */\n IntlService.prototype.parseNumber = function (value, format) {\n return coreIntl.parseNumber(value, this.locale, format);\n };\n /**\n * Converts a string to a `Date` object based on the specified format.\n *\n * @param value - The string which will be converted.\n * @param format - The format strings or options.\n * @return - The parsed date.\n */\n IntlService.prototype.parseDate = function (value, format) {\n return coreIntl.parseDate(value, format, this.locale);\n };\n /**\n * Converts a `Number` to a string based on the specified format.\n *\n * @param value - The number which will be formatted.\n * @param format - The format string or options.\n * @return - The formatted number.\n */\n IntlService.prototype.formatNumber = function (value, format) {\n return coreIntl.formatNumber(value, format, this.locale);\n };\n /**\n * Returns a localized date field name based on specific `dateFieldName` options.\n *\n * @param options - The detailed configuration for the desired date field name.\n * @returns - The localized date field name from the current locale based on the option.\n */\n IntlService.prototype.dateFieldName = function (options) {\n return coreIntl.dateFieldName(options, this.locale);\n };\n /**\n * Returns the day names from the current locale based on the option.\n *\n * @param options - The detailed configuration for the desired date format.\n * @return - The day names from the current locale based on the option.\n */\n IntlService.prototype.dateFormatNames = function (options) {\n return coreIntl.dateFormatNames(this.locale, options);\n };\n /**\n * Splits the date format into objects which contain information about each part of the pattern.\n *\n * @param format - The format string or options.\n * @returns - The date format parts.\n */\n IntlService.prototype.splitDateFormat = function (format) {\n return coreIntl.splitDateFormat(format, this.locale);\n };\n /**\n * Returns the number symbols from the current locale.\n *\n * @return - The number symbols from the current locale.\n */\n IntlService.prototype.numberSymbols = function () {\n return coreIntl.numberSymbols(this.locale);\n };\n /**\n * Returns the first day index, starting from Sunday.\n *\n * @return - The index of the first day of the week (0 == Sunday).\n */\n IntlService.prototype.firstDay = function () {\n return coreIntl.firstDay(this.locale);\n };\n /**\n * @hidden\n */\n IntlService.prototype.localeInfo = function () {\n return coreIntl.localeInfo(this.locale);\n };\n return IntlService;\n}());\nexport { IntlService };\n// tslint:enable:max-line-length\n","import { localeInfo } from './info';\nimport { errors } from '../errors';\nimport { DEFAULT_LOCALE } from '../common/constants';\n\nexport default function dateFieldName(options, locale) {\n if ( locale === void 0 ) locale = DEFAULT_LOCALE;\n\n var info = localeInfo(locale);\n var dateFields = info.calendar.dateFields;\n if (!dateFields) {\n throw errors.NoDateFieldNames.error();\n }\n\n var fieldNameInfo = dateFields[options.type] || {};\n\n return fieldNameInfo[options.nameType] || fieldNameInfo['wide'];\n}\n","import { getLocaleInfo } from './info';\n\nexport default function numberSymbols(locale) {\n var info = getLocaleInfo(locale);\n\n return info.numbers.symbols;\n}","/**\n * @hidden\n */\nexport var messages = Object.create({});\n","import { messages } from './messages';\n/**\n * A service which provides localization methods.\n */\nvar LocalizationService = /** @class */ (function () {\n function LocalizationService(language) {\n this.language = language;\n if (language === '' && process.env.NODE_ENV !== 'production') {\n throw 'Language should not be an empty string';\n }\n }\n /* eslint-disable max-len */\n /**\n * Provides a string based on a key for the current language. When no string for the current language is available under this key, the `defaultValue` is returned.\n *\n * @param key - The key which identifies the string for the current language.\n * @param defaultValue - The default value which will be returned when no string\n * for the current language is available under the key.\n * @return - The string for the current language.\n */\n // tslint:enable:max-line-length\n LocalizationService.prototype.toLanguageString = function (key, defaultValue) {\n if (this.language &&\n messages[this.language] &&\n messages[this.language].hasOwnProperty(key)) {\n return messages[this.language][key];\n }\n else {\n return defaultValue;\n }\n };\n return LocalizationService;\n}());\nexport { LocalizationService };\n","import * as React from 'react';\nimport { IntlService } from '../Intl/IntlService';\nimport { LocalizationService } from '../Localization/LocalizationService';\n/** @hidden */\nexport var GlobalizationContext = React.createContext({\n intl: new IntlService('en'),\n localization: new LocalizationService()\n});\n","import * as React from 'react';\nimport { GlobalizationContext } from '../globalization/GlobalizationContext';\n/**\n * A custom [React Hook](https://reactjs.org/docs/hooks-intro.html) providing access to an [IntlService]({% slug api_intl_intlservice %}).\n */\nexport var useInternationalization = function () { return React.useContext(GlobalizationContext).intl; };\n","import * as React from 'react';\nimport { GlobalizationContext } from '../globalization/GlobalizationContext';\n/**\n * A custom [React Hook](https://reactjs.org/docs/hooks-intro.html) providing access to an [LocalizationService]({% slug api_intl_localizationservice %}).\n */\nexport var useLocalization = function () { return React.useContext(GlobalizationContext).localization; };\n","import { IntlService } from './Intl/IntlService';\nimport { LocalizationService } from './Localization/LocalizationService';\nimport { GlobalizationContext } from './globalization/GlobalizationContext';\n/* eslint-disable max-len */\n/**\n * Provides an internationalization service. When the passed component is a direct or indirect child of `IntlProvider`, the returned service uses the locale of the provider. Otherwise, uses `en` as a default locale. To handle locale changes, call the method on each `render`.\n *\n * @param componentClass - The React component class that will use the internationalization service.\n */\nexport function provideIntlService(component) {\n if (!component && process.env.NODE_ENV !== 'production') {\n throw \"Passed component - \".concat(component, \" is invalid.\");\n }\n var context = component.context;\n return context && context.intl\n ? context.intl\n : new IntlService('en');\n}\n/**\n * Provides a localization service. When the passed component is a direct or indirect child of `LocalizationProvider`, the returned service uses the language of the provider. To handle locale changes, call the method on each `render`.\n *\n * @param componentClass - The React component class that will use the internationalization service.\n */\nexport function provideLocalizationService(component) {\n if (!component && process.env.NODE_ENV !== 'production') {\n throw \"Passed component - \".concat(component, \" is invalid.\");\n }\n var context = component.context;\n return context && context.localization\n ? context.localization\n : new LocalizationService();\n}\n/**\n * A method which registers a component class or a functional stateless component for internationalization. When a component of that type is a direct or indirect child of `IntlProvider`, the locale of the provider is used. Otherwise, uses `en` as a default locale.\n *\n * @param component - The React component class that will use the internationalization methods.\n */\nexport function registerForIntl(component) {\n component.contextType = GlobalizationContext;\n}\n/**\n * A method which registers a component class or a stateless functional component for localization. When a component of that type is a direct or indirect child of `LocalizationProvider`, the language of the provider is used.\n *\n * @param component - The React component class that will use the internationalization methods.\n */\nexport function registerForLocalization(component) {\n component.contextType = GlobalizationContext;\n}\n// tslint:enable:max-line-length\n","var _a;\n/**\n * @hidden\n */\nexport var labelsOptional = 'labels.optional';\n/**\n * @hidden\n */\nexport var messages = (_a = {},\n _a[labelsOptional] = '(Optional)',\n _a);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\nimport { provideLocalizationService, registerForLocalization } from '@progress/kendo-react-intl';\nimport { labelsOptional, messages } from './messages';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from './package-metadata';\n/**\n * Represents the KendoReact FloatingLabel component.\n *\n * @example\n * ```jsx\n * const sizes = [\"X-Small\", \"Small\", \"Medium\", \"Large\", \"X-Large\", \"2X-Large\"];\n * const App = () => {\n * const [ddlState, setDdlState] = React.useState();\n * const editorId = 'ddl-sizes';\n * return (\n * \n * setDdlState(e.target.value)}\n * />\n * \n * );\n * };\n *\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar FloatingLabel = /** @class */ (function (_super) {\n __extends(FloatingLabel, _super);\n function FloatingLabel(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.state = {\n focused: false\n };\n /**\n * @hidden\n */\n _this.handleFocus = function (_) {\n _this.setState({ focused: true });\n };\n /**\n * @hidden\n */\n _this.handleBlur = function (_) {\n _this.setState({ focused: false });\n };\n validatePackage(packageMetadata);\n return _this;\n }\n /**\n * @hidden\n */\n FloatingLabel.prototype.render = function () {\n var _a = this.props, label = _a.label, editorId = _a.editorId, className = _a.className, labelClassName = _a.labelClassName, editorValue = _a.editorValue, editorPlaceholder = _a.editorPlaceholder, editorValid = _a.editorValid, editorDisabled = _a.editorDisabled, style = _a.style, id = _a.id, optional = _a.optional;\n var localizationService = provideLocalizationService(this);\n var localizedOptional = optional ? localizationService\n .toLanguageString(labelsOptional, messages[labelsOptional]) : '';\n var optionalElement = localizedOptional && (React.createElement(\"span\", { className: 'k-label-optional' }, localizedOptional));\n var spanClassNames = classNames({\n 'k-floating-label-container': true,\n 'k-focus': this.state.focused,\n 'k-empty': !editorPlaceholder && !editorValue && (editorValue !== 0),\n 'k-text-disabled': editorDisabled,\n 'k-rtl': this.props.dir === 'rtl'\n }, className);\n var labelClassNames = classNames({\n 'k-label': true,\n 'k-text-error': editorValid === false,\n 'k-text-disabled': editorDisabled\n }, labelClassName);\n return (React.createElement(\"span\", { id: this.props.id, className: spanClassNames, onFocus: this.handleFocus, onBlur: this.handleBlur, style: style, dir: this.props.dir },\n this.props.children,\n label\n ? editorId\n ? React.createElement(\"label\", { id: id, htmlFor: editorId, className: labelClassNames },\n label,\n optionalElement)\n : React.createElement(\"span\", { id: id, className: labelClassNames },\n label,\n optionalElement)\n : null));\n };\n /**\n * @hidden\n */\n FloatingLabel.propTypes = {\n label: PropTypes.string,\n editorId: PropTypes.string,\n editorValue: PropTypes.oneOfType([PropTypes.string, PropTypes.bool, PropTypes.number]),\n editorPlaceholder: PropTypes.string,\n editorValid: PropTypes.bool,\n editorDisabled: PropTypes.bool,\n id: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n labelClassName: PropTypes.string,\n optional: PropTypes.bool\n };\n return FloatingLabel;\n}(React.Component));\nexport { FloatingLabel };\nregisterForLocalization(FloatingLabel);\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-labels',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1697039265,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-layout',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1697039042,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","import * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * The KendoReact ActionSheetItem component.\n */\nexport var ActionSheetItem = function (props) {\n var itemRef = React.useRef(null);\n var onClick = React.useCallback(function (event) {\n if (props.onClick) {\n props.onClick.call(undefined, {\n syntheticEvent: event,\n item: props.item,\n title: props.title\n });\n }\n }, [props.item, props.title, props.onClick]);\n React.useEffect(function () {\n if (itemRef.current && props.focused) {\n itemRef.current.focus();\n }\n }, [props.focused]);\n return (React.createElement(\"span\", { style: props.style, tabIndex: props.tabIndex, className: classNames('k-actionsheet-item', 'k-cursor-pointer', props.disabled && 'k-disabled', props.className), ref: itemRef, role: \"button\", \"aria-disabled\": props.disabled, onClick: onClick },\n React.createElement(\"span\", { className: \"k-actionsheet-action\" },\n props.icon && React.createElement(\"span\", { className: \"k-icon-wrap\" }, props.icon),\n (props.title || props.description) && (React.createElement(\"span\", { className: \"k-actionsheet-item-text\" },\n props.title && React.createElement(\"span\", { className: \"k-actionsheet-item-title\" }, props.title),\n props.description && React.createElement(\"span\", { className: \"k-actionsheet-item-description\" }, props.description))))));\n};\nActionSheetItem.propTypes = {\n className: PropTypes.string,\n style: PropTypes.object,\n description: PropTypes.string,\n disabled: PropTypes.bool,\n group: PropTypes.oneOf(['top', 'bottom']),\n icon: PropTypes.element,\n title: PropTypes.string\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Animation } from '@progress/kendo-react-animation';\nimport { validatePackage, Navigation, FOCUSABLE_ELEMENTS, classNames } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { ActionSheetItem } from './ActionSheetItem';\nimport { headerDisplayName } from './ActionSheetHeader';\nimport { footerDisplayName } from './ActionSheetFooter';\nimport { contentDisplayName } from './ActionSheetContent';\n/**\n * Represents the [KendoReact ActionSheet]({% slug overview_actionsheet %}) component.\n */\nvar ActionSheet = /** @class */ (function (_super) {\n __extends(ActionSheet, _super);\n /** @hidden */\n function ActionSheet(props) {\n var _this = _super.call(this, props) || this;\n _this.actionSheetRef = React.createRef();\n _this.actionSheetTitleClass = 'k-actionsheet-title';\n _this.ariaLabeledBy = _this.actionSheetTitleClass + 1;\n _this.animationDuration = 300;\n _this.bottomPosition = { bottom: '0', width: '100%' };\n _this.handleKeyDown = function (e) {\n if (_this.props.navigatable) {\n _this.navigation.triggerKeyboardEvent(e);\n }\n };\n _this.onTab = function (target, nav, ev) {\n ev.preventDefault();\n if (ev.shiftKey) {\n nav.focusPrevious(target);\n }\n else {\n nav.focusNext(target);\n }\n };\n _this.handleOverlayClick = function (ev) {\n /** Deprecated */\n if (_this.props.onOverlayClick) {\n _this.props.onOverlayClick.call(undefined, ev);\n }\n if (_this.props.onClose) {\n _this.props.onClose.call(undefined, ev);\n }\n if (!_this.props.animation) {\n _this.hideActionSheet();\n }\n };\n _this.handleItemClick = function (ev) {\n /** Deprecated */\n if (_this.props.onItemClick) {\n _this.props.onItemClick.call(undefined, ev);\n }\n if (_this.props.onItemSelect) {\n _this.props.onItemSelect.call(undefined, ev);\n }\n if (!_this.props.animation) {\n _this.hideActionSheet();\n }\n };\n _this.onEnter = function (target, nav, ev) {\n if (target.ariaDisabled) {\n return;\n }\n var isItem = target.className && target.className.indexOf\n ? target.className.indexOf('k-actionsheet-item') !== -1\n : false;\n var allItems = nav.elements.filter(function (e) { return e.className.indexOf('k-actionsheet-item') !== -1; });\n /** Deprecated */\n if (isItem && _this.props.onItemClick) {\n ev.preventDefault();\n var item = _this.props.items[allItems.indexOf(target)];\n _this.props.onItemClick.call(undefined, {\n syntheticEvent: ev,\n item: item,\n title: item && item.title\n });\n }\n if (isItem && _this.props.onItemSelect) {\n ev.preventDefault();\n var item = _this.props.items[allItems.indexOf(target)];\n _this.props.onItemSelect.call(undefined, {\n syntheticEvent: ev,\n item: item,\n title: item && item.title\n });\n }\n if (!_this.props.animation) {\n _this.hideActionSheet();\n }\n };\n _this.onEscape = function (_target, _nav, ev) {\n /** Deprecated */\n if (_this.props.onOverlayClick) {\n ev.preventDefault();\n _this.props.onOverlayClick.call(undefined, ev);\n }\n if (_this.props.onClose) {\n ev.preventDefault();\n _this.props.onClose.call(undefined, ev);\n }\n if (!_this.props.animation) {\n _this.hideActionSheet();\n }\n };\n _this.hideActionSheet = function () {\n _this.setState({ show: false });\n };\n _this.children = function (children) {\n var components = {};\n React.Children.forEach(children, function (child) {\n if (child) {\n components[child.type.displayName] = child;\n }\n ;\n });\n return components;\n };\n _this.state = {\n show: false,\n slide: false\n };\n validatePackage(packageMetadata);\n return _this;\n }\n /** @hidden */\n ActionSheet.prototype.componentDidMount = function () {\n if (this.props.expand && !this.state.show) {\n this.setState({ show: true });\n }\n };\n /** @hidden */\n ActionSheet.prototype.componentDidUpdate = function (_prevProps, prevState) {\n var _this = this;\n var currentRef = this.actionSheetRef.current;\n if (this.props.expand && !this.state.show) {\n this.setState({ show: true });\n }\n if (this.props.expand && this.state.show && !this.state.slide) {\n this.setState({ slide: true });\n }\n if (!this.props.expand && this.state.show && this.state.slide) {\n this.setState({ slide: false });\n }\n if (prevState !== this.state && this.state.slide && currentRef && !this.props.className) {\n currentRef.style.setProperty('--kendo-actionsheet-height', 'auto');\n currentRef.style.setProperty('--kendo-actionsheet-max-height', 'none');\n }\n if (currentRef) {\n if (this.props.navigatable) {\n var innerElements = [\n '.k-actionsheet-footer',\n '.k-actionsheet-content',\n '.k-actionsheet-titlebar'\n ].map(function (selector) {\n return FOCUSABLE_ELEMENTS.concat(_this.props.navigatableElements).map(function (focusableSelector) { return \"\".concat(selector, \" \").concat(focusableSelector); });\n });\n var selectors = __spreadArray([\n '.k-actionsheet-item'\n ], innerElements.flat(), true);\n this.navigation = new Navigation({\n tabIndex: this.props.tabIndex || 0,\n root: this.actionSheetRef,\n rovingTabIndex: false,\n selectors: selectors,\n keyboardEvents: {\n keydown: {\n 'Tab': this.onTab,\n 'Enter': this.onEnter,\n 'Escape': this.onEscape\n }\n }\n });\n this.navigation.focusElement(this.navigation.first, null);\n }\n }\n };\n ;\n /** @hidden */\n ActionSheet.prototype.render = function () {\n var _this = this;\n var _a = this.props, title = _a.title, subTitle = _a.subTitle, animationStyles = _a.animationStyles, animation = _a.animation, expand = _a.expand, tabIndex = _a.tabIndex, items = _a.items;\n var topGroupItems = items === null || items === void 0 ? void 0 : items.filter(function (item) { return !item.group || item.group === 'top'; });\n var bottomGroupItems = items === null || items === void 0 ? void 0 : items.filter(function (item) { return item.group === 'bottom'; });\n var shouldRenderSeparator = (topGroupItems && topGroupItems.length > 0) && (bottomGroupItems && bottomGroupItems.length > 0);\n var children = this.children(this.props.children);\n var animationDuration = this.props.animationDuration || this.animationDuration;\n var actionSheetPanel = this.state.slide && React.createElement(\"div\", { className: classNames('k-actionsheet', this.props.className, {\n 'k-actionsheet-bottom': !this.props.className\n }), role: \"dialog\", \"aria-modal\": \"true\", \"aria-hidden\": false, \"aria-labelledby\": this.ariaLabeledBy, ref: this.actionSheetRef, onKeyDown: this.handleKeyDown },\n (children[headerDisplayName] && !title && !subTitle) && children[headerDisplayName],\n (title || subTitle) && (React.createElement(\"div\", { className: \"k-actionsheet-titlebar k-text-center\" },\n React.createElement(\"div\", { className: \"k-actionsheet-titlebar-group k-hbox\" },\n React.createElement(\"div\", { className: this.actionSheetTitleClass, id: this.ariaLabeledBy },\n title && React.createElement(\"div\", null, title),\n subTitle && React.createElement(\"div\", { className: \"k-actionsheet-subtitle\" }, subTitle))))),\n children[contentDisplayName] || React.createElement(\"div\", { className: \"k-actionsheet-content\" },\n React.createElement(\"div\", { className: \"k-list-ul\", role: \"group\" }, topGroupItems && topGroupItems.map(function (item, idx) {\n return (React.createElement(ActionSheetItem, __assign({}, item, { id: idx, key: idx, item: item, tabIndex: tabIndex || 0, onClick: _this.handleItemClick })));\n })),\n shouldRenderSeparator && React.createElement(\"hr\", { className: \"k-hr\" }),\n React.createElement(\"div\", { className: \"k-list-ul\", role: \"group\" }, bottomGroupItems && bottomGroupItems.map(function (item, idx) {\n return (React.createElement(ActionSheetItem, __assign({}, item, { id: idx + ((topGroupItems === null || topGroupItems === void 0 ? void 0 : topGroupItems.length) || 0), key: idx, item: item, tabIndex: tabIndex || 0, onClick: _this.handleItemClick })));\n }))),\n children[footerDisplayName]);\n return (React.createElement(React.Fragment, null, expand || this.state.show ? (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: \"k-actionsheet-container\" },\n React.createElement(\"div\", { className: \"k-overlay\", onClick: this.handleOverlayClick }),\n animation ? React.createElement(Animation, { transitionName: this.state.slide ? 'slide-up' : 'slide-down', onExited: this.hideActionSheet, transitionEnterDuration: animationDuration, transitionExitDuration: animationDuration, animationEnteringStyle: animationStyles || this.bottomPosition, animationEnteredStyle: animationStyles || this.bottomPosition, animationExitingStyle: animationStyles || this.bottomPosition, exit: true, enter: true, appear: false }, actionSheetPanel)\n : actionSheetPanel)))\n : null));\n };\n ;\n /** @hidden */\n ActionSheet.displayName = 'KendoReactActionSheet';\n /** @hidden */\n ActionSheet.propTypes = {\n items: PropTypes.array,\n subTitle: PropTypes.string,\n title: PropTypes.string,\n navigatable: PropTypes.bool,\n navigatableElements: PropTypes.array\n };\n /** @hidden */\n ActionSheet.defaultProps = {\n navigatable: true,\n navigatableElements: []\n };\n return ActionSheet;\n}(React.Component));\nexport { ActionSheet };\n;\n","import * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nexport var contentDisplayName = 'ActionSheetContent';\n/**\n * The KendoReact ActionSheetContent component.\n */\nexport var ActionSheetContent = function (props) {\n return (React.createElement(\"div\", { className: classNames('k-actionsheet-content', props.className) }, props.children));\n};\nActionSheetContent.propTypes = {\n className: PropTypes.string\n};\n/**\n * @hidden\n */\nActionSheetContent.displayName = contentDisplayName;\n/**\n * @hidden\n */\nActionSheetContent.propTypes = {\n children: PropTypes.any\n};\n","import * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nexport var footerDisplayName = 'ActionSheetFooter';\n/**\n * The KendoReact ActionSheetFooter component.\n */\nexport var ActionSheetFooter = function (props) {\n return (React.createElement(\"div\", { className: classNames('k-actionsheet-footer', props.className) }, props.children));\n};\nActionSheetFooter.propTypes = {\n className: PropTypes.string\n};\n/**\n * @hidden\n */\nActionSheetFooter.displayName = footerDisplayName;\n/**\n * @hidden\n */\nActionSheetFooter.propTypes = {\n children: PropTypes.any\n};\n","import * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nexport var headerDisplayName = 'ActionSheetHeader';\n/**\n * The KendoReact ActionSheetHeader component.\n */\nexport var ActionSheetHeader = function (props) {\n return (React.createElement(\"div\", { className: classNames('k-actionsheet-titlebar', props.className) }, props.children));\n};\nActionSheetHeader.propTypes = {\n className: PropTypes.string\n};\n/**\n * @hidden\n */\nActionSheetHeader.displayName = headerDisplayName;\n/**\n * @hidden\n */\nActionSheetHeader.propTypes = {\n children: PropTypes.any\n};\n","var clearSlide = function (element) {\n element.style.transitionDuration = '';\n Array.from(element.classList).forEach(function (c) {\n if (c.startsWith('k-slide-')) {\n element.classList.remove(c);\n }\n });\n};\nvar firefox = typeof window !== 'undefined' &&\n /Firefox/.test(window.navigator.userAgent);\n/**\n * @hidden\n */\nexport var slide = function (element, direction, duration, type, callback) {\n if (duration === 0) {\n return callback();\n }\n var slideClass = 'k-slide-' + direction + '-' + type;\n var slideActiveClass = slideClass + '-active';\n var transitionend = function (e) {\n // if event is attached using react,\n // the animation does not work well in firefox,\n // when the show/hide button is toggled quickly.\n if (e.target === element) {\n element.removeEventListener('transitionend', transitionend);\n clearSlide(element);\n if (type === 'exit') {\n element.style.display = 'none';\n }\n else {\n element.style.display = '';\n }\n callback();\n }\n };\n element.addEventListener('transitionend', transitionend);\n var ownerDocument = element.ownerDocument;\n if (!ownerDocument) {\n return;\n }\n var defaultView = ownerDocument.defaultView;\n if (!defaultView) {\n return;\n }\n var animate = function () {\n clearSlide(element);\n element.classList.add(slideClass);\n defaultView.requestAnimationFrame(function () {\n element.style.transitionDuration = duration + 'ms';\n element.classList.add(slideActiveClass);\n });\n };\n if (firefox) {\n defaultView.requestAnimationFrame(animate);\n }\n else {\n animate();\n }\n};\n","export default {\n \"bottom\": \"bottom\",\n \"center\": \"center\",\n \"middle\": \"middle\",\n \"left\": \"left\",\n \"right\": \"right\",\n \"top\": \"top\"\n};\n","import point from './align-point';\n\nvar align = function (options) {\n var anchorRect = options.anchorRect;\n var anchorAlign = options.anchorAlign;\n var elementRect = options.elementRect;\n var elementAlign = options.elementAlign;\n var margin = options.margin; if ( margin === void 0 ) margin = {};\n var anchorHorizontal = anchorAlign.horizontal;\n var anchorVertical = anchorAlign.vertical;\n var elementHorizontal = elementAlign.horizontal;\n var elementVertical = elementAlign.vertical;\n\n var horizontalMargin = margin.horizontal || 0;\n var verticalMargin = margin.vertical || 0;\n\n var top = anchorRect.top;\n var left = anchorRect.left;\n\n if (anchorVertical === point.bottom) {\n top += anchorRect.height;\n }\n\n if (anchorVertical === point.center || anchorVertical === point.middle) {\n top += Math.round(anchorRect.height / 2);\n }\n\n if (elementVertical === point.bottom) {\n top -= elementRect.height;\n verticalMargin *= -1;\n }\n\n if (elementVertical === point.center || elementVertical === point.middle) {\n top -= Math.round(elementRect.height / 2);\n verticalMargin *= -1;\n }\n\n if (anchorHorizontal === point.right) {\n left += anchorRect.width;\n }\n\n if (anchorHorizontal === point.center || anchorHorizontal === point.middle) {\n left += Math.round(anchorRect.width / 2);\n }\n\n if (elementHorizontal === point.right) {\n left -= elementRect.width;\n horizontalMargin *= -1;\n }\n\n if (elementHorizontal === point.center || elementHorizontal === point.middle) {\n left -= Math.round(elementRect.width / 2);\n horizontalMargin *= -1;\n }\n\n return {\n top: top + verticalMargin,\n left: left + horizontalMargin\n };\n};\n\nexport default align;\n","export default {\n \"fit\": \"fit\",\n \"flip\": \"flip\",\n \"none\": \"none\"\n};\n","import alignPoint from './align-point';\nimport collision from './collision';\n\nvar fit = function(position, size, viewPortSize) {\n var output = 0;\n\n if (position + size > viewPortSize) {\n output = viewPortSize - (position + size);\n }\n\n if (position < 0) {\n output = -position;\n }\n\n return output;\n};\n\nvar flip = function(ref) {\n var offset = ref.offset;\n var size = ref.size;\n var anchorSize = ref.anchorSize;\n var viewPortSize = ref.viewPortSize;\n var anchorAlignPoint = ref.anchorAlignPoint;\n var elementAlignPoint = ref.elementAlignPoint;\n var margin = ref.margin;\n\n var output = 0;\n\n var isPositionCentered = elementAlignPoint === alignPoint.center || elementAlignPoint === alignPoint.middle;\n var isOriginCentered = anchorAlignPoint === alignPoint.center || anchorAlignPoint === alignPoint.middle;\n var marginToAdd = 2 * margin; //2x to keep margin after flip\n\n if (elementAlignPoint !== anchorAlignPoint && !isPositionCentered && !isOriginCentered) {\n var isBeforeAnchor = anchorAlignPoint === alignPoint.top || anchorAlignPoint === alignPoint.left;\n if (offset < 0 && isBeforeAnchor) {\n output = size + anchorSize + marginToAdd;\n if (offset + output + size > viewPortSize) {\n output = 0; //skip flip\n }\n } else if (offset >= 0 && !isBeforeAnchor) {\n if (offset + size > viewPortSize) {\n output += -(anchorSize + size + marginToAdd);\n }\n\n if (offset + output < 0) {\n output = 0; //skip flip\n }\n }\n }\n\n return output;\n};\n\nvar restrictToView = function (options) {\n var anchorRect = options.anchorRect;\n var anchorAlign = options.anchorAlign;\n var elementRect = options.elementRect;\n var elementAlign = options.elementAlign;\n var collisions = options.collisions;\n var viewPort = options.viewPort;\n var margin = options.margin; if ( margin === void 0 ) margin = {};\n var elementTop = elementRect.top;\n var elementLeft = elementRect.left;\n var elementHeight = elementRect.height;\n var elementWidth = elementRect.width;\n var viewPortHeight = viewPort.height;\n var viewPortWidth = viewPort.width;\n var horizontalMargin = margin.horizontal || 0;\n var verticalMargin = margin.vertical || 0;\n\n var left = 0;\n var top = 0;\n\n var isVerticalFit = collisions.vertical === collision.fit;\n var isHorizontalFit = collisions.horizontal === collision.fit;\n var isVerticalFlip = collisions.vertical === collision.flip;\n var isHorizontalFlip = collisions.horizontal === collision.flip;\n\n if (isVerticalFit) {\n top += fit(elementTop, elementHeight, viewPortHeight);\n }\n\n if (isHorizontalFit) {\n left += fit(elementLeft, elementWidth, viewPortWidth);\n }\n\n if (isVerticalFlip) {\n top += flip({\n margin: verticalMargin,\n offset: elementTop,\n size: elementHeight,\n anchorSize: anchorRect.height,\n viewPortSize: viewPortHeight,\n anchorAlignPoint: anchorAlign.vertical,\n elementAlignPoint: elementAlign.vertical\n });\n }\n\n if (isHorizontalFlip) {\n left += flip({\n margin: horizontalMargin,\n offset: elementLeft,\n size: elementWidth,\n anchorSize: anchorRect.width,\n viewPortSize: viewPortWidth,\n anchorAlignPoint: anchorAlign.horizontal,\n elementAlignPoint: elementAlign.horizontal\n });\n }\n\n var flippedVertical = isVerticalFlip && top !== 0;\n var flippedHorizontal = isHorizontalFlip && left !== 0;\n var fittedVertical = isVerticalFit && top !== 0;\n var fittedHorizontal = isHorizontalFit && left !== 0;\n\n return {\n flipped: flippedHorizontal || flippedVertical,\n fitted: fittedVertical || fittedHorizontal,\n flip: {\n horizontal: flippedHorizontal,\n vertical: flippedVertical\n },\n fit: {\n horizontal: fittedHorizontal,\n vertical: fittedVertical\n },\n offset: {\n left: left,\n top: top\n }\n };\n};\n\nexport default restrictToView;\n","\nvar eitherRect = function (rect, offset) {\n if (!rect) {\n return { height: 0, left: offset.left, top: offset.top, width: 0 };\n }\n\n return rect;\n};\n\nvar scaleRect = function (rect, scale) {\n if (!rect || scale === 1) {\n return rect;\n }\n\n return {\n height: rect.height / scale,\n left: rect.left / scale,\n top: rect.top / scale,\n width: rect.width / scale\n };\n};\n\nvar removeStackingOffset = function (rect, stackingOffset) {\n if (!stackingOffset) { return rect; }\n\n var result = {\n height: rect.height,\n left: rect.left - stackingOffset.left,\n top: rect.top - stackingOffset.top,\n width: rect.width\n };\n\n return result;\n};\n\nfunction memoize(fun) {\n var result;\n var called = false;\n\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) {\n return result;\n }\n\n result = fun.apply(void 0, args);\n called = true;\n return result;\n };\n}\n\nvar hasRelativeStackingContext = memoize(function (elementSource) {\n if (!canUseDOM()) { return false; }\n\n // Component need to pass element to make sure document owner is correct.\n // This however might be performance hit if checked for example on each drag event.\n var currentDocument = elementSource ? elementSource.ownerDocument : document;\n\n if (!currentDocument || !currentDocument.body) { return false; }\n\n var top = 10;\n var parent = currentDocument.createElement(\"div\");\n parent.style.transform = \"matrix(10, 0, 0, 10, 0, 0)\";\n parent.innerHTML = \"
    child
    \";\n\n currentDocument.body.appendChild(parent);\n\n var isDifferent = parent.children[0].getBoundingClientRect().top !== top;\n\n currentDocument.body.removeChild(parent);\n\n return isDifferent;\n});\n\nvar canUseDOM = function () { return Boolean(\n // from fbjs\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n); };\n\nvar utils = {\n eitherRect: eitherRect,\n scaleRect: scaleRect,\n removeStackingOffset: removeStackingOffset,\n hasRelativeStackingContext: hasRelativeStackingContext,\n canUseDOM: canUseDOM\n};\n\nexport default utils;","export default function ownerDocument(element) {\n return element.ownerDocument || element.document || element;\n}\n","import ownerDocument from './owner-document';\n\nvar getWindow = function (element) { return ownerDocument(element).defaultView; };\n\nexport default getWindow;\n","import ownerDocument from './owner-document';\n\nvar getDocument = function (element) { return ownerDocument(element).documentElement; };\n\nexport default getDocument;\n","var cachedWidth = 0;\n\nexport default function scrollbarWidth() {\n if (!cachedWidth && typeof document !== 'undefined') {\n var div = document.createElement(\"div\");\n\n div.style.cssText = \"overflow:scroll;overflow-x:hidden;zoom:1;clear:both;display:block\";\n div.innerHTML = \" \";\n document.body.appendChild(div);\n\n cachedWidth = div.offsetWidth - div.scrollWidth;\n\n document.body.removeChild(div);\n }\n\n return cachedWidth;\n}\n","import wnd from './window';\nimport getDocument from './document';\nimport scrollbarWidth from './scrollbar-width';\n\nexport default function windowViewport(element) {\n var win = wnd(element);\n var document = getDocument(element);\n var result = {\n height: win.innerHeight,\n width: win.innerWidth\n };\n\n if (document.scrollHeight - document.clientHeight > 0) {\n result.width -= scrollbarWidth();\n }\n\n return result;\n}\n","import docElement from './document';\nimport wnd from './window';\n\nexport default function scrollPosition(element) {\n var documentElement = docElement(element);\n var win = wnd(element);\n\n return {\n x: win.pageXOffset || documentElement.scrollLeft || 0,\n y: win.pageYOffset || documentElement.scrollTop || 0\n };\n}\n","var rectOfHiddenElement = function (element) {\n var ref = element.style;\n var display = ref.display;\n var left = ref.left;\n var position = ref.position;\n\n element.style.display = '';\n element.style.left = '-10000px';\n element.style.position = 'absolute';\n\n var rect = element.getBoundingClientRect();\n\n element.style.display = display;\n element.style.left = left;\n element.style.position = position;\n\n return rect;\n};\n\nvar offset = function (element) {\n var rect = element.getBoundingClientRect();\n var left = rect.left;\n var top = rect.top;\n\n if (!rect.height && !rect.width) {\n rect = rectOfHiddenElement(element);\n }\n\n return {\n top: top,\n left: left,\n height: rect.height,\n width: rect.width\n };\n};\n\nexport default offset;\n","import scrollPosition from './scroll-position';\n\nexport default function (element) {\n if (element === (element.ownerDocument || {}).body) {\n return scrollPosition(element);\n }\n\n return {\n x: element.scrollLeft,\n y: element.scrollTop\n };\n};\n","import documentElement from './document';\n\nvar offsetParent = function (element) {\n var offsetParent = element.offsetParent;\n\n while (offsetParent && offsetParent.style.position === \"static\") {\n offsetParent = offsetParent.offsetParent;\n }\n\n return offsetParent || documentElement(element);\n};\n\nexport default offsetParent;\n","import elementScrollPosition from './element-scroll-position';\nimport parentScrollPosition from './parent-scroll-position';\n\nexport default function (offsetParentElement, element) { return ( // eslint-disable-line no-arrow-condition\n offsetParentElement ? elementScrollPosition(offsetParentElement) : parentScrollPosition(element)\n); };\n","import offsetParent from './offset-parent';\nimport elementScrollPosition from './element-scroll-position';\n\nexport default function parentScrollPosition(element) {\n var parent = offsetParent(element);\n\n return parent ? elementScrollPosition(parent) : { x: 0, y: 0 };\n}\n","import offsetParent from './offset-parent';\nimport offsetRect from './offset';\nimport wnd from './window';\n\nvar position = function (element, parent) {\n var win = wnd(element);\n var elementStyles = win.getComputedStyle(element);\n var offset = offsetRect(element);\n var parentElement = parent || offsetParent(element);\n\n var ownerDocument = element.ownerDocument;\n var useRelative = parentElement !== ownerDocument.body && parentElement !== ownerDocument.documentElement;\n\n var parentOffset = { top: 0, left: 0 };\n\n if (elementStyles.position !== \"fixed\" && useRelative) {\n var parentStyles = win.getComputedStyle(parentElement);\n\n parentOffset = offsetRect(parentElement);\n parentOffset.top += parseInt(parentStyles.borderTopWidth, 10);\n parentOffset.left += parseInt(parentStyles.borderLeftWidth, 10);\n }\n\n return {\n top: offset.top - parentOffset.top,\n left: offset.left - parentOffset.left,\n height: offset.height,\n width: offset.width\n };\n};\n\nexport default position;\n","export default function (element, until) {\n var result = [];\n var next = element.parentNode;\n\n while (next) {\n result.push(next);\n\n if (next === until) { break; }\n\n next = next.parentNode;\n }\n\n return result;\n};\n","export default function (element) {\n var result = [];\n\n var sibling = element.parentNode.firstElementChild;\n\n while (sibling) {\n if (sibling !== element) {\n result.push(sibling);\n }\n\n sibling = sibling.nextElementSibling;\n }\n return result;\n};\n","/* eslint-disable arrow-body-style */\nimport addScroll from \"./add-scroll\";\nimport align from './align';\nimport boundingOffset from './bounding-offset';\nimport utils from './utils';\nimport removeScroll from './remove-scroll';\nimport restrictToView from './restrict-to-view';\nimport scrollPosition from './scroll-position';\nimport offsetBase from './offset';\nimport positionWithScroll from './position-with-scroll';\nimport windowViewPort from './window-viewport';\nimport siblingContainer from './sibling-container';\nimport parents from './parents';\n\nvar STYLES = [\n 'font-size',\n 'font-family',\n 'font-stretch',\n 'font-style',\n 'font-weight',\n 'line-height'\n];\n\nvar addOffset = function (current, addition) {\n return {\n left: current.left + addition.left,\n top: current.top + addition.top\n };\n};\n\nvar getWindow = function () {\n return utils.canUseDOM() ? window : null;\n};\n\nvar getFontStyles = function (el) {\n var window = getWindow();\n\n if (!window || !el) { return []; }\n\n var computedStyles = window.getComputedStyle(el);\n\n return STYLES.map(function (font) { return ({ key: font, value: computedStyles[font] }); });\n};\n\nvar hasOffsetParent = function (el) {\n if (!el) { return false; }\n\n return Boolean(el.offsetParent);\n};\n\nvar offset = function (el) {\n if (!el) { return null; }\n\n return offsetBase(el);\n};\n\nvar offsetAtPoint = function (element, currentLocation) {\n if (!element) { return null; }\n\n var ref = element.style;\n var left = ref.left;\n var top = ref.top;\n var transition = ref.transition;\n\n element.style.transition = 'none';\n element.style.left = (currentLocation.left) + \"px\";\n element.style.top = (currentLocation.top) + \"px\";\n\n var currentOffset = offsetBase(element);\n\n element.style.left = left;\n element.style.top = top;\n\n // prevents elements with transition to be animated because of the change\n // tslint:disable-next-line:no-unused-expression\n element.offsetHeight;\n\n element.style.transition = transition;\n\n return currentOffset;\n};\n\nvar position = function (element, popupElement, scale) {\n if (!element || !popupElement) { return null; }\n\n var currentScale = scale || 1;\n\n return positionWithScroll(element, popupElement, currentScale);\n};\n\nvar OVERFLOW_REGEXP = /auto|scroll/;\n\nvar overflowElementStyle = function (element) {\n return (\"\" + (element.style.overflow) + (element.style.overflowX) + (element.style.overflowY));\n};\n\nvar overflowComputedStyle = function (element) {\n var styles = window.getComputedStyle(element);\n return (\"\" + (styles.overflow) + (styles.overflowX) + (styles.overflowY));\n};\n\nvar overflowStyle = function (element) {\n return overflowElementStyle(element) || overflowComputedStyle(element);\n};\n\nvar scrollableParents = function (element) {\n var parentElements = [];\n\n if (!utils.canUseDOM()) { return parentElements; }\n\n var parent = element.parentElement;\n\n while (parent) {\n if (OVERFLOW_REGEXP.test(overflowStyle(parent)) || parent.hasAttribute('data-scrollable')) {\n parentElements.push(parent);\n }\n\n parent = parent.parentElement;\n }\n\n parentElements.push(window);\n\n return parentElements;\n};\n\nvar getRelativeContextElement = function (el) {\n if (!el || !utils.hasRelativeStackingContext()) { return null; }\n\n var parent = el.parentElement;\n\n while (parent) {\n if (window.getComputedStyle(parent).transform !== 'none') {\n return parent;\n }\n parent = parent.parentElement;\n }\n\n return null;\n};\n\nvar stackingElementOffset = function (el) {\n var relativeContextElement = getRelativeContextElement(el);\n\n if (!relativeContextElement) { return null; }\n\n return offsetBase(relativeContextElement);\n};\n\nvar stackingElementScroll = function (el) {\n var relativeContextElement = getRelativeContextElement(el);\n\n if (!relativeContextElement) { return { x: 0, y: 0 }; }\n\n return {\n x: relativeContextElement.scrollLeft,\n y: relativeContextElement.scrollTop\n };\n};\n\nvar stackingElementViewPort = function (el) {\n var relativeContextElement = getRelativeContextElement(el);\n\n if (!relativeContextElement) { return null; }\n\n return {\n height: relativeContextElement.scrollHeight,\n width: relativeContextElement.scrollWidth\n };\n};\n\nvar useRelativePosition = function (el) {\n return Boolean(getRelativeContextElement(el));\n};\n\nvar zoomLevel = function () {\n if (!utils.canUseDOM()) { return 1; }\n\n return parseFloat((document.documentElement.clientWidth / window.innerWidth).toFixed(2)) || 1;\n};\n\nvar isZoomed = function () {\n return zoomLevel() > 1;\n};\n\nvar zIndex = function (anchor, container) {\n if (!anchor || !utils.canUseDOM()) { return null; }\n\n var sibling = siblingContainer(anchor, container);\n\n if (!sibling) { return null; }\n\n var result = [ anchor ].concat(parents(anchor, sibling)).reduce(\n function (index, p) {\n var zIndexStyle = p.style.zIndex || window.getComputedStyle(p).zIndex;\n var current = parseInt(zIndexStyle, 10);\n return current > index ? current : index;\n },\n 0\n );\n\n return result ? (result + 1) : null;\n};\n\nvar domUtils = {\n addOffset: addOffset,\n addScroll: addScroll,\n align: align,\n boundingOffset: boundingOffset,\n getFontStyles: getFontStyles,\n getWindow: getWindow,\n hasOffsetParent: hasOffsetParent,\n offset: offset,\n offsetAtPoint: offsetAtPoint,\n position: position,\n removeScroll: removeScroll,\n restrictToView: restrictToView,\n scrollPosition: scrollPosition,\n scrollableParents: scrollableParents,\n getRelativeContextElement: getRelativeContextElement,\n stackingElementOffset: stackingElementOffset,\n stackingElementScroll: stackingElementScroll,\n stackingElementViewPort: stackingElementViewPort,\n useRelativePosition: useRelativePosition,\n windowViewPort: windowViewPort,\n zoomLevel: zoomLevel,\n isZoomed: isZoomed,\n zIndex: zIndex\n};\n\nexport default domUtils;\n","export default function addScroll(rect, scroll) {\n return {\n top: rect.top + scroll.y,\n left: rect.left + scroll.x,\n height: rect.height,\n width: rect.width\n };\n}\n","import windowViewport from './window-viewport';\n\nvar boundingOffset = function (element) {\n if (!element.getBoundingClientRect) {\n var viewport = windowViewport(element);\n return {\n bottom: viewport.height,\n left: 0,\n right: viewport.width,\n top: 0\n };\n }\n\n var ref = element.getBoundingClientRect();\n var bottom = ref.bottom;\n var left = ref.left;\n var right = ref.right;\n var top = ref.top;\n\n return {\n bottom: bottom,\n left: left,\n right: right,\n top: top\n };\n};\n\nexport default boundingOffset;\n","import offsetParentScrollPosition from './offset-parent-scroll-position';\nimport offsetParent from './offset-parent';\nimport position from './position';\n\nexport default function (element, parent, scale) {\n if ( scale === void 0 ) scale = 1;\n\n var offsetParentElement = parent ? offsetParent(parent) : null;\n var ref = position(element, offsetParentElement);\n var top = ref.top;\n var left = ref.left;\n var height = ref.height;\n var width = ref.width;\n var ref$1 = offsetParentScrollPosition(offsetParentElement, element);\n var x = ref$1.x;\n var y = ref$1.y;\n var ownerDocument = element.ownerDocument;\n var positionScale = offsetParentElement === ownerDocument.body || offsetParentElement === ownerDocument.documentElement ? 1 : scale;\n\n return {\n top: top + y * positionScale,\n left: left + x * positionScale,\n height: height,\n width: width\n };\n};\n","export default function removeScroll(rect, scroll) {\n return {\n top: rect.top - scroll.y,\n left: rect.left - scroll.x,\n height: rect.height,\n width: rect.width\n };\n}\n","/* eslint-disable no-loop-func */\n\nimport parents from './parents';\nimport siblings from './siblings';\n\nexport default function (anchor, container) {\n var parentElements = parents(anchor);\n var containerElement = container;\n var siblingElements;\n var result;\n\n while (containerElement) {\n siblingElements = siblings(containerElement);\n\n result = parentElements.reduce(\n function (list, p) { return list.concat(siblingElements.filter(function (s) { return s === p; })); },\n []\n )[0];\n\n if (result) { break; }\n\n containerElement = containerElement.parentElement;\n }\n\n return result;\n};\n\n","/* eslint-disable arrow-body-style */\n\nimport utils from './utils';\nimport domUtils from \"./dom-utils\";\n\nvar absoluteRect = function (anchor, element, offset, scale) {\n var scrollPos = elementScrollPosition(anchor, element);\n var rect = utils.eitherRect(domUtils.offset(anchor), offset);\n var stackScale = 2 * scale;\n\n var stackScroll = domUtils.stackingElementScroll(element);\n if (scale !== 1 && stackScroll) {\n stackScroll.x /= stackScale;\n stackScroll.y /= stackScale;\n }\n\n var stackOffset = domUtils.stackingElementOffset(element);\n if (scale !== 1 && stackOffset) {\n stackOffset.left /= stackScale;\n stackOffset.top /= stackScale;\n }\n\n return domUtils.removeScroll(\n domUtils.addScroll(\n utils.removeStackingOffset(\n utils.scaleRect(rect, scale),\n stackOffset\n ),\n stackScroll\n ),\n scrollPos\n );\n};\n\nvar relativeRect = function (anchor, element, offset, scale) {\n var rect = utils.eitherRect(domUtils.position(anchor, element, scale), offset);\n return utils.scaleRect(rect, scale);\n};\n\nvar elementScrollPosition = function (anchor, element) {\n return anchor ? { x: 0, y: 0 } : domUtils.scrollPosition(element);\n};\n\nvar alignElement = function (settings) {\n var anchor = settings.anchor;\n var element = settings.element;\n var anchorAlign = settings.anchorAlign;\n var elementAlign = settings.elementAlign;\n var margin = settings.margin;\n var offset = settings.offset;\n var positionMode = settings.positionMode;\n var scale = settings.scale;\n\n var currentScale = scale || 1;\n var fixedMode = positionMode === 'fixed' || !domUtils.hasOffsetParent(element);\n var anchorRect = fixedMode ? absoluteRect(anchor, element, offset, currentScale) : relativeRect(anchor, element, offset, currentScale);\n var elementRect = utils.scaleRect(domUtils.offset(element), currentScale);\n\n var result = domUtils.align({\n anchorAlign: anchorAlign,\n anchorRect: anchorRect,\n elementAlign: elementAlign,\n elementRect: elementRect,\n margin: margin\n });\n\n return result;\n};\n\nexport default alignElement;\n","import utils from \"./utils\";\nimport domUtils from \"./dom-utils\";\n\nvar positionElement = function (settings) {\n var anchor = settings.anchor;\n var currentLocation = settings.currentLocation;\n var element = settings.element;\n var anchorAlign = settings.anchorAlign;\n var elementAlign = settings.elementAlign;\n var collisions = settings.collisions;\n var margin = settings.margin;\n var scale = settings.scale;\n\n var currentScale = scale || 1;\n var elementOffset = domUtils.offsetAtPoint(element, currentLocation);\n var elementRect = utils.scaleRect(elementOffset, currentScale);\n var anchorOffset = utils.scaleRect(domUtils.offset(anchor), currentScale);\n var anchorRect = utils.eitherRect(anchorOffset, currentLocation);\n\n var viewPort = settings.viewPort || domUtils.windowViewPort(element);\n viewPort.width = viewPort.width / currentScale;\n viewPort.height = viewPort.height / currentScale;\n\n var result = domUtils.restrictToView({\n anchorAlign: anchorAlign,\n anchorRect: anchorRect,\n collisions: collisions,\n elementAlign: elementAlign,\n elementRect: elementRect,\n margin: margin,\n viewPort: viewPort\n });\n\n var offset = domUtils.addOffset(currentLocation, result.offset);\n\n return {\n flip: result.flip,\n flipped: result.flipped,\n fit: result.fit,\n fitted: result.fitted,\n offset: offset\n };\n};\n\nexport default positionElement;","/**\n * @hidden\n */\nexport var isDifferentOffset = function (oldOffset, newOffset) {\n var oldLeft = oldOffset.left, oldTop = oldOffset.top;\n var newLeft = newOffset.left, newTop = newOffset.top;\n return Math.abs(oldLeft - newLeft) >= 1 || Math.abs(oldTop - newTop) >= 1;\n};\n/**\n * @hidden\n */\nexport var hasBoundingRect = function (elem) { return !!elem.getBoundingClientRect; };\n/**\n * @hidden\n */\nexport var FRAME_DURATION = 1000 / 60; // 1000ms divided by 60fps\n/**\n * @hidden\n */\nexport var throttle = function (func, wait, options) {\n if (options === void 0) { options = {}; }\n var timeout, context, args, result;\n var previous = 0;\n options = options || {};\n var later = function () {\n previous = options.leading === false ? 0 : new Date().getTime();\n timeout = undefined;\n result = func.apply(context, args);\n if (!timeout) {\n context = args = null;\n }\n };\n var throttled = function () {\n var now = new Date().getTime();\n if (!previous && options.leading === false) {\n previous = now;\n }\n var remaining = wait - (now - previous);\n context = undefined; // this\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = undefined;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) {\n context = args = null;\n }\n }\n else if (!timeout && options.trailing !== false) {\n timeout = window.setTimeout(later, remaining);\n }\n return result;\n };\n return throttled;\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport * as PropTypes from 'prop-types';\nimport { slide } from './animation';\nimport { canUseDOM, ZIndexContext, validatePackage, classNames } from '@progress/kendo-react-common';\nimport { AlignPoint, alignElement, domUtils, positionElement, Collision as CollisionEnum } from '@progress/kendo-popup-common';\nimport { throttle, FRAME_DURATION } from './util';\nimport { packageMetadata } from './package-metadata';\nvar DEFAULT_POPUP_ZINDEX = 100;\nvar ZINDEX_POPUP_STEP = 1;\nfunction isEquivalent(a, b) {\n if (a === b) {\n return true;\n }\n if (!!a !== !!b) {\n return false;\n }\n var aProps = Object.getOwnPropertyNames(a);\n var bProps = Object.getOwnPropertyNames(b);\n if (aProps.length !== bProps.length) {\n return false;\n }\n for (var i = 0; i < aProps.length; i++) {\n var propName = aProps[i];\n if (a[propName] !== b[propName]) {\n return false;\n }\n }\n return true;\n}\nvar DEFAULT_OFFSET = {\n left: -1000,\n top: 0\n};\nvar Status;\n(function (Status) {\n Status[\"hiding\"] = \"hiding\";\n Status[\"hidden\"] = \"hidden\";\n Status[\"showing\"] = \"showing\";\n Status[\"shown\"] = \"shown\";\n Status[\"reposition\"] = \"reposition\";\n})(Status || (Status = {}));\nvar ANIMATION_CONTAINER = 'k-animation-container';\nvar ANIMATION_CONTAINER_SHOWN = 'k-animation-container-shown';\nvar ANIMATION_CONTAINER_CHILD = 'k-child-animation-container';\nvar K_POPUP = 'k-popup';\n/**\n * @hidden\n */\nvar PopupWithoutContext = /** @class */ (function (_super) {\n __extends(PopupWithoutContext, _super);\n function PopupWithoutContext(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.context = 0;\n /**\n * @hidden\n */\n _this.state = { current: Status.hidden, previous: Status.hidden, props: {} };\n _this._popup = null;\n _this.show = function (popup) {\n _this.setPosition(popup);\n _this.animate(popup.firstChild, 'enter', _this.onOpened);\n _this.setState({ current: Status.shown, previous: _this.state.current });\n };\n _this.setPosition = function (popup) {\n var _a = _this.props, anchorAlign = _a.anchorAlign, popupAlign = _a.popupAlign, collision = _a.collision, offset = _a.offset, anchor = _a.anchor, margin = _a.margin, scale = _a.scale, positionMode = _a.positionMode;\n var _b = popup.style, width = _b.width, height = _b.height;\n // Calculations are wrong if popup does not have set size\n popup.style.width = popup.offsetWidth + 'px';\n popup.style.height = popup.offsetHeight + 'px';\n var alignedOffset = alignElement({\n anchor: anchor,\n anchorAlign: anchorAlign,\n element: popup,\n elementAlign: popupAlign,\n offset: offset,\n margin: margin,\n positionMode: positionMode,\n scale: scale\n });\n var position = positionElement({\n anchor: anchor,\n anchorAlign: anchorAlign,\n element: popup,\n elementAlign: popupAlign,\n collisions: collision,\n currentLocation: alignedOffset,\n margin: _this.props.margin\n });\n popup.style.top = position.offset.top + 'px';\n popup.style.left = position.offset.left + 'px';\n popup.style.width = width;\n popup.style.height = height;\n _this._collisions = {\n fit: position.fit,\n fitted: position.fitted,\n flip: position.flip,\n flipped: position.flipped\n };\n if (_this.props.onPosition) {\n var event_1 = {\n target: _this,\n flipped: position.flipped,\n fitted: position.fitted\n };\n _this.props.onPosition.call(undefined, event_1);\n }\n };\n _this.onOpened = function () {\n var element = _this._popup;\n if (!element) {\n return;\n }\n if (_this.props.show) {\n element.classList.add(ANIMATION_CONTAINER_SHOWN);\n }\n _this.attachRepositionHandlers(element);\n if (_this.props.onOpen) {\n _this.props.onOpen.call(undefined, { target: _this });\n }\n };\n _this.animate = function (element, type, callback) {\n if (!_this.props.popupAlign) {\n return;\n }\n var animationDirection;\n var _a = _this.props.popupAlign, horizontal = _a.horizontal, vertical = _a.vertical;\n if (horizontal === 'left' && vertical === 'center') {\n animationDirection = 'right';\n }\n else if (horizontal === 'right' && vertical === 'center') {\n animationDirection = 'left';\n }\n else if (vertical === 'top') {\n animationDirection = 'down';\n }\n else {\n animationDirection = 'up';\n }\n var flipPositions = {\n down: 'up',\n up: 'down',\n left: 'right',\n right: 'left'\n };\n if (_this._collisions && _this._collisions.flipped) {\n animationDirection = flipPositions[animationDirection];\n }\n slide(element, animationDirection, _this.animationDuration[type], type, callback);\n };\n _this.onClosing = function (popup) {\n if (!_this.props.show) {\n popup.classList.remove(ANIMATION_CONTAINER_SHOWN);\n }\n _this.detachRepositionHandlers();\n };\n _this.onClosed = function () {\n if (_this.state.current === Status.hiding && _this.state.previous === Status.shown) {\n _this.setState({ current: Status.hidden, previous: _this.state.current });\n }\n if (_this.props.onClose) {\n _this.props.onClose.call(undefined, { target: _this });\n }\n };\n _this.getCurrentZIndex = function () {\n return _this.context ? _this.context + ZINDEX_POPUP_STEP : DEFAULT_POPUP_ZINDEX;\n };\n validatePackage(packageMetadata);\n _this.reposition = throttle(_this.reposition.bind(_this), FRAME_DURATION);\n return _this;\n }\n Object.defineProperty(PopupWithoutContext.prototype, \"element\", {\n /**\n * Represents the Popup DOM element.\n */\n get: function () {\n return this._popup;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n PopupWithoutContext.getDerivedStateFromProps = function (props, state) {\n var show = props.show, anchor = props.anchor, anchorAlign = props.anchorAlign, appendTo = props.appendTo, collision = props.collision, popupAlign = props.popupAlign, className = props.className, popupClass = props.popupClass, style = props.style, offset = props.offset, contentKey = props.contentKey;\n var nextState = __assign(__assign({}, state), { props: {\n show: show,\n anchor: anchor,\n anchorAlign: anchorAlign,\n appendTo: appendTo,\n collision: collision,\n popupAlign: popupAlign,\n className: className,\n popupClass: popupClass,\n style: style,\n offset: offset,\n contentKey: contentKey\n } });\n if (props.show) {\n if (state.current === Status.hidden || state.current === Status.hiding) {\n return __assign(__assign({}, nextState), { current: Status.showing, previous: state.current });\n }\n if (state.current === Status.showing) {\n return __assign(__assign({}, nextState), { current: Status.shown, previous: state.current });\n }\n if (state.current === Status.shown &&\n (!isEquivalent(offset, state.props.offset) ||\n !isEquivalent(anchorAlign, state.props.anchorAlign) ||\n !isEquivalent(appendTo, state.props.appendTo) ||\n !isEquivalent(collision, state.props.collision) ||\n !isEquivalent(popupAlign, state.props.popupAlign) ||\n !isEquivalent(style, state.props.style) ||\n anchor !== state.props.anchor ||\n popupClass !== state.props.popupClass ||\n className !== state.props.className)) {\n return __assign(__assign({}, nextState), { current: Status.reposition, previous: state.current });\n }\n return nextState;\n }\n if (state.current === Status.hiding || state.current === Status.hidden) {\n return __assign(__assign({}, nextState), { current: Status.hidden, previous: state.current });\n }\n return __assign(__assign({}, nextState), { current: Status.hiding, previous: state.current });\n };\n /**\n * @hidden\n */\n PopupWithoutContext.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.current === Status.showing && this._popup) {\n this.show(this._popup);\n }\n else if (this.state.current === Status.hiding && this._popup) {\n this.onClosing(this._popup);\n this.animate(this._popup.firstChild, 'exit', this.onClosed);\n }\n else if (this.state.current === Status.reposition && this.state.previous === Status.shown) {\n this.setState({ current: Status.shown, previous: this.state.current });\n }\n else if (this.state.current === Status.shown &&\n prevProps.contentKey !== this.props.contentKey && this._popup) {\n this.setPosition(this._popup);\n }\n };\n /**\n * @hidden\n */\n PopupWithoutContext.prototype.componentDidMount = function () {\n if (this.state.current === Status.showing && this._popup) {\n this.show(this._popup);\n }\n };\n /**\n * @hidden\n */\n PopupWithoutContext.prototype.componentWillUnmount = function () {\n this.detachRepositionHandlers();\n };\n /**\n * @hidden\n */\n PopupWithoutContext.prototype.render = function () {\n var _this = this;\n var _a = this.props, children = _a.children, className = _a.className, popupClass = _a.popupClass, show = _a.show, id = _a.id, positionMode = _a.positionMode;\n var calculatedAppendTo = this.props.appendTo ?\n this.props.appendTo :\n canUseDOM ?\n (this.props.anchor && this.props.anchor.ownerDocument ? this.props.anchor.ownerDocument.body : document.body)\n : undefined;\n if (this.state.current === Status.reposition && this.state.previous === Status.shown && this._popup) {\n this.setPosition(this._popup);\n }\n var style = Object.assign({}, { position: positionMode, top: 0, left: -10000 }, this.props.style || {});\n var closing = this.state.current === Status.hiding;\n if ((show || closing) && calculatedAppendTo) {\n var currentZIndex = this.getCurrentZIndex();\n var popupElement = (React.createElement(ZIndexContext.Provider, { value: currentZIndex },\n React.createElement(\"div\", { className: classNames(ANIMATION_CONTAINER, className), id: id, ref: function (e) { return _this._popup = e; }, style: __assign({ zIndex: currentZIndex }, style) },\n React.createElement(\"div\", { className: classNames(ANIMATION_CONTAINER_CHILD), style: { transitionDelay: '0ms' } },\n React.createElement(\"div\", { role: this.props.role, className: classNames(K_POPUP, popupClass) }, children)))));\n return this.props.appendTo !== null ?\n ReactDOM.createPortal(popupElement, calculatedAppendTo) :\n popupElement;\n }\n return null;\n };\n Object.defineProperty(PopupWithoutContext.prototype, \"animationDuration\", {\n get: function () {\n var animate = this.props.animate;\n var enter = 0;\n var exit = 0;\n if (animate) {\n if (animate === true) {\n enter = exit = 300;\n }\n else {\n enter = animate.openDuration || 0;\n exit = animate.closeDuration || 0;\n }\n }\n return { enter: enter, exit: exit };\n },\n enumerable: false,\n configurable: true\n });\n PopupWithoutContext.prototype.attachRepositionHandlers = function (element) {\n var _this = this;\n this.detachRepositionHandlers();\n this._scrollableParents = domUtils.scrollableParents(this.props.anchor || element);\n if (this._scrollableParents) {\n this._scrollableParents.map(function (p) { return p.addEventListener('scroll', _this.reposition); });\n }\n window.addEventListener('resize', this.reposition);\n };\n PopupWithoutContext.prototype.detachRepositionHandlers = function () {\n var _this = this;\n if (this._scrollableParents) {\n this._scrollableParents.map(function (p) { return p.removeEventListener('scroll', _this.reposition); });\n this._scrollableParents = undefined;\n }\n window.removeEventListener('resize', this.reposition);\n };\n PopupWithoutContext.prototype.reposition = function () {\n this.setState({ current: Status.reposition, previous: this.state.current });\n };\n /**\n * @hidden\n */\n PopupWithoutContext.propTypes = {\n anchor: function (props) {\n var anchor = props.anchor;\n if (anchor && typeof anchor.nodeType !== 'number') {\n return new Error('Invalid prop `anchor` supplied to `Kendo React Popup`. Validation failed.');\n }\n return null;\n },\n appendTo: function (props) {\n var element = props.appendTo;\n if (element && typeof element.nodeType !== 'number') {\n return new Error('Invalid prop `appendTo` supplied to `Kendo React Popup`. Validation failed.');\n }\n return null;\n },\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.object\n ]),\n id: PropTypes.string,\n popupClass: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.object\n ]),\n collision: PropTypes.shape({\n horizontal: PropTypes.oneOf([\n CollisionEnum.fit,\n CollisionEnum.flip,\n CollisionEnum.none\n ]),\n vertical: PropTypes.oneOf([\n CollisionEnum.fit,\n CollisionEnum.flip,\n CollisionEnum.none\n ])\n }),\n anchorAlign: PropTypes.shape({\n horizontal: PropTypes.oneOf([\n AlignPoint.left,\n AlignPoint.center,\n AlignPoint.right\n ]),\n vertical: PropTypes.oneOf([\n AlignPoint.top,\n AlignPoint.center,\n AlignPoint.bottom\n ])\n }),\n popupAlign: PropTypes.shape({\n horizontal: PropTypes.oneOf([\n AlignPoint.left,\n AlignPoint.center,\n AlignPoint.right\n ]),\n vertical: PropTypes.oneOf([\n AlignPoint.top,\n AlignPoint.center,\n AlignPoint.bottom\n ])\n }),\n offset: PropTypes.shape({\n left: PropTypes.number,\n top: PropTypes.number\n }),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node\n ]),\n show: PropTypes.bool,\n animate: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n openDuration: PropTypes.number,\n closeDuration: PropTypes.number\n })\n ]),\n margin: PropTypes.shape({\n horizontal: PropTypes.number,\n vertical: PropTypes.number\n }),\n positionMode: PropTypes.oneOf([\n 'fixed',\n 'absolute'\n ]),\n scale: PropTypes.number,\n style: PropTypes.object,\n onClose: PropTypes.func,\n onPosition: PropTypes.func,\n onOpen: PropTypes.func\n };\n /**\n * @hidden\n */\n PopupWithoutContext.defaultProps = {\n collision: {\n horizontal: CollisionEnum.fit,\n vertical: CollisionEnum.flip\n },\n anchorAlign: {\n horizontal: AlignPoint.left,\n vertical: AlignPoint.bottom\n },\n popupAlign: {\n horizontal: AlignPoint.left,\n vertical: AlignPoint.top\n },\n offset: DEFAULT_OFFSET,\n animate: true,\n show: false,\n margin: {\n horizontal: 0,\n vertical: 0\n },\n positionMode: 'absolute'\n };\n /**\n * @hidden\n */\n PopupWithoutContext.contextType = ZIndexContext;\n /**\n * @hidden\n */\n PopupWithoutContext.displayName = 'PopupComponent';\n return PopupWithoutContext;\n}(React.Component));\nexport { PopupWithoutContext };\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-popup',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1697038910,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { PopupWithoutContext } from './PopupWithoutContext';\n/**\n * The PopupPropsContext. It allows to configure the Popup props from a wrapper component.\n *\n * @example\n * ```jsx-no-run\n * ({ ...props, appendTo: document.querySelector('myPopupsContainer') })}>\n * \n * \n * \n * ```\n */\nexport var PopupPropsContext = React.createContext(function (props) { return props; });\n/**\n * The KendoReact Popup component.\n */\nexport var Popup = React.forwardRef(function (props, ref) {\n var contextPropsCallback = React.useContext(PopupPropsContext);\n var popupProps = contextPropsCallback.call(undefined, props);\n return (React.createElement(PopupWithoutContext, __assign({ ref: ref }, popupProps)));\n});\nPopup.displayName = 'Popup';\n","/**\n * @hidden\n */\nexport function getNestedValue(fieldName, dataItem) {\n var path = (fieldName || '').split('.');\n var data = dataItem;\n path.forEach(function (p) {\n data = data ? data[p] : undefined;\n });\n return data;\n}\nfunction inPX(value) {\n return value !== undefined && (typeof value === 'number' || /px$/i.test(String(value)));\n}\n/**\n * @hidden\n */\nexport function setHeaderRowsTop(table, toolbarHeight, rowHeight) {\n var rows = Array.from(table.tHead && table.tHead.rows || []);\n var heights = [toolbarHeight];\n var height;\n var calculateRowHeight = rowHeight ||\n (function (row) { return window.getComputedStyle(row).height || undefined; });\n rows.forEach(function (row) {\n var computedHeight = calculateRowHeight(row);\n heights.push(inPX(computedHeight) ? parseFloat(String(computedHeight)) : row.offsetHeight);\n });\n for (var i = 0; i < rows.length; i++) {\n height = heights.slice(0, i + 1).reduce(function (acc, curr) { return acc + curr; });\n Array.from(rows[i].cells).forEach(function (c) { return c.style.top = height + 'px'; });\n }\n}\nvar MAX_LEVEL = 1000000;\n/**\n * @hidden\n */\nexport function tableRowsVirtualization(args) {\n var rows = args.rows, tableViewPortHeight = args.tableViewPortHeight, scrollTop = args.scrollTop;\n if (rows.length === 0) {\n return [];\n }\n var itemHeight = rows[0].height;\n var scrollItemIndex = Math.min(Math.round(scrollTop / itemHeight), rows.length);\n var itemsOnOneScreen = Math.round(tableViewPortHeight / itemHeight);\n var start = Math.max(0, scrollItemIndex - itemsOnOneScreen);\n var end = Math.min(rows.length, scrollItemIndex + (2 * itemsOnOneScreen));\n var items = rows.slice(start, end);\n var lastItem = items[items.length - 1];\n if (start > 0) {\n items.unshift({\n dataItem: {},\n level: [MAX_LEVEL],\n offsetTop: 0,\n height: items[0].offsetTop,\n levelCount: 0\n });\n }\n if (end < rows.length - 1) {\n items.push({\n dataItem: {},\n level: [MAX_LEVEL, MAX_LEVEL],\n offsetTop: lastItem.offsetTop + lastItem.height,\n height: (rows.length - end) * itemHeight,\n levelCount: 0\n });\n }\n return items;\n}\n","import { TABLE_COL_INDEX_ATTRIBUTE, TABLE_ROW_INDEX_ATTRIBUTE, TABLE_PREVENT_SELECTION_ELEMENT } from '@progress/kendo-react-data-tools';\n/** The attribute required by the TreeList selection on TreeList `tr` elements. */\nexport var TREELIST_ROW_INDEX_ATTRIBUTE = TABLE_ROW_INDEX_ATTRIBUTE;\n/** The attribute required by the TreeList selection on TreeList `td` elements. */\nexport var TREELIST_COL_INDEX_ATTRIBUTE = TABLE_COL_INDEX_ATTRIBUTE;\n/** Attribute which disable selection start from this element. */\nexport var TREELIST_PREVENT_SELECTION_ELEMENT = TABLE_PREVENT_SELECTION_ELEMENT;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { useInternationalization } from '@progress/kendo-react-intl';\nimport { classNames, IconWrap, Keys, getNestedValue } from '@progress/kendo-react-common';\nimport { useTableKeyboardNavigation } from '@progress/kendo-react-data-tools';\nimport { caretAltDownIcon, caretAltRightIcon } from '@progress/kendo-svg-icons';\nimport { TREELIST_COL_INDEX_ATTRIBUTE, TREELIST_PREVENT_SELECTION_ELEMENT } from '../constants';\nexport var TreeListCell = function (props) {\n var _a, _b, _c;\n var hasChildren = props.hasChildren, _d = props.level, level = _d === void 0 ? [0] : _d, expanded = props.expanded, dataItem = props.dataItem, format = props.format, id = props.id, ariaColumnIndex = props.ariaColumnIndex, isSelected = props.isSelected;\n var data = getNestedValue(props.field, dataItem);\n var intl = useInternationalization();\n var navigationAttributes = useTableKeyboardNavigation(id);\n var dataAsString = '';\n var onKeyDownHandler = React.useCallback(function (event) {\n if (event.isDefaultPrevented()) {\n return;\n }\n if (event.keyCode === Keys.enter && props.expandable) {\n event.preventDefault();\n props.onExpandChange(event, dataItem, level);\n }\n }, [props.expandable, dataItem, level]);\n if (data !== undefined && data !== null) {\n dataAsString = format ?\n intl.format(format, data) :\n data.toString();\n }\n var icons = [];\n if (props.expandable) {\n var transparentIcon_1 = function (key) { return (React.createElement(\"span\", { key: key, className: \"k-treelist-toggle k-icon k-svg-icon\" },\n React.createElement(\"svg\", { \"aria-hidden\": \"true\", focusable: \"false\", xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 24 24\" }))); };\n icons.push.apply(icons, level.slice(1).map(function (_x, i) { return transparentIcon_1(i); }));\n if (hasChildren) {\n icons.push(React.createElement(IconWrap, __assign({ className: 'k-treelist-toggle', name: expanded ? 'caret-alt-down' : 'caret-alt-right', icon: expanded ? caretAltDownIcon : caretAltRightIcon, key: \"expand-collapse\", onClick: function (event) { return props.onExpandChange(event.syntheticEvent || event, dataItem, level); } }, (_a = {}, _a[TREELIST_PREVENT_SELECTION_ELEMENT] = true, _a))));\n }\n else {\n icons.push(transparentIcon_1(icons.length));\n }\n }\n var defaultRendering = (React.createElement(\"td\", __assign({ style: props.style, className: classNames('k-table-td', props.className, (_b = {},\n _b['k-text-nowrap'] = props.expandable,\n _b['k-selected'] = isSelected,\n _b)), colSpan: props.colSpan, \"aria-colindex\": ariaColumnIndex, \"aria-expanded\": hasChildren ? expanded : undefined, \"aria-selected\": isSelected, role: 'gridcell', onKeyDown: onKeyDownHandler }, (_c = {}, _c[TREELIST_COL_INDEX_ATTRIBUTE] = props.colIndex, _c), navigationAttributes),\n icons,\n dataAsString));\n return props.render ?\n props.render.call(undefined, defaultRendering, props) :\n defaultRendering;\n};\nTreeListCell.displayName = 'KendoReactTreeListCell';\n","var _a;\n/**\n * @hidden\n */\nexport var filterClearButton = 'treelist.filterClearButton';\n/**\n * @hidden\n */\nexport var filterEqOperator = 'treelist.filterEqOperator';\n/**\n * @hidden\n */\nexport var filterNotEqOperator = 'treelist.filterNotEqOperator';\n/**\n * @hidden\n */\nexport var filterIsNullOperator = 'treelist.filterIsNullOperator';\n/**\n * @hidden\n */\nexport var filterIsNotNullOperator = 'treelist.filterIsNotNullOperator';\n/**\n * @hidden\n */\nexport var filterIsEmptyOperator = 'treelist.filterIsEmptyOperator';\n/**\n * @hidden\n */\nexport var filterIsNotEmptyOperator = 'treelist.filterIsNotEmptyOperator';\n/**\n * @hidden\n */\nexport var filterStartsWithOperator = 'treelist.filterStartsWithOperator';\n/**\n * @hidden\n */\nexport var filterContainsOperator = 'treelist.filterContainsOperator';\n/**\n * @hidden\n */\nexport var filterNotContainsOperator = 'treelist.filterNotContainsOperator';\n/**\n * @hidden\n */\nexport var filterEndsWithOperator = 'treelist.filterEndsWithOperator';\n/**\n * @hidden\n */\nexport var filterGteOperator = 'treelist.filterGteOperator';\n/**\n * @hidden\n */\nexport var filterGtOperator = 'treelist.filterGtOperator';\n/**\n * @hidden\n */\nexport var filterLteOperator = 'treelist.filterLteOperator';\n/**\n * @hidden\n */\nexport var filterLtOperator = 'treelist.filterLtOperator';\n/**\n * @hidden\n */\nexport var filterIsTrue = 'treelist.filterIsTrue';\n/**\n * @hidden\n */\nexport var filterIsFalse = 'treelist.filterIsFalse';\n/**\n * @hidden\n */\nexport var filterBooleanAll = 'treelist.filterBooleanAll';\n/**\n * @hidden\n */\nexport var filterAfterOrEqualOperator = 'treelist.filterAfterOrEqualOperator';\n/**\n * @hidden\n */\nexport var filterAfterOperator = 'treelist.filterAfterOperator';\n/**\n * @hidden\n */\nexport var filterBeforeOperator = 'treelist.filterBeforeOperator';\n/**\n * @hidden\n */\nexport var filterBeforeOrEqualOperator = 'treelist.filterBeforeOrEqualOperator';\n/**\n * @hidden\n */\nexport var noRecords = 'treelist.noRecords';\n/**\n * @hidden\n */\nexport var messages = (_a = {},\n _a[filterClearButton] = 'Clear',\n _a[filterEqOperator] = 'Is equal to',\n _a[filterNotEqOperator] = 'Is not equal to',\n _a[filterIsNullOperator] = 'Is null',\n _a[filterIsNotNullOperator] = 'Is not null',\n _a[filterIsEmptyOperator] = 'Is empty',\n _a[filterIsNotEmptyOperator] = 'Is not empty',\n _a[filterStartsWithOperator] = 'Starts with',\n _a[filterContainsOperator] = 'Contains',\n _a[filterNotContainsOperator] = 'Does not contain',\n _a[filterEndsWithOperator] = 'Ends with',\n _a[filterGteOperator] = 'Is greater than or equal to',\n _a[filterGtOperator] = 'Is greater than',\n _a[filterLteOperator] = 'Is less than or equal to',\n _a[filterLtOperator] = 'Is less than',\n _a[filterIsTrue] = 'Is true',\n _a[filterIsFalse] = 'Is false',\n _a[filterBooleanAll] = '(All)',\n _a[filterAfterOrEqualOperator] = 'Is after or equal to',\n _a[filterAfterOperator] = 'Is after',\n _a[filterBeforeOperator] = 'Is before',\n _a[filterBeforeOrEqualOperator] = 'Is before or equal to',\n _a[noRecords] = 'No records available',\n _a);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { registerForLocalization, provideLocalizationService as intl } from '@progress/kendo-react-intl';\nimport { messages, noRecords } from './messages';\n/**\n * Represents the TreeListNoRecords component.\n * The component is rendered when the `data` property of the TreeList is an empty array or undefined.\n */\nvar TreeListNoRecords = /** @class */ (function (_super) {\n __extends(TreeListNoRecords, _super);\n function TreeListNoRecords() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @hidden\n */\n TreeListNoRecords.prototype.render = function () {\n return this.props.children || intl(this).toLanguageString(noRecords, messages[noRecords]);\n };\n return TreeListNoRecords;\n}(React.Component));\nexport { TreeListNoRecords };\nregisterForLocalization(TreeListNoRecords);\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\nimport { TREELIST_ROW_INDEX_ATTRIBUTE } from '../constants';\n/**\n * The default row component of the TreeList.\n */\nexport var TreeListRow = React.forwardRef(function (props, ref) {\n var _a;\n var isSelected = props.isSelected, rowHeight = props.rowHeight, isAltRow = props.isAltRow, expanded = props.expanded, ariaRowIndex = props.ariaRowIndex, level = props.level, ariaSetSize = props.ariaSetSize, ariaPosInSet = props.ariaPosInSet;\n var className = classNames('k-table-row', 'k-master-row', {\n 'k-selected': isSelected,\n 'k-alt': isAltRow\n });\n var style = React.useMemo(function () { return rowHeight !== undefined ? { height: rowHeight + 'px' } : undefined; }, [rowHeight]);\n var defaultRendering = (React.createElement(\"tr\", __assign({ onClick: props.onClick, onDoubleClick: props.onDoubleClick, onContextMenu: props.onContextMenu, className: className, style: style, ref: ref, \"aria-expanded\": expanded, role: 'row', \"aria-rowindex\": ariaRowIndex, \"aria-level\": level.length, \"aria-posinset\": ariaPosInSet, \"aria-setsize\": ariaSetSize }, (_a = {}, _a[TREELIST_ROW_INDEX_ATTRIBUTE] = props.rowIndex, _a)), props.children));\n return (React.createElement(React.Fragment, null, props.render ?\n props.render.call(undefined, defaultRendering, props) :\n defaultRendering));\n});\nTreeListRow.displayName = 'KendoReactTreeListRow';\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-treelist',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1697039934,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, noop, getter, guid, canUseDOM, memoizeOne, validatePackage, getNestedValue } from '@progress/kendo-react-common';\nimport { Header, HeaderRow, FilterRow as TreeListFilterRow, ColumnResize, CommonDragLogic, DragClue, DropClue, tableColumnsVirtualization, readColumns, mapColumns, tableKeyboardNavigation, TableKeyboardNavigationContext, tableKeyboardNavigationScopeAttributes, tableKeyboardNavigationTools as navigationTools, tableKeyboardNavigationBodyAttributes, getSelectionOptions, TableSelection, flatData } from '@progress/kendo-react-data-tools';\nimport { setHeaderRowsTop, tableRowsVirtualization } from './utils/index';\nimport { TreeListCell } from './cells/TreeListCell';\nimport { TreeListNoRecords } from './TreeListNoRecords';\nimport { TreeListRow } from './rows/TreeListRow';\nimport { packageMetadata } from './package-metadata';\n/**\n * Represents the [KendoReact TreeList component]({% slug getstarted_treelist %}).\n */\nvar TreeList = /** @class */ (function (_super) {\n __extends(TreeList, _super);\n function TreeList(props) {\n var _this = _super.call(this, props) || this;\n _this.wrapperScrollLeft = 0;\n _this.wrapperScrollTop = 0;\n _this.updateOnScroll = false;\n _this.tbodyOffsetTop = 0;\n _this.prevData = [];\n _this.flattedData = [];\n _this.extendedColumn = [];\n _this.columnsMap = [];\n _this.element = null;\n _this._treeListId = guid();\n _this.contextStateRef = { current: undefined };\n _this.navigationStateRef = { current: undefined };\n /**\n * Method to allow the scroll to be set to a specific row index.\n *\n * @param options - Object, containing the rowIndex to which is going to be scrolled.\n */\n _this.scrollIntoView = function (options) {\n if (!_this.element) {\n return;\n }\n var _a = options.rowIndex, rowIndex = _a === void 0 ? 0 : _a;\n var _b = _this.props, scrollable = _b.scrollable, _c = _b.rowHeight, rowHeight = _c === void 0 ? 0 : _c;\n if (scrollable === 'virtual' || rowHeight) {\n _this.element.scroll(0, (rowIndex - 1) * rowHeight);\n }\n else {\n var selectedRow = _this.element.querySelector(\"tbody > tr:nth-child(\".concat(rowIndex, \")\"));\n if (selectedRow) {\n var offsetTop = selectedRow.offsetTop - _this.tbodyOffsetTop;\n _this.element.scroll(0, offsetTop);\n }\n }\n };\n _this.getExtendedColumn = memoizeOne(function (columns, idPrefix) {\n return readColumns(columns, { prevId: 0, idPrefix: idPrefix });\n });\n _this.getColumnsMap = memoizeOne(function (extendedColumn) {\n return mapColumns(extendedColumn);\n });\n _this.onKeyDown = function (event) {\n tableKeyboardNavigation.onKeyDown(event, {\n contextStateRef: _this.contextStateRef,\n navigationStateRef: _this.navigationStateRef\n });\n if (_this.props.onKeyDown) {\n var _a = getSelectionOptions(_this.props.selectable), mode = _a.mode, cell = _a.cell;\n var ev = __assign({ dataItems: _this.getLeafDataItems(), mode: mode, cell: cell, componentId: _this._treeListId, selectedField: _this.props.selectedField }, _this.getArguments(event));\n _this.props.onKeyDown.call(undefined, ev);\n }\n };\n _this.onFocus = function (event) {\n tableKeyboardNavigation.onFocus(event, {\n contextStateRef: _this.contextStateRef\n });\n };\n _this.onRowDrag = function (event) {\n if (_this.props.onRowDrag) {\n _this.props.onRowDrag.call(undefined, __assign(__assign({}, event), { target: _this }));\n }\n };\n _this.onRowDrop = function (event) {\n if (_this.props.onRowDrop) {\n _this.props.onRowDrop.call(undefined, __assign(__assign({}, event), { target: _this }));\n }\n };\n _this.columnReorder = function (prev, next, nativeEvent) {\n var _a;\n var depth = _this.extendedColumn[prev].depth;\n var end = function (index) {\n do {\n index++;\n } while (index < _this.extendedColumn.length && _this.extendedColumn[index].depth > depth);\n return index;\n };\n var spliced = _this.extendedColumn.splice(prev, end(prev) - prev);\n (_a = _this.extendedColumn).splice.apply(_a, __spreadArray([prev < next ? end(next - spliced.length) : next, 0], spliced, false));\n _this.extendedColumn.filter(function (q) { return q.declarationIndex >= 0; }).forEach(function (c, i) { return c.orderIndex = i; });\n if (_this.props.onColumnReorder) {\n var event_1 = {\n target: _this,\n columns: _this.columns,\n nativeEvent: nativeEvent\n };\n _this.props.onColumnReorder.call(undefined, event_1);\n }\n };\n _this.onResize = function (index, newWidth, oldWidth, nativeEvent, end) {\n if (_this.props.onColumnResize) {\n var sumWidth = _this.extendedColumn.filter(function (c) { return c.children.length === 0; }).\n reduce(function (acc, column) { return acc += parseFloat(String(column.width)); }, 0);\n var event_2 = {\n columns: _this.columns,\n totalWidth: sumWidth,\n index: index,\n nativeEvent: nativeEvent,\n newWidth: newWidth,\n oldWidth: oldWidth,\n end: end,\n target: _this\n };\n _this.props.onColumnResize.call(undefined, event_2);\n }\n };\n _this.handleOnScroll = function (event) {\n var scrollLeft = event.currentTarget.scrollLeft;\n var scrollTop = event.currentTarget.scrollTop;\n var _a = _this.props, columnVirtualization = _a.columnVirtualization, scrollable = _a.scrollable, _b = _a.rowHeight, rowHeight = _b === void 0 ? 0 : _b;\n var minTopChange = rowHeight;\n var minLeftChange = 0;\n var shouldForceUpdate = false;\n if (columnVirtualization && Math.abs(_this.wrapperScrollLeft - scrollLeft) > minLeftChange) {\n _this.wrapperScrollLeft = scrollLeft;\n shouldForceUpdate = true;\n }\n if (scrollable === 'virtual' && Math.abs(_this.wrapperScrollTop - scrollTop) > minTopChange) {\n _this.wrapperScrollTop = scrollTop;\n shouldForceUpdate = true;\n }\n if (shouldForceUpdate) {\n _this.updateOnScroll = true;\n _this.forceUpdate();\n }\n };\n _this.calculateSizes = function (div) {\n if (!div || _this.props.scrollable === 'none') {\n return;\n }\n var children = Array.from(div.childNodes);\n var table = children.find(function (n) { return n.nodeName === 'TABLE'; });\n var toolbar = _this.props.toolbar &&\n children.find(function (n) {\n return n.nodeType === 1 && n.classList.contains('k-grid-toolbar');\n });\n var toolbarHeight = 0;\n if (toolbar) {\n var boxSizing = toolbar.style.boxSizing;\n toolbar.style.boxSizing = 'border-box';\n toolbarHeight = parseFloat(String(window.getComputedStyle(toolbar).height)) ||\n toolbar.offsetHeight;\n toolbar.style.boxSizing = boxSizing;\n if (!toolbar.getAttribute('style')) {\n toolbar.removeAttribute('style');\n }\n }\n _this.tbodyOffsetTop = table.tBodies[0].offsetTop;\n setHeaderRowsTop(table, toolbarHeight);\n };\n _this.itemChange = function (event) {\n var itemChange = _this.props.onItemChange;\n if (event.field === _this.props.expandField) {\n var expandChange = _this.props.onExpandChange;\n if (expandChange) {\n var expandEvent = __assign(__assign({}, _this.getArguments(event.syntheticEvent)), { dataItem: event.dataItem, level: event.level, value: event.value });\n expandChange.call(undefined, expandEvent);\n }\n return;\n }\n if (itemChange) {\n var itemChangeEvent = __assign(__assign({}, _this.getArguments(event.syntheticEvent)), { dataItem: event.dataItem, level: event.level, field: event.field, value: event.value });\n itemChange.call(undefined, itemChangeEvent);\n }\n };\n _this.onHeaderSelectionChange = function (event) {\n if (_this.props.onHeaderSelectionChange) {\n var selectionEvent = {\n field: event.field,\n nativeEvent: event.syntheticEvent && event.syntheticEvent.nativeEvent,\n syntheticEvent: event.syntheticEvent,\n target: _this,\n dataItems: _this.getLeafDataItems()\n };\n _this.props.onHeaderSelectionChange.call(undefined, selectionEvent);\n }\n };\n _this.selectionRelease = function (event) {\n if (_this.props.onSelectionChange) {\n var selectionEvent = __assign({ syntheticEvent: undefined, target: _this, selectedField: _this.props.selectedField || '', componentId: _this._treeListId, dataItems: _this.getLeafDataItems(), dataItem: null, level: [] }, event);\n _this.props.onSelectionChange.call(undefined, selectionEvent);\n }\n };\n _this.sortChange = function (syntheticEvent, sort, field) {\n _this.raiseDataEvent(_this.props.onSortChange, { sort: sort, field: field }, syntheticEvent);\n };\n _this.headerFilterChange = function (syntheticEvent, filter, field) {\n _this.raiseDataEvent(_this.props.onFilterChange, { filter: filter, field: field }, syntheticEvent);\n };\n _this.filterChange = function (event) {\n var filter = event.filter, field = event.field;\n _this.raiseDataEvent(_this.props.onFilterChange, { filter: filter, field: field }, event.syntheticEvent);\n };\n _this.columnMenuFilterChange = function (syntheticEvent, filter, field) {\n var onColumnMenuFilterChange = _this.props.onColumnMenuFilterChange;\n if (!onColumnMenuFilterChange) {\n return;\n }\n var event = {\n syntheticEvent: syntheticEvent,\n filter: filter,\n field: field,\n target: _this,\n nativeEvent: syntheticEvent.nativeEvent\n };\n onColumnMenuFilterChange.call(undefined, event);\n };\n _this.expandChange = function (event, dataItem, level) {\n var _a = _this.props, expandField = _a.expandField, onExpandChange = _a.onExpandChange;\n if (expandField && onExpandChange) {\n var expandEvent = __assign(__assign({}, _this.getArguments(event)), { dataItem: dataItem, level: level, value: _this.expanded(dataItem) });\n onExpandChange.call(undefined, expandEvent);\n }\n };\n _this.rowClick = function (e, item) {\n if (_this.props.onRowClick && e.target.nodeName === 'TD') {\n var rowClickEvent = __assign({ dataItem: item.dataItem, level: item.level }, _this.getArguments(e));\n _this.props.onRowClick.call(undefined, rowClickEvent);\n }\n };\n _this.rowDoubleClick = function (e, item) {\n if (_this.props.onRowDoubleClick && e.target.nodeName === 'TD') {\n var rowDoubleClickEvent = __assign({ dataItem: item.dataItem, level: item.level }, _this.getArguments(e));\n _this.props.onRowDoubleClick.call(undefined, rowDoubleClickEvent);\n }\n };\n _this.rowContextMenu = function (e, item) {\n if (_this.props.onRowContextMenu && e.target.nodeName === 'TD') {\n var rowContextMenuEvent = __assign({ dataItem: item.dataItem, level: item.level }, _this.getArguments(e));\n _this.props.onRowContextMenu.call(undefined, rowContextMenuEvent);\n }\n };\n _this.onPageChange = function (e) {\n if (_this.props.onPageChange) {\n var event_3 = __assign(__assign({}, _this.getArguments(e.syntheticEvent)), { skip: e.skip, take: e.take });\n _this.props.onPageChange.call(undefined, event_3);\n }\n };\n _this.expandedSubItems = function (dataItem) {\n var items = [];\n if (_this.expanded(dataItem) && _this.hasChildren(dataItem)) {\n items.push.apply(items, getNestedValue(_this.props.subItemsField, dataItem));\n }\n return items;\n };\n _this.getLeafDataItems = function () {\n return _this.flatData.map(function (item) { return item.dataItem; });\n };\n _this.expanded = function (dataItem) { return Boolean(getNestedValue(_this.props.expandField, dataItem)); };\n _this.hasChildren = function (dataItem) { return Boolean(getNestedValue(_this.props.subItemsField, dataItem)); };\n validatePackage(packageMetadata);\n _this.dragLogic = new CommonDragLogic(_this.columnReorder, noop, noop);\n _this.columnResize = new ColumnResize(_this.onResize.bind(_this));\n tableKeyboardNavigation.onConstructor({\n navigatable: Boolean(props.navigatable),\n contextStateRef: _this.contextStateRef,\n navigationStateRef: _this.navigationStateRef\n });\n return _this;\n }\n Object.defineProperty(TreeList.prototype, \"document\", {\n get: function () {\n if (!canUseDOM) {\n return;\n }\n // useful only for user actions\n return (this.element && this.element.ownerDocument) || document;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n TreeList.prototype.componentDidMount = function () {\n this.calculateSizes(this.element);\n tableKeyboardNavigation.onComponentDidMount({\n scope: this.element || undefined,\n contextStateRef: this.contextStateRef,\n navigationStateRef: this.navigationStateRef\n });\n };\n /**\n * @hidden\n */\n TreeList.prototype.getSnapshotBeforeUpdate = function () {\n tableKeyboardNavigation.onGetSnapshotBeforeUpdate({\n document: this.document,\n contextStateRef: this.contextStateRef,\n navigationStateRef: this.navigationStateRef\n });\n return null;\n };\n /**\n * @hidden\n */\n TreeList.prototype.componentDidUpdate = function (prevProps) {\n if (prevProps.columns !== this.props.columns) {\n this.calculateSizes(this.element);\n }\n tableKeyboardNavigation.onComponentDidUpdate({\n scope: this.element || undefined,\n contextStateRef: this.contextStateRef,\n navigationStateRef: this.navigationStateRef\n });\n };\n /**\n * @hidden\n */\n TreeList.prototype.componentWillUnmount = function () {\n this.columnsMap = [];\n this.prevData = [];\n this.flattedData = [];\n this.updateOnScroll = false;\n this.getExtendedColumn.clear();\n this.getColumnsMap.clear();\n };\n /**\n * @hidden\n */\n TreeList.prototype.render = function () {\n var _this = this;\n var _a = this.props, _b = _a.columns, columns = _b === void 0 ? [] : _b, filterRow = _a.filterRow, _c = _a.scrollable, scrollable = _c === void 0 ? 'scrollable' : _c, _d = _a.resizable, resizable = _d === void 0 ? false : _d, _e = _a.reorderable, reorderable = _e === void 0 ? false : _e, skip = _a.skip, take = _a.take;\n var filterable = columns.some(function (c) { return Boolean(c.filter) || Boolean(c.filterCell); }) || filterRow !== undefined;\n var FilterRow = filterRow || TreeListFilterRow;\n var idPrefix = navigationTools.getIdPrefix(this.navigationStateRef);\n this.extendedColumn = this.getExtendedColumn(columns, idPrefix);\n this.columnsMap = this.getColumnsMap(this.extendedColumn);\n var leafColumns = this.extendedColumn.filter(function (c) { return c.children.length === 0; });\n this.columnResize.columns = this.extendedColumn;\n this.columnResize.resizable = resizable;\n this.dragLogic.columns = this.extendedColumn;\n this.dragLogic.reorderable = reorderable;\n this.dragLogic.groupable = false;\n var header = (React.createElement(Header, { headerRow: React.createElement(HeaderRow, { sort: this.props.sort, sortable: this.props.sortable, sortChange: this.sortChange, selectionChange: this.onHeaderSelectionChange, columns: this.extendedColumn, columnsMap: this.columnsMap, cellRender: this.props.headerCellRender, columnResize: this.columnResize, columnMenu: this.props.columnMenu, columnMenuFilter: this.props.columnMenuFilter, columnMenuFilterChange: this.columnMenuFilterChange, pressHandler: this.dragLogic.pressHandler, dragHandler: this.dragLogic.dragHandler, releaseHandler: this.dragLogic.releaseHandler, filterChange: this.headerFilterChange }), filterRow: filterable && React.createElement(FilterRow, { columns: leafColumns, filter: this.props.filter, filterChange: this.filterChange, sort: this.props.sort, ariaRowIndex: this.columnsMap.length + 1 }) || undefined, columnResize: this.columnResize }));\n var wrapperStyles = this.props.style || {};\n var _f = tableColumnsVirtualization({\n enabled: this.props.columnVirtualization,\n columns: leafColumns,\n scrollLeft: this.wrapperScrollLeft,\n tableViewPortWidth: parseFloat((wrapperStyles.width || '').toString())\n }), colSpans = _f.colSpans, hiddenColumns = _f.hiddenColumns;\n var dataRow = function (item, inEdit, rowId, isRowExpanded, rowDataIndex, selectedValue) { return leafColumns.map(function (column, columnIndex) {\n if (hiddenColumns[columnIndex]) {\n return null;\n }\n var columnKey = column.id ? column.id : columnIndex;\n var className = \"\".concat(column.className ? column.className + ' ' : '')\n + \"\".concat(column.locked ? 'k-grid-content-sticky' : '');\n var cellProps = {\n id: navigationTools.generateNavigatableId(\"\".concat(rowId, \"-\").concat(String(columnIndex)), idPrefix),\n colSpan: colSpans[columnIndex],\n dataItem: item.dataItem,\n field: column.field,\n format: column.format,\n className: className || undefined,\n render: _this.props.cellRender,\n onChange: _this.itemChange,\n selectionChange: (_this.props.onSelectionChange) ? (function (e) {\n _this.selectionChange({ event: e, item: item, columnIndex: columnIndex, dataIndex: rowDataIndex });\n }) : undefined,\n level: item.level,\n expandable: column.expandable,\n expanded: isRowExpanded,\n hasChildren: _this.hasChildren(item.dataItem),\n onExpandChange: _this.expandChange,\n colIndex: columnIndex,\n ariaColumnIndex: column.ariaColumnIndex,\n style: (column.left !== undefined) && {\n left: column.left,\n right: column.right,\n borderRightWidth: column.rightBorder ? '1px' : ''\n } || {},\n isSelected: Array.isArray(selectedValue) && selectedValue.indexOf(columnIndex) > -1\n };\n if (inEdit && column.editCell) {\n return (React.createElement(column.editCell, __assign({ key: columnKey }, cellProps, { onChange: _this.itemChange })));\n }\n if (column.cell) {\n return React.createElement(column.cell, __assign({ key: columnKey }, cellProps));\n }\n return React.createElement(TreeListCell, __assign({ key: columnKey }, cellProps));\n }); };\n var flattedData = this.flatData;\n var total = flattedData.length;\n if (skip !== undefined && take !== undefined) {\n flattedData = flattedData.slice(skip, skip + take);\n }\n if (scrollable === 'virtual') {\n flattedData = tableRowsVirtualization({\n rows: flattedData,\n tableViewPortHeight: parseFloat((wrapperStyles.height || wrapperStyles.maxHeight || '').toString()),\n scrollTop: this.wrapperScrollTop\n });\n this.updateOnScroll = false;\n }\n var levels = flattedData.map(function (i) { return i.level; });\n var rowIndexStart = this.columnsMap.length + (filterable ? 1 : 0) + 1;\n var body = flattedData.length > 0 && flattedData.map(function (item, rowIndex) {\n var inEdit = getNestedValue(_this.props.editField, item.dataItem);\n var dataItemKeyValue = _this.props.dataItemKey && getter(_this.props.dataItemKey)(item.dataItem);\n var rowId = String(dataItemKeyValue ? dataItemKeyValue : item.level.join('.'));\n var isRowExpanded = _this.expanded(item.dataItem);\n var selectedValue = _this.props.selectedField ? getNestedValue(_this.props.selectedField, item.dataItem) : undefined;\n var rowProps = {\n key: rowId,\n level: item.level,\n levels: levels,\n dataItem: item.dataItem,\n selectedField: _this.props.selectedField,\n rowHeight: scrollable === 'virtual' ? item.height : _this.props.rowHeight,\n render: _this.props.rowRender,\n onDrop: _this.onRowDrop,\n onDrag: _this.onRowDrag,\n onClick: function (e) { return _this.rowClick(e, item); },\n onDoubleClick: function (e) { return _this.rowDoubleClick(e, item); },\n onContextMenu: function (e) { return _this.rowContextMenu(e, item); },\n isAltRow: rowIndex % 2 !== 0,\n expanded: isRowExpanded,\n rowIndex: rowIndex,\n ariaRowIndex: rowIndexStart + rowIndex,\n ariaSetSize: item.levelCount,\n ariaPosInSet: item.level[item.level.length - 1] + 1,\n isSelected: typeof selectedValue === 'boolean' && selectedValue\n };\n var EditRow = _this.props.editRow;\n var Row = _this.props.row || TreeListRow;\n var cells = dataRow(item, inEdit, rowId, isRowExpanded, rowIndex, selectedValue);\n return inEdit && EditRow ?\n React.createElement(EditRow, __assign({}, rowProps), cells) :\n React.createElement(Row, __assign({}, rowProps), cells);\n }) || (React.createElement(\"tr\", { className: \"k-table-row k-grid-norecords\" },\n React.createElement(\"td\", { colSpan: leafColumns.length }, this.props.noRecords || React.createElement(TreeListNoRecords, null))));\n var sorted = function (field) {\n return _this.props.sort && _this.props.sort.some(function (descriptor) { return descriptor.field === field; });\n };\n var colGroups = (React.createElement(\"colgroup\", { ref: function (c) { _this.columnResize.colGroupMain = c; } }, leafColumns.map(function (column, index) { return (React.createElement(\"col\", { key: index.toString(), className: sorted(column.field) ? 'k-sorted' : undefined, style: column.width !== undefined ? { width: column.width } : undefined })); })));\n var virtualScroll = this.props.columnVirtualization || this.props.scrollable === 'virtual';\n var tableUserSelect = this.props.selectable && this.props.selectable.drag ? 'none' : undefined;\n var tableProps = (this.props.tableProps || {});\n return (React.createElement(TableKeyboardNavigationContext.Provider, { value: this.contextStateRef.current },\n React.createElement(\"div\", __assign({ style: this.props.style, className: classNames('k-grid k-grid-md', this.props.className, { 'k-treelist-scrollable': scrollable !== 'none' }), ref: function (e) { return _this.element = e; }, onScroll: virtualScroll ? this.handleOnScroll : undefined, onKeyDown: this.onKeyDown, onFocus: this.onFocus, \"aria-rowcount\": total, \"aria-colcount\": leafColumns.length, role: 'treegrid' }, tableKeyboardNavigationScopeAttributes),\n this.props.toolbar,\n React.createElement(TableSelection, { selectable: this.props.selectable, onRelease: this.selectionRelease },\n React.createElement(\"table\", __assign({ className: 'k-table k-table-md k-grid-table' }, tableProps, { style: __assign(__assign({}, (tableProps.style || {})), { userSelect: tableUserSelect }), role: 'presentation' }),\n colGroups,\n header,\n React.createElement(\"tbody\", __assign({ className: 'k-table-tbody' }, tableKeyboardNavigationBodyAttributes, { role: 'presentation' }), body))),\n this.props.pager && (React.createElement(this.props.pager, { className: \"k-grid-pager\", total: total, skip: skip, take: take, onPageChange: this.onPageChange })),\n reorderable && (React.createElement(React.Fragment, null,\n React.createElement(DropClue, { ref: this.dragLogic.refDropElementClue }),\n React.createElement(DragClue, { ref: this.dragLogic.refDragElementClue }))))));\n };\n Object.defineProperty(TreeList.prototype, \"columns\", {\n get: function () {\n var shuffledColumns = this.extendedColumn.filter(function (q) { return q.declarationIndex >= 0 && q.parentIndex === -1; });\n var sanitize = function (columns) {\n columns.sort(function (a, b) { return a.declarationIndex - b.declarationIndex; });\n return columns.map(function (column) {\n var declarationIndex = column.declarationIndex, parentIndex = column.parentIndex, depth = column.depth, colSpan = column.colSpan, rowSpan = column.rowSpan, index = column.index, kFirst = column.kFirst, groupable = column.groupable, children = column.children, props = __rest(column, [\"declarationIndex\", \"parentIndex\", \"depth\", \"colSpan\", \"rowSpan\", \"index\", \"kFirst\", \"groupable\", \"children\"]);\n return children.length ? __assign({ children: sanitize(children) }, props) : props;\n });\n };\n return sanitize(shuffledColumns);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TreeList.prototype, \"flatData\", {\n get: function () {\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, _c = _a.rowHeight, rowHeight = _c === void 0 ? 0 : _c;\n var offsetTop = 0;\n var itemDataMap = function (_item) {\n var result = { height: rowHeight, offsetTop: offsetTop };\n offsetTop += result.height;\n return result;\n };\n var flattedData = (this.updateOnScroll &&\n this.prevData === data &&\n this.tbodyOffsetTop > 0 &&\n this.flattedData.length) ?\n this.flattedData :\n flatData(data, this.expandedSubItems, itemDataMap);\n this.prevData = data;\n this.flattedData = flattedData;\n return flattedData;\n },\n enumerable: false,\n configurable: true\n });\n TreeList.prototype.selectionChange = function (options) {\n if (this.props.onSelectionChange) {\n var event_4 = options.event, item = options.item, dataIndex = options.dataIndex, columnIndex = options.columnIndex;\n var _a = getSelectionOptions(this.props.selectable), mode = _a.mode, cell = _a.cell;\n var selectionEvent = __assign(__assign({}, this.getArguments(event_4.syntheticEvent)), { dataItem: item.dataItem, level: item.level, startColIndex: columnIndex, endColIndex: columnIndex, startRowIndex: dataIndex, endRowIndex: dataIndex, dataItems: this.getLeafDataItems(), altKey: false, ctrlKey: false, shiftKey: false, metaKey: false, mode: mode, cell: cell, isDrag: false, componentId: this._treeListId, selectedField: this.props.selectedField || '' });\n this.props.onSelectionChange.call(undefined, selectionEvent);\n }\n };\n TreeList.prototype.raiseDataEvent = function (handler, data, syntheticEvent) {\n var dataStateChange = this.props.onDataStateChange;\n if (handler) {\n handler.call(undefined, __assign(__assign({}, this.getArguments(syntheticEvent)), data));\n }\n else if (dataStateChange) {\n var dataStateEvent = __assign(__assign({}, this.getArguments(syntheticEvent)), { dataState: __assign(__assign({}, this.getDataState()), data) });\n dataStateChange.call(undefined, dataStateEvent);\n }\n };\n TreeList.prototype.getDataState = function () {\n return {\n filter: this.props.filter,\n sort: this.props.sort\n };\n };\n TreeList.prototype.getArguments = function (syntheticEvent) {\n return {\n nativeEvent: syntheticEvent && syntheticEvent.nativeEvent,\n syntheticEvent: syntheticEvent,\n target: this\n };\n };\n /**\n * @hidden\n */\n TreeList.propTypes = {\n data: PropTypes.array,\n resizable: PropTypes.bool,\n reorderable: PropTypes.bool,\n sortable: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n mode: PropTypes.oneOf(['single', 'multiple']),\n allowUnsort: PropTypes.bool\n })\n ]),\n onSortChange: PropTypes.func,\n sort: PropTypes.array,\n columns: PropTypes.arrayOf(PropTypes.object),\n columnVirtualization: PropTypes.bool,\n filter: PropTypes.array,\n onFilterChange: PropTypes.func,\n filterRow: PropTypes.any,\n toolbar: PropTypes.any,\n noRecords: PropTypes.any,\n onExpandChange: PropTypes.func,\n expandField: PropTypes.string,\n subItemsField: PropTypes.string,\n selectedField: PropTypes.string,\n onSelectionChange: PropTypes.func,\n onHeaderSelectionChange: PropTypes.func,\n onRowClick: PropTypes.func,\n onItemChange: PropTypes.func,\n editField: PropTypes.string,\n scrollable: PropTypes.oneOf(['none', 'scrollable', 'virtual']),\n rowHeight: PropTypes.number,\n style: PropTypes.object,\n tableProps: PropTypes.object,\n pager: PropTypes.any,\n skip: PropTypes.number,\n take: PropTypes.number,\n onPageChange: PropTypes.func,\n onDataStateChange: PropTypes.func,\n onColumnResize: PropTypes.func,\n onColumnReorder: PropTypes.func,\n dataItemKey: PropTypes.string,\n navigatable: PropTypes.bool\n };\n /** @hidden */\n TreeList.contextType = TableKeyboardNavigationContext;\n return TreeList;\n}(React.Component));\nexport { TreeList };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { HeaderCell } from '@progress/kendo-react-data-tools';\nexport var TreeListHeaderCell = function (props) { return React.createElement(HeaderCell, __assign({}, props)); };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { guid, classNames, getNestedValue } from '@progress/kendo-react-common';\nimport { useTableKeyboardNavigation } from '@progress/kendo-react-data-tools';\nexport var TreeListSelectionCell = function (props) {\n var handleOnChange = React.useCallback(function (syntheticEvent) {\n if (props.selectionChange) {\n props.selectionChange({ syntheticEvent: syntheticEvent });\n }\n }, [props.selectionChange]);\n var inputId = React.useMemo(function () { return guid(); }, []);\n var selectedValue = getNestedValue(props.field, props.dataItem);\n var navigationAttributes = useTableKeyboardNavigation(props.id);\n var defaultRendering = (React.createElement(\"td\", __assign({ style: props.style, className: classNames('k-table-td', props.className), \"aria-colindex\": props.ariaColumnIndex, role: 'gridcell' }, navigationAttributes),\n React.createElement(\"input\", { checked: typeof selectedValue === 'boolean' && selectedValue, id: inputId, type: \"checkbox\", className: \"k-checkbox k-checkbox-md k-rounded-md\", onChange: handleOnChange }),\n React.createElement(\"label\", { className: \"k-checkbox-label\", htmlFor: inputId })));\n return props.render ?\n props.render.call(undefined, defaultRendering, props) :\n defaultRendering;\n};\nTreeListSelectionCell.displayName = 'KendoReactTreeListSelectionCell';\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { guid } from '@progress/kendo-react-common';\nimport { HeaderSelectionCell } from '@progress/kendo-react-data-tools';\nvar TreeListHeaderSelectionCell = /** @class */ (function (_super) {\n __extends(TreeListHeaderSelectionCell, _super);\n function TreeListHeaderSelectionCell() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._inputId = guid();\n return _this;\n }\n /**\n * @hidden\n */\n TreeListHeaderSelectionCell.prototype.render = function () {\n return React.createElement(HeaderSelectionCell, __assign({ inputId: this._inputId }, this.props));\n };\n return TreeListHeaderSelectionCell;\n}(React.Component));\nexport { TreeListHeaderSelectionCell };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { Draggable, IconWrap, canUseDOM, classNames } from '@progress/kendo-react-common';\nimport { TreeListRow } from './TreeListRow';\nimport { cancelIcon, plusIcon } from '@progress/kendo-svg-icons';\nvar RowDragClue = function (props) {\n return props.visible && canUseDOM ?\n ReactDOM.createPortal((React.createElement(\"div\", { className: \"k-header k-drag-clue\", style: {\n display: 'block',\n position: 'absolute',\n zIndex: 20000,\n padding: '8px 12px',\n top: props.top + 'px',\n left: props.left + 'px'\n } },\n React.createElement(IconWrap, { className: classNames('k-drag-status'), name: props.allowDrop ? 'plus' : 'cancel', icon: props.allowDrop ? plusIcon : cancelIcon }),\n props.text)), document.body) : null;\n};\nfunction targetRowIndex(event, parent, currentDocument) {\n if (!event.originalEvent) {\n return -1;\n }\n var row = targetElement(event, 'tr', currentDocument);\n if (row) {\n var rows = parent ? parent.childNodes : [];\n for (var i = 0; i < rows.length; i++) {\n if (rows[i] === row) {\n return i;\n }\n }\n }\n return -1;\n}\nfunction targetElement(event, closest, currentDocument) {\n var target = currentDocument ? currentDocument.elementFromPoint(event.clientX, event.clientY) : null;\n return ((closest && target) ? target.closest(closest) : null);\n}\nvar treelist = 'k-grid k-grid-md';\nvar defaultClueState = {\n visible: false,\n top: 0,\n left: 0,\n text: '',\n allowDrop: false\n};\n/**\n * The TreeList draggable row component.\n */\nvar TreeListDraggableRow = /** @class */ (function (_super) {\n __extends(TreeListDraggableRow, _super);\n function TreeListDraggableRow() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * @hidden\n */\n _this.state = {\n clueProps: __assign({}, defaultClueState)\n };\n _this.draggable = React.createRef();\n _this.dragged = null;\n _this.draggedOver = null;\n _this.onPress = function () { return _this.dragged = _this.props.level; };\n _this.onDrag = function (args) {\n if (!canUseDOM) {\n return;\n }\n var element = _this.draggable.current && _this.draggable.current.element;\n var ownerDocument = element ? element.ownerDocument : document;\n if (!ownerDocument) {\n return;\n }\n var event = args.event;\n var dragged = _this.dragged;\n if (element && dragged) {\n if (!event.isTouch && event.type !== 'scroll') {\n event.originalEvent.preventDefault();\n }\n var hovered_1 = _this.props.levels[targetRowIndex(event, element.parentNode, ownerDocument)];\n _this.draggedOver = hovered_1;\n var allowDrop = hovered_1 ?\n !dragged.every(function (num, i) { return num === hovered_1[i]; }) :\n Boolean(targetElement(event, treelist, ownerDocument));\n _this.setState({\n clueProps: {\n visible: true,\n top: (event.pageY + 10),\n left: event.pageX,\n text: element.innerText,\n allowDrop: allowDrop\n }\n });\n if (_this.props.onDrag) {\n _this.props.onDrag.call(undefined, {\n nativeEvent: event.originalEvent,\n dragged: dragged,\n draggedOver: hovered_1,\n draggedItem: _this.props.dataItem\n });\n }\n }\n };\n _this.onRelease = function (args) {\n var event = args.event;\n if (_this.dragged) {\n var dragged = __spreadArray([], _this.dragged, true);\n var draggedOver = _this.draggedOver && __spreadArray([], _this.draggedOver, true);\n var allowDrop = _this.state.clueProps.allowDrop;\n _this.dragged = null;\n _this.draggedOver = null;\n _this.setState({ clueProps: __assign({}, defaultClueState) });\n var draggedItem = _this.props.dataItem;\n if (allowDrop && _this.props.onDrop) {\n _this.props.onDrop.call(undefined, {\n nativeEvent: event.originalEvent,\n dragged: dragged,\n draggedOver: draggedOver,\n draggedItem: draggedItem\n });\n }\n }\n };\n return _this;\n }\n /**\n * @hidden\n */\n TreeListDraggableRow.prototype.render = function () {\n var clueProps = this.state.clueProps;\n return (React.createElement(React.Fragment, null,\n React.createElement(Draggable, { ref: this.draggable, onPress: this.onPress, onDrag: this.onDrag, onRelease: this.onRelease },\n React.createElement(TreeListRow, __assign({}, this.props))),\n React.createElement(RowDragClue, __assign({}, clueProps))));\n };\n return TreeListDraggableRow;\n}(React.Component));\nexport { TreeListDraggableRow };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\n/**\n * Represents the TreeListToolbar component.\n */\nvar TreeListToolbar = /** @class */ (function (_super) {\n __extends(TreeListToolbar, _super);\n function TreeListToolbar() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @hidden\n */\n TreeListToolbar.prototype.render = function () {\n return (React.createElement(\"div\", { className: \"k-toolbar k-grid-toolbar\" }, this.props.children));\n };\n return TreeListToolbar;\n}(React.Component));\nexport { TreeListToolbar };\n","import * as loc from '../../messages';\n/**\n * @hidden\n */\nexport var textFilterOperators = [\n { text: loc.filterContainsOperator, operator: 'contains' },\n { text: loc.filterNotContainsOperator, operator: 'doesnotcontain' },\n { text: loc.filterEqOperator, operator: 'eq' },\n { text: loc.filterNotEqOperator, operator: 'neq' },\n { text: loc.filterStartsWithOperator, operator: 'startswith' },\n { text: loc.filterEndsWithOperator, operator: 'endswith' },\n { text: loc.filterIsNullOperator, operator: 'isnull' },\n { text: loc.filterIsNotNullOperator, operator: 'isnotnull' },\n { text: loc.filterIsEmptyOperator, operator: 'isempty' },\n { text: loc.filterIsNotEmptyOperator, operator: 'isnotempty' }\n];\n/**\n * @hidden\n */\nexport var numericFilterOperators = [\n { text: loc.filterEqOperator, operator: 'eq' },\n { text: loc.filterNotEqOperator, operator: 'neq' },\n { text: loc.filterGteOperator, operator: 'gte' },\n { text: loc.filterGtOperator, operator: 'gt' },\n { text: loc.filterLteOperator, operator: 'lte' },\n { text: loc.filterLtOperator, operator: 'lt' },\n { text: loc.filterIsNullOperator, operator: 'isnull' },\n { text: loc.filterIsNotNullOperator, operator: 'isnotnull' }\n];\n/**\n * @hidden\n */\nexport var dateFilterOperators = [\n { text: loc.filterEqOperator, operator: 'eq' },\n { text: loc.filterNotEqOperator, operator: 'neq' },\n { text: loc.filterAfterOrEqualOperator, operator: 'gte' },\n { text: loc.filterAfterOperator, operator: 'gt' },\n { text: loc.filterBeforeOperator, operator: 'lt' },\n { text: loc.filterBeforeOrEqualOperator, operator: 'lte' },\n { text: loc.filterIsNullOperator, operator: 'isnull' },\n { text: loc.filterIsNotNullOperator, operator: 'isnotnull' }\n];\n/**\n * @hidden\n */\nexport var booleanOperator = 'eq';\n/**\n * @hidden\n */\nexport var booleanFilterValues = [\n { text: loc.filterBooleanAll, operator: '' },\n { text: loc.filterIsTrue, operator: true },\n { text: loc.filterIsFalse, operator: false }\n];\n/**\n * @hidden\n */\nexport function localizeFilter(localization, operators) {\n return {\n clearButtonTitle: localization.toLanguageString(loc.filterClearButton, loc.messages[loc.filterClearButton]),\n operators: operators.map(function (o) { return ({\n text: localization.toLanguageString(o.text, loc.messages[o.text]),\n operator: o.operator\n }); })\n };\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { TextFilterCell } from '@progress/kendo-react-data-tools';\nimport { textFilterOperators, localizeFilter } from './utils';\nimport { useLocalization } from '@progress/kendo-react-intl';\nexport var TreeListTextFilter = function (props) {\n var operators = props.operators, restProps = __rest(props, [\"operators\"]);\n return (React.createElement(TextFilterCell, __assign({ ariaLabel: 'text filter' }, localizeFilter(useLocalization(), operators || textFilterOperators), restProps)));\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { NumericFilterCell } from '@progress/kendo-react-data-tools';\nimport { numericFilterOperators, localizeFilter } from './utils';\nimport { useLocalization } from '@progress/kendo-react-intl';\nexport var TreeListNumericFilter = function (props) {\n var operators = props.operators, restProps = __rest(props, [\"operators\"]);\n return (React.createElement(NumericFilterCell, __assign({ ariaLabel: 'numeric filter' }, localizeFilter(useLocalization(), operators || numericFilterOperators), restProps)));\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { DateFilterCell } from '@progress/kendo-react-data-tools';\nimport { dateFilterOperators, localizeFilter } from './utils';\nimport { useLocalization } from '@progress/kendo-react-intl';\nexport var TreeListDateFilter = function (props) {\n var operators = props.operators, restProps = __rest(props, [\"operators\"]);\n return (React.createElement(DateFilterCell, __assign({ ariaLabel: 'date filter' }, localizeFilter(useLocalization(), operators || dateFilterOperators), restProps)));\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { BooleanFilterCell } from '@progress/kendo-react-data-tools';\nimport { booleanFilterValues, localizeFilter } from './utils';\nimport { useLocalization } from '@progress/kendo-react-intl';\nexport var TreeListBooleanFilter = function (props) {\n var operators = props.operators, restProps = __rest(props, [\"operators\"]);\n return (React.createElement(BooleanFilterCell, __assign({ ariaLabel: 'boolean filter' }, localizeFilter(useLocalization(), operators || booleanFilterValues), restProps)));\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { useTableKeyboardNavigation } from '@progress/kendo-react-data-tools';\nimport { TREELIST_COL_INDEX_ATTRIBUTE } from '../../constants';\nimport { classNames, getNestedValue } from '@progress/kendo-react-common';\nexport var TreeListTextEditor = function (props) {\n var _a, _b;\n var onChange = React.useCallback(function (event) {\n if (props.onChange) {\n props.onChange({\n dataItem: props.dataItem,\n level: props.level,\n field: props.field,\n syntheticEvent: event,\n value: event.target.value\n });\n }\n }, [props.onChange, props.dataItem, props.level, props.field]);\n var navigationAttributes = useTableKeyboardNavigation(props.id);\n var editCellClasses = classNames((_a = {},\n _a['k-selected'] = props.isSelected,\n _a), props.className);\n var defaultRendering = (React.createElement(\"td\", __assign({ style: props.style, className: editCellClasses, \"aria-colindex\": props.ariaColumnIndex, \"aria-selected\": props.isSelected, role: 'gridcell' }, navigationAttributes, (_b = {}, _b[TREELIST_COL_INDEX_ATTRIBUTE] = props.colIndex, _b)),\n React.createElement(\"input\", { style: { width: '100%' }, className: \"k-input\", value: getNestedValue(props.field, props.dataItem) || '', onChange: onChange })));\n return props.render ?\n props.render.call(undefined, defaultRendering, props) :\n defaultRendering;\n};\nTreeListTextEditor.displayName = 'KendoReactTreeListTextEditor';\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { NumericTextBox } from '@progress/kendo-react-inputs';\nimport { useTableKeyboardNavigation } from '@progress/kendo-react-data-tools';\nimport { TREELIST_COL_INDEX_ATTRIBUTE } from '../../constants';\nimport { classNames, getNestedValue } from '@progress/kendo-react-common';\nexport var TreeListNumericEditor = function (props) {\n var _a, _b;\n var onChange = React.useCallback(function (event) {\n if (props.onChange) {\n props.onChange({\n dataItem: props.dataItem,\n level: props.level,\n field: props.field,\n syntheticEvent: event.syntheticEvent,\n value: event.value\n });\n }\n }, [props.onChange, props.dataItem, props.level, props.field]);\n var data = getNestedValue(props.field, props.dataItem);\n var navigationAttributes = useTableKeyboardNavigation(props.id);\n var editCellClasses = classNames((_a = {},\n _a['k-selected'] = props.isSelected,\n _a), props.className);\n var defaultRendering = (React.createElement(\"td\", __assign({ style: props.style, className: editCellClasses, \"aria-colindex\": props.ariaColumnIndex, \"aria-selected\": props.isSelected, role: 'gridcell' }, navigationAttributes, (_b = {}, _b[TREELIST_COL_INDEX_ATTRIBUTE] = props.colIndex, _b)),\n React.createElement(NumericTextBox, { width: \"100%\", value: (data === undefined) ? null : data, onChange: onChange })));\n return props.render ?\n props.render.call(undefined, defaultRendering, props) :\n defaultRendering;\n};\nTreeListNumericEditor.displayName = 'KendoReactTreeListNumericEditor';\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { classNames, guid, getNestedValue } from '@progress/kendo-react-common';\nimport { useTableKeyboardNavigation } from '@progress/kendo-react-data-tools';\nimport { TREELIST_COL_INDEX_ATTRIBUTE } from '../../constants';\nexport var TreeListBooleanEditor = function (props) {\n var _a, _b;\n var onChange = React.useCallback(function (event) {\n if (props.onChange) {\n props.onChange({\n dataItem: props.dataItem,\n level: props.level,\n field: props.field,\n syntheticEvent: event,\n value: event.target.checked\n });\n }\n }, [props.onChange, props.dataItem, props.level, props.field]);\n var inputId = React.useMemo(function () { return guid(); }, []);\n var navigationAttributes = useTableKeyboardNavigation(props.id);\n var editCellClasses = classNames((_a = {},\n _a['k-selected'] = props.isSelected,\n _a), props.className);\n var defaultRendering = (React.createElement(\"td\", __assign({ style: props.style, className: editCellClasses, \"aria-colindex\": props.ariaColumnIndex, \"aria-selected\": props.isSelected, role: 'gridcell' }, navigationAttributes, (_b = {}, _b[TREELIST_COL_INDEX_ATTRIBUTE] = props.colIndex, _b)),\n React.createElement(\"input\", { checked: getNestedValue(props.field, props.dataItem) || false, id: inputId, type: \"checkbox\", className: \"k-checkbox k-checkbox-md k-rounded-md\", onChange: onChange }),\n React.createElement(\"label\", { className: \"k-checkbox-label\", htmlFor: inputId })));\n return props.render ?\n props.render.call(undefined, defaultRendering, props) :\n defaultRendering;\n};\nTreeListBooleanEditor.displayName = 'KendoReactTreeListBooleanEditor';\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { DatePicker } from '@progress/kendo-react-dateinputs';\nimport { useTableKeyboardNavigation } from '@progress/kendo-react-data-tools';\nimport { TREELIST_COL_INDEX_ATTRIBUTE } from '../../constants';\nimport { classNames, getNestedValue } from '@progress/kendo-react-common';\nexport var TreeListDateEditor = function (props) {\n var _a, _b;\n var onChange = React.useCallback(function (event) {\n if (props.onChange) {\n props.onChange({\n dataItem: props.dataItem,\n level: props.level,\n field: props.field,\n syntheticEvent: event.syntheticEvent,\n value: event.value\n });\n }\n }, [props.onChange, props.dataItem, props.level, props.field]);\n var navigationAttributes = useTableKeyboardNavigation(props.id);\n var editCellClasses = classNames((_a = {},\n _a['k-selected'] = props.isSelected,\n _a), props.className);\n var defaultRendering = (React.createElement(\"td\", __assign({ style: props.style, className: editCellClasses, \"aria-colindex\": props.ariaColumnIndex, \"aria-selected\": props.isSelected, role: 'gridcell' }, navigationAttributes, (_b = {}, _b[TREELIST_COL_INDEX_ATTRIBUTE] = props.colIndex, _b)),\n React.createElement(DatePicker, { width: \"100%\", value: getNestedValue(props.field, props.dataItem), onChange: onChange })));\n return props.render ?\n props.render.call(undefined, defaultRendering, props) :\n defaultRendering;\n};\nTreeListDateEditor.displayName = 'KendoReactTreeListDateEditor';\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Keys, dispatchEvent, guid, kendoThemeMaps, classNames, resolveItemId, isEnabledAndAllParentsEnabled, hasChildren, TreeFieldsService as FieldsService, treeIdUtils } from '@progress/kendo-react-common';\nimport nav from './utils/getItemIdUponKeyboardNavigation';\nimport { TreeViewItem } from './TreeViewItem';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from './package-metadata';\nimport { CHECK_FIELD, CHECK_INDETERMINATE_FIELD, CHILDREN_FIELD, DISABLED_FIELD, EXPAND_FIELD, HAS_CHILDREN_FIELD, SELECT_FIELD, TEXT_FIELD } from './utils/consts';\nvar sizeMap = kendoThemeMaps.sizeMap;\n/**\n * Represents the [KendoReact TreeView component]({% slug overview_treeview %}).\n *\n * @example\n * ```jsx\n * const data = [{\n * text: 'Furniture', expanded: true, items: [\n * { text: 'Tables & Chairs' }, { text: 'Sofas' }, { text: 'Occasional Furniture' }]\n * }, {\n * text: 'Decor', expanded: true, items: [\n * { text: 'Bed Linen' }, { text: 'Curtains & Blinds' }, { text: 'Carpets' }]\n * }];\n * class App extends React.Component {\n * render() {\n * return ;\n * }\n * }\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar TreeView = /** @class */ (function (_super) {\n __extends(TreeView, _super);\n function TreeView(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.state = { focusedItemId: undefined, focusedItemPublicId: undefined, tabbableItemId: treeIdUtils.ZERO_LEVEL_ZERO_NODE_ID };\n _this.fieldsSvc = null;\n // When there is a change in state.focusedItemId, calling focus() on the dom element of the focused item\n // is most often not needed, because the browser focuses the element on its own.\n // https://github.com/telerik/kendo-react/issues/190\n _this.allowExplicitFocus = false;\n _this.treeGuid = guid();\n _this._element = null;\n _this.onFocusDomElNeeded = function (domItem) {\n if (_this.allowExplicitFocus) {\n _this.focusDomItem(domItem);\n }\n };\n _this.onCheckChange = function (event, item, itemId) {\n _this.setFocus(itemId);\n _this.dispatchCheckChange(event, item, itemId);\n };\n _this.onExpandChange = function (event, item, itemId) {\n _this.setFocus(itemId);\n _this.dispatchExpandChange(event, item, itemId);\n };\n _this.onPress = function (_event, item, itemId) {\n if (_this.props.onItemDragStart) {\n _this.props.onItemDragStart.call(undefined, { target: _this, item: item, itemHierarchicalIndex: itemId });\n }\n };\n _this.onDrag = function (event, item, itemId) {\n var pageX = event.pageX, pageY = event.pageY, clientX = event.clientX, clientY = event.clientY;\n if (_this.props.onItemDragOver) {\n _this.props.onItemDragOver.call(undefined, {\n target: _this,\n item: item,\n itemHierarchicalIndex: itemId,\n pageX: pageX,\n pageY: pageY,\n clientX: clientX,\n clientY: clientY\n });\n }\n };\n _this.onRelease = function (event, item, itemId) {\n var pageX = event.pageX, pageY = event.pageY, clientX = event.clientX, clientY = event.clientY;\n if (_this.props.onItemDragEnd) {\n _this.props.onItemDragEnd.call(undefined, {\n target: _this,\n item: item,\n itemHierarchicalIndex: itemId,\n pageX: pageX,\n pageY: pageY,\n clientX: clientX,\n clientY: clientY\n });\n }\n };\n _this.onItemClick = function (event, item, itemId) {\n _this.setFocus(itemId);\n _this.dispatchItemClick(event, item, itemId);\n };\n _this.onFocus = function () {\n clearTimeout(_this.blurRequest);\n if (_this.state.focusedItemId === undefined && _this.data.length) {\n _this.setFocus(_this.state.tabbableItemId);\n }\n };\n _this.onBlur = function () {\n clearTimeout(_this.blurRequest);\n _this.blurRequest = window.setTimeout(function () { return _this.setFocus(undefined); }, 0);\n };\n _this.onKeyDown = function (event) {\n var focusedItem = _this.getFocusedItem();\n if (focusedItem && _this.fieldsSvc) {\n var newItemId = nav(focusedItem, _this.state.focusedItemId, _this.data, event.keyCode, _this.fieldsSvc);\n if (newItemId !== _this.state.focusedItemId) {\n // This disables the auto-scroll. The scroll is achieved via item focusing.\n event.preventDefault();\n _this.allowExplicitFocus = true;\n _this.setFocus(newItemId);\n }\n _this.dispatchEventsOnKeyDown(event, focusedItem);\n }\n };\n _this.onContextMenu = function (event, item, itemId) {\n if (_this.props.onContextMenu) {\n var ev = {\n target: _this,\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n item: item,\n itemID: itemId\n };\n _this.props.onContextMenu.call(undefined, ev);\n }\n };\n validatePackage(packageMetadata);\n return _this;\n }\n Object.defineProperty(TreeView.prototype, \"element\", {\n /**\n * @hidden\n */\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n TreeView.prototype.render = function () {\n var _a;\n var _this = this;\n this.fieldsSvc = new FieldsService(this.props);\n var _b = this.props, size = _b.size, className = _b.className;\n return (React.createElement(\"div\", { className: classNames('k-treeview', (_a = {},\n _a[\"k-treeview-\".concat(sizeMap[size] || size)] = size,\n _a['k-user-select-none'] = this.props.draggable,\n _a['k-rtl'] = this.props.dir === 'rtl',\n _a), className), onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, role: \"tree\", \"aria-multiselectable\": this.ariaMultiSelectable ? true : undefined, \"aria-label\": this.props['aria-label'], \"aria-labelledby\": this.props['aria-labelledby'], ref: function (element) { return _this._element = element; }, tabIndex: this.props.tabIndex },\n React.createElement(\"ul\", { className: \"k-treeview-lines k-treeview-group\", role: \"group\" }, this.data.map(function (item, index) {\n return (React.createElement(TreeViewItem, { item: item, position: index === 0 ? 'top' : index === _this.data.length - 1 ? 'bot' : 'mid', itemId: index.toString(), treeGuid: _this.treeGuid, animate: _this.props.animate, focusedItemId: _this.state.focusedItemId, tabbableItemId: _this.state.tabbableItemId, fieldsService: _this.fieldsSvc, itemUI: _this.props.item, checkboxes: _this.props.checkboxes, ariaMultiSelectable: _this.ariaMultiSelectable, onItemClick: _this.onItemClick, onFocusDomElNeeded: _this.onFocusDomElNeeded, draggable: _this.props.draggable, onPress: _this.onPress, onDrag: _this.onDrag, onRelease: _this.onRelease, expandIcons: _this.props.expandIcons, onExpandChange: _this.onExpandChange, onCheckChange: _this.onCheckChange, onContextMenu: _this.onContextMenu, key: index, size: size, isRtl: _this.props.dir === 'rtl' }));\n }))));\n };\n /**\n * @hidden\n */\n TreeView.prototype.componentDidUpdate = function () {\n this.allowExplicitFocus = false;\n this.refocusDueToFocusIdField();\n };\n TreeView.prototype.dispatchEventsOnKeyDown = function (event, focusedItem) {\n var _this = this;\n if (this.fieldsSvc === null) {\n return;\n }\n // isEnabled is the most expensive op and that is why is left last.\n var isEnabled = function () {\n return _this.fieldsSvc && isEnabledAndAllParentsEnabled(_this.state.focusedItemId, _this.data, _this.fieldsSvc);\n };\n if (event.keyCode === Keys.left && this.fieldsSvc.expanded(focusedItem) && isEnabled()) {\n this.dispatchExpandChange(event, focusedItem, this.state.focusedItemId);\n }\n else if (event.keyCode === Keys.right && !this.fieldsSvc.expanded(focusedItem) &&\n (this.fieldsSvc.hasChildren(focusedItem) || hasChildren(focusedItem, this.props.childrenField)) && isEnabled()) {\n this.dispatchExpandChange(event, focusedItem, this.state.focusedItemId);\n }\n else if (event.keyCode === Keys.enter && isEnabled()) {\n this.dispatchItemClick(event, focusedItem, this.state.focusedItemId);\n }\n else if (event.keyCode === Keys.space && isEnabled()) {\n // W/o preventDefault() long TreeViews gets incorrectly scrolled.\n event.preventDefault();\n this.dispatchCheckChange(event, focusedItem, this.state.focusedItemId);\n }\n };\n TreeView.prototype.setFocus = function (focusedItemId) {\n if (focusedItemId && this.fieldsSvc) {\n if (this.fieldsSvc.focusIdField) {\n var item = this.getItemById(focusedItemId);\n this.setState({ focusedItemId: focusedItemId, focusedItemPublicId: this.fieldsSvc.focusId(item) });\n }\n else {\n this.setState({ focusedItemId: focusedItemId });\n }\n }\n else {\n this.setState(function (state) {\n return {\n focusedItemId: undefined,\n focusedItemPublicId: undefined,\n tabbableItemId: state.focusedItemId\n };\n });\n }\n };\n TreeView.prototype.getFocusedItem = function () {\n return this.state.focusedItemId ? this.getItemById(this.state.focusedItemId) : undefined;\n };\n TreeView.prototype.getItemById = function (itemId) {\n return treeIdUtils.getItemById(itemId, this.data, this.props.childrenField || CHILDREN_FIELD);\n };\n TreeView.prototype.dispatchCheckChange = function (dispatchedEvent, item, itemId) {\n dispatchEvent(this.props.onCheckChange, dispatchedEvent, this, { item: item, itemHierarchicalIndex: itemId });\n };\n TreeView.prototype.dispatchExpandChange = function (dispatchedEvent, item, itemId) {\n dispatchEvent(this.props.onExpandChange, dispatchedEvent, this, { item: item, itemHierarchicalIndex: itemId });\n };\n TreeView.prototype.dispatchItemClick = function (dispatchedEvent, item, itemId) {\n dispatchEvent(this.props.onItemClick, dispatchedEvent, this, { item: item, itemHierarchicalIndex: itemId });\n };\n TreeView.prototype.refocusDueToFocusIdField = function () {\n if (this.fieldsSvc && this.fieldsSvc.focusIdField) {\n var focusedItemPublicId = this.state.focusedItemPublicId;\n if (focusedItemPublicId) {\n var focusedItemId = this.props.getFocusHierarchicalIndex ?\n this.props.getFocusHierarchicalIndex(focusedItemPublicId) :\n resolveItemId(focusedItemPublicId, this.fieldsSvc.focusIdField, this.data, this.props.childrenField);\n if (focusedItemId !== this.state.focusedItemId) {\n this.allowExplicitFocus = true;\n this.setState({ focusedItemId: focusedItemId });\n }\n }\n }\n };\n Object.defineProperty(TreeView.prototype, \"ariaMultiSelectable\", {\n get: function () {\n return this.props['aria-multiselectable'] === true || this.props['aria-multiselectable'] === 'true';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TreeView.prototype, \"data\", {\n get: function () {\n return this.props.data || [];\n },\n enumerable: false,\n configurable: true\n });\n TreeView.prototype.focusDomItem = function (domItem) {\n domItem.focus();\n };\n Object.defineProperty(TreeView.prototype, \"guid\", {\n /**\n * Returns the `guid` which is associated with the TreeView.\n */\n get: function () {\n return this.treeGuid;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n TreeView.propTypes = {\n data: PropTypes.arrayOf(PropTypes.any),\n animate: PropTypes.bool,\n tabIndex: PropTypes.number,\n focusIdField: PropTypes.string,\n getHierarchicalIndexById: PropTypes.func,\n onExpandChange: PropTypes.func,\n onItemClick: PropTypes.func,\n expandField: PropTypes.string,\n selectField: PropTypes.string,\n childrenField: PropTypes.string,\n hasChildrenField: PropTypes.string,\n textField: PropTypes.string,\n disableField: PropTypes.string,\n item: PropTypes.any,\n 'aria-multiselectable': function (props, propName, componentName) {\n if (props[propName] !== undefined\n && props[propName] !== true\n && props[propName] !== false\n && props[propName] !== 'true'\n && props[propName] !== 'false') {\n return new Error('Invalid prop `' + propName + '` supplied to' +\n ' `' + componentName + '`. Validation failed.');\n }\n return null;\n },\n 'aria-label': PropTypes.string,\n 'aria-labelledby': PropTypes.string,\n size: PropTypes.oneOf([null, 'small', 'medium', 'large']),\n dir: PropTypes.string\n };\n /**\n * @hidden\n */\n TreeView.defaultProps = {\n animate: true,\n expandField: EXPAND_FIELD,\n selectField: SELECT_FIELD,\n hasChildrenField: HAS_CHILDREN_FIELD,\n childrenField: CHILDREN_FIELD,\n textField: TEXT_FIELD,\n disableField: DISABLED_FIELD,\n checkField: CHECK_FIELD,\n checkIndeterminateField: CHECK_INDETERMINATE_FIELD,\n size: 'medium'\n };\n return TreeView;\n}(React.Component));\nexport { TreeView };\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-treeview',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1697039550,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { classNames, guid, Draggable, kendoThemeMaps, IconWrap } from '@progress/kendo-react-common';\nimport { caretAltDownIcon, caretAltLeftIcon, caretAltRightIcon } from '@progress/kendo-svg-icons';\nimport { isItemExpandedAndWithChildren, hasChildren, treeIdUtils } from '@progress/kendo-react-common';\nimport { Reveal } from '@progress/kendo-react-animation';\nimport { DOM_KENDO_ITEM_ID_FIELD, DOM_KENDO_TREEVIEW_GUID_FIELD } from './utils/consts';\nvar sizeMap = kendoThemeMaps.sizeMap;\n/**\n * @hidden\n */\nexport var TreeViewItemPropsContext = React.createContext(function (props) { return props; });\n/**\n * @hidden\n */\nvar TreeViewItemWithoutContext = /** @class */ (function (_super) {\n __extends(TreeViewItemWithoutContext, _super);\n function TreeViewItemWithoutContext() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.itemGuid = guid();\n _this.onCheckChange = function (e) {\n _this.props.onCheckChange(e, _this.item, _this.itemId);\n };\n _this.onExpandChange = function (e) {\n _this.props.onExpandChange(e, _this.item, _this.itemId);\n };\n _this.onItemClick = function (e) {\n _this.props.onItemClick(e, _this.item, _this.itemId);\n };\n _this.onPress = function (e) {\n _this.props.onPress(e.event, _this.item, _this.itemId);\n };\n _this.onDrag = function (e) {\n _this.props.onDrag(e.event, _this.item, _this.itemId);\n };\n _this.onRelease = function (e) {\n _this.props.onRelease(e.event, _this.item, _this.itemId);\n };\n _this.onContextMenu = function (e) {\n _this.props.onContextMenu(e, _this.item, _this.itemId);\n };\n _this.assignDraggableMeta = function (element) {\n if (element) {\n element[DOM_KENDO_ITEM_ID_FIELD] = _this.props.itemId;\n element[DOM_KENDO_TREEVIEW_GUID_FIELD] = _this.props.treeGuid;\n }\n };\n return _this;\n }\n TreeViewItemWithoutContext.prototype.render = function () {\n var _this = this;\n var subitems = this.renderSubitemsIfApplicable();\n var itemInPart = this.renderItemInPart();\n return (React.createElement(\"li\", { className: classNames('k-treeview-item'), tabIndex: this.tabIndex, role: \"treeitem\", \"aria-expanded\": this.ariaExpanded, \"aria-selected\": this.ariaSelected, \"aria-checked\": this.ariaChecked, \"aria-disabled\": this.disabled ? true : undefined, ref: function (el) { return _this.itemElement = el; } },\n React.createElement(\"div\", { className: \"k-treeview-\".concat(this.props.position), ref: this.assignDraggableMeta },\n this.renderExpandIcon(),\n this.renderCheckbox(),\n this.props.draggable ?\n React.createElement(Draggable, { onPress: this.onPress, onDrag: this.onDrag, onRelease: this.onRelease }, itemInPart) : itemInPart),\n this.props.animate ?\n React.createElement(Reveal, { transitionEnterDuration: 200, transitionExitDuration: 200, style: { display: 'block' }, children: subitems }) : subitems));\n };\n TreeViewItemWithoutContext.prototype.componentDidMount = function () {\n var focusedItemId = this.props.focusedItemId;\n var currentItemId = this.itemId;\n if (focusedItemId && focusedItemId === currentItemId) {\n this.props.onFocusDomElNeeded(this.itemElement);\n }\n if (this.checkboxElement) {\n this.checkboxElement.indeterminate = this.fieldsSvc.checkIndeterminate(this.item);\n }\n };\n TreeViewItemWithoutContext.prototype.componentDidUpdate = function (prevProps) {\n var focusedItemId = this.props.focusedItemId;\n if (focusedItemId &&\n focusedItemId !== prevProps.focusedItemId &&\n focusedItemId === this.itemId) {\n this.props.onFocusDomElNeeded(this.itemElement);\n }\n if (this.checkboxElement) {\n var indeterminate = this.fieldsSvc.checkIndeterminate(this.item);\n if (indeterminate !== prevProps.fieldsService.checkIndeterminate(prevProps.item)) {\n this.checkboxElement.indeterminate = indeterminate;\n }\n }\n };\n TreeViewItemWithoutContext.prototype.renderCheckbox = function () {\n var _a;\n var _this = this;\n if (this.props.checkboxes) {\n var size = this.props.size;\n return (React.createElement(\"div\", { className: classNames('k-checkbox-wrap') },\n React.createElement(\"input\", { type: \"checkbox\", className: classNames('k-checkbox k-rounded-md', (_a = {},\n _a[\"k-checkbox-\".concat(sizeMap[size] || size)] = size,\n _a['k-disabled'] = this.disabled,\n _a)), \"aria-label\": this.item.text, checked: Boolean(this.fieldsSvc.checked(this.item)), id: this.itemGuid, tabIndex: -1, onChange: this.onCheckChange, ref: function (el) { return _this.checkboxElement = el; } }),\n React.createElement(\"label\", { className: \"k-checkbox-label\", htmlFor: this.itemGuid })));\n }\n else {\n return undefined;\n }\n };\n TreeViewItemWithoutContext.prototype.renderExpandIcon = function () {\n var renderExpand = this.props.expandIcons &&\n // If it is explicitly said that the item has children (even not loaded yet)\n // or if the item actually has children, then render the icon.\n (this.fieldsSvc.hasChildren(this.item) || hasChildren(this.item, this.fieldsSvc.getChildrenField()));\n return renderExpand && (\n // Allowing the toggle-button even with `disabled=true` might be a valid case!\n // Re-evaluate the classes bellow if such scenario occurs\n React.createElement(\"span\", { className: classNames('k-treeview-toggle', { 'k-disabled': this.disabled }), onClick: this.onExpandChange },\n React.createElement(IconWrap, __assign({}, this.getIconProps()))));\n };\n TreeViewItemWithoutContext.prototype.renderSubitemsIfApplicable = function () {\n var _this = this;\n var data = this.fieldsSvc.children(this.item);\n return isItemExpandedAndWithChildren(this.item, this.fieldsSvc) ?\n (React.createElement(\"ul\", { className: \"k-treeview-group\", role: \"group\" }, data.map(function (item, index) {\n return (React.createElement(TreeViewItem, { item: item, position: index === 0 ? 'top' : index === data.length - 1 ? 'bot' : 'mid', itemId: treeIdUtils.createId(index, _this.itemId), treeGuid: _this.props.treeGuid, animate: _this.props.animate, focusedItemId: _this.props.focusedItemId, tabbableItemId: _this.props.tabbableItemId, fieldsService: _this.props.fieldsService, itemUI: _this.props.itemUI, checkboxes: _this.props.checkboxes, ariaMultiSelectable: _this.props.ariaMultiSelectable, onItemClick: _this.props.onItemClick, onFocusDomElNeeded: _this.props.onFocusDomElNeeded, draggable: _this.props.draggable, onPress: _this.props.onPress, onDrag: _this.props.onDrag, onRelease: _this.props.onRelease, expandIcons: _this.props.expandIcons, onExpandChange: _this.props.onExpandChange, onCheckChange: _this.props.onCheckChange, onContextMenu: _this.props.onContextMenu, key: index, size: _this.props.size, disabled: _this.disabled, isRtl: _this.props.isRtl }));\n }))) : undefined;\n };\n TreeViewItemWithoutContext.prototype.renderItemInPart = function () {\n return (React.createElement(\"span\", { className: classNames('k-treeview-leaf', {\n 'k-focus': this.props.focusedItemId === this.itemId,\n 'k-selected': this.fieldsSvc.selected(this.item),\n 'k-disabled': this.disabled\n }), style: { touchAction: 'none' }, onClick: this.onItemClick, onContextMenu: this.onContextMenu },\n React.createElement(\"span\", { className: \"k-treeview-leaf-text\" }, this.props.itemUI ?\n React.createElement(this.props.itemUI, { item: this.item, itemHierarchicalIndex: this.itemId }) :\n this.fieldsSvc.text(this.item))));\n };\n Object.defineProperty(TreeViewItemWithoutContext.prototype, \"fieldsSvc\", {\n get: function () {\n return this.props.fieldsService;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TreeViewItemWithoutContext.prototype, \"itemId\", {\n get: function () {\n return this.props.itemId;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TreeViewItemWithoutContext.prototype, \"item\", {\n get: function () {\n return this.props.item;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TreeViewItemWithoutContext.prototype, \"tabIndex\", {\n get: function () {\n return (this.props.focusedItemId || this.props.tabbableItemId) === this.itemId ? 0 : -1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TreeViewItemWithoutContext.prototype, \"ariaExpanded\", {\n get: function () {\n return this.fieldsSvc.hasChildren(this.item) || hasChildren(this.item, this.fieldsSvc.getChildrenField()) ?\n Boolean(this.fieldsSvc.expanded(this.item)) : undefined;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TreeViewItemWithoutContext.prototype, \"disabled\", {\n get: function () {\n return this.props.disabled || this.fieldsSvc.disabled(this.item);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TreeViewItemWithoutContext.prototype, \"ariaChecked\", {\n get: function () {\n if (this.props.checkboxes) {\n if (this.fieldsSvc.checked(this.item)) {\n return 'true';\n }\n else {\n return this.fieldsSvc.checkIndeterminate(this.item) ? 'mixed' : 'false';\n }\n }\n else {\n return undefined;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TreeViewItemWithoutContext.prototype, \"ariaSelected\", {\n get: function () {\n if (this.fieldsSvc.selected(this.item)) {\n return true;\n }\n else if (this.props.ariaMultiSelectable) {\n return this.disabled ? undefined : false;\n }\n else {\n return undefined;\n }\n },\n enumerable: false,\n configurable: true\n });\n TreeViewItemWithoutContext.prototype.getIconProps = function () {\n var expanded = this.fieldsSvc.expanded(this.item);\n var loading = expanded && !hasChildren(this.item, this.fieldsSvc.getChildrenField());\n if (loading) {\n return { name: 'loading' };\n }\n return expanded\n ? { name: 'caret-alt-down', icon: caretAltDownIcon }\n : { name: this.props.isRtl ? 'caret-alt-left' : 'caret-alt-right', icon: this.props.isRtl ? caretAltLeftIcon : caretAltRightIcon };\n };\n TreeViewItemWithoutContext.defaultProps = {\n position: 'top'\n };\n return TreeViewItemWithoutContext;\n}(React.Component));\n/**\n * @hidden\n */\nexport var TreeViewItem = React.forwardRef(function (props, ref) {\n var contextPropsCallback = React.useContext(TreeViewItemPropsContext);\n var treeViewItemProps = contextPropsCallback.call(undefined, props);\n return (React.createElement(TreeViewItemWithoutContext, __assign({ ref: ref }, treeViewItemProps)));\n});\nTreeViewItem.displayName = 'TreeViewItem';\n","/* eslint-disable max-len */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { updateItem, resolveItemsIds, getNestedValue, isArray } from '@progress/kendo-react-common';\nimport { EXPAND_FIELD, SELECT_FIELD, CHECK_FIELD, CHECK_INDETERMINATE_FIELD, CHILDREN_FIELD } from './utils/consts';\n/**\n * A helper function which applies the specified operation descriptors to the data.\n * * [Expanding and collapsing items]({% slug expansion_ways_treeview %}#toc-using-a-helper-function)\n * * [Selecting and deselecting items]({% slug selection_ways_treeview %}#toc-using-a-helper-function)\n * * [Checking and unchecking items]({% slug check_helper_funcs_treeview %})\n *\n * @param data - The data that will be processed.\n * @param operations - The operation descriptors that will be applied to the data.\n * @returns - The processed copy of the input data.\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * state = { items: tree, expand: [], select: [], check: [] };\n * render() {\n * const { expand, select, check } = this.state;\n * return (\n * this.setState({ check: [ event.itemHierarchicalIndex ] })}\n * onItemClick={event => this.setState({ select: [ event.itemHierarchicalIndex ] })}\n * />\n * );\n * }\n * onExpandChange = (event) => {\n * let expand = this.state.expand.slice();\n * const index = expand.indexOf(event.itemHierarchicalIndex);\n * index === -1 ? expand.push(event.itemHierarchicalIndex) : expand.splice(index, 1);\n * this.setState({ expand });\n * }\n * }\n *\n * const tree = [{\n * text: 'Item1',\n * items: [\n * { text: 'Item1.1' },\n * { text: 'Item1.2' },\n * { text: 'Item1.3', items: [{ text: 'Item1.3.1' }] }]\n * }, {\n * text: 'Item2', disabled: true,\n * items: [{ text: 'Item2.1' }, { text: 'Item2.2' }, { text: 'Item2.3' }]\n * }, {\n * text: 'Item3'\n * }];\n *\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nexport function processTreeViewItems(data, operations) {\n if (!data || !data.length) {\n return [];\n }\n var result = data;\n var cloneField = operations.cloneField || 'cloned';\n var expandField = operations.expandField || EXPAND_FIELD;\n var selectField = operations.selectField || SELECT_FIELD;\n var checkField = operations.checkField || CHECK_FIELD;\n var childrenField = operations.childrenField || CHILDREN_FIELD;\n result = handleOperation(result, expandField, operations.expand, cloneField, childrenField);\n result = handleOperation(result, selectField, operations.select, cloneField, childrenField);\n result = handleOperation(result, checkField, operations.check, cloneField, childrenField);\n applyCheckIndeterminate(result, childrenField, operations.check);\n return result;\n}\nfunction handleOperation(items, defaultField, operation, cloneField, childrenField) {\n if (operation) {\n var _a = parseOperation(operation, defaultField), ids = _a.ids, field = _a.field;\n var indices = !isArray(operation) && operation.idField ? resolveItemsIds(ids, operation.idField, items, childrenField) : ids;\n return raiseFlags(items, indices, field, cloneField, childrenField);\n }\n else {\n return items;\n }\n}\nfunction parseOperation(operation, defaultField) {\n var ids;\n var field;\n if (isArray(operation)) {\n ids = operation;\n field = defaultField;\n }\n else {\n ids = operation.ids || [];\n field = operation.operationField || defaultField;\n }\n return { ids: ids, field: field };\n}\nfunction raiseFlags(items, indices, field, cloneField, childrenField) {\n var result = items;\n indices.forEach(function (itemIndex) {\n result = updateItem(result, itemIndex, function (item) { return raiseNestedFlag(field, item); }, cloneField, childrenField);\n });\n return result;\n}\nfunction raiseNestedFlag(fieldName, dataItem) {\n var fields = (fieldName || '').split('.');\n var item = dataItem;\n for (var index = 0; index < fields.length; index++) {\n var field = fields[index];\n if (index === fields.length - 1) {\n item[field] = true;\n }\n else if (item[field] !== undefined) {\n item[field] = __assign({}, item[field]);\n item = item[field];\n }\n else {\n return;\n }\n }\n}\nfunction applyCheckIndeterminate(items, childrenField, check) {\n if (check && !isArray(check) && check.applyCheckIndeterminate) {\n var checkField = parseOperation(check, CHECK_FIELD).field;\n var checkIndeterminateField = check.checkIndeterminateField || CHECK_INDETERMINATE_FIELD;\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n var subItems = item[childrenField];\n if (subItems) {\n applyCheckIndeterminateHelper(subItems, getNestedValue(checkField, item) ? [] : [item], childrenField, checkField, checkIndeterminateField);\n }\n }\n }\n}\nfunction applyCheckIndeterminateHelper(data, parents, childrenField, checkField, checkIndeterminateField) {\n // The updates will be direct because the corresponding items\n // are already cloned because of their checked children.\n var parentsAlreadyUpdated = false;\n for (var i = 0; i < data.length; i++) {\n var item = data[i];\n if (getNestedValue(checkField, item)) {\n if (!parentsAlreadyUpdated) {\n for (var j = 0; j < parents.length; j++) {\n raiseNestedFlag(checkIndeterminateField, parents[j]);\n }\n }\n parentsAlreadyUpdated = true;\n if (item[childrenField]) {\n applyCheckIndeterminateHelper(item[childrenField], [], childrenField, checkField, checkIndeterminateField);\n }\n }\n else {\n if (item[childrenField]) {\n applyCheckIndeterminateHelper(item[childrenField], parentsAlreadyUpdated ? [item] : parents.concat([item]), childrenField, checkField, checkIndeterminateField);\n }\n }\n }\n}\n","import { addItem, removeItem, treeIdUtils } from '@progress/kendo-react-common';\nimport { CHILDREN_FIELD } from './utils/consts';\n/**\n * A helper function which moves a TreeView item in an immutable way.\n *\n * @param sourceItemHierarchicalIndex - The hierarchical index of the item that will be moved.\n * @param sourceData - The tree which contains the item that will be moved.\n * @param operation - The specific move operation.\n *\n * The available options are:\n * * `before`—Indicates that the source item will become the previous sibling of the target item.\n * * `after`—Indicates that the source item will become the next sibling of the target item.\n * * `child`—Indicates that the source item will become a child of the target item.\n * @param targetItemHierarchicalIndex - The hierarchical index of the item next to which the source item will be moved.\n * @param targetData - The tree which contains the target item.\n * If the argument is skipped, then the move operation will be executed within the same tree.\n * Setting the `sourceData` and `targetData` arguments to the same tree is also supported.\n * @param childrenField - The field that points to the dataItem sub items. Defaults to `items`.\n * @returns - The updated copies of the `sourceData` and `targetData` input arguments.\n * If `targetData` is not passed, then only the updated copy of the `sourceData` will be returned.\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * dragClue;\n * state = { tree };\n *\n * render() {\n * return (\n *
    \n * \n * this.dragClue = dragClue} />\n *
    \n * );\n * }\n *\n * onItemDragOver = (event) => {\n * this.dragClue.show(event.pageY + 10, event.pageX, event.item.text, this.getClueClassName(event));\n * }\n * onItemDragEnd = (event) => {\n * this.dragClue.hide();\n * const eventAnalyzer = new TreeViewDragAnalyzer(event).init();\n *\n * if (eventAnalyzer.isDropAllowed) {\n * const updatedTree = moveTreeViewItem(\n * event.itemHierarchicalIndex,\n * this.state.tree,\n * eventAnalyzer.getDropOperation(),\n * eventAnalyzer.destinationMeta.itemHierarchicalIndex,\n * );\n *\n * this.setState({ tree: updatedTree });\n * }\n * }\n * getClueClassName(event) {\n * const eventAnalyzer = new TreeViewDragAnalyzer(event).init();\n * const itemIndex = eventAnalyzer.destinationMeta.itemHierarchicalIndex;\n *\n * if (eventAnalyzer.isDropAllowed) {\n * switch (eventAnalyzer.getDropOperation()) {\n * case 'child':\n * return 'k-i-plus';\n * case 'before':\n * return itemIndex === '0' || itemIndex.endsWith(`${SEPARATOR}0`) ?\n * 'k-i-insert-up' : 'k-i-insert-middle';\n * case 'after':\n * const siblings = getSiblings(itemIndex, this.state.tree);\n * const lastIndex = Number(itemIndex.split(SEPARATOR).pop());\n *\n * return lastIndex < siblings.length - 1 ? 'k-i-insert-middle' : 'k-i-insert-down';\n * default:\n * break;\n * }\n * }\n *\n * return 'k-i-cancel';\n * }\n * }\n *\n * function getSiblings(itemIndex, data) {\n * let result = data;\n *\n * const indices = itemIndex.split(SEPARATOR).map(index => Number(index));\n * for (let i = 0; i < indices.length - 1; i++) {\n * result = result[indices[i]].items;\n * }\n *\n * return result;\n * }\n *\n * const SEPARATOR = '_';\n * const tree = [{\n * text: 'Furniture', expanded: true, items: [\n * { text: 'Tables & Chairs', expanded: true },\n * { text: 'Sofas', expanded: true },\n * { text: 'Occasional Furniture', expanded: true }]\n * }, {\n * text: 'Decor', expanded: true, items: [\n * { text: 'Bed Linen', expanded: true },\n * { text: 'Curtains & Blinds', expanded: true },\n * { text: 'Carpets', expanded: true }]\n * }];\n *\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nexport function moveTreeViewItem(sourceItemHierarchicalIndex, sourceData, operation, targetItemHierarchicalIndex, targetData, childrenField) {\n var subItemsField = childrenField || CHILDREN_FIELD;\n if (!validateInput()) {\n return prepareInputDataForReturn();\n }\n var sourceItem = treeIdUtils.getItemById(sourceItemHierarchicalIndex, sourceData, subItemsField);\n if (!sourceItem) {\n return prepareInputDataForReturn();\n }\n // The source and the target tree are the same.\n if (!targetData || targetData === sourceData) {\n if (!validateNoCircularReference()) {\n return prepareInputDataForReturn();\n }\n var updatedSourceData = removeItem(sourceItemHierarchicalIndex, subItemsField, sourceData);\n var resultData = addItem(sourceItem, operation, subItemsField, treeIdUtils.getDecrementedItemIdAfterRemoval(sourceItemHierarchicalIndex, targetItemHierarchicalIndex), updatedSourceData);\n // A simpler output is explicitly returned when the source and the target tree are\n // the same, that is, the targetData argument is skipped.\n return targetData ? { sourceData: resultData, targetData: resultData } : resultData;\n }\n else {\n var updatedSource = removeItem(sourceItemHierarchicalIndex, subItemsField, sourceData);\n var updatedTarget = addItem(sourceItem, operation, subItemsField, targetItemHierarchicalIndex, targetData);\n return { sourceData: updatedSource, targetData: updatedTarget };\n }\n function prepareInputDataForReturn() {\n return targetData ? { sourceData: sourceData, targetData: targetData } : sourceData;\n }\n function validateNoCircularReference() {\n return !\"\".concat(targetItemHierarchicalIndex, \"_\").startsWith(\"\".concat(sourceItemHierarchicalIndex, \"_\"));\n }\n function validateInput() {\n if (!sourceData || !sourceData.length ||\n !sourceItemHierarchicalIndex || !targetItemHierarchicalIndex) {\n return false;\n }\n if (targetData && !targetData.length) {\n // Dropping over an empty tree is not supported.\n return false;\n }\n // Validate that the target item exists.\n var data = !targetData || targetData === sourceData ? sourceData : targetData;\n if (!treeIdUtils.getItemById(targetItemHierarchicalIndex, data, subItemsField)) {\n return false;\n }\n return true;\n }\n}\n","var __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { getAllDirectIndirectChildrenIds, areAllDirectChildrenChecked, getAllParents, isArray, getNestedValue, treeIdUtils } from '@progress/kendo-react-common';\nimport { CHILDREN_FIELD } from './utils/consts';\n/**\n * A helper function which updates the check descriptor.\n *\n * @param event - The event that triggered the change.\n * @param check - The check descriptor that will be updated.\n * @param data - The TreeView items.\n * @param settings - The additional settings that configure the update of the check descriptor.\n * @param childrenField - The field that points to the dataItem sub items. Defaults to `items`.\n * The default behavior allows the selection of multiple items.\n * @returns - The updated copy of the input check descriptor.\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * state = { check: [], items: tree };\n * render() {\n * return (\n *
    \n * \n *
    \n * Press SPACE to check/uncheck the active item\n *
    \n * Checked Indices: {this.state.check.join(\",\")}\n *
    \n *
    \n *
    \n * );\n * }\n * onCheckChange = (event) => {\n * this.setState({ check: handleTreeViewCheckChange(event, this.state.check, this.state.items) });\n * }\n * }\n *\n * const tree = [ {\n * text: 'Furniture', expanded: true, items: [\n * { text: 'Tables & Chairs' }, { text: 'Sofas' }, { text: 'Occasional Furniture' } ]\n * }, {\n * text: 'Decor', expanded: true, items: [\n * { text: 'Bed Linen' }, { text: 'Curtains & Blinds' }, { text: 'Carpets' } ]\n * } ];\n *\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nexport function handleTreeViewCheckChange(event, check, data, settings, childrenField) {\n if (settings === void 0) { settings = {}; }\n if (!data || !data.length) {\n return [];\n }\n var _a = parseOperation(check), ids = _a.ids, idField = _a.idField;\n var itemId = idField ? getNestedValue(idField, event.item) : event.itemHierarchicalIndex;\n var idIndex = ids.indexOf(itemId);\n var itemJustChecked = idIndex === -1;\n var subItemsField = childrenField || CHILDREN_FIELD;\n var newIds;\n if (settings.singleMode) {\n newIds = itemJustChecked ? [itemId] : [];\n }\n else {\n newIds = ids.slice();\n itemJustChecked ? newIds.push(itemId) : newIds.splice(idIndex, 1);\n if (settings.checkChildren) {\n checkChildren(event.item, event.itemHierarchicalIndex, itemJustChecked, idField, subItemsField, newIds);\n }\n if (settings.checkParents) {\n checkParents(event.itemHierarchicalIndex, itemJustChecked, idField, subItemsField, newIds, data);\n }\n }\n return isArray(check) ? newIds : Object.assign({}, check, { ids: newIds });\n}\nfunction parseOperation(operation) {\n var ids;\n var idField = undefined;\n if (isArray(operation)) {\n ids = operation;\n }\n else {\n ids = operation.ids || [];\n idField = operation.idField;\n }\n return { ids: ids, idField: idField };\n}\nfunction checkChildren(item, itemHierarchicalIndex, itemJustChecked, idField, childrenField, ids) {\n getAllDirectIndirectChildrenIds(item, itemHierarchicalIndex, childrenField, idField).forEach(function (itemId) {\n if (itemJustChecked && ids.indexOf(itemId) === -1) {\n ids.push(itemId);\n }\n else if (!itemJustChecked && ids.indexOf(itemId) > -1) {\n ids.splice(ids.indexOf(itemId), 1);\n }\n });\n}\nfunction checkParents(itemHierarchicalIndex, itemJustChecked, idField, childrenField, ids, data) {\n var it = makeParentsIterator();\n var result = it.next();\n itemJustChecked ? check() : uncheck();\n function check() {\n // Check all parents which have all their children checked.\n while (!result.done) {\n var _a = result.value, id = _a.id, item = _a.item;\n // The first check is needed. However, it is not sure whether to stop the entire loop.\n if (ids.indexOf(id) === -1 &&\n areAllDirectChildrenChecked(item, id, idField, childrenField, ids)) {\n ids.push(id);\n result = it.next();\n }\n else {\n break;\n }\n }\n }\n function uncheck() {\n // Uncheck parents until an already unchecked parent is reached.\n while (!result.done) {\n var id = result.value.id;\n var idIndex = ids.indexOf(id);\n if (idIndex > -1) {\n ids.splice(idIndex, 1);\n result = it.next();\n }\n else {\n break;\n }\n }\n }\n // When called for unchecking, the parent items are not needed.\n // That is why, for optimization, they are not returned.\n function makeParentsIterator() {\n var parents, i, parentId;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!idField) return [3 /*break*/, 5];\n parents = getAllParents(itemHierarchicalIndex, childrenField, data);\n i = parents.length - 1;\n _a.label = 1;\n case 1:\n if (!(i > -1)) return [3 /*break*/, 4];\n return [4 /*yield*/, { id: getNestedValue(idField, parents[i]), item: itemJustChecked ? parents[i] : undefined }];\n case 2:\n _a.sent();\n _a.label = 3;\n case 3:\n i--;\n return [3 /*break*/, 1];\n case 4: return [3 /*break*/, 8];\n case 5:\n parentId = treeIdUtils.getDirectParentId(itemHierarchicalIndex);\n _a.label = 6;\n case 6:\n if (!parentId) return [3 /*break*/, 8];\n return [4 /*yield*/, { id: parentId, item: itemJustChecked ? treeIdUtils.getItemById(parentId, data, childrenField) : undefined }];\n case 7:\n _a.sent();\n parentId = treeIdUtils.getDirectParentId(parentId);\n return [3 /*break*/, 6];\n case 8: return [2 /*return*/];\n }\n });\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { IconWrap, classNames, toIconName } from '@progress/kendo-react-common';\nimport { cancelIcon, insertBottomIcon, insertMiddleIcon, insertTopIcon, plusIcon } from '@progress/kendo-svg-icons';\n/**\n * Represents the KendoReact TreeViewDragClue component which renders a clue when an item is dragged.\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * dragClue;\n * state = { tree };\n *\n * render() {\n * return (\n *
    \n * \n * this.dragClue = dragClue} />\n *
    \n * );\n * }\n *\n * onItemDragOver = (event) => {\n * this.dragClue.show(event.pageY + 10, event.pageX, event.item.text, this.getClueClassName(event));\n * }\n * onItemDragEnd = (event) => {\n * this.dragClue.hide();\n * const eventAnalyzer = new TreeViewDragAnalyzer(event).init();\n *\n * if (eventAnalyzer.isDropAllowed) {\n * const updatedTree = moveTreeViewItem(\n * event.itemHierarchicalIndex,\n * this.state.tree,\n * eventAnalyzer.getDropOperation(),\n * eventAnalyzer.destinationMeta.itemHierarchicalIndex,\n * );\n *\n * this.setState({ tree: updatedTree });\n * }\n * }\n * getClueClassName(event) {\n * const eventAnalyzer = new TreeViewDragAnalyzer(event).init();\n * const itemIndex = eventAnalyzer.destinationMeta.itemHierarchicalIndex;\n *\n * if (eventAnalyzer.isDropAllowed) {\n * switch (eventAnalyzer.getDropOperation()) {\n * case 'child':\n * return 'k-i-plus';\n * case 'before':\n * return itemIndex === '0' || itemIndex.endsWith(`${SEPARATOR}0`) ?\n * 'k-i-insert-up' : 'k-i-insert-middle';\n * case 'after':\n * const siblings = getSiblings(itemIndex, this.state.tree);\n * const lastIndex = Number(itemIndex.split(SEPARATOR).pop());\n *\n * return lastIndex < siblings.length - 1 ? 'k-i-insert-middle' : 'k-i-insert-down';\n * default:\n * break;\n * }\n * }\n *\n * return 'k-i-cancel';\n * }\n * }\n *\n * function getSiblings(itemIndex, data) {\n * let result = data;\n *\n * const indices = itemIndex.split(SEPARATOR).map(index => Number(index));\n * for (let i = 0; i < indices.length - 1; i++) {\n * result = result[indices[i]].items;\n * }\n *\n * return result;\n * }\n *\n * const SEPARATOR = '_';\n * const tree = [{\n * text: 'Furniture', expanded: true, items: [\n * { text: 'Tables & Chairs', expanded: true },\n * { text: 'Sofas', expanded: true },\n * { text: 'Occasional Furniture', expanded: true }]\n * }, {\n * text: 'Decor', expanded: true, items: [\n * { text: 'Bed Linen', expanded: true },\n * { text: 'Curtains & Blinds', expanded: true },\n * { text: 'Carpets', expanded: true }]\n * }];\n *\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar TreeViewDragClue = /** @class */ (function (_super) {\n __extends(TreeViewDragClue, _super);\n function TreeViewDragClue() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * @hidden\n */\n _this.state = {\n visible: false,\n top: 0,\n left: 0,\n text: '',\n operationClassName: 'cancel'\n };\n return _this;\n }\n /**\n * @hidden\n */\n TreeViewDragClue.prototype.render = function () {\n var dynamicStyle = { top: this.state.top + 'px', left: this.state.left + 'px' };\n return this.state.visible && (React.createElement(\"div\", { className: \"k-header k-drag-clue\", style: __assign(__assign({}, this.props.style), dynamicStyle) },\n React.createElement(IconWrap, { className: classNames('k-drag-status'), name: this.state.operationClassName && toIconName(this.state.operationClassName), icon: this.state.operationClassName === 'k-i-plus' ? plusIcon\n : this.state.operationClassName === 'k-i-insert-up' ? insertTopIcon\n : this.state.operationClassName === 'k-i-insert-up' ? insertBottomIcon\n : this.state.operationClassName === 'k-i-insert-middle' ? insertMiddleIcon\n : cancelIcon }),\n this.state.text));\n };\n /**\n * Displays the TreeViewDragClue component.\n *\n * @param top - The `top` CSS position of the component.\n * @param left - The `left` CSS position of the component.\n * @param text - The text of the component.\n * @param operationClassName - The CSS class name which is related to the specific drop operation.\n */\n TreeViewDragClue.prototype.show = function (top, left, text, operationClassName) {\n this.setState({ visible: true, top: top, left: left, text: text, operationClassName: operationClassName });\n };\n /**\n * Hides the TreeViewDragClue component.\n */\n TreeViewDragClue.prototype.hide = function () {\n this.setState({ visible: false });\n };\n /**\n * @hidden\n */\n TreeViewDragClue.defaultProps = { style: { display: 'block', position: 'absolute', zIndex: 20000, padding: '4px 6px' } };\n return TreeViewDragClue;\n}(React.PureComponent));\nexport { TreeViewDragClue };\n","import { DOM_KENDO_ITEM_ID_FIELD, DOM_KENDO_TREEVIEW_GUID_FIELD } from './utils/consts';\nvar DROPZONE_BOUNDARY_DELTA = 6;\n/**\n * A class which provides an API for analyzing the `drag` events\n * of the TreeView.\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * dragClue;\n * state = { tree };\n *\n * render() {\n * return (\n *
    \n * \n * this.dragClue = dragClue} />\n *
    \n * );\n * }\n *\n * onItemDragOver = (event) => {\n * this.dragClue.show(event.pageY + 10, event.pageX, event.item.text, this.getClueClassName(event));\n * }\n * onItemDragEnd = (event) => {\n * this.dragClue.hide();\n * const eventAnalyzer = new TreeViewDragAnalyzer(event).init();\n *\n * if (eventAnalyzer.isDropAllowed) {\n * const updatedTree = moveTreeViewItem(\n * event.itemHierarchicalIndex,\n * this.state.tree,\n * eventAnalyzer.getDropOperation(),\n * eventAnalyzer.destinationMeta.itemHierarchicalIndex,\n * );\n *\n * this.setState({ tree: updatedTree });\n * }\n * }\n * getClueClassName(event) {\n * const eventAnalyzer = new TreeViewDragAnalyzer(event).init();\n * const itemIndex = eventAnalyzer.destinationMeta.itemHierarchicalIndex;\n *\n * if (eventAnalyzer.isDropAllowed) {\n * switch (eventAnalyzer.getDropOperation()) {\n * case 'child':\n * return 'k-i-plus';\n * case 'before':\n * return itemIndex === '0' || itemIndex.endsWith(`${SEPARATOR}0`) ?\n * 'k-i-insert-up' : 'k-i-insert-middle';\n * case 'after':\n * const siblings = getSiblings(itemIndex, this.state.tree);\n * const lastIndex = Number(itemIndex.split(SEPARATOR).pop());\n *\n * return lastIndex < siblings.length - 1 ? 'k-i-insert-middle' : 'k-i-insert-down';\n * default:\n * break;\n * }\n * }\n *\n * return 'k-i-cancel';\n * }\n * }\n *\n * function getSiblings(itemIndex, data) {\n * let result = data;\n *\n * const indices = itemIndex.split(SEPARATOR).map(index => Number(index));\n * for (let i = 0; i < indices.length - 1; i++) {\n * result = result[indices[i]].items;\n * }\n *\n * return result;\n * }\n *\n * const SEPARATOR = '_';\n * const tree = [{\n * text: 'Furniture', expanded: true, items: [\n * { text: 'Tables & Chairs', expanded: true },\n * { text: 'Sofas', expanded: true },\n * { text: 'Occasional Furniture', expanded: true }]\n * }, {\n * text: 'Decor', expanded: true, items: [\n * { text: 'Bed Linen', expanded: true },\n * { text: 'Curtains & Blinds', expanded: true },\n * { text: 'Carpets', expanded: true }]\n * }];\n *\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar TreeViewDragAnalyzer = /** @class */ (function () {\n /**\n * @param event - The event that will be analyzed.\n */\n function TreeViewDragAnalyzer(event) {\n this.event = event;\n this.initialized = false;\n this.destItemId = '';\n this.destTreeViewGuid = '';\n this.itemId = event.itemHierarchicalIndex;\n this.treeViewGuid = event.target.guid;\n }\n /**\n * The method which initializes the analyzer.\n * Invoke the method before you call any other methods.\n *\n * @returns - The analyzer object of the `drag` event.\n */\n TreeViewDragAnalyzer.prototype.init = function () {\n if (!this.initialized) {\n this.setDestimationMeta(document.elementFromPoint(this.event.clientX, this.event.clientY));\n this.initialized = true;\n }\n return this;\n };\n Object.defineProperty(TreeViewDragAnalyzer.prototype, \"isDropAllowed\", {\n /**\n * Returns `true` if dropping is allowed. Otherwise, returns `false`.\n */\n get: function () {\n if (this.initialized && this.destItemId && this.destTreeViewGuid) {\n // Disallow circular references.\n return !((\"\".concat(this.destTreeViewGuid, \"_\").concat(this.destItemId, \"_\")).\n startsWith(\"\".concat(this.treeViewGuid, \"_\").concat(this.itemId, \"_\")));\n }\n else {\n return false;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TreeViewDragAnalyzer.prototype, \"destinationMeta\", {\n /**\n * Returns an object which contains:\n * * The `itemHierarchicalIndex` of the destination item (the item below the dragged item) and\n * * The `guid` of the destination TreeView (the TreeView which renders the destination item).\n */\n get: function () {\n return { itemHierarchicalIndex: this.destItemId, treeViewGuid: this.destTreeViewGuid };\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Returns the specific drop operation.\n *\n * @returns - The following values are returned:\n * * `before`—Indicates that the dragged item is positioned at the beginning of the destination item.\n * * `after`—Indicates that the dragged item is positioned at the end of the destination item.\n * * `child`—Indicates that the dragged item is positioned in the middle of the destination item.\n * * `undefined`—Indicates that dropping is not allowed.\n */\n TreeViewDragAnalyzer.prototype.getDropOperation = function () {\n if (this.initialized && this.isDropAllowed) {\n var _a = this.destDomNodeWithMeta.getBoundingClientRect(), top_1 = _a.top, height = _a.height;\n if (top_1 + height - this.event.clientY < DROPZONE_BOUNDARY_DELTA) {\n return 'after';\n }\n else if (this.event.clientY - top_1 < DROPZONE_BOUNDARY_DELTA) {\n return 'before';\n }\n else {\n return 'child';\n }\n }\n else {\n return undefined;\n }\n };\n TreeViewDragAnalyzer.prototype.setDestimationMeta = function (element) {\n var node = element;\n while (node && !node[DOM_KENDO_ITEM_ID_FIELD]) {\n node = node.parentNode;\n }\n if (node && node[DOM_KENDO_ITEM_ID_FIELD]) {\n this.destDomNodeWithMeta = node;\n this.destItemId = node[DOM_KENDO_ITEM_ID_FIELD];\n this.destTreeViewGuid = node[DOM_KENDO_TREEVIEW_GUID_FIELD];\n }\n };\n return TreeViewDragAnalyzer;\n}());\nexport { TreeViewDragAnalyzer };\n","/**\n * @hidden\n */\nexport var EXPAND_FIELD = 'expanded';\n/**\n * @hidden\n */\nexport var TEXT_FIELD = 'text';\n/**\n * @hidden\n */\nexport var DISABLED_FIELD = 'disabled';\n/**\n * @hidden\n */\nexport var CHILDREN_FIELD = 'items';\n/**\n * @hidden\n */\nexport var HAS_CHILDREN_FIELD = 'hasChildren';\n/**\n * @hidden\n */\nexport var SELECT_FIELD = 'selected';\n/**\n * @hidden\n */\nexport var CHECK_FIELD = 'checked';\n/**\n * @hidden\n */\nexport var CHECK_INDETERMINATE_FIELD = 'checkIndeterminate';\n/**\n * @hidden\n */\nexport var DOM_KENDO_ITEM_ID_FIELD = '_kendoItemId';\n/**\n * @hidden\n */\nexport var DOM_KENDO_TREEVIEW_GUID_FIELD = '_kendoTreeViewGuid';\n","import { Keys } from '@progress/kendo-react-common';\nimport { isItemExpandedAndWithChildren, isEnabledAndAllParentsEnabled, treeIdUtils } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nexport default function getItemIdUponKeyboardNavigation(item, itemId, items, keyCode, fieldsSvc) {\n switch (keyCode) {\n case Keys.left:\n return getIdUponLeftKey();\n case Keys.right:\n return getIdUponRightKey();\n case Keys.up:\n return getIdUponUpKey();\n case Keys.down:\n return getIdUponDownKey();\n case Keys.home:\n return treeIdUtils.ZERO_LEVEL_ZERO_NODE_ID;\n case Keys.end:\n return getIdUponEndKey();\n default:\n return itemId;\n }\n function getIdUponLeftKey() {\n return treeIdUtils.isIdZeroLevel(itemId)\n // For expanded disabled items, navigate directly to the parent.\n // Collapse cannot happen because an event is not fired to the client.\n || (fieldsSvc.expanded(item) && isEnabledAndAllParentsEnabled(itemId, items, fieldsSvc)) ?\n itemId : treeIdUtils.getDirectParentId(itemId);\n }\n function getIdUponRightKey() {\n return isItemExpandedAndWithChildren(item, fieldsSvc) ? treeIdUtils.getFirstChildId(itemId) : itemId;\n }\n function getIdUponUpKey() {\n var index = Number(treeIdUtils.getShortId(itemId));\n var parentId = treeIdUtils.getDirectParentId(itemId);\n return index ? getLastNotOpenedChildId(treeIdUtils.createId(index - 1, parentId), items, fieldsSvc) :\n treeIdUtils.isIdZeroLevel(itemId) ? itemId : parentId;\n }\n function getIdUponDownKey() {\n if (isItemExpandedAndWithChildren(item, fieldsSvc)) {\n return treeIdUtils.getFirstChildId(itemId);\n }\n else {\n return getNextItemId(itemId, items, fieldsSvc) || itemId;\n }\n }\n function getIdUponEndKey() {\n var result = (items.length - 1).toString();\n var currentItem = items[items.length - 1];\n var children;\n while (isItemExpandedAndWithChildren(currentItem, fieldsSvc)) {\n children = currentItem[fieldsSvc.getChildrenField()];\n result = treeIdUtils.createId(children.length - 1, result);\n currentItem = children[children.length - 1];\n }\n return result;\n }\n}\nfunction getNextItemId(itemId, items, fieldsSvc) {\n var parentId = treeIdUtils.getDirectParentId(itemId);\n var parent = parentId ? treeIdUtils.getItemById(parentId, items, fieldsSvc.getChildrenField()) : undefined;\n var siblings = parent ? parent[fieldsSvc.getChildrenField()] : items;\n var index = Number(treeIdUtils.getShortId(itemId));\n return index < siblings.length - 1 ?\n treeIdUtils.createId(index + 1, parentId) :\n parent ? getNextItemId(parentId, items, fieldsSvc) : undefined;\n}\nfunction getLastNotOpenedChildId(itemId, items, fieldsSvc) {\n var item = treeIdUtils.getItemById(itemId, items, fieldsSvc.getChildrenField());\n if (isItemExpandedAndWithChildren(item, fieldsSvc)) {\n return getLastNotOpenedChildId(treeIdUtils.createId(item[fieldsSvc.getChildrenField()].length - 1, itemId), items, fieldsSvc);\n }\n else {\n return itemId;\n }\n}\n","const caretTrIcon = {\n name: 'caret-tr',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretBrIcon = {\n name: 'caret-br',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretBlIcon = {\n name: 'caret-bl',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretTlIcon = {\n name: 'caret-tl',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretAltUpIcon = {\n name: 'caret-alt-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretAltRightIcon = {\n name: 'caret-alt-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretAltDownIcon = {\n name: 'caret-alt-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretAltLeftIcon = {\n name: 'caret-alt-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretAltToTopIcon = {\n name: 'caret-alt-to-top',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretAltToRightIcon = {\n name: 'caret-alt-to-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretAltToBottomIcon = {\n name: 'caret-alt-to-bottom',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretAltToLeftIcon = {\n name: 'caret-alt-to-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretDoubleAltUpIcon = {\n name: 'caret-double-alt-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretDoubleAltRightIcon = {\n name: 'caret-double-alt-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretDoubleAltDownIcon = {\n name: 'caret-double-alt-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretDoubleAltLeftIcon = {\n name: 'caret-double-alt-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretAltExpandIcon = {\n name: 'caret-alt-expand',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowsNoChangeIcon = {\n name: 'arrows-no-change',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowOverflowDownIcon = {\n name: 'arrow-overflow-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chevronUpIcon = {\n name: 'chevron-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chevronRightIcon = {\n name: 'chevron-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chevronDownIcon = {\n name: 'chevron-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chevronLeftIcon = {\n name: 'chevron-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowUpIcon = {\n name: 'arrow-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowRightIcon = {\n name: 'arrow-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowDownIcon = {\n name: 'arrow-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowLeftIcon = {\n name: 'arrow-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst levelDownIcon = {\n name: 'level-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst levelUpIcon = {\n name: 'level-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst levelToTopIcon = {\n name: 'level-to-top',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst colResizeIcon = {\n name: 'col-resize',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowsAxesIcon = {\n name: 'arrows-axes',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowsSwapIcon = {\n name: 'arrows-swap',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dragAndDropIcon = {\n name: 'drag-and-drop',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst categorizeIcon = {\n name: 'categorize',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst gridIcon = {\n name: 'grid',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst gridLayoutIcon = {\n name: 'grid-layout',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst groupIcon = {\n name: 'group',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst ungroupIcon = {\n name: 'ungroup',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst handleDragIcon = {\n name: 'handle-drag',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst layoutIcon = {\n name: 'layout',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst layout1By4Icon = {\n name: 'layout-1-by-4',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst layout2By2Icon = {\n name: 'layout-2-by-2',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst layoutSideBySideIcon = {\n name: 'layout-side-by-side',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst layoutStackedIcon = {\n name: 'layout-stacked',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst columnsIcon = {\n name: 'columns',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rowsIcon = {\n name: 'rows',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst reorderIcon = {\n name: 'reorder',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst menuIcon = {\n name: 'menu',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst moreVerticalIcon = {\n name: 'more-vertical',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst moreHorizontalIcon = {\n name: 'more-horizontal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst overlapIcon = {\n name: 'overlap',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst homeIcon = {\n name: 'home',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowsLeftRightIcon = {\n name: 'arrows-left-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowsTopBottomIcon = {\n name: 'arrows-top-bottom',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderRadiusBottomLeftIcon = {\n name: 'border-radius-bottom-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderRadiusBottomRightIcon = {\n name: 'border-radius-bottom-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderRadiusTopLeftIcon = {\n name: 'border-radius-top-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderRadiusTopRightIcon = {\n name: 'border-radius-top-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderRadiusIcon = {\n name: 'border-radius',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderStyleBottomIcon = {\n name: 'border-style-bottom',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderStyleLeftIcon = {\n name: 'border-style-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderStyleRightIcon = {\n name: 'border-style-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderStyleTopIcon = {\n name: 'border-style-top',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderStyleIcon = {\n name: 'border-style',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst boxSizingIcon = {\n name: 'box-sizing',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chevronDoubleDownIcon = {\n name: 'chevron-double-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chevronDoubleLeftIcon = {\n name: 'chevron-double-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chevronDoubleRightIcon = {\n name: 'chevron-double-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chevronDoubleUpIcon = {\n name: 'chevron-double-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dataOdsIcon = {\n name: 'data-ods',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst nonRecurrenceIcon = {\n name: 'non-recurrence',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst displayBlockIcon = {\n name: 'display-block',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst displayFlexIcon = {\n name: 'display-flex',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst displayInlineFlexIcon = {\n name: 'display-inline-flex',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dropletSliderIcon = {\n name: 'droplet-slider',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileReportIcon = {\n name: 'file-report',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst gapColumnIcon = {\n name: 'gap-column',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst gapRowIcon = {\n name: 'gap-row',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst handleResizeAltIcon = {\n name: 'handle-resize-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst handleResizeIcon = {\n name: 'handle-resize',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst imagesIcon = {\n name: 'images',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst letterSpaceIcon = {\n name: 'letter-space',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst lineHeightIcon = {\n name: 'line-height',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listLatinBigIcon = {\n name: 'list-latin-big',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listLatinSmallIcon = {\n name: 'list-latin-small',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listRomanBigIcon = {\n name: 'list-roman-big',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listRomanSmallIcon = {\n name: 'list-roman-small',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listUnorderedOutlineIcon = {\n name: 'list-unordered-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listUnorderedSquareIcon = {\n name: 'list-unordered-square',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst maxHeightIcon = {\n name: 'max-height',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst maxWidthIcon = {\n name: 'max-width',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst minHeightIcon = {\n name: 'min-height',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst minWidthIcon = {\n name: 'min-width',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst outlineOffsetIcon = {\n name: 'outline-offset',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst outlineWidthIcon = {\n name: 'outline-width',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paddingBottomIcon = {\n name: 'padding-bottom',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paddingLeftIcon = {\n name: 'padding-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paddingRightIcon = {\n name: 'padding-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paddingTopIcon = {\n name: 'padding-top',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paddingIcon = {\n name: 'padding',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst positionBottomIcon = {\n name: 'position-bottom',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst positionLeftIcon = {\n name: 'position-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst positionRightIcon = {\n name: 'position-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst positionTopIcon = {\n name: 'position-top',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst regularExpressionIcon = {\n name: 'regular-expression',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst replaceAllIcon = {\n name: 'replace-all',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst replaceSingleIcon = {\n name: 'replace-single',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst reportElementIcon = {\n name: 'report-element',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rightDoubleQuotesIcon = {\n name: 'right-double-quotes',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst wholeWordIcon = {\n name: 'whole-word',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dataSdsIcon = {\n name: 'data-sds',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst downloadLightIcon = {\n name: 'download-light',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst eyeSlashIcon = {\n name: 'eye-slash',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst displayInlineBlockIcon = {\n name: 'display-inline-block',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paperPlaneIcon = {\n name: 'paper-plane',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst gaugeLinearIcon = {\n name: 'gauge-linear',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst gaugeRadialIcon = {\n name: 'gauge-radial',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst envelopeBoxIcon = {\n name: 'envelope-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst envelopeLinkIcon = {\n name: 'envelope-link',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst envelopeIcon = {\n name: 'envelope',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst warningCircleIcon = {\n name: 'warning-circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst warningTriangleIcon = {\n name: 'warning-triangle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fontGrowIcon = {\n name: 'font-grow',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fontShrinkIcon = {\n name: 'font-shrink',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst textOverflowIcon = {\n name: 'text-overflow',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst textWrapArrowIcon = {\n name: 'text-wrap-arrow',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst textTruncateIcon = {\n name: 'text-truncate',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst textClipIcon = {\n name: 'text-clip',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderColorIcon = {\n name: 'border-color',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderTypeIcon = {\n name: 'border-type',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst undoIcon = {\n name: 'undo',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst redoIcon = {\n name: 'redo',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowRotateCcwIcon = {\n name: 'arrow-rotate-ccw',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowRotateCwIcon = {\n name: 'arrow-rotate-cw',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowsNoRepeatIcon = {\n name: 'arrows-no-repeat',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowRotateCcwSmallIcon = {\n name: 'arrow-rotate-ccw-small',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowRotateCwSmallIcon = {\n name: 'arrow-rotate-cw-small',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clockIcon = {\n name: 'clock',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst calendarIcon = {\n name: 'calendar',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst saveIcon = {\n name: 'save',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst printIcon = {\n name: 'print',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst pencilIcon = {\n name: 'pencil',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst trashIcon = {\n name: 'trash',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paperclipIcon = {\n name: 'paperclip',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paperclipAltIcon = {\n name: 'paperclip-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst linkIcon = {\n name: 'link',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst unlinkIcon = {\n name: 'unlink',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst linkVerticalIcon = {\n name: 'link-vertical',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst unlinkVerticalIcon = {\n name: 'unlink-vertical',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst lockIcon = {\n name: 'lock',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst unlockIcon = {\n name: 'unlock',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cancelIcon = {\n name: 'cancel',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cancelOutlineIcon = {\n name: 'cancel-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cancelCircleIcon = {\n name: 'cancel-circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst checkIcon = {\n name: 'check',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst checkOutlineIcon = {\n name: 'check-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst checkCircleIcon = {\n name: 'check-circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst xIcon = {\n name: 'x',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst xOutlineIcon = {\n name: 'x-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst xCircleIcon = {\n name: 'x-circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst plusIcon = {\n name: 'plus',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst plusOutlineIcon = {\n name: 'plus-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst plusCircleIcon = {\n name: 'plus-circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst minusIcon = {\n name: 'minus',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst minusOutlineIcon = {\n name: 'minus-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst minusCircleIcon = {\n name: 'minus-circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst sortAscIcon = {\n name: 'sort-asc',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst sortDescIcon = {\n name: 'sort-desc',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst sortClearIcon = {\n name: 'sort-clear',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst sortAscSmallIcon = {\n name: 'sort-asc-small',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst sortDescSmallIcon = {\n name: 'sort-desc-small',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filterIcon = {\n name: 'filter',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filterClearIcon = {\n name: 'filter-clear',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filterSmallIcon = {\n name: 'filter-small',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filterSortAscSmallIcon = {\n name: 'filter-sort-asc-small',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filterSortDescSmallIcon = {\n name: 'filter-sort-desc-small',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filterAddExpressionIcon = {\n name: 'filter-add-expression',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filterAddGroupIcon = {\n name: 'filter-add-group',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst loginIcon = {\n name: 'login',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst logoutIcon = {\n name: 'logout',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst downloadIcon = {\n name: 'download',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst uploadIcon = {\n name: 'upload',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst hyperlinkOpenIcon = {\n name: 'hyperlink-open',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst hyperlinkOpenSmIcon = {\n name: 'hyperlink-open-sm',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst launchIcon = {\n name: 'launch',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst windowIcon = {\n name: 'window',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst windowRestoreIcon = {\n name: 'window-restore',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst windowMinimizeIcon = {\n name: 'window-minimize',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst gearIcon = {\n name: 'gear',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst gearsIcon = {\n name: 'gears',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst wrenchIcon = {\n name: 'wrench',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst eyeIcon = {\n name: 'eye',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst searchIcon = {\n name: 'search',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst zoomInIcon = {\n name: 'zoom-in',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst zoomOutIcon = {\n name: 'zoom-out',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowsMoveIcon = {\n name: 'arrows-move',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst calculatorIcon = {\n name: 'calculator',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cartIcon = {\n name: 'cart',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst connectorIcon = {\n name: 'connector',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst plusSmIcon = {\n name: 'plus-sm',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst minusSmIcon = {\n name: 'minus-sm',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst kpiStatusDenyIcon = {\n name: 'kpi-status-deny',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst kpiStatusHoldIcon = {\n name: 'kpi-status-hold',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst kpiStatusOpenIcon = {\n name: 'kpi-status-open',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst equalIcon = {\n name: 'equal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst notEqualIcon = {\n name: 'not-equal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst lessOrEqualIcon = {\n name: 'less-or-equal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst greaterOrEqualIcon = {\n name: 'greater-or-equal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst divideIcon = {\n name: 'divide',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst accessibilityIcon = {\n name: 'accessibility',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst barcodeOutlineIcon = {\n name: 'barcode-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst barcodeIcon = {\n name: 'barcode',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst barcodeScannerIcon = {\n name: 'barcode-scanner',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst qrCodeOutlineIcon = {\n name: 'qr-code-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst qrCodeIcon = {\n name: 'qr-code',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst qrCodeScannerIcon = {\n name: 'qr-code-scanner',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst barcodeQrCodeScannerIcon = {\n name: 'barcode-qr-code-scanner',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst signatureIcon = {\n name: 'signature',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst handIcon = {\n name: 'hand',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst pointerIcon = {\n name: 'pointer',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stickIcon = {\n name: 'stick',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst unstickIcon = {\n name: 'unstick',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst setColumnPositionIcon = {\n name: 'set-column-position',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clockArrowRotateIcon = {\n name: 'clock-arrow-rotate',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst playIcon = {\n name: 'play',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst pauseIcon = {\n name: 'pause',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stopIcon = {\n name: 'stop',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rewindIcon = {\n name: 'rewind',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst forwardIcon = {\n name: 'forward',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst volumeDownIcon = {\n name: 'volume-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst volumeUpIcon = {\n name: 'volume-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst volumeMuteIcon = {\n name: 'volume-mute',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst hdIcon = {\n name: 'hd',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst closedCaptionsIcon = {\n name: 'closed-captions',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst playlistIcon = {\n name: 'playlist',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst musicNotesIcon = {\n name: 'music-notes',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst playSmIcon = {\n name: 'play-sm',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst pauseSmIcon = {\n name: 'pause-sm',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stopSmIcon = {\n name: 'stop-sm',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst heartOutlineIcon = {\n name: 'heart-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst heartIcon = {\n name: 'heart',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst starOutlineIcon = {\n name: 'star-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst starIcon = {\n name: 'star',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst checkboxIcon = {\n name: 'checkbox',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst checkboxCheckedIcon = {\n name: 'checkbox-checked',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst checkboxIndeterminateIcon = {\n name: 'checkbox-indeterminate',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst checkboxNullIcon = {\n name: 'checkbox-null',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst circleIcon = {\n name: 'circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst radiobuttonIcon = {\n name: 'radiobutton',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst radiobuttonCheckedIcon = {\n name: 'radiobutton-checked',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bellIcon = {\n name: 'bell',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst infoCircleIcon = {\n name: 'info-circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst questionCircleIcon = {\n name: 'question-circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst exclamationCircleIcon = {\n name: 'exclamation-circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cameraIcon = {\n name: 'camera',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst imageIcon = {\n name: 'image',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst imageExportIcon = {\n name: 'image-export',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst zoomActualSizeIcon = {\n name: 'zoom-actual-size',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst zoomBestFitIcon = {\n name: 'zoom-best-fit',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst imageResizeIcon = {\n name: 'image-resize',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cropIcon = {\n name: 'crop',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst mirrorIcon = {\n name: 'mirror',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst flipHorizontalIcon = {\n name: 'flip-horizontal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst flipVerticalIcon = {\n name: 'flip-vertical',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rotateIcon = {\n name: 'rotate',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rotateRightIcon = {\n name: 'rotate-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rotateLeftIcon = {\n name: 'rotate-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst brushIcon = {\n name: 'brush',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paletteIcon = {\n name: 'palette',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dropletIcon = {\n name: 'droplet',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst shapeLineIcon = {\n name: 'shape-line',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst brightnessContrastIcon = {\n name: 'brightness-contrast',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst slidersIcon = {\n name: 'sliders',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst invertColorsIcon = {\n name: 'invert-colors',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst transparencyIcon = {\n name: 'transparency',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst grayscaleIcon = {\n name: 'grayscale',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst blurIcon = {\n name: 'blur',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst sharpenIcon = {\n name: 'sharpen',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst shapesIcon = {\n name: 'shapes',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst roundCornersIcon = {\n name: 'round-corners',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bringToFrontIcon = {\n name: 'bring-to-front',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bringToBackIcon = {\n name: 'bring-to-back',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bringForwardIcon = {\n name: 'bring-forward',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bringBackwardIcon = {\n name: 'bring-backward',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignSelfStartIcon = {\n name: 'align-self-start',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignSelfCenterIcon = {\n name: 'align-self-center',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignSelfEndIcon = {\n name: 'align-self-end',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignSelfStartAltIcon = {\n name: 'align-self-start-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignSelfCenterAltIcon = {\n name: 'align-self-center-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignSelfEndAltIcon = {\n name: 'align-self-end-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst thumbnailsUpIcon = {\n name: 'thumbnails-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst thumbnailsRightIcon = {\n name: 'thumbnails-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst thumbnailsDownIcon = {\n name: 'thumbnails-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst thumbnailsLeftIcon = {\n name: 'thumbnails-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fullscreenIcon = {\n name: 'fullscreen',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fullscreenExitIcon = {\n name: 'fullscreen-exit',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dropletSlashIcon = {\n name: 'droplet-slash',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst photosIcon = {\n name: 'photos',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignToGridIcon = {\n name: 'align-to-grid',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst sizeToGridIcon = {\n name: 'size-to-grid',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst makeSameSizeIcon = {\n name: 'make-same-size',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst makeSameWidthIcon = {\n name: 'make-same-width',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst makeSameHeightIcon = {\n name: 'make-same-height',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst makeHorizontalSpacingEqualIcon = {\n name: 'make-horizontal-spacing-equal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst increaseHorizontalSpacingIcon = {\n name: 'increase-horizontal-spacing',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst decreaseHorizontalSpacingIcon = {\n name: 'decrease-horizontal-spacing',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst removeHorizontalSpacingIcon = {\n name: 'remove-horizontal-spacing',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst makeVerticalSpacingEqualIcon = {\n name: 'make-vertical-spacing-equal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst increaseVerticalSpacingIcon = {\n name: 'increase-vertical-spacing',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst decreaseVerticalSpacingIcon = {\n name: 'decrease-vertical-spacing',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst removeVerticalSpacingIcon = {\n name: 'remove-vertical-spacing',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst eyedropperIcon = {\n name: 'eyedropper',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst snapGridIcon = {\n name: 'snap-grid',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst snapToGridlinesIcon = {\n name: 'snap-to-gridlines',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst snapToSnaplinesIcon = {\n name: 'snap-to-snaplines',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dimensionsIcon = {\n name: 'dimensions',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignSelfStretchIcon = {\n name: 'align-self-stretch',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignSelfStretchAltIcon = {\n name: 'align-self-stretch-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsStartIcon = {\n name: 'align-items-start',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsCenterIcon = {\n name: 'align-items-center',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsEndIcon = {\n name: 'align-items-end',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsStretchIcon = {\n name: 'align-items-stretch',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsBaselineIcon = {\n name: 'align-items-baseline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsStartAltIcon = {\n name: 'align-items-start-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsCenterAltIcon = {\n name: 'align-items-center-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsEndAltIcon = {\n name: 'align-items-end-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsStretchAltIcon = {\n name: 'align-items-stretch-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsBaselineAltIcon = {\n name: 'align-items-baseline-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentStartIcon = {\n name: 'justify-content-start',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentCenterIcon = {\n name: 'justify-content-center',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentEndIcon = {\n name: 'justify-content-end',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentBetweenIcon = {\n name: 'justify-content-between',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentAroundIcon = {\n name: 'justify-content-around',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentStartAltIcon = {\n name: 'justify-content-start-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentCenterAltIcon = {\n name: 'justify-content-center-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentEndAltIcon = {\n name: 'justify-content-end-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentBetweenAltIcon = {\n name: 'justify-content-between-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentAroundAltIcon = {\n name: 'justify-content-around-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileWrenchIcon = {\n name: 'file-wrench',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst boldIcon = {\n name: 'bold',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst italicIcon = {\n name: 'italic',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst underlineIcon = {\n name: 'underline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fontFamilyIcon = {\n name: 'font-family',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst foregroundColorIcon = {\n name: 'foreground-color',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst convertLowercaseIcon = {\n name: 'convert-lowercase',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst convertUppercaseIcon = {\n name: 'convert-uppercase',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst strikethroughIcon = {\n name: 'strikethrough',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst subscriptIcon = {\n name: 'subscript',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst supscriptIcon = {\n name: 'supscript',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst divIcon = {\n name: 'div',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst allIcon = {\n name: 'all',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst h1Icon = {\n name: 'h1',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst h2Icon = {\n name: 'h2',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst h3Icon = {\n name: 'h3',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst h4Icon = {\n name: 'h4',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst h5Icon = {\n name: 'h5',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst h6Icon = {\n name: 'h6',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listOrderedIcon = {\n name: 'list-ordered',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listUnorderedIcon = {\n name: 'list-unordered',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst indentIcon = {\n name: 'indent',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst outdentIcon = {\n name: 'outdent',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst insertTopIcon = {\n name: 'insert-top',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst insertMiddleIcon = {\n name: 'insert-middle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst insertBottomIcon = {\n name: 'insert-bottom',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignTopIcon = {\n name: 'align-top',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignMiddleIcon = {\n name: 'align-middle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignBottomIcon = {\n name: 'align-bottom',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignLeftIcon = {\n name: 'align-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignCenterIcon = {\n name: 'align-center',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignRightIcon = {\n name: 'align-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignJustifyIcon = {\n name: 'align-justify',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignRemoveIcon = {\n name: 'align-remove',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst textWrapIcon = {\n name: 'text-wrap',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst horizontalRuleIcon = {\n name: 'horizontal-rule',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignTopLeftIcon = {\n name: 'table-align-top-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignTopCenterIcon = {\n name: 'table-align-top-center',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignTopRightIcon = {\n name: 'table-align-top-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignMiddleLeftIcon = {\n name: 'table-align-middle-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignMiddleCenterIcon = {\n name: 'table-align-middle-center',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignMiddleRightIcon = {\n name: 'table-align-middle-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignBottomLeftIcon = {\n name: 'table-align-bottom-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignBottomCenterIcon = {\n name: 'table-align-bottom-center',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignBottomRightIcon = {\n name: 'table-align-bottom-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignRemoveIcon = {\n name: 'table-align-remove',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bordersAllIcon = {\n name: 'borders-all',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bordersOutsideIcon = {\n name: 'borders-outside',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bordersInsideIcon = {\n name: 'borders-inside',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bordersInsideHorizontalIcon = {\n name: 'borders-inside-horizontal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bordersInsideVerticalIcon = {\n name: 'borders-inside-vertical',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderTopIcon = {\n name: 'border-top',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderBottomIcon = {\n name: 'border-bottom',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderLeftIcon = {\n name: 'border-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderRightIcon = {\n name: 'border-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bordersNoneIcon = {\n name: 'borders-none',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bordersShowHideIcon = {\n name: 'borders-show-hide',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst formIcon = {\n name: 'form',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst formElementIcon = {\n name: 'form-element',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst codeSnippetIcon = {\n name: 'code-snippet',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst selectAllIcon = {\n name: 'select-all',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst buttonIcon = {\n name: 'button',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst selectBoxIcon = {\n name: 'select-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst calendarDateIcon = {\n name: 'calendar-date',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst groupBoxIcon = {\n name: 'group-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst textareaIcon = {\n name: 'textarea',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst textboxIcon = {\n name: 'textbox',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst textboxHiddenIcon = {\n name: 'textbox-hidden',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst passwordIcon = {\n name: 'password',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paragraphAddIcon = {\n name: 'paragraph-add',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst editToolsIcon = {\n name: 'edit-tools',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst templateManagerIcon = {\n name: 'template-manager',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst changeManuallyIcon = {\n name: 'change-manually',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst trackChangesIcon = {\n name: 'track-changes',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst trackChangesEnableIcon = {\n name: 'track-changes-enable',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst trackChangesAcceptIcon = {\n name: 'track-changes-accept',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst trackChangesAcceptAllIcon = {\n name: 'track-changes-accept-all',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst trackChangesRejectIcon = {\n name: 'track-changes-reject',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst trackChangesRejectAllIcon = {\n name: 'track-changes-reject-all',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst documentManagerIcon = {\n name: 'document-manager',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst customIconIcon = {\n name: 'custom-icon',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bookIcon = {\n name: 'book',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst imageAddIcon = {\n name: 'image-add',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst imageEditIcon = {\n name: 'image-edit',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst imageMapEditorIcon = {\n name: 'image-map-editor',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst commentIcon = {\n name: 'comment',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst commentRemoveIcon = {\n name: 'comment-remove',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst commentsRemoveIcon = {\n name: 'comments-remove',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst silverlightIcon = {\n name: 'silverlight',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst mediaManagerIcon = {\n name: 'media-manager',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst videoExternalIcon = {\n name: 'video-external',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst flashManagerIcon = {\n name: 'flash-manager',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst binocularsIcon = {\n name: 'binoculars',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst copyIcon = {\n name: 'copy',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cutIcon = {\n name: 'cut',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clipboardIcon = {\n name: 'clipboard',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clipboardCodeIcon = {\n name: 'clipboard-code',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clipboardWordIcon = {\n name: 'clipboard-word',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clipboardWordAltIcon = {\n name: 'clipboard-word-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clipboardHtmlIcon = {\n name: 'clipboard-html',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clipboardMarkdownIcon = {\n name: 'clipboard-markdown',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clipboardTextIcon = {\n name: 'clipboard-text',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst applyFormatIcon = {\n name: 'apply-format',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clearCssIcon = {\n name: 'clear-css',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst copyFormatIcon = {\n name: 'copy-format',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stripAllFormattingIcon = {\n name: 'strip-all-formatting',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stripCssFormatIcon = {\n name: 'strip-css-format',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stripFontElementsIcon = {\n name: 'strip-font-elements',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stripSpanElementsIcon = {\n name: 'strip-span-elements',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stripWordFormattingIcon = {\n name: 'strip-word-formatting',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst formatCodeBlockIcon = {\n name: 'format-code-block',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst buildingBlocksIcon = {\n name: 'building-blocks',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst puzzlePieceIcon = {\n name: 'puzzle-piece',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst linkAddIcon = {\n name: 'link-add',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst globeLinkIcon = {\n name: 'globe-link',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst globeUnlinkIcon = {\n name: 'globe-unlink',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst envelopLinkIcon = {\n name: 'envelop-link',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst anchorIcon = {\n name: 'anchor',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAddIcon = {\n name: 'table-add',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableIcon = {\n name: 'table',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tablePropertiesIcon = {\n name: 'table-properties',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableCellIcon = {\n name: 'table-cell',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableCellPropertiesIcon = {\n name: 'table-cell-properties',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableColumnInsertLeftIcon = {\n name: 'table-column-insert-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableColumnInsertRightIcon = {\n name: 'table-column-insert-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableRowInsertAboveIcon = {\n name: 'table-row-insert-above',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableRowInsertBelowIcon = {\n name: 'table-row-insert-below',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableColumnDeleteIcon = {\n name: 'table-column-delete',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableRowDeleteIcon = {\n name: 'table-row-delete',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableCellDeleteIcon = {\n name: 'table-cell-delete',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableDeleteIcon = {\n name: 'table-delete',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cellsMergeIcon = {\n name: 'cells-merge',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cellsMergeHorizontallyIcon = {\n name: 'cells-merge-horizontally',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cellsMergeVerticallyIcon = {\n name: 'cells-merge-vertically',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cellSplitHorizontallyIcon = {\n name: 'cell-split-horizontally',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cellSplitVerticallyIcon = {\n name: 'cell-split-vertically',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableUnmergeIcon = {\n name: 'table-unmerge',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paneFreezeIcon = {\n name: 'pane-freeze',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rowFreezeIcon = {\n name: 'row-freeze',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst columnFreezeIcon = {\n name: 'column-freeze',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst toolbarFloatIcon = {\n name: 'toolbar-float',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst spellCheckerIcon = {\n name: 'spell-checker',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst validationXhtmlIcon = {\n name: 'validation-xhtml',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst validationDataIcon = {\n name: 'validation-data',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst toggleFullScreenModeIcon = {\n name: 'toggle-full-screen-mode',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst formulaFxIcon = {\n name: 'formula-fx',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst sumIcon = {\n name: 'sum',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst symbolIcon = {\n name: 'symbol',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dollarIcon = {\n name: 'dollar',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst percentIcon = {\n name: 'percent',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst customFormatIcon = {\n name: 'custom-format',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst decimalIncreaseIcon = {\n name: 'decimal-increase',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst decimalDecreaseIcon = {\n name: 'decimal-decrease',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fontSizeIcon = {\n name: 'font-size',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst imageAbsolutePositionIcon = {\n name: 'image-absolute-position',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableWizardIcon = {\n name: 'table-wizard',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst crosstabIcon = {\n name: 'crosstab',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst crosstabWizardIcon = {\n name: 'crosstab-wizard',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableBodyIcon = {\n name: 'table-body',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableColumnGroupsIcon = {\n name: 'table-column-groups',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableCornerIcon = {\n name: 'table-corner',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableRowGroupsIcon = {\n name: 'table-row-groups',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst globeOutlineIcon = {\n name: 'globe-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst globeIcon = {\n name: 'globe',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst mapMarkerIcon = {\n name: 'map-marker',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst mapMarkerTargetIcon = {\n name: 'map-marker-target',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst pinIcon = {\n name: 'pin',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst unpinIcon = {\n name: 'unpin',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst shareIcon = {\n name: 'share',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst userIcon = {\n name: 'user',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst inboxIcon = {\n name: 'inbox',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bloggerIcon = {\n name: 'blogger',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bloggerBoxIcon = {\n name: 'blogger-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst deliciousIcon = {\n name: 'delicious',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst deliciousBoxIcon = {\n name: 'delicious-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst diggIcon = {\n name: 'digg',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst diggBoxIcon = {\n name: 'digg-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst envelopIcon = {\n name: 'envelop',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst envelopBoxIcon = {\n name: 'envelop-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst facebookIcon = {\n name: 'facebook',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst facebookBoxIcon = {\n name: 'facebook-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst googleIcon = {\n name: 'google',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst googleBoxIcon = {\n name: 'google-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst googlePlusIcon = {\n name: 'google-plus',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst googlePlusBoxIcon = {\n name: 'google-plus-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst linkedinIcon = {\n name: 'linkedin',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst linkedinBoxIcon = {\n name: 'linkedin-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst myspaceIcon = {\n name: 'myspace',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst myspaceBoxIcon = {\n name: 'myspace-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst pinterestIcon = {\n name: 'pinterest',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst pinterestBoxIcon = {\n name: 'pinterest-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst redditIcon = {\n name: 'reddit',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst redditBoxIcon = {\n name: 'reddit-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stumbleUponIcon = {\n name: 'stumble-upon',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stumbleUponBoxIcon = {\n name: 'stumble-upon-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tellAFriendIcon = {\n name: 'tell-a-friend',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tellAFriendBoxIcon = {\n name: 'tell-a-friend-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tumblrIcon = {\n name: 'tumblr',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tumblrBoxIcon = {\n name: 'tumblr-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst twitterIcon = {\n name: 'twitter',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst twitterBoxIcon = {\n name: 'twitter-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst yammerIcon = {\n name: 'yammer',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst yammerBoxIcon = {\n name: 'yammer-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst behanceIcon = {\n name: 'behance',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst behanceBoxIcon = {\n name: 'behance-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dribbbleIcon = {\n name: 'dribbble',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dribbbleBoxIcon = {\n name: 'dribbble-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rssIcon = {\n name: 'rss',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rssBoxIcon = {\n name: 'rss-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst vimeoIcon = {\n name: 'vimeo',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst vimeoBoxIcon = {\n name: 'vimeo-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst youtubeIcon = {\n name: 'youtube',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst youtubeBoxIcon = {\n name: 'youtube-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst folderIcon = {\n name: 'folder',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst folderOpenIcon = {\n name: 'folder-open',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst folderAddIcon = {\n name: 'folder-add',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst folderUpIcon = {\n name: 'folder-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst folderMoreIcon = {\n name: 'folder-more',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst aggregateFieldsIcon = {\n name: 'aggregate-fields',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileIcon = {\n name: 'file',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileAddIcon = {\n name: 'file-add',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileTxtIcon = {\n name: 'file-txt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileCsvIcon = {\n name: 'file-csv',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileExcelIcon = {\n name: 'file-excel',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileWordIcon = {\n name: 'file-word',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileMdbIcon = {\n name: 'file-mdb',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filePptIcon = {\n name: 'file-ppt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filePdfIcon = {\n name: 'file-pdf',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filePsdIcon = {\n name: 'file-psd',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileFlashIcon = {\n name: 'file-flash',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileConfigIcon = {\n name: 'file-config',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileAscxIcon = {\n name: 'file-ascx',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileBacIcon = {\n name: 'file-bac',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileZipIcon = {\n name: 'file-zip',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filmIcon = {\n name: 'film',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst css3Icon = {\n name: 'css3',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst html5Icon = {\n name: 'html5',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst codeIcon = {\n name: 'code',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cssIcon = {\n name: 'css',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst jsIcon = {\n name: 'js',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst exeIcon = {\n name: 'exe',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst csprojIcon = {\n name: 'csproj',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst vbprojIcon = {\n name: 'vbproj',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst csIcon = {\n name: 'cs',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst vbIcon = {\n name: 'vb',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst slnIcon = {\n name: 'sln',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cloudIcon = {\n name: 'cloud',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileHorizontalIcon = {\n name: 'file-horizontal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst subreportIcon = {\n name: 'subreport',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dataIcon = {\n name: 'data',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileHeaderIcon = {\n name: 'file-header',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileFooterIcon = {\n name: 'file-footer',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst groupHeaderSectionIcon = {\n name: 'group-header-section',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst groupFooterSectionIcon = {\n name: 'group-footer-section',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst pageHeaderSectionIcon = {\n name: 'page-header-section',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst pageFooterSectionIcon = {\n name: 'page-footer-section',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst detailSectionIcon = {\n name: 'detail-section',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tocSectionIcon = {\n name: 'toc-section',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst groupSectionIcon = {\n name: 'group-section',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst parametersIcon = {\n name: 'parameters',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dataCsvIcon = {\n name: 'data-csv',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dataJsonIcon = {\n name: 'data-json',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dataSqlIcon = {\n name: 'data-sql',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dataWebIcon = {\n name: 'data-web',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst groupCollectionIcon = {\n name: 'group-collection',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst parameterBooleanIcon = {\n name: 'parameter-boolean',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst parameterDateTimeIcon = {\n name: 'parameter-date-time',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst parameterFloatIcon = {\n name: 'parameter-float',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst parameterIntegerIcon = {\n name: 'parameter-integer',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst parameterStringIcon = {\n name: 'parameter-string',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tocSectionLevelIcon = {\n name: 'toc-section-level',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst inheritedIcon = {\n name: 'inherited',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileVideoIcon = {\n name: 'file-video',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileAudioIcon = {\n name: 'file-audio',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileImageIcon = {\n name: 'file-image',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filePresentationIcon = {\n name: 'file-presentation',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileDataIcon = {\n name: 'file-data',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileDiscImageIcon = {\n name: 'file-disc-image',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileProgrammingIcon = {\n name: 'file-programming',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst parametersByteArrayIcon = {\n name: 'parameters-byte-array',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst parametersUnknownIcon = {\n name: 'parameters-unknown',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileErrorIcon = {\n name: 'file-error',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filesErrorIcon = {\n name: 'files-error',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dataRestIcon = {\n name: 'data-rest',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileTypescriptIcon = {\n name: 'file-typescript',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tablePositionStartIcon = {\n name: 'table-position-start',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tablePositionCenterIcon = {\n name: 'table-position-center',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tablePositionEndIcon = {\n name: 'table-position-end',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listRomanUpperIcon = {\n name: 'list-roman-upper',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listRomanLowerIcon = {\n name: 'list-roman-lower',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst importIcon = {\n name: 'import',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst exportIcon = {\n name: 'export',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst graphIcon = {\n name: 'graph',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartColumnClusteredIcon = {\n name: 'chart-column-clustered',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartColumnStackedIcon = {\n name: 'chart-column-stacked',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartColumnStacked100Icon = {\n name: 'chart-column-stacked100',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartColumnRangeIcon = {\n name: 'chart-column-range',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartBarClusteredIcon = {\n name: 'chart-bar-clustered',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartBarStackedIcon = {\n name: 'chart-bar-stacked',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartBarStacked100Icon = {\n name: 'chart-bar-stacked100',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartBarRangeIcon = {\n name: 'chart-bar-range',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartAreaClusteredIcon = {\n name: 'chart-area-clustered',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartAreaStackedIcon = {\n name: 'chart-area-stacked',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartAreaStacked100Icon = {\n name: 'chart-area-stacked100',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartAreaRangeIcon = {\n name: 'chart-area-range',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartLineIcon = {\n name: 'chart-line',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartLineStackedIcon = {\n name: 'chart-line-stacked',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartLineStacked100Icon = {\n name: 'chart-line-stacked100',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartLineMarkersIcon = {\n name: 'chart-line-markers',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartLineStackedMarkersIcon = {\n name: 'chart-line-stacked-markers',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartLineStacked100MarkersIcon = {\n name: 'chart-line-stacked100-markers',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartPieIcon = {\n name: 'chart-pie',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartDoughnutIcon = {\n name: 'chart-doughnut',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartScatterIcon = {\n name: 'chart-scatter',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartScatterSmoothLinesMarkersIcon = {\n name: 'chart-scatter-smooth-lines-markers',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartScatterSmoothLinesIcon = {\n name: 'chart-scatter-smooth-lines',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartScatterStraightLinesMarkersIcon = {\n name: 'chart-scatter-straight-lines-markers',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartScatterStraightLinesIcon = {\n name: 'chart-scatter-straight-lines',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartBubbleIcon = {\n name: 'chart-bubble',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartCandlestickIcon = {\n name: 'chart-candlestick',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartOhlcIcon = {\n name: 'chart-ohlc',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartRadarIcon = {\n name: 'chart-radar',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartRadarMarkersIcon = {\n name: 'chart-radar-markers',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartRadarFilledIcon = {\n name: 'chart-radar-filled',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartRoseIcon = {\n name: 'chart-rose',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartChoroplethIcon = {\n name: 'chart-choropleth',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nexport { accessibilityIcon, aggregateFieldsIcon, alignBottomIcon, alignCenterIcon, alignItemsBaselineAltIcon, alignItemsBaselineIcon, alignItemsCenterAltIcon, alignItemsCenterIcon, alignItemsEndAltIcon, alignItemsEndIcon, alignItemsStartAltIcon, alignItemsStartIcon, alignItemsStretchAltIcon, alignItemsStretchIcon, alignJustifyIcon, alignLeftIcon, alignMiddleIcon, alignRemoveIcon, alignRightIcon, alignSelfCenterAltIcon, alignSelfCenterIcon, alignSelfEndAltIcon, alignSelfEndIcon, alignSelfStartAltIcon, alignSelfStartIcon, alignSelfStretchAltIcon, alignSelfStretchIcon, alignToGridIcon, alignTopIcon, allIcon, anchorIcon, applyFormatIcon, arrowDownIcon, arrowLeftIcon, arrowOverflowDownIcon, arrowRightIcon, arrowRotateCcwIcon, arrowRotateCcwSmallIcon, arrowRotateCwIcon, arrowRotateCwSmallIcon, arrowUpIcon, arrowsAxesIcon, arrowsLeftRightIcon, arrowsMoveIcon, arrowsNoChangeIcon, arrowsNoRepeatIcon, arrowsSwapIcon, arrowsTopBottomIcon, barcodeIcon, barcodeOutlineIcon, barcodeQrCodeScannerIcon, barcodeScannerIcon, behanceBoxIcon, behanceIcon, bellIcon, binocularsIcon, bloggerBoxIcon, bloggerIcon, blurIcon, boldIcon, bookIcon, borderBottomIcon, borderColorIcon, borderLeftIcon, borderRadiusBottomLeftIcon, borderRadiusBottomRightIcon, borderRadiusIcon, borderRadiusTopLeftIcon, borderRadiusTopRightIcon, borderRightIcon, borderStyleBottomIcon, borderStyleIcon, borderStyleLeftIcon, borderStyleRightIcon, borderStyleTopIcon, borderTopIcon, borderTypeIcon, bordersAllIcon, bordersInsideHorizontalIcon, bordersInsideIcon, bordersInsideVerticalIcon, bordersNoneIcon, bordersOutsideIcon, bordersShowHideIcon, boxSizingIcon, brightnessContrastIcon, bringBackwardIcon, bringForwardIcon, bringToBackIcon, bringToFrontIcon, brushIcon, buildingBlocksIcon, buttonIcon, calculatorIcon, calendarDateIcon, calendarIcon, cameraIcon, cancelCircleIcon, cancelIcon, cancelOutlineIcon, caretAltDownIcon, caretAltExpandIcon, caretAltLeftIcon, caretAltRightIcon, caretAltToBottomIcon, caretAltToLeftIcon, caretAltToRightIcon, caretAltToTopIcon, caretAltUpIcon, caretBlIcon, caretBrIcon, caretDoubleAltDownIcon, caretDoubleAltLeftIcon, caretDoubleAltRightIcon, caretDoubleAltUpIcon, caretTlIcon, caretTrIcon, cartIcon, categorizeIcon, cellSplitHorizontallyIcon, cellSplitVerticallyIcon, cellsMergeHorizontallyIcon, cellsMergeIcon, cellsMergeVerticallyIcon, changeManuallyIcon, chartAreaClusteredIcon, chartAreaRangeIcon, chartAreaStacked100Icon, chartAreaStackedIcon, chartBarClusteredIcon, chartBarRangeIcon, chartBarStacked100Icon, chartBarStackedIcon, chartBubbleIcon, chartCandlestickIcon, chartChoroplethIcon, chartColumnClusteredIcon, chartColumnRangeIcon, chartColumnStacked100Icon, chartColumnStackedIcon, chartDoughnutIcon, chartLineIcon, chartLineMarkersIcon, chartLineStacked100Icon, chartLineStacked100MarkersIcon, chartLineStackedIcon, chartLineStackedMarkersIcon, chartOhlcIcon, chartPieIcon, chartRadarFilledIcon, chartRadarIcon, chartRadarMarkersIcon, chartRoseIcon, chartScatterIcon, chartScatterSmoothLinesIcon, chartScatterSmoothLinesMarkersIcon, chartScatterStraightLinesIcon, chartScatterStraightLinesMarkersIcon, checkCircleIcon, checkIcon, checkOutlineIcon, checkboxCheckedIcon, checkboxIcon, checkboxIndeterminateIcon, checkboxNullIcon, chevronDoubleDownIcon, chevronDoubleLeftIcon, chevronDoubleRightIcon, chevronDoubleUpIcon, chevronDownIcon, chevronLeftIcon, chevronRightIcon, chevronUpIcon, circleIcon, clearCssIcon, clipboardCodeIcon, clipboardHtmlIcon, clipboardIcon, clipboardMarkdownIcon, clipboardTextIcon, clipboardWordAltIcon, clipboardWordIcon, clockArrowRotateIcon, clockIcon, closedCaptionsIcon, cloudIcon, codeIcon, codeSnippetIcon, colResizeIcon, columnFreezeIcon, columnsIcon, commentIcon, commentRemoveIcon, commentsRemoveIcon, connectorIcon, convertLowercaseIcon, convertUppercaseIcon, copyFormatIcon, copyIcon, cropIcon, crosstabIcon, crosstabWizardIcon, csIcon, csprojIcon, css3Icon, cssIcon, customFormatIcon, customIconIcon, cutIcon, dataCsvIcon, dataIcon, dataJsonIcon, dataOdsIcon, dataRestIcon, dataSdsIcon, dataSqlIcon, dataWebIcon, decimalDecreaseIcon, decimalIncreaseIcon, decreaseHorizontalSpacingIcon, decreaseVerticalSpacingIcon, deliciousBoxIcon, deliciousIcon, detailSectionIcon, diggBoxIcon, diggIcon, dimensionsIcon, displayBlockIcon, displayFlexIcon, displayInlineBlockIcon, displayInlineFlexIcon, divIcon, divideIcon, documentManagerIcon, dollarIcon, downloadIcon, downloadLightIcon, dragAndDropIcon, dribbbleBoxIcon, dribbbleIcon, dropletIcon, dropletSlashIcon, dropletSliderIcon, editToolsIcon, envelopBoxIcon, envelopIcon, envelopLinkIcon, envelopeBoxIcon, envelopeIcon, envelopeLinkIcon, equalIcon, exclamationCircleIcon, exeIcon, exportIcon, eyeIcon, eyeSlashIcon, eyedropperIcon, facebookBoxIcon, facebookIcon, fileAddIcon, fileAscxIcon, fileAudioIcon, fileBacIcon, fileConfigIcon, fileCsvIcon, fileDataIcon, fileDiscImageIcon, fileErrorIcon, fileExcelIcon, fileFlashIcon, fileFooterIcon, fileHeaderIcon, fileHorizontalIcon, fileIcon, fileImageIcon, fileMdbIcon, filePdfIcon, filePptIcon, filePresentationIcon, fileProgrammingIcon, filePsdIcon, fileReportIcon, fileTxtIcon, fileTypescriptIcon, fileVideoIcon, fileWordIcon, fileWrenchIcon, fileZipIcon, filesErrorIcon, filmIcon, filterAddExpressionIcon, filterAddGroupIcon, filterClearIcon, filterIcon, filterSmallIcon, filterSortAscSmallIcon, filterSortDescSmallIcon, flashManagerIcon, flipHorizontalIcon, flipVerticalIcon, folderAddIcon, folderIcon, folderMoreIcon, folderOpenIcon, folderUpIcon, fontFamilyIcon, fontGrowIcon, fontShrinkIcon, fontSizeIcon, foregroundColorIcon, formElementIcon, formIcon, formatCodeBlockIcon, formulaFxIcon, forwardIcon, fullscreenExitIcon, fullscreenIcon, gapColumnIcon, gapRowIcon, gaugeLinearIcon, gaugeRadialIcon, gearIcon, gearsIcon, globeIcon, globeLinkIcon, globeOutlineIcon, globeUnlinkIcon, googleBoxIcon, googleIcon, googlePlusBoxIcon, googlePlusIcon, graphIcon, grayscaleIcon, greaterOrEqualIcon, gridIcon, gridLayoutIcon, groupBoxIcon, groupCollectionIcon, groupFooterSectionIcon, groupHeaderSectionIcon, groupIcon, groupSectionIcon, h1Icon, h2Icon, h3Icon, h4Icon, h5Icon, h6Icon, handIcon, handleDragIcon, handleResizeAltIcon, handleResizeIcon, hdIcon, heartIcon, heartOutlineIcon, homeIcon, horizontalRuleIcon, html5Icon, hyperlinkOpenIcon, hyperlinkOpenSmIcon, imageAbsolutePositionIcon, imageAddIcon, imageEditIcon, imageExportIcon, imageIcon, imageMapEditorIcon, imageResizeIcon, imagesIcon, importIcon, inboxIcon, increaseHorizontalSpacingIcon, increaseVerticalSpacingIcon, indentIcon, infoCircleIcon, inheritedIcon, insertBottomIcon, insertMiddleIcon, insertTopIcon, invertColorsIcon, italicIcon, jsIcon, justifyContentAroundAltIcon, justifyContentAroundIcon, justifyContentBetweenAltIcon, justifyContentBetweenIcon, justifyContentCenterAltIcon, justifyContentCenterIcon, justifyContentEndAltIcon, justifyContentEndIcon, justifyContentStartAltIcon, justifyContentStartIcon, kpiStatusDenyIcon, kpiStatusHoldIcon, kpiStatusOpenIcon, launchIcon, layout1By4Icon, layout2By2Icon, layoutIcon, layoutSideBySideIcon, layoutStackedIcon, lessOrEqualIcon, letterSpaceIcon, levelDownIcon, levelToTopIcon, levelUpIcon, lineHeightIcon, linkAddIcon, linkIcon, linkVerticalIcon, linkedinBoxIcon, linkedinIcon, listLatinBigIcon, listLatinSmallIcon, listOrderedIcon, listRomanBigIcon, listRomanLowerIcon, listRomanSmallIcon, listRomanUpperIcon, listUnorderedIcon, listUnorderedOutlineIcon, listUnorderedSquareIcon, lockIcon, loginIcon, logoutIcon, makeHorizontalSpacingEqualIcon, makeSameHeightIcon, makeSameSizeIcon, makeSameWidthIcon, makeVerticalSpacingEqualIcon, mapMarkerIcon, mapMarkerTargetIcon, maxHeightIcon, maxWidthIcon, mediaManagerIcon, menuIcon, minHeightIcon, minWidthIcon, minusCircleIcon, minusIcon, minusOutlineIcon, minusSmIcon, mirrorIcon, moreHorizontalIcon, moreVerticalIcon, musicNotesIcon, myspaceBoxIcon, myspaceIcon, nonRecurrenceIcon, notEqualIcon, outdentIcon, outlineOffsetIcon, outlineWidthIcon, overlapIcon, paddingBottomIcon, paddingIcon, paddingLeftIcon, paddingRightIcon, paddingTopIcon, pageFooterSectionIcon, pageHeaderSectionIcon, paletteIcon, paneFreezeIcon, paperPlaneIcon, paperclipAltIcon, paperclipIcon, paragraphAddIcon, parameterBooleanIcon, parameterDateTimeIcon, parameterFloatIcon, parameterIntegerIcon, parameterStringIcon, parametersByteArrayIcon, parametersIcon, parametersUnknownIcon, passwordIcon, pauseIcon, pauseSmIcon, pencilIcon, percentIcon, photosIcon, pinIcon, pinterestBoxIcon, pinterestIcon, playIcon, playSmIcon, playlistIcon, plusCircleIcon, plusIcon, plusOutlineIcon, plusSmIcon, pointerIcon, positionBottomIcon, positionLeftIcon, positionRightIcon, positionTopIcon, printIcon, puzzlePieceIcon, qrCodeIcon, qrCodeOutlineIcon, qrCodeScannerIcon, questionCircleIcon, radiobuttonCheckedIcon, radiobuttonIcon, redditBoxIcon, redditIcon, redoIcon, regularExpressionIcon, removeHorizontalSpacingIcon, removeVerticalSpacingIcon, reorderIcon, replaceAllIcon, replaceSingleIcon, reportElementIcon, rewindIcon, rightDoubleQuotesIcon, rotateIcon, rotateLeftIcon, rotateRightIcon, roundCornersIcon, rowFreezeIcon, rowsIcon, rssBoxIcon, rssIcon, saveIcon, searchIcon, selectAllIcon, selectBoxIcon, setColumnPositionIcon, shapeLineIcon, shapesIcon, shareIcon, sharpenIcon, signatureIcon, silverlightIcon, sizeToGridIcon, slidersIcon, slnIcon, snapGridIcon, snapToGridlinesIcon, snapToSnaplinesIcon, sortAscIcon, sortAscSmallIcon, sortClearIcon, sortDescIcon, sortDescSmallIcon, spellCheckerIcon, starIcon, starOutlineIcon, stickIcon, stopIcon, stopSmIcon, strikethroughIcon, stripAllFormattingIcon, stripCssFormatIcon, stripFontElementsIcon, stripSpanElementsIcon, stripWordFormattingIcon, stumbleUponBoxIcon, stumbleUponIcon, subreportIcon, subscriptIcon, sumIcon, supscriptIcon, symbolIcon, tableAddIcon, tableAlignBottomCenterIcon, tableAlignBottomLeftIcon, tableAlignBottomRightIcon, tableAlignMiddleCenterIcon, tableAlignMiddleLeftIcon, tableAlignMiddleRightIcon, tableAlignRemoveIcon, tableAlignTopCenterIcon, tableAlignTopLeftIcon, tableAlignTopRightIcon, tableBodyIcon, tableCellDeleteIcon, tableCellIcon, tableCellPropertiesIcon, tableColumnDeleteIcon, tableColumnGroupsIcon, tableColumnInsertLeftIcon, tableColumnInsertRightIcon, tableCornerIcon, tableDeleteIcon, tableIcon, tablePositionCenterIcon, tablePositionEndIcon, tablePositionStartIcon, tablePropertiesIcon, tableRowDeleteIcon, tableRowGroupsIcon, tableRowInsertAboveIcon, tableRowInsertBelowIcon, tableUnmergeIcon, tableWizardIcon, tellAFriendBoxIcon, tellAFriendIcon, templateManagerIcon, textClipIcon, textOverflowIcon, textTruncateIcon, textWrapArrowIcon, textWrapIcon, textareaIcon, textboxHiddenIcon, textboxIcon, thumbnailsDownIcon, thumbnailsLeftIcon, thumbnailsRightIcon, thumbnailsUpIcon, tocSectionIcon, tocSectionLevelIcon, toggleFullScreenModeIcon, toolbarFloatIcon, trackChangesAcceptAllIcon, trackChangesAcceptIcon, trackChangesEnableIcon, trackChangesIcon, trackChangesRejectAllIcon, trackChangesRejectIcon, transparencyIcon, trashIcon, tumblrBoxIcon, tumblrIcon, twitterBoxIcon, twitterIcon, underlineIcon, undoIcon, ungroupIcon, unlinkIcon, unlinkVerticalIcon, unlockIcon, unpinIcon, unstickIcon, uploadIcon, userIcon, validationDataIcon, validationXhtmlIcon, vbIcon, vbprojIcon, videoExternalIcon, vimeoBoxIcon, vimeoIcon, volumeDownIcon, volumeMuteIcon, volumeUpIcon, warningCircleIcon, warningTriangleIcon, wholeWordIcon, windowIcon, windowMinimizeIcon, windowRestoreIcon, wrenchIcon, xCircleIcon, xIcon, xOutlineIcon, yammerBoxIcon, yammerIcon, youtubeBoxIcon, youtubeIcon, zoomActualSizeIcon, zoomBestFitIcon, zoomInIcon, zoomOutIcon };\n","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n // eslint-disable-next-line no-param-reassign\n options = {};\n }\n\n if (!url) {\n return url;\n } // eslint-disable-next-line no-underscore-dangle, no-param-reassign\n\n\n url = String(url.__esModule ? url.default : url);\n\n if (options.hash) {\n // eslint-disable-next-line no-param-reassign\n url += options.hash;\n }\n\n if (options.maybeNeedQuotes && /[\\t\\n\\f\\r \"'=<>`]/.test(url)) {\n return \"\\\"\".concat(url, \"\\\"\");\n }\n\n return url;\n};","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nexport var keys = function keys(obj) {\n return obj === Object(obj) ? Object.keys(obj) : [];\n};\nexport var values = function values(obj) {\n return obj === Object(obj) ? Object.values(obj) : [];\n};\n\nfunction mergeDeep(target, source) {\n var output = Object.assign({}, target);\n\n if (isPlainObject(target) && isPlainObject(source)) {\n keys(source).forEach(function (key) {\n if (isPlainObject(source[key])) {\n if (!(key in target)) Object.assign(output, _defineProperty({}, key, source[key]));else output[key] = mergeDeep(target[key], source[key]);\n } else {\n Object.assign(output, _defineProperty({}, key, source[key]));\n }\n });\n }\n\n return output;\n}\n\nexport var merge = function merge(target) {\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n\n return sources.reduce(function (t, s) {\n return mergeDeep(t, s);\n }, target);\n};\nexport var identity = function identity(value) {\n return value;\n};\nexport var omit = function omit(obj, keys) {\n var other = Object.assign({}, obj);\n\n if (keys) {\n for (var i = 0; i < keys.length; i++) {\n delete other[keys[i]];\n }\n }\n\n return other;\n};\nexport var isPlainObject = function isPlainObject(obj) {\n return obj === Object(obj) && !(obj instanceof Date) && !Array.isArray(obj);\n};\nexport var compact = function compact(arr) {\n return (arr || []).filter(Boolean);\n};","export var isModifier = function isModifier(key) {\n return key[0] === '&';\n};\nexport var isElement = function isElement(key) {\n return !isModifier(key);\n};","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport { keys, merge, omit, values } from './utils';\nimport { isModifier } from './filterKeys';\n\nvar camelize = function camelize(key) {\n return key.replace(/-(\\w)/g, function (m, c) {\n return c.toUpperCase();\n });\n};\n\nexport var pickDirectStyles = function pickDirectStyles(style) {\n var objectPropertiesWhitelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var styleKeys = keys(style);\n var result = {};\n\n for (var i = 0, l = styleKeys.length; i < l; i += 1) {\n var key = styleKeys[i];\n var isDirect = Object.prototype.toString.call(style[key]) !== '[object Object]' || // style defs\n key[0] === ':' || // pseudo selectors\n key[0] === '@' || // @media / @keyframes / @supports / @font-face\n objectPropertiesWhitelist.indexOf(key) >= 0; // whitelisted object-type properties\n\n if (isDirect) {\n result[key] = style[key];\n }\n }\n\n return result;\n};\nexport var pickNestedStyles = function pickNestedStyles(style, keysToPick) {\n var camelizedKeysToPick = keysToPick.map(camelize);\n var styleKeys = keys(style);\n var result = {};\n\n for (var i = 0, l = styleKeys.length; i < l; i += 1) {\n var key = styleKeys[i];\n\n if (keysToPick.indexOf(key) >= 0 || camelizedKeysToPick.indexOf(camelize(key)) >= 0) {\n result[key] = style[key];\n }\n }\n\n return result;\n}; // breadth-first hoisting of selected modifier style subtrees\n// does not traverse into element, :pseudo-selector or @directive subtrees\n\nexport var hoistModifierStylesRecursive = function hoistModifierStylesRecursive(style, modifierKeysToPick) {\n // hoist styles for selected modifiers on current level\n var result = merge.apply(void 0, [{}, omit(style, modifierKeysToPick)].concat(_toConsumableArray(values(pickNestedStyles(style, modifierKeysToPick))))); // traverse nested styled for ALL modifiers\n\n var modifierKeys = keys(result).filter(isModifier);\n\n for (var i = 0, l = modifierKeys.length; i < l; i += 1) {\n var key = modifierKeys[i];\n var subresult = hoistModifierStylesRecursive(result[key], modifierKeysToPick);\n\n if (modifierKeysToPick.indexOf(key) >= 0) {\n // selected modifier: hoist subresult\n delete result[key];\n result = merge({}, result, subresult);\n } else {\n // non-selected modifier: replace with subresult\n result[key] = subresult;\n }\n }\n\n return result;\n};","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { pickDirectStyles } from './pickStyles';\n// many css-in-js libs process keyframes objects as the value for `animationName`\nvar defaultObjectPropsWhitelist = ['animationName'];\n\nvar defaultPropsDecorator = function defaultPropsDecorator(_ref) {\n var style = _ref.style,\n className = _ref.className;\n return _objectSpread(_objectSpread({}, style ? {\n style: pickDirectStyles(style, defaultObjectPropsWhitelist)\n } : {}), className ? {\n className: className\n } : {});\n};\n\nexport default defaultPropsDecorator;","import { createContext } from 'react';\nimport defaultPropsDecorator from './defaultPropsDecorator';\nexport var PropsDecoratorContext = /*#__PURE__*/createContext(defaultPropsDecorator);\nexport default PropsDecoratorContext.Provider;","import { keys } from './utils';\n\nvar coerceSelection = function coerceSelection(select) {\n if (!select) {\n return [];\n } else if (typeof select === 'string') {\n return [select];\n } else if (!Array.isArray(select)) {\n var objSelect = select; // workaround for https://github.com/facebook/flow/issues/5781\n\n return keys(select).reduce(function (acc, key) {\n return acc.concat(objSelect[key] ? [key] : []);\n }, []);\n }\n\n return select;\n};\n\nexport default coerceSelection;","import coerceSelection from './coerceSelection';\nvar EMPTY = {};\n\nvar memoize = function memoize(substyle) {\n return function (select, defaultStyle) {\n var cacheKey = defaultStyle || EMPTY;\n substyle.memoize = substyle.memoize || new WeakMap();\n var mapEntry;\n\n if (!substyle.memoize.has(cacheKey)) {\n mapEntry = {};\n substyle.memoize.set(cacheKey, mapEntry);\n } else {\n mapEntry = substyle.memoize.get(cacheKey);\n }\n\n var selectHash = coerceSelection(select).join(' ');\n return selectHash in mapEntry ? mapEntry[selectHash] : mapEntry[selectHash] = substyle(select || [], defaultStyle);\n };\n};\n\nexport default memoize;","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport invariant from 'invariant';\nimport coerceSelection from './coerceSelection';\nimport defaultPropsDecorator from './defaultPropsDecorator';\nimport { isElement, isModifier } from './filterKeys';\nimport memoize from './memoize';\nimport { hoistModifierStylesRecursive, pickNestedStyles } from './pickStyles';\nimport { compact, isPlainObject, keys, merge, values } from './utils';\n\nvar guessBaseClassName = function guessBaseClassName(classNames) {\n // all class names must start with the same prefix: the component's base class name\n // which will finally go to the container element\n var firstKey = classNames && keys(classNames)[0];\n return firstKey && firstKey.split('__')[0].split('--')[0];\n};\n\nvar deriveClassNames = function deriveClassNames(className, elementKeys, modifierKeys) {\n // do not derive class names, if the user did not specify any class name\n if (!className) {\n return undefined;\n } // derive class names based using the passed modifier/element keys\n\n\n var firstClassName = className.split(' ')[0];\n var derivedClassNames = [].concat(_toConsumableArray(elementKeys.length === 0 ? modifierKeys.map(function (key) {\n return \"\".concat(firstClassName, \"--\").concat(key.substring(1));\n }) : []), _toConsumableArray(elementKeys.map(function (key) {\n return \"\".concat(firstClassName, \"__\").concat(key);\n }))); // also use the provided `className` if there is no sub-element selection\n\n return elementKeys.length === 0 ? [className].concat(_toConsumableArray(derivedClassNames)) : derivedClassNames;\n};\n\nfunction createSubstyle(_ref) {\n var style = _ref.style,\n className = _ref.className,\n classNames = _ref.classNames;\n var propsDecorator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultPropsDecorator;\n var baseClassName = className || guessBaseClassName(classNames) || (style === null || style === void 0 ? void 0 : style.className);\n var substyle = typeof style === 'function' ? style : memoize(function (select, defaultStyle) {\n var selectedKeys = coerceSelection(select);\n invariant(Array.isArray(selectedKeys), 'First parameter must be a string, an array of strings, ' + 'a plain object with boolean values, or a falsy value.');\n invariant(!defaultStyle || isPlainObject(defaultStyle), 'Optional second parameter must be a plain object.');\n var modifierKeys = selectedKeys.filter(isModifier);\n var elementKeys = selectedKeys.filter(isElement);\n var collectElementStyles = elementKeys.length > 0 ? function (fromStyle) {\n return values(pickNestedStyles(fromStyle, elementKeys));\n } : function (fromStyle) {\n return [fromStyle];\n };\n\n var collectSelectedStyles = function collectSelectedStyles() {\n var fromStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return collectElementStyles(hoistModifierStylesRecursive(fromStyle, modifierKeys));\n };\n\n var derivedClassNames = deriveClassNames(baseClassName, elementKeys, modifierKeys);\n return createSubstyle(_objectSpread(_objectSpread(_objectSpread({}, (style || defaultStyle) && {\n style: merge.apply(void 0, [{}].concat(_toConsumableArray(collectSelectedStyles(defaultStyle)), _toConsumableArray(collectSelectedStyles(style))))\n }), derivedClassNames && {\n className: derivedClassNames.join(' ')\n }), classNames && {\n classNames: classNames\n }), propsDecorator);\n });\n\n var styleProps = _objectSpread({}, typeof style === 'function' ? style : {\n style: style\n });\n\n var classNameSplit = _toConsumableArray(new Set([].concat(_toConsumableArray(styleProps.className ? styleProps.className.split(' ') : []), _toConsumableArray(baseClassName ? baseClassName.split(' ') : []))));\n\n var mappedClassNames = classNames ? compact(classNameSplit.map(function (singleClassName) {\n return classNames[singleClassName];\n })) : classNameSplit;\n var propsForSpread = propsDecorator(_objectSpread(_objectSpread({}, styleProps), mappedClassNames.length > 0 ? {\n className: mappedClassNames.join(' ')\n } : {})); // assign `style`, `className`, and/or any props added by the decorator to the return function object\n\n Object.assign(substyle, propsForSpread);\n return substyle;\n}\n\nexport default createSubstyle;","import { useContext, useMemo } from 'react';\nimport { PropsDecoratorContext } from './PropsDecoratorProvider';\nimport createSubstyle from './createSubstyle';\n\nvar useStyles = function useStyles(defaultStyle, _ref, modifiers) {\n var style = _ref.style,\n className = _ref.className,\n classNames = _ref.classNames;\n var propsDecorator = useContext(PropsDecoratorContext);\n var substyle = useMemo(function () {\n return createSubstyle({\n style: style,\n className: className,\n classNames: classNames\n }, propsDecorator);\n }, [style, className, classNames, propsDecorator]);\n return substyle(modifiers, defaultStyle);\n};\n\nexport default useStyles;","import PropsDecoratorProvider, { PropsDecoratorContext } from './PropsDecoratorProvider';\nimport createSubstyle from './createSubstyle';\nimport defaultPropsDecorator from './defaultPropsDecorator';\nimport inline from './inline';\nimport useStyles from './useStyles';\nexport { createSubstyle, PropsDecoratorProvider, PropsDecoratorContext, defaultPropsDecorator, inline };\nexport default useStyles;","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar inline = function inline() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return args.reduce(function (result, arg) {\n return _objectSpread(_objectSpread(_objectSpread({}, result), typeof arg === 'function' ? arg : {}), {}, {\n style: _objectSpread(_objectSpread({}, result.style), typeof arg === 'function' ? arg.style : arg)\n });\n }, {});\n};\n\nexport default inline;","import _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport React, { Children, useState, useEffect } from 'react';\nimport invariant from 'invariant';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport useStyles, { inline } from 'substyle';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\n\n// escape RegExp special characters https://stackoverflow.com/a/9310752/5142490\nvar escapeRegex = function escapeRegex(str) {\n return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n};\n\nvar PLACEHOLDERS = {\n id: '__id__',\n display: '__display__'\n};\n\nvar findPositionOfCapturingGroup = function findPositionOfCapturingGroup(markup, parameterName) {\n invariant(parameterName === 'id' || parameterName === 'display', \"Second arg must be either \\\"id\\\" or \\\"display\\\", got: \\\"\".concat(parameterName, \"\\\"\")); // find positions of placeholders in the markup\n\n var indexDisplay = markup.indexOf(PLACEHOLDERS.display);\n var indexId = markup.indexOf(PLACEHOLDERS.id); // set indices to null if not found\n\n if (indexDisplay < 0) indexDisplay = null;\n if (indexId < 0) indexId = null; // markup must contain one of the mandatory placeholders\n\n invariant(indexDisplay !== null || indexId !== null, \"The markup '\".concat(markup, \"' does not contain either of the placeholders '__id__' or '__display__'\"));\n\n if (indexDisplay !== null && indexId !== null) {\n // both placeholders are used, return 0 or 1 depending on the position of the requested parameter\n return parameterName === 'id' && indexId <= indexDisplay || parameterName === 'display' && indexDisplay <= indexId ? 0 : 1;\n } // just one placeholder is being used, we'll use the captured string for both parameters\n\n\n return 0;\n};\n\nvar combineRegExps = function combineRegExps(regExps) {\n var serializedRegexParser = /^\\/(.+)\\/(\\w+)?$/;\n return new RegExp(regExps.map(function (regex) {\n var _serializedRegexParse = serializedRegexParser.exec(regex.toString()),\n _serializedRegexParse2 = _slicedToArray(_serializedRegexParse, 3),\n regexString = _serializedRegexParse2[1],\n regexFlags = _serializedRegexParse2[2];\n\n invariant(!regexFlags, \"RegExp flags are not supported. Change /\".concat(regexString, \"/\").concat(regexFlags, \" into /\").concat(regexString, \"/\"));\n return \"(\".concat(regexString, \")\");\n }).join('|'), 'g');\n};\n\nvar countPlaceholders = function countPlaceholders(markup) {\n var count = 0;\n if (markup.indexOf('__id__') >= 0) count++;\n if (markup.indexOf('__display__') >= 0) count++;\n return count;\n};\n\nvar emptyFn = function emptyFn() {}; // Finds all occurrences of the markup in the value and calls the `markupIteratee` callback for each of them.\n// The optional `textIteratee` callback is called for each plain text ranges in between these markup occurrences.\n\n\nvar iterateMentionsMarkup = function iterateMentionsMarkup(value, config, markupIteratee) {\n var textIteratee = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : emptyFn;\n var regex = combineRegExps(config.map(function (c) {\n return c.regex;\n }));\n var accOffset = 2; // first is whole match, second is the for the capturing group of first regexp component\n\n var captureGroupOffsets = config.map(function (_ref) {\n var markup = _ref.markup;\n var result = accOffset; // + 1 is for the capturing group we add around each regexp component in combineRegExps\n\n accOffset += countPlaceholders(markup) + 1;\n return result;\n });\n var match;\n var start = 0;\n var currentPlainTextIndex = 0; // detect all mention markup occurrences in the value and iterate the matches\n\n while ((match = regex.exec(value)) !== null) {\n var offset = captureGroupOffsets.find(function (o) {\n return !!match[o];\n }); // eslint-disable-line no-loop-func\n\n var mentionChildIndex = captureGroupOffsets.indexOf(offset);\n var _config$mentionChildI = config[mentionChildIndex],\n markup = _config$mentionChildI.markup,\n displayTransform = _config$mentionChildI.displayTransform;\n var idPos = offset + findPositionOfCapturingGroup(markup, 'id');\n var displayPos = offset + findPositionOfCapturingGroup(markup, 'display');\n var id = match[idPos];\n var display = displayTransform(id, match[displayPos]);\n var substr = value.substring(start, match.index);\n textIteratee(substr, start, currentPlainTextIndex);\n currentPlainTextIndex += substr.length;\n markupIteratee(match[0], match.index, currentPlainTextIndex, id, display, mentionChildIndex, start);\n currentPlainTextIndex += display.length;\n start = regex.lastIndex;\n }\n\n if (start < value.length) {\n textIteratee(value.substring(start), start, currentPlainTextIndex);\n }\n};\n\nvar getPlainText = function getPlainText(value, config) {\n var result = '';\n iterateMentionsMarkup(value, config, function (match, index, plainTextIndex, id, display) {\n result += display;\n }, function (plainText) {\n result += plainText;\n });\n return result;\n};\n\n// in the marked up value string.\n// If the passed character index lies inside a mention, the value of `inMarkupCorrection` defines the\n// correction to apply:\n// - 'START' to return the index of the mention markup's first char (default)\n// - 'END' to return the index after its last char\n// - 'NULL' to return null\n\nvar mapPlainTextIndex = function mapPlainTextIndex(value, config, indexInPlainText) {\n var inMarkupCorrection = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'START';\n\n if (typeof indexInPlainText !== 'number') {\n return indexInPlainText;\n }\n\n var result;\n\n var textIteratee = function textIteratee(substr, index, substrPlainTextIndex) {\n if (result !== undefined) return;\n\n if (substrPlainTextIndex + substr.length >= indexInPlainText) {\n // found the corresponding position in the current plain text range\n result = index + indexInPlainText - substrPlainTextIndex;\n }\n };\n\n var markupIteratee = function markupIteratee(markup, index, mentionPlainTextIndex, id, display, childIndex, lastMentionEndIndex) {\n if (result !== undefined) return;\n\n if (mentionPlainTextIndex + display.length > indexInPlainText) {\n // found the corresponding position inside current match,\n // return the index of the first or after the last char of the matching markup\n // depending on whether the `inMarkupCorrection`\n if (inMarkupCorrection === 'NULL') {\n result = null;\n } else {\n result = index + (inMarkupCorrection === 'END' ? markup.length : 0);\n }\n }\n };\n\n iterateMentionsMarkup(value, config, markupIteratee, textIteratee); // when a mention is at the end of the value and we want to get the caret position\n // at the end of the string, result is undefined\n\n return result === undefined ? value.length : result;\n};\n\nvar spliceString = function spliceString(str, start, end, insert) {\n return str.substring(0, start) + insert + str.substring(end);\n};\n\n// guided by the textarea text selection ranges before and after the change\n\nvar applyChangeToValue = function applyChangeToValue(value, plainTextValue, _ref, config) {\n var selectionStartBefore = _ref.selectionStartBefore,\n selectionEndBefore = _ref.selectionEndBefore,\n selectionEndAfter = _ref.selectionEndAfter;\n var oldPlainTextValue = getPlainText(value, config);\n var lengthDelta = oldPlainTextValue.length - plainTextValue.length;\n\n if (selectionStartBefore === 'undefined') {\n selectionStartBefore = selectionEndAfter + lengthDelta;\n }\n\n if (selectionEndBefore === 'undefined') {\n selectionEndBefore = selectionStartBefore;\n } // Fixes an issue with replacing combined characters for complex input. Eg like acented letters on OSX\n\n\n if (selectionStartBefore === selectionEndBefore && selectionEndBefore === selectionEndAfter && oldPlainTextValue.length === plainTextValue.length) {\n selectionStartBefore = selectionStartBefore - 1;\n } // extract the insertion from the new plain text value\n\n\n var insert = plainTextValue.slice(selectionStartBefore, selectionEndAfter); // handling for Backspace key with no range selection\n\n var spliceStart = Math.min(selectionStartBefore, selectionEndAfter);\n var spliceEnd = selectionEndBefore;\n\n if (selectionStartBefore === selectionEndAfter) {\n // handling for Delete key with no range selection\n spliceEnd = Math.max(selectionEndBefore, selectionStartBefore + lengthDelta);\n }\n\n var mappedSpliceStart = mapPlainTextIndex(value, config, spliceStart, 'START');\n var mappedSpliceEnd = mapPlainTextIndex(value, config, spliceEnd, 'END');\n var controlSpliceStart = mapPlainTextIndex(value, config, spliceStart, 'NULL');\n var controlSpliceEnd = mapPlainTextIndex(value, config, spliceEnd, 'NULL');\n var willRemoveMention = controlSpliceStart === null || controlSpliceEnd === null;\n var newValue = spliceString(value, mappedSpliceStart, mappedSpliceEnd, insert);\n\n if (!willRemoveMention) {\n // test for auto-completion changes\n var controlPlainTextValue = getPlainText(newValue, config);\n\n if (controlPlainTextValue !== plainTextValue) {\n // some auto-correction is going on\n // find start of diff\n spliceStart = 0;\n\n while (plainTextValue[spliceStart] === controlPlainTextValue[spliceStart]) {\n spliceStart++;\n } // extract auto-corrected insertion\n\n\n insert = plainTextValue.slice(spliceStart, selectionEndAfter); // find index of the unchanged remainder\n\n spliceEnd = oldPlainTextValue.lastIndexOf(plainTextValue.substring(selectionEndAfter)); // re-map the corrected indices\n\n mappedSpliceStart = mapPlainTextIndex(value, config, spliceStart, 'START');\n mappedSpliceEnd = mapPlainTextIndex(value, config, spliceEnd, 'END');\n newValue = spliceString(value, mappedSpliceStart, mappedSpliceEnd, insert);\n }\n }\n\n return newValue;\n};\n\n// returns a the index of of the first char of the mention in the plain text.\n// If indexInPlainText does not lie inside a mention, returns indexInPlainText.\n\nvar findStartOfMentionInPlainText = function findStartOfMentionInPlainText(value, config, indexInPlainText) {\n var result = indexInPlainText;\n var foundMention = false;\n\n var markupIteratee = function markupIteratee(markup, index, mentionPlainTextIndex, id, display, childIndex, lastMentionEndIndex) {\n if (mentionPlainTextIndex <= indexInPlainText && mentionPlainTextIndex + display.length > indexInPlainText) {\n result = mentionPlainTextIndex;\n foundMention = true;\n }\n };\n\n iterateMentionsMarkup(value, config, markupIteratee);\n\n if (foundMention) {\n return result;\n }\n};\n\nvar getMentions = function getMentions(value, config) {\n var mentions = [];\n iterateMentionsMarkup(value, config, function (match, index, plainTextIndex, id, display, childIndex, start) {\n mentions.push({\n id: id,\n display: display,\n childIndex: childIndex,\n index: index,\n plainTextIndex: plainTextIndex\n });\n });\n return mentions;\n};\n\nvar getSuggestionHtmlId = function getSuggestionHtmlId(prefix, id) {\n return \"\".concat(prefix, \"-\").concat(id);\n};\n\nvar countSuggestions = function countSuggestions(suggestions) {\n return Object.values(suggestions).reduce(function (acc, _ref) {\n var results = _ref.results;\n return acc + results.length;\n }, 0);\n};\n\nvar getEndOfLastMention = function getEndOfLastMention(value, config) {\n var mentions = getMentions(value, config);\n var lastMention = mentions[mentions.length - 1];\n return lastMention ? lastMention.plainTextIndex + lastMention.display.length : 0;\n};\n\nvar markupToRegex = function markupToRegex(markup) {\n var escapedMarkup = escapeRegex(markup);\n var charAfterDisplay = markup[markup.indexOf(PLACEHOLDERS.display) + PLACEHOLDERS.display.length];\n var charAfterId = markup[markup.indexOf(PLACEHOLDERS.id) + PLACEHOLDERS.id.length];\n return new RegExp(escapedMarkup.replace(PLACEHOLDERS.display, \"([^\".concat(escapeRegex(charAfterDisplay || ''), \"]+?)\")).replace(PLACEHOLDERS.id, \"([^\".concat(escapeRegex(charAfterId || ''), \"]+?)\")));\n};\n\nvar readConfigFromChildren = function readConfigFromChildren(children) {\n return Children.toArray(children).map(function (_ref) {\n var _ref$props = _ref.props,\n markup = _ref$props.markup,\n regex = _ref$props.regex,\n displayTransform = _ref$props.displayTransform;\n return {\n markup: markup,\n regex: regex ? coerceCapturingGroups(regex, markup) : markupToRegex(markup),\n displayTransform: displayTransform || function (id, display) {\n return display || id;\n }\n };\n });\n}; // make sure that the custom regex defines the correct number of capturing groups\n\n\nvar coerceCapturingGroups = function coerceCapturingGroups(regex, markup) {\n var numberOfGroups = new RegExp(regex.toString() + '|').exec('').length - 1;\n var numberOfPlaceholders = countPlaceholders(markup);\n invariant(numberOfGroups === numberOfPlaceholders, \"Number of capturing groups in RegExp \".concat(regex.toString(), \" (\").concat(numberOfGroups, \") does not match the number of placeholders in the markup '\").concat(markup, \"' (\").concat(numberOfPlaceholders, \")\"));\n return regex;\n};\n\nvar makeMentionsMarkup = function makeMentionsMarkup(markup, id, display) {\n return markup.replace(PLACEHOLDERS.id, id).replace(PLACEHOLDERS.display, display);\n};\n\n// This contains all the latin letters and the regex that match these letters with diacritics\n// https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript\nvar lettersDiacritics = [{\n base: 'A',\n letters: /(A|Ⓐ|A|À|Á|Â|Ầ|Ấ|Ẫ|Ẩ|Ã|Ā|Ă|Ằ|Ắ|Ẵ|Ẳ|Ȧ|Ǡ|Ä|Ǟ|Ả|Å|Ǻ|Ǎ|Ȁ|Ȃ|Ạ|Ậ|Ặ|Ḁ|Ą|Ⱥ|Ɐ|[\\u0041\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F])/g\n}, {\n base: 'AA',\n letters: /(Ꜳ|[\\uA732])/g\n}, {\n base: 'AE',\n letters: /(Æ|Ǽ|Ǣ|[\\u00C6\\u01FC\\u01E2])/g\n}, {\n base: 'AO',\n letters: /(Ꜵ|[\\uA734])/g\n}, {\n base: 'AU',\n letters: /(Ꜷ|[\\uA736])/g\n}, {\n base: 'AV',\n letters: /(Ꜹ|Ꜻ|[\\uA738\\uA73A])/g\n}, {\n base: 'AY',\n letters: /(Ꜽ|[\\uA73C])/g\n}, {\n base: 'B',\n letters: /(B|Ⓑ|B|Ḃ|Ḅ|Ḇ|Ƀ|Ƃ|Ɓ|[\\u0042\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181])/g\n}, {\n base: 'C',\n letters: /(C|Ⓒ|C|Ć|Ĉ|Ċ|Č|Ç|Ḉ|Ƈ|Ȼ|Ꜿ|[\\u0043\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\u00C7\\u1E08\\u0187\\u023B\\uA73E])/g\n}, {\n base: 'D',\n letters: /(D|Ⓓ|D|Ḋ|Ď|Ḍ|Ḑ|Ḓ|Ḏ|Đ|Ƌ|Ɗ|Ɖ|Ꝺ|Ð|[\\u0044\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779\\u00D0])/g\n}, {\n base: 'DZ',\n letters: /(DZ|DŽ|[\\u01F1\\u01C4])/g\n}, {\n base: 'Dz',\n letters: /(Dz|Dž|[\\u01F2\\u01C5])/g\n}, {\n base: 'E',\n letters: /(E|Ⓔ|E|È|É|Ê|Ề|Ế|Ễ|Ể|Ẽ|Ē|Ḕ|Ḗ|Ĕ|Ė|Ë|Ẻ|Ě|Ȅ|Ȇ|Ẹ|Ệ|Ȩ|Ḝ|Ę|Ḙ|Ḛ|Ɛ|Ǝ|[\\u0045\\u24BA\\uFF25\\u00C8\\u00C9\\u00CA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\u00CB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E])/g\n}, {\n base: 'F',\n letters: /(F|Ⓕ|F|Ḟ|Ƒ|Ꝼ|[\\u0046\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B])/g\n}, {\n base: 'G',\n letters: /(G|Ⓖ|G|Ǵ|Ĝ|Ḡ|Ğ|Ġ|Ǧ|Ģ|Ǥ|Ɠ|Ꞡ|Ᵹ|Ꝿ|[\\u0047\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E])/g\n}, {\n base: 'H',\n letters: /(H|Ⓗ|H|Ĥ|Ḣ|Ḧ|Ȟ|Ḥ|Ḩ|Ḫ|Ħ|Ⱨ|Ⱶ|Ɥ|[\\u0048\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D])/g\n}, {\n base: 'I',\n letters: /(I|Ⓘ|I|Ì|Í|Î|Ĩ|Ī|Ĭ|İ|Ï|Ḯ|Ỉ|Ǐ|Ȉ|Ȋ|Ị|Į|Ḭ|Ɨ|[\\u0049\\u24BE\\uFF29\\u00CC\\u00CD\\u00CE\\u0128\\u012A\\u012C\\u0130\\u00CF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197])/g\n}, {\n base: 'J',\n letters: /(J|Ⓙ|J|Ĵ|Ɉ|[\\u004A\\u24BF\\uFF2A\\u0134\\u0248])/g\n}, {\n base: 'K',\n letters: /(K|Ⓚ|K|Ḱ|Ǩ|Ḳ|Ķ|Ḵ|Ƙ|Ⱪ|Ꝁ|Ꝃ|Ꝅ|Ꞣ|[\\u004B\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2])/g\n}, {\n base: 'L',\n letters: /(L|Ⓛ|L|Ŀ|Ĺ|Ľ|Ḷ|Ḹ|Ļ|Ḽ|Ḻ|Ł|Ƚ|Ɫ|Ⱡ|Ꝉ|Ꝇ|Ꞁ|[\\u004C\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780])/g\n}, {\n base: 'LJ',\n letters: /(LJ|[\\u01C7])/g\n}, {\n base: 'Lj',\n letters: /(Lj|[\\u01C8])/g\n}, {\n base: 'M',\n letters: /(M|Ⓜ|M|Ḿ|Ṁ|Ṃ|Ɱ|Ɯ|[\\u004D\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C])/g\n}, {\n base: 'N',\n letters: /(N|Ⓝ|N|Ǹ|Ń|Ñ|Ṅ|Ň|Ṇ|Ņ|Ṋ|Ṉ|Ƞ|Ɲ|Ꞑ|Ꞥ|Ŋ|[\\u004E\\u24C3\\uFF2E\\u01F8\\u0143\\u00D1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4\\u014A])/g\n}, {\n base: 'NJ',\n letters: /(NJ|[\\u01CA])/g\n}, {\n base: 'Nj',\n letters: /(Nj|[\\u01CB])/g\n}, {\n base: 'O',\n letters: /(O|Ⓞ|O|Ò|Ó|Ô|Ồ|Ố|Ỗ|Ổ|Õ|Ṍ|Ȭ|Ṏ|Ō|Ṑ|Ṓ|Ŏ|Ȯ|Ȱ|Ö|Ȫ|Ỏ|Ő|Ǒ|Ȍ|Ȏ|Ơ|Ờ|Ớ|Ỡ|Ở|Ợ|Ọ|Ộ|Ǫ|Ǭ|Ø|Ǿ|Ɔ|Ɵ|Ꝋ|Ꝍ|[\\u004F\\u24C4\\uFF2F\\u00D2\\u00D3\\u00D4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\u00D5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\u00D6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\u00D8\\u01FE\\u0186\\u019F\\uA74A\\uA74C])/g\n}, {\n base: 'OE',\n letters: /(Œ|[\\u0152])/g\n}, {\n base: 'OI',\n letters: /(Ƣ|[\\u01A2])/g\n}, {\n base: 'OO',\n letters: /(Ꝏ|[\\uA74E])/g\n}, {\n base: 'OU',\n letters: /(Ȣ|[\\u0222])/g\n}, {\n base: 'P',\n letters: /(P|Ⓟ|P|Ṕ|Ṗ|Ƥ|Ᵽ|Ꝑ|Ꝓ|Ꝕ|[\\u0050\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754])/g\n}, {\n base: 'Q',\n letters: /(Q|Ⓠ|Q|Ꝗ|Ꝙ|Ɋ|[\\u0051\\u24C6\\uFF31\\uA756\\uA758\\u024A])/g\n}, {\n base: 'R',\n letters: /(R|Ⓡ|R|Ŕ|Ṙ|Ř|Ȑ|Ȓ|Ṛ|Ṝ|Ŗ|Ṟ|Ɍ|Ɽ|Ꝛ|Ꞧ|Ꞃ|[\\u0052\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782])/g\n}, {\n base: 'S',\n letters: /(S|Ⓢ|S|ẞ|Ś|Ṥ|Ŝ|Ṡ|Š|Ṧ|Ṣ|Ṩ|Ș|Ş|Ȿ|Ꞩ|Ꞅ|[\\u0053\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784])/g\n}, {\n base: 'T',\n letters: /(T|Ⓣ|T|Ṫ|Ť|Ṭ|Ț|Ţ|Ṱ|Ṯ|Ŧ|Ƭ|Ʈ|Ⱦ|Ꞇ|[\\u0054\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786])/g\n}, {\n base: 'TH',\n letters: /(Þ|[\\u00DE])/g\n}, {\n base: 'TZ',\n letters: /(Ꜩ|[\\uA728])/g\n}, {\n base: 'U',\n letters: /(U|Ⓤ|U|Ù|Ú|Û|Ũ|Ṹ|Ū|Ṻ|Ŭ|Ü|Ǜ|Ǘ|Ǖ|Ǚ|Ủ|Ů|Ű|Ǔ|Ȕ|Ȗ|Ư|Ừ|Ứ|Ữ|Ử|Ự|Ụ|Ṳ|Ų|Ṷ|Ṵ|Ʉ|[\\u0055\\u24CA\\uFF35\\u00D9\\u00DA\\u00DB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\u00DC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244])/g\n}, {\n base: 'V',\n letters: /(V|Ⓥ|V|Ṽ|Ṿ|Ʋ|Ꝟ|Ʌ|[\\u0056\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245])/g\n}, {\n base: 'VY',\n letters: /(Ꝡ|[\\uA760])/g\n}, {\n base: 'W',\n letters: /(W|Ⓦ|W|Ẁ|Ẃ|Ŵ|Ẇ|Ẅ|Ẉ|Ⱳ|[\\u0057\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72])/g\n}, {\n base: 'X',\n letters: /(X|Ⓧ|X|Ẋ|Ẍ|[\\u0058\\u24CD\\uFF38\\u1E8A\\u1E8C])/g\n}, {\n base: 'Y',\n letters: /(Y|Ⓨ|Y|Ỳ|Ý|Ŷ|Ỹ|Ȳ|Ẏ|Ÿ|Ỷ|Ỵ|Ƴ|Ɏ|Ỿ|[\\u0059\\u24CE\\uFF39\\u1EF2\\u00DD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE])/g\n}, {\n base: 'Z',\n letters: /(Z|Ⓩ|Z|Ź|Ẑ|Ż|Ž|Ẓ|Ẕ|Ƶ|Ȥ|Ɀ|Ⱬ|Ꝣ|[\\u005A\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762])/g\n}, {\n base: 'a',\n letters: /(a|ⓐ|a|ẚ|à|á|â|ầ|ấ|ẫ|ẩ|ã|ā|ă|ằ|ắ|ẵ|ẳ|ȧ|ǡ|ä|ǟ|ả|å|ǻ|ǎ|ȁ|ȃ|ạ|ậ|ặ|ḁ|ą|ⱥ|ɐ|[\\u0061\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250])/g\n}, {\n base: 'aa',\n letters: /(ꜳ|[\\uA733])/g\n}, {\n base: 'ae',\n letters: /(æ|ǽ|ǣ|[\\u00E6\\u01FD\\u01E3])/g\n}, {\n base: 'ao',\n letters: /(ꜵ|[\\uA735])/g\n}, {\n base: 'au',\n letters: /(ꜷ|[\\uA737])/g\n}, {\n base: 'av',\n letters: /(ꜹ|ꜻ|[\\uA739\\uA73B])/g\n}, {\n base: 'ay',\n letters: /(ꜽ|[\\uA73D])/g\n}, {\n base: 'b',\n letters: /(b|ⓑ|b|ḃ|ḅ|ḇ|ƀ|ƃ|ɓ|[\\u0062\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253])/g\n}, {\n base: 'c',\n letters: /(c|ⓒ|c|ć|ĉ|ċ|č|ç|ḉ|ƈ|ȼ|ꜿ|ↄ|[\\u0063\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\u00E7\\u1E09\\u0188\\u023C\\uA73F\\u2184])/g\n}, {\n base: 'd',\n letters: /(d|ⓓ|d|ḋ|ď|ḍ|ḑ|ḓ|ḏ|đ|ƌ|ɖ|ɗ|ꝺ|ð|[\\u0064\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A\\u00F0])/g\n}, {\n base: 'dz',\n letters: /(dz|dž|[\\u01F3\\u01C6])/g\n}, {\n base: 'e',\n letters: /(e|ⓔ|e|è|é|ê|ề|ế|ễ|ể|ẽ|ē|ḕ|ḗ|ĕ|ė|ë|ẻ|ě|ȅ|ȇ|ẹ|ệ|ȩ|ḝ|ę|ḙ|ḛ|ɇ|ɛ|ǝ|[\\u0065\\u24D4\\uFF45\\u00E8\\u00E9\\u00EA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\u00EB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD])/g\n}, {\n base: 'f',\n letters: /(f|ⓕ|f|ḟ|ƒ|ꝼ|[\\u0066\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C])/g\n}, {\n base: 'g',\n letters: /(g|ⓖ|g|ǵ|ĝ|ḡ|ğ|ġ|ǧ|ģ|ǥ|ɠ|ꞡ|ᵹ|ꝿ|[\\u0067\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F])/g\n}, {\n base: 'h',\n letters: /(h|ⓗ|h|ĥ|ḣ|ḧ|ȟ|ḥ|ḩ|ḫ|ẖ|ħ|ⱨ|ⱶ|ɥ|[\\u0068\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265])/g\n}, {\n base: 'hv',\n letters: /(ƕ|[\\u0195])/g\n}, {\n base: 'i',\n letters: /(i|ⓘ|i|ì|í|î|ĩ|ī|ĭ|ï|ḯ|ỉ|ǐ|ȉ|ȋ|ị|į|ḭ|ɨ|ı|[\\u0069\\u24D8\\uFF49\\u00EC\\u00ED\\u00EE\\u0129\\u012B\\u012D\\u00EF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131])/g\n}, {\n base: 'ij',\n letters: /(ij|[\\u0133])/g\n}, {\n base: 'j',\n letters: /(j|ⓙ|j|ĵ|ǰ|ɉ|[\\u006A\\u24D9\\uFF4A\\u0135\\u01F0\\u0249])/g\n}, {\n base: 'k',\n letters: /(k|ⓚ|k|ḱ|ǩ|ḳ|ķ|ḵ|ƙ|ⱪ|ꝁ|ꝃ|ꝅ|ꞣ|[\\u006B\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3])/g\n}, {\n base: 'l',\n letters: /(l|ⓛ|l|ŀ|ĺ|ľ|ḷ|ḹ|ļ|ḽ|ḻ|ł|ƚ|ɫ|ⱡ|ꝉ|ꞁ|ꝇ|[\\u006C\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747])/g\n}, {\n base: 'lj',\n letters: /(lj|[\\u01C9])/g\n}, {\n base: 'm',\n letters: /(m|ⓜ|m|ḿ|ṁ|ṃ|ɱ|ɯ|[\\u006D\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F])/g\n}, {\n base: 'n',\n letters: /(n|ⓝ|n|ǹ|ń|ñ|ṅ|ň|ṇ|ņ|ṋ|ṉ|ƞ|ɲ|ʼn|ꞑ|ꞥ|ŋ|[\\u006E\\u24DD\\uFF4E\\u01F9\\u0144\\u00F1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5\\u014B])/g\n}, {\n base: 'nj',\n letters: /(nj|[\\u01CC])/g\n}, {\n base: 'o',\n letters: /(o|ⓞ|o|ò|ó|ô|ồ|ố|ỗ|ổ|õ|ṍ|ȭ|ṏ|ō|ṑ|ṓ|ŏ|ȯ|ȱ|ö|ȫ|ỏ|ő|ǒ|ȍ|ȏ|ơ|ờ|ớ|ỡ|ở|ợ|ọ|ộ|ǫ|ǭ|ø|ǿ|ɔ|ꝋ|ꝍ|ɵ|[\\u006F\\u24DE\\uFF4F\\u00F2\\u00F3\\u00F4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\u00F5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\u00F6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\u00F8\\u01FF\\u0254\\uA74B\\uA74D\\u0275])/g\n}, {\n base: 'oe',\n letters: /(œ|[\\u0153])/g\n}, {\n base: 'oi',\n letters: /(ƣ|[\\u01A3])/g\n}, {\n base: 'ou',\n letters: /(ȣ|[\\u0223])/g\n}, {\n base: 'oo',\n letters: /(ꝏ|[\\uA74F])/g\n}, {\n base: 'p',\n letters: /(p|ⓟ|p|ṕ|ṗ|ƥ|ᵽ|ꝑ|ꝓ|ꝕ|[\\u0070\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755])/g\n}, {\n base: 'q',\n letters: /(q|ⓠ|q|ɋ|ꝗ|ꝙ|[\\u0071\\u24E0\\uFF51\\u024B\\uA757\\uA759])/g\n}, {\n base: 'r',\n letters: /(r|ⓡ|r|ŕ|ṙ|ř|ȑ|ȓ|ṛ|ṝ|ŗ|ṟ|ɍ|ɽ|ꝛ|ꞧ|ꞃ|[\\u0072\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783])/g\n}, {\n base: 's',\n letters: /(s|ⓢ|s|ś|ṥ|ŝ|ṡ|š|ṧ|ṣ|ṩ|ș|ş|ȿ|ꞩ|ꞅ|ẛ|ſ|[\\u0073\\u24E2\\uFF53\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B\\u017F])/g\n}, {\n base: 'ss',\n letters: /(ß|[\\u00DF])/g\n}, {\n base: 't',\n letters: /(t|ⓣ|t|ṫ|ẗ|ť|ṭ|ț|ţ|ṱ|ṯ|ŧ|ƭ|ʈ|ⱦ|ꞇ|[\\u0074\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787])/g\n}, {\n base: 'th',\n letters: /(þ|[\\u00FE])/g\n}, {\n base: 'tz',\n letters: /(ꜩ|[\\uA729])/g\n}, {\n base: 'u',\n letters: /(u|ⓤ|u|ù|ú|û|ũ|ṹ|ū|ṻ|ŭ|ü|ǜ|ǘ|ǖ|ǚ|ủ|ů|ű|ǔ|ȕ|ȗ|ư|ừ|ứ|ữ|ử|ự|ụ|ṳ|ų|ṷ|ṵ|ʉ|[\\u0075\\u24E4\\uFF55\\u00F9\\u00FA\\u00FB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\u00FC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289])/g\n}, {\n base: 'v',\n letters: /(v|ⓥ|v|ṽ|ṿ|ʋ|ꝟ|ʌ|[\\u0076\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C])/g\n}, {\n base: 'vy',\n letters: /(ꝡ|[\\uA761])/g\n}, {\n base: 'w',\n letters: /(w|ⓦ|w|ẁ|ẃ|ŵ|ẇ|ẅ|ẘ|ẉ|ⱳ|[\\u0077\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73])/g\n}, {\n base: 'x',\n letters: /(x|ⓧ|x|ẋ|ẍ|[\\u0078\\u24E7\\uFF58\\u1E8B\\u1E8D])/g\n}, {\n base: 'y',\n letters: /(y|ⓨ|y|ỳ|ý|ŷ|ỹ|ȳ|ẏ|ÿ|ỷ|ẙ|ỵ|ƴ|ɏ|ỿ|[\\u0079\\u24E8\\uFF59\\u1EF3\\u00FD\\u0177\\u1EF9\\u0233\\u1E8F\\u00FF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF])/g\n}, {\n base: 'z',\n letters: /(z|ⓩ|z|ź|ẑ|ż|ž|ẓ|ẕ|ƶ|ȥ|ɀ|ⱬ|ꝣ|[\\u007A\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763])/g\n}];\n\nvar removeAccents = function removeAccents(str) {\n var formattedStr = str;\n lettersDiacritics.forEach(function (letterDiacritics) {\n formattedStr = formattedStr.replace(letterDiacritics.letters, letterDiacritics.base);\n });\n return formattedStr;\n};\n\nvar normalizeString = function normalizeString(str) {\n return removeAccents(str).toLowerCase();\n};\n\nvar getSubstringIndex = function getSubstringIndex(str, substr, ignoreAccents) {\n if (!ignoreAccents) {\n return str.toLowerCase().indexOf(substr.toLowerCase());\n }\n\n return normalizeString(str).indexOf(normalizeString(substr));\n};\n\nvar isIE = function isIE() {\n return !!document.documentMode;\n};\n\nvar isNumber = function isNumber(val) {\n return typeof val === 'number';\n};\n\nvar keys = function keys(obj) {\n return obj === Object(obj) ? Object.keys(obj) : [];\n};\n\nvar omit = function omit(obj) {\n var _ref;\n\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n var keys = (_ref = []).concat.apply(_ref, rest);\n\n return Object.keys(obj).reduce(function (acc, k) {\n if (obj.hasOwnProperty(k) && !keys.includes(k) && obj[k] !== undefined) {\n acc[k] = obj[k];\n }\n\n return acc;\n }, {});\n};\n\nvar _excluded = [\"style\", \"className\", \"classNames\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction createDefaultStyle(defaultStyle, getModifiers) {\n var enhance = function enhance(ComponentToWrap) {\n var DefaultStyleEnhancer = function DefaultStyleEnhancer(_ref) {\n var style = _ref.style,\n className = _ref.className,\n classNames = _ref.classNames,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n var modifiers = getModifiers ? getModifiers(rest) : undefined;\n var styles = useStyles(defaultStyle, {\n style: style,\n className: className,\n classNames: classNames\n }, modifiers);\n return /*#__PURE__*/React.createElement(ComponentToWrap, _extends({}, rest, {\n style: styles\n }));\n };\n\n var displayName = ComponentToWrap.displayName || ComponentToWrap.name || 'Component';\n DefaultStyleEnhancer.displayName = \"defaultStyle(\".concat(displayName, \")\"); // return DefaultStyleEnhancer\n\n return /*#__PURE__*/React.forwardRef(function (props, ref) {\n return DefaultStyleEnhancer(_objectSpread(_objectSpread({}, props), {}, {\n ref: ref\n }));\n });\n };\n\n return enhance;\n}\n\nvar _generateComponentKey = function _generateComponentKey(usedKeys, id) {\n if (!usedKeys.hasOwnProperty(id)) {\n usedKeys[id] = 0;\n } else {\n usedKeys[id]++;\n }\n\n return id + '_' + usedKeys[id];\n};\n\nfunction Highlighter(_ref) {\n var selectionStart = _ref.selectionStart,\n selectionEnd = _ref.selectionEnd,\n _ref$value = _ref.value,\n value = _ref$value === void 0 ? '' : _ref$value,\n onCaretPositionChange = _ref.onCaretPositionChange,\n containerRef = _ref.containerRef,\n children = _ref.children,\n singleLine = _ref.singleLine,\n style = _ref.style;\n\n var _useState = useState({\n left: undefined,\n top: undefined\n }),\n _useState2 = _slicedToArray(_useState, 2),\n position = _useState2[0],\n setPosition = _useState2[1];\n\n var _useState3 = useState(),\n _useState4 = _slicedToArray(_useState3, 2),\n caretElement = _useState4[0],\n setCaretElement = _useState4[1];\n\n useEffect(function () {\n notifyCaretPosition();\n });\n\n var notifyCaretPosition = function notifyCaretPosition() {\n if (!caretElement) {\n return;\n }\n\n var offsetLeft = caretElement.offsetLeft,\n offsetTop = caretElement.offsetTop;\n\n if (position.left === offsetLeft && position.top === offsetTop) {\n return;\n }\n\n var newPosition = {\n left: offsetLeft,\n top: offsetTop\n };\n setPosition(newPosition);\n onCaretPositionChange(newPosition);\n };\n\n var config = readConfigFromChildren(children);\n var caretPositionInMarkup;\n\n if (selectionEnd === selectionStart) {\n caretPositionInMarkup = mapPlainTextIndex(value, config, selectionStart, 'START');\n }\n\n var resultComponents = [];\n var componentKeys = {};\n var components = resultComponents;\n var substringComponentKey = 0;\n\n var textIteratee = function textIteratee(substr, index, indexInPlainText) {\n // check whether the caret element has to be inserted inside the current plain substring\n if (isNumber(caretPositionInMarkup) && caretPositionInMarkup >= index && caretPositionInMarkup <= index + substr.length) {\n // if yes, split substr at the caret position and insert the caret component\n var splitIndex = caretPositionInMarkup - index;\n components.push(renderSubstring(substr.substring(0, splitIndex), substringComponentKey)); // add all following substrings and mention components as children of the caret component\n\n components = [renderSubstring(substr.substring(splitIndex), substringComponentKey)];\n } else {\n components.push(renderSubstring(substr, substringComponentKey));\n }\n\n substringComponentKey++;\n };\n\n var mentionIteratee = function mentionIteratee(markup, index, indexInPlainText, id, display, mentionChildIndex, lastMentionEndIndex) {\n var key = _generateComponentKey(componentKeys, id);\n\n components.push(getMentionComponentForMatch(id, display, mentionChildIndex, key));\n };\n\n var renderSubstring = function renderSubstring(string, key) {\n // set substring span to hidden, so that Emojis are not shown double in Mobile Safari\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, style('substring'), {\n key: key\n }), string);\n };\n\n var getMentionComponentForMatch = function getMentionComponentForMatch(id, display, mentionChildIndex, key) {\n var props = {\n id: id,\n display: display,\n key: key\n };\n var child = Children.toArray(children)[mentionChildIndex];\n return /*#__PURE__*/React.cloneElement(child, props);\n };\n\n var renderHighlighterCaret = function renderHighlighterCaret(children) {\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, style('caret'), {\n ref: setCaretElement,\n key: \"caret\"\n }), children);\n };\n\n iterateMentionsMarkup(value, config, mentionIteratee, textIteratee); // append a span containing a space, to ensure the last text line has the correct height\n\n components.push(' ');\n\n if (components !== resultComponents) {\n // if a caret component is to be rendered, add all components that followed as its children\n resultComponents.push(renderHighlighterCaret(components));\n }\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, style, {\n ref: containerRef\n }), resultComponents);\n}\n\nHighlighter.propTypes = {\n selectionStart: PropTypes.number,\n selectionEnd: PropTypes.number,\n value: PropTypes.string.isRequired,\n onCaretPositionChange: PropTypes.func.isRequired,\n containerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : PropTypes.instanceOf(Element)\n })]),\n children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element)]).isRequired\n};\nvar styled = createDefaultStyle({\n position: 'relative',\n boxSizing: 'border-box',\n width: '100%',\n color: 'transparent',\n overflow: 'hidden',\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word',\n border: '1px solid transparent',\n textAlign: 'start',\n '&singleLine': {\n whiteSpace: 'pre',\n wordWrap: null\n },\n substring: {\n visibility: 'hidden'\n }\n}, function (props) {\n return {\n '&singleLine': props.singleLine\n };\n});\nvar Highlighter$1 = styled(Highlighter);\n\nfunction Suggestion(_ref) {\n var id = _ref.id,\n focused = _ref.focused,\n ignoreAccents = _ref.ignoreAccents,\n index = _ref.index,\n onClick = _ref.onClick,\n onMouseEnter = _ref.onMouseEnter,\n query = _ref.query,\n renderSuggestion = _ref.renderSuggestion,\n suggestion = _ref.suggestion,\n style = _ref.style,\n className = _ref.className,\n classNames = _ref.classNames;\n var rest = {\n onClick: onClick,\n onMouseEnter: onMouseEnter\n };\n\n var renderContent = function renderContent() {\n var display = getDisplay();\n var highlightedDisplay = renderHighlightedDisplay(display);\n\n if (renderSuggestion) {\n return renderSuggestion(suggestion, query, highlightedDisplay, index, focused);\n }\n\n return highlightedDisplay;\n };\n\n var getDisplay = function getDisplay() {\n if (typeof suggestion === 'string') {\n return suggestion;\n }\n\n var id = suggestion.id,\n display = suggestion.display;\n\n if (id === undefined || !display) {\n return id;\n }\n\n return display;\n };\n\n var renderHighlightedDisplay = function renderHighlightedDisplay(display) {\n var i = getSubstringIndex(display, query, ignoreAccents);\n\n if (i === -1) {\n return /*#__PURE__*/React.createElement(\"span\", style('display'), display);\n }\n\n return /*#__PURE__*/React.createElement(\"span\", style('display'), display.substring(0, i), /*#__PURE__*/React.createElement(\"b\", style('highlight'), display.substring(i, i + query.length)), display.substring(i + query.length));\n };\n\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n id: id,\n role: \"option\",\n \"aria-selected\": focused\n }, rest, style), renderContent());\n}\n\nSuggestion.propTypes = {\n id: PropTypes.string.isRequired,\n query: PropTypes.string.isRequired,\n index: PropTypes.number.isRequired,\n ignoreAccents: PropTypes.bool,\n suggestion: PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n display: PropTypes.string\n })]).isRequired,\n renderSuggestion: PropTypes.func,\n focused: PropTypes.bool\n};\nvar styled$1 = createDefaultStyle({\n cursor: 'pointer'\n}, function (props) {\n return {\n '&focused': props.focused\n };\n});\nvar Suggestion$1 = styled$1(Suggestion);\n\nfunction LoadingIndicator(_ref) {\n var style = _ref.style,\n className = _ref.className,\n classNames = _ref.classNames;\n var styles = useStyles(defaultstyle, {\n style: style,\n className: className,\n classNames: classNames\n });\n var spinnerStyles = styles('spinner');\n return /*#__PURE__*/React.createElement(\"div\", styles, /*#__PURE__*/React.createElement(\"div\", spinnerStyles, /*#__PURE__*/React.createElement(\"div\", spinnerStyles(['element', 'element1'])), /*#__PURE__*/React.createElement(\"div\", spinnerStyles(['element', 'element2'])), /*#__PURE__*/React.createElement(\"div\", spinnerStyles(['element', 'element3'])), /*#__PURE__*/React.createElement(\"div\", spinnerStyles(['element', 'element4'])), /*#__PURE__*/React.createElement(\"div\", spinnerStyles(['element', 'element5']))));\n}\n\nvar defaultstyle = {};\n\nfunction SuggestionsOverlay(_ref) {\n var id = _ref.id,\n _ref$suggestions = _ref.suggestions,\n suggestions = _ref$suggestions === void 0 ? {} : _ref$suggestions,\n a11ySuggestionsListLabel = _ref.a11ySuggestionsListLabel,\n focusIndex = _ref.focusIndex,\n position = _ref.position,\n left = _ref.left,\n right = _ref.right,\n top = _ref.top,\n scrollFocusedIntoView = _ref.scrollFocusedIntoView,\n isLoading = _ref.isLoading,\n isOpened = _ref.isOpened,\n _ref$onSelect = _ref.onSelect,\n onSelect = _ref$onSelect === void 0 ? function () {\n return null;\n } : _ref$onSelect,\n ignoreAccents = _ref.ignoreAccents,\n containerRef = _ref.containerRef,\n children = _ref.children,\n style = _ref.style,\n customSuggestionsContainer = _ref.customSuggestionsContainer,\n onMouseDown = _ref.onMouseDown,\n onMouseEnter = _ref.onMouseEnter;\n\n var _useState = useState(undefined),\n _useState2 = _slicedToArray(_useState, 2),\n ulElement = _useState2[0],\n setUlElement = _useState2[1];\n\n useEffect(function () {\n if (!ulElement || ulElement.offsetHeight >= ulElement.scrollHeight || !scrollFocusedIntoView) {\n return;\n }\n\n var scrollTop = ulElement.scrollTop;\n\n var _ulElement$children$f = ulElement.children[focusIndex].getBoundingClientRect(),\n top = _ulElement$children$f.top,\n bottom = _ulElement$children$f.bottom;\n\n var _ulElement$getBoundin = ulElement.getBoundingClientRect(),\n topContainer = _ulElement$getBoundin.top;\n\n top = top - topContainer + scrollTop;\n bottom = bottom - topContainer + scrollTop;\n\n if (top < scrollTop) {\n ulElement.scrollTop = top;\n } else if (bottom > ulElement.offsetHeight) {\n ulElement.scrollTop = bottom - ulElement.offsetHeight;\n }\n }, [focusIndex, scrollFocusedIntoView, ulElement]);\n\n var renderSuggestions = function renderSuggestions() {\n var suggestionsToRender = /*#__PURE__*/React.createElement(\"ul\", _extends({\n ref: setUlElement,\n id: id,\n role: \"listbox\",\n \"aria-label\": a11ySuggestionsListLabel\n }, style('list')), Object.values(suggestions).reduce(function (accResults, _ref2) {\n var results = _ref2.results,\n queryInfo = _ref2.queryInfo;\n return [].concat(_toConsumableArray(accResults), _toConsumableArray(results.map(function (result, index) {\n return renderSuggestion(result, queryInfo, accResults.length + index);\n })));\n }, []));\n if (customSuggestionsContainer) return customSuggestionsContainer(suggestionsToRender);\n return suggestionsToRender;\n };\n\n var renderSuggestion = function renderSuggestion(result, queryInfo, index) {\n var isFocused = index === focusIndex;\n var childIndex = queryInfo.childIndex,\n query = queryInfo.query;\n var renderSuggestion = Children.toArray(children)[childIndex].props.renderSuggestion;\n return /*#__PURE__*/React.createElement(Suggestion$1, {\n style: style('item'),\n key: \"\".concat(childIndex, \"-\").concat(getID(result)),\n id: getSuggestionHtmlId(id, index),\n query: query,\n index: index,\n ignoreAccents: ignoreAccents,\n renderSuggestion: renderSuggestion,\n suggestion: result,\n focused: isFocused,\n onClick: function onClick() {\n return select(result, queryInfo);\n },\n onMouseEnter: function onMouseEnter() {\n return handleMouseEnter(index);\n }\n });\n };\n\n var renderLoadingIndicator = function renderLoadingIndicator() {\n if (!isLoading) {\n return;\n }\n\n return /*#__PURE__*/React.createElement(LoadingIndicator, {\n style: style('loadingIndicator')\n });\n };\n\n var handleMouseEnter = function handleMouseEnter(index, ev) {\n if (onMouseEnter) {\n onMouseEnter(index);\n }\n };\n\n var select = function select(suggestion, queryInfo) {\n onSelect(suggestion, queryInfo);\n };\n\n var getID = function getID(suggestion) {\n if (typeof suggestion === 'string') {\n return suggestion;\n }\n\n return suggestion.id;\n };\n\n if (!isOpened) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, inline({\n position: position || 'absolute',\n left: left,\n right: right,\n top: top\n }, style), {\n onMouseDown: onMouseDown,\n ref: containerRef\n }), renderSuggestions(), renderLoadingIndicator());\n}\n\nSuggestionsOverlay.propTypes = {\n id: PropTypes.string.isRequired,\n suggestions: PropTypes.object.isRequired,\n a11ySuggestionsListLabel: PropTypes.string,\n focusIndex: PropTypes.number,\n position: PropTypes.string,\n left: PropTypes.number,\n right: PropTypes.number,\n top: PropTypes.number,\n scrollFocusedIntoView: PropTypes.bool,\n isLoading: PropTypes.bool,\n isOpened: PropTypes.bool.isRequired,\n onSelect: PropTypes.func,\n ignoreAccents: PropTypes.bool,\n customSuggestionsContainer: PropTypes.func,\n containerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : PropTypes.instanceOf(Element)\n })])\n};\nvar styled$2 = createDefaultStyle({\n zIndex: 1,\n backgroundColor: 'white',\n marginTop: 14,\n minWidth: 100,\n list: {\n margin: 0,\n padding: 0,\n listStyleType: 'none'\n }\n});\nvar SuggestionsOverlay$1 = styled$2(SuggestionsOverlay);\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar makeTriggerRegex = function makeTriggerRegex(trigger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (trigger instanceof RegExp) {\n return trigger;\n } else {\n var allowSpaceInQuery = options.allowSpaceInQuery;\n var escapedTriggerChar = escapeRegex(trigger); // first capture group is the part to be replaced on completion\n // second capture group is for extracting the search query\n\n return new RegExp(\"(?:^|\\\\s)(\".concat(escapedTriggerChar, \"([^\").concat(allowSpaceInQuery ? '' : '\\\\s').concat(escapedTriggerChar, \"]*))$\"));\n }\n};\n\nvar getDataProvider = function getDataProvider(data, ignoreAccents) {\n if (data instanceof Array) {\n // if data is an array, create a function to query that\n return function (query, callback) {\n var results = [];\n\n for (var i = 0, l = data.length; i < l; ++i) {\n var display = data[i].display || data[i].id;\n\n if (getSubstringIndex(display, query, ignoreAccents) >= 0) {\n results.push(data[i]);\n }\n }\n\n return results;\n };\n } else {\n // expect data to be a query function\n return data;\n }\n};\n\nvar KEY = {\n TAB: 9,\n RETURN: 13,\n ESC: 27,\n UP: 38,\n DOWN: 40\n};\nvar isComposing = false;\nvar propTypes = {\n /**\n * If set to `true` a regular text input element will be rendered\n * instead of a textarea\n */\n singleLine: PropTypes.bool,\n allowSpaceInQuery: PropTypes.bool,\n allowSuggestionsAboveCursor: PropTypes.bool,\n forceSuggestionsAboveCursor: PropTypes.bool,\n ignoreAccents: PropTypes.bool,\n a11ySuggestionsListLabel: PropTypes.string,\n value: PropTypes.string,\n onKeyDown: PropTypes.func,\n customSuggestionsContainer: PropTypes.func,\n onSelect: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n suggestionsPortalHost: typeof Element === 'undefined' ? PropTypes.any : PropTypes.PropTypes.instanceOf(Element),\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : PropTypes.instanceOf(Element)\n })]),\n children: PropTypes.oneOfType([PropTypes.element, PropTypes.arrayOf(PropTypes.element)]).isRequired\n};\n\nvar MentionsInput = /*#__PURE__*/function (_React$Component) {\n _inherits(MentionsInput, _React$Component);\n\n var _super = _createSuper(MentionsInput);\n\n function MentionsInput(_props) {\n var _this;\n\n _classCallCheck(this, MentionsInput);\n\n _this = _super.call(this, _props);\n\n _defineProperty(_assertThisInitialized(_this), \"setContainerElement\", function (el) {\n _this.containerElement = el;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getInputProps\", function () {\n var _this$props = _this.props,\n readOnly = _this$props.readOnly,\n disabled = _this$props.disabled,\n style = _this$props.style; // pass all props that neither we, nor substyle, consume through to the input control\n\n var props = omit(_this.props, ['style', 'classNames', 'className'], // substyle props\n keys(propTypes));\n return _objectSpread$1(_objectSpread$1(_objectSpread$1(_objectSpread$1({}, props), style('input')), {}, {\n value: _this.getPlainText(),\n onScroll: _this.updateHighlighterScroll\n }, !readOnly && !disabled && {\n onChange: _this.handleChange,\n onSelect: _this.handleSelect,\n onKeyDown: _this.handleKeyDown,\n onBlur: _this.handleBlur,\n onCompositionStart: _this.handleCompositionStart,\n onCompositionEnd: _this.handleCompositionEnd\n }), _this.isOpened() && {\n role: 'combobox',\n 'aria-controls': _this.uuidSuggestionsOverlay,\n 'aria-expanded': true,\n 'aria-autocomplete': 'list',\n 'aria-haspopup': 'listbox',\n 'aria-activedescendant': getSuggestionHtmlId(_this.uuidSuggestionsOverlay, _this.state.focusIndex)\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderControl\", function () {\n var _this$props2 = _this.props,\n singleLine = _this$props2.singleLine,\n style = _this$props2.style;\n\n var inputProps = _this.getInputProps();\n\n return /*#__PURE__*/React.createElement(\"div\", style('control'), _this.renderHighlighter(), singleLine ? _this.renderInput(inputProps) : _this.renderTextarea(inputProps));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderInput\", function (props) {\n return /*#__PURE__*/React.createElement(\"input\", _extends({\n type: \"text\",\n ref: _this.setInputRef\n }, props));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderTextarea\", function (props) {\n return /*#__PURE__*/React.createElement(\"textarea\", _extends({\n ref: _this.setInputRef\n }, props));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setInputRef\", function (el) {\n _this.inputElement = el;\n var inputRef = _this.props.inputRef;\n\n if (typeof inputRef === 'function') {\n inputRef(el);\n } else if (inputRef) {\n inputRef.current = el;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setSuggestionsElement\", function (el) {\n _this.suggestionsElement = el;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderSuggestionsOverlay\", function () {\n if (!isNumber(_this.state.selectionStart)) {\n // do not show suggestions when the input does not have the focus\n return null;\n }\n\n var _this$state$suggestio = _this.state.suggestionsPosition,\n position = _this$state$suggestio.position,\n left = _this$state$suggestio.left,\n top = _this$state$suggestio.top,\n right = _this$state$suggestio.right;\n var suggestionsNode = /*#__PURE__*/React.createElement(SuggestionsOverlay$1, {\n id: _this.uuidSuggestionsOverlay,\n style: _this.props.style('suggestions'),\n position: position,\n left: left,\n top: top,\n right: right,\n focusIndex: _this.state.focusIndex,\n scrollFocusedIntoView: _this.state.scrollFocusedIntoView,\n containerRef: _this.setSuggestionsElement,\n suggestions: _this.state.suggestions,\n customSuggestionsContainer: _this.props.customSuggestionsContainer,\n onSelect: _this.addMention,\n onMouseDown: _this.handleSuggestionsMouseDown,\n onMouseEnter: _this.handleSuggestionsMouseEnter,\n isLoading: _this.isLoading(),\n isOpened: _this.isOpened(),\n ignoreAccents: _this.props.ignoreAccents,\n a11ySuggestionsListLabel: _this.props.a11ySuggestionsListLabel\n }, _this.props.children);\n\n if (_this.props.suggestionsPortalHost) {\n return /*#__PURE__*/ReactDOM.createPortal(suggestionsNode, _this.props.suggestionsPortalHost);\n } else {\n return suggestionsNode;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderHighlighter\", function () {\n var _this$state = _this.state,\n selectionStart = _this$state.selectionStart,\n selectionEnd = _this$state.selectionEnd;\n var _this$props3 = _this.props,\n singleLine = _this$props3.singleLine,\n children = _this$props3.children,\n value = _this$props3.value,\n style = _this$props3.style;\n return /*#__PURE__*/React.createElement(Highlighter$1, {\n containerRef: _this.setHighlighterElement,\n style: style('highlighter'),\n value: value,\n singleLine: singleLine,\n selectionStart: selectionStart,\n selectionEnd: selectionEnd,\n onCaretPositionChange: _this.handleCaretPositionChange\n }, children);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setHighlighterElement\", function (el) {\n _this.highlighterElement = el;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleCaretPositionChange\", function (position) {\n _this.setState({\n caretPosition: position\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getPlainText\", function () {\n return getPlainText(_this.props.value || '', readConfigFromChildren(_this.props.children));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"executeOnChange\", function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (_this.props.onChange) {\n var _this$props4;\n\n return (_this$props4 = _this.props).onChange.apply(_this$props4, [event].concat(args));\n }\n\n if (_this.props.valueLink) {\n var _this$props$valueLink;\n\n return (_this$props$valueLink = _this.props.valueLink).requestChange.apply(_this$props$valueLink, [event.target.value].concat(args));\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleChange\", function (ev) {\n isComposing = false;\n\n if (isIE()) {\n // if we are inside iframe, we need to find activeElement within its contentDocument\n var currentDocument = document.activeElement && document.activeElement.contentDocument || document;\n\n if (currentDocument.activeElement !== ev.target) {\n // fix an IE bug (blur from empty input element with placeholder attribute trigger \"input\" event)\n return;\n }\n }\n\n var value = _this.props.value || '';\n var config = readConfigFromChildren(_this.props.children);\n var newPlainTextValue = ev.target.value;\n var selectionStartBefore = _this.state.selectionStart;\n\n if (selectionStartBefore == null) {\n selectionStartBefore = ev.target.selectionStart;\n }\n\n var selectionEndBefore = _this.state.selectionEnd;\n\n if (selectionEndBefore == null) {\n selectionEndBefore = ev.target.selectionEnd;\n } // Derive the new value to set by applying the local change in the textarea's plain text\n\n\n var newValue = applyChangeToValue(value, newPlainTextValue, {\n selectionStartBefore: selectionStartBefore,\n selectionEndBefore: selectionEndBefore,\n selectionEndAfter: ev.target.selectionEnd\n }, config); // In case a mention is deleted, also adjust the new plain text value\n\n newPlainTextValue = getPlainText(newValue, config); // Save current selection after change to be able to restore caret position after rerendering\n\n var selectionStart = ev.target.selectionStart;\n var selectionEnd = ev.target.selectionEnd;\n var setSelectionAfterMentionChange = false; // Adjust selection range in case a mention will be deleted by the characters outside of the\n // selection range that are automatically deleted\n\n var startOfMention = findStartOfMentionInPlainText(value, config, selectionStart);\n\n if (startOfMention !== undefined && _this.state.selectionEnd > startOfMention) {\n // only if a deletion has taken place\n selectionStart = startOfMention + (ev.nativeEvent.data ? ev.nativeEvent.data.length : 0);\n selectionEnd = selectionStart;\n setSelectionAfterMentionChange = true;\n }\n\n _this.setState({\n selectionStart: selectionStart,\n selectionEnd: selectionEnd,\n setSelectionAfterMentionChange: setSelectionAfterMentionChange\n });\n\n var mentions = getMentions(newValue, config);\n\n if (ev.nativeEvent.isComposing && selectionStart === selectionEnd) {\n _this.updateMentionsQueries(_this.inputElement.value, selectionStart);\n } // Propagate change\n // let handleChange = this.getOnChange(this.props) || emptyFunction;\n\n\n var eventMock = {\n target: {\n value: newValue\n }\n }; // this.props.onChange.call(this, eventMock, newValue, newPlainTextValue, mentions);\n\n _this.executeOnChange(eventMock, newValue, newPlainTextValue, mentions);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleSelect\", function (ev) {\n // keep track of selection range / caret position\n _this.setState({\n selectionStart: ev.target.selectionStart,\n selectionEnd: ev.target.selectionEnd\n }); // do nothing while a IME composition session is active\n\n\n if (isComposing) return; // refresh suggestions queries\n\n var el = _this.inputElement;\n\n if (ev.target.selectionStart === ev.target.selectionEnd) {\n _this.updateMentionsQueries(el.value, ev.target.selectionStart);\n } else {\n _this.clearSuggestions();\n } // sync highlighters scroll position\n\n\n _this.updateHighlighterScroll();\n\n _this.props.onSelect(ev);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleKeyDown\", function (ev) {\n // do not intercept key events if the suggestions overlay is not shown\n var suggestionsCount = countSuggestions(_this.state.suggestions);\n\n if (suggestionsCount === 0 || !_this.suggestionsElement) {\n _this.props.onKeyDown(ev);\n\n return;\n }\n\n if (Object.values(KEY).indexOf(ev.keyCode) >= 0) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n\n switch (ev.keyCode) {\n case KEY.ESC:\n {\n _this.clearSuggestions();\n\n return;\n }\n\n case KEY.DOWN:\n {\n _this.shiftFocus(+1);\n\n return;\n }\n\n case KEY.UP:\n {\n _this.shiftFocus(-1);\n\n return;\n }\n\n case KEY.RETURN:\n {\n _this.selectFocused();\n\n return;\n }\n\n case KEY.TAB:\n {\n _this.selectFocused();\n\n return;\n }\n\n default:\n {\n return;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"shiftFocus\", function (delta) {\n var suggestionsCount = countSuggestions(_this.state.suggestions);\n\n _this.setState({\n focusIndex: (suggestionsCount + _this.state.focusIndex + delta) % suggestionsCount,\n scrollFocusedIntoView: true\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"selectFocused\", function () {\n var _this$state2 = _this.state,\n suggestions = _this$state2.suggestions,\n focusIndex = _this$state2.focusIndex;\n var _Object$values$reduce = Object.values(suggestions).reduce(function (acc, _ref) {\n var results = _ref.results,\n queryInfo = _ref.queryInfo;\n return [].concat(_toConsumableArray(acc), _toConsumableArray(results.map(function (result) {\n return {\n result: result,\n queryInfo: queryInfo\n };\n })));\n }, [])[focusIndex],\n result = _Object$values$reduce.result,\n queryInfo = _Object$values$reduce.queryInfo;\n\n _this.addMention(result, queryInfo);\n\n _this.setState({\n focusIndex: 0\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleBlur\", function (ev) {\n var clickedSuggestion = _this._suggestionsMouseDown;\n _this._suggestionsMouseDown = false; // only reset selection if the mousedown happened on an element\n // other than the suggestions overlay\n\n if (!clickedSuggestion) {\n _this.setState({\n selectionStart: null,\n selectionEnd: null\n });\n }\n\n window.setTimeout(function () {\n _this.updateHighlighterScroll();\n }, 1);\n\n _this.props.onBlur(ev, clickedSuggestion);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleSuggestionsMouseDown\", function (ev) {\n _this._suggestionsMouseDown = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleSuggestionsMouseEnter\", function (focusIndex) {\n _this.setState({\n focusIndex: focusIndex,\n scrollFocusedIntoView: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateSuggestionsPosition\", function () {\n var caretPosition = _this.state.caretPosition;\n var _this$props5 = _this.props,\n suggestionsPortalHost = _this$props5.suggestionsPortalHost,\n allowSuggestionsAboveCursor = _this$props5.allowSuggestionsAboveCursor,\n forceSuggestionsAboveCursor = _this$props5.forceSuggestionsAboveCursor;\n\n if (!caretPosition || !_this.suggestionsElement) {\n return;\n }\n\n var suggestions = _this.suggestionsElement;\n var highlighter = _this.highlighterElement; // first get viewport-relative position (highlighter is offsetParent of caret):\n\n var caretOffsetParentRect = highlighter.getBoundingClientRect();\n var caretHeight = getComputedStyleLengthProp(highlighter, 'font-size');\n var viewportRelative = {\n left: caretOffsetParentRect.left + caretPosition.left,\n top: caretOffsetParentRect.top + caretPosition.top + caretHeight\n };\n var viewportHeight = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n\n if (!suggestions) {\n return;\n }\n\n var position = {}; // if suggestions menu is in a portal, update position to be releative to its portal node\n\n if (suggestionsPortalHost) {\n position.position = 'fixed';\n var left = viewportRelative.left;\n var top = viewportRelative.top; // absolute/fixed positioned elements are positioned according to their entire box including margins; so we remove margins here:\n\n left -= getComputedStyleLengthProp(suggestions, 'margin-left');\n top -= getComputedStyleLengthProp(suggestions, 'margin-top'); // take into account highlighter/textinput scrolling:\n\n left -= highlighter.scrollLeft;\n top -= highlighter.scrollTop; // guard for mentions suggestions list clipped by right edge of window\n\n var viewportWidth = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n\n if (left + suggestions.offsetWidth > viewportWidth) {\n position.left = Math.max(0, viewportWidth - suggestions.offsetWidth);\n } else {\n position.left = left;\n } // guard for mentions suggestions list clipped by bottom edge of window if allowSuggestionsAboveCursor set to true.\n // Move the list up above the caret if it's getting cut off by the bottom of the window, provided that the list height\n // is small enough to NOT cover up the caret\n\n\n if (allowSuggestionsAboveCursor && top + suggestions.offsetHeight > viewportHeight && suggestions.offsetHeight < top - caretHeight || forceSuggestionsAboveCursor) {\n position.top = Math.max(0, top - suggestions.offsetHeight - caretHeight);\n } else {\n position.top = top;\n }\n } else {\n var _left = caretPosition.left - highlighter.scrollLeft;\n\n var _top = caretPosition.top - highlighter.scrollTop; // guard for mentions suggestions list clipped by right edge of window\n\n\n if (_left + suggestions.offsetWidth > _this.containerElement.offsetWidth) {\n position.right = 0;\n } else {\n position.left = _left;\n } // guard for mentions suggestions list clipped by bottom edge of window if allowSuggestionsAboveCursor set to true.\n // move the list up above the caret if it's getting cut off by the bottom of the window, provided that the list height\n // is small enough to NOT cover up the caret\n\n\n if (allowSuggestionsAboveCursor && viewportRelative.top - highlighter.scrollTop + suggestions.offsetHeight > viewportHeight && suggestions.offsetHeight < caretOffsetParentRect.top - caretHeight - highlighter.scrollTop || forceSuggestionsAboveCursor) {\n position.top = _top - suggestions.offsetHeight - caretHeight;\n } else {\n position.top = _top;\n }\n }\n\n if (position.left === _this.state.suggestionsPosition.left && position.top === _this.state.suggestionsPosition.top && position.position === _this.state.suggestionsPosition.position) {\n return;\n }\n\n _this.setState({\n suggestionsPosition: position\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateHighlighterScroll\", function () {\n var input = _this.inputElement;\n var highlighter = _this.highlighterElement;\n\n if (!input || !highlighter) {\n // since the invocation of this function is deferred,\n // the whole component may have been unmounted in the meanwhile\n return;\n }\n\n highlighter.scrollLeft = input.scrollLeft;\n highlighter.scrollTop = input.scrollTop;\n highlighter.height = input.height;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleCompositionStart\", function () {\n isComposing = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleCompositionEnd\", function () {\n isComposing = false;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setSelection\", function (selectionStart, selectionEnd) {\n if (selectionStart === null || selectionEnd === null) return;\n var el = _this.inputElement;\n\n if (el.setSelectionRange) {\n el.setSelectionRange(selectionStart, selectionEnd);\n } else if (el.createTextRange) {\n var range = el.createTextRange();\n range.collapse(true);\n range.moveEnd('character', selectionEnd);\n range.moveStart('character', selectionStart);\n range.select();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateMentionsQueries\", function (plainTextValue, caretPosition) {\n // Invalidate previous queries. Async results for previous queries will be neglected.\n _this._queryId++;\n _this.suggestions = {};\n\n _this.setState({\n suggestions: {}\n });\n\n var value = _this.props.value || '';\n var children = _this.props.children;\n var config = readConfigFromChildren(children);\n var positionInValue = mapPlainTextIndex(value, config, caretPosition, 'NULL'); // If caret is inside of mention, do not query\n\n if (positionInValue === null) {\n return;\n } // Extract substring in between the end of the previous mention and the caret\n\n\n var substringStartIndex = getEndOfLastMention(value.substring(0, positionInValue), config);\n var substring = plainTextValue.substring(substringStartIndex, caretPosition); // Check if suggestions have to be shown:\n // Match the trigger patterns of all Mention children on the extracted substring\n\n React.Children.forEach(children, function (child, childIndex) {\n if (!child) {\n return;\n }\n\n var regex = makeTriggerRegex(child.props.trigger, _this.props);\n var match = substring.match(regex);\n\n if (match) {\n var querySequenceStart = substringStartIndex + substring.indexOf(match[1], match.index);\n\n _this.queryData(match[2], childIndex, querySequenceStart, querySequenceStart + match[1].length, plainTextValue);\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"clearSuggestions\", function () {\n // Invalidate previous queries. Async results for previous queries will be neglected.\n _this._queryId++;\n _this.suggestions = {};\n\n _this.setState({\n suggestions: {},\n focusIndex: 0\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"queryData\", function (query, childIndex, querySequenceStart, querySequenceEnd, plainTextValue) {\n var _this$props6 = _this.props,\n children = _this$props6.children,\n ignoreAccents = _this$props6.ignoreAccents;\n var mentionChild = Children.toArray(children)[childIndex];\n var provideData = getDataProvider(mentionChild.props.data, ignoreAccents);\n var syncResult = provideData(query, _this.updateSuggestions.bind(null, _this._queryId, childIndex, query, querySequenceStart, querySequenceEnd, plainTextValue));\n\n if (syncResult instanceof Array) {\n _this.updateSuggestions(_this._queryId, childIndex, query, querySequenceStart, querySequenceEnd, plainTextValue, syncResult);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateSuggestions\", function (queryId, childIndex, query, querySequenceStart, querySequenceEnd, plainTextValue, results) {\n // neglect async results from previous queries\n if (queryId !== _this._queryId) return; // save in property so that multiple sync state updates from different mentions sources\n // won't overwrite each other\n\n _this.suggestions = _objectSpread$1(_objectSpread$1({}, _this.suggestions), {}, _defineProperty({}, childIndex, {\n queryInfo: {\n childIndex: childIndex,\n query: query,\n querySequenceStart: querySequenceStart,\n querySequenceEnd: querySequenceEnd,\n plainTextValue: plainTextValue\n },\n results: results\n }));\n var focusIndex = _this.state.focusIndex;\n var suggestionsCount = countSuggestions(_this.suggestions);\n\n _this.setState({\n suggestions: _this.suggestions,\n focusIndex: focusIndex >= suggestionsCount ? Math.max(suggestionsCount - 1, 0) : focusIndex\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"addMention\", function (_ref2, _ref3) {\n var id = _ref2.id,\n display = _ref2.display;\n var childIndex = _ref3.childIndex,\n querySequenceStart = _ref3.querySequenceStart,\n querySequenceEnd = _ref3.querySequenceEnd,\n plainTextValue = _ref3.plainTextValue;\n // Insert mention in the marked up value at the correct position\n var value = _this.props.value || '';\n var config = readConfigFromChildren(_this.props.children);\n var mentionsChild = Children.toArray(_this.props.children)[childIndex];\n var _mentionsChild$props = mentionsChild.props,\n markup = _mentionsChild$props.markup,\n displayTransform = _mentionsChild$props.displayTransform,\n appendSpaceOnAdd = _mentionsChild$props.appendSpaceOnAdd,\n onAdd = _mentionsChild$props.onAdd;\n var start = mapPlainTextIndex(value, config, querySequenceStart, 'START');\n var end = start + querySequenceEnd - querySequenceStart;\n var insert = makeMentionsMarkup(markup, id, display);\n\n if (appendSpaceOnAdd) {\n insert += ' ';\n }\n\n var newValue = spliceString(value, start, end, insert); // Refocus input and set caret position to end of mention\n\n _this.inputElement.focus();\n\n var displayValue = displayTransform(id, display);\n\n if (appendSpaceOnAdd) {\n displayValue += ' ';\n }\n\n var newCaretPosition = querySequenceStart + displayValue.length;\n\n _this.setState({\n selectionStart: newCaretPosition,\n selectionEnd: newCaretPosition,\n setSelectionAfterMentionChange: true\n }); // Propagate change\n\n\n var eventMock = {\n target: {\n value: newValue\n }\n };\n var mentions = getMentions(newValue, config);\n var newPlainTextValue = spliceString(plainTextValue, querySequenceStart, querySequenceEnd, displayValue);\n\n _this.executeOnChange(eventMock, newValue, newPlainTextValue, mentions);\n\n if (onAdd) {\n onAdd(id, display, start, end);\n } // Make sure the suggestions overlay is closed\n\n\n _this.clearSuggestions();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"isLoading\", function () {\n var isLoading = false;\n React.Children.forEach(_this.props.children, function (child) {\n isLoading = isLoading || child && child.props.isLoading;\n });\n return isLoading;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"isOpened\", function () {\n return isNumber(_this.state.selectionStart) && (countSuggestions(_this.state.suggestions) !== 0 || _this.isLoading());\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_queryId\", 0);\n\n _this.suggestions = {};\n _this.uuidSuggestionsOverlay = Math.random().toString(16).substring(2);\n _this.handleCopy = _this.handleCopy.bind(_assertThisInitialized(_this));\n _this.handleCut = _this.handleCut.bind(_assertThisInitialized(_this));\n _this.handlePaste = _this.handlePaste.bind(_assertThisInitialized(_this));\n _this.state = {\n focusIndex: 0,\n selectionStart: null,\n selectionEnd: null,\n suggestions: {},\n caretPosition: null,\n suggestionsPosition: {},\n setSelectionAfterHandlePaste: false\n };\n return _this;\n }\n\n _createClass(MentionsInput, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n document.addEventListener('copy', this.handleCopy);\n document.addEventListener('cut', this.handleCut);\n document.addEventListener('paste', this.handlePaste);\n this.updateSuggestionsPosition();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n // Update position of suggestions unless this componentDidUpdate was\n // triggered by an update to suggestionsPosition.\n if (prevState.suggestionsPosition === this.state.suggestionsPosition) {\n this.updateSuggestionsPosition();\n } // maintain selection in case a mention is added/removed causing\n // the cursor to jump to the end\n\n\n if (this.state.setSelectionAfterMentionChange) {\n this.setState({\n setSelectionAfterMentionChange: false\n });\n this.setSelection(this.state.selectionStart, this.state.selectionEnd);\n }\n\n if (this.state.setSelectionAfterHandlePaste) {\n this.setState({\n setSelectionAfterHandlePaste: false\n });\n this.setSelection(this.state.selectionStart, this.state.selectionEnd);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener('copy', this.handleCopy);\n document.removeEventListener('cut', this.handleCut);\n document.removeEventListener('paste', this.handlePaste);\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: this.setContainerElement\n }, this.props.style), this.renderControl(), this.renderSuggestionsOverlay());\n }\n }, {\n key: \"handlePaste\",\n value: function handlePaste(event) {\n if (event.target !== this.inputElement) {\n return;\n }\n\n if (!this.supportsClipboardActions(event)) {\n return;\n }\n\n event.preventDefault();\n var _this$state3 = this.state,\n selectionStart = _this$state3.selectionStart,\n selectionEnd = _this$state3.selectionEnd;\n var _this$props7 = this.props,\n value = _this$props7.value,\n children = _this$props7.children;\n var config = readConfigFromChildren(children);\n var markupStartIndex = mapPlainTextIndex(value, config, selectionStart, 'START');\n var markupEndIndex = mapPlainTextIndex(value, config, selectionEnd, 'END');\n var pastedMentions = event.clipboardData.getData('text/react-mentions');\n var pastedData = event.clipboardData.getData('text/plain');\n var newValue = spliceString(value, markupStartIndex, markupEndIndex, pastedMentions || pastedData).replace(/\\r/g, '');\n var newPlainTextValue = getPlainText(newValue, config);\n var eventMock = {\n target: _objectSpread$1(_objectSpread$1({}, event.target), {}, {\n value: newValue\n })\n };\n this.executeOnChange(eventMock, newValue, newPlainTextValue, getMentions(newValue, config)); // Move the cursor position to the end of the pasted data\n\n var startOfMention = findStartOfMentionInPlainText(value, config, selectionStart);\n var nextPos = (startOfMention || selectionStart) + getPlainText(pastedMentions || pastedData, config).length;\n this.setState({\n selectionStart: nextPos,\n selectionEnd: nextPos,\n setSelectionAfterHandlePaste: true\n });\n }\n }, {\n key: \"saveSelectionToClipboard\",\n value: function saveSelectionToClipboard(event) {\n // use the actual selectionStart & selectionEnd instead of the one stored\n // in state to ensure copy & paste also works on disabled inputs & textareas\n var selectionStart = this.inputElement.selectionStart;\n var selectionEnd = this.inputElement.selectionEnd;\n var _this$props8 = this.props,\n children = _this$props8.children,\n value = _this$props8.value;\n var config = readConfigFromChildren(children);\n var markupStartIndex = mapPlainTextIndex(value, config, selectionStart, 'START');\n var markupEndIndex = mapPlainTextIndex(value, config, selectionEnd, 'END');\n event.clipboardData.setData('text/plain', event.target.value.slice(selectionStart, selectionEnd));\n event.clipboardData.setData('text/react-mentions', value.slice(markupStartIndex, markupEndIndex));\n }\n }, {\n key: \"supportsClipboardActions\",\n value: function supportsClipboardActions(event) {\n return !!event.clipboardData;\n }\n }, {\n key: \"handleCopy\",\n value: function handleCopy(event) {\n if (event.target !== this.inputElement) {\n return;\n }\n\n if (!this.supportsClipboardActions(event)) {\n return;\n }\n\n event.preventDefault();\n this.saveSelectionToClipboard(event);\n }\n }, {\n key: \"handleCut\",\n value: function handleCut(event) {\n if (event.target !== this.inputElement) {\n return;\n }\n\n if (!this.supportsClipboardActions(event)) {\n return;\n }\n\n event.preventDefault();\n this.saveSelectionToClipboard(event);\n var _this$state4 = this.state,\n selectionStart = _this$state4.selectionStart,\n selectionEnd = _this$state4.selectionEnd;\n var _this$props9 = this.props,\n children = _this$props9.children,\n value = _this$props9.value;\n var config = readConfigFromChildren(children);\n var markupStartIndex = mapPlainTextIndex(value, config, selectionStart, 'START');\n var markupEndIndex = mapPlainTextIndex(value, config, selectionEnd, 'END');\n var newValue = [value.slice(0, markupStartIndex), value.slice(markupEndIndex)].join('');\n var newPlainTextValue = getPlainText(newValue, config);\n var eventMock = {\n target: _objectSpread$1(_objectSpread$1({}, event.target), {}, {\n value: newPlainTextValue\n })\n };\n this.executeOnChange(eventMock, newValue, newPlainTextValue, getMentions(value, config));\n } // Handle input element's change event\n\n }]);\n\n return MentionsInput;\n}(React.Component);\n/**\n * Returns the computed length property value for the provided element.\n * Note: According to spec and testing, can count on length values coming back in pixels. See https://developer.mozilla.org/en-US/docs/Web/CSS/used_value#Difference_from_computed_value\n */\n\n\n_defineProperty(MentionsInput, \"propTypes\", propTypes);\n\n_defineProperty(MentionsInput, \"defaultProps\", {\n ignoreAccents: false,\n singleLine: false,\n allowSuggestionsAboveCursor: false,\n onKeyDown: function onKeyDown() {\n return null;\n },\n onSelect: function onSelect() {\n return null;\n },\n onBlur: function onBlur() {\n return null;\n }\n});\n\nvar getComputedStyleLengthProp = function getComputedStyleLengthProp(forElement, propertyName) {\n var length = parseFloat(window.getComputedStyle(forElement, null).getPropertyValue(propertyName));\n return isFinite(length) ? length : 0;\n};\n\nvar isMobileSafari = typeof navigator !== 'undefined' && /iPhone|iPad|iPod/i.test(navigator.userAgent);\nvar styled$3 = createDefaultStyle({\n position: 'relative',\n overflowY: 'visible',\n input: {\n display: 'block',\n width: '100%',\n position: 'absolute',\n margin: 0,\n top: 0,\n left: 0,\n boxSizing: 'border-box',\n backgroundColor: 'transparent',\n fontFamily: 'inherit',\n fontSize: 'inherit',\n letterSpacing: 'inherit'\n },\n '&multiLine': {\n input: _objectSpread$1({\n height: '100%',\n bottom: 0,\n overflow: 'hidden',\n resize: 'none'\n }, isMobileSafari ? {\n marginTop: 1,\n marginLeft: -3\n } : null)\n }\n}, function (_ref4) {\n var singleLine = _ref4.singleLine;\n return {\n '&singleLine': singleLine,\n '&multiLine': !singleLine\n };\n});\nvar MentionsInput$1 = styled$3(MentionsInput);\n\nvar defaultStyle = {\n fontWeight: 'inherit'\n};\n\nvar Mention = function Mention(_ref) {\n var display = _ref.display,\n style = _ref.style,\n className = _ref.className,\n classNames = _ref.classNames;\n var styles = useStyles(defaultStyle, {\n style: style,\n className: className,\n classNames: classNames\n });\n return /*#__PURE__*/React.createElement(\"strong\", styles, display);\n};\n\nMention.propTypes = {\n /**\n * Called when a new mention is added in the input\n *\n * Example:\n *\n * ```js\n * function(id, display) {\n * console.log(\"user \" + display + \" was mentioned!\");\n * }\n * ```\n */\n onAdd: PropTypes.func,\n onRemove: PropTypes.func,\n renderSuggestion: PropTypes.func,\n trigger: PropTypes.oneOfType([PropTypes.string, PropTypes.instanceOf(RegExp)]),\n markup: PropTypes.string,\n displayTransform: PropTypes.func,\n\n /**\n * If set to `true` spaces will not interrupt matching suggestions\n */\n allowSpaceInQuery: PropTypes.bool,\n isLoading: PropTypes.bool\n};\nMention.defaultProps = {\n trigger: '@',\n markup: '@[__display__](__id__)',\n displayTransform: function displayTransform(id, display) {\n return display || id;\n },\n onAdd: function onAdd() {\n return null;\n },\n onRemove: function onRemove() {\n return null;\n },\n renderSuggestion: null,\n isLoading: false,\n appendSpaceOnAdd: false\n};\n\nexport { Mention, MentionsInput$1 as MentionsInput };\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}"],"names":["displayPrint","style","prop","cssProperty","transform","value","display","displayRaw","overflow","textOverflow","visibility","whiteSpace","compose","flexBasis","flexDirection","flexWrap","justifyContent","alignItems","alignContent","order","flex","flexGrow","flexShrink","alignSelf","justifyItems","justifySelf","position","zIndex","themeKey","right","bottom","left","fontFamily","fontSize","fontStyle","fontWeight","letterSpacing","textTransform","lineHeight","textAlign","typographyVariant","filterPropsMapping","borders","filterProps","flexbox","grid","positions","palette","shadows","sizing","spacing","typography","styleFunctionMapping","propToStyleFunction","Object","keys","reduce","acc","styleFnName","forEach","propName","theme","inputProps","styleFunction","createBox","_excluded","cssVarPrefix","shouldSkipGeneratingVar","otherTheme","prepareCssVars","prefix","createContainer","getContainerUtilityClass","slot","generateUtilityClass","generateUtilityClasses","createGrid","getGridUtilityClass","GRID_SIZES","gridClasses","map","direction","wrap","size","createStack","getStackUtilityClass","experimental_sx","Error","x","isBlank","Array","isArray","isFunction","trim","length","isNullOrEmptyString","getTime","source","filters","predicate","args","_i","arguments","data","reduceRight","curr","getterCache","FIELD_REGEX","obj","what","FilterOperator","field","safe","key","fields","replace","_","index","indexAccessor","push","result","idx","pairwise","empty","has","accessor","isNotEmpty","isNotEmptyArray","runOrEmpty","fn","formatDescriptors","formatter","state","join","sanitizeDateLiterals","_a","s","RegExp","removeAfterDot","str","slice","indexOf","directionFormatter","_b","dir","aggregates","group","sort","formatSort","formatGroup","formatAggregates","aggregate","formatDateValue","JSON","stringify","date","Date","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","transformSkip","skip","take","Math","floor","transformTake","transformGroup","transformSort","transformAggregates","filterFormatter","assign","filter","operator","set","ignoreCase","target","fieldName","g1","toLowerCase","convert","mapper","values","bind","translateAggregate","translateAggregates","valueOrDefault","defaultValue","translateGroup","hasSubgroups","items","Aggregates","Member","member","HasSubgroups","Items","Key","compare","a","b","localeCompare","compareDesc","descriptorAsFunc","descriptor","initial","normalizeOperator","equal","equals","equalto","ge","greater","greaterthan","greaterthanequal","isempty","isequalto","isgreaterthan","isgreaterthanorequalto","islessthan","islessthanorequalto","isnotempty","isnotequalto","isnull","le","less","lessthan","lessthanequal","ne","notequal","notequals","notequalto","notsubstringof","logic","normalizeDescriptor","concat","identity","operatorsMap","contains","doesnotcontain","doesnotendwith","doesnotstartwith","lastIndexOf","endswith","eq","gt","gte","isnotnull","lt","lte","neq","startswith","dateRegExp","typedGetter","exec","isNaN","parseFloat","transformFilter","itemProp","convertValue","op","transformCompositeFilter","combiner","orderBy","descriptors","some","comparer","composeSortDescriptors","_0x56e23b","_0x123c92","_0x123c","_0x1ad168","_0x5db12a","_0x5db1","undefined","_0x393855","_0xbe983e","_0x49e1b","_0x4e5e56","_0x3fed70","_0x750334","String","_0x494368","_0x82b829","_0x4fd1c0","_0x1833b4","_0x311e8e","_0x25bc51","decodeURIComponent","_0x3ef435","context","cache","Map","setScriptKey","_0x1ea9be","validatePackage","_0x47ac40","_0x577700","_0x25c0dd","_0x4e1054","_0x53e7a9","_0x10ea86","_0x318388","KendoLicensing","_0x138cec","_0x5c0afe","_0x18e99f","_0x15a028","_0x2b664c","Set","_0x4a7445","_0x5541dc","_0x5bc7e3","matchProduct","isExpired","parseDate","console","_0x5989d0","_0x40d4ef","_0x2cec00","_0x11cec0","formatError","_0x100b95","_0x1fce89","_0x45012f","_0x3616c6","_0x1cb080","replaceClassName","origClass","classToRemove","removeClass","node","classes","split","c","className","element","classList","remove","setAttribute","baseVal","CSSTransition","_React$Component","_this","_len","_key","call","apply","this","appliedClasses","appear","enter","exit","onEnter","maybeNode","maybeAppearing","_this$resolveArgument","resolveArguments","appearing","removeClasses","addClass","props","onEntering","_this$resolveArgument2","type","onEntered","_this$resolveArgument3","onExit","onExiting","onExited","nodeRef","current","getClassNames","classNames","isStringClassNames","baseClassName","activeClassName","doneClassName","_proto","prototype","phase","add","hasClass","_addClass","_this$appliedClasses$","base","active","done","render","_this$props","Transition","defaultProps","propTypes","extendStatics","__extends","d","setPrototypeOf","__proto__","p","hasOwnProperty","TypeError","__","constructor","create","__assign","t","i","n","__rest","e","getOwnPropertySymbols","propertyIsEnumerable","styles","util","AnimationChild","_super","elementRef","defineProperty","get","enumerable","configurable","children","transitionName","transitionEnterDuration","transitionExitDuration","onAfterExited","mountOnEnter","unmountOnExit","animationEnteringStyle","animationEnteredStyle","animationExitingStyle","animationExitedStyle","other","childAnimationContainerClassNames","defaultStyle","transitionDelay","animationStyle","entering","transitionDuration","entered","exiting","exited","transitionProps","in","timeout","animatedElement","appearActive","enterActive","exitActive","status","ref","noop","packageMetadata","name","productName","productCodes","publishDate","version","licensingDocsUrl","Animation","id","component","childFactory","componentChildStyle","stackChildren","componentChildClassName","content","child","TransitionGroup","Reveal","maxHeight","maxWidth","componentWillEnter","event","onBeforeEnter","updateContainerDimensions","componentIsEntering","componentWillExit","firstChild","newHeight","newWidth","setState","maxOffset","outerHeight","ownerDocument","defaultView","computedStyles","getComputedStyle","marginTop","marginBottom","offsetHeight","outerWidth","marginLeft","marginRight","offsetWidth","Button","_element","handleClick","toggleIfApplicable","onClick","selected","togglable","_selectedTemp","getDerivedStateFromProps","icon","iconClass","svgIcon","imageUrl","imageAlt","_c","_d","rounded","_e","fillMode","_f","themeColor","htmlAttributes","hasIcon","hasChildren","iconEl","role","alt","src","iconElement","button","Boolean","disabled","ButtonGroup","buttons","mapButtons","groupClasses","width","groupProps","div","count","rtl","renderButton","isLast","isRtl","buttonProps","Chip","chipRef","selection","dispatchSelection","focus","dispatchFocus","dispatchData","focused","payload","handleRemove","removable","onRemove","syntheticEvent","handleKeyDown","keyCode","onKeyDown","handleFocus","onFocus","handleBlur","onBlur","mouseProps","tabIndex","ariaDescribedBy","selectedIcon","selectedSvgIcon","avatar","image","text","ariaLabel","removeIcon","removeSvgIcon","removeIconSvg","selectedIconSvg","dataItem","displayName","ChipListSelectionContext","_args","ChipListFocusContext","ChipListDataContext","ChipList","chipListRef","chip","ariaLabelledBy","defaultData","valueField","textField","onChange","onDataChange","ChipComponent","handleChange","newValue","_g","callback","action","newState","useSelection","stateValue","dispatchStateValue","handleDataChange","newData","_h","useData","stateData","itemsReducer","chipValue","valueGetter","item","textGetter","_j","useFocus","Provider","CHIP_DATA_ACTION","dataReducer","reorder","FOCUS_ACTION","focusReducer","currentIndex","findIndex","next","prev","reset","SELECTION_TYPE","SELECTION_ACTION","__spreadArray","to","from","pack","ar","l","selectionReducer","single","toggle","multiple","none","ButtonItem","As","onMouseDown","onDown","onPointerDown","itemIndex","IconWrap","SplitButtonItem","focusedIndex","altKey","total","min","max","getAnchorAlign","isDirectionRightToLeft","align","horizontal","vertical","getPopupAlign","SplitButton","opened","wrapper","mainButton","list","guid","skipFocus","buttonsData","setOpen","dispatchPopupEvent","preventDefault","dispatchClickEvent","notOpened","newFocused","arrowKey","switchFocus","focusFn","window","setTimeout","dispatchEvent","openedDuringOnChange","onItemClick","clickedItemIndex","onPopupClose","removeAttribute","preventScroll","listRef","onSplitPartClick","toOpen","onDownSplitPart","activeElement","getActiveElement","document","onItemDown","dispatchedEvent","open","onOpen","onClose","el","accessKey","buttonClass","title","renderPopup","componentDidMount","forceUpdate","isItemDisabled","onButtonClick","popupSettings","Popup","anchor","show","animate","popupClass","anchorAlign","popupAlign","renderChildItems","itemRender","DropDownButtonItem","DropDownButton","mouseDown","onClickMainButton","btn","ToolbarSeparator","ToolbarSpacer","spacer","FloatingActionButtonItem","others","focusElement","getImperativeHandle","itemClassNames","ItemComp","getTabIndex","customProp","DEFAULT_OFFSET","toStringValues","val","fabAlign","horizontalPosition","end","center","start","verticalPosition","top","middle","FloatingActionButton","alignOffset","positionMode","overlayStyle","modal","zIndexContext","u","currentZIndex","popupRef","setFocused","setFocusedIndex","buttonId","useDir","listId","xFab","xCenterFab","yFab","y","yCenterFab","setProperty","isOpen","handleMouseDown","dispatchItemClickEvent","itemProps","handleItemClick","handleItemDown","currIndex","maxNavIndex","isAtBottom","buttonClassNames","fabItems","hAlign","ltr","isIconFab","ZIndexContext","boxShadow","paddingLeft","paddingRight","Toolbar","focusedSelector","selectors","setTabIndex","defaultPrevented","focusButton","onWindowResize","newSizes","onResize","nativeEvent","querySelector","addEventListener","keyboardNavigation","querySelectorAll","componentDidUpdate","componentWillUnmount","removeEventListener","prevIndex","prevButton","ToolbarItem","noInnerButton","toolbarButtons","Draggable","childRef","getElement","handlePress","onPress","handleRelease","onRelease","handleDragStart","onDragStart","handleDrag","onDrag","handleDragEnd","onDragEnd","mouseOnly","autoScroll","hint","scrollContainer","getDocument","BrowserSupportService","scrollbar","createElement","cssText","innerHTML","body","appendChild","scrollWidth","removeChild","canUseDOM","addLeafKeys","arg","addKeys","useZIndexContext","DragContext","DropContext","DragsContext","DropsContext","eventHandler","eventData","eventBaseData","fieldList","_match","getInnerActiveElement","shadowRoot","contentDocument","useDefaultTabIndexWhenDisabled","parsedTabIndex","parseInt","NaN","getter","random","toString","hasRelativeStackingContext","elementSource","currentDocument","parent","createTextNode","isDifferent","getBoundingClientRect","AsyncFocusBlur","onSyncFocus","onSyncBlur","createPropsContext","withPropsContext","Component","contextProps","useAsyncFocusBlur","tick","nextTick","f","clearTimeout","useCustomComponent","comp","initialDir","setDir","rtlCandidate","useDocument","DRAG_AND_DROP_DISPATCH_ACTION","intersect","candidates","candidate","ration","elementRect","targetRect","height","targetArea","entryArea","intersectionArea","Number","toFixed","getRatio","detectBrowser","ua","navigator","userAgent","browser","match","browserRxs","edge","webkit","safari","opera","msie","mozilla","agent","DOCUMENT_NODE","scrollableRoot","support","documentElement","isScrollable","getScrollableParent","root","nodeType","Node","DOCUMENT_FRAGMENT_NODE","parentNode","dispatchDragAndDrop","callbacks","mouseX","mouseY","rect","velocity","AUTO_SCROLL_AREA","onIsPressedChange","onIsScrollingChange","onVelocityChange","onOffsetChange","onPageOffsetChange","onClientOffsetChange","onScrollOffsetChange","onInitialScrollOffsetChange","drag","autoScrollDirection","overrideScrollableParent","scrollableParent","test","isTouchEvent","pageX","changedTouches","pageY","clientX","clientY","scrollX","scrollOffset","scrollY","offsetX","offset","offsetY","originalEvent","isTouch","ctrlKey","shiftKey","metaKey","isScrollEvent","pageOffset","clientOffset","normalizeEvent","POINTER_DOWN","isPrimary","MOUSE_DOWN","which","ignoreMouse","TOUCH_START","touches","START","scrollableParent_1","Window","scrollLeft","scrollTop","SCROLL","pressed","initialScrollOffset","POINTER_MOVE","MOUSE_MOVE","TOUCH_MOVE","MOVE","document_1","scrollableParent_2","elementFromPoint","newVelocity","innerHeight","innerWidth","scrollableViewPort","getWindow","dropElement_1","drops","drop","find","container","isPointerInsideContainer","onDragLeave","onDragEnter","onDragOver","POINTER_UP","MOUSE_UP","TOUCH_END","END","onDrop","POINTER_CANCEL","CONTEXT_MENU","TOUCH_CANCEL","CANCEL","vel","yIsScrollable","xIsScrollable","scrollHeight","yDelta","yInBounds","xDelta","xInBounds","useDraggable","options","_k","setPressed","_l","scrolling","setScrolling","useInheritedState","_m","setDrag","_o","drags","registerDrag","deregisterDrag","scrollInterval","restoreMouseTimeout","scrollable","unmount","initialClientOffset","supportPointerEvent","PointerEvent","pointers","getHintElement","getScrollContainer","getAutoScrollContainer","boundaryElementRef","getState","enabled","isScrolling","handlePressedChange","handleScrollingChange","handleVelocityChange","handleOffsetChange","handleClientOffsetChange","handlePageOffsetChange","handleInitialClientOffsetChange","handleScrollOffsetChange","handleInitialScrollOffsetChange","dispatchDragEvent","onInitialClientOffsetChange","handlePointerDown","handlePointerMove","handlePointerCancel","handlePointerUp","handleMouseMove","handleMouseUp","handleContextMenu","handleTouchStart","handleTouchMove","handleTouchEnd","currentWindow","handleScroll","prerequisites","initialTouchAction_1","touchAction","register","clearInterval","setInterval","passive","capture","contextValue","contextSetter","localValue","localSetter","useMouse","extend","onMouseUp","onDoubleClick","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","usePropsContext","contextPropsCallback","useRtl","Icon","flip","sizeProp","flipProp","fontClassNames","icons","fontIconProps","svg","IconsContext","SvgIcon","svgClassName","svgStyle","viewBox","iconNameProp","viewBoxProp","elementClassNames","elementStyle","focusable","xmlns","dangerouslySetInnerHTML","__html","SIZE_CLASSES","toIconName","toIconClass","svgIconPropType","Keys","backspace","tab","shift","esc","space","pageUp","pageDown","home","up","down","delete","canUseRef","Comment","isReactComponent","isClassComponent","$$typeof","isForwardRef","cloneDate","clone","cloneObject","cloneValue","nextValue","cloneArray","newNextValue","array","focusFirstFocusableChild","HTMLInputElement","FormComponent","setterCache","nextField","arrays","setter","depth","COLLECTION_ACTION","didRender","WatermarkOverlay","setIsOpen","bannerMounted","setBannerMounted","bannerElement","padding","borderRadius","backgroundColor","color","fill","fillRule","clipRule","href","border","transition","outline","cursor","opacity","pointerEvents","backgroundImage","useCollection","collection","handleCollectionAction","splice","useWindow","FONT_SIZE_CLASSES","FONT_WEIGHT_CLASSES","MARGIN_ENUM_CLASSES","MARGIN_ENUM_VALUES","MARGIN_SIDES_CLASSES","TEXT_ALIGN_CLASSES","TEXT_TRANSFORM_CLASSES","THEME_COLOR_CLASSES","generateTypography","margin","setMarginClasses","marginClassesList_1","marginSide","toUpperCase","Typography","h1","h2","h3","h4","h5","h6","code","pre","useControlledState","defaultProp","DragAndDrop","setDrop","dispatchDrags","dispatchDrops","useDroppable","registerDrop","deregisterDrop","handleDragEnter","handleDragOver","handleDragLeave","handleDrop","Droppable","areInputsEqual","newInputs","lastInputs","first","second","memoizeOne","resultFn","isEqualFn","memoized","newArgs","lastThis","lastArgs","lastResult","clear","FOCUSABLE_ELEMENTS","Navigation","rovingTabIndex","update","focusNextIndex","indexDiff","all","elements","focusOptions","mouseEvents","keyboardEvents","matches","focusNext","focusPrevious","triggerKeyboardEvent","ev","Element","closest","eventType","triggerMouseEvent","previous","getScrollbarWidth","scrollbarWidth","setScrollbarWidth","kendoThemeMaps","sizeMap","small","medium","large","roundedMap","orientationMap","TreeFieldsService","treeViewProps","expandField","selectField","hasChildrenField","childrenField","disableField","checkField","checkIndeterminateField","focusIdField","expanded","checked","checkIndeterminate","focusId","getChildrenField","SortedPublicItemIds","objects","init","publicItemIds","currentObj","hasId","publicItemId","EMPTY_ID","ZERO_LEVEL_ZERO_NODE_ID","SEPARATOR","getItemById","itemId","isIdZeroLevel","rootParentItem","getRootParentId","subItems","getIdWithoutRootParentId","isIdEmptyOrZeroLevel","firstSeparatorIndex","substring","getFirstChildId","createId","childId","parentId","getDirectParentId","lastSeparatorIndex","getAllShortIds","getShortId","isItemFirstFromSiblings","getDecrementedItemIdAfterRemoval","removedItemId","preservedItemId","itemSharedPath","startsWith","itemNotSharedPath","siblingShortId","isItemExpandedAndWithChildren","fieldsSvc","resolveItemId","publicId","idField","resolvedIds","resolveItemsIds","publicIds","sortedIds","resolveItemsIdsHelper","updateItem","cloneField","isEnabledAndAllParentsEnabled","ids","currentItems","currentItem","getAllDirectIndirectChildrenIds","getChildrenPublicIds","startItem","getChildrenHierarchicalIndices","startItemId","areAllDirectChildrenChecked","check","every","getAllParents","removeItem","rootParentIndex","rootParent","addItem","operation","targetItemId","targetItem","parentItemId","getNestedValue","path","subItemsField","mapItem","callbackfn","mapTree","tree","mapTreeItem","level","curData","parentNodes","newItemIndex","newItem","extendDataItem","propsToExtend","getItemPath","nodes","itemLevel","allowed","message","warn","shouldShowValidationUI","hostname","globalThis","location","endsWith","ColumnResize","triggerResize","columns","resizable","setIsRtl","dragHandler","column","dragCue","stopPropagation","stopImmediatePropagation","tdElement","parentElement","oldWidth","clientWidth","abs","setWidths","coef","indexInOriginal","toAdjust","more","cc","colToAdjust","targetWidth","minResizableWidth","updateColElements","affectedColumns","difference","colIndex","currentColumnFloatWidth","currentWidth","setColWidth","colGroupMain","colGroupHeader","colGroupFooter","col","ColumnResizer","draggable","isDragged","resize","autofit","CommonDragLogic","columnReorder","groupReorder","columnToGroup","reorderable","groupable","startColumn","startGroup","currentColumn","currentGroup","dropElementClue","dragElementClue","groupPanelDivElement","refGroupPanelDiv","refDropElementClue","refDragElementClue","pressHandler","getColumnIndex","getGroupIndex","invalidIndex","isValid","targetElement","updateDragElementClue","updateDropElementClue","releaseHandler","prevColumnIndex","nextColumnIndex","prevGroupIndex","nextGroupIndex","visible","_loop_1","this_1","state_1","parentIndex","innerText","clientHeight","DragClue","hiddenElementRef","hiddenElement","dragClue","createPortal","DropClue","dropClue","settings","emptyFilter","inputComponent","_props","operatorComponent","cellProps","onFilterChange","filterResult","BooleanFilterCell","DateFilterCell","createFilterComponent","Cell","FilterComponent","filterChange","inputChange","existing","findCellFilter","operatorChange","clearButtonClick","clearButtonTitle","operators","operatorComponentProps","iconClassName","components","N","NumericFilterCell","TextFilterCell","ColumnDefaultProps","filterable","editable","sortable","FILTER_ROW_CLASS","headerCellClassName","locked","FilterRow","ariaRowIndex","intl","borderRightWidth","rightBorder","FilterCell","filterCell","columnId","navigatable","ariaColumnIndex","toLanguageString","Header","columnResize","headerRow","filterRow","HeaderCell","clickProps","defaultRendering","ColumnDraggable","sortSeqMap","true","false","ariaSortMap","HeaderRow","cellClick","sortChange","allowUnsort","mode","oldDescriptor","newDescriptor","cellKeyDown","isDefaultPrevented","cells","rowIndexes","columnIndex","sortIndex","sortDir","columnMenuProps","onSortChange","columnMenuFilter","columnMenuFilterChange","headerCellProps","selectionChange","selectionValue","headerSelectionValue","cellRender","sortIcon","columnMenuWrapperProps","ColumnMenu","columnMenu","kFirst","headerClassName","sortLabel","messages","ariaAttrs","isAccessible","ariaSort","ariaSelected","ariaDescription","HeaderThElement","colSpan","rowSpan","headerCell","columnsMap","HeaderSelectionCell","inputId","htmlFor","navigationAttributes","normalize","nextColumn","currentDepth","getColumnWidth","currentSum","mapColumns","maxDepth","q","colIndexByLevel","needKFirst","ci","updateLeft","updateRight","generateLeft","stickyLeftWidth","generateRight","stickyRightWidth","j","readColumns","idInfo","columnProps","prevId","idPrefix","declarationIndex","orderIndex","ret_1","flat_1","cols","pIndex","getIndex","coord","pos","PagerNumericButtons","handlePageChange","page","pageChange","handleSelectPageChange","localizationService","mobileSelectMessage","messagesMap","messageKey","defaultMessage","pageNumberLabelMessage","pagerMorePagesLabelMessage","pagerMoreButtonAriaLabel","prevDots","renderDots","postDots","totalPages","prevOptionDots","renderOptionDots","postOptionDots","numerics","currentPage","buttonCount","reminder","PagerInput","handleOnChange","intlService","pageMessage","ofMessage","totalPagesMessage","NumericTextBox","spinners","format","PagerPageSizes","pageSizeChange","pageSizes","pageSize","sizes","unshift","itemPerPageMessage","pageSelectionMessage","DropDownList","Pager","onPageChange","targetEvent","changePage","responsive","showPagerSizes","showPagerInfo","last","pageSizeValue","changer","firstPageMessage","previousPageMessage","nextPageMessage","lastPageMessage","infoMessage","ariaKeyshortcutsMessage","ariaLabelMessage","previousNext","pagerPageSizes","info","isDisabled","ceil","TextFilter","nextFilter","locService","NumericFilter","DateFilter","DatePicker","EnumFilter","defaultItem","locData","BooleanFilter","textOperators","numericOperators","dateOperators","booleanOperators","Operators","stringOperator","unaryOperator","setInitialValue","Expression","onFieldChange","nextFieldName","prevFilter","o","triggerOnFilterChange","onOperatorChange","prevFilterNoValue","onInputChange","changeEvent","onFilterRemove","removeEvent","Group","onGroupRemove","onAddExpression","firstField","newExpression","onAddGroup","defaultGroupFilter","onLogicAnd","changeLogic","onLogicOr","replaceFilter","ariaLabelExpression","Filter","ariaLabelGroup","cur","ColumnMenuItem","CheckboxPropsContext","Checkbox","directProps","labelClassName","defaultChecked","label","labelPlacement","labelOptional","required","valid","validationMessage","validityStyles","visited","touched","modified","stateChecked","setStateChecked","setStateValue","valueIsBoolean","isCheckedControlled","isValueControlled","currentValue","currentChecked","useValueAsChecked","checkedProp","valueProp","indeterminateProp","calculatedId","useLocalization","localizeMessage","defaultValidationMessage","optionalMessage","setCustomValidity","setValue","currentVal","currentTarget","handleKeyUp","checkboxClasses","onKeyUp","checkboxInput","checkboxLabel","userSelect","validate","ColumnMenuOperators","ColumnMenuFilter","initialFilter","localization","input","ColumnMenuBooleanFilter","isTrue","boolean","ColumnMenuTextFilter","pr","Input","ColumnMenuNumericFilter","numeric","ColumnMenuDateFilter","logicData","ColumnMenuFilterLogic","ColumnMenuForm","onSubmit","onReset","actions","ColumnMenuFilterForm","ColumnMenuWrapper","emptySort","sortAsc","sortDesc","filterContent","expandFilters","setShow","filterExpand","setFilterExpand","currentFilter","setCurrentFilter","blurTimeout","willBlur","menuFilter","inF","closeMenu","onAnchorMouseDown","onColumnMenuButtonClick","filterItemClick","changeSort","newSort","currentSortIndex","newSortDescriptor","_event","stateFilter","onFilterSubmit","newFilter","onFilterReset","sortAscChange","sortDescChange","onLogicChange","currentSort","FirstFilterComponent","FilterLogicComponent","SecondFilterComponent","menuItems","rendering","itemsRender","ColumnMenuTextColumn","currentField","hasField","ColumnMenuNumericColumn","ColumnMenuDateColumn","ColumnMenuBooleanColumn","GROUP_ID_FIELD","GROUP_SUBITEMS_COLLECTION","setGroupId","parentValue","setGroupIds","getGroupIds","groupIds","setExpandedState","collapsedIds","groupId","pagerInfo","pagerFirstPage","pagerPreviousPage","pagerNextPage","pagerLastPage","pagerItemPerPage","pagerPage","pagerOf","pagerTotalPages","pagerAriaKeyshortcuts","pagerAriaLabel","pagerPageSizeAriaLabel","pagerMobileSelect","pagerMoreButtonLabel","filterEqOperator","filterNotEqOperator","filterIsNullOperator","filterIsNotNullOperator","filterIsEmptyOperator","filterIsNotEmptyOperator","filterStartsWithOperator","filterContainsOperator","filterNotContainsOperator","filterEndsWithOperator","filterGteOperator","filterGtOperator","filterLteOperator","filterLtOperator","filterIsTrue","filterIsFalse","filterAfterOrEqualOperator","filterAfterOperator","filterBeforeOperator","filterBeforeOrEqualOperator","filterAndLogic","filterOrLogic","filterAddExpression","filterAddGroup","filterClose","filterGroupAriaLabel","filterExpressionAriaLabel","filterExpressionDropdownAriaLabel","filterExpressionOperatorDropdownAriaLabel","filterEnumFilterDropdownAriaLabel","filterNumericFilterAriaLabel","filterTextFilterAriaLabel","columnMenuFilterClearButton","columnMenuFilterSubmitButton","columnMenuFilterTitle","columnMenuSortAscending","columnMenuSortDescending","columnMenuFilterEqOperator","columnMenuFilterNotEqOperator","columnMenuFilterIsNullOperator","columnMenuFilterIsNotNullOperator","columnMenuFilterIsEmptyOperator","columnMenuFilterIsNotEmptyOperator","columnMenuFilterStartsWithOperator","columnMenuFilterContainsOperator","columnMenuFilterNotContainsOperator","columnMenuFilterEndsWithOperator","columnMenuFilterGteOperator","columnMenuFilterGtOperator","columnMenuFilterLteOperator","columnMenuFilterLtOperator","columnMenuFilterIsTrue","columnMenuFilterAfterOrEqualOperator","columnMenuFilterAfterOperator","columnMenuFilterBeforeOperator","columnMenuFilterBeforeOrEqualOperator","columnMenuFilterAndLogic","columnMenuFilterOrLogic","sortAriaLabel","filterAriaLabel","generateMatrix","navigationStateRef","scope","matrix","thead","tbody","headerRows","bodyRows","row","rowIndex","cell","cellId","cellIndex","cellSpan","freeSlotIndex","mi","navigationMatrix","lastHeaderIndex","tableKeyboardNavigation","onConstructor","contextStateRef","activeId","activeElementIsFocused","prevNavigationIndexes","onComponentDidMount","firstId","firstIdElement","onGetSnapshotBeforeUpdate","onComponentDidUpdate","focusedElement","prevElement","onNavigationAction","elementId","dataLevel","navigatableElement","elementForFocus","isReverse","isVertical","currentIdIndexes","idForFocus","currentIndexes","TableKeyboardNavigationContext","KEYBOARD_NAV_DATA_LEVEL","KEYBOARD_NAV_DATA_SCOPE","KEYBOARD_NAV_DATA_HEADER","KEYBOARD_NAV_DATA_BODY","KEYBOARD_NAV_DATA_ID","KEYBOARD_NAV_DATA_ZONE","KEYBOARD_NAV_FILTER_COL_SUFFIX","FOCUSABLE_ELEMENTS_BASE","TABBABLE_ELEMENTS","selector","tableKeyboardNavigationScopeAttributes","tableKeyboardNavigationHeaderAttributes","tableKeyboardNavigationBodyAttributes","useTableKeyboardNavigation","navigationContext","generateNavigatableId","navigationId","getNavigatableId","dataId","getAttribute","isNavigatable","getHeaderElement","getBodyElement","findNextIdByRowIndex","initialRowIndex","currentRowIndex","currentId","findNextIdByCellIndex","initialCellIndex","currentCellIndex","findId","getFilterColumnId","tableKeyboardNavigationTools","getNavigatableLevel","getNavigatableElement","getClosestNavigatableElement","getClosestScope","getFocusableElements","getNavigatableElements","filterNavigatableElements","sel","getIdPrefix","getNextNavigationIndex","TableSelection","selectable","selectionEnabled","selectionDrag","selectionMode","selectionCell","draggableRef","overlayElementRef","dragStartRef","overlaySettings","setOverlaySettings","offsetParentRef","isDraggedRef","isPreventedRef","onPressHandler","hasAttribute","onDragHandler","onReleaseHandler","top_1","overlayElement","startElement","endElement","startTdElement","startTrElement","endTdElement","endTrElement","startColIndex","startRowIndex","endColIndex","endRowIndex","isDrag","trElement","TABLE_ROW_INDEX_ATTRIBUTE","TABLE_COL_INDEX_ATTRIBUTE","TABLE_PREVENT_SELECTION_ELEMENT","LAST_SELECTION_STATE","closestTagName","tagName","getRowIndex","setSelectedState","idGetter","dataItemKey","selectedField","selectedState","getSelectedStateFromKeyDown","dataItems","componentId","selectionState","getSelectedState","currentSelection","selectedColumn","prevSelectedState","isInputEvent","currentDataItem","lastRowIndex","lastColIndex","currentStartRowIndex","currentEndRowIndex","currentStarColIndex","currentEndColIndex","selectedColumns_2","selectedColumns_1","HAS_RELATIVE_STACKING_CONTEXT","relativeContextElement","getOffset","offsetParent","getSelectionOptions","sortChildren","sorted","filterChildren","filtered","filterBy","flatData","getChildren","itemMap","stack","flatted","levelCount","stackItem","pop","treeToFlat","flatItems","flattedData","createDataTree","dataset","getId","getParentId","parentItem","hashTable","dataTree","removeItems","condition","childIndex","newChildren","modifySubItems","change","moveTreeItem","destination","targetItemPath","targetParent","targetItemIndex","destinationItem","tableColumnsVirtualization","tableViewPortWidth","colSpans","hiddenColumns","widths","widthOfHiddenColumns","considerNext","totalWidth","hiddenSeqLength","updateIndex","hiddenCols","hidden","lastVisible","anyHidden","allHidden","adjustDST","hour","newDate","setHours","createDate","year","month","day","hours","minutes","seconds","milliseconds","setFullYear","expected","addDays","setDate","lastDayOfMonth","addMonths","expectedMonth","setMonth","Mask","symbols","partMap","dateSymbolMap","part","pattern","wrapperClasses","KendoDate","intlProvider","formatPlaceholder","leadingZero","typedMonthPart","knownParts","_value","monthNames","allFormatedMonths","modifyExisting","hasValue","splitDateFormat","getExisting","getDateObject","getTextAndFormat","merge","formatDate","dateFormatString","sampleFormat","setExisting","symbol","modifyPart","setMinutes","setSeconds","parsePart","currentChar","resetLeadingZero","baseDate","dateParts","baseFormat","replaced","suffix","parsedDate","matchMonth","charAt","middleNumber","monthNumber","isAbbrMonth","symbolMap","hasLeadingZero","parts","partPattern","names","typedChar","monthAsNum","dateFormatParts","dateFormatNames","partLength","returnValue","mask","resultText","resultFormat","r","currentSymbol","dateFieldName","nameType","viewInRange","MIN_DATE","MAX_DATE","MIN_TIME","MAX_TIME","origin","getToday","isInSelectionRange","selectionRange","range","step","intersects","shiftWeekNames","dateInRange","domContainerFactory","getters","increaseValue","decreaseValue","today","toggleCalendar","method","defaultGetters","normalizeTimes","snappersFactory","candidateValue","maxValue","minValue","DateInputWithoutContext","kendoDate","currentFormat","paste","_wrapper","_inputId","_lastSelectedSymbol","setValidity","validity","updateOnPaste","oldValue","triggerChange","spinnersMouseDown","handlePaste","elementChange","dateBeforeChange","diff","oldTextOrigin","oldFormat","newTextOrigin","selectionStart","oldTextSeparator","oldText","newText","deletedSymbol","approximateStringMatching","navigationOnly","setSelection","selectionBySymbol","switchDateSegment","elementClick","selectionByIndex","nativeWheel","wheel","deltaY","increasePart","decreasePart","modifyDateSegmentValue","elementKeyDown","elementOnFocus","elementOnBlur","prevState","placeholder","_ref","currentText","wrapperClassesInstance","dateinput","span","ariaRole","readOnly","readonly","spellCheck","autoComplete","autoCorrect","ariaHasPopup","ariaExpanded","ariaControls","onWheel","onInput","onPaste","FloatingLabel","editorId","editorValue","editorValid","editorDisabled","valueDuringOnChange","DateInput","inRange","isInTimeRange","minTime","maxTime","customError","rangeOverflow","rangeUnderflow","valueMissing","selectionEnd","requestAnimationFrame","disableSelection","setSelectionRange","previousFormatSymbol","currentStepSymbol","steps","skeleton","time","datetime","era","weekday","hour12","minute","timeZoneName","DateInputPropsContext","ScrollDirection","isEqualDate","RowHeightService","rowHeight","detailRowHeight","offsets","heights","agg","expandDetail","updateRowHeight","collapseDetail","totalHeight","arr","ScrollAction","PageAction","ScrollerService","onScrollAction","onPageAction","firstLoaded","lastLoaded","lastScrollTop","rowHeightService","bottomOffset","topOffset","offsetBufferRows","rowsForHeight","skipWithOffset","rowOffset","onScroll","scrollPosition","offsetSize","firstItemIndex","lastItemIndex","nonVisibleBuffer","Day","Direction","scrollModifiers","Forward","Backward","scrollNormalizers","scrollValidators","Virtualization","lastDirection","lastTotal","lastTake","animationInProgress","scrollTo","scrollProperty","scrollToIndex","animateToIndex","cancelAnimationFrame","cancelAnimation","indexOffset","getContainerScrollDirection","scrollRange","scrollStep","modifyScroll","normalizeScroll","isScrollValid","progress","scrollToBottom","duration","scrollDuration","containerScroll","containerScrollPosition","staticOffset","maxScrollDifference","maxScroll","containerMaxScroll","sign","containerScrollSize","containerOffsetSize","initServices","dimension","itemHeight","itemWidth","scrollerService","scrollOffsetSize","getContainerProperty","propertyName","scrollAction","pageAction","handleScrollAction","handlePageAction","activeIndex","itemOffset","isIndexVisible","containerTop","containerBottom","isListScrolled","onMount","vertexLength","placeholderStyle","rootClassNames","scrollableClassNames","forceScroll","CalendarViewEnum","dayOfWeek","weekDay","newDay","getDay","moveDateToWeekStart","weekStartDay","Monday","prevDayOfWeek","calcWeekInYear","firstWeekInYear","diffInMS","days","CalendarCell","handleMouseEnter","handleMouseLeave","shouldComponentUpdate","nextProps","newProps","xProps","getOwnPropertyNames","yProps","compareProps","isWeekend","formattedValue","isFocused","isSelected","isInRange","isRangeStart","isRangeMid","isRangeEnd","isRangeSplitStart","isRangeSplitEnd","isToday","view","isEndActive","activeRangeEnd","isStartActive","rootClassName","CalendarWeekCell","firstDate","WeekNamesService","getWeekNames","includeWeekNumber","weekNames","firstDay","emptyCell","View","weekService","buildWeekNumber","weekCellValue","getWeekNumber","uniqueID","weekCell","buildRow","aria","activeView","firstWeekDateContext","rowCtx","weekNumber","ctx","onCellEnter","onCellLeave","showWeekNumbers","selectedDate","service","rowLength","viewDate","cellUID","focusedDate","isActiveView","bus","canMoveDown","isMonthView","isHorizontal","prevWeekDate","nextWeekDate","weekInYear","isRequired","CalendarHeaderTitle","getTitle","currentDate","rangeLength","nextDate","addToDate","handleTitleClick","canMoveUp","moveUp","titleClassNames","headerTitleProps","headerTitle","verticalView","commands","TodayCommand","todayIsInRange","event_1","isTodayClick","todayMessage","todayClassNames","ViewList","virtualization","calendarView","table","viewOffset","viewHeight","isActive","shouldScroll","focusActiveDate","focusedCell","nextActiveCell","blurActiveDate","handleVirtualizationMount","indexToScroll","buildMonthView","buildDates","dates","handleDateChange","calculateHeights","dom","scrollableHeight","scrollableContentHeight","scrollableYearContentHeight","headerHeight","getTake","translate","handleTodayClick","lastView","lastFocus","smoothScroll","_prevProps","_prevState","didViewChange","activeDate","didViewChanged","decade","century","datesList","viewListBody","didCalculate","Action","CalendarNavigationItem","maxViewHeight","buildNavigationItem","navigationTitle","navigationItemProps","navigationItem","calendarHeight","navigationItemHeight","monthViewHeight","navigationBody","DOMService","yearViewHeight","decadeViewHeight","centuryViewHeight","calendarWidth","monthViewWidth","yearViewWidth","decadeViewWidth","centuryViewWidth","scrollableContentWidth","hostContainer","ensureHeights","navElement","ul","li","td","th","tr","monthHeader","repeat","navigationList","viewFactory","renderWeekHeader","viewElement","rows","contentElement","getScrollable","scrollableElement","monthView","yearView","decadeView","getBody","batch","viewType","viewDimension","viewWidth","viewProp","appendedContent","setYear","addYears","addDecades","addCenturies","normalizeYear","firstDecadeOfCentury","lastDecadeOfCentury","firstYearOfDecade","durationInCenturies","EMPTY_DATA","ACTIONS","Left","Up","Right","Down","PrevView","NextView","FirstInView","LastInView","CenturyViewService","lastDate","cellOffset","cellDate","isEqual","isSelectedFromArray","cellTitle","isInArray","aboveMin","belowMax","isInSameView","move","modifier","lastYearOfDecade","durationInDecades","DecadeViewService","addWeeks","firstDayOfMonth","durationInMonths","MonthViewService","firstMonthDate","lastMonthDate","abbrMonthNames","wideMonthNames","prependCell","standAlone","firstMonthOfYear","lastMonthOfYear","durationInYears","YearViewService","_intl","months","currentYear","services","BusViewService","onViewChanged","configure","moveDown","moveToBottom","clamp","KEY_TO_ACTION","UpperView","LowerView","NavigationService","ScrollSyncService","divideByMagnitude","powerByMagnitude","monthScrolled","navScrolled","magnitude","sync","scrollSiblingOf","scrolledElement","siblingComponent","calculateScroll","virtualizationProp","calculateValue","propValue","CalendarWithoutContext","scrollSyncService","calendarViewList","didNavigationChange","handleNavigationChange","handleViewChange","canNavigateDown","navigation","defaultActiveView","bottomView","topView","Promise","resolve","then","didValueChange","sanitizedValue","mobileMode","calendarBody","componentName","CalendarPropsContext","Calendar","ToggleButton","PickerWrap","PickerFloatingLabel","floatingLabelProps","dateInput","usePickerFloatingLabel","AdaptiveMode","footer","windowWidth","navigatableElements","expand","animation","adaptiveTitle","mobileFilter","animationStyles","ActionSheet","ActionSheetHeader","ActionSheetFooter","cancelText","onCancel","applyText","onApply","DatePickerWithoutContext","_popupId","_dateInput","_calendar","shouldFocusDateInput","prevShow","setCalendarRef","calendar","nextState","nextShow","otherPopupSettings","popupClassNames","popupProps","calendarProps","handleCalendarValueChange","calendarComp","popupComp","renderAdaptivePopup","actionSheetProps","ActionSheetContent","handleInputValueChange","handleValueChange","mergeTime","showDuringOnChange","handleIconClick","handleIconMouseDown","defaultShow","adaptive","toggleButton","popup","pickerWrap","observerResize","ResizeObserver","calculateMedia","observe","nextTickId","disconnect","dateInputProps","toggleButtonTitle","datepicker","dateInputComp","toggleButtonComp","entries","entries_1","entry","appendTo","DatePickerPropsContext","ListDefaultItem","DropDownListWithoutContext","DropDownBase","searchState","word","_select","_skipFocusEvent","_filterInput","_navigated","_lastKeypressIsFilter","handleItemSelect","virtual","newSelected","triggerOnChange","triggerPageChangeCornerItems","componentRef","dummySelect","valueMap","renderListContainer","header","groupField","groupStickyHeaderItemRender","getPopupSettings","popupWidth","listContainerProps","dirCalculated","onPopupOpened","onPopupClosed","itemsCount","ListContainer","renderListFilter","vs","renderDefaultItem","GroupStickyHeader","groupMode","renderList","groupHeaderItemRender","listNoDataRender","List","listBoxId","getFocusedIndex","optionsGuid","wrapperStyle","wrapperCssClass","listStyle","noDataRender","wrapperRef","scrollerRef","scroller","renderScrollElement","scrollHandler","getGroupedDataModernMode","filterText","ListFilter","handleListFilterChange","handleDefaultItemClick","search","_typingTimeout","delay","selectNext","mappedData","isInLoop","dataLength","startIndex","loopMatch","nextMatch","initState","applyState","_valueDuringOnChange","leftRightKeysNavigation","skipDisabledItems","selectedIndex","homeOrEndKeys","upOrDownKeys","shouldOpen","shouldClose","leftOrRightKeys","shouldNavigate","triggerOnPageChange","scrollPopupByPageSize","haveFocusedItemAndDataNotEmpty","togglePopup","resetValueIfDisabledItem","onNavigate","newIndex","tempnewIndex_1","dataToSearch","tempnewIndex_2","skipItems","tempnewIndex_3","dataTest","tempnewIndex_4","renderAdaptive","events","handleWrapperClick","isPropagationStopped","handleKeyPress","character","fromCharCode","charCode","filterChanged","prevProps","prevTotal","prevOpened","opening","calcScrollElementHeight","selectedItem_1","prevSelectedItem","selectedItemIndex","selectedItemChanged","scrollToVirtualItem","resetGroupStickyHeader","scrollToItem","scrollToEnd","didMount","btnAriaLabel","loading","valueRender","valueDefaultRendering","valueElement","dropdownlist","nodeName","onKeyPress","renderAdaptiveListContainer","navigate","focusedItemIndex","DropDownListPropsContext","VirtualScroll","scrollElement","containerHeight","PageChange","prevScrollPos","listTranslate","scrollSyncing","heightChanged","newSkip","translateTo","dY","localScrollUp","targetTranslate","additionalOnTop","validateTranslate","localScrollDown","itemsLenght","scrollNonStrict","floatItemIndex","calculatePopupWidth","offsetTop","scroll","groupName","that","shouldUpdate","calculateDir","vsEnabled","once","virtualScroll","eventArgs","handler","basicPropTypes","openDuration","closeDuration","renderer","ListGroupItem","isMultiColumn","renderItems","highlightSelected","groupCounter","realIndex","idIndex","ListItem","renderNoValueElement","noDataElement","listClassName","unselectable","contentKey","InputPrefix","MOBILE_SMALL_DEVISE","MOBILE_MEDIUM_DEVISE","isPresent","sameCharsOnly","shuffleData","splitIndex","matchText","temp","scrollElem","viewportHeight","itemOffsetTop","itemIndexStartsWith","itemText","getItemValue","getItemIndexByText","matchCase","casing","data_1","removeDataItems","toRemove","areSame","item1","item2","getFocusedItem","suggestValue","suggested","suggestedItem","suggestedText","preventDefaultNonInputs","matchTags","tag1","tag2","data1","data2","matchDataCollections","SearchBar","_input","prevValue","prevSuggestedText","valueChanged","deleting","searchbar","owns","activedescendant","ariaRequired","ClearButton","ComboBoxWithoutContext","_suggested","_skipBlur","_adaptiveFilterInput","toggleBtnClick","isCurrentValueDisabled","getCurrentValueDisabledStatus","clearValueOnToggleBtnClick","mobileText","adaptiveFilter","renderMobileListFilter","selectedItemText","mobileInputText","handleMobileFilterChange","onInputKeyDown","onGroupScroll","clearValueOnBlur","applyValueOnRejectSuggestions","onInputClick","isCustomValue","clearValueOnEnterOrEsc","applyValueOnEnter","inputOnChange","suggest","selectionAtEnd","prevText","deletedSuggestion","focusedItem","clearValue","selectedItem","_valueOnDidUpdate","btnAriaLabelExpand","btnAriaLabelCollapse","clearButton","inputText","renderClearButton","combobox","renderSearchBar","allowCustom","valueIndex","itemSelected","selectFocusedItem","valueItemText","isMobileDevice","footerClassName","ListComponent","isAdaptive","ComboBoxPropsContext","ComboBox","AutoCompleteWithoutContext","_isScrolling","itemFocus","onChangeHandler","prevSuggestion","prevUserInput","suggestion","userInput","altOrOptionsKeyPressed","applyInputValue","prevData","dataChanged","focusedItemChanged","typedText","eventKey","inputValue","indexOfFocusedItem","AutoCompletePropsContext","AutoComplete","TagList","tagRender","TagComponent","tag","onTagDelete","tagData","focusedTag","ActiveDescendant","FocusedItemType","isCustom","CustomItem","MultiSelectWithoutContext","PopupList","_valueItemsDuringOnChange","_tags","_adaptiveInput","scrollToFocused","indexInValue","newItems","blur","itemsToRemove","getFocusedState","customItem","nextFocusedItem","searchbarRef","onTagsNavigate","customItemSelect","listContainerContent","focusedType","closePopup","tagsToRender","autoClose","tags","closing","customItemFocused","currentTagsToRender","setItems","placeholderToShow","adaptivePlaceholder","ariaActivedescendant","TagsList","itemsKey","newFocusedTag","hasFocused","removed","itemtoSelect","srcItems","destItems","focusedInd","last_1","None","MultiSelectPropsContext","MultiSelect","MultiColumnList","MultiColumnComboBoxPropsContext","MultiColumnComboBox","comboBoxRef","initialGroupHeader","groupHeader","setGroupHeader","showStickyHeader","setShowStickyHeader","uniqueKey","defaultWidth","liProps","curGroup","prevGroup","groupGetter","handleEvent","onOpenHandler","onCloseHandler","onFocusHandler","onBlurHandler","onPageChangeHandler","onFilterChangeHandler","listProps","PopupProps","useDropdownWidth","initialStyleWidth","setWidth","ListNoData","ValueHolder","toLevel","hierarchicalIndex","DropDownTreePropsContext","DropDownTree","combinedProps","inputRef","adaptiveInputRef","selectRef","treeViewRef","skipFocusRef","controlled","currentValueText","parameters","getValidity","popupStyles","setWindowWidth","setFilter","openPopup","openEvent","closeEvent","onWrapperClick","onWrapperKeyDown","treeview","reverse","onClear","focusEvent","onWrapperMouseDown","changeValue","itemHierarchicalIndex","onExpand","onExpandChange","expandEvent","treeViewData","NoData","listNoData","ValueComponent","valueHolder","dropdowntree","TreeView","expandIcons","editorPlaceholder","MultiSelectTreePropsContext","MultiSelectTree","componentGuid","targetRef","tagsToRenderRef","focusedTagState","setFocusedTagState","_p","openState","setOpenState","_q","focusedState","setFocusedState","_r","_s","currentTreeValue","setCurrentTreeValue","_t","filterState","setFilterState","setPosition","_popup","relatedItems","treeviewElement","multiselecttree","onCheckChange","checkboxes","getValueMap","getMultiSelectTreeValue","deletedItemsMap_1","foundItem","selectedId","subItemGetter","parents","contextItem","parentPosition","childrenStack","parentCandidates","newValueMap_1","foundId_1","childrenMap_1","parentsMap_1","nodata","comboArrowBtnAriaLabelExpand","comboArrowBtnAriaLabelCollapse","dropDownListArrowBtnAriaLabel","adaptiveModeFooterApply","adaptiveModeFooterCancel","InputWithoutContext","isInvalid","handleAutoFill","animationName","parent_1","badInput","patternMismatch","stepMismatch","tooLong","typeMismatch","inputClassName","textbox","onAnimationStart","InputPropsContext","numericIncreaseValue","numericDecreaseValue","checkboxValidation","checkboxOptionalText","DEFAULT_NUMBER","DIGITS_REGEX","getStateOrPropsValue","formatValue","formatNumber","fractionLength","maxFractionLength","value1","value2","toFixedPrecision","precision","maxPrecision","limitPrecision","increasedValue","rangeValue","eventValue","currentLooseValue","getLastNumberIndex","decreasedValue","rangeSelection","nextLooseValue","formatInfo","maxPosition","formatSuffixIndex","currSuffix","getMaxCursorPosition","minPosition","formatPrefixIndex","currPrefix","getMinCursorPosition","setInvalid","parseNumber","prevLooseValue","valueIsCorrected","getInitialPosition","decimalIdex","decimal","reverseString","inputRegex","getPrefix","getSuffix","reversedString","getFirstNumberIndex","getDecimalCount","currentDecimalPlace","changeBasedSelection","selectionPosition","isDelete","sanitizeRegex","isCurrentLeadingZero","isNextLeadingZero","numberCounter","newSelection","sanitizeNumber","numberSymbols","restrictedSymbols","positiveResult","negativeResult","zeroResult","oneResult","getFormatSymbols","currentLooseValueAsString","prevLooseValueAsString","sanitizeGroupRegex","allSymbolsRegex","sanitizedString","numberStart","numberEnd","decimalIndex","sanitizedFormattedString","formattedMax","maxDecimalIndex","maxDecimalCount","formattedMin","minDecimalIndex","minDecimalCount","positivePrefix","negativePrefix","zeroPrefix","onePrefix","positiveInfo","negativeInfo","zeroInfo","oneInfo","getFormatPrefixSufix","isFormatContainPrefixSuffix","nestedInfo","isPercentFormat","percentSign","isPaste","minusSign","valueCandidate","currentLastNumberIndex","isMinusSymbolAdded","currentNumberStart","oldNumberStart","isMinusSymbolRemoved","isDecimalDuplicated","formatInfoIndex","prefixIndex","suffixIndex","prefixFound","suffixFound","prefixGap","suffixGap","currentDecimalCount","endsOnDecimal","valueUntillDecimal","looseDecimalPlace","NumericTextBoxPropsContext","useInternationalization","valueDuringChangeRef","setForceUpdate","stateRef","decimalSelect","valueIsOutOfRange","isPasteRef","prevLooseValueRef","stateValueRef","looseValue","Prefix","Suffix","validityGetter","nameGetter","requiredGetter","validityStylesGetter","propsGetter","getCurrentState","rangedValue","_x","stateCandidate","numericSymbols","isMinus","isDecimal","rangeOnEnter","onPasteHandler","onIncrease","onDecrease","onWheelHandler","numerictextbox","inputType","inputStyle","currency","currencyDisplay","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","TextBox","en","_unicodeVersion","_cldrVersion","language","territory","numbers","plusSign","exponential","superscriptingExponent","perMille","infinity","nan","timeSeparator","approximatelySign","patterns","groupSize","scientific","percent","currencies","BGN","EUR","USD","localeCurrency","accounting","gmtFormat","gmtZeroFormat","D","m","M","Y","F","g","G","T","dateTimeFormats","full","long","short","availableFormats","Bh","Bhm","Bhms","E","EBhm","EBhms","Ed","Ehm","EHm","Ehms","EHms","Gy","GyMd","GyMMM","GyMMMd","GyMMMEd","h","H","hm","Hm","hms","Hms","hmsv","Hmsv","hmv","Hmv","Md","MEd","MMM","MMMd","MMMEd","MMMMd","ms","yM","yMd","yMEd","yMMM","yMMMd","yMMMEd","yMMMM","yQQQ","yQQQQ","timeFormats","dateFormats","abbreviated","narrow","wide","quarters","dayPeriods","midnight","am","noon","pm","morning1","afternoon1","evening1","night1","eras","dateFields","quarter","week","weekOfMonth","dayOfYear","weekdayOfMonth","dayperiod","zone","millisecond","supplemental","likelySubtags","currencyData","region","US","_from","weekData","weekendStart","weekendEnd","isString","formatRegExp","IntlError","formatMessage","len","flattenValues","flatten","formattedMessage","error","errors","toIntlErrors","locale","localeInfo","suffixes","fullName","localeFullName","script","availableLocaleInfo","NoLocale","likelyName","variant","territoryFromName","PERCENT","SCIENTIFIC","EMPTY","DEFAULT_LOCALE","lower","formatType","lowerNameType","formatNames","lowerArray","lowerObject","cloneLower","parseRangeDate","NoCurrency","NoCurrencyDisplay","NoSupplementalCurrency","NoCurrencyRegion","NoValidCurrency","SYMBOL","GLOBAL_CURRENCIES","getCurrencyInfo","throwIfNoValid","currencyDisplayInfo","lengthComparer","territoryCurrencyCode","regionCurrencies","currencyCode","latestValidUntil","latestValidUntilRange","latestStillValid","latestStillValidDate","_tender","_to","validFrom","validTo","stillValidDate","regionCurrency","NoWeekData","NoFirstDay","isNegativeZero","Infinity","formatCurrencySymbol","currencyInfo","groupInteger","number","groupSizes","integerEnd","integer","integerLength","newGroupSize","isCurrencyStyle","pad","digits","padString","round","decimals","trailingZeroRegex","fractionOptions","currencyFractions","isCurrency","fractions","_digits","currencyFractionOptions","standardNumberFormat","toExponential","negative","negativeZero","fraction","currencyUnitPattern","ch","applyPattern","literalRegExp","PLACEHOLDER","setStyleOptions","formatOptions","setFormatLiterals","literals","quoteChar","literal","SHARP","ZERO","trailingZerosRegExp","trailingPointRegExp","commaRegExp","roundNumber","lastZero","trimRegex","zeroIndex","sharpIndex","hasZero","hasSharp","trailingZeros","setValueSpecificFormat","hasNegativeFormat","zeroFormat","isConstantFormat","constant","placeholderIndex","index1","index2","applyCustomFormat","lastZeroIndex","hasGroup","replacement","replacePlaceHolders","replaceLiterals","replaceStyleSymbols","customNumberFormat","setGroupOptions","setPlaceholderIndices","standardFormatRegExp","formatAndPrecision","standardFormatOptions","isFinite","isNumber","exponentRegExp","nonBreakingSpaceRegExp","cleanNegativePattern","cleanCurrencyNumber","displays","currencyDisplays","includes","cleanNumber","isPercent","cleanLiterals","negativeCurrency","currencyNumber","negativeSignIndex","isNegative","strNumber","pointIndex","pow","fractionDigits","divideBy100","formatString","LENGHT_DELTA","PENALTIES","VALUE_FORMAT_LENGTH","TIME_SPECIFIERS_REGEX","DATE_OPTIONS_MAP","specifier","getSpecifier","STAND_ALONE_SPECIFIERS","Q","specifiersRegex","resolvedFormats","getSpecifierRegex","skeletonSpecifiers","findBestMatch","specifiers","bestMatches","specifiersLength","maxScore","MAX_VALUE","score","delta","idx$1","bestMatch","matchSpecifier","skeletonFormat","timeStartIndex","dateSkeleton","substr","timeSkeleton","cacheFormat","datePattern","option","spcifier","skeletonFromOptions","dateNameType","formatLength","fun","isDate","MONTH","HOUR","ZONE","WEEKDAY","QUARTER","DATE_FIELD_MAP","dateFormatRegExp","formatMonth","formatQuarter","formatTimeZone","shortHours","optionalMinutes","separator","localizedName","zZeroOffset","getTimezoneOffset","hoursMinutes","formatDayOfWeek","firstDayIndex","formatDayOfWeekIndex","formatters","convertTimeZone","fromOffset","toOffset","fromLocalOffset","offsetDate","toLocalOffset","L","k","K","S","z","Z","X","timeZoneOffsetRegExp","offsetRegExp","numberRegExp","numberRegex","leadingSpacesRegex","trailingSpacesRegex","standardDateFormats","FORMATS_SEQUENCE","outOfRange","lookAhead","getNumber","regex","valueIdx","getIndexByName","nameLength","subValue","matchLength","matchIdx","checkLiteral","parseTimeZoneOffset","noSeparator","zLiteral","NoGMTInfo","calendarGmtFormats","hoursMatch","minutesMatch","hoursOffset","minutesOffset","parseMonth","parseDayOfWeek","parsers","addFormatSpaces","parseExact","pmHour","hasTime","parseMicrosoftDateFormat","tzoffset","formats","parseValue","parseFormats","defaultFormats","periodFormats","shortFormat","invalid","NAME_TYPES","minLength","LITERAL","addLiteral","lastPart","isHour12","placeholderFormat","IntlService","NoDateFieldNames","fieldNameInfo","lastIndex","patternLength","LocalizationService","GlobalizationContext","provideIntlService","provideLocalizationService","registerForIntl","contextType","registerForLocalization","labelsOptional","optional","localizedOptional","optionalElement","spanClassNames","labelClassNames","ActionSheetItem","itemRef","description","actionSheetRef","actionSheetTitleClass","ariaLabeledBy","animationDuration","bottomPosition","onTab","nav","handleOverlayClick","onOverlayClick","hideActionSheet","onItemSelect","ariaDisabled","isItem","allItems","onEscape","_target","_nav","slide","currentRef","innerElements","focusableSelector","flat","keydown","subTitle","topGroupItems","bottomGroupItems","shouldRenderSeparator","actionSheetPanel","contentDisplayName","footerDisplayName","headerDisplayName","clearSlide","firefox","fit","viewPortSize","output","anchorSize","anchorAlignPoint","elementAlignPoint","marginToAdd","isBeforeAnchor","called","utils","eitherRect","scaleRect","scale","removeStackingOffset","stackingOffset","cachedWidth","windowViewport","win","pageXOffset","pageYOffset","rectOfHiddenElement","offsetParentElement","parentScrollPosition","elementStyles","useRelative","parentOffset","parentStyles","borderTopWidth","borderLeftWidth","until","sibling","firstElementChild","nextElementSibling","STYLES","OVERFLOW_REGEXP","overflowStyle","overflowElementStyle","overflowComputedStyle","getRelativeContextElement","zoomLevel","domUtils","addOffset","addition","addScroll","anchorRect","elementAlign","anchorHorizontal","anchorVertical","elementHorizontal","elementVertical","horizontalMargin","verticalMargin","boundingOffset","viewport","getFontStyles","font","hasOffsetParent","offsetAtPoint","currentLocation","currentOffset","popupElement","ref$1","positionScale","removeScroll","restrictToView","collisions","viewPort","elementTop","elementLeft","elementHeight","elementWidth","viewPortHeight","viewPortWidth","isVerticalFit","collision","isHorizontalFit","isVerticalFlip","isHorizontalFlip","flippedVertical","flippedHorizontal","fittedVertical","fittedHorizontal","flipped","fitted","scrollableParents","parentElements","stackingElementOffset","stackingElementScroll","stackingElementViewPort","useRelativePosition","windowViewPort","isZoomed","siblingElements","containerElement","siblings","zIndexStyle","elementScrollPosition","currentScale","scrollPos","stackScale","stackScroll","stackOffset","absoluteRect","relativeRect","elementOffset","anchorOffset","isEquivalent","aProps","bProps","Status","ANIMATION_CONTAINER_SHOWN","PopupWithoutContext","onOpened","shown","alignedOffset","_collisions","onPosition","attachRepositionHandlers","animationDirection","slideClass","slideActiveClass","transitionend","onClosing","detachRepositionHandlers","onClosed","hiding","getCurrentZIndex","reposition","func","wait","later","leading","now","remaining","trailing","throttle","showing","calculatedAppendTo","_scrollableParents","PopupPropsContext","setHeaderRowsTop","toolbarHeight","tHead","calculateRowHeight","computedHeight","MAX_LEVEL","tableRowsVirtualization","tableViewPortHeight","scrollItemIndex","itemsOnOneScreen","lastItem","TREELIST_ROW_INDEX_ATTRIBUTE","TREELIST_COL_INDEX_ATTRIBUTE","TREELIST_PREVENT_SELECTION_ELEMENT","TreeListCell","dataAsString","onKeyDownHandler","expandable","transparentIcon_1","filterClearButton","filterBooleanAll","noRecords","TreeListNoRecords","TreeListRow","isAltRow","ariaSetSize","ariaPosInSet","onContextMenu","TreeList","wrapperScrollLeft","wrapperScrollTop","updateOnScroll","tbodyOffsetTop","extendedColumn","_treeListId","scrollIntoView","selectedRow","getExtendedColumn","memoize","getColumnsMap","getLeafDataItems","getArguments","onRowDrag","onRowDrop","spliced","onColumnReorder","onColumnResize","sumWidth","event_2","handleOnScroll","columnVirtualization","minTopChange","shouldForceUpdate","calculateSizes","childNodes","toolbar","boxSizing","tBodies","itemChange","onItemChange","itemChangeEvent","expandChange","onHeaderSelectionChange","selectionEvent","selectionRelease","onSelectionChange","raiseDataEvent","headerFilterChange","onColumnMenuFilterChange","rowClick","onRowClick","rowClickEvent","rowDoubleClick","onRowDoubleClick","rowDoubleClickEvent","rowContextMenu","onRowContextMenu","rowContextMenuEvent","event_3","expandedSubItems","dragLogic","getSnapshotBeforeUpdate","leafColumns","headerCellRender","wrapperStyles","levels","rowIndexStart","inEdit","editField","dataItemKeyValue","rowId","isRowExpanded","selectedValue","rowProps","rowRender","EditRow","editRow","Row","rowDataIndex","columnKey","dataIndex","editCell","dataRow","colGroups","tableUserSelect","tableProps","pager","shuffledColumns","sanitize","_item","event_4","dataStateChange","onDataStateChange","dataStateEvent","dataState","getDataState","TreeListHeaderCell","TreeListSelectionCell","TreeListHeaderSelectionCell","RowDragClue","allowDrop","targetRowIndex","treelist","defaultClueState","TreeListDraggableRow","clueProps","dragged","draggedOver","hovered_1","num","draggedItem","TreeListToolbar","textFilterOperators","numericFilterOperators","dateFilterOperators","booleanFilterValues","localizeFilter","TreeListTextFilter","restProps","TreeListNumericFilter","TreeListDateFilter","TreeListBooleanFilter","TreeListTextEditor","editCellClasses","TreeListNumericEditor","TreeListBooleanEditor","TreeListDateEditor","focusedItemId","focusedItemPublicId","tabbableItemId","allowExplicitFocus","treeGuid","onFocusDomElNeeded","domItem","focusDomItem","setFocus","dispatchCheckChange","dispatchExpandChange","onItemDragStart","onItemDragOver","onItemDragEnd","dispatchItemClick","blurRequest","newItemId","dispatchEventsOnKeyDown","itemID","FieldsService","ariaMultiSelectable","TreeViewItem","fieldsService","itemUI","refocusDueToFocusIdField","isEnabled","getFocusHierarchicalIndex","getHierarchicalIndexById","TreeViewItemPropsContext","TreeViewItemWithoutContext","itemGuid","assignDraggableMeta","subitems","renderSubitemsIfApplicable","itemInPart","renderItemInPart","ariaChecked","itemElement","renderExpandIcon","renderCheckbox","currentItemId","checkboxElement","indeterminate","getIconProps","treeViewItemProps","processTreeViewItems","operations","handleOperation","select","applyCheckIndeterminate","parseOperation","applyCheckIndeterminateHelper","defaultField","indices","raiseNestedFlag","raiseFlags","operationField","parentsAlreadyUpdated","moveTreeViewItem","sourceItemHierarchicalIndex","sourceData","targetItemHierarchicalIndex","targetData","validateInput","prepareInputDataForReturn","sourceItem","updatedSourceData","resultData","__generator","thisArg","sent","trys","ops","verb","Symbol","iterator","v","handleTreeViewCheckChange","newIds","itemJustChecked","singleMode","checkChildren","checkParents","it","makeParentsIterator","uncheck","TreeViewDragClue","operationClassName","dynamicStyle","hide","TreeViewDragAnalyzer","initialized","destItemId","destTreeViewGuid","treeViewGuid","setDestimationMeta","getDropOperation","isDropAllowed","destDomNodeWithMeta","EXPAND_FIELD","TEXT_FIELD","DISABLED_FIELD","CHILDREN_FIELD","HAS_CHILDREN_FIELD","SELECT_FIELD","CHECK_FIELD","CHECK_INDETERMINATE_FIELD","DOM_KENDO_ITEM_ID_FIELD","DOM_KENDO_TREEVIEW_GUID_FIELD","getItemIdUponKeyboardNavigation","getLastNotOpenedChildId","getNextItemId","getIdUponEndKey","caretAltUpIcon","caretAltRightIcon","caretAltDownIcon","caretAltLeftIcon","caretAltToRightIcon","caretAltToLeftIcon","moreVerticalIcon","calendarIcon","cancelIcon","xIcon","xCircleIcon","plusIcon","sortAscSmallIcon","sortDescSmallIcon","filterIcon","filterClearIcon","filterAddExpressionIcon","filterAddGroupIcon","searchIcon","insertTopIcon","insertMiddleIcon","insertBottomIcon","module","exports","url","__esModule","default","hash","maybeNeedQuotes","argIndex","framesToPop","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","freeSelf","self","Function","objectToString","nativeMax","nativeMin","isObject","toNumber","isObjectLike","isSymbol","valueOf","isBinary","maxWait","timerId","lastCallTime","lastInvokeTime","maxing","invokeFunc","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","debounced","isInvoking","cancel","flush","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propFullName","secret","err","getShim","ReactPropTypes","bigint","bool","object","string","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","_arrayLikeToArray","arr2","_unsupportedIterableToArray","minLen","_toConsumableArray","iter","_typeof","_toPropertyKey","prim","toPrimitive","res","_defineProperties","writable","_possibleConstructorReturn","assertThisInitialized","_getPrototypeOf","getPrototypeOf","_defineProperty","_slicedToArray","_arr","_n","mergeDeep","isPlainObject","sources","omit","compact","isModifier","isElement","camelize","pickDirectStyles","objectPropertiesWhitelist","styleKeys","isDirect","pickNestedStyles","keysToPick","camelizedKeysToPick","hoistModifierStylesRecursive","modifierKeysToPick","modifierKeys","subresult","ownKeys","enumerableOnly","sym","getOwnPropertyDescriptor","_objectSpread","getOwnPropertyDescriptors","defineProperties","defaultObjectPropsWhitelist","PropsDecoratorContext","createContext","objSelect","substyle","mapEntry","cacheKey","WeakMap","selectHash","guessBaseClassName","firstKey","deriveClassNames","elementKeys","firstClassName","derivedClassNames","createSubstyle","propsDecorator","selectedKeys","collectElementStyles","fromStyle","collectSelectedStyles","styleProps","classNameSplit","mappedClassNames","singleClassName","propsForSpread","modifiers","useContext","useMemo","escapeRegex","PLACEHOLDERS","findPositionOfCapturingGroup","markup","parameterName","indexDisplay","indexId","combineRegExps","regExps","serializedRegexParser","_serializedRegexParse2","regexString","regexFlags","countPlaceholders","emptyFn","iterateMentionsMarkup","config","markupIteratee","textIteratee","accOffset","captureGroupOffsets","currentPlainTextIndex","mentionChildIndex","_config$mentionChildI","displayTransform","idPos","displayPos","getPlainText","plainTextIndex","plainText","mapPlainTextIndex","indexInPlainText","inMarkupCorrection","substrPlainTextIndex","mentionPlainTextIndex","lastMentionEndIndex","spliceString","insert","findStartOfMentionInPlainText","foundMention","getMentions","mentions","getSuggestionHtmlId","countSuggestions","suggestions","results","markupToRegex","escapedMarkup","charAfterDisplay","charAfterId","readConfigFromChildren","Children","_ref$props","coerceCapturingGroups","numberOfGroups","numberOfPlaceholders","lettersDiacritics","letters","normalizeString","formattedStr","letterDiacritics","removeAccents","getSubstringIndex","ignoreAccents","createDefaultStyle","getModifiers","ComponentToWrap","DefaultStyleEnhancer","rest","excluded","objectWithoutPropertiesLoose","sourceSymbolKeys","_objectWithoutProperties","Highlighter","_ref$value","onCaretPositionChange","containerRef","singleLine","_useState2","useState","_useState4","caretElement","setCaretElement","useEffect","notifyCaretPosition","caretPositionInMarkup","offsetLeft","newPosition","resultComponents","componentKeys","substringComponentKey","renderSubstring","getMentionComponentForMatch","usedKeys","_generateComponentKey","renderHighlighterCaret","Highlighter$1","wordWrap","styled","Suggestion","highlightedDisplay","query","renderSuggestion","getDisplay","renderHighlightedDisplay","Suggestion$1","styled$1","LoadingIndicator","defaultstyle","spinnerStyles","SuggestionsOverlay","_ref$suggestions","a11ySuggestionsListLabel","focusIndex","scrollFocusedIntoView","isLoading","isOpened","_ref$onSelect","onSelect","customSuggestionsContainer","ulElement","setUlElement","_ulElement$children$f","topContainer","suggestionsToRender","queryInfo","getID","accResults","_ref2","renderLoadingIndicator","SuggestionsOverlay$1","minWidth","listStyleType","styled$2","ownKeys$1","_objectSpread$1","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","_isNativeReflectConstruct","Super","NewTarget","KEY","TAB","RETURN","ESC","UP","DOWN","isComposing","allowSpaceInQuery","allowSuggestionsAboveCursor","forceSuggestionsAboveCursor","suggestionsPortalHost","MentionsInput","subClass","superClass","_inherits","Constructor","protoProps","staticProps","instance","_classCallCheck","updateHighlighterScroll","handleSelect","onCompositionStart","handleCompositionStart","onCompositionEnd","handleCompositionEnd","uuidSuggestionsOverlay","_this$props2","getInputProps","renderHighlighter","renderInput","renderTextarea","setInputRef","inputElement","suggestionsElement","_this$state$suggestio","suggestionsPosition","suggestionsNode","setSuggestionsElement","addMention","handleSuggestionsMouseDown","handleSuggestionsMouseEnter","_this$state","_this$props3","setHighlighterElement","handleCaretPositionChange","highlighterElement","caretPosition","_this$props4","_this$props$valueLink","valueLink","requestChange","documentMode","newPlainTextValue","selectionStartBefore","selectionEndBefore","plainTextValue","selectionEndAfter","oldPlainTextValue","lengthDelta","spliceStart","spliceEnd","mappedSpliceStart","mappedSpliceEnd","controlSpliceStart","controlSpliceEnd","willRemoveMention","controlPlainTextValue","applyChangeToValue","setSelectionAfterMentionChange","startOfMention","updateMentionsQueries","eventMock","executeOnChange","clearSuggestions","shiftFocus","selectFocused","suggestionsCount","_this$state2","_Object$values$reduce","clickedSuggestion","_suggestionsMouseDown","_this$props5","highlighter","caretOffsetParentRect","caretHeight","getComputedStyleLengthProp","viewportRelative","viewportWidth","_left","_top","createTextRange","collapse","moveEnd","moveStart","_queryId","positionInValue","substringStartIndex","lastMention","getEndOfLastMention","trigger","escapedTriggerChar","makeTriggerRegex","querySequenceStart","queryData","querySequenceEnd","_this$props6","provideData","getDataProvider","syncResult","updateSuggestions","queryId","_ref3","_mentionsChild$props","appendSpaceOnAdd","onAdd","makeMentionsMarkup","displayValue","newCaretPosition","handleCopy","handleCut","setSelectionAfterHandlePaste","updateSuggestionsPosition","setContainerElement","renderControl","renderSuggestionsOverlay","supportsClipboardActions","_this$state3","_this$props7","markupStartIndex","markupEndIndex","pastedMentions","clipboardData","getData","pastedData","nextPos","_this$props8","setData","saveSelectionToClipboard","_this$state4","_this$props9","forElement","getPropertyValue","MentionsInput$1","overflowY","_ref4","styled$3","Mention"],"sourceRoot":""}