{"version":3,"file":"static/js/7897.ff669225.chunk.js","mappings":"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","sources":["../node_modules/@progress/kendo-react-buttons/dist/es/ButtonGroup.js","../node_modules/@progress/kendo-react-buttons/dist/es/util.js","../node_modules/@progress/kendo-react-inputs/dist/es/messages/index.js","../node_modules/@progress/kendo-react-inputs/dist/es/package-metadata.js","../node_modules/@progress/kendo-react-inputs/dist/es/numerictextbox/utils/index.js","../node_modules/@progress/kendo-react-inputs/dist/es/numerictextbox/NumericTextBox.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/utils/misc.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/utils/color-parser.js","../node_modules/@progress/kendo-react-inputs/dist/es/input/Input.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/HexInput.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/ColorInput.js","../node_modules/@progress/kendo-react-inputs/dist/es/slider/SliderLabel.js","../node_modules/@progress/kendo-react-inputs/dist/es/slider/Slider.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/utils/color-cache.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/ColorContrastLabels.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/utils/svg-calc.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/ColorContrastSvg.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/ColorGradient.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/utils/color-palette.service.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/models/palette-presets.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/ColorPalette.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/Picker.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/ColorPicker.js","../node_modules/@progress/kendo-react-inputs/dist/es/maskedtextbox/parsing/result.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/FlatColorPicker.js","../node_modules/@progress/kendo-react-inputs/dist/es/maskedtextbox/parsing/stream.js","../node_modules/@progress/kendo-react-inputs/dist/es/maskedtextbox/parsing/parsers.js","../node_modules/@progress/kendo-react-inputs/dist/es/maskedtextbox/parsing/combinators.js","../node_modules/@progress/kendo-react-inputs/dist/es/maskedtextbox/masking.service.js","../node_modules/@progress/kendo-react-inputs/dist/es/maskedtextbox/utils.js","../node_modules/@progress/kendo-react-inputs/dist/es/maskedtextbox/MaskedTextBox.js","../node_modules/@progress/kendo-react-inputs/dist/es/range-slider/range-raducer.js","../node_modules/@progress/kendo-react-inputs/dist/es/range-slider/RangeSlider.js","../node_modules/@progress/kendo-react-inputs/dist/es/switch/Switch.js","../node_modules/@progress/kendo-react-inputs/dist/es/checkbox/Checkbox.js","../node_modules/@progress/kendo-react-inputs/dist/es/radiobutton/RadioButton.js","../node_modules/@progress/kendo-react-inputs/dist/es/radiobutton/RadioGroup.js","../node_modules/@progress/kendo-react-inputs/dist/es/textarea/TextArea.js","../node_modules/@progress/kendo-react-inputs/dist/es/rating/RatingItem.js","../node_modules/@progress/kendo-react-inputs/dist/es/rating/utils/index.js","../node_modules/@progress/kendo-react-inputs/dist/es/rating/rating-reducer.js","../node_modules/@progress/kendo-inputs-common/dist/es/maskedtextbox/parsing/result.js","../node_modules/@progress/kendo-react-inputs/dist/es/rating/Rating.js","../node_modules/@progress/kendo-inputs-common/dist/es/maskedtextbox/parsing/stream.js","../node_modules/@progress/kendo-inputs-common/dist/es/maskedtextbox/parsing/parsers.js","../node_modules/@progress/kendo-inputs-common/dist/es/maskedtextbox/parsing/combinators.js","../node_modules/@progress/kendo-inputs-common/dist/es/common/drawing-utils.js","../node_modules/@progress/kendo-inputs-common/dist/es/maskedtextbox/masking.service.js","../node_modules/@progress/kendo-inputs-common/dist/es/signature/signature-pad.js","../node_modules/@progress/kendo-react-inputs/dist/es/signature/Signature.js","../node_modules/@progress/kendo-react-inputs/dist/es/signature/utils/index.js","../node_modules/@progress/kendo-react-inputs/dist/es/textbox/Textbox.js","../node_modules/@progress/kendo-react-inputs/dist/es/input/InputClearValue.js","../node_modules/@progress/kendo-react-inputs/dist/es/input/InputPrefix.js","../node_modules/@progress/kendo-react-inputs/dist/es/input/InputSeparator.js","../node_modules/@progress/kendo-react-inputs/dist/es/input/InputSuffix.js","../node_modules/@progress/kendo-react-inputs/dist/es/input/InputValidationIcon.js","../node_modules/@progress/kendo-react-labels/dist/es/FloatingLabel.js","../node_modules/@progress/kendo-react-labels/dist/es/Label.js","../node_modules/@progress/kendo-react-labels/dist/es/messages/index.js","../node_modules/@progress/kendo-react-labels/dist/es/package-metadata.js"],"sourcesContent":["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","/**\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-colorpicker',\n    '.k-dropdownlist'\n];\n/**\n * @hidden\n */\nexport default {\n    styles: styles\n};\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","/**\n * @hidden\n */\nexport var packageMetadata = {\n    name: '@progress/kendo-react-inputs',\n    productName: 'KendoReact',\n    productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n    publishDate: 1700064010,\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 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 isPresent = function (value) { return value !== null && value !== undefined; };\n/**\n * @hidden\n *\n * Fits the contender number into the specified bounds.\n * If the number is NaN or null, the minimum is returned.\n *\n * @param contender Represents the number you want to fit into the specified bounds.\n * @param min The inclusive lower bound number.\n * @param max The inclusive upper bound number.\n */\nexport var fitIntoBounds = function (contender, min, max) {\n    if (!isPresent(contender) || isNaN(contender)) {\n        return min;\n    }\n    return contender <= min ? min : contender >= max ? max : contender;\n};\n","import { parseColor as parse, Color } from '@progress/kendo-drawing';\nimport { isPresent, fitIntoBounds } from './misc';\n/**\n * @hidden\n *\n * Returns the hex or RGBA string representation of the color.\n */\nexport var parseColor = function (value, format, safe) {\n    if (safe === void 0) { safe = true; }\n    var allowedFormats = ['hex', 'rgba']; // TODO: constant?\n    // Angular supports third type: name : const allowedFormats: Array<string> = ['hex', 'rgba', 'name'];\n    if (allowedFormats.indexOf(format) === -1) {\n        throw new Error(\"Unsupported color output format '\".concat(format, \"'. The available options are 'hex' or 'rgba'.\"));\n    }\n    if (!isPresent(value)) {\n        return;\n    }\n    var parsedColor = parse(value.trim(), safe);\n    if (!isPresent(parsedColor)) {\n        return;\n    }\n    return format === 'hex' ? parsedColor.toCss() : parsedColor.toCssRgba();\n};\n/**\n * @hidden\n *\n * Returns an HSV object representation of the color string.\n */\nexport var getHSV = function (value, safe) {\n    if (safe === void 0) { safe = true; }\n    var parsed = parse(value, safe);\n    if (!isPresent(parsed)) {\n        return {};\n    }\n    return parsed.toHSV();\n};\n/**\n * @hidden\n *\n * Returns an RGBA object representation of the color string.\n */\nexport var getRGBA = function (value, safe) {\n    if (safe === void 0) { safe = true; }\n    var parsed = parse(value, safe);\n    if (!isPresent(parsed)) {\n        return {};\n    }\n    return parsed.toBytes();\n};\n/**\n * @hidden\n *\n * Returns the RGBA string representation of the color.\n */\nexport var getColorFromHSV = function (hsva) {\n    var hue = fitIntoBounds(hsva.h, 0, 359.9);\n    var saturation = fitIntoBounds(hsva.s, 0, 1);\n    var value = fitIntoBounds(hsva.v, 0, 1);\n    var alpha = fitIntoBounds(hsva.a, 0, 1);\n    return Color.fromHSV(hue, saturation, value, alpha).toCssRgba();\n};\n/**\n * @hidden\n *\n * Returns the RGBA string representation of the color based on the `hue` and\n * assuming the `value`, `saturation`, and `alpha` have a value of `1`.\n */\nexport var getColorFromHue = function (hue) {\n    return getColorFromHSV({ h: hue, s: 1, v: 1, a: 1 });\n};\n/**\n * @hidden\n *\n * Returns the RGBA string representation of the color.\n */\nexport var getColorFromRGBA = function (rgba) {\n    var red = fitIntoBounds(rgba.r, 0, 255);\n    var green = fitIntoBounds(rgba.g, 0, 255);\n    var blue = fitIntoBounds(rgba.b, 0, 255);\n    var alpha = fitIntoBounds(rgba.a, 0, 1);\n    return Color.fromBytes(red, green, blue, alpha).toCssRgba();\n};\n/**\n * @hidden\n *\n * Returns the RGB object representation of the color based on the background color.\n */\nexport var getRGBFromRGBA = function (foregroundColor, backgroundColor) {\n    var r1 = fitIntoBounds(foregroundColor.r, 0, 255);\n    var g1 = fitIntoBounds(foregroundColor.g, 0, 255);\n    var b1 = fitIntoBounds(foregroundColor.b, 0, 255);\n    var a1 = fitIntoBounds(foregroundColor.a, 0, 1);\n    var r2 = fitIntoBounds(backgroundColor.r, 0, 255);\n    var g2 = fitIntoBounds(backgroundColor.g, 0, 255);\n    var b2 = fitIntoBounds(backgroundColor.b, 0, 255);\n    return {\n        r: Math.round(((1 - a1) * r2) + (a1 * r1)),\n        g: Math.round(((1 - a1) * g2) + (a1 * g1)),\n        b: Math.round(((1 - a1) * b2) + (a1 * b1))\n    };\n};\n/**\n * @hidden\n *\n * Returns the relative luminance.\n */\nexport var getLuminance = function (rgb) {\n    var a = [rgb.r || 0, rgb.g || 0, rgb.b || 0].map(function (v) {\n        v /= 255;\n        return v <= 0.03928\n            ? v / 12.92\n            : Math.pow((v + 0.055) / 1.055, 2.4);\n    });\n    return a[0] * 0.2126 + a[1] * 0.7152 + a[2] * 0.0722;\n};\n/**\n * @hidden\n *\n * Returns the color contrast.\n */\nexport var getContrast = function (luminance1, luminance2) {\n    var brightest = Math.max(luminance1, luminance2);\n    var darkest = Math.min(luminance1, luminance2);\n    return (brightest + 0.05)\n        / (darkest + 0.05);\n};\n/**\n * @hidden\n *\n * Returns the color contrast from two RGBA colors.\n */\nexport var getContrastFromTwoRGBAs = function (a, b) {\n    return getContrast(getLuminance(getRGBFromRGBA(a, b)), getLuminance(getRGBFromRGBA(b, { r: 0, g: 0, b: 0, a: 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})();\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 __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 { parseColor } from './utils/color-parser';\nimport { isPresent } from './utils/misc';\nimport { Input } from '../input/Input';\n/**\n * @hidden\n */\nvar HexInput = /** @class */ (function (_super) {\n    __extends(HexInput, _super);\n    function HexInput(props) {\n        var _this = _super.call(this, props) || this;\n        _this.onChange = function (event) {\n            var hex = event.target.value;\n            var value = parseColor(hex, 'rgba');\n            _this.setState({ hex: hex });\n            if (isPresent(value)) {\n                _this.props.onHexChange(hex, value, event);\n            }\n        };\n        _this.onBlur = function () {\n            if (!isPresent(parseColor(_this.state.hex, 'rgba'))) {\n                _this.setState({ hex: _this.state.originalHex });\n            }\n        };\n        _this.state = { hex: _this.props.hex, originalHex: _this.props.hex };\n        return _this;\n    }\n    HexInput.prototype.render = function () {\n        return (React.createElement(Input, { value: this.state.hex, onChange: this.onChange, onBlur: this.onBlur, disabled: this.props.disabled }));\n    };\n    HexInput.getDerivedStateFromProps = function (props, state) {\n        if (props.hex !== state.originalHex) {\n            return { hex: props.hex, originalHex: props.hex };\n        }\n        return null;\n    };\n    return HexInput;\n}(React.Component));\nexport default HexInput;\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 { NumericTextBox } from '../main';\nimport HexInput from './HexInput';\nimport { Button } from '@progress/kendo-react-buttons';\nimport { Label } from '@progress/kendo-react-labels';\nimport { caretAltExpandIcon } from '@progress/kendo-svg-icons';\nimport { registerForIntl, registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { messages, colorGradientR, colorGradientHex, colorGradientA, colorGradientB, colorGradientG, colorGradientToggleInputsButton } from '../messages';\n/**\n * @hidden\n */\nvar modes = ['rgba', 'rgb', 'hex'];\n/**\n * @hidden\n */\nvar ColorInput = /** @class */ (function (_super) {\n    __extends(ColorInput, _super);\n    function ColorInput(props) {\n        var _this = _super.call(this, props) || this;\n        _this.onRgbaRChange = function (event) {\n            _this.dispatchRgbaChange({ r: event.value }, event);\n        };\n        _this.onRgbaGChange = function (event) {\n            _this.dispatchRgbaChange({ g: event.value }, event);\n        };\n        _this.onRgbaBChange = function (event) {\n            _this.dispatchRgbaChange({ b: event.value }, event);\n        };\n        _this.onRgbaAChange = function (event) {\n            _this.dispatchRgbaChange({ a: event.value }, event);\n        };\n        _this.state = { inputMode: props.defaultInputMode || modes[1] };\n        return _this;\n    }\n    ColorInput.prototype.render = function () {\n        var localizationService = provideLocalizationService(this);\n        var hexMessage = localizationService.toLanguageString(colorGradientR, messages[colorGradientHex]);\n        var rMessage = localizationService.toLanguageString(colorGradientR, messages[colorGradientR]);\n        var gMessage = localizationService.toLanguageString(colorGradientR, messages[colorGradientG]);\n        var bMessage = localizationService.toLanguageString(colorGradientR, messages[colorGradientB]);\n        var aMessage = localizationService.toLanguageString(colorGradientR, messages[colorGradientA]);\n        var toggleButtonMessage = localizationService.toLanguageString(colorGradientToggleInputsButton, messages[colorGradientToggleInputsButton]);\n        return (React.createElement(\"div\", { className: \"k-colorgradient-inputs k-hstack\" },\n            React.createElement(\"div\", { className: \"k-vstack\" },\n                React.createElement(Button, { \"aria-label\": toggleButtonMessage, fillMode: 'flat', icon: 'caret-alt-expand', svgIcon: caretAltExpandIcon, className: \"k-colorgradient-toggle-mode k-icon-button\", onClick: this.onToggleModeChange.bind(this) })),\n            this.state.inputMode === 'hex' &&\n                React.createElement(\"div\", { className: \"k-vstack k-flex-1\" },\n                    React.createElement(\"span\", { className: \"k-hex-value k-textbox k-input\" },\n                        React.createElement(HexInput, { hex: this.props.hex, onHexChange: this.props.onHexChange, disabled: this.props.disabled })),\n                    React.createElement(Label, { className: \"k-colorgradient-input-label\" }, hexMessage)),\n            (this.state.inputMode === 'rgb' || this.state.inputMode === 'rgba') &&\n                React.createElement(React.Fragment, null,\n                    React.createElement(\"div\", { className: \"k-vstack\" },\n                        React.createElement(NumericTextBox, { inputType: 'number', value: this.props.rgba.r, ariaLabel: String(this.props.rgba.r), min: 0, max: 255, spinners: false, format: \"n\", onChange: this.onRgbaRChange, disabled: this.props.disabled }),\n                        React.createElement(Label, { className: \"k-colorgradient-input-label\" }, rMessage)),\n                    React.createElement(\"div\", { className: \"k-vstack\" },\n                        React.createElement(NumericTextBox, { inputType: 'number', value: this.props.rgba.g, ariaLabel: String(this.props.rgba.g), min: 0, max: 255, spinners: false, format: \"n\", onChange: this.onRgbaGChange, disabled: this.props.disabled }),\n                        React.createElement(Label, { className: \"k-colorgradient-input-label\" }, gMessage)),\n                    React.createElement(\"div\", { className: \"k-vstack\" },\n                        React.createElement(NumericTextBox, { inputType: 'number', value: this.props.rgba.b, ariaLabel: String(this.props.rgba.b), min: 0, max: 255, spinners: false, format: \"n\", onChange: this.onRgbaBChange, disabled: this.props.disabled }),\n                        React.createElement(Label, { className: \"k-colorgradient-input-label\" }, bMessage))),\n            this.state.inputMode === 'rgba' &&\n                React.createElement(\"div\", { className: \"k-vstack\" },\n                    this.props.opacity &&\n                        React.createElement(NumericTextBox, { inputType: 'number', value: this.props.rgba.a, ariaLabel: String(this.props.rgba.a), min: 0, max: 1, step: 0.01, spinners: false, format: \"n2\", onChange: this.onRgbaAChange, disabled: this.props.disabled }),\n                    this.props.opacity && (React.createElement(Label, { className: \"k-colorgradient-input-label\" }, aMessage)))));\n    };\n    ColorInput.prototype.dispatchRgbaChange = function (newValue, event) {\n        var rgba = __assign({}, this.props.rgba);\n        if (newValue.r !== undefined) {\n            rgba.r = newValue.r;\n        }\n        if (newValue.g !== undefined) {\n            rgba.g = newValue.g;\n        }\n        if (newValue.b !== undefined) {\n            rgba.b = newValue.b;\n        }\n        if (newValue.a !== undefined) {\n            rgba.a = newValue.a;\n        }\n        this.props.onRgbaChange(rgba, event);\n    };\n    ;\n    ColorInput.prototype.onToggleModeChange = function () {\n        var index = modes.length - 1 === modes.indexOf(this.state.inputMode) ? 0 : modes.indexOf(this.state.inputMode) + 1;\n        if (!this.props.opacity) {\n            var nextIndex = modes[index] === 'rgba' ? index + 1 : index;\n            this.setState({ inputMode: modes[nextIndex] });\n        }\n        else {\n            this.setState({ inputMode: modes[index] });\n        }\n    };\n    return ColorInput;\n}(React.Component));\nexport default ColorInput;\nregisterForIntl(ColorInput);\nregisterForLocalization(ColorInput);\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 { useDir } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nexport var SLIDER_LABEL_ATTRIBUTE = 'data-slider-label';\n/**\n * Represents the KendoReact SliderLabel component.\n */\nexport var SliderLabel = function (props) {\n    var _a, _b;\n    var sliderLabelRef = React.useRef(null);\n    var dir = useDir(sliderLabelRef);\n    var style = props.vertical\n        ? { bottom: \"\".concat(props.position, \"%\") }\n        : (_a = {}, _a[dir === 'rtl' ? 'right' : 'left'] = \"\".concat(props.position, \"%\"), _a);\n    var tickStyle = props.vertical ? 'k-tick-vertical' : 'k-tick-horizontal';\n    return (React.createElement(\"li\", { ref: sliderLabelRef, className: \"k-tick k-tick-large \".concat(tickStyle), title: props.title, style: __assign({ zIndex: 1, position: 'absolute' }, style) }, props.children && React.createElement(\"span\", __assign({}, (_b = {}, _b[SLIDER_LABEL_ATTRIBUTE] = true, _b), { className: \"k-label\", onClick: props.onClick }), props.children)));\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 { dispatchEvent, Keys, classNames, Draggable, getTabIndex, createPropsContext, withPropsContext } from '@progress/kendo-react-common';\nimport { registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { messages, sliderIncreaseValue, sliderDecreaseValue, sliderDragTitle } from './../messages';\nimport { SLIDER_LABEL_ATTRIBUTE } from './SliderLabel';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { Button } from '@progress/kendo-react-buttons';\nimport { caretAltDownIcon, caretAltLeftIcon, caretAltUpIcon, caretAltRightIcon } from '@progress/kendo-svg-icons';\n/** @hidden */\nvar SliderWithoutContext = /** @class */ (function (_super) {\n    __extends(SliderWithoutContext, _super);\n    function SliderWithoutContext(props) {\n        var _this = _super.call(this, props) || this;\n        /**\n         * @hidden\n         */\n        _this.state = {\n            value: _this.props.defaultValue === undefined ? _this.props.min : _this.props.defaultValue,\n            focused: false,\n            dir: _this.props.dir\n        };\n        _this._sliderTrack = null;\n        _this._element = null;\n        /**\n         * @hidden\n         */\n        _this.buttons = function (props) {\n            if (!props.enabled) {\n                return props.children;\n            }\n            var increaseSvgArrow = _this.state.dir === 'rtl' ? (_this.props.vertical ? caretAltUpIcon : caretAltLeftIcon) : (_this.props.vertical ? caretAltUpIcon : caretAltRightIcon);\n            var decreaseSvgArrow = _this.state.dir === 'rtl' ? (_this.props.vertical ? caretAltDownIcon : caretAltRightIcon) : (_this.props.vertical ? caretAltDownIcon : caretAltLeftIcon);\n            var increaseFontArrow = _this.state.dir === 'rtl' ? (_this.props.vertical ? 'caret-alt-up' : 'caret-alt-left') : (_this.props.vertical ? 'caret-alt-up' : 'caret-alt-right');\n            var decreaseFontArrow = _this.state.dir === 'rtl' ? (_this.props.vertical ? 'caret-alt-down' : 'caret-alt-right') : (_this.props.vertical ? 'caret-alt-down' : 'caret-alt-left');\n            return (React.createElement(React.Fragment, null,\n                React.createElement(Button, { className: \"k-button-decrease\", rounded: 'full', icon: decreaseFontArrow, svgIcon: decreaseSvgArrow, title: props.decrementTitle, onClick: props.decrement }),\n                props.children,\n                React.createElement(Button, { className: \"k-button-increase\", rounded: 'full', icon: increaseFontArrow, svgIcon: increaseSvgArrow, title: props.incrementTitle, onClick: props.increment })));\n        };\n        /**\n         * @hidden\n         */\n        _this.focus = function () {\n            if (_this._element) {\n                _this._element.focus();\n            }\n        };\n        _this.isLabel = function (target) {\n            var currentTarget = target;\n            while (currentTarget) {\n                if (Boolean(currentTarget.getAttribute(SLIDER_LABEL_ATTRIBUTE))) {\n                    return true;\n                }\n                currentTarget = currentTarget.parentElement;\n            }\n            return false;\n        };\n        _this.onFocus = function () {\n            _this.setState({ focused: true });\n        };\n        _this.onBlur = function () {\n            _this.setState({ focused: false });\n        };\n        _this.onKeyDown = function (e) {\n            var newValue = undefined;\n            if (e.keyCode === Keys.left || e.keyCode === Keys.down) {\n                newValue = _this.state.value - (_this.props.step || 0);\n            }\n            else if (e.keyCode === Keys.right || e.keyCode === Keys.up) {\n                newValue = _this.state.value + (_this.props.step || 0);\n            }\n            else if (e.keyCode === Keys.home) {\n                newValue = _this.props.min;\n            }\n            else if (e.keyCode === Keys.end) {\n                newValue = _this.props.max;\n            }\n            if (newValue !== undefined) {\n                e.preventDefault();\n                _this.change(e, newValue);\n            }\n        };\n        _this.decrement = function (e) {\n            e.preventDefault();\n            _this.change(e, _this.state.value - (_this.props.step || 0));\n        };\n        _this.increment = function (e) {\n            e.preventDefault();\n            _this.change(e, _this.state.value + (_this.props.step || 0));\n        };\n        _this.dragStart = function (e) {\n            if (!_this.isLabel(e.event.originalEvent.target)) {\n                if (e.event.isTouch) {\n                    e.event.originalEvent.preventDefault();\n                }\n                _this.drag(e);\n            }\n        };\n        _this.dragOver = function (e) {\n            e.event.originalEvent.preventDefault();\n            _this.drag(e);\n        };\n        _this.drag = function (e) {\n            var computed = e.element.getBoundingClientRect();\n            var distance = _this.props.vertical\n                ? (computed.bottom - e.event.clientY)\n                : (_this.state.dir === 'rtl'\n                    ? computed.right - e.event.clientX\n                    : e.event.clientX - computed.left);\n            var size = _this.props.vertical ? computed.height : computed.width;\n            var percentage = (distance / size);\n            _this.change(e, _this.props.min + percentage * (_this.props.max - _this.props.min));\n        };\n        validatePackage(packageMetadata);\n        return _this;\n    }\n    /**\n     * @hidden\n     */\n    SliderWithoutContext.getDerivedStateFromProps = function (props, state) {\n        var value = props.value !== undefined ? props.value : state.value;\n        var min = props.min, max = props.max;\n        return value === undefined ? null :\n            { value: Math.min(Math.max(value, min), max) };\n    };\n    /**\n     * @hidden\n     */\n    SliderWithoutContext.prototype.componentDidMount = function () {\n        if (!this.state.dir && window && this._element) {\n            // Note: getComputedStyle forces reflow\n            var direction = window.getComputedStyle(this._element).direction;\n            if (direction) {\n                this.setState({ dir: direction });\n            }\n        }\n    };\n    /**\n     * @hidden\n     */\n    SliderWithoutContext.prototype.render = function () {\n        var _a;\n        var _this = this;\n        var lS = provideLocalizationService(this);\n        var percentValue = ((this.state.value - this.props.min) / (this.props.max - this.props.min)) * 100;\n        var trackStyles = this.props.vertical\n            ? { marginTop: '0.5rem', marginBottom: '0.5rem' }\n            : { marginLeft: '0.5rem', marginRight: '0.5rem' };\n        var sliderItemsStyle = this.props.vertical\n            ? { paddingTop: 0, height: '100%' }\n            : {};\n        return (React.createElement(\"div\", { ref: function (el) { return _this._element = el; }, dir: this.state.dir, id: this.props.id, style: __assign({ gap: 0 }, this.props.style), onFocus: this.onFocus, onBlur: this.onBlur, onKeyDown: this.onKeyDown, className: classNames('k-slider', {\n                'k-focus': this.state.focused,\n                'k-disabled': this.props.disabled,\n                'k-slider-horizontal': !this.props.vertical,\n                'k-slider-vertical': this.props.vertical\n            }, this.props.className) },\n            React.createElement(this.buttons, { enabled: this.props.buttons, decrement: this.decrement, increment: this.increment, incrementTitle: lS.toLanguageString(sliderIncreaseValue, messages[sliderIncreaseValue]), decrementTitle: lS.toLanguageString(sliderDecreaseValue, messages[sliderDecreaseValue]) },\n                React.createElement(Draggable, { onDrag: this.dragOver, onPress: this.dragStart },\n                    React.createElement(\"div\", { className: \"k-slider-track-wrap\", style: __assign({ flexGrow: 1, position: 'relative', touchAction: 'none' }, trackStyles) },\n                        this.props.children && (React.createElement(\"ul\", { className: \"k-reset k-slider-items\", style: __assign({ margin: 0 }, sliderItemsStyle) }, React.Children.map(this.props.children, function (child) {\n                            return child && React.cloneElement(child, {\n                                position: 100 * (child.props.position - _this.props.min) /\n                                    (_this.props.max - _this.props.min),\n                                vertical: _this.props.vertical\n                            }, child.props.children);\n                        }))),\n                        React.createElement(\"div\", { className: \"k-slider-track\", style: this.props.vertical\n                                ? { bottom: 0, height: '100%' }\n                                : (_a = {}, _a[this.state.dir === 'rtl' ? 'right' : 'left'] = 0, _a.width = '100%', _a), ref: function (el) { return _this._sliderTrack = el; } },\n                            React.createElement(\"div\", { className: \"k-slider-selection\", style: this.props.vertical\n                                    ? { height: percentValue + '%' }\n                                    : { width: percentValue + '%' } }),\n                            React.createElement(\"span\", { role: \"slider\", \"aria-valuemin\": this.props.min, \"aria-valuemax\": this.props.max, \"aria-valuenow\": this.state.value, \"aria-valuetext\": String(this.state.value), \"aria-orientation\": this.props.vertical ? 'vertical' : undefined, \"aria-disabled\": this.props.disabled ? 'true' : undefined, \"aria-labelledby\": this.props.ariaLabelledBy, \"aria-describedby\": this.props.ariaDescribedBy, \"aria-label\": this.props.ariaLabel, tabIndex: getTabIndex(this.props.tabIndex, this.props.disabled, undefined), className: \"k-draghandle\", title: lS.toLanguageString(sliderDragTitle, messages[sliderDragTitle]), style: this.props.vertical\n                                    ? { bottom: 'calc(' + percentValue + '%)', zIndex: 1 }\n                                    : this.state.dir === 'rtl' ? { right: 'calc(' + percentValue + '% - 13px)', zIndex: 1 }\n                                        : { left: 'calc(' + percentValue + '%)', zIndex: 1 } })))))));\n    };\n    Object.defineProperty(SliderWithoutContext.prototype, \"sliderTrack\", {\n        /**\n         * @hidden\n         */\n        get: function () {\n            return this._sliderTrack;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    SliderWithoutContext.prototype.change = function (e, value) {\n        value = Math.min(Math.max(value, this.props.min), this.props.max);\n        this.setState({ value: value });\n        dispatchEvent(this.props.onChange, e, this, { value: value });\n    };\n    SliderWithoutContext.displayName = 'Slider';\n    /**\n     * @hidden\n     */\n    SliderWithoutContext.propTypes = {\n        min: PropTypes.number.isRequired,\n        max: PropTypes.number.isRequired,\n        value: PropTypes.number,\n        vertical: PropTypes.bool,\n        id: PropTypes.string,\n        ariaLabelledBy: PropTypes.string,\n        ariaDescribedBy: PropTypes.string,\n        ariaLabel: PropTypes.string\n        // TODO: validation when buttons is set to true, but no step is provided\n    };\n    return SliderWithoutContext;\n}(React.Component));\nexport { SliderWithoutContext };\n/**\n * Represents the PropsContext of the `Slider` component.\n * Used for global configuration of all `Slider` instances.\n *\n * For more information, refer to the [Inputs Props Context]({% slug props-context_inputs %}) article.\n */\nexport var SliderPropsContext = createPropsContext();\n/* eslint-disable @typescript-eslint/no-redeclare -- intentionally naming the component the same as the type */\n/**\n * Represents the [KendoReact Slider component]({% slug overview_slider %}).\n *\n * Accepts properties of type [SliderProps]({% slug api_inputs_sliderprops %}).\n * Obtaining the `ref` returns an object of type [SliderHandle]({% slug api_inputs_sliderhandle %}).\n */\nexport var Slider = withPropsContext(SliderPropsContext, SliderWithoutContext);\nSlider.displayName = 'KendoReactSlider';\nregisterForLocalization(SliderWithoutContext);\n","var cache = {};\n/**\n * @hidden\n */\nexport function cacheHsva(componentGuid, value, hsva) {\n    cache[componentGuid] = { value: value, hsva: hsva };\n}\n/**\n * @hidden\n */\nexport function cacheRgba(componentGuid, value, rgba) {\n    cache[componentGuid] = { value: value, rgba: rgba };\n}\n/**\n * @hidden\n */\nexport function cacheHex(componentGuid, value, hex) {\n    cache[componentGuid] = { value: value, hex: hex };\n}\n/**\n * @hidden\n */\nexport function removeCachedColor(componentGuid) {\n    delete cache[componentGuid];\n}\n/**\n * @hidden\n */\nexport function getCachedHex(componentGuid, value) {\n    if (componentGuid) {\n        var cachedColor = cache[componentGuid];\n        return cachedColor && cachedColor.value === value ? cachedColor.hex : undefined;\n    }\n    else {\n        return undefined;\n    }\n}\n/**\n * @hidden\n */\nexport function getCachedHsva(componentGuid, value) {\n    if (componentGuid) {\n        var cachedColor = cache[componentGuid];\n        return cachedColor && cachedColor.value === value ? cachedColor.hsva : undefined;\n    }\n    else {\n        return undefined;\n    }\n}\n/**\n * @hidden\n */\nexport function getCachedRgba(componentGuid, value) {\n    if (componentGuid) {\n        var cachedColor = cache[componentGuid];\n        return cachedColor && cachedColor.value === value ? cachedColor.rgba : undefined;\n    }\n    else {\n        return undefined;\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})();\nimport * as React from 'react';\nimport { registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { messages, colorGradientContrastRatio, colorGradientAALevel, colorGradientAAALevel, colorGradientPass, colorGradientFail } from '../messages';\nimport { getContrastFromTwoRGBAs } from './utils/color-parser';\nimport { IconWrap } from '@progress/kendo-react-common';\nimport { checkIcon, xIcon } from '@progress/kendo-svg-icons';\n/**\n * @hidden\n */\nvar ColorContrastLabels = /** @class */ (function (_super) {\n    __extends(ColorContrastLabels, _super);\n    function ColorContrastLabels() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    ColorContrastLabels.prototype.render = function () {\n        var localizationService = provideLocalizationService(this);\n        var contrastRatioMessage = localizationService.toLanguageString(colorGradientContrastRatio, messages[colorGradientContrastRatio]);\n        var AALevelMessage = localizationService.toLanguageString(colorGradientAALevel, messages[colorGradientAALevel]);\n        var AAALevelMessage = localizationService.toLanguageString(colorGradientAAALevel, messages[colorGradientAAALevel]);\n        var passMessage = localizationService.toLanguageString(colorGradientPass, messages[colorGradientPass]);\n        var failMessage = localizationService.toLanguageString(colorGradientFail, messages[colorGradientFail]);\n        var contrast = getContrastFromTwoRGBAs(this.props.rgba, this.props.bgColor);\n        var requiredAAContrast = (4.5).toFixed(1);\n        var requiredAAAContrast = (7.0).toFixed(1);\n        var contrastText = \"\".concat(contrastRatioMessage, \": \").concat(contrast.toFixed(2));\n        var aaText = \"\".concat(AALevelMessage, \": \").concat(requiredAAContrast);\n        var aaaText = \"\".concat(AAALevelMessage, \": \").concat(requiredAAAContrast);\n        var success = (React.createElement(\"span\", { className: \"k-contrast-validation k-text-success\" },\n            passMessage,\n            \" \",\n            React.createElement(IconWrap, { name: \"check\", icon: checkIcon })));\n        var error = (React.createElement(\"span\", { className: \"k-contrast-validation k-text-error\" },\n            failMessage,\n            \" \",\n            React.createElement(IconWrap, { name: \"x\", icon: xIcon })));\n        return (React.createElement(\"div\", { className: \"k-vbox k-colorgradient-color-contrast\" },\n            React.createElement(\"div\", { className: \"k-contrast-ratio\" },\n                React.createElement(\"span\", { className: \"k-contrast-ratio-text\" }, contrastText),\n                contrast >= 4.5 ? (React.createElement(\"span\", { className: \"k-contrast-validation k-text-success\" },\n                    React.createElement(IconWrap, { name: \"check\", icon: checkIcon }),\n                    contrast >= 7 && React.createElement(IconWrap, { name: \"check\", icon: checkIcon }))) : (React.createElement(\"span\", { className: \"k-contrast-validation k-text-error\" },\n                    React.createElement(IconWrap, { name: \"x\", icon: xIcon })))),\n            React.createElement(\"div\", null,\n                React.createElement(\"span\", null, aaText),\n                contrast >= 4.5 ? success : error),\n            React.createElement(\"div\", null,\n                React.createElement(\"span\", null, aaaText),\n                contrast >= 7 ? success : error)));\n    };\n    return ColorContrastLabels;\n}(React.Component));\nexport { ColorContrastLabels };\nregisterForLocalization(ColorContrastLabels);\n","/**\n * @hidden\n *\n * Render the svg <path> element.\n *\n * @param points (array) Represents the points coordinates as an array of tuples.\n * @param command (function) The command that is used (bezierCommand, lineCommand).\n *      @param point (array) [x,y] Represents the current point coordinates.\n *      @param i (integer) Represents the index of 'point' in the array 'a'.\n *      @param a (array) Represents the complete array of points coordinates.\n *      @output (string) a svg path command.\n * @output (string) a Svg <path> element\n */\nexport var svgPath = function (points, command) {\n    if (points.length === 0) {\n        return '';\n    }\n    // build the d attributes by looping over the points\n    var d = points.reduce(function (acc, point, i, a) {\n        return i === 0 ?\n            // if first point\n            \"M \".concat(point[0], \",\").concat(point[1]) :\n            // else\n            \"\".concat(acc, \" \").concat(command(point, i, a));\n    }, '');\n    return \"<path d=\\\"\".concat(d, \"\\\" fill=\\\"none\\\" stroke=\\\"white\\\" stroke-width=\\\"1\\\"/>\");\n};\n/**\n * @hidden\n *\n * Returns the properties of a line.\n *\n * @param pointA (array) [x,y] Represents the start point coordinates.\n * @param pointB (array) [x,y] Represents the end point coordinates.\n * @output (object) { length: (integer), angle: (integer) }\n */\nexport var line = function (pointA, pointB) {\n    var lengthX = pointB[0] - pointA[0];\n    var lengthY = pointB[1] - pointA[1];\n    return {\n        length: Math.sqrt(Math.pow(lengthX, 2) + Math.pow(lengthY, 2)),\n        angle: Math.atan2(lengthY, lengthX)\n    };\n};\n/**\n * @hidden\n *\n * Create a function to calculate the position of the control point.\n *\n * @param lineCalc (function) Represents the line function.\n *      @param pointA (array) [x,y] Represents the start point coordinates.\n *      @param pointB (array) [x,y] Represents the end point coordinates.\n *      @output (object) { length: (integer), angle: (integer) }\n * @output (function) closure.\n *      @param current (array) [x, y] Represents the current point coordinates.\n *      @param previous (array) [x, y] Represents the previous point coordinates.\n *      @param next (array) [x, y] ]Represents the next point coordinates.\n *      @param reverse (boolean, optional) Sets the direction.\n *      @output (array) [x, y] coordinates of a control point.\n */\nexport var controlPoint = function (lineCalc) {\n    return function (current, previous, next, reverse) {\n        // when 'current' is the first or last point of the array\n        // 'previous' and 'next' are undefined \n        // replace with 'current'\n        var p = previous || current;\n        var n = next || current;\n        var smooth = 0.1;\n        // properties of the line between previous and next \n        var l = lineCalc(p, n);\n        // If is end-control-point, add PI to the angle to go backward\n        var angle = l.angle + (reverse ? Math.PI : 0);\n        var length = l.length * smooth;\n        // The control point position is relative to the current point\n        var x = current[0] + Math.cos(angle) * length;\n        var y = current[1] + Math.sin(angle) * length;\n        return [x, y];\n    };\n};\n/**\n * @hidden\n *\n * Create a function to calculate a bezier curve command.\n *\n * @param controlPointCalc (function) Represents the controlPoint function.\n *      @param current (array) [x, y] Represents the current point coordinates.\n *      @param previous (array) [x, y] Represents the previous point coordinates.\n *      @param next (array) [x, y] ]Represents the next point coordinates.\n *      @param reverse (boolean, optional) Sets the direction.\n *      @output (array) [x, y] coordinates of a control point.\n * @output (function) closure.\n *      @param point (array) [x,y] Represents the current point coordinates.\n *      @param i (integer) Represents the index of 'point' in the array 'a'.\n *      @param a (array) Represents the complete array of points coordinates.\n *      @output (string) 'C x2,y2 x1,y1 x,y' Cubic bezier command.\n */\nexport var bezierCommand = function (controlPointCalc) { return function (point, i, a) {\n    // start control point\n    var _a = controlPointCalc(a[i - 1], a[i - 2], point), cpsX = _a[0], cpsY = _a[1];\n    // end control point\n    var _b = controlPointCalc(point, a[i - 1], a[i + 1], true), cpeX = _b[0], cpeY = _b[1];\n    return \"C \".concat(cpsX, \",\").concat(cpsY, \" \").concat(cpeX, \",\").concat(cpeY, \" \").concat(point[0], \",\").concat(point[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 { bezierCommand, controlPoint, line, svgPath } from './utils/svg-calc';\nimport { getColorFromHSV, getRGBA, getContrastFromTwoRGBAs } from './utils/color-parser';\nvar AA_CONTRAST = 4.5;\nvar AAA_CONTRAST = 7;\nvar STEP_COUNT = 16;\n;\n/**\n * @hidden\n */\nvar ColorContrastSvg = /** @class */ (function (_super) {\n    __extends(ColorContrastSvg, _super);\n    function ColorContrastSvg() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    ColorContrastSvg.prototype.renderSvgCurveLine = function () {\n        var _this = this;\n        var gradientRectMetrics = this.props.metrics;\n        var findValue = function (contrast, saturation, low, high, comparer) {\n            var mid = (low + high) / 2;\n            var hsva = Object.assign({}, _this.props.hsva, { s: saturation / gradientRectMetrics.width, v: 1 - mid / gradientRectMetrics.height });\n            var currentContrast = getContrastFromTwoRGBAs(getRGBA(getColorFromHSV(hsva)), getRGBA(_this.props.backgroundColor || ''));\n            if (low + 0.5 > high) {\n                if (currentContrast < contrast + 1 && currentContrast > contrast - 1) {\n                    return mid;\n                }\n                else {\n                    return null;\n                }\n            }\n            if (comparer(currentContrast, contrast)) {\n                return findValue(contrast, saturation, low, high - (high - low) / 2, comparer);\n            }\n            return findValue(contrast, saturation, low + (high - low) / 2, high, comparer);\n        };\n        var getPaths = function (contrast, stepCount, reversed) {\n            if (reversed === void 0) { reversed = false; }\n            var points = [];\n            for (var i = 0; i <= gradientRectMetrics.width; i += gradientRectMetrics.width / stepCount) {\n                var value = findValue(contrast, i, 0, gradientRectMetrics.height, reversed ? (function (a, b) { return a < b; }) : (function (a, b) { return a > b; }));\n                if (value !== null) {\n                    points.push([i, value]);\n                }\n            }\n            return points;\n        };\n        var bezierCommandCalc = bezierCommand(controlPoint(line));\n        return svgPath(getPaths(AA_CONTRAST, STEP_COUNT), bezierCommandCalc) +\n            svgPath(getPaths(AA_CONTRAST, STEP_COUNT, true), bezierCommandCalc) +\n            svgPath(getPaths(AAA_CONTRAST, STEP_COUNT), bezierCommandCalc) +\n            svgPath(getPaths(AAA_CONTRAST, STEP_COUNT, true), bezierCommandCalc);\n    };\n    ColorContrastSvg.prototype.shouldComponentUpdate = function (nextProps) {\n        if (nextProps.hsva.h === this.props.hsva.h &&\n            nextProps.hsva.a === this.props.hsva.a &&\n            this.props.backgroundColor === nextProps.backgroundColor) {\n            return false;\n        }\n        return true;\n    };\n    ColorContrastSvg.prototype.render = function () {\n        return (React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", className: 'k-color-contrast-svg', dangerouslySetInnerHTML: { __html: this.renderSvgCurveLine() }, style: {\n                position: 'absolute',\n                overflow: 'visible',\n                pointerEvents: 'none',\n                left: 0,\n                top: 0,\n                zIndex: 3\n            } }));\n    };\n    return ColorContrastSvg;\n}(React.Component));\nexport { ColorContrastSvg };\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 { Draggable, guid, classNames, focusFirstFocusableChild, getTabIndex, createPropsContext, withPropsContext } from '@progress/kendo-react-common';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { Slider } from './../main';\nimport { fitIntoBounds, isPresent } from './utils/misc';\nimport { getColorFromHue, parseColor, getHSV, getColorFromHSV, getRGBA, getColorFromRGBA } from './utils/color-parser';\nimport { cacheHsva, removeCachedColor, getCachedHsva, getCachedRgba, getCachedHex, cacheRgba, cacheHex } from './utils/color-cache';\nimport ColorInput from './ColorInput';\nimport { ColorContrastLabels } from './ColorContrastLabels';\nimport { ColorContrastSvg } from './ColorContrastSvg';\nimport { provideLocalizationService } from '@progress/kendo-react-intl';\nimport { messages, colorGradientHueSliderLabel, colorGradientAlphaSliderLabel } from './../messages';\nvar FORMAT = 'rgba';\nvar DEFAULT_SELECTED_COLOR = 'rgba(255, 255, 255, 1)';\n/** @hidden */\nvar ColorGradientWithoutContext = /** @class */ (function (_super) {\n    __extends(ColorGradientWithoutContext, _super);\n    function ColorGradientWithoutContext(props) {\n        var _this = _super.call(this, props) || this;\n        /**\n         * @hidden\n         */\n        _this.wrapper = null;\n        /**\n         * @hidden\n         */\n        _this.onHexChange = function (hex, value, event) {\n            if (_this.isUncontrolled) {\n                var hsva = getHSV(value);\n                _this.setState({ hsva: hsva, backgroundColor: getColorFromHue(hsva.h), rgba: getRGBA(value), hex: hex });\n            }\n            else {\n                cacheHex(_this.state.guid, value, hex);\n            }\n            _this.dispatchChangeEvent(value, event, event.nativeEvent);\n        };\n        /**\n         * @hidden\n         */\n        _this.onRgbaChange = function (rgba, event) {\n            var value = getColorFromRGBA(rgba);\n            if (_this.isUncontrolled) {\n                var hsva = getHSV(value);\n                var hex = parseColor(value, 'hex');\n                _this.setState({ hsva: hsva, backgroundColor: getColorFromHue(hsva.h), rgba: rgba, hex: hex });\n            }\n            else {\n                cacheRgba(_this.state.guid, value, rgba);\n            }\n            _this.dispatchChangeEvent(value, event.syntheticEvent, event.nativeEvent);\n        };\n        /**\n         * @hidden\n         */\n        _this.onAlphaSliderChange = function (event) {\n            _this.handleHsvaChange(Object.assign({}, _this.state.hsva, { a: event.value / 100 }), event.syntheticEvent, event.nativeEvent);\n        };\n        /**\n         * @hidden\n         */\n        _this.onHueSliderChange = function (event) {\n            _this.handleHsvaChange(Object.assign({}, _this.state.hsva, { h: event.value }), event.syntheticEvent, event.nativeEvent);\n        };\n        /**\n         * @hidden\n         */\n        _this.onDrag = function (e) {\n            _this.gradientWrapper.classList.add('k-dragging');\n            _this.changePosition(e.event);\n        };\n        /**\n         * @hidden\n         */\n        _this.onRelease = function () {\n            _this.gradientWrapper.classList.remove('k-dragging');\n        };\n        /**\n         * @hidden\n         */\n        _this.onGradientWrapperClick = function (event) {\n            _this.changePosition(event);\n        };\n        /**\n         * @hidden\n         */\n        _this.changePosition = function (event) {\n            var gradientRectMetrics = _this.getGradientRectMetrics();\n            var deltaX = event.clientX - gradientRectMetrics.left;\n            var deltaY = event.clientY - gradientRectMetrics.top;\n            var left = fitIntoBounds(deltaX, 0, gradientRectMetrics.width);\n            var top = fitIntoBounds(deltaY, 0, gradientRectMetrics.height);\n            var hsva = Object.assign({}, _this.state.hsva, { s: left / gradientRectMetrics.width, v: 1 - top / gradientRectMetrics.height });\n            _this.handleHsvaChange(hsva, event, event.nativeEvent);\n        };\n        /**\n         * @hidden\n         */\n        _this.onFocus = function (nativeEvent) {\n            if (_this.props.onFocus) {\n                _this.props.onFocus.call(undefined, { nativeEvent: nativeEvent, target: _this });\n            }\n        };\n        /**\n         * @hidden\n         */\n        _this.focus = function () {\n            focusFirstFocusableChild(_this.wrapper);\n        };\n        validatePackage(packageMetadata);\n        var value = props.value || props.defaultValue || parseColor(DEFAULT_SELECTED_COLOR, FORMAT);\n        _this.state = Object.assign({}, ColorGradientWithoutContext.getStateFromValue(value), { isFirstRender: true, guid: guid() });\n        return _this;\n    }\n    /**\n     * @hidden\n     */\n    ColorGradientWithoutContext.getDerivedStateFromProps = function (props, state) {\n        if (props.value && !state.isFirstRender) {\n            // The component is in controlled mode.\n            return ColorGradientWithoutContext.getStateFromValue(props.value, state.guid);\n        }\n        return null;\n    };\n    /**\n     * @hidden\n     */\n    ColorGradientWithoutContext.prototype.componentDidMount = function () {\n        this.setAlphaSliderBackground(this.state.backgroundColor);\n        if (this.state.isFirstRender) {\n            this.setState({ isFirstRender: false });\n        }\n    };\n    /**\n     * @hidden\n     */\n    ColorGradientWithoutContext.prototype.componentWillUnmount = function () {\n        removeCachedColor(this.state.guid);\n    };\n    /**\n     * @hidden\n     */\n    ColorGradientWithoutContext.prototype.componentDidUpdate = function (_, prevState) {\n        if (prevState.backgroundColor !== this.state.backgroundColor) {\n            this.setAlphaSliderBackground(this.state.backgroundColor);\n        }\n    };\n    /**\n     * @hidden\n     */\n    ColorGradientWithoutContext.prototype.renderRectangleDragHandle = function () {\n        var style = {};\n        if (!this.state.isFirstRender) {\n            var gradientRectMetrics = this.getGradientRectMetrics();\n            var top_1 = (1 - this.state.hsva.v) * gradientRectMetrics.height;\n            var left = this.state.hsva.s * gradientRectMetrics.width;\n            style.top = \"\".concat(top_1, \"px\");\n            style.left = \"\".concat(left, \"px\");\n        }\n        return (React.createElement(\"div\", { role: 'slider', tabIndex: getTabIndex(this.props.tabIndex, this.props.disabled), \"aria-valuetext\": this.props.ariaValueText, \"aria-valuenow\": parseInt(this.state.hex.substring(1), 16), \"aria-label\": this.props.ariaLabelHSV, \"aria-orientation\": undefined, \"aria-disabled\": this.props.disabled ? 'true' : undefined, className: \"k-hsv-draghandle k-draghandle\", style: style }));\n    };\n    /**\n     * @hidden\n     */\n    ColorGradientWithoutContext.prototype.handleHsvaChange = function (hsva, syntheticEvent, nativeEvent) {\n        var value = getColorFromHSV(hsva);\n        if (this.isUncontrolled) {\n            var hex = parseColor(value, 'hex');\n            this.setState({ hsva: hsva, backgroundColor: getColorFromHue(hsva.h), rgba: getRGBA(value), hex: hex });\n        }\n        else {\n            cacheHsva(this.state.guid, value, hsva);\n        }\n        this.dispatchChangeEvent(value, syntheticEvent, nativeEvent);\n    };\n    /**\n     * @hidden\n     */\n    ColorGradientWithoutContext.prototype.dispatchChangeEvent = function (value, syntheticEvent, nativeEvent) {\n        if (this.props.onChange) {\n            this.props.onChange.call(undefined, { syntheticEvent: syntheticEvent, nativeEvent: nativeEvent, target: this, value: value });\n        }\n    };\n    /**\n     * @hidden\n     */\n    ColorGradientWithoutContext.getStateFromValue = function (value, componentGuid) {\n        if (!isPresent(parseColor(value, 'hex'))) {\n            // Validate/sanitize the input.\n            value = DEFAULT_SELECTED_COLOR;\n        }\n        var hsva = getCachedHsva(componentGuid, value) || getHSV(value);\n        var rgba = getCachedRgba(componentGuid, value) || getRGBA(value);\n        var hex = getCachedHex(componentGuid, value) || parseColor(value, 'hex');\n        var backgroundColor = getColorFromHue(hsva.h);\n        return { hsva: hsva, backgroundColor: backgroundColor, rgba: rgba, hex: hex };\n    };\n    /**\n     * @hidden\n     */\n    ColorGradientWithoutContext.prototype.setAlphaSliderBackground = function (backgroundColor) {\n        if (this.props.opacity && this.alphaSlider && this.alphaSlider.sliderTrack) {\n            this.alphaSlider.sliderTrack.style.background = \"linear-gradient(to top, transparent, \".concat(backgroundColor, \")\");\n        }\n    };\n    Object.defineProperty(ColorGradientWithoutContext.prototype, \"isUncontrolled\", {\n        /**\n         * @hidden\n         */\n        get: function () {\n            return this.props.value === undefined;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * @hidden\n     */\n    ColorGradientWithoutContext.prototype.getGradientRectMetrics = function () {\n        return this.gradientWrapper.getBoundingClientRect();\n    };\n    /**\n     * @hidden\n     */\n    ColorGradientWithoutContext.prototype.render = function () {\n        var _this = this;\n        var lS = provideLocalizationService(this);\n        var className = classNames('k-colorgradient', { 'k-disabled': this.props.disabled }, this.props.className);\n        return (React.createElement(\"div\", { id: this.props.id, role: this.props.role, className: className, \"aria-disabled\": this.props.disabled ? 'true' : undefined, style: this.props.style, ref: function (el) { return _this.wrapper = el; }, tabIndex: getTabIndex(this.props.tabIndex, this.props.disabled), \"aria-label\": this.props.ariaLabel, \"aria-labelledby\": this.props.ariaLabelledBy, \"aria-describedby\": this.props.ariaDescribedBy, onFocus: this.onFocus },\n            React.createElement(\"div\", { className: \"k-colorgradient-canvas k-hstack\" },\n                React.createElement(\"div\", { className: \"k-hsv-rectangle\", style: { background: this.state.backgroundColor } },\n                    React.createElement(Draggable, { onDrag: this.onDrag, onRelease: this.onRelease, ref: function (el) { return _this.gradientWrapper = el ? el.element : undefined; } },\n                        React.createElement(\"div\", { className: \"k-hsv-gradient\", style: { touchAction: 'none' }, onClick: this.onGradientWrapperClick }, this.renderRectangleDragHandle())),\n                    this.props.backgroundColor && !this.state.isFirstRender &&\n                        React.createElement(ColorContrastSvg, { metrics: this.gradientWrapper ? this.getGradientRectMetrics() : undefined, hsva: this.state.hsva, backgroundColor: this.props.backgroundColor })),\n                React.createElement(\"div\", { className: \"k-hsv-controls k-hstack\" },\n                    React.createElement(Slider, { value: this.state.hsva.h, buttons: false, vertical: true, min: 0, max: 360, step: 5, onChange: this.onHueSliderChange, className: \"k-hue-slider k-colorgradient-slider\", disabled: this.props.disabled, ariaLabel: lS.toLanguageString(colorGradientHueSliderLabel, messages[colorGradientHueSliderLabel]) }),\n                    this.props.opacity &&\n                        React.createElement(Slider, { value: isPresent(this.state.hsva.a) ? this.state.hsva.a * 100 : 100, buttons: false, vertical: true, min: 0, max: 100, step: 1, ariaLabel: lS.toLanguageString(colorGradientAlphaSliderLabel, messages[colorGradientAlphaSliderLabel]), onChange: this.onAlphaSliderChange, className: \"k-alpha-slider k-colorgradient-slider\", disabled: this.props.disabled, ref: function (el) { return _this.alphaSlider = el; } }))),\n            React.createElement(ColorInput, { rgba: this.state.rgba, onRgbaChange: this.onRgbaChange, hex: this.state.hex, onHexChange: this.onHexChange, opacity: this.props.opacity, disabled: this.props.disabled, defaultInputMode: this.props.format }),\n            this.props.backgroundColor && (React.createElement(ColorContrastLabels, { bgColor: getRGBA(this.props.backgroundColor), rgba: this.state.rgba }))));\n    };\n    ColorGradientWithoutContext.displayName = 'ColorGradient';\n    /**\n     * @hidden\n     */\n    ColorGradientWithoutContext.propTypes = {\n        defaultValue: PropTypes.string,\n        value: PropTypes.string,\n        onChange: PropTypes.func,\n        onFocus: PropTypes.func,\n        opacity: PropTypes.bool,\n        backgroundColor: PropTypes.string,\n        format: PropTypes.any,\n        disabled: PropTypes.bool,\n        style: PropTypes.any,\n        id: PropTypes.string,\n        role: PropTypes.string,\n        ariaLabel: PropTypes.string,\n        ariaLabelledBy: PropTypes.string,\n        ariaDescribedBy: PropTypes.string,\n        className: PropTypes.string\n    };\n    /**\n     * @hidden\n     */\n    ColorGradientWithoutContext.defaultProps = {\n        opacity: true,\n        role: 'textbox',\n        format: 'rgb'\n    };\n    return ColorGradientWithoutContext;\n}(React.Component));\nexport { ColorGradientWithoutContext };\n/**\n * Represents the PropsContext of the `ColorGradient` component.\n * Used for global configuration of all `ColorGradient` instances.\n *\n * For more information, refer to the [Inputs Props Context]({% slug props-context_inputs %}) article.\n */\nexport var ColorGradientPropsContext = createPropsContext();\n/* eslint-disable @typescript-eslint/no-redeclare -- intentionally naming the component the same as the type */\n/**\n * Represents the [KendoReact ColorGradient component]({% slug overview_colorgradient %}).\n *\n * Accepts properties of type [ColorGradientProps]({% slug api_inputs_colorgradientprops %}).\n * Obtaining the `ref` returns an object of type [ColorGradientHandle]({% slug api_inputs_colorgradienthandle %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n *     render() {\n *         return <ColorGradient />;\n *     }\n * }\n * ReactDOM.render(<App />, document.querySelector('my-app'));\n * ```\n */\nexport var ColorGradient = withPropsContext(ColorGradientPropsContext, ColorGradientWithoutContext);\nColorGradient.displayName = 'KendoReactColorGradient';\n","import { isPresent } from './misc';\nimport { parseColor } from '@progress/kendo-drawing';\n/**\n * @hidden\n */\nvar ColorPaletteService = /** @class */ (function () {\n    function ColorPaletteService() {\n        this.colorRows = [];\n    }\n    ColorPaletteService.prototype.setColorMatrix = function (palette, columns) {\n        this.colorRows = [];\n        if (!(isPresent(palette) && palette.length)) {\n            return;\n        }\n        columns = columns || palette.length;\n        for (var start = 0; start < palette.length; start += columns) {\n            var row = palette.slice(start, columns + start);\n            this.colorRows.push(row);\n        }\n    };\n    ColorPaletteService.prototype.getCellCoordsFor = function (color) {\n        var _this = this;\n        if (!isPresent(color)) {\n            return;\n        }\n        var parsedColor = color ? parseColor(color, true) : color;\n        var colors = [color];\n        if (isPresent(parsedColor)) {\n            colors.push(parsedColor.toCss(), parsedColor.toCssRgba());\n        }\n        var _loop_1 = function (row) {\n            var _loop_2 = function (col) {\n                if (colors.some(function (c) { return c === _this.colorRows[row][col]; })) {\n                    return { value: { row: row, col: col } };\n                }\n            };\n            for (var col = 0; col < this_1.colorRows[row].length; col++) {\n                var state_2 = _loop_2(col);\n                if (typeof state_2 === \"object\")\n                    return state_2;\n            }\n        };\n        var this_1 = this;\n        for (var row = 0; row < this.colorRows.length; row++) {\n            var state_1 = _loop_1(row);\n            if (typeof state_1 === \"object\")\n                return state_1.value;\n        }\n    };\n    ColorPaletteService.prototype.getColorAt = function (cellCoords) {\n        if (!(isPresent(cellCoords) && isPresent(this.colorRows[cellCoords.row]))) {\n            return;\n        }\n        return this.colorRows[cellCoords.row][cellCoords.col];\n    };\n    ColorPaletteService.prototype.getNextCell = function (current, horizontalStep, verticalStep) {\n        if (!(isPresent(current) && isPresent(current.row) && isPresent(current.col))) {\n            return { row: 0, col: 0 };\n        }\n        var row = this.clampIndex(current.row + verticalStep, this.colorRows.length - 1);\n        var col = this.clampIndex(current.col + horizontalStep, this.colorRows[row].length - 1);\n        return { row: row, col: col };\n    };\n    ColorPaletteService.prototype.clampIndex = function (index, max) {\n        var minArrayIndex = 0;\n        if (index < minArrayIndex) {\n            return minArrayIndex;\n        }\n        if (index > max) {\n            return max;\n        }\n        return index;\n    };\n    return ColorPaletteService;\n}());\nexport { ColorPaletteService };\n","/* eslint-disable max-len */\n/**\n * @hidden\n */\nexport var PALETTEPRESETS = {\n    basic: {\n        colors: ['#000000', '#7f7f7f', '#880015', '#ed1c24', '#ff7f27', '#fff200', '#22b14c', '#00a2e8', '#3f48cc', '#a349a4', ' ffffff', '#c3c3c3', '#b97a57', '#ffaec9', '#ffc90e', '#efe4b0', '#b5e61d', '#99d9ea', '#7092be', '#c8bfe7'],\n        columns: 10\n    },\n    office: {\n        colors: ['#ffffff', '#000000', '#e6e6e6', '#435569', '#4371c4', '#ed7e32', '#a5a4a5', '#febf04', '#5a9bd5', '#71ae48', '#f2f2f3', '#7f7f7f', '#d1cece', '#d5dde3', '#dae1f4', '#fce5d4', '#deeded', '#fff2cc', '#deeaf6', '#e1efd9', '#d7d8d8', '#585959', '#aeabab', '#adbaca', '#b4c5e7', '#f6caac', '#dbdbdb', '#ffe498', '#bcd6ee', '#c5e0b2', '#bfbfc0', '#3f3f3f', '#767070', '#8595b1', '#8fabdb', '#f5b183', '#c9c8c9', '#fed965', '#9bc4e5', '#a8d08d', '#a5a5a6', '#262625', '#393939', '#334050', '#2e5496', '#c45a11', '#7b7b7a', '#bf9000', '#2f75b5', '#548235', '#7f7f7f', '#0b0c0c', '#161616', '#222a34', '#203764', '#843d0b', '#525252', '#7f6000', '#1d4d79', '#375623'],\n        columns: 10\n    },\n    apex: {\n        colors: ['#ffffff', '#000000', '#c9c2d1', '#69676d', '#ceb966', '#9cb084', '#6bb1c9', '#6585cf', '#7e6bc9', '#a379bb', '#f2f2f2', '#7f7f7f', '#f4f2f5', '#e0e0e2', '#f5f1e0', '#ebefe6', '#e1eff4', '#e0e6f5', '#e5e1f4', '#ece4f1', '#d8d8d8', '#595959', '#e9e6ec', '#c2c1c5', '#ebe3c1', '#d7dfcd', '#c3dfe9', '#c1ceeb', '#cbc3e9', '#dac9e3', '#bfbfbf', '#3f3f3f', '#dedae3', '#a4a3a8', '#e1d5a3', '#c3cfb5', '#a6d0de', '#a2b5e2', '#b1a6de', '#c7aed6', '#a5a5a5', '#262626', '#9688a5', '#4e4d51', '#ae9638', '#758c5a', '#3d8da9', '#365bb0', '#533da9', '#7d4d99', '#7f7f7f', '#0c0c0c', '#635672', '#343336', '#746425', '#4e5d3c', '#295e70', '#243c75', '#372970', '#533366'],\n        columns: 10\n    },\n    austin: {\n        colors: ['#ffffff', '#000000', '#caf278', '#3e3d2d', '#94c600', '#71685a', '#ff6700', '#909465', '#956b43', '#fea022', '#f2f2f2', '#7f7f7f', '#f4fce4', '#dddcd0', '#efffc0', '#e3e1dc', '#ffe0cb', '#e8e9df', '#ece1d6', '#feecd2', '#d8d8d8', '#595959', '#e9f9c9', '#bbb9a1', '#dfff82', '#c8c3ba', '#ffc299', '#d2d4c0', '#dac3ad', '#fed9a6', '#bfbfbf', '#3f3f3f', '#dff7ae', '#ada598', '#cfff43', '#ada598', '#ffa365', '#bcbfa1', '#c8a585', '#fec67a', '#a5a5a5', '#262626', '#a9ea25', '#2e2d21', '#6f9400', '#544e43', '#bf4d00', '#6c6f4b', '#6f5032', '#d77b00', '#7f7f7f', '#0c0c0c', '#74a50f', '#1f1e16', '#4a6300', '#38342d', '#7f3300', '#484a32', '#4a3521', '#8f5200'],\n        columns: 10\n    },\n    clarity: {\n        colors: ['#ffffff', '#292934', '#f3f2dc', '#d2533c', '#93a299', '#ad8f67', '#726056', '#4c5a6a', '#808da0', '#79463d', '#f2f2f2', '#e7e7ec', '#e7e5b9', '#f6dcd8', '#e9ecea', '#eee8e0', '#e4dedb', '#d8dde3', '#e5e8ec', '#e9d6d3', '#d8d8d8', '#c4c4d1', '#d5d185', '#edbab1', '#d3d9d6', '#ded2c2', '#c9beb8', '#b2bcc8', '#ccd1d9', '#d3aea7', '#bfbfbf', '#8a8aa3', '#aca73b', '#e4978a', '#bec7c1', '#cdbba3', '#af9e94', '#8c9bac', '#b2bac6', '#bd857c', '#a5a5a5', '#56566e', '#56531d', '#a43925', '#6b7c72', '#866b48', '#554840', '#39434f', '#5c697b', '#5a342d', '#7f7f7f', '#3b3b4b', '#22210b', '#6d2619', '#47534c', '#594730', '#39302b', '#262d35', '#3d4652', '#3c231e'],\n        columns: 10\n    },\n    slipstream: {\n        colors: ['#ffffff', '#000000', '#b4dcfa', '#212745', '#4e67c8', '#5eccf3', '#a7ea52', '#5dceaf', '#ff8021', '#f14124', '#f2f2f2', '#7f7f7f', '#8bc9f7', '#c7cce4', '#dbe0f4', '#def4fc', '#edfadc', '#def5ef', '#ffe5d2', '#fcd9d3', '#d8d8d8', '#595959', '#4facf3', '#909aca', '#b8c2e9', '#beeafa', '#dbf6b9', '#beebdf', '#ffcca6', '#f9b3a7', '#bfbfbf', '#3f3f3f', '#0d78c9', '#5967af', '#94a3de', '#9ee0f7', '#caf297', '#9de1cf', '#ffb279', '#f68d7b', '#a5a5a5', '#262626', '#063c64', '#181d33', '#31479f', '#11b2eb', '#81d319', '#34ac8b', '#d85c00', '#c3260c', '#7f7f7f', '#0c0c0c', '#021828', '#101322', '#202f6a', '#0b769c', '#568c11', '#22725c', '#903d00', '#821908'],\n        columns: 10\n    },\n    metro: {\n        colors: ['#ffffff', '#000000', '#d6ecff', '#4e5b6f', '#7fd13b', '#ea157a', '#feb80a', '#00addc', '#738ac8', '#1ab39f', '#f2f2f2', '#7f7f7f', '#a7d6ff', '#d9dde4', '#e5f5d7', '#fad0e4', '#fef0cd', '#c5f2ff', '#e2e7f4', '#c9f7f1', '#d8d8d8', '#595959', '#60b5ff', '#b3bcca', '#cbecb0', '#f6a1c9', '#fee29c', '#8be6ff', '#c7d0e9', '#94efe3', '#bfbfbf', '#3f3f3f', '#007dea', '#8d9baf', '#b2e389', '#f272af', '#fed46b', '#51d9ff', '#aab8de', '#5fe7d5', '#a5a5a5', '#262626', '#003e75', '#3a4453', '#5ea226', '#af0f5b', '#c58c00', '#0081a5', '#425ea9', '#138677', '#7f7f7f', '#0c0c0c', '#00192e', '#272d37', '#3f6c19', '#750a3d', '#835d00', '#00566e', '#2c3f71', '#0c594f'],\n        columns: 10\n    },\n    flow: {\n        colors: ['#ffffff', '#000000', '#dbf5f9', '#04617b', '#0f6fc6', '#009dd9', '#0bd0d9', '#10cf9b', '#7cca62', '#a5c249', '#f2f2f2', '#7f7f7f', '#b2e9f2', '#b4ecfc', '#c7e2fa', '#c4eeff', '#c9fafc', '#c9faed', '#e4f4df', '#edf2da', '#d8d8d8', '#595959', '#76d9e8', '#6adafa', '#90c6f6', '#89deff', '#93f5f9', '#94f6db', '#cae9c0', '#dbe6b6', '#bfbfbf', '#3f3f3f', '#21b2c8', '#20c8f7', '#59a9f2', '#4fceff', '#5df0f6', '#5ff2ca', '#b0dfa0', '#c9da91', '#a5a5a5', '#262626', '#105964', '#02485c', '#0b5394', '#0075a2', '#089ca2', '#0b9b74', '#54a838', '#7e9532', '#7f7f7f', '#0c0c0c', '#062328', '#01303d', '#073763', '#004e6c', '#05686c', '#07674d', '#387025', '#546321'],\n        columns: 10\n    },\n    hardcover: {\n        colors: ['#ffffff', '#000000', '#ece9c6', '#895d1d', '#873624', '#d6862d', '#d0be40', '#877f6c', '#972109', '#aeb795', '#f2f2f2', '#7f7f7f', '#e1dca5', '#f2e0c6', '#f0d0c9', '#f6e6d5', '#f5f2d8', '#e7e5e1', '#fbc7bc', '#eef0e9', '#d8d8d8', '#595959', '#d0c974', '#e6c28d', '#e2a293', '#eeceaa', '#ece5b2', '#cfccc3', '#f78f7a', '#dee2d4', '#bfbfbf', '#3f3f3f', '#a29a36', '#daa454', '#d4735e', '#e6b681', '#e2d88c', '#b7b2a5', '#f35838', '#ced3bf', '#a5a5a5', '#262626', '#514d1b', '#664515', '#65281a', '#a2641f', '#a39428', '#655f50', '#711806', '#879464', '#7f7f7f', '#0c0c0c', '#201e0a', '#442e0e', '#431b11', '#6c4315', '#6d621a', '#433f35', '#4b1004', '#5a6243'],\n        columns: 10\n    },\n    trek: {\n        colors: ['#ffffff', '#000000', '#fbeec9', '#4e3b30', '#f0a22e', '#a5644e', '#b58b80', '#c3986d', '#a19574', '#c17529', '#f2f2f2', '#7f7f7f', '#f7e09e', '#e1d6cf', '#fcecd5', '#eddfda', '#f0e7e5', '#f3eae1', '#ece9e3', '#f5e3d1', '#d8d8d8', '#595959', '#f3cc5f', '#c4ad9f', '#f9d9ab', '#dcc0b6', '#e1d0cc', '#e7d5c4', '#d9d4c7', '#ebc7a3', '#bfbfbf', '#3f3f3f', '#d29f0f', '#a78470', '#f6c781', '#cba092', '#d2b9b2', '#dbc1a7', '#c6bfab', '#e1ac76', '#a5a5a5', '#262626', '#694f07', '#3a2c24', '#c87d0e', '#7b4b3a', '#926255', '#a17242', '#7b7153', '#90571e', '#7f7f7f', '#0c0c0c', '#2a1f03', '#271d18', '#855309', '#523226', '#614138', '#6b4c2c', '#524b37', '#603a14'],\n        columns: 10\n    },\n    verve: {\n        colors: ['#ffffff', '#000000', '#d2d2d2', '#666666', '#ff388c', '#e40059', '#9c007f', '#68007f', '#005bd3', '#00349e', '#f2f2f2', '#7f7f7f', '#bdbdbd', '#e0e0e0', '#ffd7e8', '#ffc6dc', '#ffb8f1', '#f1b2ff', '#c3dcff', '#b8cfff', '#d8d8d8', '#595959', '#9d9d9d', '#c1c1c1', '#ffafd1', '#ff8eba', '#ff71e4', '#e365ff', '#87baff', '#72a0ff', '#bfbfbf', '#3f3f3f', '#696969', '#a3a3a3', '#ff87ba', '#ff5597', '#ff2ad7', '#d519ff', '#4b98ff', '#2b71ff', '#a5a5a5', '#262626', '#343434', '#4c4c4c', '#e90062', '#ab0042', '#75005f', '#4e005f', '#00449e', '#002676', '#7f7f7f', '#0c0c0c', '#151515', '#333333', '#9b0041', '#72002c', '#4e003f', '#34003f', '#002d69', '#00194f'],\n        columns: 10\n    },\n    monochrome: {\n        colors: ['#000000', '#1a1a1a', '#333333', '#4d4d4d', '#666666', '#808080', '#999999', '#b3b3b3', '#cccccc', '#e6e6e6', '#f2f2f2', '#ffffff'],\n        columns: 12\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})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { ColorPaletteService } from './utils/color-palette.service';\nimport { classNames, Keys, dispatchEvent, guid, getTabIndex, withPropsContext, createPropsContext } from '@progress/kendo-react-common';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { PALETTEPRESETS } from './models/palette-presets';\nimport { isPresent } from './utils/misc';\nimport { parseColor } from './utils/color-parser';\n/**\n * @hidden\n */\nexport var DEFAULT_TILE_SIZE = 24;\n/**\n * @hidden\n */\nexport var DEFAULT_COLUMNS_COUNT = 10;\n/**\n * @hidden\n */\nexport var DEFAULT_PRESET = 'office';\n/** @hidden */\nvar ColorPaletteWithoutContext = /** @class */ (function (_super) {\n    __extends(ColorPaletteWithoutContext, _super);\n    function ColorPaletteWithoutContext(props) {\n        var _this = _super.call(this, props) || this;\n        /**\n         * @hidden\n         */\n        _this.wrapper = null;\n        _this.paletteService = null;\n        _this.guid = guid();\n        /**\n         * @hidden\n         */\n        _this.focus = function () {\n            if (_this.wrapper) {\n                _this.wrapper.focus();\n            }\n        };\n        _this.onKeyDown = function (event) {\n            switch (event.keyCode) {\n                case Keys.down:\n                    _this.handleCellNavigation(0, 1);\n                    break;\n                case Keys.up:\n                    _this.handleCellNavigation(0, -1);\n                    break;\n                case Keys.right:\n                    _this.handleCellNavigation(1, 0);\n                    break;\n                case Keys.left:\n                    _this.handleCellNavigation(-1, 0);\n                    break;\n                case Keys.enter:\n                    _this.handleEnter(event);\n                    break;\n                default: return;\n            }\n            event.preventDefault();\n        };\n        _this.onColorClick = function (color, event) {\n            if (_this.isUncontrolled) {\n                _this.setState({ selectedColor: color, focusedColor: color });\n            }\n            else {\n                _this.setState({ focusedColor: color });\n            }\n            _this.dispatchChangeEvent(color, event);\n        };\n        _this.onFocus = function (nativeEvent) {\n            if (!_this.paletteService) {\n                return;\n            }\n            _this.setState({ focusedColor: _this.state.selectedColor || _this.paletteService.colorRows[0][0] });\n            if (_this.props.onFocus) {\n                _this.props.onFocus.call(undefined, nativeEvent);\n            }\n        };\n        _this.onBlur = function () {\n            _this.setState({ focusedColor: undefined });\n        };\n        validatePackage(packageMetadata);\n        // The empty string for the `value` prop means no selection but controlled mode.\n        _this.state = {\n            selectedColor: _this.props.value !== undefined ? _this.props.value : _this.props.defaultValue,\n            isFirstRender: true\n        };\n        return _this;\n    }\n    /**\n     * @hidden\n     */\n    ColorPaletteWithoutContext.prototype.render = function () {\n        var _this = this;\n        var paletteInfo = this.getPaletteInfo();\n        var svc = this.paletteService = new ColorPaletteService();\n        svc.setColorMatrix(paletteInfo.colors, paletteInfo.columns);\n        var selectedCellCoords = svc.getCellCoordsFor(this.state.selectedColor);\n        var focusedCellCoords = svc.getCellCoordsFor(this.state.focusedColor);\n        var className = classNames('k-colorpalette', { 'k-disabled': this.props.disabled }, this.props.className);\n        if (paletteInfo.colors.length) {\n            return (React.createElement(\"div\", { id: this.props.id, role: \"grid\", className: className, onFocus: this.onFocus, onBlur: this.onBlur, onKeyDown: this.onKeyDown, \"aria-disabled\": this.props.ariaDisabled || (this.props.disabled ? 'true' : undefined), \"aria-labelledby\": this.props.ariaLabelledBy, \"aria-describedby\": this.props.ariaDescribedBy, tabIndex: getTabIndex(this.props.tabIndex, this.props.disabled), ref: function (el) { return _this.wrapper = el; } },\n                React.createElement(\"table\", { className: \"k-colorpalette-table\", role: \"presentation\" },\n                    React.createElement(\"tbody\", { role: \"rowgroup\" }, this.renderRows(svc.colorRows, selectedCellCoords, focusedCellCoords)))));\n        }\n        else {\n            // In this way, the code prevents an eventual focus of the component when no cells are available.\n            // This is needed because upon focus the first cell gets focused.\n            return '';\n        }\n    };\n    /**\n     * @hidden\n     */\n    ColorPaletteWithoutContext.getDerivedStateFromProps = function (props, state) {\n        if (!state.isFirstRender && props.value !== undefined) {\n            // The component is in controlled mode.\n            if (props.value === '' && state.selectedColor !== undefined) {\n                // The selection has to be removed.\n                return { selectedColor: undefined };\n            }\n            else if (props.value !== '' && props.value !== state.selectedColor) {\n                return { selectedColor: props.value };\n            }\n        }\n        else if (state.isFirstRender) {\n            return { isFirstRender: false };\n        }\n        return null;\n    };\n    ColorPaletteWithoutContext.prototype.handleCellNavigation = function (horizontalStep, verticalStep) {\n        if (!this.paletteService) {\n            return;\n        }\n        if (this.focusedColorCooridanates) {\n            var newCoords = this.paletteService.getNextCell(this.focusedColorCooridanates, horizontalStep, verticalStep);\n            this.setState({ focusedColor: this.paletteService.getColorAt(newCoords) });\n        }\n        else {\n            this.setState({ focusedColor: this.paletteService.colorRows[0][0] });\n        }\n    };\n    ColorPaletteWithoutContext.prototype.handleEnter = function (event) {\n        if (this.isUncontrolled) {\n            this.setState({ selectedColor: this.state.focusedColor });\n        }\n        this.dispatchChangeEvent(this.state.focusedColor, event);\n    };\n    ColorPaletteWithoutContext.prototype.dispatchChangeEvent = function (value, event) {\n        dispatchEvent(this.props.onChange, event, this, { value: value, rgbaValue: parseColor(value, 'rgba') });\n    };\n    Object.defineProperty(ColorPaletteWithoutContext.prototype, \"focusedColorCooridanates\", {\n        get: function () {\n            return this.state.focusedColor && this.paletteService ? this.paletteService.getCellCoordsFor(this.state.focusedColor) : undefined;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(ColorPaletteWithoutContext.prototype, \"isUncontrolled\", {\n        get: function () {\n            return this.props.value === undefined;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    ColorPaletteWithoutContext.prototype.getPaletteInfo = function () {\n        if (typeof this.props.palette === 'string') {\n            var preset = PALETTEPRESETS[this.props.palette];\n            if (isPresent(preset)) {\n                return {\n                    colors: preset.colors,\n                    columns: this.props.columns || preset.columns || DEFAULT_COLUMNS_COUNT\n                };\n            }\n            else {\n                return { colors: [], columns: 0 };\n            }\n        }\n        else {\n            return { colors: this.props.palette || [], columns: this.props.columns || DEFAULT_COLUMNS_COUNT };\n        }\n    };\n    ColorPaletteWithoutContext.prototype.renderRows = function (rows, selectedCellCoords, focusedCellCoords) {\n        var _this = this;\n        return rows.map(function (row, i) {\n            return React.createElement(\"tr\", { role: \"row\", key: i }, _this.renderColumns(row, i, selectedCellCoords, focusedCellCoords));\n        });\n    };\n    ColorPaletteWithoutContext.prototype.renderColumns = function (columns, rowIndex, selectedCellCoords, focusedCellCoords) {\n        var _this = this;\n        var rowIsSelected = selectedCellCoords !== undefined && selectedCellCoords.row === rowIndex;\n        var selectedColumn = selectedCellCoords && selectedCellCoords.col;\n        var rowIsFocused = focusedCellCoords !== undefined && focusedCellCoords.row === rowIndex;\n        var focusedColumn = focusedCellCoords && focusedCellCoords.col;\n        var tileSize = typeof this.props.tileSize !== 'number' ?\n            this.props.tileSize : { width: this.props.tileSize, height: this.props.tileSize };\n        var width = tileSize.width + 'px';\n        var height = tileSize.height + 'px';\n        return columns.map(function (color, i) {\n            var isSelected = rowIsSelected && selectedColumn === i;\n            var className = classNames('k-colorpalette-tile', {\n                'k-selected': isSelected,\n                'k-focus': rowIsFocused && focusedColumn === i\n            });\n            return (React.createElement(\"td\", { role: \"gridcell\", className: className, \"aria-label\": color, \"aria-selected\": isSelected ? true : _this.props.disabled ? undefined : false, style: { backgroundColor: color, width: width, height: height, minWidth: width }, onClick: function (event) { return _this.onColorClick(color, event); }, id: _this.createCellId({ row: rowIndex, col: i }), key: i }));\n        });\n    };\n    ColorPaletteWithoutContext.prototype.createCellId = function (cellCoords) {\n        return \"\".concat(this.guid, \"_\").concat(cellCoords.row, \"_\").concat(cellCoords.col);\n    };\n    ColorPaletteWithoutContext.displayName = 'ColorPalette';\n    /**\n     * @hidden\n     */\n    ColorPaletteWithoutContext.propTypes = {\n        palette: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string.isRequired), PropTypes.string]),\n        columns: PropTypes.number,\n        tileSize: PropTypes.any,\n        defaultValue: PropTypes.string,\n        value: PropTypes.string,\n        disabled: PropTypes.bool,\n        tabIndex: PropTypes.number,\n        onChange: PropTypes.func,\n        onFocus: PropTypes.func,\n        id: PropTypes.string,\n        ariaLabelledBy: PropTypes.string,\n        ariaDescribedBy: PropTypes.string,\n        className: PropTypes.string\n    };\n    /**\n     * @hidden\n     */\n    ColorPaletteWithoutContext.defaultProps = {\n        palette: DEFAULT_PRESET,\n        tileSize: DEFAULT_TILE_SIZE\n    };\n    return ColorPaletteWithoutContext;\n}(React.Component));\nexport { ColorPaletteWithoutContext };\n/**\n * Represents the PropsContext of the `ColorPalette` component.\n * Used for global configuration of all `ColorPalette` instances.\n *\n * For more information, refer to the [Inputs Props Context]({% slug props-context_inputs %}) article.\n */\nexport var ColorPalettePropsContext = createPropsContext();\n/* eslint-disable @typescript-eslint/no-redeclare -- intentionally naming the component the same as the type */\n/**\n * Represents the [KendoReact ColorPalette component]({% slug overview_colorpalette %}).\n *\n * Accepts properties of type [ColorPaletteProps]({% slug api_inputs_colorpaletteprops %}).\n * Obtaining the `ref` returns an object of type [ColorPaletteHandle]({% slug api_inputs_colorpalettehandle %}).\n *\n * ```jsx\n * class App extends React.Component {\n *     render() {\n *         return <ColorPalette palette='basic' />;\n *     }\n * }\n * ReactDOM.render(<App />, document.querySelector('my-app'));\n * ```\n */\nexport var ColorPalette = withPropsContext(ColorPalettePropsContext, ColorPaletteWithoutContext);\nColorPalette.displayName = 'KendoReactColorPalette';\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 { Popup } from '@progress/kendo-react-popup';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar ANCHOR_VERTICAL_ALIGN = 'bottom';\n/**\n * @hidden\n */\nvar POPUP_VERTICAL_ALIGN = 'top';\n/**\n * @hidden\n */\nexport var Picker = function (props) {\n    var popupSettings = props.popupSettings || {};\n    var horizontalAlign = props.dir === 'rtl' ? 'right' : 'left';\n    var anchorAlign = React.useMemo(function () { return ({ horizontal: horizontalAlign, vertical: ANCHOR_VERTICAL_ALIGN }); }, [horizontalAlign]);\n    var popupAlign = React.useMemo(function () { return ({ horizontal: horizontalAlign, vertical: POPUP_VERTICAL_ALIGN }); }, [horizontalAlign]);\n    return (React.createElement(React.Fragment, null,\n        props.input,\n        props.button,\n        React.createElement(Popup, __assign({ style: __assign(__assign({}, (popupSettings || {}).style), { direction: props.dir }) }, popupSettings, { anchor: props.popupAnchor, anchorAlign: anchorAlign, popupAlign: popupAlign, show: props.open, onOpen: props.onOpen, onClose: props.onClose, className: classNames('k-reset', popupSettings.className) }), props.content)));\n};\nPicker.displayName = 'KendoPickerComponent';\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 { classNames, Keys, useDir, getTabIndex, createPropsContext, usePropsContext, kendoThemeMaps, svgIconPropType, IconWrap } from '@progress/kendo-react-common';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { Picker } from './Picker';\nimport { ColorGradient } from './ColorGradient';\nimport { ColorPalette, DEFAULT_PRESET, DEFAULT_TILE_SIZE } from './ColorPalette';\nimport { Button } from '@progress/kendo-react-buttons';\nimport { caretAltDownIcon } from '@progress/kendo-svg-icons';\nimport { messages, colorPickerDropdownButtonAriaLabel } from '../messages';\nimport { useLocalization } from '@progress/kendo-react-intl';\n/**\n * @hidden\n */\nvar DEFAULT_GRADIENT_SETTINGS = {\n    opacity: true\n};\n/**\n * @hidden\n */\nvar DEFAULT_PALETTE_SETTINGS = {\n    palette: DEFAULT_PRESET,\n    tileSize: DEFAULT_TILE_SIZE\n};\n/**\n * @hidden\n */\nvar isControlled = function (prop) {\n    return prop !== undefined;\n};\n/**\n * Represents the PropsContext of the `ColorPicker` component.\n * Used for global configuration of all `ColorPicker` instances.\n *\n * For more information, refer to the [Inputs Props Context]({% slug props-context_inputs %}) article.\n */\nexport var ColorPickerPropsContext = createPropsContext();\n/**\n * Represents the [KendoReact ColorPicker component]({% slug overview_colorpicker %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n *     render() {\n *         return <ColorPicker />;\n *     }\n * }\n * ReactDOM.render(<App />, document.querySelector('my-app'));\n * ```\n */\nexport var ColorPicker = React.forwardRef(function (directProps, target) {\n    var _a;\n    validatePackage(packageMetadata);\n    var props = usePropsContext(ColorPickerPropsContext, directProps);\n    var localization = useLocalization();\n    var _b = props.size, size = _b === void 0 ? defaultProps.size : _b, _c = props.rounded, rounded = _c === void 0 ? defaultProps.rounded : _c, _d = props.fillMode, fillMode = _d === void 0 ? defaultProps.fillMode : _d, popupSettings = props.popupSettings, gradientSettings = props.gradientSettings, paletteSettings = props.paletteSettings, valid = props.valid, disabled = props.disabled, tabIndex = props.tabIndex, view = props.view, icon = props.icon, svgIcon = props.svgIcon, iconClassName = props.iconClassName, onChange = props.onChange, onFocus = props.onFocus, onBlur = props.onBlur, onActiveColorClick = props.onActiveColorClick, className = props.className;\n    var focusableElementRef = React.useRef(null);\n    var gradientRef = React.useRef(null);\n    var paletteRef = React.useRef(null);\n    var blurTimeoutRef = React.useRef();\n    var buttonRef = React.useRef(null);\n    var _e = React.useState(false), focused = _e[0], setFocused = _e[1];\n    var _f = React.useState(props.defaultValue), stateValue = _f[0], setStateValue = _f[1];\n    var _g = React.useState(false), stateOpen = _g[0], setStateOpen = _g[1];\n    var isValueControlled = isControlled(props.value);\n    var isOpenControlled = isControlled(props.open);\n    var value = isValueControlled ? props.value : stateValue;\n    var open = isOpenControlled ? props.open : stateOpen;\n    var focusElement = React.useCallback(function () {\n        if (focusableElementRef.current) {\n            focusableElementRef.current.focus();\n        }\n    }, []);\n    React.useImperativeHandle(target, function () { return ({\n        // we agreed that each element will have focus method exposed\n        element: focusableElementRef.current,\n        actionElement: buttonRef.current,\n        value: value,\n        focus: focusElement\n    }); }, [value, focusElement]);\n    var setOpen = React.useCallback(function (nextOpen, isBlur) {\n        if (!isOpenControlled) {\n            if (!nextOpen && !isBlur && focusableElementRef && focusableElementRef.current) {\n                focusableElementRef.current.focus();\n            }\n            setStateOpen(nextOpen);\n        }\n    }, [isOpenControlled]);\n    var onKeyDownHandler = React.useCallback(function (event) {\n        var altKey = event.altKey, keyCode = event.keyCode;\n        if (keyCode === Keys.esc) {\n            setOpen(false);\n            return;\n        }\n        if (keyCode === Keys.enter && !isOpenControlled) {\n            event.preventDefault();\n            event.stopPropagation();\n            setOpen(!open);\n            return;\n        }\n        if (altKey && (keyCode === Keys.up || keyCode === Keys.down)) {\n            event.preventDefault();\n            event.stopPropagation();\n            if (keyCode === Keys.up && focusableElementRef && focusableElementRef.current) {\n                focusableElementRef.current.focus();\n                setOpen(false);\n            }\n            if (keyCode === Keys.down) {\n                setOpen(true);\n            }\n        }\n    }, [open, isOpenControlled]);\n    var onOpenHandler = React.useCallback(function () {\n        // Skip content autofocus when in controlled mode\n        if (!isOpenControlled) {\n            if (gradientRef.current) {\n                gradientRef.current.focus();\n            }\n            else if (paletteRef.current) {\n                paletteRef.current.focus();\n            }\n        }\n    }, [isOpenControlled]);\n    var onClickHandler = React.useCallback(function () {\n        setOpen(!open, true);\n    }, [open]);\n    var onActiveColorClickHandler = React.useCallback(function (event) {\n        if (onActiveColorClick) {\n            onActiveColorClick.call(undefined, {\n                syntheticEvent: event,\n                nativeEvent: event.nativeEvent,\n                value: value\n            });\n        }\n    }, [onActiveColorClick, value]);\n    var onFocusHandler = React.useCallback(function (event) {\n        if (blurTimeoutRef.current) {\n            clearTimeout(blurTimeoutRef.current);\n            blurTimeoutRef.current = undefined;\n            // case where moving back to input from popup\n            // if (event.target === focusableElementRef.current) {\n            // setOpen(false); // in this case we should focus input on keydown\n            // }\n        }\n        else {\n            setFocused(true);\n        }\n        if (onFocus) {\n            onFocus.call(undefined, {\n                nativeEvent: event.nativeEvent,\n                syntheticEvent: event\n            });\n        }\n    }, [onFocus]);\n    var onBlurTimeout = React.useCallback(function () {\n        setOpen(false, true);\n        setFocused(false);\n        blurTimeoutRef.current = undefined;\n    }, []);\n    var onBlurHandler = React.useCallback(function (event) {\n        clearTimeout(blurTimeoutRef.current);\n        blurTimeoutRef.current = window.setTimeout(onBlurTimeout);\n        if (onBlur) {\n            onBlur.call(undefined, {\n                nativeEvent: event.nativeEvent,\n                syntheticEvent: event\n            });\n        }\n    }, [onBlur]);\n    var onChangeHandler = React.useCallback(function (event, isPalette) {\n        var currentValue = isPalette ? event.rgbaValue : event.value;\n        if (!isValueControlled) {\n            setStateValue(currentValue);\n        }\n        if (isPalette) {\n            setOpen(false);\n        }\n        if (onChange) {\n            onChange.call(undefined, {\n                value: currentValue,\n                nativeEvent: event.nativeEvent,\n                syntheticEvent: event.syntheticEvent\n            });\n        }\n    }, [isValueControlled, onChange]);\n    var onPaletteChangeHandler = React.useCallback(function (event) { return onChangeHandler(event, true); }, [isControlled, onChangeHandler]);\n    var dir = useDir(focusableElementRef, props.dir);\n    var isValid = valid !== false;\n    return (React.createElement(\"span\", { id: props.id, role: 'combobox', \"aria-label\": props.ariaLabel, \"aria-labelledby\": props.ariaLabelledBy, \"aria-describedby\": props.ariaDescribedBy, \"aria-haspopup\": 'dialog', \"aria-expanded\": open, \"aria-disabled\": disabled ? 'true' : undefined, className: classNames('k-colorpicker', 'k-picker', 'k-icon-picker', (_a = {},\n            _a[\"k-picker-\".concat(kendoThemeMaps.sizeMap[size] || size)] = size,\n            _a[\"k-picker-\".concat(fillMode)] = fillMode,\n            _a[\"k-rounded-\".concat(kendoThemeMaps.roundedMap[rounded] || rounded)] = rounded,\n            _a['k-invalid'] = !isValid,\n            _a['k-disabled'] = disabled,\n            _a['k-focus'] = focused,\n            _a.className = className,\n            _a)), ref: focusableElementRef, tabIndex: getTabIndex(tabIndex, disabled), title: props.title, onKeyDown: onKeyDownHandler, onFocus: onFocusHandler, onBlur: onBlurHandler, dir: dir },\n        React.createElement(Picker, { dir: dir, open: open, onOpen: onOpenHandler, popupAnchor: focusableElementRef.current || undefined, popupSettings: __assign({}, popupSettings), input: (React.createElement(\"span\", { onClick: onActiveColorClickHandler, className: 'k-input-inner' },\n                React.createElement(\"span\", { className: classNames('k-value-icon', 'k-color-preview', {\n                        'k-no-color': !value,\n                        'k-icon-color-preview': (icon || svgIcon || iconClassName)\n                    }) },\n                    iconClassName && React.createElement(\"span\", { className: classNames('k-color-preview-icon', iconClassName) }),\n                    !iconClassName && (icon || svgIcon) && React.createElement(IconWrap, { name: icon, icon: svgIcon }),\n                    React.createElement(\"span\", { className: \"k-color-preview-mask\", style: { backgroundColor: value } })))), button: (React.createElement(Button, { tabIndex: -1, type: \"button\", onClick: onClickHandler, className: \"k-input-button\", rounded: null, icon: 'caret-alt-down', svgIcon: caretAltDownIcon, \"aria-label\": localization.toLanguageString(colorPickerDropdownButtonAriaLabel, messages[colorPickerDropdownButtonAriaLabel]) })), content: (React.createElement(React.Fragment, null,\n                (view === 'combo' || view === 'gradient') && (React.createElement(ColorGradient, __assign({}, gradientSettings, { tabIndex: 0, ref: gradientRef, value: value, onChange: onChangeHandler }))),\n                (view === 'combo' || view === 'palette') && (React.createElement(ColorPalette, __assign({}, paletteSettings, { ref: paletteRef, value: value, onChange: onPaletteChangeHandler }))))) })));\n});\nColorPicker.propTypes = {\n    value: PropTypes.string,\n    defaultValue: PropTypes.string,\n    disabled: PropTypes.bool,\n    view: PropTypes.oneOf(['gradient', 'palette', 'combo']),\n    dir: PropTypes.string,\n    id: PropTypes.string,\n    icon: PropTypes.string,\n    svgIcon: svgIconPropType,\n    ariaLabelledBy: PropTypes.string,\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, 'solid', 'flat', 'outline']),\n    className: PropTypes.string\n};\nvar defaultProps = {\n    size: 'medium',\n    rounded: 'medium',\n    fillMode: 'solid',\n    view: 'palette',\n    gradientSettings: DEFAULT_GRADIENT_SETTINGS,\n    paletteSettings: DEFAULT_PALETTE_SETTINGS\n};\nColorPicker.defaultProps = defaultProps;\nColorPicker.displayName = 'KendoColorPicker';\n","/**\n * @hidden\n */\nexport var ResultType;\n(function (ResultType) {\n    ResultType[ResultType[\"Literal\"] = 0] = \"Literal\";\n    ResultType[ResultType[\"Mask\"] = 1] = \"Mask\";\n    ResultType[ResultType[\"Undefined\"] = 2] = \"Undefined\";\n})(ResultType || (ResultType = {}));\n/**\n * @hidden\n */\nvar Result = /** @class */ (function () {\n    function Result(value, rest, type) {\n        if (type === void 0) { type = ResultType.Undefined; }\n        this.value = value;\n        this.rest = rest;\n        this.type = type;\n    }\n    // map :: Functor f => f a ~> (a -> b) -> f b\n    Result.prototype.map = function (fn) {\n        return new Result(fn(this.value), this.rest);\n    };\n    // chain :: Chain m => m a ~> (a -> m b) -> m b\n    Result.prototype.chain = function (fn) {\n        return fn(this.value, this.rest);\n    };\n    Result.prototype.fold = function (s, _ /* we don't need it*/) {\n        return s(this.value, this.rest);\n    };\n    Result.prototype.concat = function (r) {\n        return this.map(function (vs, _) { return r.chain(function (v, __) { return vs.concat([v]); }); });\n    };\n    Result.prototype.toString = function () {\n        return \"Result({ value: '\".concat(this.value, \"', rest: \").concat(this.rest, \" })\");\n    };\n    return Result;\n}());\nexport { Result };\n","/* eslint-disable max-len */\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, validatePackage, getTabIndex } from '@progress/kendo-react-common';\nimport { ButtonGroup, Button } from '@progress/kendo-react-buttons';\nimport { paletteIcon, dropletSlashIcon, dropletSliderIcon } from '@progress/kendo-svg-icons';\nimport { ColorPalette, ColorGradient } from '../main';\nimport { packageMetadata } from '../package-metadata';\nimport { useLocalization } from '@progress/kendo-react-intl';\nimport { messages, flatColorPickerApplyBtn, flatColorPickerCancelBtn, flatColorPickerColorGradientBtn, flatColorPickerColorPaletteBtn, flatColorPickerClearBtn } from '../messages';\nvar defaultColor = 'rgba(255, 255, 255, 1)';\n;\n;\n/**\n * Represents the [KendoReact FlatColorPicker component]({% slug overview_flatcolorpicker %}).\n * Accepts properties of type [FlatColorPickerProps]({% slug api_inputs_flatcolorpickerprops %}). Obtaining the [FlatColorPickerHandle]({% slug api_inputs_flatcolorpickerhandle %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n *     render() {\n *         return <FlatColorPicker />;\n *     }\n * }\n * ReactDOM.render(<App />, document.querySelector('my-app'));\n * ```\n */\nexport var FlatColorPicker = React.forwardRef(function (props, ref) {\n    validatePackage(packageMetadata);\n    var target = React.useRef(null);\n    var flatColorPickerRef = React.useRef(null);\n    var colorGradientRef = React.useRef(null);\n    var _a = props.defaultValue, defaultValue = _a === void 0 ? defaultColor : _a, _b = props.showButtons, showButtons = _b === void 0 ? true : _b, _c = props.showPreview, showPreview = _c === void 0 ? true : _c, _d = props.showClearButton, showClearButton = _d === void 0 ? true : _d;\n    var _e = React.useState((props.view || 'ColorGradient') === 'ColorGradient'), colorGradientView = _e[0], setColorGradientView = _e[1];\n    var _f = React.useState(props.value || defaultValue), colorValue = _f[0], setColorValue = _f[1];\n    var _g = React.useState(props.value || defaultValue), prevColor = _g[0], setPrevColor = _g[1];\n    var value = props.value !== undefined ? props.value : prevColor;\n    React.useEffect(function () {\n        setColorValue(props.value || defaultValue);\n    }, [props.value, defaultValue]);\n    var localizationService = useLocalization();\n    var focus = React.useCallback(function () {\n        if (target.current) {\n            target.current.focus();\n        }\n    }, [target]);\n    React.useImperativeHandle(target, function () { return ({\n        element: flatColorPickerRef.current,\n        focus: focus,\n        props: props,\n        value: value\n    }); }, [value, focus, props]);\n    React.useImperativeHandle(ref, function () { return target.current; });\n    var handleViewChange = React.useCallback(function (viewType) {\n        if ((viewType === 'ColorGradient' && !colorGradientView) || (viewType === 'ColorPalette' && colorGradientView)) {\n            setColorGradientView(!colorGradientView);\n        }\n    }, [colorGradientView]);\n    var handleResetColor = React.useCallback(function (event) {\n        setColorValue(defaultValue);\n        if (props.onPreviewChange) {\n            var ev = {\n                value: defaultValue,\n                nativeEvent: event.nativeEvent,\n                syntheticEvent: event\n            };\n            props.onPreviewChange.call(undefined, ev);\n        }\n    }, [defaultValue, props.onPreviewChange]);\n    var handleColorChange = React.useCallback(function (event) {\n        setColorValue(event.value);\n        if (props.onPreviewChange) {\n            var ev = {\n                value: event.value,\n                nativeEvent: event.nativeEvent,\n                syntheticEvent: event.syntheticEvent\n            };\n            props.onPreviewChange.call(undefined, ev);\n        }\n    }, [props.onPreviewChange]);\n    var handleApplyBtnClick = React.useCallback(function (event) {\n        setPrevColor(colorValue);\n        if (props.onChange) {\n            var ev = {\n                value: colorValue,\n                nativeEvent: event.nativeEvent,\n                syntheticEvent: event\n            };\n            props.onChange.call(undefined, ev);\n        }\n    }, [colorValue, props.onChange]);\n    var handleCancelBtnClick = React.useCallback(function () {\n        setPrevColor(defaultColor);\n    }, []);\n    var handlePrevColorClick = React.useCallback(function (event) {\n        setColorValue(prevColor);\n        if (props.onPreviewChange) {\n            var ev = {\n                value: prevColor,\n                nativeEvent: event.nativeEvent,\n                syntheticEvent: event\n            };\n            props.onPreviewChange.call(undefined, ev);\n        }\n    }, [prevColor, props.onPreviewChange]);\n    var handleFocus = React.useCallback(function (event) {\n        if (flatColorPickerRef.current && event.nativeEvent.target instanceof HTMLInputElement === false) {\n            flatColorPickerRef.current.focus();\n        }\n    }, [flatColorPickerRef]);\n    var handleFlatColorPickerBlur = React.useCallback(function (event) {\n        var _a;\n        var blurred = (!event.relatedTarget || !((_a = flatColorPickerRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.relatedTarget)));\n        if (!blurred) {\n            return;\n        }\n        if (!showButtons) {\n            setPrevColor(colorValue);\n        }\n        if (!showButtons && props.onChange) {\n            var ev = {\n                value: colorValue,\n                nativeEvent: event.nativeEvent,\n                syntheticEvent: event\n            };\n            props.onChange.call(undefined, ev);\n        }\n    }, [colorValue, showButtons, props.onChange]);\n    return (React.createElement(\"div\", { id: props.id, role: 'textbox', \"aria-label\": props.ariaLabel, \"aria-labelledby\": props.ariaLabelledBy, \"aria-disabled\": props.disabled ? 'true' : undefined, style: props.style, ref: flatColorPickerRef, tabIndex: getTabIndex(props.tabIndex, props.disabled), className: classNames('k-flatcolorpicker k-coloreditor', {\n            'k-disabled': props.disabled\n        }, props.className), onBlur: handleFlatColorPickerBlur },\n        React.createElement(React.Fragment, null,\n            props.header ||\n                React.createElement(\"div\", { className: \"k-coloreditor-header k-hstack\" },\n                    React.createElement(\"div\", { className: \"k-coloreditor-header-actions k-hstack\" },\n                        React.createElement(ButtonGroup, { className: \"k-button-group-flat\" },\n                            React.createElement(Button, { type: \"button\", \"aria-label\": localizationService.toLanguageString(flatColorPickerColorGradientBtn, messages[flatColorPickerColorGradientBtn]), togglable: true, fillMode: 'flat', selected: colorGradientView, onClick: function () { return handleViewChange('ColorGradient'); }, icon: \"droplet-slider\", svgIcon: dropletSliderIcon }),\n                            React.createElement(Button, { type: \"button\", \"aria-label\": localizationService.toLanguageString(flatColorPickerColorPaletteBtn, messages[flatColorPickerColorPaletteBtn]), togglable: true, fillMode: 'flat', selected: !colorGradientView, onClick: function () { return handleViewChange('ColorPalette'); }, icon: \"palette\", svgIcon: paletteIcon }))),\n                    React.createElement(\"div\", { className: \"k-spacer\" }),\n                    React.createElement(\"div\", { className: \"k-coloreditor-header-actions k-hstack\" },\n                        showClearButton &&\n                            React.createElement(Button, { type: \"button\", fillMode: 'flat', onClick: handleResetColor, \"aria-label\": localizationService.toLanguageString(flatColorPickerClearBtn, messages[flatColorPickerClearBtn]), icon: \"droplet-slash\", svgIcon: dropletSlashIcon }),\n                        showPreview &&\n                            React.createElement(\"div\", { className: \"k-coloreditor-preview k-vstack\" },\n                                React.createElement(\"span\", { className: \"k-coloreditor-preview-color k-color-preview\", style: { background: colorValue } }),\n                                React.createElement(\"span\", { className: \"k-coloreditor-current-color k-color-preview\", style: { background: prevColor }, onClick: handlePrevColorClick })))),\n            React.createElement(\"div\", { className: \"k-coloreditor-views k-vstack\" }, colorGradientView\n                ? React.createElement(ColorGradient, { ref: colorGradientRef, role: \"none\", tabIndex: -1, ariaLabel: undefined, value: colorValue, onChange: handleColorChange, onFocus: handleFocus, opacity: props.opacity, format: props.format })\n                : React.createElement(ColorPalette, { ariaDisabled: true, ariaLabelledBy: 'required_label', value: colorValue, onChange: handleColorChange, onFocus: handleFocus })),\n            showButtons &&\n                React.createElement(\"div\", { className: \"k-coloreditor-footer k-actions k-actions-end\" },\n                    React.createElement(Button, { type: \"button\", className: \"k-coloreditor-cancel\", onClick: handleCancelBtnClick }, messages[flatColorPickerCancelBtn]),\n                    React.createElement(Button, { type: \"button\", className: \"k-coloreditor-apply k-primary\", onClick: handleApplyBtnClick }, messages[flatColorPickerApplyBtn])))));\n});\nvar propTypes = {\n    id: PropTypes.string,\n    style: PropTypes.any,\n    className: PropTypes.string,\n    value: PropTypes.string,\n    defaultValue: PropTypes.string,\n    onPreviewChange: PropTypes.func,\n    onChange: PropTypes.func,\n    opacity: PropTypes.bool,\n    format: PropTypes.any,\n    tabIndex: PropTypes.number,\n    ariaLabel: PropTypes.string,\n    ariaLabelledBy: PropTypes.string,\n    disabled: PropTypes.bool,\n    view: PropTypes.any,\n    header: PropTypes.any,\n    showClearButton: PropTypes.bool,\n    showPreview: PropTypes.bool,\n    showButtons: PropTypes.bool\n};\nFlatColorPicker.displayName = 'KendoFlatColorPicker';\nFlatColorPicker.propTypes = propTypes;\n","/**\n * @hidden\n */\nvar Stream = /** @class */ (function () {\n    function Stream(input, control) {\n        if (input === void 0) { input = []; }\n        if (control === void 0) { control = []; }\n        this.input = input;\n        this.control = control;\n        this.inputCursor = 0;\n        this.controlCursor = 0;\n    }\n    Stream.prototype.eof = function () {\n        return this.inputCursor >= this.input.length;\n    };\n    // Get the first value from the input.\n    Stream.prototype.next = function () {\n        return {\n            char: this.input[this.inputCursor++],\n            control: this.control[this.controlCursor++]\n        };\n    };\n    Stream.prototype.peek = function () {\n        return {\n            char: this.input[this.inputCursor],\n            control: this.control[this.controlCursor]\n        };\n    };\n    Stream.prototype.eat_input = function () {\n        this.inputCursor++;\n    };\n    Stream.prototype.eat_control = function () {\n        this.controlCursor++;\n    };\n    Stream.prototype.eat = function () {\n        this.inputCursor++;\n        this.controlCursor++;\n    };\n    return Stream;\n}());\nexport { Stream };\n","import { Result, ResultType } from './result';\nimport { Stream } from './stream';\nvar toArray = function (value) { return (value || '').split(''); };\nvar ESCAPE_CHARACTER = '\\\\';\n/**\n * @hidden\n */\nvar Parser = /** @class */ (function () {\n    function Parser(parse) {\n        this.parse = parse;\n    }\n    Parser.prototype.run = function (input, control) {\n        if (control === void 0) { control = ''; }\n        if (input instanceof Stream) {\n            return this.parse(input);\n        }\n        else {\n            return this.parse(new Stream(toArray(input), toArray(control)));\n        }\n    };\n    // map :: Functor f => f a ~> (a -> b) -> f b\n    Parser.prototype.map = function (f) {\n        var _this = this;\n        return new Parser(function (stream) { return _this.parse(stream).map(f); });\n    };\n    // chain :: Chain m => m a ~> (a -> m b) -> m b\n    Parser.prototype.chain = function (f) {\n        var _this = this;\n        return new Parser(function (stream) { return _this.parse(stream).chain(function (v, s) { return f(v).run(s); }); });\n    };\n    Parser.prototype.isLiteral = function (c) {\n        return this.run(c).type === ResultType.Literal;\n    };\n    return Parser;\n}());\nexport { Parser };\n/**\n * @hidden\n */\nexport var mask = function (args) { return function (rule) { return new Parser(function (stream) {\n    var prompt = args.prompt, promptPlaceholder = args.promptPlaceholder;\n    while (!stream.eof()) {\n        var _a = stream.peek(), char = _a.char, control = _a.control;\n        if (char === control && control === prompt) {\n            stream.eat();\n            return new Result(prompt, stream, ResultType.Mask);\n        }\n        if (rule.test(char)) {\n            stream.eat();\n            return new Result(char, stream, ResultType.Mask);\n        }\n        if (char === promptPlaceholder) {\n            stream.eat();\n            return new Result(prompt, stream, ResultType.Mask);\n        }\n        stream.eat_input();\n    }\n    stream.eat();\n    return new Result(prompt, stream, ResultType.Mask);\n}); }; };\n/**\n * @hidden\n */\nexport var literal = function (_token) { return new Parser(function (stream) {\n    //    let {char, control} = stream.peek();\n    var char = stream.peek().char;\n    if (char === _token) {\n        stream.eat();\n        return new Result(_token, stream, ResultType.Literal);\n    }\n    //    if (control === _token) {\n    //        while (!stream.eof() && char !== _token) {\n    //            stream.eat_input();\n    //            char = stream.peek().char;\n    //        }\n    //    }\n    //\n    //    if (control !== undefined) {\n    //        stream.eat();\n    //    }\n    return new Result(_token, stream, ResultType.Literal);\n}); };\n/**\n * @hidden\n */\nexport var unmask = function (prompt) { return function (rule) { return new Parser(function (stream) {\n    while (!stream.eof()) {\n        var _a = stream.peek(), char = _a.char, control = _a.control;\n        if (char === prompt && control === prompt) {\n            stream.eat();\n            return new Result(char, stream);\n        }\n        if (rule.test(char)) {\n            stream.eat();\n            return new Result(char, stream);\n        }\n        stream.eat_input();\n    }\n    stream.eat();\n    return new Result('', stream);\n}); }; };\n/**\n * @hidden\n */\nexport var unliteral = function (_token) { return new Parser(function (stream) {\n    if (stream.eof()) {\n        return new Result('', stream);\n    }\n    var char = stream.peek().char;\n    if (char === _token) {\n        stream.eat();\n    }\n    return new Result(_token, stream);\n}); };\n/**\n * @hidden\n */\nexport var token = function (rules, creator) { return new Parser(function (stream) {\n    var char = stream.next().char;\n    var rule = rules[char];\n    if (char === ESCAPE_CHARACTER) {\n        char = stream.next().char;\n        return new Result(creator.literal(char), stream);\n    }\n    if (!rule) {\n        return new Result(creator.literal(char), stream);\n    }\n    return new Result(creator.mask(rule), stream);\n}); };\n/**\n * @hidden\n */\nexport var rawMask = function (args) { return new Parser(function (stream) {\n    var prompt = args.prompt, promptPlaceholder = args.promptPlaceholder;\n    var char = stream.next().char;\n    if (char === prompt) {\n        return new Result(promptPlaceholder, stream);\n    }\n    return new Result(char, stream);\n}); };\n/**\n * @hidden\n */\nexport var rawLiteral = function (includeLiterals) { return new Parser(function (stream) {\n    var char = stream.next().char;\n    if (includeLiterals) {\n        return new Result(char, stream);\n    }\n    return new Result('', stream);\n}); };\n","import { Parser } from './parsers';\nimport { Result } from './result';\n/**\n * @hidden\n */\nvar always = function (value) { return new Parser(function (stream) { return new Result(value, stream); }); };\n/**\n * @hidden\n */\nvar append = function (p1, p2) { return p1.chain(function (vs) { return p2.map(function (v) { return vs.concat([v]); }); }); };\n/**\n * @hidden\n */\nexport var sequence = function (list) { return list.reduce(function (acc, parser) { return append(acc, parser); }, always([])); };\n/**\n * @hidden\n */\nexport var greedy = function (parser) { return new Parser(function (stream) {\n    var result = new Result([], stream);\n    while (!stream.eof()) {\n        result = result.concat(parser.run(stream));\n    }\n    return result;\n}); };\n","import { greedy, sequence } from './parsing/combinators';\nimport { literal, mask as maskParser, rawLiteral, rawMask, token, unliteral, unmask } from './parsing/parsers';\n/**\n * @hidden\n */\nvar MaskingService = /** @class */ (function () {\n    function MaskingService() {\n        this.rules = {};\n        this.prompt = '_';\n        this.mask = '';\n        this.promptPlaceholder = ' ';\n        this.includeLiterals = false;\n        this.maskTokens = [];\n        this.unmaskTokens = [];\n        this.rawTokens = [];\n        this.validationTokens = [];\n    }\n    MaskingService.prototype.update = function (_a) {\n        var _b = _a.mask, mask = _b === void 0 ? '' : _b, _c = _a.prompt, prompt = _c === void 0 ? '' : _c, _d = _a.promptPlaceholder, promptPlaceholder = _d === void 0 ? ' ' : _d, _e = _a.rules, rules = _e === void 0 ? {} : _e, _f = _a.includeLiterals, includeLiterals = _f === void 0 ? false : _f;\n        this.mask = mask;\n        this.prompt = prompt;\n        this.promptPlaceholder = promptPlaceholder;\n        this.rules = rules;\n        this.includeLiterals = includeLiterals;\n        this.tokenize();\n    };\n    MaskingService.prototype.validationValue = function (maskedValue) {\n        if (maskedValue === void 0) { maskedValue = ''; }\n        var value = maskedValue;\n        sequence(this.validationTokens)\n            .run(maskedValue)\n            .fold(function (unmasked) {\n            value = unmasked.join('');\n        });\n        return value;\n    };\n    MaskingService.prototype.rawValue = function (maskedValue) {\n        if (maskedValue === void 0) { maskedValue = ''; }\n        var value = maskedValue;\n        if (!this.rawTokens.length) {\n            return value;\n        }\n        sequence(this.rawTokens)\n            .run(maskedValue)\n            .fold(function (unmasked) {\n            value = unmasked.join('');\n        });\n        return value;\n    };\n    /**\n     * @hidden\n     */\n    MaskingService.prototype.maskRaw = function (rawValue) {\n        if (rawValue === void 0) { rawValue = ''; }\n        var value = rawValue;\n        if (!this.maskTokens.length) {\n            return value;\n        }\n        sequence(this.maskTokens)\n            .run(rawValue)\n            .fold(function (masked) {\n            value = masked.join('');\n        });\n        return value;\n    };\n    MaskingService.prototype.maskInput = function (input, control, splitPoint) {\n        if (input.length < control.length) {\n            return this.maskRemoved(input, control, splitPoint);\n        }\n        return this.maskInserted(input, control, splitPoint);\n    };\n    MaskingService.prototype.maskInRange = function (pasted, oldValue, start, end) {\n        var value = '';\n        var selection = end;\n        var beforeChange = oldValue.split('').slice(0, start);\n        var afterChange = oldValue.split('').slice(end);\n        sequence(this.maskTokens.slice(start, end))\n            .run(pasted)\n            .fold(function (masked) {\n            value = beforeChange\n                .concat(masked)\n                .concat(afterChange)\n                .join('');\n        });\n        return {\n            selection: selection,\n            value: value\n        };\n    };\n    MaskingService.prototype.maskRemoved = function (input, control, splitPoint) {\n        var _this = this;\n        var value = '';\n        var selection = splitPoint;\n        var unchanged = input.split('').slice(splitPoint);\n        var changed = input.split('').slice(0, splitPoint).join('');\n        var take = this.maskTokens.length - (input.length - splitPoint);\n        sequence(this.maskTokens.slice(0, take))\n            .run(changed, control)\n            .fold(function (masked) {\n            selection = _this.adjustPosition(masked, selection);\n            value = masked.concat(unchanged).join('');\n        });\n        return {\n            selection: selection,\n            value: value\n        };\n    };\n    MaskingService.prototype.adjustPosition = function (input, selection) {\n        var caretChar = input[selection];\n        var isLiteral = this.maskTokens[selection].isLiteral(caretChar);\n        if (!isLiteral && caretChar !== this.prompt) {\n            return selection + 1;\n        }\n        return selection;\n    };\n    MaskingService.prototype.maskInserted = function (input, control, splitPoint) {\n        var _this = this;\n        var value = '';\n        var selection = splitPoint;\n        var changed = input.slice(0, splitPoint);\n        sequence(this.unmaskTokens)\n            .run(changed, control)\n            .chain(function (unmasked) {\n            selection = unmasked.join('').length;\n            var unchanged = control.slice(selection);\n            return sequence(_this.maskTokens)\n                .run(unmasked.join('') + unchanged, control);\n        })\n            .fold(function (masked) {\n            value = masked.join('');\n        });\n        return {\n            selection: selection,\n            value: value\n        };\n    };\n    Object.defineProperty(MaskingService.prototype, \"maskTokenCreator\", {\n        get: function () {\n            var _a = this, prompt = _a.prompt, promptPlaceholder = _a.promptPlaceholder;\n            return {\n                literal: function (rule) { return literal(rule); },\n                mask: function (rule) { return maskParser({ prompt: prompt, promptPlaceholder: promptPlaceholder })(rule); }\n            };\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(MaskingService.prototype, \"unmaskTokenCreator\", {\n        get: function () {\n            var _this = this;\n            return {\n                literal: function (rule) { return unliteral(rule); },\n                mask: function (rule) { return unmask(_this.prompt)(rule); }\n            };\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(MaskingService.prototype, \"rawTokenCreator\", {\n        get: function () {\n            var _a = this, prompt = _a.prompt, promptPlaceholder = _a.promptPlaceholder, includeLiterals = _a.includeLiterals;\n            return {\n                literal: function (_) { return rawLiteral(includeLiterals); },\n                mask: function (_) { return rawMask({ prompt: prompt, promptPlaceholder: promptPlaceholder }); }\n            };\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(MaskingService.prototype, \"validationTokenCreator\", {\n        get: function () {\n            var prompt = this.prompt;\n            return {\n                literal: function (_) { return rawLiteral(false); },\n                mask: function (_) { return rawMask({ prompt: prompt, promptPlaceholder: '' }); }\n            };\n        },\n        enumerable: false,\n        configurable: true\n    });\n    MaskingService.prototype.tokenize = function () {\n        var _this = this;\n        greedy(token(this.rules, this.maskTokenCreator))\n            .run(this.mask)\n            .fold(function (tokens, _) {\n            _this.maskTokens = tokens;\n        });\n        greedy(token(this.rules, this.unmaskTokenCreator))\n            .run(this.mask)\n            .fold(function (tokens, _) {\n            _this.unmaskTokens = tokens;\n        });\n        greedy(token(this.rules, this.rawTokenCreator))\n            .run(this.mask)\n            .fold(function (tokens, _) {\n            _this.rawTokens = tokens;\n        });\n        greedy(token(this.rules, this.validationTokenCreator))\n            .run(this.mask)\n            .fold(function (tokens, _) {\n            _this.validationTokens = tokens;\n        });\n    };\n    return MaskingService;\n}());\nexport { MaskingService };\n","/**\n * @hidden\n */\nvar defaultRules = {\n    '#': /[\\d\\s\\+\\-]/,\n    '&': /[\\S]/,\n    '0': /[\\d]/,\n    '9': /[\\d\\s]/,\n    '?': /[a-zA-Z\\s]/,\n    'A': /[a-zA-Z0-9]/,\n    'C': /./,\n    'L': /[a-zA-Z]/,\n    'a': /[a-zA-Z0-9\\s]/\n};\n/**\n * @hidden\n */\nvar returnFalse = function () { return false; };\n/**\n * @hidden\n */\nvar maskingChanged = function (prev, next) {\n    return prev.includeLiterals !== next.includeLiterals ||\n        prev.mask !== next.mask ||\n        prev.prompt !== next.prompt ||\n        prev.promptPlaceholder !== next.promptPlaceholder ||\n        !sameRules(prev.rules, next.rules);\n};\n/**\n * @hidden\n */\nvar sameRules = function (rules1, rules2) {\n    if (!!rules1 !== !!rules2) {\n        return false;\n    }\n    if (rules1 === rules2 || (!rules1 || !rules2)) {\n        return true;\n    }\n    var same = true;\n    for (var key in rules1) {\n        if (rules1[key] !== rules2[key]) {\n            same = false;\n            break;\n        }\n    }\n    if (same) {\n        for (var key in rules2) {\n            if (!rules1.hasOwnProperty(key)) {\n                same = false;\n                break;\n            }\n        }\n    }\n    return same;\n};\nexport { defaultRules, maskingChanged, returnFalse };\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 { MaskingService } from './masking.service';\nimport { defaultRules, maskingChanged, returnFalse } from './utils';\nimport { guid, classNames, getTabIndex, withPropsContext, createPropsContext, kendoThemeMaps, useCustomComponent } 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 MaskedTextBoxWithoutContext = /** @class */ (function (_super) {\n    __extends(MaskedTextBoxWithoutContext, _super);\n    function MaskedTextBoxWithoutContext(props) {\n        var _this = _super.call(this, props) || this;\n        /**\n         * @hidden\n         */\n        _this.state = {};\n        _this._inputId = \"k-\".concat(guid());\n        _this._service = new MaskingService();\n        _this._isPasted = false;\n        _this._selection = [null, null];\n        _this._input = null;\n        /**\n         * @hidden\n         */\n        _this.focus = function () {\n            if (_this._input) {\n                _this._input.focus();\n            }\n        };\n        _this.pasteHandler = function (event) {\n            var _a = event.target, selectionStart = _a.selectionStart, selectionEnd = _a.selectionEnd;\n            if (selectionEnd === selectionStart) {\n                return;\n            }\n            _this._isPasted = true;\n            _this._selection = [selectionStart || 0, selectionEnd || 0];\n        };\n        _this.onChangeHandler = function (event) {\n            var input = event.currentTarget;\n            var value = input.value;\n            var start = _this._selection[0] || 0;\n            var end = _this._selection[1] || 0;\n            if (!_this.props.mask) {\n                _this._isPasted = false;\n                _this._selection = [null, null];\n                _this.triggerOnChange(value, event);\n                return;\n            }\n            var maskedValue = _this.value;\n            var result;\n            if (_this._isPasted) {\n                _this._isPasted = false;\n                var rightPart = maskedValue.length - end;\n                var to = value.length - rightPart;\n                result = _this._service.maskInRange(value.slice(start, to), maskedValue, start, end);\n            }\n            else {\n                result = _this._service.maskInput(value, maskedValue, input.selectionStart || 0);\n            }\n            _this._selection = [result.selection, result.selection];\n            _this.triggerOnChange(result.value, event);\n        };\n        _this.focusHandler = function (event) {\n            if (!_this.state.focused) {\n                _this.setState({ focused: true });\n                if (_this.props.onFocus) {\n                    _this.props.onFocus.call(undefined, {\n                        target: _this,\n                        syntheticEvent: event,\n                        nativeEvent: event.nativeEvent\n                    });\n                }\n            }\n        };\n        _this.blurHandler = function (event) {\n            if (_this.state.focused) {\n                _this.setState({ focused: false });\n                if (_this.props.onBlur) {\n                    _this.props.onBlur.call(undefined, {\n                        target: _this,\n                        syntheticEvent: event,\n                        nativeEvent: event.nativeEvent\n                    });\n                }\n            }\n        };\n        _this.setValidity = function () {\n            if (_this.element) {\n                _this.element.setCustomValidity(_this.validity.valid\n                    ? ''\n                    : _this.props.validationMessage || '');\n            }\n        };\n        validatePackage(packageMetadata);\n        return _this;\n    }\n    Object.defineProperty(MaskedTextBoxWithoutContext.prototype, \"element\", {\n        /**\n         * Gets the element of the MaskedTextBox.\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         *             <div>\n         *                 <MaskedTextBox\n         *                     ref={(component) =>\n         *                         this.element = component ? component.element : null}\n         *                 />\n         *                 <button onClick={() => console.log(this.element)}>console.log the element</button>\n         *             </div>\n         *         );\n         *     }\n         * }\n         *\n         * ReactDOM.render(\n         *     <App />,\n         *     document.getElementsByTagName('my-app')[0]\n         * );\n         * ```\n         */\n        get: function () {\n            return this._input;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(MaskedTextBoxWithoutContext.prototype, \"value\", {\n        /**\n         * Gets the value with the mask of the MaskedTextBox.\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(MaskedTextBoxWithoutContext.prototype, \"rawValue\", {\n        /**\n         * Gets the raw value without the mask of the MaskedTextBox.\n         */\n        get: function () {\n            return this._service.rawValue(this.value);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(MaskedTextBoxWithoutContext.prototype, \"validity\", {\n        /**\n         * Represents the validity state into which the MaskedTextBox is set.\n         */\n        get: function () {\n            var maskedValue = this.value;\n            var value = this._service.validationValue(maskedValue);\n            var customError = this.props.validationMessage !== undefined;\n            var valid = (this.props.valid !== undefined ?\n                this.props.valid : ((!this.required || !!value)) &&\n                (!this.props.maskValidation || !this.props.prompt || maskedValue.indexOf(this.props.prompt) === -1));\n            return {\n                customError: customError,\n                valid: valid,\n                valueMissing: !value\n            };\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(MaskedTextBoxWithoutContext.prototype, \"validityStyles\", {\n        /**\n         * @hidden\n         */\n        get: function () {\n            return this.props.validityStyles !== undefined\n                ? this.props.validityStyles\n                : MaskedTextBoxWithoutContext.defaultProps.validityStyles;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(MaskedTextBoxWithoutContext.prototype, \"required\", {\n        /**\n         * @hidden\n         */\n        get: function () {\n            return this.props.required !== undefined\n                ? this.props.required\n                : MaskedTextBoxWithoutContext.defaultProps.required;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(MaskedTextBoxWithoutContext.prototype, \"name\", {\n        /**\n         * Gets the `name` property of the MaskedTextBox.\n         */\n        get: function () {\n            return this.props.name;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * @hidden\n     */\n    MaskedTextBoxWithoutContext.prototype.componentDidUpdate = function (prevProps, prevState) {\n        if (this.element && this.state.focused && prevState.focused) {\n            var _a = this._selection, start = _a[0], end = _a[1];\n            var prevSelection = prevProps.selection;\n            var nextSelection = this.props.selection;\n            if ((!prevSelection && nextSelection) ||\n                (prevSelection && nextSelection &&\n                    (prevSelection.start !== nextSelection.start || prevSelection.end !== nextSelection.end))) {\n                start = nextSelection.start;\n                end = nextSelection.end;\n            }\n            if (start !== null && end !== null) {\n                this.element.setSelectionRange(start, end);\n            }\n        }\n        if (maskingChanged(prevProps, this.props)) {\n            this.updateService();\n        }\n        this.setValidity();\n    };\n    /**\n     * @hidden\n     */\n    MaskedTextBoxWithoutContext.prototype.componentDidMount = function () {\n        this.updateService();\n        this.setValidity();\n    };\n    /**\n     * @hidden\n     */\n    MaskedTextBoxWithoutContext.prototype.render = function () {\n        var _a;\n        var _this = this;\n        var _b = this.props, _c = _b.size, size = _c === void 0 ? MaskedTextBoxWithoutContext.defaultProps.size : _c, _d = _b.fillMode, fillMode = _d === void 0 ? MaskedTextBoxWithoutContext.defaultProps.fillMode : _d, _e = _b.rounded, rounded = _e === void 0 ? MaskedTextBoxWithoutContext.defaultProps.rounded : _e;\n        var inputId = this.props.id || this._inputId;\n        var isValid = !this.validityStyles || this.validity.valid;\n        var style = this.props.style || {};\n        var _f = this.props, _g = _f.prefix, prefix = _g === void 0 ? MaskedTextBoxWithoutContext.defaultProps.prefix : _g, _h = _f.suffix, suffix = _h === void 0 ? MaskedTextBoxWithoutContext.defaultProps.suffix : _h;\n        var Prefix = useCustomComponent(prefix)[0];\n        var Suffix = useCustomComponent(suffix)[0];\n        var component = (React.createElement(\"span\", { dir: this.props.dir, className: classNames('k-maskedtextbox 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['k-invalid'] = !isValid,\n                _a['k-required'] = this.required,\n                _a['k-disabled'] = this.props.disabled,\n                _a), this.props.className), style: !this.props.label\n                ? __assign({ width: this.props.width }, style) : style },\n            React.createElement(Prefix, null),\n            React.createElement(\"input\", { type: \"text\", autoComplete: \"off\", autoCorrect: \"off\", autoCapitalize: \"off\", spellCheck: false, className: \"k-input-inner\", value: this.value, id: inputId, \"aria-labelledby\": this.props.ariaLabelledBy, \"aria-describedby\": this.props.ariaDescribedBy, \"aria-placeholder\": this.props.mask, name: this.props.name, tabIndex: getTabIndex(this.props.tabIndex, this.props.disabled, true), accessKey: this.props.accessKey, title: this.props.title, disabled: this.props.disabled || undefined, readOnly: this.props.readonly || undefined, placeholder: this.props.placeholder, ref: function (input) { return _this._input = input; }, onChange: this.onChangeHandler, onPaste: this.pasteHandler, onFocus: this.focusHandler, onBlur: this.blurHandler, onDragStart: returnFalse, onDrop: returnFalse }),\n            React.createElement(Suffix, null)));\n        return this.props.label\n            ? (React.createElement(FloatingLabel, { label: this.props.label, editorId: inputId, editorValue: this.value, editorValid: isValid, editorDisabled: this.props.disabled, editorPlaceholder: this.props.placeholder, children: component, style: { width: this.props.width }, dir: this.props.dir }))\n            : component;\n    };\n    MaskedTextBoxWithoutContext.prototype.triggerOnChange = function (maskedValue, event) {\n        this.setState({\n            value: maskedValue\n        });\n        if (this.props.onChange) {\n            this._valueDuringOnChange = maskedValue;\n            var ev = {\n                syntheticEvent: event,\n                nativeEvent: event.nativeEvent,\n                selectionStart: this._selection[0],\n                selectionEnd: this._selection[1],\n                target: this,\n                value: this.value\n            };\n            this.props.onChange.call(undefined, ev);\n            this._valueDuringOnChange = undefined;\n        }\n    };\n    MaskedTextBoxWithoutContext.prototype.updateService = function (extra) {\n        var config = Object.assign({\n            includeLiterals: this.props.includeLiterals,\n            mask: this.props.mask,\n            prompt: this.props.prompt,\n            promptPlaceholder: this.props.promptPlaceholder,\n            rules: this.rules\n        }, extra); // tslint:disable-line:align\n        this._service.update(config);\n    };\n    Object.defineProperty(MaskedTextBoxWithoutContext.prototype, \"rules\", {\n        get: function () {\n            return Object.assign({}, defaultRules, this.props.rules);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    MaskedTextBoxWithoutContext.displayName = 'MaskedTextBox';\n    /**\n     * @hidden\n     */\n    MaskedTextBoxWithoutContext.propTypes = {\n        value: PropTypes.string,\n        defaultValue: PropTypes.string,\n        placeholder: PropTypes.string,\n        title: PropTypes.string,\n        dir: PropTypes.string,\n        id: PropTypes.string,\n        style: PropTypes.object,\n        className: PropTypes.string,\n        prefix: PropTypes.any,\n        suffix: PropTypes.any,\n        ariaLabelledBy: PropTypes.string,\n        ariaDescribedBy: PropTypes.string,\n        width: PropTypes.oneOfType([\n            PropTypes.string,\n            PropTypes.number\n        ]),\n        tabIndex: PropTypes.number,\n        accessKey: PropTypes.string,\n        disabled: PropTypes.bool,\n        readonly: PropTypes.bool,\n        prompt: PropTypes.string,\n        promptPlaceholder: PropTypes.string,\n        includeLiterals: PropTypes.bool,\n        maskValidation: PropTypes.bool,\n        mask: PropTypes.string,\n        rules: function (props, propName, componentName) {\n            var rules = props.rules;\n            if (rules !== undefined) {\n                var valid = Object.entries(rules)\n                    .some(function (e) { return typeof e !== 'string' || !(rules[e] instanceof RegExp); });\n                if (!valid) {\n                    return new Error('Invalid prop `' + propName + '` supplied to' +\n                        ' `' + componentName + '`. Validation failed.');\n                }\n            }\n            return null;\n        },\n        selection: PropTypes.shape({\n            start: PropTypes.number.isRequired,\n            end: PropTypes.number.isRequired\n        }),\n        name: PropTypes.string,\n        label: PropTypes.string,\n        validationMessage: PropTypes.string,\n        required: PropTypes.bool,\n        valid: PropTypes.bool,\n        validityStyles: PropTypes.bool,\n        onChange: 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    };\n    /**\n     * @hidden\n     */\n    MaskedTextBoxWithoutContext.defaultProps = {\n        prompt: '_',\n        promptPlaceholder: ' ',\n        includeLiterals: false,\n        maskValidation: true,\n        rules: defaultRules,\n        required: false,\n        validityStyles: true,\n        prefix: function (_) { return null; },\n        suffix: function (_) { return null; },\n        size: 'medium',\n        rounded: 'medium',\n        fillMode: 'solid'\n    };\n    return MaskedTextBoxWithoutContext;\n}(React.Component));\nexport { MaskedTextBoxWithoutContext };\n/**\n * Represents the PropsContext of the `MaskedTextBox` component.\n * Used for global configuration of all `MaskedTextBox` instances.\n *\n * For more information, refer to the [Inputs Props Context]({% slug props-context_inputs %}) article.\n */\nexport var MaskedTextBoxPropsContext = createPropsContext();\n/* eslint-disable @typescript-eslint/no-redeclare -- intentionally naming the component the same as the type */\n/**\n * Represents the props of the [KendoReact MaskedTextBox component]({% slug overview_maskedtextbox %}).\n *\n * Accepts properties of type [MaskedTextBoxProps]({% slug api_inputs_maskedtextboxprops %}).\n * Obtaining the `ref` returns an object of type [MaskedTextBoxHandle]({% slug api_inputs_maskedtextboxhandle %}).\n */\nexport var MaskedTextBox = withPropsContext(MaskedTextBoxPropsContext, MaskedTextBoxWithoutContext);\nMaskedTextBox.displayName = 'KendoReactMaskedTextBox';\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};\n/**\n * @hidden\n */\nexport var RANGE_ACTION;\n(function (RANGE_ACTION) {\n    RANGE_ACTION[\"start\"] = \"start\";\n    RANGE_ACTION[\"end\"] = \"end\";\n    RANGE_ACTION[\"min\"] = \"min\";\n    RANGE_ACTION[\"max\"] = \"max\";\n    RANGE_ACTION[\"increase\"] = \"increase\";\n    RANGE_ACTION[\"decrease\"] = \"decrease\";\n})(RANGE_ACTION || (RANGE_ACTION = {}));\n/**\n * @hidden\n */\nexport var rangeReducer = function (state, action) {\n    var newState;\n    var newValue;\n    switch (action.type) {\n        case RANGE_ACTION.start:\n            if (action.payload === undefined) {\n                return state;\n            }\n            newState = {\n                start: action.payload > state.end ? state.end : Math.max(action.payload, action.min),\n                end: state.end\n            };\n            break;\n        case RANGE_ACTION.end:\n            if (action.payload === undefined) {\n                return state;\n            }\n            newState = {\n                start: state.start,\n                end: action.payload < state.start ? state.start : Math.min(action.payload, action.max)\n            };\n            break;\n        case RANGE_ACTION.min:\n            if (action.key === 'start') {\n                newState = __assign(__assign({}, state), { start: action.min });\n            }\n            else {\n                newState = __assign(__assign({}, state), { end: Math.max(action.min, state.start) });\n            }\n            break;\n        case RANGE_ACTION.max:\n            if (action.key === 'start') {\n                newState = __assign(__assign({}, state), { start: Math.min(action.max, state.end) });\n            }\n            else {\n                newState = __assign(__assign({}, state), { end: action.max });\n            }\n            break;\n        case RANGE_ACTION.increase:\n            if (action.step === undefined || action.key === undefined) {\n                return state;\n            }\n            newValue = state[action.key] + action.step;\n            if (action.key === 'start') {\n                if (newValue < action.min) {\n                    newState = __assign(__assign({}, state), { start: action.min });\n                }\n                else {\n                    newState = __assign(__assign({}, state), { start: Math.min(newValue, state.end) });\n                }\n            }\n            else {\n                if (newValue > action.max) {\n                    newState = __assign(__assign({}, state), { end: action.max });\n                }\n                else {\n                    newState = __assign(__assign({}, state), { end: Math.max(newValue, state.start) });\n                }\n            }\n            break;\n        case RANGE_ACTION.decrease:\n            if (action.step === undefined || action.key === undefined) {\n                return state;\n            }\n            newValue = state[action.key] - action.step;\n            if (action.key === 'start') {\n                if (newValue < action.min) {\n                    newState = __assign(__assign({}, state), { start: action.min });\n                }\n                else {\n                    newState = __assign(__assign({}, state), { start: Math.min(newValue, state.end) });\n                }\n            }\n            else {\n                if (newValue > action.max) {\n                    newState = __assign(__assign({}, state), { end: action.max });\n                }\n                else {\n                    newState = __assign(__assign({}, state), { end: Math.max(newValue, state.start) });\n                }\n            }\n            break;\n        default:\n            newState = state;\n            break;\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 { classNames, Keys, useDir, useDraggable, getTabIndex, createPropsContext, usePropsContext } from '@progress/kendo-react-common';\nimport { messages, sliderDragTitle } from './../messages';\nimport { useLocalization } from '@progress/kendo-react-intl';\nimport { rangeReducer, RANGE_ACTION } from './range-raducer';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * @hidden\n */\nvar useRange = function (defaultValue, args, callback) {\n    var _a = React.useState(defaultValue), state = _a[0], setState = _a[1];\n    var handleDispatchAction = React.useCallback(function (action) {\n        var newState = rangeReducer(args.state || state, __assign(__assign({}, action), args));\n        if (callback) {\n            callback(newState, action.event);\n        }\n        setState(newState);\n    }, [args, callback]);\n    return [state, handleDispatchAction];\n};\n/**\n * Represents the PropsContext of the `RangeSlider` component.\n * Used for global configuration of all `RangeSlider` instances.\n *\n * For more information, refer to the [Inputs Props Context]({% slug props-context_inputs %}) article.\n */\nexport var RangeSliderPropsContext = createPropsContext();\n/**\n * Represents the [KendoReact RangeSlider component]({% slug overview_rangeslider %}).\n *\n * Accepts properties of type [RangeSliderProps]({% slug api_inputs_rangesliderprops %}).\n * Obtaining the `ref` returns an object of type [RangeSliderHandle]({% slug api_inputs_rangesliderhandle %}).\n */\nexport var RangeSlider = React.forwardRef(function (directProps, ref) {\n    var _a, _b;\n    validatePackage(packageMetadata);\n    var props = usePropsContext(RangeSliderPropsContext, directProps);\n    var target = React.useRef(null);\n    var sliderRef = React.useRef(null);\n    var sliderSelectionRef = React.useRef(null);\n    var startHandle = React.useRef(null);\n    var endHandle = React.useRef(null);\n    var focus = React.useCallback(function () {\n        if (startHandle.current) {\n            startHandle.current.focus();\n        }\n    }, [startHandle]);\n    React.useImperativeHandle(target, function () { return ({\n        element: sliderRef.current,\n        focus: focus,\n        props: props\n    }); });\n    React.useImperativeHandle(ref, function () { return target.current; });\n    var min = React.useMemo(function () { return props.min; }, [props.min]);\n    var max = React.useMemo(function () { return props.max; }, [props.max]);\n    var step = React.useMemo(function () { return props.step !== undefined ? props.step : defaultProps.step; }, [props.step, defaultProps.step]);\n    var dir = useDir(sliderRef, props.dir);\n    var handleChange = function (newValue, event) {\n        if (props.onChange && target.current) {\n            props.onChange.call(undefined, {\n                value: newValue,\n                target: target.current,\n                syntheticEvent: event\n            });\n        }\n    };\n    var _c = React.useState(''), currentDrag = _c[0], setCurrentDrag = _c[1];\n    var _d = useRange(props.defaultValue || defaultProps.defaultValue, {\n        min: min,\n        max: max,\n        step: step,\n        state: props.value\n    }, handleChange), stateValue = _d[0], dispatchStateValue = _d[1];\n    var value = React.useMemo(function () { return props.value || stateValue; }, [props.value, stateValue]);\n    var sliderTrackRef = React.useRef(null);\n    var sliderTrackWrapRef = React.useRef(null);\n    var percentStart = React.useMemo(function () { return ((value.start - min) / (max - min)) * 100; }, [value.start, min, max]);\n    var percentEnd = React.useMemo(function () { return ((value.end - min) / (max - min)) * 100; }, [value.end, min, max]);\n    var sliderItemsStyle = React.useMemo(function () { return props.vertical ? { paddingTop: 0, height: '100%' } : {}; }, [props.vertical]);\n    var trackStyles = React.useMemo(function () { return props.vertical\n        ? { marginTop: '0.5rem', marginBottom: '0.5rem' }\n        : { marginLeft: '0.5rem', marginRight: '0.5rem' }; }, [props.vertical]);\n    var localization = useLocalization();\n    var calcNewDistance = React.useCallback(function (event) {\n        if (!sliderTrackWrapRef.current) {\n            return;\n        }\n        var computed = sliderTrackWrapRef.current.getBoundingClientRect();\n        var distance = props.vertical\n            ? (computed.bottom - event.clientY)\n            : dir === 'rtl'\n                ? (computed.right - event.clientX)\n                : (event.clientX - computed.left);\n        var size = props.vertical ? computed.height : computed.width;\n        var percentage = (distance / size);\n        var payload = (min + percentage * (max - min));\n        return payload;\n    }, [\n        sliderTrackWrapRef,\n        props.vertical,\n        dir,\n        min,\n        max,\n        stateValue.start,\n        stateValue.end,\n        props.value && props.value.start,\n        props.value && props.value.end\n    ]);\n    var calcKey = React.useCallback(function (payload) {\n        if (payload <= value.start) {\n            return 'start';\n        }\n        if (payload >= value.end) {\n            return 'end';\n        }\n        return (2 * payload < value.end + value.start) ? 'start' : 'end';\n    }, [\n        stateValue.start, stateValue.end,\n        props.value && props.value.start,\n        props.value && props.value.end\n    ]);\n    var handleStartKeyDown = React.useCallback(function (event) {\n        switch (event.keyCode) {\n            case Keys.right:\n                event.preventDefault();\n                dispatchStateValue({ type: dir === 'rtl' ? RANGE_ACTION.decrease : RANGE_ACTION.increase, key: 'start', event: event });\n                break;\n            case Keys.up:\n                event.preventDefault();\n                dispatchStateValue({ type: RANGE_ACTION.increase, key: 'start', event: event });\n                break;\n            case Keys.left:\n                event.preventDefault();\n                dispatchStateValue({ type: dir === 'rtl' ? RANGE_ACTION.increase : RANGE_ACTION.decrease, key: 'start', event: event });\n                break;\n            case Keys.down:\n                event.preventDefault();\n                dispatchStateValue({ type: RANGE_ACTION.decrease, key: 'start', event: event });\n                break;\n            case Keys.home:\n                event.preventDefault();\n                dispatchStateValue({ type: RANGE_ACTION.min, key: 'start', event: event });\n                break;\n            case Keys.end:\n                event.preventDefault();\n                dispatchStateValue({ type: RANGE_ACTION.max, key: 'start', event: event });\n                break;\n            default:\n                break;\n        }\n    }, [dispatchStateValue]);\n    var handleEndKeyDown = React.useCallback(function (event) {\n        switch (event.keyCode) {\n            case Keys.right:\n                event.preventDefault();\n                dispatchStateValue({ type: dir === 'rtl' ? RANGE_ACTION.decrease : RANGE_ACTION.increase, key: 'end', event: event });\n                break;\n            case Keys.up:\n                event.preventDefault();\n                dispatchStateValue({ type: RANGE_ACTION.increase, key: 'end', event: event });\n                break;\n            case Keys.left:\n                event.preventDefault();\n                dispatchStateValue({ type: dir === 'rtl' ? RANGE_ACTION.increase : RANGE_ACTION.decrease, key: 'end', event: event });\n                break;\n            case Keys.down:\n                event.preventDefault();\n                dispatchStateValue({ type: RANGE_ACTION.decrease, key: 'end', event: event });\n                break;\n            case Keys.home:\n                event.preventDefault();\n                dispatchStateValue({ type: RANGE_ACTION.min, key: 'end', event: event });\n                break;\n            case Keys.end:\n                event.preventDefault();\n                dispatchStateValue({ type: RANGE_ACTION.max, key: 'end', event: event });\n                break;\n            default:\n                break;\n        }\n    }, [dispatchStateValue, dir]);\n    var handleTrackPress = React.useCallback(function (event) {\n        var payload = calcNewDistance(event);\n        var key = calcKey(payload);\n        setCurrentDrag(key);\n        key === 'end' ? endHandle.current.focus() : startHandle.current.focus();\n        var action = (key === 'end' ? RANGE_ACTION.end : RANGE_ACTION.start);\n        dispatchStateValue({ type: action, payload: payload, event: event });\n    }, [props.vertical, min, max, dispatchStateValue]);\n    var handleTrackDrag = function (event) {\n        var payload = calcNewDistance(event);\n        var action = currentDrag === 'end' ? RANGE_ACTION.end : RANGE_ACTION.start;\n        dispatchStateValue({ type: action, payload: payload, event: event });\n    };\n    var handleTrackRelease = function (event) {\n        var payload = calcNewDistance(event);\n        var action = currentDrag === 'end' ? RANGE_ACTION.end : RANGE_ACTION.start;\n        dispatchStateValue({ type: action, payload: payload, event: event });\n        setCurrentDrag('');\n    };\n    useDraggable(sliderTrackWrapRef, { onPress: handleTrackPress, onDrag: handleTrackDrag, onRelease: handleTrackRelease });\n    return (React.createElement(\"div\", { id: props.id, style: props.style, ref: sliderRef, dir: dir, className: classNames('k-slider', {\n            'k-rtl': dir === 'rtl',\n            'k-disabled': props.disabled,\n            'k-slider-vertical': props.vertical,\n            'k-slider-horizontal': !props.vertical\n        }, props.className) },\n        React.createElement(\"div\", { ref: sliderTrackWrapRef, className: \"k-slider-track-wrap\", style: __assign({ flexGrow: 1, position: 'relative', touchAction: 'none' }, trackStyles) },\n            props.children && (React.createElement(\"ul\", { className: \"k-reset k-slider-items\", style: __assign({}, sliderItemsStyle) }, React.Children.map(props.children, function (child) {\n                return child && React.cloneElement(child, {\n                    position: 100 * (child.props.position - props.min) /\n                        (props.max - props.min),\n                    vertical: props.vertical\n                }, child.props.children);\n            }))),\n            React.createElement(\"div\", { ref: sliderTrackRef, className: \"k-slider-track\", style: props.vertical\n                    ? { bottom: 0, height: '100%' }\n                    : (_a = {}, _a[dir === 'rtl' ? 'right' : 'left'] = 0, _a.width = '100%', _a) },\n                (percentStart !== null && percentEnd !== null) && React.createElement(\"div\", { \"data-selection\": true, ref: sliderSelectionRef, title: \"\".concat(value.start, \" - \").concat(value.end), className: \"k-slider-selection\", style: props.vertical\n                        ? { height: (percentEnd - percentStart) + '%', bottom: percentStart + '%' }\n                        : (_b = {},\n                            _b[dir === 'rtl' ? 'right' : 'left'] = percentStart + '%',\n                            _b.width = (percentEnd - percentStart) + '%',\n                            _b) }),\n                React.createElement(\"span\", { ref: startHandle, role: \"slider\", tabIndex: getTabIndex(props.startTabIndex, props.disabled, undefined), \"aria-valuemin\": min, \"aria-valuemax\": Math.max(max, value.end), \"aria-valuenow\": value.start, \"aria-disabled\": props.disabled ? 'true' : undefined, \"aria-valuetext\": \"\".concat(value.start, \" - \").concat(value.end), className: \"k-draghandle\", title: localization.toLanguageString(sliderDragTitle, messages[sliderDragTitle]), style: props.vertical\n                        ? { bottom: 'calc(' + percentStart + '%)', zIndex: 1 }\n                        : dir === 'rtl' ? { right: 'calc(' + percentStart + '% - 13px)', zIndex: 1 }\n                            : { left: 'calc(' + percentStart + '%)', zIndex: 1 }, onKeyDown: handleStartKeyDown }),\n                React.createElement(\"span\", { ref: endHandle, role: \"slider\", tabIndex: getTabIndex(props.endTabIndex, props.disabled, undefined), \"aria-valuemin\": Math.min(min, value.start), \"aria-valuemax\": max, \"aria-valuenow\": value.end, \"aria-disabled\": props.disabled ? 'true' : undefined, \"aria-valuetext\": \"\".concat(value.start, \" - \").concat(value.end), className: \"k-draghandle\", title: localization.toLanguageString(sliderDragTitle, messages[sliderDragTitle]), style: props.vertical\n                        ? { bottom: 'calc(' + percentEnd + '%)', zIndex: 1 }\n                        : dir === 'rtl' ? { right: 'calc(' + percentEnd + '% - 13px)', zIndex: 1 }\n                            : { left: 'calc(' + percentEnd + '%)', zIndex: 1 }, onKeyDown: handleEndKeyDown })))));\n});\nvar propTypes = {\n    value: function (props, propName, componentName) {\n        if (props.value) {\n            var start = props.value.start;\n            var end = props.value.end;\n            var min = props.min;\n            var max = props.max;\n            if (start > end || start > max || start < min || end > max || end < min || end < start) {\n                return new Error(\"Invalid prop + \".concat(propName, \" supplied to \").concat(componentName, \".\\n                    The { start, end } value must be between the min & max value and { start, end } must be start < end.\\n                    \"));\n            }\n        }\n        return null;\n    },\n    defaultValue: function (props, propName, componentName) {\n        if (props.defaultValue) {\n            var start = props.defaultValue.start;\n            var end = props.defaultValue.end;\n            var min = props.min;\n            var max = props.max;\n            if (start > end || start > max || start < min || end > max || end < min || end < start) {\n                return new Error(\"Invalid prop + \".concat(propName, \" supplied to \").concat(componentName, \".\\n                    The { start, end } value must be between the min & max value and { start, end } must be start < end.\\n                    \"));\n            }\n        }\n        return null;\n    },\n    onChange: PropTypes.func,\n    step: PropTypes.number,\n    min: function (props, propName, componentName) {\n        var prop = props[propName];\n        var min = props.min;\n        var max = props.max;\n        if (min === undefined) {\n            return new Error(\"Invalid prop + \".concat(propName, \" supplied to \").concat(componentName, \".\\n                \").concat(propName, \" value can not be undefined.\\n                \"));\n        }\n        if (prop && min >= max) {\n            return new Error(\"Invalid prop + \".concat(propName, \" supplied to \").concat(componentName, \".\\n                \").concat(propName, \" value can not be equal to or bigger than the max value.\\n                \"));\n        }\n        return null;\n    },\n    max: function (props, propName, componentName) {\n        var prop = props[propName];\n        var min = props.min;\n        var max = props.max;\n        if (max === undefined) {\n            return new Error(\"Invalid prop + \".concat(propName, \" supplied to \").concat(componentName, \".\\n                \").concat(propName, \" value can not be undefined.\\n                \"));\n        }\n        if (prop && max <= min) {\n            return new Error(\"Invalid prop + \".concat(propName, \" supplied to \").concat(componentName, \".\\n                \").concat(propName, \" value can not be equal to or smaller than the min value.\\n                \"));\n        }\n        return null;\n    },\n    vertical: PropTypes.bool,\n    disabled: PropTypes.bool,\n    dir: PropTypes.oneOf(['ltr', 'rtl'])\n};\nvar defaultProps = {\n    step: 1,\n    defaultValue: {\n        start: 0,\n        end: 0\n    },\n    vertical: false,\n    disabled: false\n};\nRangeSlider.displayName = 'KendoReactRangeSlider';\n// TODO: delete casting when @types/react is updated!\nRangeSlider.propTypes = propTypes;\nRangeSlider.defaultProps = defaultProps;\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, guid, noop, Keys, dispatchEvent, getTabIndex, createPropsContext, withPropsContext, kendoThemeMaps } from '@progress/kendo-react-common';\nimport { provideLocalizationService } from '@progress/kendo-react-intl';\nimport { messages, switchValidation } from './../messages';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\n/** @hidden */\nvar SwitchWithoutContext = /** @class */ (function (_super) {\n    __extends(SwitchWithoutContext, _super);\n    /**\n     * @hidden\n     */\n    function SwitchWithoutContext(props) {\n        var _this = _super.call(this, props) || this;\n        /**\n         * @hidden\n         */\n        _this.setValidity = function () {\n            if (_this._input && _this._input.setCustomValidity) {\n                _this._input.setCustomValidity(_this.validity.valid\n                    ? ''\n                    : _this.props.validationMessage ||\n                        _this.defaultValidationMessage.toLanguageString(switchValidation, messages[switchValidation]));\n            }\n        };\n        _this.limit = function (offset, drag, wrapper) {\n            var wrapperWidth = wrapper.offsetWidth;\n            var margin = drag.offsetWidth;\n            if (offset < 0) {\n                return 0;\n            }\n            else if (offset > wrapperWidth - margin) {\n                return wrapperWidth - margin;\n            }\n            return offset;\n        };\n        _this.toggle = function (value, event) {\n            _this.setState({ checked: value });\n            _this.valueDuringOnChange = value;\n            dispatchEvent(_this.props.onChange, event, _this, { value: value });\n            _this.valueDuringOnChange = undefined;\n        };\n        _this._element = null;\n        _this._wrapper = null;\n        _this._input = null;\n        _this._id = guid();\n        _this.defaultValidationMessage = provideLocalizationService(_this);\n        /**\n         * @hidden\n         */\n        _this.focus = function () {\n            if (_this.actionElement) {\n                _this.actionElement.focus();\n            }\n        };\n        _this.dummyInput = function (value) {\n            /* Dummy component to support forms */\n            return (React.createElement(\"input\", { type: \"checkbox\", checked: _this.props.checked, ref: function (el) {\n                    _this._input = el;\n                }, tabIndex: -1, \"aria-hidden\": true, value: value, style: { opacity: 0, width: 1, border: 0, zIndex: -1, position: 'absolute', left: '50%' }, onChange: noop, name: _this.name || undefined }));\n        };\n        _this.handleClick = function (event) {\n            if (_this.eventTimeStamp === event.timeStamp) {\n                // This is guard against the case when wrapped in label, click event is emmited twice\n                return;\n            }\n            _this.eventTimeStamp = event.timeStamp;\n            _this.toggle(!_this.value, event);\n        };\n        _this.handleKeyDown = function (event) {\n            if (_this.props.disabled) {\n                return;\n            }\n            var keyCode = event.keyCode;\n            if (keyCode === Keys.space || keyCode === Keys.enter) {\n                _this.toggle(!_this.value, event);\n                event.preventDefault();\n            }\n        };\n        _this.handleWrapperFocus = function (event) {\n            if (_this.props.disabled) {\n                return;\n            }\n            _this.setState({ focused: true });\n            var onFocus = _this.props.onFocus;\n            if (onFocus) {\n                onFocus.call(undefined, event);\n            }\n        };\n        _this.handleWrapperBlur = function (event) {\n            if (_this.props.disabled) {\n                return;\n            }\n            _this.setState({ focused: false });\n            var onBlur = _this.props.onBlur;\n            if (onBlur) {\n                onBlur.call(undefined, event);\n            }\n        };\n        validatePackage(packageMetadata);\n        _this.state = {\n            checked: props.defaultChecked || SwitchWithoutContext.defaultProps.defaultChecked,\n            focused: false\n        };\n        return _this;\n    }\n    Object.defineProperty(SwitchWithoutContext.prototype, \"value\", {\n        /**\n         * Gets the value of the Switch.\n         */\n        get: function () {\n            return this.valueDuringOnChange !== undefined\n                ? this.valueDuringOnChange\n                : this.props.checked !== undefined\n                    ? this.props.checked\n                    : this.state.checked;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(SwitchWithoutContext.prototype, \"element\", {\n        get: function () {\n            return this._element;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(SwitchWithoutContext.prototype, \"actionElement\", {\n        get: function () {\n            return this._wrapper;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(SwitchWithoutContext.prototype, \"name\", {\n        /**\n         * Gets the `name` property of the Switch.\n         */\n        get: function () {\n            return this.props.name;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(SwitchWithoutContext.prototype, \"validity\", {\n        /**\n         * Represents the validity state into which the Switch is set.\n         */\n        get: function () {\n            var customError = this.props.validationMessage !== undefined;\n            var isValid = this.props.valid !== undefined ?\n                this.props.valid :\n                !this.props.required ?\n                    true :\n                    this.value ? true : false;\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(SwitchWithoutContext.prototype, \"validityStyles\", {\n        /**\n         * @hidden\n         */\n        get: function () {\n            return this.props.validityStyles !== undefined\n                ? this.props.validityStyles\n                : SwitchWithoutContext.defaultProps.validityStyles;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(SwitchWithoutContext.prototype, \"required\", {\n        /**\n         * @hidden\n         */\n        get: function () {\n            return this.props.required !== undefined\n                ? this.props.required\n                : SwitchWithoutContext.defaultProps.required;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * @hidden\n     */\n    SwitchWithoutContext.prototype.componentDidMount = function () {\n        this.setValidity();\n        // Due to dynamic dir calculation\n        this.forceUpdate();\n    };\n    /**\n     * @hidden\n     */\n    SwitchWithoutContext.prototype.componentDidUpdate = function () {\n        this.setValidity();\n    };\n    /**\n     * @hidden\n     */\n    SwitchWithoutContext.prototype.render = function () {\n        var _a, _b, _c;\n        var _this = this;\n        var focused = this.state.focused;\n        var _d = this.props, dir = _d.dir, disabled = _d.disabled, trackRounded = _d.trackRounded, thumbRounded = _d.thumbRounded, size = _d.size, offLabel = _d.offLabel, onLabel = _d.onLabel, tabIndex = _d.tabIndex;\n        this.dir = dir || (this.element && getComputedStyle(this.element).direction) || undefined;\n        var isValid = !this.validityStyles || this.validity.valid;\n        var switchClassName = classNames('k-switch', (_a = {},\n            _a[\"k-switch-\".concat(kendoThemeMaps.sizeMap[size] || size)] = size,\n            _a[\"k-rounded-\".concat(kendoThemeMaps.roundedMap[trackRounded] || trackRounded)] = trackRounded,\n            _a['k-switch-on'] = this.value,\n            _a['k-switch-off'] = !this.value,\n            _a['k-focus'] = focused,\n            _a['k-disabled'] = disabled,\n            _a['k-invalid'] = !isValid,\n            _a), this.props.className);\n        var ariaAttributes = {\n            'aria-checked': this.value,\n            'aria-disabled': disabled || undefined,\n            'aria-labelledby': this.props.ariaLabelledBy,\n            'aria-describedby': this.props.ariaDescribedBy,\n            'aria-label': this.props.ariaLabel\n        };\n        return (React.createElement(\"span\", __assign({ ref: function (span) {\n                _this._wrapper = span;\n            }, role: 'switch' }, ariaAttributes, { className: switchClassName, dir: this.dir, onKeyDown: this.handleKeyDown, onClick: this.handleClick, onBlur: this.handleWrapperBlur, onFocus: this.handleWrapperFocus, tabIndex: getTabIndex(tabIndex, disabled, undefined), accessKey: this.props.accessKey, id: this.props.id || this._id }),\n            React.createElement(\"span\", { className: classNames('k-switch-track', (_b = {}, _b[\"k-rounded-\".concat(kendoThemeMaps.roundedMap[trackRounded] || trackRounded)] = trackRounded, _b)), ref: function (span) {\n                    _this._element = span;\n                } },\n                this.dummyInput(this.value),\n                React.createElement(\"span\", { className: 'k-switch-label-on' }, onLabel),\n                React.createElement(\"span\", { className: 'k-switch-label-off' }, offLabel)),\n            React.createElement(\"span\", { className: 'k-switch-thumb-wrap' },\n                React.createElement(\"span\", { className: classNames('k-switch-thumb', (_c = {}, _c[\"k-rounded-\".concat(thumbRounded)] = thumbRounded, _c)) }))));\n    };\n    SwitchWithoutContext.displayName = 'Switch';\n    /**\n     * @hidden\n     */\n    SwitchWithoutContext.propTypes = {\n        accessKey: PropTypes.string,\n        checked: PropTypes.bool,\n        className: PropTypes.string,\n        disabled: PropTypes.bool,\n        defaultChecked: PropTypes.bool,\n        size: PropTypes.oneOf([null, 'small', 'medium', 'large']),\n        trackRounded: PropTypes.oneOf([null, 'small', 'medium', 'large', 'full']),\n        thumbRounded: PropTypes.oneOf([null, 'small', 'medium', 'large', 'full']),\n        dir: PropTypes.string,\n        id: PropTypes.string,\n        ariaLabelledBy: PropTypes.string,\n        ariaDescribedBy: PropTypes.string,\n        offLabel: PropTypes.string,\n        required: PropTypes.bool,\n        tabIndex: PropTypes.number,\n        valid: PropTypes.bool,\n        validate: PropTypes.bool,\n        validationMessage: PropTypes.string,\n        onBlur: PropTypes.any,\n        onChange: PropTypes.any,\n        onFocus: PropTypes.any,\n        onLabel: PropTypes.string\n    };\n    /**\n     * @hidden\n     */\n    SwitchWithoutContext.defaultProps = {\n        disabled: false,\n        defaultChecked: false,\n        size: 'medium',\n        trackRounded: 'full',\n        thumbRounded: 'full',\n        offLabel: 'OFF',\n        onBlur: noop,\n        onFocus: noop,\n        onLabel: 'ON',\n        required: false,\n        validityStyles: true\n    };\n    return SwitchWithoutContext;\n}(React.Component));\nexport { SwitchWithoutContext };\n/**\n * Represents the PropsContext of the `Switch` component.\n * Used for global configuration of all `Switch` instances.\n *\n * For more information, refer to the [Inputs Props Context]({% slug props-context_inputs %}) article.\n */\nexport var SwitchPropsContext = createPropsContext();\n/* eslint-disable @typescript-eslint/no-redeclare -- intentionally naming the component the same as the type */\n/**\n * Represents the [KendoReact Switch component]({% slug overview_switch %}).\n *\n * Accepts properties of type [SwitchProps]({% slug api_inputs_switchprops %}).\n * Obtaining the `ref` returns an object of type [SwitchHandle]({% slug api_inputs_switchhandle %}).\n */\nexport var Switch = withPropsContext(SwitchPropsContext, SwitchWithoutContext);\nSwitch.displayName = 'KendoReactSwitch';\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 <Checkbox />;\n *     }\n * }\n * ReactDOM.render(<App />, 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 __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, dispatchEvent, getTabIndex, createPropsContext, usePropsContext, kendoThemeMaps } from '@progress/kendo-react-common';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * Represents the PropsContext of the `RadioButton` component.\n * Used for global configuration of all `RadioButton` instances.\n *\n * For more information, refer to the [Inputs Props Context]({% slug props-context_inputs %}) article.\n */\nexport var RadioButtonPropsContext = createPropsContext();\n/**\n * Represents the [KendoReact RadioButton component]({% slug overview_radiobutton %}).\n *\n * Accepts properties of type [RadioButtonProps]({% slug api_inputs_radiobuttonprops %}).\n * Obtaining the `ref` returns an object of type [RadioButtonHandle]({% slug api_inputs_radiobuttonhandle %}).\n */\nexport var RadioButton = React.forwardRef(function (directProps, target) {\n    var _a;\n    validatePackage(packageMetadata);\n    var props = usePropsContext(RadioButtonPropsContext, directProps);\n    var ariaDescribedBy = props.ariaDescribedBy, checked = props.checked, children = props.children, className = props.className, disabled = props.disabled, id = props.id, size = props.size, label = props.label, labelPlacement = props.labelPlacement, name = props.name, style = props.style, tabIndex = props.tabIndex, value = props.value, valid = props.valid, onChange = props.onChange, onFocus = props.onFocus, onBlur = props.onBlur, others = __rest(props, [\"ariaDescribedBy\", \"checked\", \"children\", \"className\", \"disabled\", \"id\", \"size\", \"label\", \"labelPlacement\", \"name\", \"style\", \"tabIndex\", \"value\", \"valid\", \"onChange\", \"onFocus\", \"onBlur\"]);\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(target, getImperativeHandle);\n    var calculatedId = React.useMemo(function () { return guid(); }, []);\n    var handleChange = React.useCallback(function (event) {\n        dispatchEvent(onChange, event, getImperativeHandle(), { value: value });\n    }, [onChange, value, disabled]);\n    var handleFocus = React.useCallback(function (event) {\n        if (onFocus && !disabled) {\n            dispatchEvent(onFocus, event, getImperativeHandle(), undefined);\n        }\n    }, [onFocus, disabled]);\n    var handleBlur = React.useCallback(function (event) {\n        if (onBlur && !disabled) {\n            dispatchEvent(onBlur, event, getImperativeHandle(), undefined);\n        }\n    }, [onBlur, disabled]);\n    var inputProps = __assign({ type: 'radio', id: id || calculatedId, name: name, className: classNames('k-radio', (_a = {},\n            _a[\"k-radio-\".concat(kendoThemeMaps.sizeMap[size] || size)] = size,\n            _a['k-invalid'] = valid === false,\n            _a), className), ref: elementRef, disabled: disabled, tabIndex: getTabIndex(tabIndex, disabled), checked: checked, style: style, 'aria-describedby': ariaDescribedBy, value: value, onChange: handleChange, onFocus: handleFocus, onBlur: handleBlur }, others);\n    var radioButtonLabel = (React.createElement(React.Fragment, null, label !== undefined ? (React.createElement(\"label\", { className: 'k-radio-label', htmlFor: id || calculatedId, style: { userSelect: 'none' }, \"aria-label\": label }, label)) : null));\n    var radio = React.createElement(\"input\", __assign({}, inputProps));\n    return (labelPlacement === 'before'\n        ? (React.createElement(React.Fragment, null,\n            radioButtonLabel,\n            radio,\n            children)) : (React.createElement(React.Fragment, null,\n        radio,\n        radioButtonLabel,\n        children)));\n});\nRadioButton.propTypes = {\n    ariaDescribedBy: PropTypes.string,\n    checked: PropTypes.bool,\n    className: PropTypes.string,\n    disabled: PropTypes.bool,\n    id: PropTypes.string,\n    size: PropTypes.oneOf([null, 'small', 'medium', 'large']),\n    label: PropTypes.string,\n    labelPlacement: PropTypes.string,\n    name: PropTypes.string,\n    style: PropTypes.object,\n    tabIndex: PropTypes.number,\n    value: PropTypes.any,\n    valid: PropTypes.bool,\n    onChange: PropTypes.func,\n    onFocus: PropTypes.func,\n    onBlur: PropTypes.func\n};\nvar defaultProps = {\n    size: 'medium'\n};\nRadioButton.displayName = 'KendoRadioButton';\nRadioButton.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 { RadioButton } from './RadioButton';\nimport { useRtl, guid, classNames, focusFirstFocusableChild, dispatchEvent, createPropsContext, usePropsContext } from '@progress/kendo-react-common';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * Represents the PropsContext of the `RadioGroup` component.\n * Used for global configuration of all `RadioGroup` instances.\n *\n * For more information, refer to the [Inputs Props Context]({% slug props-context_inputs %}) article.\n */\nexport var RadioGroupPropsContext = createPropsContext();\n/**\n * Represents the [KendoReact RadioGroup component]({% slug overview_radiogroup %}).\n *\n * Accepts properties of type [RadioGroupProps]({% slug api_inputs_radiogroupprops %}).\n * Obtaining the `ref` returns an object of type [RadioGroupHandle]({% slug api_inputs_radiogrouphandle %}).\n */\nexport var RadioGroup = React.forwardRef(function (directProps, target) {\n    validatePackage(packageMetadata);\n    var props = usePropsContext(RadioGroupPropsContext, directProps);\n    var ariaLabelledBy = props.ariaLabelledBy, ariaDescribedBy = props.ariaDescribedBy, className = props.className, data = props.data, defaultValue = props.defaultValue, disabled = props.disabled, name = props.name, labelPlacement = props.labelPlacement, layout = props.layout, style = props.style, value = props.value, valid = props.valid, _a = props.item, Item = _a === void 0 ? defaultProps.item : _a, onChange = props.onChange, onFocus = props.onFocus;\n    var elementRef = React.useRef(null);\n    var focusElement = React.useCallback(function () {\n        if (elementRef.current) {\n            focusFirstFocusableChild(elementRef.current);\n        }\n    }, []);\n    var getImperativeHandle = React.useCallback(function () { return ({\n        element: elementRef.current,\n        focus: focusElement\n    }); }, [focusElement]);\n    React.useImperativeHandle(target, getImperativeHandle);\n    var _b = React.useState(defaultValue), stateChecked = _b[0], setStateChecked = _b[1];\n    var isControlled = value !== undefined;\n    var checkedRadioValue = isControlled ? value : stateChecked;\n    var handleChange = React.useCallback(function (event) {\n        var currentValue = event.value;\n        if (!isControlled && !disabled) {\n            setStateChecked(currentValue);\n        }\n        if (onChange && !disabled) {\n            dispatchEvent(onChange, event.syntheticEvent, getImperativeHandle(), { value: currentValue });\n        }\n    }, [setStateChecked, onChange, disabled]);\n    var handleFocus = React.useCallback(function (event) {\n        if (onFocus && !disabled) {\n            dispatchEvent(onFocus, event.syntheticEvent, getImperativeHandle(), undefined);\n        }\n    }, [onFocus, disabled]);\n    var radioGroupName = React.useMemo(function () { return guid(); }, []);\n    var radioGroupClasses = classNames('k-radio-list', {\n        'k-list-horizontal': layout === 'horizontal',\n        'k-list-vertical': layout === 'vertical' || layout === undefined\n    }, className);\n    var dir = useRtl(elementRef, props.dir);\n    var radioOptions = (data && data.map(function (option, index) {\n        var isCurrentlyChecked = checkedRadioValue === option.value;\n        var noOptionChecked = checkedRadioValue === null || checkedRadioValue === undefined;\n        var radioButtonProps = __assign(__assign({}, option), { valid: valid, checked: isCurrentlyChecked, disabled: (option.disabled || disabled) ? true : false, labelPlacement: option.labelPlacement ? option.labelPlacement : labelPlacement, tabIndex: option.tabIndex\n                ? option.tabIndex\n                : (noOptionChecked && index === 0) || isCurrentlyChecked\n                    ? 0\n                    : -1, index: index, name: name || radioGroupName, onChange: handleChange, onFocus: handleFocus });\n        return (React.createElement(Item, { className: classNames('k-radio-item', { 'k-disabled': radioButtonProps.disabled || disabled }), key: index, role: 'none' },\n            React.createElement(RadioButton, __assign({}, radioButtonProps))));\n    }));\n    return (React.createElement(\"ul\", { role: \"radiogroup\", className: radioGroupClasses, ref: elementRef, dir: dir, style: style, \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy }, radioOptions));\n});\nvar defaultProps = {\n    item: function (props) { return React.createElement(\"li\", __assign({}, props)); }\n};\nRadioGroup.propTypes = {\n    ariaLabelledBy: PropTypes.string,\n    ariaDescribedBy: PropTypes.string,\n    className: PropTypes.string,\n    data: PropTypes.arrayOf(PropTypes.object),\n    defaultValue: PropTypes.any,\n    dir: PropTypes.string,\n    disabled: PropTypes.bool,\n    labelPlacement: PropTypes.string,\n    layout: PropTypes.string,\n    name: PropTypes.string,\n    style: PropTypes.object,\n    value: PropTypes.any,\n    onChange: PropTypes.func,\n    onFocus: PropTypes.func\n};\nRadioGroup.defaultProps = defaultProps;\nRadioGroup.displayName = 'KendoRadioGroup';\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 { guid, classNames, getTabIndex, dispatchEvent, useDir, createPropsContext, usePropsContext, kendoThemeMaps } from '@progress/kendo-react-common';\n/**\n * Represents the PropsContext of the `TextArea` component.\n * Used for global configuration of all `TextArea` instances.\n *\n * For more information, refer to the [Inputs Props Context]({% slug props-context_inputs %}) article.\n */\nexport var TextAreaPropsContext = createPropsContext();\n/**\n * Represents the [KendoReact TextArea component]({% slug overview_textarea %}).\n *\n *\n * Accepts properties of type [TextAreaProps]({% slug api_inputs_textareaprops %}).\n * Obtaining the `ref` returns an object of type [TextAreaHandle]({% slug api_inputs_textareahandle %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n *     render() {\n *         return <TextArea />;\n *     }\n * }\n * ReactDOM.render(<App />, document.querySelector('my-app'));\n * ```\n */\nexport var TextArea = React.forwardRef(function (directProps, target) {\n    var _a;\n    var props = usePropsContext(TextAreaPropsContext, directProps);\n    var _b = props, size = _b.size, rounded = _b.rounded, fillMode = _b.fillMode, ariaDescribedBy = _b.ariaDescribedBy, ariaLabelledBy = _b.ariaLabelledBy, autoSize = _b.autoSize, className = _b.className, defaultValue = _b.defaultValue, disabled = _b.disabled, readOnly = _b.readOnly, required = _b.required, rows = _b.rows, id = _b.id, name = _b.name, placeholder = _b.placeholder, style = _b.style, tabIndex = _b.tabIndex, value = _b.value, valid = _b.valid, validationMessage = _b.validationMessage, validityStyles = _b.validityStyles, onChange = _b.onChange, onFocus = _b.onFocus, onBlur = _b.onBlur, \n    // Removed to support direct use in Form Field component\n    visited = _b.visited, touched = _b.touched, modified = _b.modified, others = __rest(_b, [\"size\", \"rounded\", \"fillMode\", \"ariaDescribedBy\", \"ariaLabelledBy\", \"autoSize\", \"className\", \"defaultValue\", \"disabled\", \"readOnly\", \"required\", \"rows\", \"id\", \"name\", \"placeholder\", \"style\", \"tabIndex\", \"value\", \"valid\", \"validationMessage\", \"validityStyles\", \"onChange\", \"onFocus\", \"onBlur\", \"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 _c = React.useState(defaultValue), stateValue = _c[0], setStateValue = _c[1];\n    var isControlled = value !== undefined;\n    var currentValue = isControlled ? value : stateValue;\n    var getImperativeHandle = React.useCallback(function () {\n        return ({\n            element: elementRef,\n            focus: focusElement,\n            get value() { return currentValue; },\n            get name() { return elementRef.current && elementRef.current.name; }\n        });\n    }, [focusElement, currentValue]);\n    React.useImperativeHandle(target, getImperativeHandle);\n    var _d = React.useState('auto'), textAreaHeight = _d[0], setTextAreaHeight = _d[1];\n    var calculatedId = React.useMemo(function () { return guid(); }, []);\n    var dir = useDir(elementRef, props.dir);\n    var isValid = valid !== undefined ?\n        valid :\n        !required ?\n            true :\n            currentValue ? true : false;\n    React.useEffect(function () {\n        if (elementRef.current && elementRef.current.setCustomValidity) {\n            elementRef.current.setCustomValidity(isValid\n                ? ''\n                : (validationMessage || ''));\n        }\n    }, [isValid, validationMessage]);\n    React.useLayoutEffect(function () {\n        if (elementRef.current) {\n            setTextAreaHeight(\"\".concat(elementRef.current.scrollHeight, \"px\"));\n        }\n    }, [currentValue]);\n    var handleChange = React.useCallback(function (event) {\n        var newValue = event.target.value;\n        setTextAreaHeight('auto');\n        if (!isControlled && !disabled) {\n            setStateValue(newValue);\n        }\n        if (onChange && !disabled) {\n            dispatchEvent(onChange, event, __assign(__assign({}, getImperativeHandle()), { value: newValue }), { value: newValue });\n        }\n    }, [setStateValue, onChange, disabled, isControlled]);\n    var handleFocus = React.useCallback(function (event) {\n        if (onFocus && !disabled) {\n            dispatchEvent(onFocus, event, getImperativeHandle(), undefined);\n        }\n    }, [onFocus, disabled]);\n    var handleBlur = React.useCallback(function (event) {\n        if (onBlur && !disabled) {\n            dispatchEvent(onBlur, event, getImperativeHandle(), undefined);\n        }\n    }, [onBlur, disabled]);\n    var textAreaProps = __assign(__assign({ id: id || calculatedId, role: 'textbox', name: name, className: 'k-input-inner !k-overflow-auto', ref: elementRef, disabled: disabled, rows: rows, placeholder: placeholder, readOnly: readOnly, required: required, tabIndex: getTabIndex(tabIndex, disabled), style: autoSize ? { resize: 'none', overflow: 'hidden', height: textAreaHeight } : {}, 'aria-labelledby': ariaLabelledBy, 'aria-describedby': ariaDescribedBy, 'aria-multiline': true, 'aria-disabled': disabled || undefined, value: isControlled ? value : stateValue }, others), { onChange: handleChange, onFocus: handleFocus, onBlur: handleBlur });\n    return (React.createElement(\"span\", { className: classNames('k-input', 'k-textarea', (_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['k-invalid'] = !(isValid || validityStyles !== undefined || validityStyles === true),\n            _a['k-required'] = required,\n            _a['k-disabled'] = disabled,\n            _a), className), style: style, dir: dir },\n        React.createElement(\"textarea\", __assign({}, textAreaProps))));\n});\nTextArea.propTypes = {\n    ariaDescribedBy: PropTypes.string,\n    ariaLabelledBy: PropTypes.string,\n    autoSize: PropTypes.bool,\n    className: PropTypes.string,\n    defaultValue: PropTypes.string,\n    dir: PropTypes.string,\n    disabled: PropTypes.bool,\n    readOnly: PropTypes.bool,\n    rows: PropTypes.number,\n    id: PropTypes.string,\n    name: PropTypes.string,\n    placeholder: PropTypes.string,\n    style: PropTypes.object,\n    tabIndex: PropTypes.number,\n    value: PropTypes.oneOfType([\n        PropTypes.string,\n        PropTypes.arrayOf(PropTypes.string),\n        PropTypes.number\n    ]),\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};\nvar defaultProps = {\n    size: 'medium',\n    rounded: 'medium',\n    fillMode: 'solid'\n};\nTextArea.displayName = 'KendoTextArea';\nTextArea.defaultProps = defaultProps;\n","import * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, useDir } from '@progress/kendo-react-common';\n/**\n * Represents the RatingItem component.\n */\nexport var RatingItem = React.forwardRef(function (props, ref) {\n    var target = React.useRef(null);\n    var element = React.useRef(null);\n    var dir = useDir(element, props.dir);\n    React.useImperativeHandle(target, function () { return ({\n        element: element.current,\n        props: props,\n        value: props.value\n    }); });\n    React.useImperativeHandle(ref, function () { return target.current; });\n    var handleClick = React.useCallback(function (event) {\n        if (props.onClick) {\n            props.onClick.call(undefined, {\n                value: props.value,\n                target: target.current,\n                syntheticEvent: event\n            });\n        }\n    }, [props.onClick, props.value]);\n    var handleKeyDown = React.useCallback(function (event) {\n        if (props.onKeyDown) {\n            props.onKeyDown.call(undefined, {\n                target: target.current,\n                syntheticEvent: event\n            });\n        }\n    }, [props.onKeyDown]);\n    var handleFocus = React.useCallback(function (event) {\n        if (props.onFocus) {\n            props.onFocus.call(undefined, {\n                target: target.current,\n                syntheticEvent: event\n            });\n        }\n    }, [props.onFocus]);\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 handleMouseMove = React.useCallback(function (event) {\n        if (props.onMouseMove) {\n            props.onMouseMove.call(undefined, {\n                target: target.current,\n                syntheticEvent: event\n            });\n        }\n    }, [props.onMouseMove]);\n    var handleMouseEnter = React.useCallback(function (event) {\n        if (props.onMouseEnter) {\n            props.onMouseEnter.call(undefined, {\n                target: target.current,\n                syntheticEvent: event\n            });\n        }\n    }, [props.onMouseEnter]);\n    var handleMouseLeave = React.useCallback(function (event) {\n        if (props.onMouseLeave) {\n            props.onMouseLeave.call(undefined, {\n                target: target.current,\n                syntheticEvent: event\n            });\n        }\n    }, [props.onMouseLeave]);\n    return (React.createElement(\"span\", { id: props.id, ref: element, dir: dir, \"data-half\": props.half, tabIndex: props.tabIndex, title: props.title, style: props.style, className: classNames('k-rating-item', {\n            'k-rtl': dir === 'rtl',\n            'k-selected': props.selected,\n            'k-hover': props.hovered\n        }, props.className), onClick: handleClick, onKeyDown: handleKeyDown, onFocus: handleFocus, onBlur: handleBlur, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onMouseMove: handleMouseMove }, props.children));\n});\nvar propTypes = {\n    id: PropTypes.string,\n    icon: PropTypes.any,\n    dir: PropTypes.oneOf(['ltr', 'rtl']),\n    title: PropTypes.string,\n    value: PropTypes.number,\n    half: PropTypes.bool,\n    selected: PropTypes.bool,\n    hovered: PropTypes.bool\n};\nvar defaultProps = {\n    dir: 'ltr'\n};\nRatingItem.displayName = 'KendoReactRatingItem';\n// TODO: delete casting when @types/react is updated!\nRatingItem.propTypes = propTypes;\nRatingItem.defaultProps = defaultProps;\n","/**\n * @hidden\n */\nexport var toRound = function (num, base) {\n    if (num % 1) {\n        var percent = Math.pow(10, (base.toString().split('.')[1] || base.toString().split('.')[0]).length);\n        return Math.round(num * percent) / percent;\n    }\n    return num;\n};\n// Opting out of JS `modulo` calculation due to floating-point problems in JS\n// We're looking for the reminder - R.\n// x / y = a + R\n// R = (x / y) - a | *y\n// R = x - (y * a)\n// : a = Math.floor(x /y );\n/**\n * @hidden\n */\nexport var getRemainder = function (x, y) { return x - (y * Math.floor(x / y)); };\n/**\n * @hidden\n */\nexport var isHalf = function (index, value, step) {\n    return (toRound(index - step, step) < value) && (value < index);\n};\n/**\n * @hidden\n */\nexport var isSelected = function (index, value, step, selection) {\n    if (value === null) {\n        return false;\n    }\n    if (selection === 'continues') {\n        return isHalf(index, value, step)\n            ? toRound(index - step / 2, step / 2) <= value\n            : index <= value;\n    }\n    if (selection === 'single') {\n        return isHalf(index, value, step)\n            ? toRound(index - step / 2, step / 2) === value\n            : index === value;\n    }\n    return false;\n};\n/**\n * @hidden\n */\nexport var calcIsFirstHalf = function (dir, rect, clientX) {\n    return dir === 'ltr'\n        ? clientX < (rect.x + (rect.width / 2))\n        : clientX > (rect.x + (rect.width / 2));\n};\n/**\n * @hidden\n */\nexport var isCorrectValue = function (min, max, step, value) {\n    for (var i = min; i <= max; i += step) {\n        if (value === i) {\n            return true;\n        }\n    }\n    return false;\n};\n","import { toRound } from './utils';\n/**\n * @hidden\n */\nexport var RATING_ACTION;\n(function (RATING_ACTION) {\n    RATING_ACTION[\"select\"] = \"select\";\n    RATING_ACTION[\"deselect\"] = \"deselect\";\n    RATING_ACTION[\"increase\"] = \"increase\";\n    RATING_ACTION[\"decrease\"] = \"decrease\";\n    RATING_ACTION[\"min\"] = \"min\";\n    RATING_ACTION[\"max\"] = \"max\";\n    RATING_ACTION[\"reset\"] = \"reset\";\n})(RATING_ACTION || (RATING_ACTION = {}));\n/**\n * @hidden\n */\nexport var ratingReducer = function (state, action) {\n    switch (action.type) {\n        case RATING_ACTION.select:\n            if (action.payload === undefined || action.step === undefined) {\n                return state;\n            }\n            if (action.payload === state) {\n                return null;\n            }\n            return action.payload >= action.min\n                ? action.payload < action.max\n                    ? toRound(action.payload, action.step)\n                    : action.max\n                : action.min;\n        case RATING_ACTION.deselect:\n            return null;\n        case RATING_ACTION.increase:\n            if (action.step === undefined) {\n                return state;\n            }\n            if (state < action.min) {\n                return action.min;\n            }\n            return state + action.step < action.max\n                ? toRound(state + action.step, action.step)\n                : action.max;\n        case RATING_ACTION.decrease:\n            if (action.step === undefined) {\n                return state;\n            }\n            return toRound(state - action.step, action.step) >= action.min\n                ? toRound(state - action.step, action.step)\n                : action.min;\n        case RATING_ACTION.min:\n            if (action.step === undefined) {\n                return state;\n            }\n            return action.min;\n        case RATING_ACTION.max:\n            return action.max;\n        case RATING_ACTION.reset:\n            return null;\n        default:\n            return state;\n    }\n};\n","/* eslint-disable */\n/**\n * @hidden\n */\nexport var ResultType;\n(function (ResultType) {\n    ResultType[ResultType[\"Literal\"] = 0] = \"Literal\";\n    ResultType[ResultType[\"Mask\"] = 1] = \"Mask\";\n    // eslint-disable-next-line id-denylist\n    ResultType[ResultType[\"Undefined\"] = 2] = \"Undefined\";\n})(ResultType || (ResultType = {}));\n/**\n * @hidden\n */\nvar Result = /** @class */ (function () {\n    function Result(value, rest, type) {\n        if (type === void 0) { type = ResultType.Undefined; }\n        this.value = value;\n        this.rest = rest;\n        this.type = type;\n    }\n    //map :: Functor f => f a ~> (a -> b) -> f b\n    Result.prototype.map = function (fn) {\n        return new Result(fn(this.value), this.rest);\n    };\n    //chain :: Chain m => m a ~> (a -> m b) -> m b\n    Result.prototype.chain = function (fn) {\n        return fn(this.value, this.rest);\n    };\n    Result.prototype.fold = function (s, _ /*we don't need it*/) {\n        return s(this.value, this.rest);\n    };\n    Result.prototype.concat = function (r) {\n        return this.map(function (vs, _) { return r.chain(function (v, __) { return vs.concat([v]); }); });\n    };\n    Result.prototype.toString = function () {\n        return \"Result({ value: '\" + this.value + \"', rest: \" + this.rest + \" })\";\n    };\n    return Result;\n}());\nexport { Result };\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 { classNames, useDir, Keys, getTabIndex, createPropsContext, usePropsContext, IconWrap, toIconName, svgIconPropType } from '@progress/kendo-react-common';\nimport { starIcon, starOutlineIcon } from '@progress/kendo-svg-icons';\nimport { RatingItem } from './RatingItem';\nimport { ratingReducer, RATING_ACTION } from './rating-reducer';\nimport { isSelected, isHalf, calcIsFirstHalf, isCorrectValue, toRound, getRemainder } from './utils';\nimport { messages, ratingAriaLabel } from '../messages';\nimport { useLocalization } from '@progress/kendo-react-intl';\n/**\n * @hidden\n */\nvar useRating = function (defaultValue, args, callback) {\n    var _a = React.useState(defaultValue), state = _a[0], setState = _a[1];\n    var handleDispatchAction = function (action) {\n        var newState = ratingReducer(args.state || state, __assign(__assign({}, action), args));\n        if (callback) {\n            callback(newState, action.event);\n        }\n        setState(newState);\n    };\n    return [state, handleDispatchAction];\n};\n/**\n * Represents the PropsContext of the `Rating` component.\n * Used for global configuration of all `Rating` instances.\n *\n * For more information, refer to the [Inputs Props Context]({% slug props-context_inputs %}) article.\n */\nexport var RatingPropsContext = createPropsContext();\n/**\n * Represents the [KendoReact Rating component]({% slug overview_rating %}).\n *\n * Accepts properties of type [RatingProps]({% slug api_inputs_ratingprops %}).\n * Obtaining the `ref` returns an object of type [RatingHandle]({% slug api_inputs_ratinghandle %}).\n */\nexport var Rating = React.forwardRef(function (directProps, ref) {\n    var props = usePropsContext(RatingPropsContext, directProps);\n    var localization = useLocalization();\n    var target = React.useRef(null);\n    var ratingRef = React.useRef(null);\n    var dir = useDir(ratingRef, props.dir);\n    React.useImperativeHandle(target, function () { return ({\n        element: ratingRef.current,\n        props: props\n    }); });\n    React.useImperativeHandle(ref, function () { return target.current; });\n    var handleChange = React.useCallback(function (newValue, event) {\n        if (props.onChange && target.current) {\n            props.onChange.call(undefined, {\n                value: newValue,\n                target: target.current,\n                syntheticEvent: event\n            });\n        }\n    }, [props.onChange]);\n    var min = React.useMemo(function () { return props.min !== undefined ? props.min : defaultProps.min; }, [props.min]);\n    var max = React.useMemo(function () { return props.max !== undefined ? props.max : defaultProps.max; }, [props.max]);\n    var precision = React.useMemo(function () { return props.precision || defaultProps.precision; }, [props.precision]);\n    var step = React.useMemo(function () { return props.step !== undefined ? props.step : defaultProps.step; }, [props.step]);\n    var readonly = React.useMemo(function () { return props.readonly || defaultProps.readonly; }, [props.readonly]);\n    var disabled = React.useMemo(function () { return props.disabled || defaultProps.disabled; }, [props.disabled]);\n    var Item = React.useMemo(function () { return props.item || defaultProps.item; }, [props.item]);\n    var _a = useRating(props.defaultValue !== undefined ? props.defaultValue : defaultProps.defaultValue, {\n        state: props.value,\n        min: min,\n        max: max,\n        step: precision === 'half' ? step / 2 : step\n    }, handleChange), stateValue = _a[0], dispatchStateValue = _a[1];\n    var _b = useRating(null, {\n        state: props.value,\n        min: min,\n        max: max,\n        step: precision === 'half' ? step / 2 : step,\n        precision: precision\n    }), stateHover = _b[0], dispatchStateHover = _b[1];\n    var value = React.useMemo(function () { return props.value !== undefined ? props.value : stateValue; }, [props.value, stateValue]);\n    var hoveredValue = React.useMemo(function () { return stateHover; }, [stateHover]);\n    var selection = React.useMemo(function () { return props.selection || defaultProps.selection; }, [props.selection]);\n    var base = React.useMemo(function () { return step / (precision === 'half' ? 2 : 1); }, [step, precision]);\n    var handleItemClick = React.useCallback(function (event) {\n        if (!event.target || !event.target.element || readonly || disabled) {\n            return;\n        }\n        if (precision === 'half') {\n            var rect = event.target.element.getBoundingClientRect();\n            var isFirstHalf = calcIsFirstHalf(dir ? dir : 'ltr', rect, event.syntheticEvent.clientX);\n            var payload = isFirstHalf ? toRound(event.target.value - (step / 2), base) : event.target.value;\n            dispatchStateValue({ type: RATING_ACTION.select, payload: payload, event: event.syntheticEvent });\n        }\n        else {\n            dispatchStateValue({ type: RATING_ACTION.select, payload: event.target.value, event: event.syntheticEvent });\n        }\n        if (props.onClick) {\n            var ev = {\n                value: value,\n                target: target.current,\n                syntheticEvent: event.syntheticEvent\n            };\n            props.onClick.call(undefined, ev);\n        }\n    }, [props.onClick, dispatchStateValue, value]);\n    var handleKeyDown = React.useCallback(function (syntheticEvent) {\n        if (readonly || disabled) {\n            return;\n        }\n        switch (syntheticEvent.keyCode) {\n            case Keys.right:\n                syntheticEvent.preventDefault();\n                dispatchStateValue({\n                    type: dir === 'rtl' ? RATING_ACTION.decrease : RATING_ACTION.increase, event: syntheticEvent\n                });\n                break;\n            case Keys.left:\n                syntheticEvent.preventDefault();\n                dispatchStateValue({\n                    type: dir === 'rtl' ? RATING_ACTION.increase : RATING_ACTION.decrease, event: syntheticEvent\n                });\n                break;\n            case Keys.home:\n                syntheticEvent.preventDefault();\n                dispatchStateValue({\n                    type: dir === 'rtl' ? RATING_ACTION.min : RATING_ACTION.max, event: syntheticEvent\n                });\n                break;\n            case Keys.end:\n                syntheticEvent.preventDefault();\n                dispatchStateValue({\n                    type: dir === 'rtl' ? RATING_ACTION.max : RATING_ACTION.min, event: syntheticEvent\n                });\n                break;\n            case Keys.esc:\n                syntheticEvent.preventDefault();\n                dispatchStateValue({\n                    type: RATING_ACTION.deselect, event: syntheticEvent\n                });\n                break;\n            default:\n                break;\n        }\n        if (props.onKeyDown) {\n            props.onKeyDown.call(undefined, {\n                value: value,\n                target: target.current,\n                syntheticEvent: syntheticEvent\n            });\n        }\n    }, [props.onKeyDown, dispatchStateValue, value]);\n    var handleFocus = React.useCallback(function (syntheticEvent) {\n        if (props.onFocus) {\n            var ev = {\n                target: target.current,\n                syntheticEvent: syntheticEvent\n            };\n            props.onFocus.call(undefined, ev);\n        }\n    }, [props.onFocus]);\n    var handleBlur = React.useCallback(function (syntheticEvent) {\n        if (props.onBlur) {\n            var ev = {\n                target: target.current,\n                syntheticEvent: syntheticEvent\n            };\n            props.onBlur.call(undefined, ev);\n        }\n    }, [props.onBlur]);\n    var handleItemMouseMove = React.useCallback(function (event) {\n        if (!event.target || !event.target.element) {\n            return;\n        }\n        if (precision === 'half') {\n            var rect = event.target.element.getBoundingClientRect();\n            var isFirstHalf = calcIsFirstHalf(dir ? dir : 'ltr', rect, event.syntheticEvent.clientX);\n            var payload = isFirstHalf ? event.target.value - (step / 2) : event.target.value;\n            dispatchStateHover({ type: RATING_ACTION.select, payload: payload, event: event.syntheticEvent });\n        }\n        else {\n            dispatchStateHover({ type: RATING_ACTION.select, payload: event.target.value, event: event.syntheticEvent });\n        }\n    }, [precision, step, dir]);\n    var handleMouseLeave = React.useCallback(function (event) {\n        dispatchStateHover({ type: RATING_ACTION.reset, event: event.syntheticEvent });\n    }, []);\n    var items = [];\n    var remainder = getRemainder(toRound(max - min, base), step);\n    for (var i = min; i <= max; i = toRound(i + step, base)) {\n        var itemValue = toRound(i + remainder, base);\n        var half = precision === 'half'\n            ? isHalf(itemValue, hoveredValue !== null ? hoveredValue : (value !== null ? value : 0), step)\n            : false;\n        var selectedValue = isSelected(itemValue, value, step, selection);\n        var selected = isSelected(itemValue, hoveredValue !== null ? hoveredValue : value, step, selection);\n        var hovered = isSelected(itemValue, hoveredValue, step, selection);\n        items.push(React.createElement(Item, { key: itemValue, value: itemValue, dir: dir, title: String(half ? toRound(itemValue - (step / 2), base) : itemValue), icon: props.icon, svgIcon: props.svgIcon, half: half, selected: selectedValue || selected, hovered: hovered, onClick: handleItemClick, onMouseMove: handleItemMouseMove, onMouseLeave: handleMouseLeave },\n            half && (React.createElement(\"span\", { className: 'k-rating-precision-complement' },\n                !(props.icon || props.svgIconOutline) &&\n                    React.createElement(IconWrap, { name: 'star-outline', icon: starOutlineIcon, style: { clipPath: \"\".concat(dir === 'rtl' ? 'inset(0 50% 0 0)' : 'inset(0 0 0 50%)') }, size: 'xlarge' }),\n                (props.icon || props.svgIconOutline) &&\n                    React.createElement(IconWrap, { name: toIconName(\"\".concat(props.icon, \"-outline\")), icon: props.svgIconOutline, size: 'xlarge' }))),\n            half && (React.createElement(\"span\", { className: 'k-rating-precision-part' },\n                !(props.icon || props.svgIcon) &&\n                    React.createElement(IconWrap, { name: 'star', icon: starIcon, style: { clipPath: \"\".concat(dir === 'rtl' ? 'inset(0 0 0 50%)' : 'inset(0 50% 0 0)') }, size: 'xlarge' }),\n                (props.icon || props.svgIcon) &&\n                    React.createElement(IconWrap, { name: props.icon ? toIconName(props.icon) : undefined, icon: props.svgIcon, size: 'xlarge' }))),\n            half && (React.createElement(\"span\", { style: { width: '24px', height: '24px', display: 'block' } })),\n            !half &&\n                (!(props.icon || props.svgIcon) && (hovered || (selected && !hovered)) && React.createElement(IconWrap, { name: 'star', icon: starIcon, size: 'xlarge' })) ||\n                (!(props.icon || props.svgIcon) && !hovered && !selected && React.createElement(IconWrap, { name: 'star-outline', icon: starOutlineIcon, size: 'xlarge' })) ||\n                ((props.icon || props.svgIcon) && (hovered || (selected && !hovered)) && React.createElement(IconWrap, { name: props.icon, icon: props.svgIcon, size: 'xlarge' })) ||\n                ((props.icon || props.svgIcon) && !hovered && React.createElement(IconWrap, { name: toIconName(\"\".concat(props.icon, \"-outline\")), icon: props.svgIconOutline, size: 'xlarge' }))));\n    }\n    return (React.createElement(\"span\", { id: props.id, style: props.style, ref: ratingRef, role: \"slider\", dir: dir, tabIndex: getTabIndex(props.tabIndex, props.disabled, undefined), className: classNames('k-rating', {\n            'k-rtl': dir === 'rtl',\n            'k-readonly': readonly,\n            'k-disabled': disabled\n        }, props.className), onKeyDown: handleKeyDown, onFocus: handleFocus, onBlur: handleBlur, \"aria-valuemin\": min, \"aria-valuemax\": max, \"aria-valuenow\": value !== null ? value : undefined, \"aria-disabled\": disabled ? 'true' : undefined, \"aria-label\": localization.toLanguageString(ratingAriaLabel, messages[ratingAriaLabel]), \"aria-labelledby\": props.ariaLabelledBy, \"aria-describedby\": props.ariaDescribedBy },\n        React.createElement(\"input\", { id: 'rating', className: 'k-hidden', readOnly: readonly, disabled: disabled }),\n        React.createElement(\"span\", { className: 'k-rating-container' }, items),\n        props.label &&\n            React.createElement(\"span\", { className: 'k-rating-label' }, props.label)));\n});\nvar propTypes = {\n    id: PropTypes.string,\n    dir: PropTypes.oneOf(['ltr', 'rtl']),\n    selection: PropTypes.oneOf(['continues', 'single']),\n    precision: PropTypes.oneOf(['item', 'half']),\n    value: function (props, propName, componentName) {\n        if (props.value && props.min && props.max && props.step) {\n            var correctValue = props.precision === 'half'\n                ? isCorrectValue(props.min, props.max, props.step / 2, props.value)\n                : isCorrectValue(props.min, props.max, props.step, props.value);\n            if (!correctValue && props.precision === 'half') {\n                return new Error(\"Invalid prop + \".concat(propName, \" supplied to \").concat(componentName, \".\\n                    The value of the { value } property is not correct, please check your values.\\n                    \"));\n            }\n        }\n        return null;\n    },\n    defaultValue: PropTypes.number,\n    min: PropTypes.number,\n    max: PropTypes.number,\n    step: function (props, propName, componentName) {\n        if (props.step !== undefined && props.step <= 0) {\n            return new Error(\"Invalid prop + \".concat(propName, \" supplied to \").concat(componentName, \".\\n                The value of the { step } property is cannot be equal or less than \\\"0\\\", please check your values.\\n                \"));\n        }\n        return null;\n    },\n    hovered: PropTypes.number,\n    label: PropTypes.string,\n    readonly: PropTypes.bool,\n    disabled: PropTypes.bool,\n    half: PropTypes.bool,\n    icon: PropTypes.string,\n    svgIcon: svgIconPropType,\n    svgIconOutline: svgIconPropType,\n    ariaDescribedBy: PropTypes.string\n};\nvar defaultProps = {\n    dir: 'ltr',\n    min: 1,\n    max: 5,\n    step: 1,\n    item: RatingItem,\n    defaultValue: null,\n    readonly: false,\n    disabled: false,\n    selection: 'continues',\n    precision: 'item'\n};\nRating.displayName = 'KendoReactRating';\n// TODO: delete casting when @types/react is updated!\nRating.propTypes = propTypes;\nRating.defaultProps = defaultProps;\n","/* eslint-disable */\n/**\n * @hidden\n */\nvar Stream = /** @class */ (function () {\n    function Stream(input, control) {\n        if (input === void 0) { input = []; }\n        if (control === void 0) { control = []; }\n        this.input = input;\n        this.control = control;\n        this.inputCursor = 0;\n        this.controlCursor = 0;\n    }\n    Stream.prototype.eof = function () {\n        return this.inputCursor >= this.input.length;\n    };\n    // Get the first value from the input.\n    Stream.prototype.next = function () {\n        return {\n            char: this.input[this.inputCursor++],\n            control: this.control[this.controlCursor++]\n        };\n    };\n    Stream.prototype.peek = function () {\n        return {\n            char: this.input[this.inputCursor],\n            control: this.control[this.controlCursor]\n        };\n    };\n    Stream.prototype.eat_input = function () {\n        this.inputCursor++;\n    };\n    Stream.prototype.eat_control = function () {\n        this.controlCursor++;\n    };\n    Stream.prototype.eat = function () {\n        this.inputCursor++;\n        this.controlCursor++;\n    };\n    return Stream;\n}());\nexport { Stream };\n","/* eslint-disable */\nimport { Result, ResultType } from './result';\nimport { Stream } from './stream';\nvar toArray = function (value) { return (value || '').split(''); };\nvar ESCAPE_CHARACTER = '\\\\';\n/**\n * @hidden\n */\nvar Parser = /** @class */ (function () {\n    function Parser(parse) {\n        this.parse = parse;\n    }\n    Parser.prototype.run = function (input, control) {\n        if (control === void 0) { control = ''; }\n        if (input instanceof Stream) {\n            return this.parse(input);\n        }\n        else {\n            return this.parse(new Stream(toArray(input), toArray(control)));\n        }\n    };\n    //map :: Functor f => f a ~> (a -> b) -> f b\n    Parser.prototype.map = function (f) {\n        var _this = this;\n        return new Parser(function (stream) { return _this.parse(stream).map(f); });\n    };\n    //chain :: Chain m => m a ~> (a -> m b) -> m b\n    Parser.prototype.chain = function (f) {\n        var _this = this;\n        return new Parser(function (stream) { return _this.parse(stream).chain(function (v, s) { return f(v).run(s); }); });\n    };\n    Parser.prototype.isLiteral = function (c) {\n        return this.run(c).type === ResultType.Literal;\n    };\n    return Parser;\n}());\nexport { Parser };\n/**\n * @hidden\n */\nexport var mask = function (_a) {\n    var prompt = _a.prompt, promptPlaceholder = _a.promptPlaceholder;\n    return function (rule) { return new Parser(function (stream) {\n        while (!stream.eof()) {\n            var _a = stream.peek(), char = _a.char, control = _a.control;\n            if (char === control && control === prompt) {\n                stream.eat();\n                return new Result(prompt, stream, ResultType.Mask);\n            }\n            if (rule.test(char)) {\n                stream.eat();\n                return new Result(char, stream, ResultType.Mask);\n            }\n            if (char === promptPlaceholder) {\n                stream.eat();\n                return new Result(prompt, stream, ResultType.Mask);\n            }\n            stream.eat_input();\n        }\n        stream.eat();\n        return new Result(prompt, stream, ResultType.Mask);\n    }); };\n};\n/**\n * @hidden\n */\nexport var literal = function (_token) { return new Parser(function (stream) {\n    //    let {char, control} = stream.peek();\n    var char = stream.peek().char;\n    if (char === _token) {\n        stream.eat();\n        return new Result(_token, stream, ResultType.Literal);\n    }\n    //    if (control === _token) {\n    //        while (!stream.eof() && char !== _token) {\n    //            stream.eat_input();\n    //            char = stream.peek().char;\n    //        }\n    //    }\n    //\n    //    if (control !== undefined) {\n    //        stream.eat();\n    //    }\n    return new Result(_token, stream, ResultType.Literal);\n}); };\n/**\n * @hidden\n */\nexport var unmask = function (prompt) { return function (rule) { return new Parser(function (stream) {\n    while (!stream.eof()) {\n        var _a = stream.peek(), char = _a.char, control = _a.control;\n        if (char === prompt && control === prompt) {\n            stream.eat();\n            return new Result(char, stream);\n        }\n        if (rule.test(char)) {\n            stream.eat();\n            return new Result(char, stream);\n        }\n        stream.eat_input();\n    }\n    stream.eat();\n    return new Result('', stream);\n}); }; };\n/**\n * @hidden\n */\nexport var unliteral = function (_token) { return new Parser(function (stream) {\n    if (stream.eof()) {\n        return new Result('', stream);\n    }\n    var char = stream.peek().char;\n    if (char === _token) {\n        stream.eat();\n    }\n    return new Result(_token, stream);\n}); };\n/**\n * @hidden\n */\nexport var token = function (rules, creator) { return new Parser(function (stream) {\n    var char = stream.next().char;\n    var rule = rules[char];\n    if (char === ESCAPE_CHARACTER) {\n        char = stream.next().char;\n        return new Result(creator.literal(char), stream);\n    }\n    if (!rule) {\n        return new Result(creator.literal(char), stream);\n    }\n    return new Result(creator.mask(rule), stream);\n}); };\n/**\n * @hidden\n */\nexport var rawMask = function (_a) {\n    var prompt = _a.prompt, promptPlaceholder = _a.promptPlaceholder;\n    return new Parser(function (stream) {\n        var char = stream.next().char;\n        if (char === prompt) {\n            return new Result(promptPlaceholder, stream);\n        }\n        return new Result(char, stream);\n    });\n};\n/**\n * @hidden\n */\nexport var rawLiteral = function (includeLiterals) { return new Parser(function (stream) {\n    var char = stream.next().char;\n    if (includeLiterals) {\n        return new Result(char, stream);\n    }\n    return new Result('', stream);\n}); };\n","/* eslint-disable */\nimport { Parser } from './parsers';\nimport { Result } from './result';\n/**\n * @hidden\n */\nvar always = function (value) { return new Parser(function (stream) { return new Result(value, stream); }); };\n/**\n * @hidden\n */\nvar append = function (p1, p2) { return p1.chain(function (vs) { return p2.map(function (v) { return vs.concat([v]); }); }); };\n/**\n * @hidden\n */\nexport var sequence = function (list) { return list.reduce(function (acc, parser) { return append(acc, parser); }, always([])); };\n/**\n * @hidden\n */\nexport var greedy = function (parser) { return new Parser(function (stream) {\n    var result = new Result([], stream);\n    while (!stream.eof()) {\n        result = result.concat(parser.run(stream));\n    }\n    return result;\n}); };\n","import { drawing } from '@progress/kendo-drawing';\nvar _a = drawing.util, elementOffset = _a.elementOffset, limitValue = _a.limitValue;\nexport { elementOffset, limitValue };\n","/* eslint-disable */\nimport { greedy, sequence } from './parsing/combinators';\nimport { literal, mask as maskParser, rawLiteral, rawMask, token, unliteral, unmask } from './parsing/parsers';\n/**\n * @hidden\n */\nvar MaskingService = /** @class */ (function () {\n    function MaskingService() {\n        this.rules = {};\n        this.prompt = '_';\n        this.mask = '';\n        this.promptPlaceholder = ' ';\n        this.includeLiterals = false;\n        this.maskTokens = [];\n        this.unmaskTokens = [];\n        this.rawTokens = [];\n        this.validationTokens = [];\n    }\n    MaskingService.prototype.update = function (_a) {\n        var _b = _a.mask, mask = _b === void 0 ? '' : _b, _c = _a.prompt, prompt = _c === void 0 ? '' : _c, _d = _a.promptPlaceholder, promptPlaceholder = _d === void 0 ? ' ' : _d, _e = _a.rules, rules = _e === void 0 ? {} : _e, _f = _a.includeLiterals, includeLiterals = _f === void 0 ? false : _f;\n        this.mask = mask;\n        this.prompt = prompt;\n        this.promptPlaceholder = promptPlaceholder;\n        this.rules = rules;\n        this.includeLiterals = includeLiterals;\n        this.tokenize();\n    };\n    MaskingService.prototype.validationValue = function (maskedValue) {\n        if (maskedValue === void 0) { maskedValue = ''; }\n        var value = maskedValue;\n        sequence(this.validationTokens)\n            .run(maskedValue)\n            .fold(function (unmasked) {\n            value = unmasked.join('');\n        });\n        return value;\n    };\n    MaskingService.prototype.rawValue = function (maskedValue) {\n        if (maskedValue === void 0) { maskedValue = ''; }\n        var value = maskedValue;\n        if (!this.rawTokens.length) {\n            return value;\n        }\n        sequence(this.rawTokens)\n            .run(maskedValue)\n            .fold(function (unmasked) {\n            value = unmasked.join('');\n        });\n        return value;\n    };\n    /**\n     * @hidden\n     */\n    MaskingService.prototype.maskRaw = function (rawValue) {\n        if (rawValue === void 0) { rawValue = ''; }\n        var value = rawValue;\n        if (!this.maskTokens.length) {\n            return value;\n        }\n        sequence(this.maskTokens)\n            .run(rawValue)\n            .fold(function (masked) {\n            value = masked.join('');\n        });\n        return value;\n    };\n    MaskingService.prototype.maskInput = function (input, control, splitPoint) {\n        if (input.length < control.length) {\n            return this.maskRemoved(input, control, splitPoint);\n        }\n        return this.maskInserted(input, control, splitPoint);\n    };\n    MaskingService.prototype.maskInRange = function (pasted, oldValue, start, end) {\n        var value = '';\n        var selection = end;\n        var beforeChange = oldValue.split('').slice(0, start);\n        var afterChange = oldValue.split('').slice(end);\n        sequence(this.maskTokens.slice(start, end))\n            .run(pasted)\n            .fold(function (masked) {\n            value = beforeChange\n                .concat(masked)\n                .concat(afterChange)\n                .join('');\n        });\n        return {\n            selection: selection,\n            value: value\n        };\n    };\n    MaskingService.prototype.maskRemoved = function (input, control, splitPoint) {\n        var _this = this;\n        var value = '';\n        var selection = splitPoint;\n        var unchanged = input.split('').slice(splitPoint);\n        var changed = input.split('').slice(0, splitPoint).join('');\n        var take = this.maskTokens.length - (input.length - splitPoint);\n        sequence(this.maskTokens.slice(0, take))\n            .run(changed, control)\n            .fold(function (masked) {\n            selection = _this.adjustPosition(masked, selection);\n            value = masked.concat(unchanged).join('');\n        });\n        return {\n            selection: selection,\n            value: value\n        };\n    };\n    MaskingService.prototype.adjustPosition = function (input, selection) {\n        var caretChar = input[selection];\n        var isLiteral = this.maskTokens[selection].isLiteral(caretChar);\n        if (!isLiteral && caretChar !== this.prompt) {\n            return selection + 1;\n        }\n        return selection;\n    };\n    MaskingService.prototype.maskInserted = function (input, control, splitPoint) {\n        var _this = this;\n        var value = '';\n        var selection = splitPoint;\n        var changed = input.slice(0, splitPoint);\n        sequence(this.unmaskTokens)\n            .run(changed, control)\n            .chain(function (unmasked) {\n            selection = unmasked.join('').length;\n            var unchanged = control.slice(selection);\n            return sequence(_this.maskTokens)\n                .run(unmasked.join('') + unchanged, control);\n        })\n            .fold(function (masked) {\n            value = masked.join('');\n        });\n        return {\n            selection: selection,\n            value: value\n        };\n    };\n    Object.defineProperty(MaskingService.prototype, \"maskTokenCreator\", {\n        get: function () {\n            var _a = this, prompt = _a.prompt, promptPlaceholder = _a.promptPlaceholder;\n            return {\n                literal: function (rule) { return literal(rule); },\n                mask: function (rule) { return maskParser({ prompt: prompt, promptPlaceholder: promptPlaceholder })(rule); }\n            };\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(MaskingService.prototype, \"unmaskTokenCreator\", {\n        get: function () {\n            var _this = this;\n            return {\n                literal: function (rule) { return unliteral(rule); },\n                mask: function (rule) { return unmask(_this.prompt)(rule); }\n            };\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(MaskingService.prototype, \"rawTokenCreator\", {\n        get: function () {\n            var _a = this, prompt = _a.prompt, promptPlaceholder = _a.promptPlaceholder, includeLiterals = _a.includeLiterals;\n            return {\n                literal: function (_) { return rawLiteral(includeLiterals); },\n                mask: function (_) { return rawMask({ prompt: prompt, promptPlaceholder: promptPlaceholder }); }\n            };\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(MaskingService.prototype, \"validationTokenCreator\", {\n        get: function () {\n            var prompt = this.prompt;\n            return {\n                literal: function (_) { return rawLiteral(false); },\n                mask: function (_) { return rawMask({ prompt: prompt, promptPlaceholder: '' }); }\n            };\n        },\n        enumerable: false,\n        configurable: true\n    });\n    MaskingService.prototype.tokenize = function () {\n        var _this = this;\n        greedy(token(this.rules, this.maskTokenCreator))\n            .run(this.mask)\n            .fold(function (tokens, _) {\n            _this.maskTokens = tokens;\n        });\n        greedy(token(this.rules, this.unmaskTokenCreator))\n            .run(this.mask)\n            .fold(function (tokens, _) {\n            _this.unmaskTokens = tokens;\n        });\n        greedy(token(this.rules, this.rawTokenCreator))\n            .run(this.mask)\n            .fold(function (tokens, _) {\n            _this.rawTokens = tokens;\n        });\n        greedy(token(this.rules, this.validationTokenCreator))\n            .run(this.mask)\n            .fold(function (tokens, _) {\n            _this.validationTokens = tokens;\n        });\n    };\n    return MaskingService;\n}());\nexport { MaskingService };\n","import { exportImage, geometry, Group, MultiPath, Path, Image, Surface, } from '@progress/kendo-drawing';\nimport { elementOffset, limitValue } from '../common';\nvar Point = geometry.Point, Rect = geometry.Rect, transform = geometry.transform;\nvar noop = function () { };\nvar DECIMAL_DIGITS = 3;\nvar DEFAULT_COLOR = '#000';\nvar DEFAULT_BACKGROUND_COLOR = '#fff';\nvar DEFAULT_PRECISION = 1;\nvar DEFAULT_SAMPLING_RATE = 200; // Updates per second\nvar DEFAULT_STROKE_WIDTH = 1;\nvar DEFAULT_WIDTH = 750;\nvar DEFAULT_HEIGHT = 250;\nvar DEFAULT_SCALE = 1;\n// Export images at maximized scale (3x) and 2x pixel density to cover HiDPI screens.\nvar DEFAULT_EXPORT_SCALE = 6;\nvar SignaturePad = /** @class */ (function () {\n    function SignaturePad(element, options) {\n        if (options === void 0) { options = {}; }\n        this.element = element;\n        this.lastMoveTime = 0;\n        this.options = Object.assign({\n            scale: DEFAULT_SCALE,\n            precision: DEFAULT_PRECISION,\n            samplingRate: DEFAULT_SAMPLING_RATE,\n            smooth: options.smooth !== false,\n            color: options.color || DEFAULT_COLOR,\n            backgroundColor: options.backgroundColor || DEFAULT_BACKGROUND_COLOR,\n            strokeWidth: DEFAULT_STROKE_WIDTH,\n            onChange: noop,\n            onDraw: noop,\n            onDrawEnd: noop\n        }, options);\n        this.pathOptions = {\n            stroke: {\n                color: this.options.color,\n                width: this.options.strokeWidth,\n                lineCap: 'round',\n                lineJoin: 'round'\n            }\n        };\n        this.initSurface();\n        this.attachEvents();\n    }\n    SignaturePad.prototype.destroy = function () {\n        this.detachEvents();\n    };\n    SignaturePad.prototype.clear = function () {\n        this.rootGroup.clear();\n        this.path = null;\n    };\n    Object.defineProperty(SignaturePad.prototype, \"isDrawing\", {\n        get: function () {\n            return Boolean(this.points);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(SignaturePad.prototype, \"pathData\", {\n        get: function () {\n            var _a;\n            return (_a = this.path) === null || _a === void 0 ? void 0 : _a.toString(DECIMAL_DIGITS);\n        },\n        set: function (value) {\n            this.clear();\n            this.path = MultiPath.parse(value, this.pathOptions);\n            this.rootGroup.append(this.path);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    SignaturePad.prototype.loadImage = function (data, size) {\n        if (size === void 0) { size = []; }\n        if (!data) {\n            this.clear();\n            return;\n        }\n        var _a = this.size, width = _a[0], height = _a[1];\n        var contentWidth = width / this.options.scale;\n        var contentHeight = height / this.options.scale;\n        var importWidth = size[0] || contentWidth * DEFAULT_EXPORT_SCALE;\n        var importHeight = size[1] || contentHeight * DEFAULT_EXPORT_SCALE;\n        var scaleX = contentWidth / importWidth;\n        var scaleY = contentHeight / importHeight;\n        var scale = Math.min(scaleX, scaleY);\n        var img = new Image(data, new geometry.Rect([0, 0], [importWidth, importHeight]));\n        img.transform(transform().scale(scale, scale));\n        this.clear();\n        this.rootGroup.append(img);\n    };\n    SignaturePad.prototype.exportImage = function (options) {\n        var _a;\n        var _b = this.size, width = _b[0], height = _b[1];\n        var contentWidth = width / this.options.scale;\n        var contentHeight = height / this.options.scale;\n        var exportWidth = (options === null || options === void 0 ? void 0 : options.width) || contentWidth * DEFAULT_EXPORT_SCALE;\n        var exportHeight = (options === null || options === void 0 ? void 0 : options.height) || contentHeight * DEFAULT_EXPORT_SCALE;\n        var scaleX = exportWidth / contentWidth;\n        var scaleY = exportHeight / contentHeight;\n        var scale = Math.min(scaleX, scaleY);\n        var exportRect = new Rect([0, 0], [exportWidth, exportHeight]);\n        var exportGroup = new Group({\n            clip: Path.fromRect(exportRect)\n        });\n        var contentGroup = new Group({\n            transform: transform().scale(scale, scale)\n        });\n        var frame = Path.fromRect(exportRect, {\n            fill: {\n                color: this.options.backgroundColor\n            }\n        });\n        exportGroup.append(frame);\n        exportGroup.append(contentGroup);\n        (_a = contentGroup.children).push.apply(_a, this.rootGroup.children);\n        return exportImage(exportGroup, Object.assign({\n            width: exportWidth,\n            height: exportHeight\n        }, options));\n    };\n    SignaturePad.prototype.resize = function () {\n        this.surface.resize(true);\n    };\n    SignaturePad.prototype.setOptions = function (options) {\n        Object.assign(this.options, options);\n        this.pathOptions.stroke.color = this.options.color;\n        this.pathOptions.stroke.width = this.options.strokeWidth;\n        if (this.path) {\n            this.path.options.set('stroke.color', this.options.color);\n            this.path.options.set('stroke.width', this.options.strokeWidth);\n        }\n        this.background.options.set('fill.color', this.options.backgroundColor);\n    };\n    SignaturePad.prototype.initSurface = function () {\n        this.surface = Surface.create(this.element, { type: 'canvas' });\n        this.element.style.touchAction = 'none';\n        var scale = this.options.scale;\n        this.rootGroup = new Group({\n            transform: transform().scale(scale, scale)\n        });\n        // The signature is not resizable, store initial dimensions.\n        var width = this.element.offsetWidth || DEFAULT_WIDTH;\n        var height = this.element.offsetHeight || DEFAULT_HEIGHT;\n        this.size = [width, height];\n        this.background = Path.fromRect(new Rect([0, 0], this.size), {\n            fill: {\n                color: this.options.backgroundColor\n            }\n        });\n        this.surface.draw(this.background);\n        this.surface.draw(this.rootGroup);\n    };\n    SignaturePad.prototype.attachEvents = function () {\n        this.onPointerDown = this.onPointerDown.bind(this);\n        this.onPointerMove = this.onPointerMove.bind(this);\n        this.onPointerUp = this.onPointerUp.bind(this);\n        this.element.addEventListener('pointerdown', this.onPointerDown);\n        this.element.addEventListener('pointermove', this.onPointerMove);\n        this.element.addEventListener('pointerup', this.onPointerUp);\n    };\n    SignaturePad.prototype.detachEvents = function () {\n        this.element.removeEventListener('pointerdown', this.onPointerDown);\n        this.element.removeEventListener('pointermove', this.onPointerMove);\n        this.element.removeEventListener('pointerup', this.onPointerUp);\n    };\n    SignaturePad.prototype.touchPoint = function (e) {\n        var offset = elementOffset(this.element);\n        var pageX = e.pageX;\n        var pageY = e.pageY;\n        var scale = 1 / this.options.scale;\n        return new Point(pageX - offset.left, pageY - offset.top).scale(scale, scale);\n    };\n    SignaturePad.prototype.onPointerDown = function (e) {\n        if (this.options.readonly || !e.isPrimary || !isMainButton(e)) {\n            return;\n        }\n        if (!this.path) {\n            this.path = new MultiPath(this.pathOptions);\n            this.rootGroup.append(this.path);\n        }\n        this.options.onDraw();\n        this.element.setPointerCapture(e.pointerId);\n        var point = this.touchPoint(e);\n        this.points = [point];\n        this.path.moveTo(point);\n    };\n    SignaturePad.prototype.onPointerMove = function (e) {\n        if (!this.points || !e.isPrimary) {\n            return;\n        }\n        var now = (new Date()).getTime();\n        var elapsed = now - this.lastMoveTime;\n        var minTimeDelta = 1000 / limitValue(this.options.samplingRate, 1, 10000);\n        if (elapsed < minTimeDelta) {\n            return;\n        }\n        else {\n            this.lastMoveTime = now;\n        }\n        var point = this.touchPoint(e);\n        var lastPoint = this.points[this.points.length - 1];\n        var minDelta = 1 / limitValue(this.options.precision, 0.01, 100);\n        if (point.distanceTo(lastPoint) < minDelta) {\n            return;\n        }\n        this.points.push(point);\n        this.path.lineTo(point);\n    };\n    SignaturePad.prototype.onPointerUp = function (e) {\n        if (!e.isPrimary || !this.path || !this.points || this.options.readonly) {\n            return;\n        }\n        if (this.options.smooth) {\n            var segments = Path.curveFromPoints(this.points);\n            this.path.paths.splice(this.path.paths.length - 1, 1, segments);\n        }\n        this.points = null;\n        this.options.onDrawEnd();\n        this.options.onChange(this.pathData);\n    };\n    return SignaturePad;\n}());\nexport { SignaturePad };\nfunction isMainButton(e) {\n    return typeof (e.button) !== 'number' || e.button === 0;\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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nvar __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 { SignaturePad } from '@progress/kendo-inputs-common';\nimport { Button } from '@progress/kendo-react-buttons';\nimport { classNames, createPropsContext, dispatchEvent, getTabIndex, kendoThemeMaps, Keys, noop, usePropsContext } from '@progress/kendo-react-common';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { Dialog } from '@progress/kendo-react-dialogs';\nimport { useLocalization } from '@progress/kendo-react-intl';\nimport * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { messages, signatureClear, signatureMaximize, signatureMinimize } from '../messages';\nimport { packageMetadata } from '../package-metadata';\nimport { hasParent } from './utils';\nimport { hyperlinkOpenIcon, xIcon } from '@progress/kendo-svg-icons';\nvar DEFAULT_WIDTH = 250;\nvar DEFAULT_HEIGHT = 84;\nvar DEFAULT_POPUP_SCALE = 3;\nvar DEFAULT_EXPORT_SCALE = 2;\nvar DEFAULT_COLOR = '#000000';\nvar DEFAULT_BACKGROUND_COLOR = '#ffffff';\n/**\n * @hidden\n */\nvar isControlled = function (prop) {\n    return prop !== undefined;\n};\n/**\n * Represents the PropsContext of the `Signature` component.\n * Used for global configuration of all `Signature` instances.\n *\n * For more information, refer to the [Inputs Props Context]({% slug props-context_inputs %}) article.\n */\nexport var SignaturePropsContext = createPropsContext();\n/**\n * Represents the [KendoReact Signature component]({% slug overview_signature %}).\n */\nexport var Signature = React.forwardRef(function (directProps, target) {\n    var _a;\n    validatePackage(packageMetadata);\n    var props = usePropsContext(SignaturePropsContext, directProps);\n    var localizationService = useLocalization();\n    var elementRef = React.useRef(null);\n    var canvasRef = React.useRef(null);\n    var dialogRef = React.useRef(null);\n    var minimizeButtonRef = React.useRef(null);\n    var maximizeButtonRef = React.useRef(null);\n    var _b = React.useState(), instance = _b[0], setInstance = _b[1];\n    var _c = React.useState(false), focused = _c[0], setFocused = _c[1];\n    var _d = React.useState(false), isDrawing = _d[0], setIsDrawing = _d[1];\n    var _e = React.useState(), stateValue = _e[0], setStateValue = _e[1];\n    var _f = React.useState(), popupValue = _f[0], setPopupValue = _f[1];\n    var isValueControlled = isControlled(props.value);\n    var value = isValueControlled ? props.value : stateValue;\n    var _g = React.useState(false), stateOpen = _g[0], setStateOpen = _g[1];\n    var isOpenControlled = isControlled(props.open);\n    var open = isOpenControlled ? props.open : stateOpen;\n    var showMaximize = !(props.maximized || isDrawing || !props.maximizable || props.disabled);\n    var showMinimize = props.maximized && !isDrawing;\n    var isEmpty = !(props.value || stateValue);\n    var showClear = !(isEmpty || isDrawing || props.readOnly || props.disabled);\n    var maximizeTitle = localizationService.toLanguageString(signatureMaximize, messages[signatureMaximize]);\n    var minimizeTitle = localizationService.toLanguageString(signatureMinimize, messages[signatureMinimize]);\n    var clearTitle = localizationService.toLanguageString(signatureClear, messages[signatureClear]);\n    var popupScale = props.popupScale || DEFAULT_POPUP_SCALE;\n    var exportScale = props.exportScale || DEFAULT_EXPORT_SCALE;\n    var onValueChange = function (nextValue) {\n        setStateValue(nextValue);\n        if (props.onChange) {\n            props.onChange({ value: nextValue });\n        }\n    };\n    var onDialogChange = function (e) {\n        instance === null || instance === void 0 ? void 0 : instance.loadImage(e.value);\n        onValueChange(e.value);\n    };\n    React.useEffect(function () {\n        if (props.value !== stateValue) {\n            setStateValue(props.value);\n            instance === null || instance === void 0 ? void 0 : instance.loadImage(props.value);\n        }\n    }, [props.value]);\n    var reset = function () {\n        instance === null || instance === void 0 ? void 0 : instance.clear();\n        onValueChange();\n    };\n    var setOpen = React.useCallback(function (nextOpen) {\n        if (!isOpenControlled) {\n            setStateOpen(nextOpen);\n        }\n    }, [isOpenControlled]);\n    var onDialogClose = function (event) {\n        var _a, _b;\n        onMinimizeClick(event);\n        (_b = (((_a = maximizeButtonRef.current) === null || _a === void 0 ? void 0 : _a.element) || canvasRef.current)) === null || _b === void 0 ? void 0 : _b.focus();\n    };\n    var colorGetter = React.useCallback(function () {\n        var defaultColor = DEFAULT_COLOR;\n        if (!props.color && typeof document !== 'undefined' && elementRef.current) {\n            defaultColor = getComputedStyle(elementRef.current).color;\n        }\n        return props.color || defaultColor;\n    }, [props.color]);\n    var backgroundColorGetter = React.useCallback(function () {\n        var defaultBackgroundColor = DEFAULT_BACKGROUND_COLOR;\n        if (!props.backgroundColor && typeof document !== 'undefined' && elementRef.current) {\n            defaultBackgroundColor = getComputedStyle(elementRef.current).backgroundColor;\n        }\n        return props.backgroundColor || defaultBackgroundColor;\n    }, [props.backgroundColor]);\n    var getOptions = function () {\n        return {\n            scale: props.maximized ? props.popupScale : 1,\n            color: colorGetter(),\n            backgroundColor: backgroundColorGetter(),\n            strokeWidth: props.strokeWidth,\n            smooth: props.smooth,\n            readonly: props.readOnly\n        };\n    };\n    var exportImage = function (exportSize) { return __awaiter(void 0, void 0, void 0, function () {\n        var width, height;\n        return __generator(this, function (_a) {\n            switch (_a.label) {\n                case 0:\n                    width = exportSize.width, height = exportSize.height;\n                    return [4 /*yield*/, (instance === null || instance === void 0 ? void 0 : instance.exportImage({\n                            width: width * exportScale,\n                            height: height * exportScale\n                        }))];\n                case 1: return [2 /*return*/, _a.sent()];\n            }\n        });\n    }); };\n    React.useEffect(function () {\n        var canvas = canvasRef.current;\n        var pad = new SignaturePad(canvas, getOptions());\n        if (value) {\n            pad.loadImage(value);\n        }\n        setInstance(pad);\n        return function () { return pad.destroy(); };\n    }, []);\n    React.useEffect(function () {\n        instance === null || instance === void 0 ? void 0 : instance.setOptions({\n            onChange: function () { return __awaiter(void 0, void 0, void 0, function () { var _a; return __generator(this, function (_b) {\n                switch (_b.label) {\n                    case 0:\n                        _a = onValueChange;\n                        return [4 /*yield*/, exportImage(elementSize())];\n                    case 1: return [2 /*return*/, _a.apply(void 0, [_b.sent()])];\n                }\n            }); }); },\n            onDraw: function () { return setIsDrawing(true); },\n            onDrawEnd: function () { return setIsDrawing(false); }\n        });\n    }, [instance]);\n    React.useLayoutEffect(function () { return instance === null || instance === void 0 ? void 0 : instance.setOptions(getOptions()); }, [props.readOnly, props.color, props.backgroundColor, props.strokeWidth, props.smooth]);\n    React.useEffect(function () {\n        var _a, _b;\n        var overlay = (_b = (_a = dialogRef.current) === null || _a === void 0 ? void 0 : _a.element) === null || _b === void 0 ? void 0 : _b.querySelector('.k-overlay');\n        if (!overlay) {\n            return;\n        }\n        var onOverlayClick = function () { return setOpen(false); };\n        overlay.addEventListener('click', onOverlayClick);\n        return function () { return overlay.removeEventListener('click', onOverlayClick); };\n    }, [open]);\n    React.useEffect(function () {\n        if (!open || typeof document === 'undefined') {\n            return;\n        }\n        var onDocumentKeydown = function (e) {\n            if (e.keyCode === Keys.esc) {\n                setOpen(false);\n            }\n        };\n        document.addEventListener('keydown', onDocumentKeydown);\n        return function () { return document.removeEventListener('keydown', onDocumentKeydown); };\n    }, [open]);\n    React.useEffect(function () {\n        var _a, _b;\n        if (!props.maximized) {\n            return;\n        }\n        (_b = (_a = minimizeButtonRef.current) === null || _a === void 0 ? void 0 : _a.element) === null || _b === void 0 ? void 0 : _b.focus();\n    }, []);\n    var focusElement = React.useCallback(function () { var _a; return (_a = canvasRef.current) === null || _a === void 0 ? void 0 : _a.focus(); }, []);\n    var valueGetter = React.useCallback(function () { return props.value; }, [props.value]);\n    var nameGetter = React.useCallback(function () { return props.name; }, [props.name]);\n    var requiredGetter = React.useCallback(function () { return props.required; }, [props.required]);\n    var validityGetter = React.useCallback(function () {\n        var customError = props.validationMessage !== undefined;\n        var currentValue = valueGetter();\n        var valueMissing = !currentValue;\n        var valid = props.valid !== undefined ?\n            props.valid :\n            (!requiredGetter() || !valueMissing);\n        return {\n            customError: customError,\n            valid: valid,\n            valueMissing: valueMissing\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        Object.defineProperty(options, 'color', { get: colorGetter });\n        Object.defineProperty(options, 'backgroundColor', { get: backgroundColorGetter });\n        return options;\n    }, [nameGetter, valueGetter, validityGetter, validityStylesGetter, requiredGetter, focusElement, propsGetter, colorGetter, backgroundColorGetter]);\n    React.useImperativeHandle(target, getImperativeHandle);\n    var onFocus = React.useCallback(function (event) {\n        if (focused || props.maximized) {\n            return;\n        }\n        setFocused(true);\n        dispatchEvent(props.onFocus, event, getImperativeHandle(), {});\n    }, [focused, props.onFocus, getImperativeHandle]);\n    var onBlur = React.useCallback(function (event) {\n        var insideWrapper = hasParent(event.relatedTarget, elementRef.current);\n        if (insideWrapper) {\n            return;\n        }\n        setFocused(false);\n        dispatchEvent(props.onBlur, event, getImperativeHandle(), {});\n    }, [focused, props.onBlur, getImperativeHandle]);\n    var onMaximizeClick = React.useCallback(function (event) { return __awaiter(void 0, void 0, void 0, function () {\n        var _a;\n        return __generator(this, function (_b) {\n            switch (_b.label) {\n                case 0:\n                    _a = setPopupValue;\n                    return [4 /*yield*/, exportImage(popupSize())];\n                case 1:\n                    _a.apply(void 0, [_b.sent()]);\n                    setOpen(true);\n                    dispatchEvent(props.onOpen, event, getImperativeHandle(), {});\n                    return [2 /*return*/];\n            }\n        });\n    }); }, [open, isOpenControlled, props.onOpen, props.value, stateValue, getImperativeHandle]);\n    var onMinimizeClick = React.useCallback(function (event) {\n        setOpen(false);\n        dispatchEvent(props.onClose, event, getImperativeHandle(), {});\n    }, [open, isOpenControlled, props.onClose, getImperativeHandle]);\n    var onClear = function () {\n        reset();\n        focusElement();\n    };\n    var elementSize = function () {\n        var _a, _b;\n        var width = props.width || ((_a = elementRef.current) === null || _a === void 0 ? void 0 : _a.offsetWidth) || DEFAULT_WIDTH;\n        var height = props.height || ((_b = elementRef.current) === null || _b === void 0 ? void 0 : _b.offsetHeight) || DEFAULT_HEIGHT;\n        return {\n            width: width,\n            height: height\n        };\n    };\n    var popupSize = function () {\n        var _a = elementSize(), width = _a.width, height = _a.height;\n        return {\n            width: width * popupScale,\n            height: height * popupScale\n        };\n    };\n    var isValid = !validityStylesGetter() || validityGetter().valid;\n    return (React.createElement(\"div\", { ref: elementRef, dir: props.dir, style: __assign({ width: props.width, height: props.height }, props.style), className: classNames('k-input', 'k-signature', (_a = {\n                'k-signature-maximized': props.maximized\n            },\n            _a[\"k-signature-\".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['k-focus'] = focused,\n            _a), props.className), onFocus: onFocus, onBlur: onBlur },\n        React.createElement(\"div\", { className: 'k-signature-canvas', ref: canvasRef, tabIndex: getTabIndex(props.tabIndex, props.disabled), role: \"img\", id: props.id, \"aria-label\": props.ariaLabel, \"aria-labelledby\": props.ariaLabelledBy, \"aria-describedby\": props.ariaDescribedBy, \"aria-disabled\": props.disabled ? 'true' : undefined }),\n        React.createElement(\"div\", { className: 'k-signature-actions k-signature-actions-top' },\n            showMaximize && (React.createElement(Button, { className: 'k-signature-action k-signature-maximize', ref: maximizeButtonRef, icon: 'hyperlink-open', svgIcon: hyperlinkOpenIcon, fillMode: 'flat', size: props.size, onClick: onMaximizeClick, \"aria-label\": maximizeTitle, title: maximizeTitle })),\n            showMinimize && (React.createElement(Button, { className: 'k-signature-action k-signature-minimize k-rotate-180', ref: minimizeButtonRef, icon: 'hyperlink-open', svgIcon: hyperlinkOpenIcon, fillMode: 'flat', size: props.size, onClick: onMinimizeClick, \"aria-label\": minimizeTitle, title: minimizeTitle }))),\n        !props.hideLine && (React.createElement(\"div\", { className: 'k-signature-line', style: { zIndex: 2, pointerEvents: 'none' } })),\n        React.createElement(\"div\", { className: 'k-signature-actions k-signature-actions-bottom' }, showClear && (React.createElement(Button, { className: 'k-signature-action k-signature-clear', icon: 'x', svgIcon: xIcon, fillMode: 'flat', size: props.size, onClick: onClear, \"aria-label\": clearTitle, title: clearTitle }))),\n        open && (React.createElement(Dialog, { ref: dialogRef },\n            React.createElement(Signature, __assign({}, props, popupSize(), { value: popupValue, maximized: true, exportScale: (1 / popupScale) * exportScale, open: false, onChange: onDialogChange, onClose: onDialogClose }))))));\n});\nSignature.propTypes = {\n    value: PropTypes.string,\n    width: PropTypes.number,\n    height: PropTypes.number,\n    tabIndex: PropTypes.number,\n    dir: PropTypes.string,\n    ariaDescribedBy: PropTypes.string,\n    ariaLabelledBy: PropTypes.string,\n    ariaLabel: PropTypes.string,\n    readOnly: PropTypes.bool,\n    disabled: PropTypes.bool,\n    validationMessage: PropTypes.string,\n    required: PropTypes.bool,\n    onChange: PropTypes.func,\n    onFocus: PropTypes.func,\n    onBlur: PropTypes.func,\n    onOpen: PropTypes.func,\n    onClose: PropTypes.func,\n    size: PropTypes.oneOf([null, 'small', 'medium', 'large']),\n    rounded: PropTypes.oneOf([null, 'small', 'medium', 'large']),\n    fillMode: PropTypes.oneOf([null, 'solid', 'flat', 'outline'])\n};\nSignature.displayName = 'KendoSignature';\nSignature.defaultProps = {\n    strokeWidth: 1,\n    smooth: false,\n    popupScale: DEFAULT_POPUP_SCALE,\n    exportScale: DEFAULT_EXPORT_SCALE,\n    maximizable: true,\n    disabled: false,\n    required: false,\n    validityStyles: true,\n    onChange: function (_) { return noop; },\n    onFocus: function (_) { return noop; },\n    onBlur: function (_) { return noop; },\n    onOpen: function (_) { return noop; },\n    onClose: function (_) { return noop; },\n    size: 'medium',\n    rounded: 'medium',\n    fillMode: 'solid'\n};\n","/**\n * @hidden\n */\nexport function hasParent(element, parent) {\n    var current = element;\n    while (current && current !== parent) {\n        current = current.parentNode;\n    }\n    return current ? true : false;\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            get element() { return element.current; },\n            get name() { return element.current && element.current.name; },\n            get value() { return valueGetter(); }\n        };\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 __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';\n/**\n * Represents the KendoReact InputClearValue component.\n */\nexport var InputClearValue = 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-clear-value', props.className) })));\n});\nInputClearValue.displayName = 'KendoReactInputClearValue';\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 { classNames } from '@progress/kendo-react-common';\n/**\n * Represents the KendoReact InputSeparator component.\n */\nexport var InputSeparator = 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-separator', props.className) })));\n});\nInputSeparator.displayName = 'KendoReactInputSeparator';\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';\n/**\n * Represents the KendoReact InputSuffix component.\n */\nexport var InputSuffix = 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-suffix', props.className) })));\n});\nInputSuffix.displayName = 'KendoReactInputSuffix';\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, IconWrap } from '@progress/kendo-react-common';\nimport * as React from 'react';\n/**\n * Represents the KendoReact InputValidationIcon component.\n */\nexport var InputValidationIcon = React.forwardRef(function (props, ref) {\n    return React.createElement(IconWrap, __assign({ ref: ref }, props, { className: classNames('k-input-validation-icon', props.className) }));\n});\nInputValidationIcon.displayName = 'KendoReactInputValidationIcon';\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 *         <FloatingLabel label={'Shirt Size:'} editorId={editorId} editorValue={ddlState}>\n *             <DropDownList\n *                 id={editorId}\n *                 value={ddlState}\n *                 data={sizes}\n *                 onChange={(e) => setDdlState(e.target.value)}\n *             />\n *         </FloatingLabel>\n *     );\n * };\n *\n * ReactDOM.render(<App />, 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","import * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\nimport { labelsOptional, messages } from './messages';\nimport { useLocalization } from '@progress/kendo-react-intl';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from './package-metadata';\n/**\n * Represents the KendoReact Label component.\n *\n * @example\n * ```jsx\n * const sizes = [\"X-Small\", \"Small\", \"Medium\", \"Large\", \"X-Large\", \"2X-Large\"];\n * const App = () => {\n *     const ddlRef = React.useRef(null);\n *     const labelId = 'ddl-sizes-label';\n *     const editorId = 'ddl-sizes';\n *\n *     return (\n *         <div>\n *             <Label id={labelId} editorId={editorId} editorRef={ddlRef}>\n *                 Shirt Size:\n *             </Label>\n *             <DropDownList\n *                 ref={ddlRef}\n *                 id={editorId}\n *                 ariaLabelledBy={labelId}\n *                 data={sizes}\n *             />\n *             <br />\n *         </div>\n *     );\n * };\n *\n * ReactDOM.render(<App />, document.querySelector('my-app'));\n * ```\n */\nexport var Label = function (props) {\n    validatePackage(packageMetadata);\n    var id = props.id, editorId = props.editorId, editorRef = props.editorRef, editorDisabled = props.editorDisabled, children = props.children, editorValid = props.editorValid, style = props.style, className = props.className, optional = props.optional;\n    var localizationService = useLocalization();\n    var localizedOptional = optional ? localizationService\n        .toLanguageString(labelsOptional, messages[labelsOptional]) : '';\n    var optionalElement = localizedOptional && (React.createElement(\"span\", { className: 'k-label-optional' }, localizedOptional));\n    var onLabelClick = React.useCallback(function (e) {\n        if (editorRef && editorRef.current && !editorDisabled) {\n            if (editorRef.current.focus) {\n                e.preventDefault();\n                editorRef.current.focus();\n            }\n            var editorActionElement = editorRef.current.actionElement;\n            if (editorActionElement) {\n                e.preventDefault();\n                editorActionElement.click();\n            }\n        }\n    }, [editorRef]);\n    var labelClassName = classNames({\n        'k-label': true,\n        'k-label-empty': !children,\n        'k-text-error': editorValid === false,\n        'k-text-disabled': editorDisabled === true\n    }, className);\n    return (React.createElement(\"label\", { id: id, htmlFor: editorId, onClick: onLabelClick, style: style, className: labelClassName },\n        children,\n        optionalElement));\n};\nLabel.propTypes = {\n    id: PropTypes.string,\n    editorId: PropTypes.string,\n    editorRef: PropTypes.oneOfType([\n        PropTypes.func,\n        PropTypes.shape({ current: PropTypes.any })\n    ]),\n    editorValid: PropTypes.bool,\n    editorDisabled: PropTypes.bool,\n    style: PropTypes.object,\n    className: PropTypes.string,\n    optional: PropTypes.bool\n};\nLabel.displayName = 'KendoReactLabel';\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","/**\n * @hidden\n */\nexport var packageMetadata = {\n    name: '@progress/kendo-react-labels',\n    productName: 'KendoReact',\n    productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n    publishDate: 1700063806,\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"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","TypeError","String","__","this","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","styles","util","ButtonGroup","_super","props","_this","_element","validatePackage","packageMetadata","render","_a","buttons","mapButtons","children","groupClasses","classNames","disabled","width","className","groupProps","style","concat","dir","role","React","ref","div","count","rtl","undefined","getComputedStyle","direction","map","child","index","renderButton","isLast","isRtl","buttonProps","keys","propTypes","PropTypes","noInnerButton","toolbarButtons","button","name","productName","productCodes","publishDate","version","licensingDocsUrl","numericIncreaseValue","numericDecreaseValue","sliderIncreaseValue","sliderDecreaseValue","sliderDragTitle","colorGradientR","colorGradientG","colorGradientB","colorGradientA","colorGradientHex","colorGradientContrastRatio","colorGradientAALevel","colorGradientAAALevel","colorGradientPass","colorGradientFail","colorGradientHueSliderLabel","colorGradientAlphaSliderLabel","colorGradientToggleInputsButton","flatColorPickerCancelBtn","flatColorPickerApplyBtn","flatColorPickerColorGradientBtn","flatColorPickerColorPaletteBtn","flatColorPickerClearBtn","checkboxValidation","checkboxOptionalText","switchValidation","colorPickerDropdownButtonAriaLabel","ratingAriaLabel","signatureClear","signatureMaximize","signatureMinimize","messages","DEFAULT_NUMBER","DIGITS_REGEX","getStateOrPropsValue","value","stateValue","formatValue","format","intlService","formatNumber","fractionLength","split","maxFractionLength","value1","value2","Math","max","toFixedPrecision","precision","maxPrecision","min","limitPrecision","parseFloat","toFixed","increaseValue","newState","step","increasedValue","rangeValue","eventValue","currentLooseValue","selectionStart","selectionEnd","getLastNumberIndex","decreaseValue","decreasedValue","rangeSelection","nextLooseValue","formatInfo","maxPosition","nextValue","formatSuffixIndex","findIndex","currSuffix","Boolean","indexOf","suffix","getMaxCursorPosition","minPosition","formatPrefixIndex","currPrefix","getMinCursorPosition","setSelection","newIndex","setInvalid","parseNumber","prevLooseValue","valueIsCorrected","getInitialPosition","symbols","decimalIdex","decimal","reverseString","str","reverse","join","inputRegex","search","getPrefix","getSuffix","reversedString","getFirstNumberIndex","getDecimalCount","currentDecimalPlace","changeBasedSelection","currentValue","selectionPosition","isDelete","sanitizeRegex","isCurrentLeadingZero","replace","isNextLeadingZero","numberCounter","idx","test","charAt","newSelection","sanitizeNumber","state","numberSymbols","restrictedSymbols","positiveResult","negativeResult","zeroResult","oneResult","RegExp","group","result","filter","x","getFormatSymbols","currentLooseValueAsString","prevLooseValueAsString","sanitizeGroupRegex","allSymbolsRegex","sanitizedString","numberStart","numberEnd","decimalIndex","sanitizedFormattedString","substring","formattedMax","maxDecimalIndex","maxDecimalCount","formattedMin","minDecimalIndex","minDecimalCount","positivePrefix","negativePrefix","zeroPrefix","onePrefix","positiveInfo","negativeInfo","zeroInfo","oneInfo","getFormatPrefixSufix","isFormatContainPrefixSuffix","info","nestedInfo","isPercentFormat","percentSign","isPaste","minusSign","valueCandidate","currentLastNumberIndex","newText","oldText","isMinusSymbolAdded","currentNumberStart","oldNumberStart","isMinusSymbolRemoved","isDecimalDuplicated","formatInfoIndex","prefix","prefixIndex","suffixIndex","prefixFound","suffixFound","prefixGap","suffixGap","currentDecimalCount","endsOnDecimal","valueUntillDecimal","looseDecimalPlace","NumericTextBoxPropsContext","createPropsContext","NumericTextBox","directProps","target","usePropsContext","calculatedId","guid","inputId","id","useInternationalization","localizationService","useLocalization","elementRef","valueDuringChangeRef","_b","forceUpdate","setForceUpdate","stateRef","focused","decimalSelect","valueIsOutOfRange","isPasteRef","prevLooseValueRef","stateValueRef","defaultValue","looseValue","current","Prefix","useCustomComponent","Suffix","setCustomValidity","validityGetter","valid","validationMessage","focusElement","focus","valueGetter","nameGetter","requiredGetter","required","customError","valueMissing","validityStylesGetter","validityStyles","propsGetter","getImperativeHandle","options","element","defineProperty","get","getCurrentState","triggerChange","event","formattedValue","rangedValue","dispatchEvent","onChange","_x","onChangeHandler","stateCandidate","onKeyDown","numericSymbols","isMinus","key","isDecimal","keyCode","rangeOnEnter","slice","preventDefault","onPasteHandler","onIncrease","readOnly","onDecrease","onWheelHandler","activeElement","getActiveElement","document","nativeEvent","deltaY","onFocus","onBlur","onMouseDown","e","type","isValid","numerictextbox","label","kendoThemeMaps","sizeMap","size","fillMode","roundedMap","rounded","tabIndex","getTabIndex","accessKey","title","ariaLabel","ariaLabelledBy","ariaDescribedBy","placeholder","spellCheck","autoComplete","autoCorrect","inputType","inputStyle","onPaste","onWheel","spinners","Button","icon","svgIcon","caretAltUpIcon","toLanguageString","onClick","caretAltDownIcon","FloatingLabel","editorId","editorValue","editorValid","editorDisabled","editorPlaceholder","currency","currencyDisplay","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","displayName","defaultProps","_","isPresent","fitIntoBounds","contender","isNaN","parseColor","safe","Error","parsedColor","parse","trim","toCss","toCssRgba","getHSV","parsed","toHSV","getRGBA","toBytes","getColorFromHSV","hsva","hue","h","saturation","v","alpha","a","Color","fromHSV","getColorFromHue","getRGBFromRGBA","foregroundColor","backgroundColor","r1","r","g1","g","b1","a1","r2","g2","b2","round","getLuminance","rgb","pow","getContrastFromTwoRGBAs","luminance1","luminance2","__rest","getOwnPropertySymbols","propertyIsEnumerable","InputWithoutContext","_input","_inputId","isInvalid","prop","setValidity","validity","classList","remove","add","handleChange","setState","valueDuringOnChange","syntheticEvent","handleAutoFill","animationName","parent_1","parentNode","contains","enumerable","configurable","badInput","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","typeMismatch","componentDidMount","componentDidUpdate","labelClassName","visited","touched","modified","inputClassName","textbox","onAnimationStart","el","validate","InputPropsContext","Input","withPropsContext","HexInput","hex","onHexChange","originalHex","getDerivedStateFromProps","modes","ColorInput","onRgbaRChange","dispatchRgbaChange","onRgbaGChange","onRgbaBChange","onRgbaAChange","inputMode","defaultInputMode","provideLocalizationService","hexMessage","rMessage","gMessage","bMessage","aMessage","toggleButtonMessage","caretAltExpandIcon","onToggleModeChange","bind","Label","rgba","opacity","newValue","onRgbaChange","nextIndex","registerForIntl","registerForLocalization","SLIDER_LABEL_ATTRIBUTE","SliderLabel","sliderLabelRef","useDir","vertical","bottom","position","tickStyle","zIndex","SliderWithoutContext","_sliderTrack","enabled","increaseSvgArrow","caretAltLeftIcon","caretAltRightIcon","decreaseSvgArrow","increaseFontArrow","decreaseFontArrow","decrementTitle","decrement","incrementTitle","increment","isLabel","currentTarget","getAttribute","parentElement","Keys","left","down","right","up","home","end","change","dragStart","originalEvent","isTouch","drag","dragOver","computed","getBoundingClientRect","percentage","clientY","clientX","height","window","lS","percentValue","trackStyles","marginTop","marginBottom","marginLeft","marginRight","sliderItemsStyle","paddingTop","gap","Draggable","onDrag","onPress","flexGrow","touchAction","margin","isRequired","SliderPropsContext","Slider","cache","ColorContrastLabels","contrastRatioMessage","AALevelMessage","AAALevelMessage","passMessage","failMessage","contrast","bgColor","requiredAAContrast","requiredAAAContrast","contrastText","aaText","aaaText","success","IconWrap","checkIcon","error","xIcon","svgPath","points","command","reduce","acc","point","line","pointA","pointB","lengthX","lengthY","sqrt","angle","atan2","ColorContrastSvg","renderSvgCurveLine","controlPointCalc","lineCalc","gradientRectMetrics","metrics","findValue","low","high","comparer","mid","currentContrast","getPaths","stepCount","reversed","push","bezierCommandCalc","previous","next","l","PI","cos","sin","cpsX","cpsY","cpeX","cpeY","shouldComponentUpdate","nextProps","xmlns","dangerouslySetInnerHTML","__html","overflow","pointerEvents","top","DEFAULT_SELECTED_COLOR","ColorGradientWithoutContext","wrapper","isUncontrolled","componentGuid","cacheHex","dispatchChangeEvent","red","green","blue","fromBytes","getColorFromRGBA","cacheRgba","onAlphaSliderChange","handleHsvaChange","onHueSliderChange","gradientWrapper","changePosition","onRelease","onGradientWrapperClick","getGradientRectMetrics","deltaX","focusFirstFocusableChild","getStateFromValue","isFirstRender","setAlphaSliderBackground","componentWillUnmount","prevState","renderRectangleDragHandle","top_1","ariaValueText","parseInt","ariaLabelHSV","cacheHsva","cachedColor","getCachedHsva","getCachedRgba","getCachedHex","alphaSlider","sliderTrack","background","ColorGradientPropsContext","ColorGradient","ColorPaletteService","colorRows","setColorMatrix","palette","columns","start","row","getCellCoordsFor","color","colors","_loop_1","_loop_2","col","some","c","this_1","state_2","state_1","getColorAt","cellCoords","getNextCell","horizontalStep","verticalStep","clampIndex","PALETTEPRESETS","basic","office","apex","austin","clarity","slipstream","metro","flow","hardcover","trek","verve","monochrome","DEFAULT_PRESET","ColorPaletteWithoutContext","paletteService","handleCellNavigation","enter","handleEnter","onColorClick","selectedColor","focusedColor","paletteInfo","getPaletteInfo","svc","selectedCellCoords","focusedCellCoords","ariaDisabled","renderRows","focusedColorCooridanates","newCoords","rgbaValue","preset","rows","renderColumns","rowIndex","rowIsSelected","selectedColumn","rowIsFocused","focusedColumn","tileSize","isSelected","minWidth","createCellId","ColorPalettePropsContext","ColorPalette","Picker","popupSettings","horizontalAlign","anchorAlign","horizontal","popupAlign","input","Popup","anchor","popupAnchor","show","open","onOpen","onClose","content","DEFAULT_PALETTE_SETTINGS","isControlled","ColorPickerPropsContext","ColorPicker","localization","_c","_d","gradientSettings","paletteSettings","view","iconClassName","onActiveColorClick","focusableElementRef","gradientRef","paletteRef","blurTimeoutRef","buttonRef","_e","setFocused","_f","setStateValue","_g","stateOpen","setStateOpen","isValueControlled","isOpenControlled","actionElement","setOpen","nextOpen","isBlur","onKeyDownHandler","altKey","esc","stopPropagation","onOpenHandler","onClickHandler","onActiveColorClickHandler","onFocusHandler","clearTimeout","onBlurTimeout","onBlurHandler","setTimeout","isPalette","onPaletteChangeHandler","svgIconPropType","ResultType","defaultColor","FlatColorPicker","flatColorPickerRef","colorGradientRef","showButtons","showPreview","showClearButton","colorGradientView","setColorGradientView","colorValue","setColorValue","prevColor","setPrevColor","handleViewChange","viewType","handleResetColor","onPreviewChange","ev","handleColorChange","handleApplyBtnClick","handleCancelBtnClick","handlePrevColorClick","handleFocus","HTMLInputElement","handleFlatColorPickerBlur","relatedTarget","header","togglable","selected","dropletSliderIcon","paletteIcon","dropletSlashIcon","Result","rest","Undefined","fn","chain","fold","vs","toString","Stream","control","inputCursor","controlCursor","eof","char","peek","eat_input","eat_control","eat","toArray","Parser","run","f","stream","isLiteral","Literal","token","rules","creator","rule","literal","mask","rawMask","args","prompt","promptPlaceholder","rawLiteral","includeLiterals","sequence","list","parser","p2","greedy","MaskingService","maskTokens","unmaskTokens","rawTokens","validationTokens","update","tokenize","validationValue","maskedValue","unmasked","rawValue","maskRaw","masked","maskInput","splitPoint","maskRemoved","maskInserted","maskInRange","pasted","oldValue","selection","beforeChange","afterChange","unchanged","changed","take","adjustPosition","caretChar","_token","Mask","maskTokenCreator","tokens","unmaskTokenCreator","rawTokenCreator","validationTokenCreator","defaultRules","returnFalse","maskingChanged","prev","sameRules","rules1","rules2","same","MaskedTextBoxWithoutContext","_service","_isPasted","_selection","pasteHandler","triggerOnChange","rightPart","to","focusHandler","blurHandler","_valueDuringOnChange","maskValidation","prevProps","prevSelection","nextSelection","setSelectionRange","updateService","_h","component","autoCapitalize","readonly","onDragStart","onDrop","extra","config","propName","componentName","entries","MaskedTextBoxPropsContext","MaskedTextBox","RANGE_ACTION","rangeReducer","action","payload","increase","decrease","RangeSliderPropsContext","RangeSlider","sliderRef","sliderSelectionRef","startHandle","endHandle","currentDrag","setCurrentDrag","callback","handleDispatchAction","useRange","dispatchStateValue","sliderTrackRef","sliderTrackWrapRef","percentStart","percentEnd","calcNewDistance","distance","calcKey","handleStartKeyDown","handleEndKeyDown","handleTrackPress","useDraggable","startTabIndex","endTabIndex","SwitchWithoutContext","defaultValidationMessage","limit","offset","wrapperWidth","offsetWidth","toggle","checked","_wrapper","_id","dummyInput","border","noop","handleClick","eventTimeStamp","timeStamp","handleKeyDown","space","handleWrapperFocus","handleWrapperBlur","defaultChecked","trackRounded","thumbRounded","offLabel","onLabel","switchClassName","ariaAttributes","span","SwitchPropsContext","Switch","CheckboxPropsContext","Checkbox","labelPlacement","labelOptional","others","stateChecked","setStateChecked","valueIsBoolean","isCheckedControlled","currentChecked","useValueAsChecked","checkedProp","valueProp","indeterminateProp","localizeMessage","message","optionalMessage","setValue","val","currentVal","handleKeyUp","handleBlur","checkboxClasses","inputProps","onKeyUp","checkboxInput","checkboxLabel","htmlFor","userSelect","RadioButtonPropsContext","RadioButton","radioButtonLabel","radio","RadioGroupPropsContext","RadioGroup","data","layout","item","Item","checkedRadioValue","radioGroupName","radioGroupClasses","useRtl","radioOptions","option","isCurrentlyChecked","noOptionChecked","radioButtonProps","TextAreaPropsContext","TextArea","autoSize","textAreaHeight","setTextAreaHeight","scrollHeight","textAreaProps","resize","RatingItem","handleMouseMove","onMouseMove","handleMouseEnter","onMouseEnter","handleMouseLeave","onMouseLeave","half","hovered","RATING_ACTION","toRound","num","base","percent","isHalf","calcIsFirstHalf","rect","isCorrectValue","ratingReducer","select","deselect","reset","useRating","RatingPropsContext","Rating","ratingRef","y","stateHover","dispatchStateHover","hoveredValue","handleItemClick","handleItemMouseMove","items","remainder","floor","itemValue","selectedValue","svgIconOutline","starOutlineIcon","clipPath","toIconName","starIcon","display","maskParser","drawing","elementOffset","limitValue","Point","geometry","Rect","transform","SignaturePad","lastMoveTime","scale","samplingRate","smooth","strokeWidth","onDraw","onDrawEnd","pathOptions","stroke","lineCap","lineJoin","initSurface","attachEvents","destroy","detachEvents","clear","rootGroup","path","set","MultiPath","append","loadImage","contentWidth","contentHeight","importWidth","importHeight","scaleX","scaleY","img","Image","exportImage","exportWidth","exportHeight","exportRect","exportGroup","Group","clip","Path","fromRect","contentGroup","frame","fill","surface","setOptions","Surface","offsetHeight","draw","onPointerDown","onPointerMove","onPointerUp","addEventListener","removeEventListener","touchPoint","pageX","pageY","isPrimary","isMainButton","setPointerCapture","pointerId","moveTo","now","Date","getTime","lastPoint","minDelta","distanceTo","lineTo","segments","curveFromPoints","paths","splice","pathData","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","rejected","done","then","__generator","body","sent","trys","ops","verb","Symbol","iterator","op","pop","SignaturePropsContext","Signature","canvasRef","dialogRef","minimizeButtonRef","maximizeButtonRef","instance","setInstance","isDrawing","setIsDrawing","popupValue","setPopupValue","showMaximize","maximized","maximizable","showMinimize","showClear","maximizeTitle","minimizeTitle","clearTitle","popupScale","exportScale","onValueChange","colorGetter","backgroundColorGetter","defaultBackgroundColor","getOptions","exportSize","canvas","pad","elementSize","overlay","querySelector","onOverlayClick","onDocumentKeydown","parent","hasParent","onMaximizeClick","popupSize","onMinimizeClick","hyperlinkOpenIcon","hideLine","Dialog","TextBox","other","useAsyncFocusBlur","onSyncFocus","onSyncBlur","InputClearValue","InputPrefix","InputSeparator","InputSuffix","InputValidationIcon","optional","localizedOptional","labelsOptional","optionalElement","spanClassNames","labelClassNames","editorRef","onLabelClick","editorActionElement","click"],"sourceRoot":""}