{"version":3,"file":"static/js/7584.4f6d3757.chunk.js","mappings":"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","sources":["../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-common/dist/es/hooks/usePropsContext.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-common/dist/es/hocs/withPropsContext.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-common/dist/es/guid.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-common/dist/es/hooks/useCustomComponent.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-common/dist/es/events/dispatchEvent.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-common/dist/es/getActiveElement.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-common/dist/es/classNames.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-common/dist/es/theme.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-common/dist/es/getTabIndex.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-common/dist/es/validate-package.js","../node_modules/@progress/kendo-react-inputs/dist/es/package-metadata.js","../node_modules/@progress/kendo-react-inputs/dist/es/messages/index.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-drawing/dist/es/common/class.js","../node_modules/@progress/kendo-drawing/dist/es/common/support.js","../node_modules/@progress/kendo-drawing/dist/es/common/color/named-colors.js","../node_modules/@progress/kendo-drawing/dist/es/common/color/parse-color.js","../node_modules/@progress/kendo-drawing/dist/es/common/color/color.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-labels/dist/es/Label.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/ColorInput.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-common/dist/es/focus.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-common/dist/es/noop.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-common/dist/es/hooks/useInheritedState.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-common/dist/es/drag-n-drop/context/index.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-common/dist/es/hooks/useDraggable.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-common/dist/es/Draggable.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-common/dist/es/keys.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-common/dist/es/hooks/useDir.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/node_modules/@progress/kendo-react-common/dist/es/icons/constants.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-common/dist/es/icons/utils.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-common/dist/es/icons/Icon.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-common/dist/es/hooks/useMouse.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-common/dist/es/icons/SvgIcon.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-common/dist/es/icons/IconsContext.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-common/dist/es/icons/IconWrap.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-buttons/dist/es/util.js","../node_modules/@progress/kendo-react-buttons/dist/es/ButtonGroup.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/node_modules/@progress/kendo-react-common/dist/es/hooks/useRtl.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/maskedtextbox/masking.service.js","../node_modules/@progress/kendo-drawing/dist/es/mixins/with-accessors.js","../node_modules/@progress/kendo-drawing/dist/es/core/has-observers.js","../node_modules/@progress/kendo-drawing/dist/es/util/round.js","../node_modules/@progress/kendo-drawing/dist/es/util/defined.js","../node_modules/@progress/kendo-drawing/dist/es/util/constants.js","../node_modules/@progress/kendo-drawing/dist/es/util/rad.js","../node_modules/@progress/kendo-drawing/dist/es/geometry/matrix.js","../node_modules/@progress/kendo-drawing/dist/es/geometry/to-matrix.js","../node_modules/@progress/kendo-drawing/dist/es/geometry/point.js","../node_modules/@progress/kendo-drawing/dist/es/geometry/size.js","../node_modules/@progress/kendo-drawing/dist/es/geometry/rect.js","../node_modules/@progress/kendo-drawing/dist/es/geometry/transformation.js","../node_modules/@progress/kendo-drawing/dist/es/geometry/transform.js","../node_modules/@progress/kendo-drawing/dist/es/shapes/elements-array.js","../node_modules/@progress/kendo-drawing/dist/es/shapes/geometry-elements-array.js","../node_modules/@progress/kendo-drawing/dist/es/core/options-store.js","../node_modules/@progress/kendo-drawing/dist/es/util/definition-id.js","../node_modules/@progress/kendo-drawing/dist/es/util/value-or-default.js","../node_modules/@progress/kendo-drawing/dist/es/util/is-transparent.js","../node_modules/@progress/kendo-drawing/dist/es/shapes/element.js","../node_modules/@progress/kendo-drawing/dist/es/util/deg.js","../node_modules/@progress/kendo-drawing/dist/es/geometry/math/is-out-of-end-point.js","../node_modules/@progress/kendo-drawing/dist/es/geometry/math/calculate-curve-at.js","../node_modules/@progress/kendo-drawing/dist/es/geometry/math/to-cubic-polynomial.js","../node_modules/@progress/kendo-drawing/dist/es/geometry/constants.js","../node_modules/@progress/kendo-drawing/dist/es/geometry/math/complex-number.js","../node_modules/@progress/kendo-drawing/dist/es/geometry/math/solve-cubic-equation.js","../node_modules/@progress/kendo-drawing/dist/es/geometry/math/has-roots-in-range.js","../node_modules/@progress/kendo-drawing/dist/es/geometry/math/close.js","../node_modules/@progress/kendo-drawing/dist/es/geometry/math/line-intersections-count.js","../node_modules/@progress/kendo-drawing/dist/es/mixins/with-points.js","../node_modules/@progress/kendo-drawing/dist/es/geometry/segment.js","../node_modules/@progress/kendo-drawing/dist/es/geometry/math/curve-intersections-count.js","../node_modules/@progress/kendo-drawing/dist/es/util/last.js","../node_modules/@progress/kendo-drawing/dist/es/shapes/utils/points-to-curve.js","../node_modules/@progress/kendo-drawing/dist/es/mixins/paintable.js","../node_modules/@progress/kendo-drawing/dist/es/mixins/measurable.js","../node_modules/@progress/kendo-drawing/dist/es/geometry/math/close-or-less.js","../node_modules/@progress/kendo-drawing/dist/es/geometry/arc.js","../node_modules/@progress/kendo-drawing/dist/es/geometry/math/ellipse-extreme-angles.js","../node_modules/@progress/kendo-drawing/dist/es/geometry/math/line-intersection.js","../node_modules/@progress/kendo-drawing/dist/es/parsing/shape-map.js","../node_modules/@progress/kendo-drawing/dist/es/parsing/parse-path.js","../node_modules/@progress/kendo-drawing/dist/es/shapes/utils/elements-bounding-box.js","../node_modules/@progress/kendo-drawing/dist/es/shapes/utils/elements-clippend-bounding-box.js","../node_modules/@progress/kendo-drawing/dist/es/util/limit-value.js","../node_modules/@progress/kendo-drawing/dist/es/shapes/path.js","../node_modules/@progress/kendo-drawing/dist/es/mixins/with-geometry.js","../node_modules/@progress/kendo-drawing/dist/es/shapes/image.js","../node_modules/@progress/kendo-drawing/dist/es/mixins/traversable.js","../node_modules/@progress/kendo-drawing/dist/es/util/append.js","../node_modules/@progress/kendo-drawing/dist/es/shapes/group.js","../node_modules/@progress/kendo-drawing/dist/es/common/observable.js","../node_modules/@progress/kendo-drawing/dist/es/util/element-styles.js","../node_modules/@progress/kendo-drawing/dist/es/util/element-size.js","../node_modules/@progress/kendo-drawing/dist/es/util/event-element.js","../node_modules/@progress/kendo-drawing/dist/es/util/element-padding.js","../node_modules/@progress/kendo-drawing/dist/es/util/element-offset.js","../node_modules/@progress/kendo-drawing/dist/es/util/event-coordinates.js","../node_modules/@progress/kendo-drawing/dist/es/util/element-scale.js","../node_modules/@progress/kendo-drawing/dist/es/core/surface.js","../node_modules/@progress/kendo-drawing/dist/es/util/bind-events.js","../node_modules/@progress/kendo-drawing/dist/es/util/unbind-events.js","../node_modules/@progress/kendo-drawing/dist/es/util/create-promise.js","../node_modules/@progress/kendo-drawing/dist/es/util/promise-all.js","../node_modules/@progress/kendo-drawing/dist/es/core/base-node.js","../node_modules/@progress/kendo-drawing/dist/es/canvas/node-map.js","../node_modules/@progress/kendo-drawing/dist/es/canvas/utils/render-path.js","../node_modules/@progress/kendo-drawing/dist/es/canvas/node.js","../node_modules/@progress/kendo-drawing/dist/es/canvas/group-node.js","../node_modules/@progress/kendo-drawing/dist/es/util/now.js","../node_modules/@progress/kendo-drawing/dist/es/common/animation-frame.js","../node_modules/@progress/kendo-drawing/dist/es/canvas/root-node.js","../node_modules/@progress/kendo-drawing/dist/es/common/throttle.js","../node_modules/@progress/kendo-drawing/dist/es/search/quad-root.js","../node_modules/@progress/kendo-drawing/dist/es/search/quad-node.js","../node_modules/@progress/kendo-drawing/dist/es/search/shapes-quad-tree.js","../node_modules/@progress/kendo-drawing/dist/es/canvas/surface-cursor.js","../node_modules/@progress/kendo-drawing/dist/es/gradients/stops-array.js","../node_modules/@progress/kendo-drawing/dist/es/mixins/with-options.js","../node_modules/@progress/kendo-drawing/dist/es/gradients/gradient-stop.js","../node_modules/@progress/kendo-drawing/dist/es/gradients/gradient.js","../node_modules/@progress/kendo-drawing/dist/es/gradients/linear-gradient.js","../node_modules/@progress/kendo-drawing/dist/es/gradients/radial-gradient.js","../node_modules/@progress/kendo-drawing/dist/es/core/constants.js","../node_modules/@progress/kendo-drawing/dist/es/canvas/path-node.js","../node_modules/@progress/kendo-drawing/dist/es/canvas/arc-node.js","../node_modules/@progress/kendo-drawing/dist/es/canvas/circle-node.js","../node_modules/@progress/kendo-drawing/dist/es/canvas/image-node.js","../node_modules/@progress/kendo-drawing/dist/es/canvas/multi-path-node.js","../node_modules/@progress/kendo-drawing/dist/es/canvas/rect-node.js","../node_modules/@progress/kendo-drawing/dist/es/canvas/text-node.js","../node_modules/@progress/kendo-drawing/dist/es/canvas/surface.js","../node_modules/@progress/kendo-drawing/dist/es/svg/utils/render-attribute.js","../node_modules/@progress/kendo-drawing/dist/es/svg/utils/render-all-attributes.js","../node_modules/@progress/kendo-drawing/dist/es/svg/utils/render-style.js","../node_modules/@progress/kendo-drawing/dist/es/svg/node-map.js","../node_modules/@progress/kendo-drawing/dist/es/svg/constants.js","../node_modules/@progress/kendo-drawing/dist/es/svg/utils/render-svg.js","../node_modules/@progress/kendo-drawing/dist/es/svg/node.js","../node_modules/@progress/kendo-drawing/dist/es/svg/gradient-stop-node.js","../node_modules/@progress/kendo-drawing/dist/es/svg/gradient-node.js","../node_modules/@progress/kendo-drawing/dist/es/svg/linear-gradient-node.js","../node_modules/@progress/kendo-drawing/dist/es/svg/radial-gradient-node.js","../node_modules/@progress/kendo-drawing/dist/es/svg/clip-node.js","../node_modules/@progress/kendo-drawing/dist/es/svg/definition-node.js","../node_modules/@progress/kendo-drawing/dist/es/svg/root-node.js","../node_modules/@progress/kendo-drawing/dist/es/svg/path-node.js","../node_modules/@progress/kendo-drawing/dist/es/svg/arc-node.js","../node_modules/@progress/kendo-drawing/dist/es/svg/circle-node.js","../node_modules/@progress/kendo-drawing/dist/es/svg/group-node.js","../node_modules/@progress/kendo-drawing/dist/es/common/html-encode.js","../node_modules/@progress/kendo-drawing/dist/es/svg/image-node.js","../node_modules/@progress/kendo-drawing/dist/es/svg/multi-path-node.js","../node_modules/@progress/kendo-drawing/dist/es/svg/rect-node.js","../node_modules/@progress/kendo-drawing/dist/es/text-metrics/util.js","../node_modules/@progress/kendo-drawing/dist/es/svg/text-node.js","../node_modules/@progress/kendo-drawing/dist/es/svg/surface.js","../node_modules/@progress/kendo-drawing/dist/es/surface-factory.js","../node_modules/@progress/kendo-drawing/dist/es/common/log-to-console.js","../node_modules/@progress/kendo-drawing/dist/es/surface.js","../node_modules/@progress/kendo-drawing/dist/es/util/arabic-to-roman.js","../node_modules/@progress/kendo-drawing/dist/es/util/encode-utf.js","../node_modules/@progress/kendo-drawing/dist/es/util/encode-base64.js","../node_modules/@progress/kendo-drawing/dist/es/util/merge-sort.js","../node_modules/@progress/kendo-drawing/dist/es/text-metrics/lru-cache.js","../node_modules/@progress/kendo-drawing/dist/es/text-metrics/text-metrics.js","../node_modules/@progress/kendo-drawing/dist/es/text-metrics/measure-text.js","../node_modules/@progress/kendo-inputs-common/dist/es/common/drawing-utils.js","../node_modules/@progress/kendo-inputs-common/dist/es/signature/signature-pad.js","../node_modules/@progress/kendo-drawing/dist/es/canvas/export-image.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/node_modules/@progress/kendo-react-common/dist/es/hooks/useAsyncFocusBlur.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-intl/dist/es/hooks/useInternationalization.js"],"sourcesContent":["import * as React from 'react';\n/** @hidden */\nexport var usePropsContext = function (context, props) {\n var contextPropsCallback = React.useContext(context);\n var contextProps = contextPropsCallback(props);\n return contextProps;\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { usePropsContext } from '../hooks/usePropsContext';\n/** @hidden */\nexport var createPropsContext = function () { return React.createContext(function (props) { return props; }); };\n/** @hidden */\nexport var withPropsContext = function (context, Component\n// eslint-disable-next-line react/display-name\n) { return React.forwardRef(function (props, ref) {\n var contextProps = usePropsContext(context, props);\n return (React.createElement(Component, __assign({}, contextProps, { ref: ref })));\n}); };\n","/* eslint-disable no-bitwise */\n/**\n * @hidden\n */\nexport var guid = function () {\n var id = '';\n var i;\n var random;\n for (i = 0; i < 32; i++) {\n random = Math.random() * 16 | 0;\n if (i === 8 || i === 12 || i === 16 || i === 20) {\n id += '-';\n }\n id += (i === 12 ? 4 : (i === 16 ? (random & 3 | 8) : random)).toString(16);\n }\n return id;\n};\n","/**\n * @hidden\n */\nexport var useCustomComponent = function (comp) {\n /* if(React.isValidElement<P>(comp)) {\n return [comp.type, comp.props];\n } */\n return [comp, {}];\n};\n","/**\n * @hidden\n * Dispatches a new event based on an event that was already internally dispatched to KendoReact users.\n *\n * @param eventHandler - The public event handler that is assigned by the user.\n * When undefined, the method is not an option.\n * @param dispatchedEvent - The event that was already dispatched internally.\n * @param target - The target component of the new event.\n * @param eventData - The additional data that will be passed through the new event.\n * When the new event has no additional data\n * other than the `BaseEvent` arguments, pass `undefined`.\n */\nexport function dispatchEvent(eventHandler, dispatchedEvent, target, eventData) {\n if (eventHandler) {\n var eventBaseData = {\n syntheticEvent: dispatchedEvent,\n nativeEvent: dispatchedEvent.nativeEvent,\n target: target\n };\n eventHandler.call(undefined, Object.assign(eventBaseData, eventData));\n }\n}\n","/**\n * @hidden\n */\nexport var getActiveElement = function (document) {\n if (!document) {\n return undefined;\n }\n var activeElement = document.activeElement;\n var shadowRoot = activeElement === null || activeElement === void 0 ? void 0 : activeElement.shadowRoot;\n return shadowRoot ? shadowRoot.activeElement : activeElement;\n};\n","/**\n * @hidden\n */\nexport var classNames = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = {};\n var addLeafKeys = function (arg) { return typeof arg === 'object' ? Object\n .keys(arg)\n .forEach(function (key) {\n result[key] = arg[key];\n }) : result[arg] = true; };\n ;\n var addKeys = function (list) { return list\n .filter(function (arg) { return arg !== true && !!arg; })\n .map(function (arg) {\n return Array.isArray(arg) ?\n addKeys(arg) :\n addLeafKeys(arg);\n }); };\n ;\n addKeys(args);\n return Object\n .keys(result)\n .map(function (key) { return (result[key] && key) || null; })\n .filter(function (el) { return el !== null; })\n .join(' ');\n};\n","/** @hidden */\nexport var kendoThemeMaps = {\n sizeMap: {\n small: 'sm',\n medium: 'md',\n large: 'lg'\n },\n roundedMap: {\n small: 'sm',\n medium: 'md',\n large: 'lg'\n }\n};\n","/* eslint-disable radix */\n/**\n * @hidden\n */\nvar DISABLED_TABINDEX = -1;\n/**\n * @hidden\n */\nvar DEFAULT_TABINDEX = 0;\n/**\n * @hidden\n */\nexport var getTabIndex = function (tabIndex, disabled, useDefaultTabIndexWhenDisabled) {\n var parsedTabIndex = typeof tabIndex === 'string' ? parseInt(tabIndex, undefined) : tabIndex;\n if (parsedTabIndex === NaN) {\n return undefined;\n }\n return parsedTabIndex !== undefined\n ? parsedTabIndex\n : disabled ?\n (useDefaultTabIndexWhenDisabled ? undefined : DISABLED_TABINDEX)\n : DEFAULT_TABINDEX;\n};\n","import * as licensing from '@progress/kendo-licensing';\n/**\n * @hidden\n */\nexport function validatePackage(packageMetadata) {\n if (typeof licensing !== 'undefined') {\n licensing.validatePackage(packageMetadata);\n }\n else {\n var message = \"License activation failed for \".concat(packageMetadata.name, \"\\n\");\n message += 'The @progress/kendo-licensing script is not loaded.\\n';\n message += \"See \".concat(packageMetadata.licensingDocsUrl, \" for more information.\\n\");\n console.warn(message);\n }\n}\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-inputs',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1686225671,\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 _a;\n/**\n * @hidden\n */\nexport var numericIncreaseValue = 'numerictextbox.increment';\n/**\n * @hidden\n */\nexport var numericDecreaseValue = 'numerictextbox.decrement';\n/**\n * @hidden\n */\nexport var sliderIncreaseValue = 'slider.increment';\n/**\n * @hidden\n */\nexport var sliderDecreaseValue = 'slider.decrement';\n/**\n * @hidden\n */\nexport var sliderDragTitle = 'slider.dragTitle';\n/**\n * @hidden\n */\nexport var colorGradientR = 'colorGradient.r';\n/**\n * @hidden\n */\nexport var colorGradientG = 'colorGradient.g';\n/**\n * @hidden\n */\nexport var colorGradientB = 'colorGradient.b';\n/**\n * @hidden\n */\nexport var colorGradientA = 'colorGradient.a';\n/**\n * @hidden\n */\nexport var colorGradientHex = 'colorGradient.hex';\n/**\n * @hidden\n */\nexport var colorGradientContrastRatio = 'colorGradient.contrastRatio';\n/**\n * @hidden\n */\nexport var colorGradientAALevel = 'colorGradient.colorGradientAALevel';\n/**\n * @hidden\n */\nexport var colorGradientAAALevel = 'colorGradient.colorGradientAAALevel';\n/**\n * @hidden\n */\nexport var colorGradientPass = 'colorGradient.colorGradientPass';\n/**\n * @hidden\n */\nexport var colorGradientFail = 'colorGradient.colorGradientFail';\n/**\n * @hidden\n */\nexport var colorGradientHueSliderLabel = 'colorGradient.hueSliderLabel';\n/**\n * @hidden\n */\nexport var colorGradientAlphaSliderLabel = 'colorGradient.alphaSliderLabel';\n/**\n * @hidden\n */\nexport var colorGradientToggleInputsButton = 'colorGradient.toggleInputsButton';\n/**\n * @hidden\n */\nexport var flatColorPickerCancelBtn = 'flatColorPicker.cancelBtn';\n/**\n * @hidden\n */\nexport var flatColorPickerApplyBtn = 'flatColorPicker.applyBtn';\n/**\n * @hidden\n */\nexport var flatColorPickerColorGradientBtn = 'flatColorPicker.colorGradientBtn';\n/**\n * @hidden\n */\nexport var flatColorPickerColorPaletteBtn = 'flatColorPicker.colorPaletteBtn';\n/**\n * @hidden\n */\nexport var flatColorPickerClearBtn = 'flatColorPicker.clearBtn';\n/**\n * @hidden\n */\nexport var checkboxValidation = 'checkbox.validation';\n/**\n * @hidden\n */\nexport var checkboxOptionalText = 'checkbox.optionalText';\n/**\n * @hidden\n */\nexport var radioButtonValidation = 'radioButton.validation';\n/**\n * @hidden\n */\nexport var switchValidation = 'switch.validation';\n/**\n * @hidden\n */\nexport var colorPickerDropdownButtonAriaLabel = 'colorPicker.dropdownButtonAriaLabel';\n/**\n * @hidden\n */\nexport var ratingAriaLabel = 'rating.ariaLabel';\n/**\n * @hidden\n */\nexport var signatureClear = 'signature.clear';\n/**\n * @hidden\n */\nexport var signatureMaximize = 'signature.maximize';\n/**\n * @hidden\n */\nexport var signatureMinimize = 'signature.minimize';\n/**\n * @hidden\n */\nexport var messages = (_a = {},\n _a[numericIncreaseValue] = 'Increase value',\n _a[numericDecreaseValue] = 'Decrease value',\n _a[sliderIncreaseValue] = 'Increase',\n _a[sliderDecreaseValue] = 'Decrease',\n _a[sliderDragTitle] = 'Drag',\n _a[colorGradientR] = 'r',\n _a[colorGradientG] = 'g',\n _a[colorGradientB] = 'b',\n _a[colorGradientA] = 'a',\n _a[colorGradientHex] = 'hex',\n _a[colorGradientContrastRatio] = 'Contrast ratio',\n _a[colorGradientAALevel] = 'AA',\n _a[colorGradientAAALevel] = 'AAA',\n _a[colorGradientPass] = 'Pass',\n _a[colorGradientFail] = 'Fail',\n _a[colorGradientHueSliderLabel] = 'Hue slider',\n _a[colorGradientAlphaSliderLabel] = 'Alpha slider',\n _a[colorGradientToggleInputsButton] = 'Toggle colorgradient inputs',\n _a[flatColorPickerCancelBtn] = 'Cancel',\n _a[flatColorPickerApplyBtn] = 'Apply',\n _a[flatColorPickerColorGradientBtn] = 'Color Gradient view',\n _a[flatColorPickerColorPaletteBtn] = 'Color Palette view',\n _a[flatColorPickerClearBtn] = 'Clear color value',\n _a[checkboxValidation] = 'Please check this box if you want to proceed!',\n _a[checkboxOptionalText] = '(Optional)',\n _a[radioButtonValidation] = 'Please select option if you want to proceed!',\n _a[switchValidation] = 'Please turn on if you want to proceed!',\n _a[colorPickerDropdownButtonAriaLabel] = 'Select',\n _a[ratingAriaLabel] = 'Rating',\n _a[signatureClear] = 'Clear',\n _a[signatureMaximize] = 'Maximize',\n _a[signatureMinimize] = 'Minimize',\n _a);\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar DEFAULT_NUMBER = 1111111.1111111;\nvar MAX_DECIMAL = 0.31111111111111117;\nvar MIN_DECIMAL = 1;\nvar ONE_NUMBER = 1;\nvar ZERO_NUMBER = 0;\nvar DIGITS_REGEX = /\\d/;\nvar MAX_PRECISION = 15;\n/**\n * @hidden\n */\nexport var getInitialState = function () { return ({\n eventValue: null,\n prevLooseValue: '',\n currentLooseValue: '',\n focused: false,\n selectionStart: undefined,\n selectionEnd: undefined,\n decimalSelect: false,\n valueIsCorrected: false,\n valueIsOutOfRange: false\n}); };\n/**\n * @hidden\n */\nexport var getStateOrPropsValue = function (value, stateValue) {\n return value !== undefined ? value : stateValue;\n};\n/**\n * @hidden\n */\nexport var formatValue = function (value, format, intlService) {\n if (value === null && value === undefined) {\n return '';\n }\n if (typeof value === 'string') {\n return value;\n }\n return intlService.formatNumber(value, format);\n};\n/**\n * @hidden\n */\nexport var fractionLength = function (value) {\n return (String(value).split('.')[1] || '').length;\n};\n/**\n * @hidden\n */\nvar maxFractionLength = function (value1, value2) {\n return Math.max(fractionLength(value1), fractionLength(value2));\n};\n/**\n * @hidden\n */\nexport var limitPrecision = function (precision) { return Math.min(precision, MAX_PRECISION); };\n/**\n * @hidden\n */\nexport var toFixedPrecision = function (value, precision) {\n var maxPrecision = limitPrecision(precision);\n return parseFloat(value.toFixed(maxPrecision));\n};\n/**\n * @hidden\n */\nexport var increaseValue = function (value, newState, step, min, max, format, intlService) {\n var maxPrecision = maxFractionLength(value || 0, step || 0);\n var increasedValue = rangeValue(toFixedPrecision((value || 0) + (step || 0), maxPrecision), min, max);\n newState.eventValue = increasedValue;\n newState.currentLooseValue = formatValue(increasedValue, format, intlService);\n newState.selectionStart = newState.selectionEnd = getLastNumberIndex(newState.currentLooseValue, DIGITS_REGEX);\n};\n/**\n * @hidden\n */\nexport var decreaseValue = function (value, newState, step, min, max, format, intlService) {\n var maxPrecision = maxFractionLength(value || 0, step || 0);\n var decreasedValue = rangeValue(toFixedPrecision((value || 0) - (step || 0), maxPrecision), min, max);\n newState.eventValue = decreasedValue;\n newState.currentLooseValue = formatValue(decreasedValue, format, intlService);\n newState.selectionStart = newState.selectionEnd = getLastNumberIndex(newState.currentLooseValue, DIGITS_REGEX);\n};\n/**\n * @hidden\n */\nexport var rangeValue = function (value, min, max) {\n if (value == null) {\n return value;\n }\n if (!(value > 1 || value < 1 || value === 1)) {\n // null, undefined or NaN\n return null;\n }\n if (max !== undefined && min !== undefined && max < min) {\n return null;\n }\n if (max !== undefined && value > max) {\n value = max;\n }\n if (min !== undefined && value < min) {\n value = min;\n }\n return value;\n};\n/**\n * @hidden\n */\nexport var getMaxCursorPosition = function (nextValue, formatInfo) {\n var formatSuffixIndex = formatInfo.findIndex(function (_a) {\n var _ = _a[0], currSuffix = _a[1];\n return Boolean(currSuffix) && nextValue.indexOf(currSuffix) === nextValue.length - currSuffix.length;\n });\n if (formatSuffixIndex === -1) {\n return -1;\n }\n var suffix = formatInfo[formatSuffixIndex][1];\n return nextValue.length - suffix.length;\n};\n/**\n * @hidden\n */\nexport var getMinCursorPosition = function (nextValue, formatInfo) {\n var formatPrefixIndex = formatInfo.findIndex(function (_a) {\n var currPrefix = _a[0], _ = _a[1];\n return Boolean(currPrefix) && nextValue.indexOf(currPrefix) === 0;\n });\n if (formatPrefixIndex === -1) {\n return -1;\n }\n var prefix = formatInfo[formatPrefixIndex][0];\n return prefix.length;\n};\n/**\n * @hidden\n */\nexport var rangeSelection = function (nextLooseValue, formatInfo, newState) {\n var maxPosition = getMaxCursorPosition(nextLooseValue, formatInfo);\n if (maxPosition !== -1 && newState.selectionStart > maxPosition) {\n newState.selectionStart = newState.selectionEnd = maxPosition;\n return;\n }\n if (newState.selectionStart > nextLooseValue.length) {\n newState.selectionStart = newState.selectionEnd = nextLooseValue.length;\n }\n var minPosition = getMinCursorPosition(nextLooseValue, formatInfo);\n if (minPosition !== -1 && newState.selectionStart < minPosition) {\n newState.selectionStart = newState.selectionEnd = minPosition;\n }\n if (newState.selectionStart === -1) {\n newState.selectionStart = newState.selectionEnd = 0;\n }\n};\n/**\n * @hidden\n */\nexport var setSelection = function (newState, newIndex, nextLooseValue, formatInfo) {\n newState.selectionStart = newState.selectionEnd = newIndex;\n rangeSelection(nextLooseValue, formatInfo, newState);\n};\n/**\n * @hidden\n */\nexport var setInvalid = function (newState, format, formatInfo, intlService) {\n newState.eventValue = intlService.parseNumber(newState.prevLooseValue, format);\n newState.currentLooseValue = newState.prevLooseValue;\n newState.valueIsCorrected = true;\n setSelection(newState, newState.selectionStart, newState.currentLooseValue, formatInfo);\n};\n/**\n * @hidden\n */\nexport var isMinusSymbolAdded = function (newState, symbols) {\n var newText = String(newState.currentLooseValue);\n var oldText = String(newState.prevLooseValue);\n return (newText.split(symbols.minusSign).length !== oldText.split(symbols.minusSign).length &&\n newText.length === oldText.length + symbols.minusSign.length);\n};\n/**\n * @hidden\n */\nexport var isMinusSymbolRemoved = function (newState, symbols) {\n var newText = String(newState.currentLooseValue);\n var oldText = String(newState.prevLooseValue);\n return (newText.indexOf(symbols.minusSign) === -1 && oldText.indexOf(symbols.minusSign) !== -1);\n};\n/**\n * @hidden\n */\nexport var isDecimalDuplicated = function (newState, symbols) {\n var newText = String(newState.currentLooseValue);\n return newText.split(symbols.decimal).length > 2;\n};\n/**\n * @hidden\n */\nexport var getFormatPrefixSufix = function (format, intlService) {\n var positiveResult = intlService.formatNumber(DEFAULT_NUMBER, format);\n var negativeResult = intlService.formatNumber(-DEFAULT_NUMBER, format);\n var zeroResult = intlService.formatNumber(ZERO_NUMBER, format);\n var oneResult = intlService.formatNumber(ONE_NUMBER, format);\n var positivePrefix = getPrefix(positiveResult);\n var negativePrefix = getPrefix(negativeResult);\n var zeroPrefix = getPrefix(zeroResult);\n var onePrefix = getPrefix(oneResult);\n var positiveSuffix = getSuffix(positiveResult);\n var negativeSuffix = getSuffix(negativeResult);\n var zeroSuffix = getSuffix(zeroResult);\n var oneSuffix = getSuffix(oneResult);\n return {\n positiveInfo: [positivePrefix, positiveSuffix],\n negativeInfo: [negativePrefix, negativeSuffix],\n zeroInfo: [zeroPrefix, zeroSuffix],\n oneInfo: [onePrefix, oneSuffix]\n };\n};\n/**\n * @hidden\n */\nexport var getFormatSymbols = function (format, intlService) {\n var positiveResult = intlService.formatNumber(DEFAULT_NUMBER, format);\n var negativeResult = intlService.formatNumber(-DEFAULT_NUMBER, format);\n var zeroResult = intlService.formatNumber(ZERO_NUMBER, format);\n var oneResult = intlService.formatNumber(ONE_NUMBER, format);\n var symbols = intlService.numberSymbols();\n var sanitizeRegex = new RegExp(\"[\\\\d\\\\\".concat(symbols.decimal).concat(symbols.group, \"]\"), 'g');\n var resultWithDuplicates = [positiveResult, negativeResult, zeroResult, oneResult]\n .map(function (result) { return result.replace(sanitizeRegex, ''); })\n .join('');\n return resultWithDuplicates\n .split('')\n .filter(function (x, n, s) { return s.indexOf(x) === n; })\n .join('');\n};\n/**\n * @hidden\n */\nexport var getInitialPosition = function (nextLooseValue, symbols) {\n var decimalIdex = nextLooseValue.indexOf(symbols.decimal);\n if (decimalIdex > -1) {\n return decimalIdex;\n }\n return getLastNumberIndex(nextLooseValue, DIGITS_REGEX);\n};\n/**\n * @hidden\n */\nexport var reverseString = function (str) {\n return str.split('').reverse().join('');\n};\n/**\n * @hidden\n */\nexport var getLastNumberIndex = function (currentLooseValue, inputRegex) {\n return currentLooseValue.length - reverseString(currentLooseValue).search(inputRegex);\n};\n/**\n * @hidden\n */\nexport var getPrefix = function (str) {\n return str.split(str[str.search(DIGITS_REGEX)])[0];\n};\n/**\n * @hidden\n */\nexport var getSuffix = function (str) {\n var reversedString = reverseString(str);\n return reverseString(reversedString.split(reversedString[reversedString.search(DIGITS_REGEX)])[0]);\n};\n/**\n * @hidden\n */\nexport var getFirstNumberIndex = function (prevLooseValue, inputRegex) {\n return prevLooseValue.search(inputRegex);\n};\n/**\n * @hidden\n */\nexport var getDecimalCount = function (value, decimal) {\n var currentDecimalPlace = value.indexOf(decimal);\n return currentDecimalPlace > -1 ? value.length - currentDecimalPlace - 1 : 0;\n};\n/**\n * @hidden\n */\nexport var changeBasedSelection = function (currentValue, nextValue, selectionPosition, isDelete, sanitizeRegex) {\n var isCurrentLeadingZero = currentValue.replace(sanitizeRegex, '')[0] === '0';\n var isNextLeadingZero = nextValue.replace(sanitizeRegex, '')[0] === '0';\n if (isCurrentLeadingZero && !isNextLeadingZero) {\n return selectionPosition - 1;\n }\n if (isNextLeadingZero && isDelete) {\n return selectionPosition + 1;\n }\n var numberCounter = 0;\n for (var idx = 0; idx < selectionPosition; idx++) {\n if (DIGITS_REGEX.test(currentValue.charAt(idx))) {\n numberCounter++;\n }\n }\n var newSelection = 0;\n while (numberCounter > 0 && nextValue.length > newSelection) {\n if (DIGITS_REGEX.test(nextValue.charAt(newSelection))) {\n numberCounter--;\n }\n newSelection++;\n }\n return newSelection;\n};\n/**\n * @hidden\n */\nexport var sanitizeNumber = function (state, format, intlService) {\n var newState = __assign({}, state);\n var prevLooseValue = newState.prevLooseValue;\n var symbols = intlService.numberSymbols();\n var restrictedSymbols = getFormatSymbols(format, intlService);\n var currentLooseValueAsString = String(newState.currentLooseValue);\n var prevLooseValueAsString = String(prevLooseValue);\n var sanitizeRegex = new RegExp(\"[^\\\\d\\\\\".concat(symbols.decimal, \"]\"), 'g');\n var sanitizeGroupRegex = new RegExp(\"[^\\\\d\\\\\".concat(symbols.decimal, \"\\\\\").concat(symbols.group, \"]\"), 'g');\n var allSymbolsRegex = new RegExp(\"[\\\\d\\\\\".concat(symbols.decimal, \"\\\\\").concat(symbols.group, \"]\"));\n var sanitizedString = currentLooseValueAsString.replace(sanitizeRegex, '');\n var numberStart = getFirstNumberIndex(currentLooseValueAsString, DIGITS_REGEX);\n var numberEnd = numberStart === -1 ? -1 : getLastNumberIndex(currentLooseValueAsString, DIGITS_REGEX);\n var decimalIndex = currentLooseValueAsString.indexOf(symbols.decimal);\n var sanitizedFormattedString = (currentLooseValueAsString.substring(0, numberStart) +\n currentLooseValueAsString.substring(numberStart, numberEnd).replace(sanitizeGroupRegex, '') +\n currentLooseValueAsString.substring(numberEnd, currentLooseValueAsString.length))\n .split('')\n .filter(function (s) { return restrictedSymbols.indexOf(s) !== -1 || s.search(allSymbolsRegex) !== -1; })\n .join('');\n var formattedMax = intlService.formatNumber(MAX_DECIMAL, format).replace(sanitizeRegex, '');\n var maxDecimalIndex = formattedMax.indexOf(symbols.decimal);\n var maxDecimalCount = maxDecimalIndex > -1 ? formattedMax.length - maxDecimalIndex - 1 : 0;\n var formattedMin = intlService.formatNumber(MIN_DECIMAL, format).replace(sanitizeRegex, '');\n var minDecimalIndex = formattedMin.indexOf(symbols.decimal);\n var minDecimalCount = minDecimalIndex > -1 ? formattedMin.length - minDecimalIndex - 1 : 0;\n var _a = getFormatPrefixSufix(format, intlService), positiveInfo = _a.positiveInfo, negativeInfo = _a.negativeInfo, zeroInfo = _a.zeroInfo, oneInfo = _a.oneInfo;\n var formatInfo = [positiveInfo, negativeInfo, zeroInfo, oneInfo];\n var isFormatContainPrefixSuffix = formatInfo.findIndex(function (info) { return info.findIndex(function (nestedInfo) { return Boolean(nestedInfo); }) !== -1; }) !== 1;\n var isDelete = currentLooseValueAsString.length > 0 && currentLooseValueAsString.length < prevLooseValueAsString.length;\n var isPercentFormat = typeof format === 'string' &&\n format[0] === 'p' &&\n currentLooseValueAsString &&\n currentLooseValueAsString.indexOf(symbols.percentSign) === -1;\n if (!newState.isPaste) {\n // 1. Empty input\n if (currentLooseValueAsString === '') {\n newState.eventValue = null;\n newState.currentLooseValue = '';\n return newState;\n }\n // 2. Check is minus sign\n if (newState.currentLooseValue === symbols.minusSign && intlService.formatNumber(-0, format) !== prevLooseValueAsString) {\n newState.eventValue = -0;\n newState.currentLooseValue = formatValue(newState.eventValue, format, intlService);\n setSelection(newState, getInitialPosition(newState.currentLooseValue, symbols), newState.currentLooseValue, formatInfo);\n return newState;\n }\n // 3. 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 // 4. 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 // 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 isPasteRef.current = true;\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","var Class = function Class () {};\n\nexport default Class;\n","function matchUserAgent(userAgent) {\n var browserRxs = {\n edge: /(edge)[ \\/]([\\w.]+)/i,\n webkit: /(chrome)[ \\/]([\\w.]+)/i,\n safari: /(webkit)[ \\/]([\\w.]+)/i,\n opera: /(opera)(?:.*version|)[ \\/]([\\w.]+)/i,\n msie: /(msie\\s|trident.*? rv:)([\\w.]+)/i,\n mozilla: /(mozilla)(?:.*? rv:([\\w.]+))/i\n };\n\n var browser = {};\n\n for (var agent in browserRxs) {\n if (browserRxs.hasOwnProperty(agent)) {\n var match = userAgent.match(browserRxs[agent]);\n if (match) {\n browser[agent] = true;\n browser[match[1].toLowerCase().split(\" \")[0].split(\"/\")[0]] = true;\n browser.version = parseInt(document.documentMode || match[2], 10);\n\n break;\n }\n }\n }\n\n return browser;\n}\n\nvar browser = null;\n\nvar support = {\n get browser() {\n if (typeof window === 'undefined' || browser) {\n return browser;\n }\n\n browser = matchUserAgent(window.navigator.userAgent);\n return browser;\n }\n};\n\nexport default support;\n","var namedColors = {\n aliceblue: \"f0f8ff\", antiquewhite: \"faebd7\", aqua: \"00ffff\",\n aquamarine: \"7fffd4\", azure: \"f0ffff\", beige: \"f5f5dc\",\n bisque: \"ffe4c4\", black: \"000000\", blanchedalmond: \"ffebcd\",\n blue: \"0000ff\", blueviolet: \"8a2be2\", brown: \"a52a2a\",\n burlywood: \"deb887\", cadetblue: \"5f9ea0\", chartreuse: \"7fff00\",\n chocolate: \"d2691e\", coral: \"ff7f50\", cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\", crimson: \"dc143c\", cyan: \"00ffff\",\n darkblue: \"00008b\", darkcyan: \"008b8b\", darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\", darkgrey: \"a9a9a9\", darkgreen: \"006400\",\n darkkhaki: \"bdb76b\", darkmagenta: \"8b008b\", darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\", darkorchid: \"9932cc\", darkred: \"8b0000\",\n darksalmon: \"e9967a\", darkseagreen: \"8fbc8f\", darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\", darkslategrey: \"2f4f4f\", darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\", deeppink: \"ff1493\", deepskyblue: \"00bfff\",\n dimgray: \"696969\", dimgrey: \"696969\", dodgerblue: \"1e90ff\",\n firebrick: \"b22222\", floralwhite: \"fffaf0\", forestgreen: \"228b22\",\n fuchsia: \"ff00ff\", gainsboro: \"dcdcdc\", ghostwhite: \"f8f8ff\",\n gold: \"ffd700\", goldenrod: \"daa520\", gray: \"808080\",\n grey: \"808080\", green: \"008000\", greenyellow: \"adff2f\",\n honeydew: \"f0fff0\", hotpink: \"ff69b4\", indianred: \"cd5c5c\",\n indigo: \"4b0082\", ivory: \"fffff0\", khaki: \"f0e68c\",\n lavender: \"e6e6fa\", lavenderblush: \"fff0f5\", lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\", lightblue: \"add8e6\", lightcoral: \"f08080\",\n lightcyan: \"e0ffff\", lightgoldenrodyellow: \"fafad2\", lightgray: \"d3d3d3\",\n lightgrey: \"d3d3d3\", lightgreen: \"90ee90\", lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\", lightseagreen: \"20b2aa\", lightskyblue: \"87cefa\",\n lightslategray: \"778899\", lightslategrey: \"778899\", lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\", lime: \"00ff00\", limegreen: \"32cd32\",\n linen: \"faf0e6\", magenta: \"ff00ff\", maroon: \"800000\",\n mediumaquamarine: \"66cdaa\", mediumblue: \"0000cd\", mediumorchid: \"ba55d3\",\n mediumpurple: \"9370d8\", mediumseagreen: \"3cb371\", mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\", mediumturquoise: \"48d1cc\", mediumvioletred: \"c71585\",\n midnightblue: \"191970\", mintcream: \"f5fffa\", mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\", navajowhite: \"ffdead\", navy: \"000080\",\n oldlace: \"fdf5e6\", olive: \"808000\", olivedrab: \"6b8e23\",\n orange: \"ffa500\", orangered: \"ff4500\", orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\", palegreen: \"98fb98\", paleturquoise: \"afeeee\",\n palevioletred: \"d87093\", papayawhip: \"ffefd5\", peachpuff: \"ffdab9\",\n peru: \"cd853f\", pink: \"ffc0cb\", plum: \"dda0dd\",\n powderblue: \"b0e0e6\", purple: \"800080\", red: \"ff0000\",\n rosybrown: \"bc8f8f\", royalblue: \"4169e1\", saddlebrown: \"8b4513\",\n salmon: \"fa8072\", sandybrown: \"f4a460\", seagreen: \"2e8b57\",\n seashell: \"fff5ee\", sienna: \"a0522d\", silver: \"c0c0c0\",\n skyblue: \"87ceeb\", slateblue: \"6a5acd\", slategray: \"708090\",\n slategrey: \"708090\", snow: \"fffafa\", springgreen: \"00ff7f\",\n steelblue: \"4682b4\", tan: \"d2b48c\", teal: \"008080\",\n thistle: \"d8bfd8\", tomato: \"ff6347\", turquoise: \"40e0d0\",\n violet: \"ee82ee\", wheat: \"f5deb3\", white: \"ffffff\",\n whitesmoke: \"f5f5f5\", yellow: \"ffff00\", yellowgreen: \"9acd32\"\n};\n\nexport default namedColors;","import Class from '../class';\nimport support from '../support';\nimport namedColors from './named-colors';\n\nvar browser = support.browser;\n\nvar matchNamedColor = function (color) {\n var colorNames = Object.keys(namedColors);\n colorNames.push(\"transparent\");\n\n var regexp = new RegExp(\"^(\" + colorNames.join(\"|\") + \")(\\\\W|$)\", \"i\");\n matchNamedColor = function (color) { return regexp.exec(color); };\n\n return regexp.exec(color);\n};\n\nvar BaseColor = (function (Class) {\n function BaseColor() { Class.call(this); }\n\n if ( Class ) BaseColor.__proto__ = Class;\n BaseColor.prototype = Object.create( Class && Class.prototype );\n BaseColor.prototype.constructor = BaseColor;\n BaseColor.prototype.toHSV = function toHSV () { return this; };\n\n BaseColor.prototype.toRGB = function toRGB () { return this; };\n\n BaseColor.prototype.toHex = function toHex (options) { return this.toBytes().toHex(options); };\n\n BaseColor.prototype.toBytes = function toBytes () { return this; };\n\n BaseColor.prototype.toCss = function toCss (options) { return \"#\" + this.toHex(options); };\n\n BaseColor.prototype.toCssRgba = function toCssRgba () {\n var rgb = this.toBytes();\n return (\"rgba(\" + (rgb.r) + \", \" + (rgb.g) + \", \" + (rgb.b) + \", \" + (parseFloat((Number(this.a)).toFixed(3))) + \")\");\n };\n\n BaseColor.prototype.toDisplay = function toDisplay () {\n if (browser.msie && browser.version < 9) {\n return this.toCss(); // no RGBA support; does it support any opacity in colors?\n }\n return this.toCssRgba();\n };\n\n BaseColor.prototype.equals = function equals (c) {\n return c === this || ((c !== null && c !== undefined) && this.toCssRgba() === parseColor(c).toCssRgba());\n };\n\n BaseColor.prototype.diff = function diff (other) {\n if (other === null) {\n return NaN;\n }\n\n var c1 = this.toBytes();\n var c2 = other.toBytes();\n\n return Math.sqrt(Math.pow((c1.r - c2.r) * 0.30, 2) +\n Math.pow((c1.g - c2.g) * 0.59, 2) +\n Math.pow((c1.b - c2.b) * 0.11, 2));\n };\n\n BaseColor.prototype.clone = function clone () {\n var c = this.toBytes();\n if (c === this) {\n c = new Bytes(c.r, c.g, c.b, c.a);\n }\n\n return c;\n };\n\n return BaseColor;\n}(Class));\n\nvar RGB = (function (BaseColor) {\n function RGB(r, g, b, a) {\n BaseColor.call(this);\n\n this.r = r;\n this.g = g;\n this.b = b;\n this.a = a;\n }\n\n if ( BaseColor ) RGB.__proto__ = BaseColor;\n RGB.prototype = Object.create( BaseColor && BaseColor.prototype );\n RGB.prototype.constructor = RGB;\n\n RGB.prototype.toHSV = function toHSV () {\n var ref = this;\n var r = ref.r;\n var g = ref.g;\n var b = ref.b;\n var min = Math.min(r, g, b);\n var max = Math.max(r, g, b);\n var delta = max - min;\n var v = max;\n var h, s;\n\n if (delta === 0) {\n return new HSV(0, 0, v, this.a);\n }\n\n if (max !== 0) {\n s = delta / max;\n if (r === max) {\n h = (g - b) / delta;\n } else if (g === max) {\n h = 2 + (b - r) / delta;\n } else {\n h = 4 + (r - g) / delta;\n }\n\n h *= 60;\n if (h < 0) {\n h += 360;\n }\n } else {\n s = 0;\n h = -1;\n }\n\n return new HSV(h, s, v, this.a);\n };\n\n RGB.prototype.toHSL = function toHSL () {\n var ref = this;\n var r = ref.r;\n var g = ref.g;\n var b = ref.b;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if (max === min) {\n h = s = 0;\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n default: break;\n }\n }\n\n return new HSL(h * 60, s * 100, l * 100, this.a);\n };\n\n RGB.prototype.toBytes = function toBytes () {\n return new Bytes(this.r * 255, this.g * 255, this.b * 255, this.a);\n };\n\n return RGB;\n}(BaseColor));\n\nvar Bytes = (function (RGB) {\n function Bytes(r, g, b, a) {\n RGB.call(this, Math.round(r), Math.round(g), Math.round(b), a);\n }\n\n if ( RGB ) Bytes.__proto__ = RGB;\n Bytes.prototype = Object.create( RGB && RGB.prototype );\n Bytes.prototype.constructor = Bytes;\n\n Bytes.prototype.toRGB = function toRGB () {\n return new RGB(this.r / 255, this.g / 255, this.b / 255, this.a);\n };\n\n Bytes.prototype.toHSV = function toHSV () {\n return this.toRGB().toHSV();\n };\n\n Bytes.prototype.toHSL = function toHSL () {\n return this.toRGB().toHSL();\n };\n\n Bytes.prototype.toHex = function toHex (options) {\n var value = hex(this.r, 2) + hex(this.g, 2) + hex(this.b, 2);\n\n if (options && options.alpha) {\n value += hex(Math.round(this.a * 255), 2);\n }\n\n return value;\n };\n\n Bytes.prototype.toBytes = function toBytes () {\n return this;\n };\n\n return Bytes;\n}(RGB));\n\nfunction hex(n, width, pad) {\n if ( pad === void 0 ) pad = \"0\";\n\n var result = n.toString(16);\n while (width > result.length) {\n result = pad + result;\n }\n\n return result;\n}\n\nvar HSV = (function (BaseColor) {\n function HSV(h, s, v, a) {\n BaseColor.call(this);\n\n this.h = h;\n this.s = s;\n this.v = v;\n this.a = a;\n }\n\n if ( BaseColor ) HSV.__proto__ = BaseColor;\n HSV.prototype = Object.create( BaseColor && BaseColor.prototype );\n HSV.prototype.constructor = HSV;\n\n HSV.prototype.toRGB = function toRGB () {\n var ref = this;\n var h = ref.h;\n var s = ref.s;\n var v = ref.v;\n var r, g, b;\n\n if (s === 0) {\n r = g = b = v;\n } else {\n h /= 60;\n\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - s * f);\n var t = v * (1 - s * (1 - f));\n\n switch (i) {\n case 0: r = v; g = t; b = p; break;\n case 1: r = q; g = v; b = p; break;\n case 2: r = p; g = v; b = t; break;\n case 3: r = p; g = q; b = v; break;\n case 4: r = t; g = p; b = v; break;\n default: r = v; g = p; b = q; break;\n }\n }\n\n return new RGB(r, g, b, this.a);\n };\n\n HSV.prototype.toHSL = function toHSL () {\n return this.toRGB().toHSL();\n };\n\n HSV.prototype.toBytes = function toBytes () {\n return this.toRGB().toBytes();\n };\n\n return HSV;\n}(BaseColor));\n\nvar HSL = (function (BaseColor) {\n function HSL(h, s, l, a) {\n BaseColor.call(this);\n\n this.h = h;\n this.s = s;\n this.l = l;\n this.a = a;\n }\n\n if ( BaseColor ) HSL.__proto__ = BaseColor;\n HSL.prototype = Object.create( BaseColor && BaseColor.prototype );\n HSL.prototype.constructor = HSL;\n\n HSL.prototype.toRGB = function toRGB () {\n var h = this.h / 360;\n var s = this.s / 100;\n var l = this.l / 100;\n var r, g, b;\n\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return new RGB(r, g, b, this.a);\n };\n\n HSL.prototype.toHSV = function toHSV () {\n return this.toRGB().toHSV();\n };\n\n HSL.prototype.toBytes = function toBytes () {\n return this.toRGB().toBytes();\n };\n\n return HSL;\n}(BaseColor));\n\nfunction hue2rgb(p, q, s) {\n var t = s;\n\n if (t < 0) {\n t += 1;\n }\n\n if (t > 1) {\n t -= 1;\n }\n\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n\n if (t < 1 / 2) {\n return q;\n }\n\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n\n return p;\n}\n\nfunction alphaFromHex(a) {\n return parseFloat(parseFloat(parseInt(a, 16) / 255 ).toFixed(3));\n}\n\nexport { RGB, Bytes, HSV, HSL };\n\nexport default function parseColor(value, safe) {\n var m, ret;\n\n if (value == null || value === \"none\") {\n return null;\n }\n\n if (value instanceof BaseColor) {\n return value;\n }\n\n var color = value.toLowerCase();\n if ((m = matchNamedColor(color))) {\n if (m[1] === \"transparent\") {\n color = new RGB(1, 1, 1, 0);\n } else {\n color = parseColor(namedColors[m[1]], safe);\n }\n color.match = [ m[1] ];\n return color;\n }\n if ((m = /^#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})\\b/i.exec(color))) {\n ret = new Bytes(parseInt(m[1], 16),\n parseInt(m[2], 16),\n parseInt(m[3], 16), 1);\n } else if ((m = /^#?([0-9a-f])([0-9a-f])([0-9a-f])\\b/i.exec(color))) {\n ret = new Bytes(parseInt(m[1] + m[1], 16),\n parseInt(m[2] + m[2], 16),\n parseInt(m[3] + m[3], 16), 1);\n } else if ((m = /^#?([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])\\b/i.exec(color))) { // Parse 4 digit hex color\n ret = new Bytes(parseInt(m[1] + m[1], 16),\n parseInt(m[2] + m[2], 16),\n parseInt(m[3] + m[3], 16),\n alphaFromHex(m[4] + m[4]));\n } else if ((m = /^#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})\\b/i.exec(color))) { // Parse 8 digit hex color\n ret = new Bytes(parseInt(m[1], 16),\n parseInt(m[2], 16),\n parseInt(m[3], 16),\n alphaFromHex(m[4]));\n } else if ((m = /^rgb\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*\\)/.exec(color))) {\n ret = new Bytes(parseInt(m[1], 10),\n parseInt(m[2], 10),\n parseInt(m[3], 10), 1);\n } else if ((m = /^rgba\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9.]+)\\s*\\)/.exec(color))) {\n ret = new Bytes(parseInt(m[1], 10),\n parseInt(m[2], 10),\n parseInt(m[3], 10), parseFloat(m[4]));\n } else if ((m = /^rgb\\(\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9]*\\.?[0-9]+)%\\s*\\)/.exec(color))) {\n ret = new RGB(parseFloat(m[1]) / 100,\n parseFloat(m[2]) / 100,\n parseFloat(m[3]) / 100, 1);\n } else if ((m = /^rgba\\(\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9.]+)\\s*\\)/.exec(color))) {\n ret = new RGB(parseFloat(m[1]) / 100,\n parseFloat(m[2]) / 100,\n parseFloat(m[3]) / 100, parseFloat(m[4]));\n }\n\n if (ret) {\n ret.match = m;\n } else if (!safe) {\n throw new Error(\"Cannot parse color: \" + color);\n }\n\n return ret;\n}\n","import Class from '../class';\nimport namedColors from './named-colors';\nimport { Bytes, RGB, HSV, HSL } from './parse-color';\n\nvar DARK_TRESHOLD = 180;\n\nvar Color = (function (Class) {\n function Color(value) {\n var this$1 = this;\n\n Class.call(this);\n\n if (arguments.length === 1) {\n var formats = Color.formats;\n var resolvedColor = this.resolveColor(value);\n\n for (var idx = 0; idx < formats.length; idx++) {\n var formatRegex = formats[idx].re;\n var processor = formats[idx].process;\n var parts = formatRegex.exec(resolvedColor);\n\n if (parts) {\n var channels = processor(parts);\n this$1.r = channels[0];\n this$1.g = channels[1];\n this$1.b = channels[2];\n }\n }\n } else {\n this.r = arguments[0];\n this.g = arguments[1];\n this.b = arguments[2];\n }\n\n this.r = this.normalizeByte(this.r);\n this.g = this.normalizeByte(this.g);\n this.b = this.normalizeByte(this.b);\n }\n\n if ( Class ) Color.__proto__ = Class;\n Color.prototype = Object.create( Class && Class.prototype );\n Color.prototype.constructor = Color;\n\n Color.prototype.toHex = function toHex () {\n var pad = this.padDigit;\n var r = this.r.toString(16);\n var g = this.g.toString(16);\n var b = this.b.toString(16);\n\n return \"#\" + pad(r) + pad(g) + pad(b);\n };\n\n Color.prototype.resolveColor = function resolveColor (value) {\n var color = value || \"black\";\n\n if (color.charAt(0) === \"#\") {\n color = color.substr(1, 6);\n }\n\n color = color.replace(/ /g, \"\");\n color = color.toLowerCase();\n color = Color.namedColors[color] || color;\n\n return color;\n };\n\n Color.prototype.normalizeByte = function normalizeByte (value) {\n if (value < 0 || isNaN(value)) {\n return 0;\n }\n\n return value > 255 ? 255 : value;\n };\n\n Color.prototype.padDigit = function padDigit (value) {\n return (value.length === 1) ? \"0\" + value : value;\n };\n\n Color.prototype.brightness = function brightness (value) {\n var round = Math.round;\n\n this.r = round(this.normalizeByte(this.r * value));\n this.g = round(this.normalizeByte(this.g * value));\n this.b = round(this.normalizeByte(this.b * value));\n\n return this;\n };\n\n Color.prototype.percBrightness = function percBrightness () {\n return Math.sqrt(0.241 * this.r * this.r + 0.691 * this.g * this.g + 0.068 * this.b * this.b);\n };\n\n Color.prototype.isDark = function isDark () {\n return this.percBrightness() < DARK_TRESHOLD;\n };\n\n Color.fromBytes = function fromBytes (r, g, b, a) {\n return new Bytes(r, g, b, a != null ? a : 1);\n };\n\n Color.fromRGB = function fromRGB (r, g, b, a) {\n return new RGB(r, g, b, a != null ? a : 1);\n };\n\n Color.fromHSV = function fromHSV (h, s, v, a) {\n return new HSV(h, s, v, a != null ? a : 1);\n };\n\n Color.fromHSL = function fromHSL (h, s, l, a) {\n return new HSL(h, s, l, a != null ? a : 1);\n };\n\n return Color;\n}(Class));\n\nColor.formats = [ {\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\n process: function(parts) {\n return [\n parseInt(parts[1], 10), parseInt(parts[2], 10), parseInt(parts[3], 10)\n ];\n }\n}, {\n re: /^(\\w{2})(\\w{2})(\\w{2})$/,\n process: function(parts) {\n return [\n parseInt(parts[1], 16), parseInt(parts[2], 16), parseInt(parts[3], 16)\n ];\n }\n}, {\n re: /^(\\w{1})(\\w{1})(\\w{1})$/,\n process: function(parts) {\n return [\n parseInt(parts[1] + parts[1], 16),\n parseInt(parts[2] + parts[2], 16),\n parseInt(parts[3] + parts[3], 16)\n ];\n }\n} ];\n\nColor.namedColors = namedColors;\n\nexport default Color;","/**\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, 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\", \"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, 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 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","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 __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","/**\n * @hidden\n */\nexport var focusFirstFocusableChild = function (target) {\n if (target) {\n if ((target instanceof HTMLInputElement || target.tabIndex !== -1) && target.focus) {\n target.focus();\n return;\n }\n var element = target.querySelector('input, [tabindex]:not([tabindex=\"-1\"])');\n if (element && element.focus) {\n element.focus();\n }\n }\n};\n","/**\n * @hidden\n */\nexport var noop = function () { };\n","import * as React from 'react';\n/**\n * @hidden\n */\nexport var useInheritedState = function (context, defaultValue) {\n var _a = React.useContext(context), contextValue = _a[0], contextSetter = _a[1];\n var _b = React.useState(defaultValue), localValue = _b[0], localSetter = _b[1];\n var value = contextValue !== undefined ? contextValue : localValue;\n var handleValueChange = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n contextValue !== undefined\n ? contextSetter.apply(void 0, args) : localSetter(args[0]);\n };\n return [\n value,\n handleValueChange\n ];\n};\n","import * as React from 'react';\nimport { noop } from '../../noop';\n/**\n * @hidden\n */\nexport var DragContext = React.createContext([\n undefined,\n noop\n]);\n/**\n * @hidden\n */\nexport var DropContext = React.createContext([\n undefined,\n noop\n]);\n/**\n * @hidden\n */\nexport var DragsContext = React.createContext([[], noop, noop]);\n/**\n * @hidden\n */\nexport var DropsContext = React.createContext([[], noop, noop]);\n","import * as React from 'react';\nimport { dispatchDragAndDrop, autoScroll as autoScrollElement, getScrollableParent } from '@progress/kendo-draggable-common';\nimport { noop } from '../noop';\nimport { useInheritedState } from '../hooks/useInheritedState';\nimport { DragContext, DropContext, DragsContext, DropsContext } from '../drag-n-drop/context';\nvar IGNORE_MOUSE_TIMEOUT = 2000;\n/**\n * Represents the KendoReact `useDraggable` hook.\n * Use it to attach `drag` events to a native HTML DOM elements, or custom React Components.\n *\n * For more information, refer to the [KendoReact Draggable]({% slug draggable_drag-and-drop %}) article.\n *\n * @param ref - The `ref` of the HTML Element or React Component which will enable the `draggable` functionality.\n * @param callbacks - A collection of callbacks, called by the `useDraggable` hook when a specific action occurs.\n * @param options - Additional configuration of the `useDraggable` hook.\n */\nexport function useDraggable(ref, callbacks, options) {\n if (options === void 0) { options = {}; }\n var _a = callbacks.onPress, onPress = _a === void 0 ? noop : _a, _b = callbacks.onRelease, onRelease = _b === void 0 ? noop : _b, _c = callbacks.onDragStart, onDragStart = _c === void 0 ? noop : _c, _d = callbacks.onDrag, onDrag = _d === void 0 ? noop : _d, _e = callbacks.onDragEnd, onDragEnd = _e === void 0 ? noop : _e;\n var _f = options.hint, hint = _f === void 0 ? null : _f, _g = options.mouseOnly, mouseOnly = _g === void 0 ? false : _g, _h = options.autoScroll, autoScroll = _h === void 0 ? true : _h, _j = options.scrollContainer, scrollContainer = _j === void 0 ? null : _j;\n var _k = React.useState(false), pressed = _k[0], setPressed = _k[1];\n var _l = React.useState(false), scrolling = _l[0], setScrolling = _l[1];\n var drop = useInheritedState(DropContext)[0];\n var _m = useInheritedState(DragContext), drag = _m[0], setDrag = _m[1];\n var drops = React.useContext(DropsContext)[0];\n var _o = React.useContext(DragsContext), drags = _o[0], registerDrag = _o[1], deregisterDrag = _o[2];\n var velocity = React.useRef({ x: 0, y: 0 });\n var scrollInterval = React.useRef();\n var ignoreMouse = React.useRef(false);\n var restoreMouseTimeout = React.useRef();\n var scrollable = React.useRef(null);\n var unmount = React.useRef(false);\n var offset = React.useRef({ x: 0, y: 0 });\n var pageOffset = React.useRef({ x: 0, y: 0 });\n var clientOffset = React.useRef({ x: 0, y: 0 });\n var initialClientOffset = React.useRef({ x: 0, y: 0 });\n var scrollOffset = React.useRef({ x: 0, y: 0 });\n var initialScrollOffset = React.useRef({ x: 0, y: 0 });\n var supportPointerEvent = Boolean((typeof window !== 'undefined') && window.PointerEvent);\n var pointers = !mouseOnly && supportPointerEvent;\n var getElement = React.useCallback(function () { return ref.current && ref.current.element\n ? ref.current.element\n : ref.current; }, [ref]);\n var getHintElement = React.useCallback(function () { return hint && hint.current && hint.current.element\n ? hint.current.element\n : hint\n ? hint.current\n : null; }, [hint]);\n var getScrollContainer = React.useCallback(function () { return scrollContainer && scrollContainer.current && scrollContainer.current.element\n ? scrollContainer.current.element\n : scrollContainer\n ? scrollContainer.current\n : null; }, [scrollContainer]);\n var getAutoScrollContainer = React.useCallback(function () { return typeof autoScroll === 'object' && autoScroll.boundaryElementRef\n && autoScroll.boundaryElementRef.current && autoScroll.boundaryElementRef.current.element\n ? autoScroll.boundaryElementRef.current.element\n : typeof autoScroll === 'object' && autoScroll.boundaryElementRef && autoScroll.boundaryElementRef.current\n ? autoScroll.boundaryElementRef.current\n : null; }, [autoScroll]);\n var target = React.useRef(null);\n React.useImperativeHandle(target, function () { return ({\n element: getElement(),\n hint: getHintElement(),\n onPress: handlePress,\n onDragStart: handleDragStart,\n onDrag: handleDrag,\n onDragEnd: handleDragEnd,\n onRelease: handleRelease,\n data: ref.current\n }); });\n var getDocument = React.useCallback(function () {\n var element = getElement();\n return element ? element.ownerDocument || document : document;\n }, [getElement]);\n var getWindow = React.useCallback(function () {\n var document = getDocument();\n return document\n ? document.defaultView || window\n : window;\n }, [getDocument]);\n var getState = React.useCallback(function () { return ({\n drag: drag ? drag.current : null,\n drop: drop ? drop.current : null,\n drags: drags.map(function (d) { return d.current; }),\n drops: drops.map(function (d) { return d.current; }),\n pressed: pressed,\n ignoreMouse: ignoreMouse.current,\n scrollOffset: scrollOffset.current,\n offset: offset.current,\n pageOffset: pageOffset.current,\n initialScrollOffset: initialScrollOffset.current,\n clientOffset: clientOffset.current,\n initialClientOffset: initialClientOffset.current,\n velocity: velocity.current,\n autoScroll: Boolean(typeof autoScroll === 'object' ? autoScroll.enabled !== false : autoScroll),\n scrollableParent: getAutoScrollContainer(),\n autoScrollDirection: typeof autoScroll === 'object' ? autoScroll.direction : { horizontal: true, vertical: true },\n isScrolling: scrolling\n }); }, [drag, drop, drags, drops, pressed, autoScroll, getAutoScrollContainer, scrolling]);\n var handlePressedChange = React.useCallback(function (value) {\n setPressed(value);\n }, []);\n var handleScrollingChange = React.useCallback(function (value) {\n setScrolling(value);\n }, []);\n var handleVelocityChange = React.useCallback(function (value) {\n velocity.current = value;\n }, []);\n var handleOffsetChange = React.useCallback(function (value) {\n offset.current = value;\n }, []);\n var handleClientOffsetChange = React.useCallback(function (value) {\n clientOffset.current = value;\n }, []);\n var handlePageOffsetChange = React.useCallback(function (value) {\n pageOffset.current = value;\n }, []);\n var handleInitialClientOffsetChange = React.useCallback(function (value) {\n initialClientOffset.current = value;\n }, []);\n var handleScrollOffsetChange = React.useCallback(function (value) {\n scrollOffset.current = value;\n }, []);\n var handleInitialScrollOffsetChange = React.useCallback(function (value) {\n initialScrollOffset.current = value;\n }, []);\n // Drag Events\n var handlePress = React.useCallback(function (event) {\n onPress(event);\n }, [onPress]);\n var handleRelease = React.useCallback(function (event) {\n onRelease(event);\n }, [onRelease]);\n var handleDragStart = React.useCallback(function (event) {\n setDrag(target, { target: ref.current, event: event });\n onDragStart(event);\n }, [setDrag, ref, onDragStart]);\n var handleDrag = React.useCallback(function (event) {\n onDrag(event);\n }, [onDrag]);\n var handleDragEnd = React.useCallback(function (event) {\n if (unmount.current) {\n return;\n }\n setDrag(null, { target: ref.current, event: event });\n onDragEnd(event);\n }, [onDragEnd, setDrag, ref]);\n var dispatchDragEvent = React.useCallback(function (event) {\n dispatchDragAndDrop(getState(), { event: event, payload: target.current }, {\n onVelocityChange: handleVelocityChange,\n onOffsetChange: handleOffsetChange,\n onClientOffsetChange: handleClientOffsetChange,\n onPageOffsetChange: handlePageOffsetChange,\n onInitialClientOffsetChange: handleInitialClientOffsetChange,\n onScrollOffsetChange: handleScrollOffsetChange,\n onInitialScrollOffsetChange: handleInitialScrollOffsetChange,\n onIsPressedChange: handlePressedChange,\n onIsScrollingChange: handleScrollingChange\n });\n }, [\n getState,\n handleVelocityChange,\n handleOffsetChange,\n handlePageOffsetChange,\n handleClientOffsetChange,\n handleInitialClientOffsetChange,\n handleInitialScrollOffsetChange,\n handlePressedChange,\n handleScrollOffsetChange,\n handleScrollingChange\n ]);\n // Pointer Events\n var handlePointerDown = React.useCallback(function (event) {\n dispatchDragEvent(event);\n }, [dispatchDragEvent]);\n var handlePointerMove = React.useCallback(function (event) {\n dispatchDragEvent(event);\n }, [dispatchDragEvent]);\n var handlePointerCancel = React.useCallback(function (event) {\n dispatchDragEvent(event);\n }, [dispatchDragEvent]);\n var handlePointerUp = React.useCallback(function (event) {\n dispatchDragEvent(event);\n }, [dispatchDragEvent]);\n // Mouse Events\n var handleMouseDown = React.useCallback(function (event) {\n dispatchDragEvent(event);\n }, [dispatchDragEvent]);\n var handleMouseMove = React.useCallback(function (event) {\n dispatchDragEvent(event);\n }, [dispatchDragEvent]);\n var handleMouseUp = React.useCallback(function (event) {\n dispatchDragEvent(event);\n }, [dispatchDragEvent]);\n var handleContextMenu = React.useCallback(function (event) {\n event.preventDefault();\n dispatchDragEvent(event);\n }, [dispatchDragEvent]);\n // Touch Events\n var handleTouchStart = React.useCallback(function (event) {\n event.preventDefault();\n dispatchDragEvent(event);\n }, [dispatchDragEvent]);\n var handleTouchMove = React.useCallback(function (event) {\n event.preventDefault();\n dispatchDragEvent(event);\n }, [dispatchDragEvent]);\n var handleTouchEnd = React.useCallback(function (event) {\n if (event.touches.length === 0 && event.changedTouches.length === 1) {\n var currentWindow = getWindow();\n ignoreMouse.current = true;\n restoreMouseTimeout.current = currentWindow.setTimeout(function () { ignoreMouse.current = false; }, IGNORE_MOUSE_TIMEOUT);\n }\n dispatchDragEvent(event);\n }, [dispatchDragEvent, getWindow]);\n var handleScroll = React.useCallback(function (event) {\n dispatchDragEvent(event);\n }, [dispatchDragEvent]);\n // Misc\n var prerequisites = React.useCallback(function () {\n var element = getElement();\n if (element) {\n var initialTouchAction_1 = element.style.touchAction;\n element.style.touchAction = 'none';\n return function () {\n element.style.touchAction = initialTouchAction_1;\n };\n }\n }, [getElement]);\n var register = React.useCallback(function () {\n registerDrag(target);\n return function () {\n deregisterDrag(target);\n };\n }, [deregisterDrag, registerDrag]);\n var init = function () {\n var window = getWindow();\n var element = getElement();\n var document = getDocument();\n if (pointers) {\n if (element) {\n scrollable.current = getScrollableParent(element);\n if (scrollable.current) {\n scrollable.current.addEventListener('scroll', handleScroll, { passive: true });\n }\n element.addEventListener('pointerdown', handlePointerDown, { passive: true });\n }\n if (pressed) {\n document.addEventListener('pointermove', handlePointerMove);\n document.addEventListener('pointerup', handlePointerUp, true);\n document.addEventListener('contextmenu', handleContextMenu);\n document.addEventListener('pointercancel', handlePointerCancel, { passive: true });\n }\n }\n else {\n // Hacky-hacky iOS Safari\n window.addEventListener('touchmove', noop, { capture: false, passive: false });\n if (element) {\n element.addEventListener('mousedown', handleMouseDown, { passive: true });\n if (!mouseOnly) {\n element.addEventListener('touchstart', handleTouchStart, { passive: true });\n if (pressed) {\n element.addEventListener('touchmove', handleTouchMove, { passive: true });\n element.addEventListener('touchend', handleTouchEnd, { passive: true });\n }\n }\n }\n if (pressed) {\n document.addEventListener('mousemove', handleMouseMove, { passive: true });\n document.addEventListener('mouseup', handleMouseUp, { passive: true });\n }\n }\n return function () {\n if (scrollable.current) {\n scrollable.current.removeEventListener('scroll', handleScroll);\n }\n if (element) {\n element.removeEventListener('pointerdown', handlePointerDown);\n element.removeEventListener('mousedown', handleMouseDown);\n element.removeEventListener('touchstart', handleTouchStart);\n element.removeEventListener('touchmove', handleTouchMove);\n element.removeEventListener('touchend', handleTouchEnd);\n }\n document.removeEventListener('pointermove', handlePointerMove);\n document.removeEventListener('pointerup', handlePointerUp, true);\n document.removeEventListener('contextmenu', handleContextMenu);\n document.removeEventListener('pointercancel', handlePointerCancel);\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseup', handleMouseUp);\n window.removeEventListener('touchmove', noop);\n window.clearTimeout(restoreMouseTimeout.current);\n };\n };\n React.useEffect(function () {\n var window = getWindow();\n if (scrolling) {\n var scrollableParent_1 = getScrollContainer()\n || getScrollableParent(document.elementFromPoint(clientOffset.current.x, clientOffset.current.y));\n window.clearInterval(scrollInterval.current);\n scrollInterval.current = window.setInterval(function () {\n autoScrollElement(scrollableParent_1, { x: velocity.current.x, y: velocity.current.y });\n }, 50);\n }\n return function () {\n window.clearInterval(scrollInterval.current);\n };\n }, [getElement, getScrollContainer, getWindow, scrolling]);\n React.useEffect(prerequisites, [prerequisites]);\n React.useEffect(init, [\n pressed,\n getWindow,\n getElement,\n getDocument,\n mouseOnly,\n pointers,\n handleContextMenu,\n handleMouseDown,\n handleMouseMove,\n handleMouseUp,\n handlePointerCancel,\n handlePointerDown,\n handlePointerMove,\n handlePointerUp,\n handleTouchEnd,\n handleTouchMove,\n handleTouchStart,\n handleScroll\n ]);\n React.useEffect(function () {\n unmount.current = false;\n return function () {\n unmount.current = true;\n };\n }, []);\n React.useLayoutEffect(register, [register]);\n}\n","import * as React from 'react';\nimport { useDraggable } from './hooks';\n/**\n * Represents the KendoReact Draggable component.\n *\n * Accepts properties of type [DraggableProps]({% slug api_common_draggableprops %}),\n * and returns an object of type [DraggableHandle]({% slug api_common_draggablehandle %}) when the `ref` is obtained.\n */\nexport var Draggable = React.forwardRef(function (props, ref) {\n var childRef = React.useRef(null);\n var target = React.useRef(null);\n var getElement = React.useCallback(function () { return childRef.current && childRef.current.element\n ? childRef.current.element\n : childRef.current; }, [childRef]);\n React.useImperativeHandle(target, function () { return ({ element: getElement() || null }); });\n React.useImperativeHandle(ref, function () { return target.current; });\n React.useImperativeHandle(props.childRef, function () { return childRef.current; });\n var handlePress = React.useCallback(function (event) {\n if (!props.onPress) {\n return;\n }\n props.onPress({\n element: getElement(),\n target: target.current,\n event: event\n });\n }, [getElement, props.onPress]);\n var handleRelease = React.useCallback(function (event) {\n if (!props.onRelease) {\n return;\n }\n props.onRelease({\n element: getElement(),\n target: target.current,\n event: event\n });\n }, [getElement, props.onRelease]);\n var handleDragStart = React.useCallback(function (event) {\n if (!props.onDragStart) {\n return;\n }\n props.onDragStart({\n element: getElement(),\n target: target.current,\n event: event\n });\n }, [props, getElement]);\n var handleDrag = React.useCallback(function (event) {\n if (!props.onDrag) {\n return;\n }\n props.onDrag({\n element: getElement(),\n target: target.current,\n event: event\n });\n }, [getElement, props.onDrag]);\n var handleDragEnd = React.useCallback(function (event) {\n if (!props.onDragEnd) {\n return;\n }\n props.onDragEnd({\n element: getElement(),\n target: target.current,\n event: event\n });\n }, [getElement, props.onDragEnd]);\n useDraggable(childRef, {\n onPress: handlePress,\n onRelease: handleRelease,\n onDragStart: handleDragStart,\n onDrag: handleDrag,\n onDragEnd: handleDragEnd\n }, {\n mouseOnly: props.mouseOnly,\n autoScroll: props.autoScroll,\n hint: props.hint,\n scrollContainer: props.scrollContainer\n });\n return props.children\n ? (React.cloneElement(React.Children.only(props.children), { ref: childRef }))\n : null;\n});\nDraggable.displayName = 'KendoReactDraggable';\n","/**\n * @hidden\n */\nexport var Keys = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n esc: 27,\n space: 32,\n pageUp: 33,\n pageDown: 34,\n end: 35,\n home: 36,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n delete: 46\n};\n","import * as React from 'react';\n/**\n * @hidden\n */\nexport function useDir(elementRef, initialDir, args) {\n // Dir prop is read only on initial rendering due to specifics of getComputedStyles - see below\n var _a = React.useState(initialDir), dir = _a[0], setDir = _a[1];\n React.useEffect(function () {\n if (!dir && window && elementRef.current) {\n // Note: getComputedStyle forces reflow\n var rtlCandidate = window.getComputedStyle(elementRef.current).direction;\n if (rtlCandidate) {\n // rerender is needed as DOM is read after first render\n setDir(rtlCandidate);\n }\n }\n }, args);\n return dir;\n}\n","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","/**\n * @hidden\n */\nexport var SIZE_CLASSES = {\n 'default': '',\n 'xsmall': 'k-icon-xs',\n 'small': 'k-icon-sm',\n 'medium': 'k-icon-md',\n 'large': 'k-icon-lg',\n 'xlarge': 'k-icon-xl',\n 'xxlarge': 'k-icon-xxl',\n 'xxxlarge': 'k-icon-xxxl'\n};\n","import * as PropTypes from 'prop-types';\n/**\n * @hidden\n */\nexport var toIconName = function (iconClass) { return iconClass.replace(/^k-i-/, ''); };\n/**\n * @hidden\n */\nexport var toIconClass = function (name) { return 'k-i-' + name; };\n/**\n * @hidden\n */\nexport var svgIconPropType = PropTypes.shape({\n name: PropTypes.string.isRequired,\n content: PropTypes.string.isRequired,\n viewBox: PropTypes.string.isRequired\n});\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '../classNames';\nimport { SIZE_CLASSES } from './constants';\nimport { toIconClass, useMouse } from '../main';\n/**\n * Represents the [KendoReact Icon component]({% slug overview_icon %}).\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * <Icon name=\"home\"/>\n * );\n * };\n * ReactDOM.render(<App />, document.querySelector('my-app'));\n * ```\n */\nexport var Icon = React.forwardRef(function (props, ref) {\n var className = props.className, name = props.name, themeColor = props.themeColor, size = props.size, flip = props.flip, style = props.style, id = props.id, tabIndex = props.tabIndex, others = __rest(props, [\"className\", \"name\", \"themeColor\", \"size\", \"flip\", \"style\", \"id\", \"tabIndex\"]);\n var target = React.useRef(null);\n var elementRef = React.useRef(null);\n React.useImperativeHandle(target, function () { return ({\n element: elementRef.current\n }); });\n React.useImperativeHandle(ref, function () { return target.current; });\n var sizeProp = React.useMemo(function () { return size || defaultProps.size; }, [size]);\n var flipProp = React.useMemo(function () { return flip || defaultProps.flip; }, [flip]);\n var fontClassNames = React.useMemo(function () {\n var _a;\n return classNames('k-icon', name && toIconClass(name), (_a = {},\n _a[\"k-color-\".concat(themeColor)] = themeColor,\n _a['k-flip-h'] = flipProp === 'horizontal' || flipProp === 'both',\n _a['k-flip-v'] = flipProp === 'vertical' || flipProp === 'both',\n _a), SIZE_CLASSES[sizeProp], className);\n }, [name, themeColor, sizeProp, flipProp, className]);\n var mouseProps = useMouse(props, target);\n return (React.createElement(\"span\", __assign({ ref: elementRef }, others, mouseProps, { className: fontClassNames, id: id, tabIndex: tabIndex, style: style, role: \"presentation\" })));\n});\nIcon.propTypes = {\n style: PropTypes.object,\n classNames: PropTypes.string,\n name: PropTypes.string,\n themeColor: PropTypes.oneOf([\n 'inherit', 'primary', 'secondary', 'tertiary',\n 'info', 'success', 'error', 'warning',\n 'dark', 'light', 'inverse'\n ]),\n size: PropTypes.oneOf(['default', 'xsmall', 'small', 'medium', 'large', 'xlarge', 'xxlarge', 'xxxlarge']),\n flip: PropTypes.oneOf(['default', 'horizontal', 'vertical', 'both'])\n};\nvar defaultProps = {\n size: 'default',\n flip: 'default'\n};\nIcon.displayName = 'KendoIcon';\n","import * as React from 'react';\n/**\n * @hidden\n */\nexport var useMouse = function (props, target, extend) {\n if (extend === void 0) { extend = {}; }\n var handleMouseDown = React.useCallback(function (event) {\n if (extend.onMouseDown) {\n extend.onMouseDown.call(undefined, event);\n }\n if (props.onMouseDown) {\n props.onMouseDown.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [extend.onMouseDown, props.onMouseDown, target]);\n var handleMouseUp = React.useCallback(function (event) {\n if (extend.onMouseUp) {\n extend.onMouseUp.call(undefined, event);\n }\n if (props.onMouseUp) {\n props.onMouseUp.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [extend.onMouseUp, props.onMouseUp, target]);\n var handleClick = React.useCallback(function (event) {\n if (extend.onClick) {\n extend.onClick.call(undefined, event);\n }\n if (props.onClick) {\n props.onClick.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [extend.onClick, props.onClick, target]);\n var handleDoubleClick = React.useCallback(function (event) {\n if (extend.onDoubleClick) {\n extend.onDoubleClick.call(undefined, event);\n }\n if (props.onDoubleClick) {\n props.onDoubleClick.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [extend.onDoubleClick, props.onDoubleClick, target]);\n var handleMouseEnter = React.useCallback(function (event) {\n if (extend.onMouseEnter) {\n extend.onMouseEnter.call(undefined, event);\n }\n if (props.onMouseEnter) {\n props.onMouseEnter.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [extend.onMouseEnter, props.onMouseEnter, target]);\n var handleMouseLeave = React.useCallback(function (event) {\n if (extend.onMouseLeave) {\n extend.onMouseLeave.call(undefined, event);\n }\n if (props.onMouseLeave) {\n props.onMouseLeave.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [extend.onMouseLeave, props.onMouseLeave, target]);\n var handelMouseMove = React.useCallback(function (event) {\n if (extend.onMouseMove) {\n extend.onMouseMove.call(undefined, event);\n }\n if (props.onMouseMove) {\n props.onMouseMove.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [extend.onMouseMove, props.onMouseMove, target]);\n var handleMouseOut = React.useCallback(function (event) {\n if (extend.onMouseOut) {\n extend.onMouseOut.call(undefined, event);\n }\n if (props.onMouseOut) {\n props.onMouseOut.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [extend.onMouseOut, props.onMouseOut, target]);\n var handleMouseOver = React.useCallback(function (event) {\n if (extend.onMouseOver) {\n extend.onMouseOver.call(undefined, event);\n }\n if (props.onMouseOver) {\n props.onMouseOver.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [extend.onMouseOver, props.onMouseOver, target]);\n return {\n onClick: handleClick,\n onMouseUp: handleMouseUp,\n onMouseDown: handleMouseDown,\n onDoubleClick: handleDoubleClick,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onMouseMove: handelMouseMove,\n onMouseOut: handleMouseOut,\n onMouseOver: handleMouseOver\n };\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '../classNames';\nimport { SIZE_CLASSES } from './constants';\n/**\n * Represents the [KendoReact SvgIcon component]({% slug overview_svgicon %}).\n *\n * @example\n * ```jsx\n * import { accessibility } from '@progress/kendo-svg-icons';\n *\n * const App = () => {\n * return (\n * <SvgIcon icon={accessibility} />\n * );\n * };\n * ReactDOM.render(<App />, document.querySelector('my-app'));\n * ```\n */\nexport var SvgIcon = React.forwardRef(function (props, ref) {\n var children = props.children, className = props.className, svgClassName = props.svgClassName, icon = props.icon, flip = props.flip, id = props.id, tabIndex = props.tabIndex, size = props.size, style = props.style, svgStyle = props.svgStyle, themeColor = props.themeColor, viewBox = props.viewBox, name = props.name, others = __rest(props, [\"children\", \"className\", \"svgClassName\", \"icon\", \"flip\", \"id\", \"tabIndex\", \"size\", \"style\", \"svgStyle\", \"themeColor\", \"viewBox\", \"name\"]);\n var elementRef = React.useRef(null);\n React.useImperativeHandle(ref, function () { return ({\n element: elementRef.current\n }); });\n var iconNameProp = React.useMemo(function () { return icon ? icon.name : defaultProps.icon; }, [icon]);\n var sizeProp = React.useMemo(function () { return size || defaultProps.size; }, [size]);\n var flipProp = React.useMemo(function () { return flip || defaultProps.flip; }, [flip]);\n var viewBoxProp = React.useMemo(function () { return viewBox || defaultProps.viewBox; }, [viewBox]);\n var elementClassNames = React.useMemo(function () {\n var _a;\n return classNames('k-svg-icon', 'k-svg-i-' + iconNameProp, (_a = {},\n _a[\"k-color-\".concat(themeColor)] = themeColor,\n _a['k-flip-h'] = flipProp === 'horizontal' || flipProp === 'both',\n _a['k-flip-v'] = flipProp === 'vertical' || flipProp === 'both',\n _a), SIZE_CLASSES[sizeProp], className);\n }, [iconNameProp, themeColor, sizeProp, flipProp, className]);\n var elementStyle = React.useMemo(function () {\n if (props.width && props.height) {\n return __assign({ width: props.width, height: props.height }, style);\n }\n else if (props.width) {\n return __assign({ width: props.width, height: props.width }, style);\n }\n else if (props.height) {\n return __assign({ width: props.height, height: props.height }, style);\n }\n else {\n return __assign({}, style);\n }\n }, [props.width, props.height, style]);\n return (React.createElement(\"span\", { className: elementClassNames, style: elementStyle, ref: elementRef },\n React.createElement(\"svg\", __assign({ id: id, className: svgClassName, style: svgStyle, \"aria-hidden\": true, tabIndex: tabIndex, focusable: false, xmlns: \"http://www.w3.org/2000/svg\", viewBox: icon ? icon.viewBox : viewBoxProp, dangerouslySetInnerHTML: icon ? { __html: icon.content } : undefined }, others), icon ? undefined : children)));\n});\nSvgIcon.propTypes = {\n style: PropTypes.object,\n classNames: PropTypes.string,\n children: PropTypes.any,\n icon: PropTypes.object,\n themeColor: PropTypes.oneOf([\n 'inherit', 'primary', 'secondary', 'tertiary',\n 'info', 'success', 'error', 'warning',\n 'dark', 'light', 'inverse'\n ]),\n size: PropTypes.oneOf(['default', 'xsmall', 'small', 'medium', 'large', 'xlarge', 'xxlarge', 'xxxlarge']),\n flip: PropTypes.oneOf(['default', 'horizontal', 'vertical', 'both'])\n};\nvar defaultProps = {\n size: 'default',\n flip: 'default',\n icon: '',\n viewBox: '0 0 24 24'\n};\nSvgIcon.displayName = 'KendoSvgIcon';\n","import * as React from 'react';\n;\n/**\n * Represents a React Context which provides you with the option to configure the KendoReact components icons.\n */\nexport var IconsContext = React.createContext({ type: 'svg' });\nIconsContext.displayName = 'KendoReactIconsContext';\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { Icon } from './Icon';\nimport { SvgIcon } from './SvgIcon';\nimport { IconsContext } from './IconsContext';\n/**\n * @hidden\n */\nexport var IconWrap = React.forwardRef(function (props, ref) {\n var _a;\n var _b = React.useContext(IconsContext), type = _b.type, icons = _b.icons;\n var icon = props.icon, fontIconProps = __rest(props, [\"icon\"]);\n var name = ((_a = props.icon) === null || _a === void 0 ? void 0 : _a.name) || props.name;\n var svg = (name && icons && icons[name] && typeof icons[name] !== 'string') ? icons[name] : icon;\n name = (name && icons && icons[name] && typeof icons[name] === 'string') ? icons[name] : name;\n return (type === 'svg' && svg) ?\n React.createElement(SvgIcon, __assign({}, props, { icon: svg, ref: ref })) :\n React.createElement(Icon, __assign({}, fontIconProps, { name: name, ref: ref }));\n});\nIconWrap.displayName = 'KendoIconWrap';\n","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 });\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 };\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 });\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 };\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;\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 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 focus: focusElement\n }); });\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 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)), 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};\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 */\nvar styles = {\n button: 'k-button',\n 'flat': 'k-flat',\n 'outline': 'k-outline',\n 'clear': 'k-button-clear',\n 'primary': 'k-primary',\n 'state-selected': 'k-selected',\n 'button-icon': 'k-button-icon',\n 'button-icontext': 'k-button-icontext',\n 'state-disabled': 'k-disabled',\n 'group-start': 'k-group-start',\n 'group-end': 'k-group-end',\n 'button-group': 'k-button-group',\n 'button-group-stretched': 'k-button-group-stretched',\n 'ltr': 'k-ltr',\n 'rtl': 'k-rtl'\n};\n// const notDisabled = ':not(.k-disabled):not([disabled]):not([disabled=\"true\"])';\nvar noInnerButton = ':not(.k-dropdownlist button):not(.k-colorpicker button):not(.k-split-button .k-split-button-arrow)';\n/**\n * @hidden\n */\nexport var toolbarButtons = [\n 'button' + noInnerButton,\n '.k-button-group > button' + noInnerButton,\n '.k-dropdownlist',\n '.k-colorpicker'\n];\n/**\n * @hidden\n */\nexport default {\n styles: styles\n};\n","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 */\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 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 () {\n setColorValue(defaultValue);\n }, [defaultValue]);\n var handleColorChange = React.useCallback(function (event) {\n setColorValue(event.value);\n }, []);\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 () {\n setColorValue(prevColor);\n }, [prevColor]);\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 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._element) {\n _this._element.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 }));\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 /**\n * @hidden\n */\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, id = _d.id, offLabel = _d.offLabel, onLabel = _d.onLabel, tabIndex = _d.tabIndex;\n this.dir = dir || (this._wrapper && getComputedStyle(this._wrapper).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 };\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 }),\n React.createElement(\"span\", { className: classNames('k-switch-track', (_b = {},\n _b[\"k-rounded-\".concat(kendoThemeMaps.roundedMap[trackRounded] || trackRounded)] = trackRounded,\n _b)), id: id || this._id, ref: function (span) {\n _this._element = span;\n }, tabIndex: getTabIndex(tabIndex, disabled, undefined), accessKey: this.props.accessKey },\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 = {},\n _c[\"k-rounded-\".concat(thumbRounded)] = thumbRounded,\n _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, 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\", \"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: 'k-checkbox-label', 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","import * as React from 'react';\n// Same as 'useDir'. Export to avoid breaking change.\n// 'useRtl' is incorrect naming, since applies that the returned value is `true` or `false`.\n// but instead, it is returning `ltr` or `rtl`.\n/**\n * @hidden\n */\nexport function useRtl(elementRef, initialDir, args) {\n // Dir prop is read only on initial rendering due to specifics of getComputedStyles - see below\n var _a = React.useState(initialDir), dir = _a[0], setDir = _a[1];\n React.useEffect(function () {\n if (!dir && window && elementRef.current) {\n // Note: getComputedStyle forces reflow\n var rtlCandidate = window.getComputedStyle(elementRef.current).direction;\n if (rtlCandidate) {\n // rerender is needed as DOM is read after first render\n setDir(rtlCandidate);\n }\n }\n }, args);\n return dir;\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { 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","/* 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","function setAccessor(field) {\n return function(value) {\n if (this[field] !== value) {\n this[field] = value;\n this.geometryChange();\n }\n\n return this;\n };\n}\n\nfunction getAccessor(field) {\n return function() {\n return this[field];\n };\n}\n\nfunction defineAccessors(fn, fields) {\n for (var i = 0; i < fields.length; i++) {\n var name = fields[i];\n var capitalized = name.charAt(0).toUpperCase() +\n name.substring(1, name.length);\n\n fn[\"set\" + capitalized] = setAccessor(name);\n fn[\"get\" + capitalized] = getAccessor(name);\n }\n}\n\nvar withAccessors = function (TBase, names) {\n var result = (function (TBase) {\n function result () {\n TBase.apply(this, arguments);\n }if ( TBase ) result.__proto__ = TBase;\n result.prototype = Object.create( TBase && TBase.prototype );\n result.prototype.constructor = result;\n\n \n\n return result;\n }(TBase));\n defineAccessors(result.prototype, names);\n\n return result;\n};\n\nexport default withAccessors;\n","import { Class } from '../common';\n\nvar HasObservers = (function (Class) {\n function HasObservers () {\n Class.apply(this, arguments);\n }\n\n if ( Class ) HasObservers.__proto__ = Class;\n HasObservers.prototype = Object.create( Class && Class.prototype );\n HasObservers.prototype.constructor = HasObservers;\n\n HasObservers.prototype.observers = function observers () {\n this._observers = this._observers || [];\n return this._observers;\n };\n\n HasObservers.prototype.addObserver = function addObserver (element) {\n if (!this._observers) {\n this._observers = [ element ];\n } else {\n this._observers.push(element);\n }\n return this;\n };\n\n HasObservers.prototype.removeObserver = function removeObserver (element) {\n var observers = this.observers();\n var index = observers.indexOf(element);\n if (index !== -1) {\n observers.splice(index, 1);\n }\n return this;\n };\n\n HasObservers.prototype.trigger = function trigger (methodName, event) {\n var observers = this._observers;\n\n if (observers && !this._suspended) {\n for (var idx = 0; idx < observers.length; idx++) {\n var observer = observers[idx];\n if (observer[methodName]) {\n observer[methodName](event);\n }\n }\n }\n return this;\n };\n\n HasObservers.prototype.optionsChange = function optionsChange (e) {\n if ( e === void 0 ) e = {};\n\n e.element = this;\n this.trigger(\"optionsChange\", e);\n };\n\n HasObservers.prototype.geometryChange = function geometryChange () {\n this.trigger(\"geometryChange\", {\n element: this\n });\n };\n\n HasObservers.prototype.suspend = function suspend () {\n this._suspended = (this._suspended || 0) + 1;\n return this;\n };\n\n HasObservers.prototype.resume = function resume () {\n this._suspended = Math.max((this._suspended || 0) - 1, 0);\n return this;\n };\n\n HasObservers.prototype._observerField = function _observerField (field, value) {\n if (this[field]) {\n this[field].removeObserver(this);\n }\n this[field] = value;\n value.addObserver(this);\n };\n\n return HasObservers;\n}(Class));\n\nexport default HasObservers;\n\n","function pow(p) {\n if (p) {\n return Math.pow(10, p);\n }\n\n return 1;\n}\n\nexport default function round(value, precision) {\n var power = pow(precision);\n return Math.round(value * power) / power;\n}","var UNDEFINED = \"undefined\";\n\nexport default function defined(value) {\n return typeof value !== UNDEFINED;\n}","var DEG_TO_RAD = Math.PI / 180;\nvar MAX_NUM = Number.MAX_VALUE;\nvar MIN_NUM = -Number.MAX_VALUE;\n\nexport { DEG_TO_RAD, MAX_NUM, MIN_NUM };","import { DEG_TO_RAD } from './constants';\n\nexport default function rad(degrees) {\n return degrees * DEG_TO_RAD;\n}\n","import { Class } from '../common';\nimport defined from '../util/defined';\nimport rad from '../util/rad';\nimport round from '../util/round';\n\nvar Matrix = (function (Class) {\n function Matrix(a, b, c, d, e, f) {\n if ( a === void 0 ) a = 0;\n if ( b === void 0 ) b = 0;\n if ( c === void 0 ) c = 0;\n if ( d === void 0 ) d = 0;\n if ( e === void 0 ) e = 0;\n if ( f === void 0 ) f = 0;\n\n Class.call(this);\n\n this.a = a;\n this.b = b;\n this.c = c;\n this.d = d;\n this.e = e;\n this.f = f;\n }\n\n if ( Class ) Matrix.__proto__ = Class;\n Matrix.prototype = Object.create( Class && Class.prototype );\n Matrix.prototype.constructor = Matrix;\n\n Matrix.prototype.multiplyCopy = function multiplyCopy (matrix) {\n return new Matrix(\n this.a * matrix.a + this.c * matrix.b,\n this.b * matrix.a + this.d * matrix.b,\n this.a * matrix.c + this.c * matrix.d,\n this.b * matrix.c + this.d * matrix.d,\n this.a * matrix.e + this.c * matrix.f + this.e,\n this.b * matrix.e + this.d * matrix.f + this.f\n );\n };\n\n Matrix.prototype.invert = function invert () {\n var ref = this;\n var a = ref.a;\n var b = ref.b;\n var d = ref.c;\n var e = ref.d;\n var g = ref.e;\n var h = ref.f;\n var det = a * e - b * d;\n\n if (det === 0) {\n return null;\n }\n\n return new Matrix(e / det, -b / det, -d / det, a / det,\n (d * h - e * g) / det, (b * g - a * h) / det);\n };\n\n Matrix.prototype.clone = function clone () {\n return new Matrix(this.a, this.b, this.c, this.d, this.e, this.f);\n };\n\n Matrix.prototype.equals = function equals (other) {\n if (!other) {\n return false;\n }\n\n return this.a === other.a && this.b === other.b &&\n this.c === other.c && this.d === other.d &&\n this.e === other.e && this.f === other.f;\n };\n\n Matrix.prototype.round = function round$1 (precision) {\n this.a = round(this.a, precision);\n this.b = round(this.b, precision);\n this.c = round(this.c, precision);\n this.d = round(this.d, precision);\n this.e = round(this.e, precision);\n this.f = round(this.f, precision);\n\n return this;\n };\n\n Matrix.prototype.toArray = function toArray (precision) {\n var result = [ this.a, this.b, this.c, this.d, this.e, this.f ];\n\n if (defined(precision)) {\n for (var i = 0; i < result.length; i++) {\n result[i] = round(result[i], precision);\n }\n }\n\n return result;\n };\n\n Matrix.prototype.toString = function toString (precision, separator) {\n if ( separator === void 0 ) separator = \",\";\n\n return this.toArray(precision).join(separator);\n };\n\n Matrix.translate = function translate (x, y) {\n return new Matrix(1, 0, 0, 1, x, y);\n };\n\n Matrix.unit = function unit () {\n return new Matrix(1, 0, 0, 1, 0, 0);\n };\n\n Matrix.rotate = function rotate (angle, x, y) {\n var matrix = new Matrix();\n matrix.a = Math.cos(rad(angle));\n matrix.b = Math.sin(rad(angle));\n matrix.c = -matrix.b;\n matrix.d = matrix.a;\n matrix.e = (x - x * matrix.a + y * matrix.b) || 0;\n matrix.f = (y - y * matrix.a - x * matrix.b) || 0;\n\n return matrix;\n };\n\n Matrix.scale = function scale (scaleX, scaleY) {\n return new Matrix(scaleX, 0, 0, scaleY, 0, 0);\n };\n\n return Matrix;\n}(Class));\n\nMatrix.IDENTITY = Matrix.unit();\n\nexport default Matrix;\n","export default function toMatrix(transformation) {\n if (transformation && typeof transformation.matrix === \"function\") {\n return transformation.matrix();\n }\n\n return transformation;\n}","import withAccessors from '../mixins/with-accessors';\nimport HasObservers from '../core/has-observers';\nimport { defined, MIN_NUM, MAX_NUM, round } from '../util';\nimport Matrix from './matrix';\nimport toMatrix from './to-matrix';\n\n\nvar Point = (function (superclass) {\n function Point(x, y) {\n superclass.call(this);\n\n this.x = x || 0;\n this.y = y || 0;\n }\n\n if ( superclass ) Point.__proto__ = superclass;\n Point.prototype = Object.create( superclass && superclass.prototype );\n Point.prototype.constructor = Point;\n\n var staticAccessors = { ZERO: { configurable: true } };\n\n Point.prototype.equals = function equals (other) {\n return other && other.x === this.x && other.y === this.y;\n };\n\n Point.prototype.clone = function clone () {\n return new Point(this.x, this.y);\n };\n\n Point.prototype.rotate = function rotate (angle, origin) {\n var originPoint = Point.create(origin) || Point.ZERO;\n\n return this.transform(Matrix.rotate(angle, originPoint.x, originPoint.y));\n };\n\n Point.prototype.translate = function translate (x, y) {\n this.x += x;\n this.y += y;\n\n this.geometryChange();\n\n return this;\n };\n\n Point.prototype.translateWith = function translateWith (point) {\n return this.translate(point.x, point.y);\n };\n\n Point.prototype.move = function move (x, y) {\n this.x = this.y = 0;\n return this.translate(x, y);\n };\n\n Point.prototype.scale = function scale (scaleX, scaleY) {\n if ( scaleY === void 0 ) scaleY = scaleX;\n\n this.x *= scaleX;\n this.y *= scaleY;\n\n this.geometryChange();\n\n return this;\n };\n\n Point.prototype.scaleCopy = function scaleCopy (scaleX, scaleY) {\n return this.clone().scale(scaleX, scaleY);\n };\n\n Point.prototype.transform = function transform (transformation) {\n var matrix = toMatrix(transformation);\n var ref = this;\n var x = ref.x;\n var y = ref.y;\n\n this.x = matrix.a * x + matrix.c * y + matrix.e;\n this.y = matrix.b * x + matrix.d * y + matrix.f;\n\n this.geometryChange();\n\n return this;\n };\n\n Point.prototype.transformCopy = function transformCopy (transformation) {\n var point = this.clone();\n\n if (transformation) {\n point.transform(transformation);\n }\n\n return point;\n };\n\n Point.prototype.distanceTo = function distanceTo (point) {\n var dx = this.x - point.x;\n var dy = this.y - point.y;\n\n return Math.sqrt(dx * dx + dy * dy);\n };\n\n Point.prototype.round = function round$1 (digits) {\n this.x = round(this.x, digits);\n this.y = round(this.y, digits);\n\n this.geometryChange();\n\n return this;\n };\n\n Point.prototype.toArray = function toArray (digits) {\n var doRound = defined(digits);\n var x = doRound ? round(this.x, digits) : this.x;\n var y = doRound ? round(this.y, digits) : this.y;\n\n return [ x, y ];\n };\n\n Point.prototype.toString = function toString (digits, separator) {\n if ( separator === void 0 ) separator = \" \";\n\n var ref = this;\n var x = ref.x;\n var y = ref.y;\n\n if (defined(digits)) {\n x = round(x, digits);\n y = round(y, digits);\n }\n\n return x + separator + y;\n };\n\n Point.create = function create (arg0, arg1) {\n if (defined(arg0)) {\n if (arg0 instanceof Point) {\n return arg0;\n } else if (arguments.length === 1 && arg0.length === 2) {\n return new Point(arg0[0], arg0[1]);\n }\n\n return new Point(arg0, arg1);\n }\n };\n\n Point.min = function min () {\n var arguments$1 = arguments;\n\n var minX = MAX_NUM;\n var minY = MAX_NUM;\n\n for (var i = 0; i < arguments.length; i++) {\n var point = arguments$1[i];\n minX = Math.min(point.x, minX);\n minY = Math.min(point.y, minY);\n }\n\n return new Point(minX, minY);\n };\n\n Point.max = function max () {\n var arguments$1 = arguments;\n\n var maxX = MIN_NUM;\n var maxY = MIN_NUM;\n\n for (var i = 0; i < arguments.length; i++) {\n var point = arguments$1[i];\n maxX = Math.max(point.x, maxX);\n maxY = Math.max(point.y, maxY);\n }\n\n return new Point(maxX, maxY);\n };\n\n Point.minPoint = function minPoint () {\n return new Point(MIN_NUM, MIN_NUM);\n };\n\n Point.maxPoint = function maxPoint () {\n return new Point(MAX_NUM, MAX_NUM);\n };\n\n staticAccessors.ZERO.get = function () {\n return new Point(0, 0);\n };\n\n Object.defineProperties( Point, staticAccessors );\n\n return Point;\n}(withAccessors(HasObservers, [ \"x\", \"y\" ])));\n\nexport default Point;\n","import HasObservers from '../core/has-observers';\nimport withAccessors from '../mixins/with-accessors';\nimport { defined, round } from '../util';\n\n\nvar Size = (function (superclass) {\n function Size(width, height) {\n superclass.call(this);\n\n this.width = width || 0;\n this.height = height || 0;\n }\n\n if ( superclass ) Size.__proto__ = superclass;\n Size.prototype = Object.create( superclass && superclass.prototype );\n Size.prototype.constructor = Size;\n\n var staticAccessors = { ZERO: { configurable: true } };\n\n Size.prototype.equals = function equals (other) {\n return other && other.width === this.width && other.height === this.height;\n };\n\n Size.prototype.clone = function clone () {\n return new Size(this.width, this.height);\n };\n\n Size.prototype.toArray = function toArray (digits) {\n var doRound = defined(digits);\n var width = doRound ? round(this.width, digits) : this.width;\n var height = doRound ? round(this.height, digits) : this.height;\n\n return [ width, height ];\n };\n\n Size.create = function create (arg0, arg1) {\n if (defined(arg0)) {\n if (arg0 instanceof Size) {\n return arg0;\n } else if (arguments.length === 1 && arg0.length === 2) {\n return new Size(arg0[0], arg0[1]);\n }\n\n return new Size(arg0, arg1);\n }\n };\n\n staticAccessors.ZERO.get = function () {\n return new Size(0, 0);\n };\n\n Object.defineProperties( Size, staticAccessors );\n\n return Size;\n}(withAccessors(HasObservers, [ \"width\", \"height\" ])));\n\nexport default Size;\n","import HasObservers from '../core/has-observers';\nimport Point from './point';\nimport Size from './size';\n\nvar Rect = (function (HasObservers) {\n function Rect(origin, size, cornerRadius) {\n if ( origin === void 0 ) origin = new Point();\n if ( size === void 0 ) size = new Size();\n if ( cornerRadius === void 0 ) cornerRadius = 0;\n\n HasObservers.call(this);\n\n this.setOrigin(origin);\n this.setSize(size);\n this.setCornerRadius(cornerRadius);\n }\n\n if ( HasObservers ) Rect.__proto__ = HasObservers;\n Rect.prototype = Object.create( HasObservers && HasObservers.prototype );\n Rect.prototype.constructor = Rect;\n\n Rect.prototype.clone = function clone () {\n return new Rect(\n this.origin.clone(),\n this.size.clone()\n );\n };\n\n Rect.prototype.equals = function equals (other) {\n return other &&\n other.origin.equals(this.origin) &&\n other.size.equals(this.size);\n };\n\n Rect.prototype.setOrigin = function setOrigin (value) {\n this._observerField(\"origin\", Point.create(value));\n this.geometryChange();\n return this;\n };\n\n Rect.prototype.getOrigin = function getOrigin () {\n return this.origin;\n };\n\n Rect.prototype.setCornerRadius = function setCornerRadius (radius) {\n this.cornerRadius = Array.isArray(radius) ? radius : [ radius, radius ];\n\n this.geometryChange();\n return this;\n };\n\n Rect.prototype.getCornerRadius = function getCornerRadius () {\n return this.cornerRadius;\n };\n\n Rect.prototype.setSize = function setSize (value) {\n this._observerField(\"size\", Size.create(value));\n this.geometryChange();\n return this;\n };\n\n Rect.prototype.getSize = function getSize () {\n return this.size;\n };\n\n Rect.prototype.width = function width () {\n return this.size.width;\n };\n\n Rect.prototype.height = function height () {\n return this.size.height;\n };\n\n Rect.prototype.topLeft = function topLeft () {\n return this.origin.clone();\n };\n\n Rect.prototype.bottomRight = function bottomRight () {\n return this.origin.clone().translate(this.width(), this.height());\n };\n\n Rect.prototype.topRight = function topRight () {\n return this.origin.clone().translate(this.width(), 0);\n };\n\n Rect.prototype.bottomLeft = function bottomLeft () {\n return this.origin.clone().translate(0, this.height());\n };\n\n Rect.prototype.center = function center () {\n return this.origin.clone().translate(this.width() / 2, this.height() / 2);\n };\n\n Rect.prototype.bbox = function bbox (matrix) {\n var tl = this.topLeft().transformCopy(matrix);\n var tr = this.topRight().transformCopy(matrix);\n var br = this.bottomRight().transformCopy(matrix);\n var bl = this.bottomLeft().transformCopy(matrix);\n\n return Rect.fromPoints(tl, tr, br, bl);\n };\n\n Rect.prototype.transformCopy = function transformCopy (m) {\n return Rect.fromPoints(\n this.topLeft().transform(m),\n this.bottomRight().transform(m)\n );\n };\n\n Rect.prototype.expand = function expand (x, y) {\n if ( y === void 0 ) y = x;\n\n\n this.size.width += 2 * x;\n this.size.height += 2 * y;\n\n this.origin.translate(-x, -y);\n\n return this;\n };\n\n Rect.prototype.expandCopy = function expandCopy (x, y) {\n return this.clone().expand(x, y);\n };\n\n Rect.prototype.containsPoint = function containsPoint (point) {\n var origin = this.origin;\n var bottomRight = this.bottomRight();\n return !(point.x < origin.x || point.y < origin.y || bottomRight.x < point.x || bottomRight.y < point.y);\n };\n\n Rect.prototype._isOnPath = function _isOnPath (point, width) {\n var rectOuter = this.expandCopy(width, width);\n var rectInner = this.expandCopy(-width, -width);\n\n return rectOuter.containsPoint(point) && !rectInner.containsPoint(point);\n };\n\n Rect.fromPoints = function fromPoints () {\n var topLeft = Point.min.apply(null, arguments);\n var bottomRight = Point.max.apply(null, arguments);\n var size = new Size(\n bottomRight.x - topLeft.x,\n bottomRight.y - topLeft.y\n );\n\n return new Rect(topLeft, size);\n };\n\n Rect.union = function union (a, b) {\n return Rect.fromPoints(\n Point.min(a.topLeft(), b.topLeft()),\n Point.max(a.bottomRight(), b.bottomRight())\n );\n };\n\n Rect.intersect = function intersect (a, b) {\n var rect1 = {\n left: a.topLeft().x,\n top: a.topLeft().y,\n right: a.bottomRight().x,\n bottom: a.bottomRight().y\n };\n\n var rect2 = {\n left: b.topLeft().x,\n top: b.topLeft().y,\n right: b.bottomRight().x,\n bottom: b.bottomRight().y\n };\n\n if (rect1.left <= rect2.right &&\n rect2.left <= rect1.right &&\n rect1.top <= rect2.bottom &&\n rect2.top <= rect1.bottom) {\n return Rect.fromPoints(\n new Point(Math.max(rect1.left, rect2.left), Math.max(rect1.top, rect2.top)),\n new Point(Math.min(rect1.right, rect2.right), Math.min(rect1.bottom, rect2.bottom))\n );\n }\n };\n\n return Rect;\n}(HasObservers));\n\nexport default Rect;\n","import HasObservers from '../core/has-observers';\nimport toMatrix from './to-matrix';\nimport Matrix from './matrix';\nimport Point from './point';\n\nvar Transformation = (function (HasObservers) {\n function Transformation(matrix) {\n if ( matrix === void 0 ) matrix = Matrix.unit();\n\n HasObservers.call(this);\n\n this._matrix = matrix;\n }\n\n if ( HasObservers ) Transformation.__proto__ = HasObservers;\n Transformation.prototype = Object.create( HasObservers && HasObservers.prototype );\n Transformation.prototype.constructor = Transformation;\n\n Transformation.prototype.clone = function clone () {\n return new Transformation(\n this._matrix.clone()\n );\n };\n\n Transformation.prototype.equals = function equals (other) {\n return other &&\n other._matrix.equals(this._matrix);\n };\n\n Transformation.prototype.translate = function translate (x, y) {\n this._matrix = this._matrix.multiplyCopy(Matrix.translate(x, y));\n\n this._optionsChange();\n return this;\n };\n\n Transformation.prototype.scale = function scale (scaleX, scaleY, origin) {\n if ( scaleY === void 0 ) scaleY = scaleX;\n if ( origin === void 0 ) origin = null;\n\n var originPoint = origin;\n\n if (originPoint) {\n originPoint = Point.create(originPoint);\n this._matrix = this._matrix.multiplyCopy(Matrix.translate(originPoint.x, originPoint.y));\n }\n\n this._matrix = this._matrix.multiplyCopy(Matrix.scale(scaleX, scaleY));\n\n if (originPoint) {\n this._matrix = this._matrix.multiplyCopy(Matrix.translate(-originPoint.x, -originPoint.y));\n }\n\n this._optionsChange();\n return this;\n };\n\n Transformation.prototype.rotate = function rotate (angle, origin) {\n var originPoint = Point.create(origin) || Point.ZERO;\n\n this._matrix = this._matrix.multiplyCopy(Matrix.rotate(angle, originPoint.x, originPoint.y));\n\n this._optionsChange();\n return this;\n };\n\n Transformation.prototype.multiply = function multiply (transformation) {\n var matrix = toMatrix(transformation);\n\n this._matrix = this._matrix.multiplyCopy(matrix);\n\n this._optionsChange();\n return this;\n };\n\n Transformation.prototype.matrix = function matrix (value) {\n if (value) {\n this._matrix = value;\n this._optionsChange();\n return this;\n }\n\n return this._matrix;\n };\n\n Transformation.prototype._optionsChange = function _optionsChange () {\n this.optionsChange({\n field: \"transform\",\n value: this\n });\n };\n\n return Transformation;\n}(HasObservers));\n\nexport default Transformation;\n","import Transformation from './transformation';\n\nexport default function transform(matrix) {\n if (matrix === null) {\n return null;\n }\n\n if (matrix instanceof Transformation) {\n return matrix;\n }\n\n return new Transformation(matrix);\n}","import HasObservers from '../core/has-observers';\n\nvar push = [].push;\nvar pop = [].pop;\nvar splice = [].splice;\nvar shift = [].shift;\nvar slice = [].slice;\nvar unshift = [].unshift;\n\nvar ElementsArray = (function (HasObservers) {\n function ElementsArray(array) {\n if ( array === void 0 ) array = [];\n\n HasObservers.call(this);\n\n this.length = 0;\n this._splice(0, array.length, array);\n }\n\n if ( HasObservers ) ElementsArray.__proto__ = HasObservers;\n ElementsArray.prototype = Object.create( HasObservers && HasObservers.prototype );\n ElementsArray.prototype.constructor = ElementsArray;\n\n ElementsArray.prototype.elements = function elements (value) {\n if (value) {\n this._splice(0, this.length, value);\n\n this._change();\n return this;\n }\n\n return this.slice(0);\n };\n\n ElementsArray.prototype.push = function push$1 () {\n var elements = arguments;\n var result = push.apply(this, elements);\n\n this._add(elements);\n\n return result;\n };\n\n ElementsArray.prototype.slice = function slice$1 () {\n return slice.call(this);\n };\n\n ElementsArray.prototype.pop = function pop$1 () {\n var length = this.length;\n var result = pop.apply(this);\n\n if (length) {\n this._remove([ result ]);\n }\n\n return result;\n };\n\n ElementsArray.prototype.splice = function splice (index, howMany) {\n var elements = slice.call(arguments, 2);\n var result = this._splice(index, howMany, elements);\n\n this._change();\n\n return result;\n };\n\n ElementsArray.prototype.shift = function shift$1 () {\n var length = this.length;\n var result = shift.apply(this);\n\n if (length) {\n this._remove([ result ]);\n }\n\n return result;\n };\n\n ElementsArray.prototype.unshift = function unshift$1 () {\n var elements = arguments;\n var result = unshift.apply(this, elements);\n\n this._add(elements);\n\n return result;\n };\n\n ElementsArray.prototype.indexOf = function indexOf (element) {\n var this$1 = this;\n\n var length = this.length;\n\n for (var idx = 0; idx < length; idx++) {\n if (this$1[idx] === element) {\n return idx;\n }\n }\n return -1;\n };\n\n ElementsArray.prototype._splice = function _splice (index, howMany, elements) {\n var result = splice.apply(this, [ index, howMany ].concat(elements));\n\n this._clearObserver(result);\n this._setObserver(elements);\n\n return result;\n };\n\n ElementsArray.prototype._add = function _add (elements) {\n this._setObserver(elements);\n this._change();\n };\n\n ElementsArray.prototype._remove = function _remove (elements) {\n this._clearObserver(elements);\n this._change();\n };\n\n ElementsArray.prototype._setObserver = function _setObserver (elements) {\n var this$1 = this;\n\n for (var idx = 0; idx < elements.length; idx++) {\n elements[idx].addObserver(this$1);\n }\n };\n\n ElementsArray.prototype._clearObserver = function _clearObserver (elements) {\n var this$1 = this;\n\n for (var idx = 0; idx < elements.length; idx++) {\n elements[idx].removeObserver(this$1);\n }\n };\n\n ElementsArray.prototype._change = function _change () {};\n\n return ElementsArray;\n}(HasObservers));\n\nexport default ElementsArray;\n","import ElementsArray from './elements-array';\n\nvar GeometryElementsArray = (function (ElementsArray) {\n function GeometryElementsArray () {\n ElementsArray.apply(this, arguments);\n }\n\n if ( ElementsArray ) GeometryElementsArray.__proto__ = ElementsArray;\n GeometryElementsArray.prototype = Object.create( ElementsArray && ElementsArray.prototype );\n GeometryElementsArray.prototype.constructor = GeometryElementsArray;\n\n GeometryElementsArray.prototype._change = function _change () {\n this.geometryChange();\n };\n\n return GeometryElementsArray;\n}(ElementsArray));\n\nexport default GeometryElementsArray;","import { Class } from '../common';\nimport HasObservers from './has-observers';\nimport { defined } from '../util';\n\n\nvar toString = {}.toString;\n\nvar OptionsStore = (function (HasObservers) {\n function OptionsStore(options, prefix) {\n var this$1 = this;\n if ( prefix === void 0 ) prefix = \"\";\n\n HasObservers.call(this);\n\n this.prefix = prefix;\n\n for (var field in options) {\n var member = options[field];\n member = this$1._wrap(member, field);\n this$1[field] = member;\n }\n }\n\n if ( HasObservers ) OptionsStore.__proto__ = HasObservers;\n OptionsStore.prototype = Object.create( HasObservers && HasObservers.prototype );\n OptionsStore.prototype.constructor = OptionsStore;\n\n OptionsStore.prototype.get = function get (field) {\n var parts = field.split(\".\");\n var result = this;\n\n while (parts.length && result) {\n var part = parts.shift();\n result = result[part];\n }\n\n return result;\n };\n\n OptionsStore.prototype.set = function set (field, value) {\n var current = this.get(field);\n\n if (current !== value) {\n this._set(field, this._wrap(value, field));\n this.optionsChange({\n field: this.prefix + field,\n value: value\n });\n }\n };\n\n OptionsStore.prototype._set = function _set (field, value) {\n var this$1 = this;\n\n var composite = field.indexOf(\".\") >= 0;\n var parentObj = this;\n var fieldName = field;\n\n if (composite) {\n var parts = fieldName.split(\".\");\n var prefix = this.prefix;\n\n while (parts.length > 1) {\n fieldName = parts.shift();\n prefix += fieldName + \".\";\n\n var obj = parentObj[fieldName];\n\n if (!obj) {\n obj = new OptionsStore({}, prefix);\n obj.addObserver(this$1);\n parentObj[fieldName] = obj;\n }\n parentObj = obj;\n }\n fieldName = parts[0];\n }\n\n parentObj._clear(fieldName);\n parentObj[fieldName] = value;\n };\n\n OptionsStore.prototype._clear = function _clear (field) {\n var current = this[field];\n if (current && current.removeObserver) {\n current.removeObserver(this);\n }\n };\n\n OptionsStore.prototype._wrap = function _wrap (object, field) {\n var type = toString.call(object);\n var wrapped = object;\n\n if (wrapped !== null && defined(wrapped) && type === \"[object Object]\") {\n if (!(object instanceof OptionsStore) && !(object instanceof Class)) {\n wrapped = new OptionsStore(wrapped, this.prefix + field + \".\");\n }\n\n wrapped.addObserver(this);\n }\n\n return wrapped;\n };\n\n return OptionsStore;\n}(HasObservers));\n\nexport default OptionsStore;\n","var defId = 1;\n\nexport default function definitionId() {\n return \"kdef\" + defId++;\n}","import defined from './defined';\n\nexport default function valueOrDefault(value, defaultValue) {\n return defined(value) ? value : defaultValue;\n}","import defined from './defined';\n\nexport default function isTransparent(color) {\n return color === \"\" || color === null || color === \"none\" || color === \"transparent\" || !defined(color);\n}","import OptionsStore from '../core/options-store';\nimport Rect from '../geometry/rect';\nimport Matrix from '../geometry/matrix';\nimport createTransform from '../geometry/transform';\nimport toMatrix from '../geometry/to-matrix';\nimport HasObservers from '../core/has-observers';\nimport { defined, definitionId, isTransparent, valueOrDefault } from '../util';\n\nvar Element = (function (HasObservers) {\n function Element(options) {\n HasObservers.call(this);\n\n this._initOptions(options);\n }\n\n if ( HasObservers ) Element.__proto__ = HasObservers;\n Element.prototype = Object.create( HasObservers && HasObservers.prototype );\n Element.prototype.constructor = Element;\n\n var prototypeAccessors = { nodeType: { configurable: true } };\n\n prototypeAccessors.nodeType.get = function () {\n return \"Rect\";\n };\n\n Element.prototype._initOptions = function _initOptions (options) {\n if ( options === void 0 ) options = {};\n\n var clip = options.clip;\n var transform = options.transform;\n\n if (transform) {\n options.transform = createTransform(transform);\n }\n\n if (clip && !clip.id) {\n clip.id = definitionId();\n }\n\n this.options = new OptionsStore(options);\n this.options.addObserver(this);\n };\n\n Element.prototype.transform = function transform (value) {\n if (defined(value)) {\n this.options.set(\"transform\", createTransform(value));\n } else {\n return this.options.get(\"transform\");\n }\n };\n\n Element.prototype.parentTransform = function parentTransform () {\n var element = this;\n var parentMatrix;\n\n while (element.parent) {\n element = element.parent;\n var transformation = element.transform();\n if (transformation) {\n parentMatrix = transformation.matrix().multiplyCopy(parentMatrix || Matrix.unit());\n }\n }\n\n if (parentMatrix) {\n return createTransform(parentMatrix);\n }\n };\n\n Element.prototype.currentTransform = function currentTransform (parentTransform) {\n if ( parentTransform === void 0 ) parentTransform = this.parentTransform();\n\n var elementTransform = this.transform();\n var elementMatrix = toMatrix(elementTransform);\n\n var parentMatrix = toMatrix(parentTransform);\n var combinedMatrix;\n\n if (elementMatrix && parentMatrix) {\n combinedMatrix = parentMatrix.multiplyCopy(elementMatrix);\n } else {\n combinedMatrix = elementMatrix || parentMatrix;\n }\n\n if (combinedMatrix) {\n return createTransform(combinedMatrix);\n }\n };\n\n Element.prototype.visible = function visible (value) {\n if (defined(value)) {\n this.options.set(\"visible\", value);\n return this;\n }\n\n return this.options.get(\"visible\") !== false;\n };\n\n Element.prototype.clip = function clip (value) {\n var options = this.options;\n if (defined(value)) {\n if (value && !value.id) {\n value.id = definitionId();\n }\n options.set(\"clip\", value);\n return this;\n }\n\n return options.get(\"clip\");\n };\n\n Element.prototype.opacity = function opacity (value) {\n if (defined(value)) {\n this.options.set(\"opacity\", value);\n return this;\n }\n\n return valueOrDefault(this.options.get(\"opacity\"), 1);\n };\n\n Element.prototype.clippedBBox = function clippedBBox (transformation) {\n var bbox = this._clippedBBox(transformation);\n if (bbox) {\n var clip = this.clip();\n return clip ? Rect.intersect(bbox, clip.bbox(transformation)) : bbox;\n }\n };\n\n Element.prototype.containsPoint = function containsPoint (point, parentTransform) {\n if (this.visible()) {\n var transform = this.currentTransform(parentTransform);\n var transformedPoint = point;\n if (transform) {\n transformedPoint = point.transformCopy(transform.matrix().invert());\n }\n return (this._hasFill() && this._containsPoint(transformedPoint)) || (this._isOnPath && this._hasStroke() && this._isOnPath(transformedPoint));\n }\n return false;\n };\n\n Element.prototype._hasFill = function _hasFill () {\n var fill = this.options.fill;\n return fill && !isTransparent(fill.color);\n };\n\n Element.prototype._hasStroke = function _hasStroke () {\n var stroke = this.options.stroke;\n return stroke && stroke.width > 0 && !isTransparent(stroke.color);\n };\n\n Element.prototype._clippedBBox = function _clippedBBox (transformation) {\n return this.bbox(transformation);\n };\n\n Object.defineProperties( Element.prototype, prototypeAccessors );\n\n return Element;\n}(HasObservers));\n\nexport default Element;\n","import { DEG_TO_RAD } from './constants';\n\nexport default function deg(radians) {\n return radians / DEG_TO_RAD;\n}","import { deg } from '../../util';\nimport transform from '../transform';\n\nexport default function isOutOfEndPoint(endPoint, controlPoint, point) {\n var angle = deg(Math.atan2(controlPoint.y - endPoint.y, controlPoint.x - endPoint.x));\n var rotatedPoint = point.transformCopy(transform().rotate(-angle, endPoint));\n\n return rotatedPoint.x < endPoint.x;\n}","export default function calculateCurveAt(t, field, points) {\n var t1 = 1 - t;\n return Math.pow(t1, 3) * points[0][field] +\n 3 * Math.pow(t1, 2) * t * points[1][field] +\n 3 * Math.pow(t, 2) * t1 * points[2][field] +\n Math.pow(t, 3) * points[3][field];\n}","export default function toCubicPolynomial(points, field) {\n return [ -points[0][field] + 3 * points[1][field] - 3 * points[2][field] + points[3][field],\n 3 * (points[0][field] - 2 * points[1][field] + points[2][field]),\n 3 * (-points[0][field] + points[1][field]),\n points[0][field]\n ];\n}","var PRECISION = 10;\n\nexport { PRECISION };","import { PRECISION } from '../constants';\nimport { Class } from '../../common';\nimport { round } from '../../util';\n\nvar ComplexNumber = (function (Class) {\n function ComplexNumber(real, img) {\n if ( real === void 0 ) real = 0;\n if ( img === void 0 ) img = 0;\n\n Class.call(this);\n\n this.real = real;\n this.img = img;\n }\n\n if ( Class ) ComplexNumber.__proto__ = Class;\n ComplexNumber.prototype = Object.create( Class && Class.prototype );\n ComplexNumber.prototype.constructor = ComplexNumber;\n\n ComplexNumber.prototype.add = function add (cNumber) {\n return new ComplexNumber(round(this.real + cNumber.real, PRECISION), round(this.img + cNumber.img, PRECISION));\n };\n\n ComplexNumber.prototype.addConstant = function addConstant (value) {\n return new ComplexNumber(this.real + value, this.img);\n };\n\n ComplexNumber.prototype.negate = function negate () {\n return new ComplexNumber(-this.real, -this.img);\n };\n\n ComplexNumber.prototype.multiply = function multiply (cNumber) {\n return new ComplexNumber(this.real * cNumber.real - this.img * cNumber.img,\n this.real * cNumber.img + this.img * cNumber.real);\n };\n\n ComplexNumber.prototype.multiplyConstant = function multiplyConstant (value) {\n return new ComplexNumber(this.real * value, this.img * value);\n };\n\n ComplexNumber.prototype.nthRoot = function nthRoot (n) {\n var rad = Math.atan2(this.img, this.real);\n var r = Math.sqrt(Math.pow(this.img, 2) + Math.pow(this.real, 2));\n var nthR = Math.pow(r, 1 / n);\n\n return new ComplexNumber(nthR * Math.cos(rad / n), nthR * Math.sin(rad / n)); //Moivre's formula\n };\n\n ComplexNumber.prototype.equals = function equals (cNumber) {\n return this.real === cNumber.real && this.img === cNumber.img;\n };\n\n ComplexNumber.prototype.isReal = function isReal () {\n return this.img === 0;\n };\n\n return ComplexNumber;\n}(Class));\n\nexport default ComplexNumber;","import ComplexNumber from './complex-number';\nimport { PRECISION } from '../constants';\nimport { round } from '../../util';\n\nfunction numberSign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction solveQuadraticEquation(a, b, c) {\n var squareRoot = Math.sqrt(Math.pow(b, 2) - 4 * a * c);\n return [\n (-b + squareRoot) / (2 * a),\n (-b - squareRoot) / (2 * a)\n ];\n}\n\n//Cardano's formula\nexport default function solveCubicEquation(a, b, c, d) {\n if (a === 0) {\n return solveQuadraticEquation(b, c, d);\n }\n\n var p = (3 * a * c - Math.pow(b, 2)) / (3 * Math.pow(a, 2));\n var q = (2 * Math.pow(b, 3) - 9 * a * b * c + 27 * Math.pow(a, 2) * d) / (27 * Math.pow(a, 3));\n var Q = Math.pow(p / 3, 3) + Math.pow(q / 2, 2);\n var i = new ComplexNumber(0,1);\n var b3a = -b / (3 * a);\n var x1, x2, y1, y2, y3, z1, z2;\n\n if (Q < 0) {\n x1 = new ComplexNumber(-q / 2, Math.sqrt(-Q)).nthRoot(3);\n x2 = new ComplexNumber(-q / 2, - Math.sqrt(-Q)).nthRoot(3);\n } else {\n x1 = -q / 2 + Math.sqrt(Q);\n x1 = new ComplexNumber(numberSign(x1) * Math.pow(Math.abs(x1), 1 / 3));\n x2 = -q / 2 - Math.sqrt(Q);\n x2 = new ComplexNumber(numberSign(x2) * Math.pow(Math.abs(x2), 1 / 3));\n }\n\n y1 = x1.add(x2);\n\n z1 = x1.add(x2).multiplyConstant(-1 / 2);\n z2 = x1.add(x2.negate()).multiplyConstant(Math.sqrt(3) / 2);\n\n y2 = z1.add(i.multiply(z2));\n y3 = z1.add(i.negate().multiply(z2));\n\n var result = [];\n\n if (y1.isReal()) {\n result.push(round(y1.real + b3a, PRECISION));\n }\n if (y2.isReal()) {\n result.push(round(y2.real + b3a, PRECISION));\n }\n if (y3.isReal()) {\n result.push(round(y3.real + b3a, PRECISION));\n }\n\n return result;\n}","import toCubicPolynomial from './to-cubic-polynomial';\nimport solveCubicEquation from './solve-cubic-equation';\nimport calculateCurveAt from './calculate-curve-at';\n\nexport default function hasRootsInRange(points, point, field, rootField, range) {\n var polynomial = toCubicPolynomial(points, rootField);\n var roots = solveCubicEquation(polynomial[0], polynomial[1], polynomial[2], polynomial[3] - point[rootField]);\n var intersection;\n\n for (var idx = 0; idx < roots.length; idx++) {\n if (0 <= roots[idx] && roots[idx] <= 1) {\n intersection = calculateCurveAt(roots[idx], field, points);\n if (Math.abs(intersection - point[field]) <= range) {\n return true;\n }\n }\n }\n}","import { PRECISION } from '../constants';\n\nimport { round } from '../../util';\n\nexport default function close(a, b, tolerance) {\n if ( tolerance === void 0 ) tolerance = PRECISION;\n\n return round(Math.abs(a - b), tolerance) === 0;\n}","export default function lineIntersectionsCount(a, b, point) {\n var intersects;\n if (a.x !== b.x) {\n var minX = Math.min(a.x, b.x);\n var maxX = Math.max(a.x, b.x);\n var minY = Math.min(a.y, b.y);\n var maxY = Math.max(a.y, b.y);\n var inRange = minX <= point.x && point.x < maxX;\n\n if (minY === maxY) {\n intersects = point.y <= minY && inRange;\n } else {\n intersects = inRange && (((maxY - minY) * ((a.x - b.x) * (a.y - b.y) > 0 ? point.x - minX : maxX - point.x)) / (maxX - minX) + minY - point.y) >= 0;\n }\n }\n\n return intersects ? 1 : 0;\n}","import { defined } from '../util';\nimport Point from '../geometry/point';\n\nfunction pointAccessor(name) {\n var fieldName = \"_\" + name;\n return function(value) {\n if (defined(value)) {\n this._observerField(fieldName, Point.create(value));\n this.geometryChange();\n return this;\n }\n\n return this[fieldName];\n };\n}\n\nfunction definePointAccessors(fn, names) {\n for (var i = 0; i < names.length; i++) {\n fn[names[i]] = pointAccessor(names[i]);\n }\n}\n\nvar withPoints = function (TBase, names) {\n var result = (function (TBase) {\n function result () {\n TBase.apply(this, arguments);\n }if ( TBase ) result.__proto__ = TBase;\n result.prototype = Object.create( TBase && TBase.prototype );\n result.prototype.constructor = result;\n\n \n\n return result;\n }(TBase));\n definePointAccessors(result.prototype, names);\n\n return result;\n};\n\nexport default withPoints;\n","import HasObservers from '../core/has-observers';\nimport Rect from './rect';\nimport Point from './point';\nimport transform from './transform';\nimport { deg, MIN_NUM, MAX_NUM } from '../util';\nimport isOutOfEndPoint from './math/is-out-of-end-point';\nimport calculateCurveAt from './math/calculate-curve-at';\nimport hasRootsInRange from './math/has-roots-in-range';\nimport curveIntersectionsCount from './math/curve-intersections-count';\nimport lineIntersectionsCount from './math/line-intersections-count';\nimport withPoints from '../mixins/with-points';\n\n\nvar points = [ \"anchor\", \"controlIn\", \"controlOut\" ];\n\nvar Segment = (function (superclass) {\n function Segment(anchor, controlIn, controlOut) {\n superclass.call(this);\n\n this.anchor(anchor || new Point());\n this.controlIn(controlIn);\n this.controlOut(controlOut);\n }\n\n if ( superclass ) Segment.__proto__ = superclass;\n Segment.prototype = Object.create( superclass && superclass.prototype );\n Segment.prototype.constructor = Segment;\n\n Segment.prototype.bboxTo = function bboxTo (toSegment, matrix) {\n var segmentAnchor = this.anchor().transformCopy(matrix);\n var toSegmentAnchor = toSegment.anchor().transformCopy(matrix);\n var rect;\n\n if (this.controlOut() && toSegment.controlIn()) {\n rect = this._curveBoundingBox(\n segmentAnchor, this.controlOut().transformCopy(matrix),\n toSegment.controlIn().transformCopy(matrix), toSegmentAnchor\n );\n } else {\n rect = this._lineBoundingBox(segmentAnchor, toSegmentAnchor);\n }\n\n return rect;\n };\n\n Segment.prototype._lineBoundingBox = function _lineBoundingBox (p1, p2) {\n return Rect.fromPoints(p1, p2);\n };\n\n Segment.prototype._curveBoundingBox = function _curveBoundingBox (p1, cp1, cp2, p2) {\n var points = [ p1, cp1, cp2, p2 ];\n var extremesX = this._curveExtremesFor(points, \"x\");\n var extremesY = this._curveExtremesFor(points, \"y\");\n var xLimits = arrayLimits([ extremesX.min, extremesX.max, p1.x, p2.x ]);\n var yLimits = arrayLimits([ extremesY.min, extremesY.max, p1.y, p2.y ]);\n\n return Rect.fromPoints(new Point(xLimits.min, yLimits.min), new Point(xLimits.max, yLimits.max));\n };\n\n Segment.prototype._curveExtremesFor = function _curveExtremesFor (points, field) {\n var extremes = this._curveExtremes(\n points[0][field], points[1][field],\n points[2][field], points[3][field]\n );\n\n return {\n min: calculateCurveAt(extremes.min, field, points),\n max: calculateCurveAt(extremes.max, field, points)\n };\n };\n\n Segment.prototype._curveExtremes = function _curveExtremes (x1, x2, x3, x4) {\n var a = x1 - 3 * x2 + 3 * x3 - x4;\n var b = - 2 * (x1 - 2 * x2 + x3);\n var c = x1 - x2;\n var sqrt = Math.sqrt(b * b - 4 * a * c);\n var t1 = 0;\n var t2 = 1;\n\n if (a === 0) {\n if (b !== 0) {\n t1 = t2 = -c / b;\n }\n } else if (!isNaN(sqrt)) {\n t1 = (- b + sqrt) / (2 * a);\n t2 = (- b - sqrt) / (2 * a);\n }\n\n var min = Math.max(Math.min(t1, t2), 0);\n if (min < 0 || min > 1) {\n min = 0;\n }\n\n var max = Math.min(Math.max(t1, t2), 1);\n if (max > 1 || max < 0) {\n max = 1;\n }\n\n return {\n min: min,\n max: max\n };\n };\n\n Segment.prototype._intersectionsTo = function _intersectionsTo (segment, point) {\n var intersectionsCount;\n if (this.controlOut() && segment.controlIn()) {\n intersectionsCount = curveIntersectionsCount([ this.anchor(), this.controlOut(), segment.controlIn(), segment.anchor() ], point, this.bboxTo(segment));\n } else {\n intersectionsCount = lineIntersectionsCount(this.anchor(), segment.anchor(), point);\n }\n return intersectionsCount;\n };\n\n Segment.prototype._isOnCurveTo = function _isOnCurveTo (segment, point, width, endSegment) {\n var bbox = this.bboxTo(segment).expand(width, width);\n if (bbox.containsPoint(point)) {\n var p1 = this.anchor();\n var p2 = this.controlOut();\n var p3 = segment.controlIn();\n var p4 = segment.anchor();\n\n if (endSegment === \"start\" && p1.distanceTo(point) <= width) {\n return !isOutOfEndPoint(p1, p2, point);\n } else if (endSegment === \"end\" && p4.distanceTo(point) <= width) {\n return !isOutOfEndPoint(p4, p3, point);\n }\n\n //the approach is not entirely correct but is close and the alternatives are solving a 6th degree polynomial or testing the segment points\n var points = [ p1, p2, p3, p4 ];\n if (hasRootsInRange(points, point, \"x\", \"y\", width) || hasRootsInRange(points, point, \"y\", \"x\", width)) {\n return true;\n }\n var rotation = transform().rotate(45, point);\n var rotatedPoints = [ p1.transformCopy(rotation), p2.transformCopy(rotation), p3.transformCopy(rotation), p4.transformCopy(rotation) ];\n return hasRootsInRange(rotatedPoints, point, \"x\", \"y\", width) || hasRootsInRange(rotatedPoints, point, \"y\", \"x\", width);\n }\n };\n\n Segment.prototype._isOnLineTo = function _isOnLineTo (segment, point, width) {\n var p1 = this.anchor();\n var p2 = segment.anchor();\n var angle = deg(Math.atan2(p2.y - p1.y, p2.x - p1.x));\n var rect = new Rect([ p1.x, p1.y - width / 2 ], [ p1.distanceTo(p2), width ]);\n return rect.containsPoint(point.transformCopy(transform().rotate(-angle, p1)));\n };\n\n Segment.prototype._isOnPathTo = function _isOnPathTo (segment, point, width, endSegment) {\n var isOnPath;\n if (this.controlOut() && segment.controlIn()) {\n isOnPath = this._isOnCurveTo(segment, point, width / 2, endSegment);\n } else {\n isOnPath = this._isOnLineTo(segment, point, width);\n }\n return isOnPath;\n };\n\n return Segment;\n}(withPoints(HasObservers, points)));\n\nfunction arrayLimits(arr) {\n var length = arr.length;\n var min = MAX_NUM;\n var max = MIN_NUM;\n\n for (var i = 0; i < length; i ++) {\n max = Math.max(max, arr[i]);\n min = Math.min(min, arr[i]);\n }\n\n return {\n min: min,\n max: max\n };\n}\n\nexport default Segment;\n","import toCubicPolynomial from './to-cubic-polynomial';\nimport solveCubicEquation from './solve-cubic-equation';\nimport calculateCurveAt from './calculate-curve-at';\nimport close from './close';\n\nexport default function curveIntersectionsCount(points, point, bbox) {\n var polynomial = toCubicPolynomial(points, \"x\");\n var roots = solveCubicEquation(polynomial[0], polynomial[1], polynomial[2], polynomial[3] - point.x);\n var rayIntersection, intersectsRay;\n var count = 0;\n for (var i = 0; i < roots.length; i++) {\n rayIntersection = calculateCurveAt(roots[i], \"y\", points);\n intersectsRay = close(rayIntersection, point.y) || rayIntersection > point.y;\n if (intersectsRay && (((roots[i] === 0 || roots[i] === 1) && bbox.bottomRight().x > point.x) || (0 < roots[i] && roots[i] < 1))) {\n count++;\n }\n }\n\n return count;\n}","export default function last(array) {\n if (array) {\n return array[array.length - 1];\n }\n}","import { Point, Segment } from '../../geometry';\nimport { last, round } from '../../util';\n\nvar WEIGHT = 0.333;\nvar EXTREMUM_ALLOWED_DEVIATION = 0.01;\nvar X = \"x\";\nvar Y = \"y\";\n\nexport function pointsToCurve(pointsIn, closed) {\n var points = pointsIn.slice(0);\n var segments = [];\n var length = points.length;\n\n if (length > 2) {\n removeDuplicates(0, points);\n length = points.length;\n }\n\n if (length < 2 || (length === 2 && points[0].equals(points[1]))) {\n return segments;\n }\n\n var p0 = points[0];\n var p1 = points[1];\n var p2 = points[2];\n\n segments.push(new Segment(p0));\n\n while (p0.equals(points[length - 1])) {\n closed = true;\n points.pop();\n length--;\n }\n\n if (length === 2) {\n var tangent = getTangent(p0,p1, X, Y);\n\n last(segments).controlOut(\n firstControlPoint(tangent, p0, p1, X, Y)\n );\n\n segments.push(new Segment(\n p1,\n secondControlPoint(tangent, p0, p1, X, Y)\n ));\n\n return segments;\n }\n\n var initialControlPoint, lastControlPoint;\n\n if (closed) {\n p0 = points[length - 1]; p1 = points[0]; p2 = points[1];\n var controlPoints = getControlPoints(p0, p1, p2);\n initialControlPoint = controlPoints[1];\n lastControlPoint = controlPoints[0];\n } else {\n var tangent$1 = getTangent(p0, p1, X,Y);\n initialControlPoint = firstControlPoint(tangent$1, p0, p1, X, Y);\n }\n\n var cp0 = initialControlPoint;\n for (var idx = 0; idx <= length - 3; idx++) {\n removeDuplicates(idx, points);\n length = points.length;\n if (idx + 3 <= length) {\n p0 = points[idx]; p1 = points[idx + 1]; p2 = points[idx + 2];\n var controlPoints$1 = getControlPoints(p0,p1,p2);\n\n last(segments).controlOut(cp0);\n cp0 = controlPoints$1[1];\n\n var cp1 = controlPoints$1[0];\n segments.push(new Segment(p1, cp1));\n }\n }\n\n if (closed) {\n p0 = points[length - 2]; p1 = points[length - 1]; p2 = points[0];\n var controlPoints$2 = getControlPoints(p0, p1, p2);\n\n last(segments).controlOut(cp0);\n segments.push(new Segment(\n p1,\n controlPoints$2[0]\n ));\n\n last(segments).controlOut(controlPoints$2[1]);\n segments.push(new Segment(\n p2,\n lastControlPoint\n ));\n } else {\n var tangent$2 = getTangent(p1, p2, X, Y);\n\n last(segments).controlOut(cp0);\n segments.push(new Segment(\n p2,\n secondControlPoint(tangent$2, p1, p2, X, Y)\n ));\n }\n\n return segments;\n}\n\nexport function pointsToClosedCurve(pointsIn) {\n return pointsToCurve(pointsIn, true);\n}\n\nexport function removeDuplicates(idx, points) {\n while (points[idx + 1] && (points[idx].equals(points[idx + 1]) || points[idx + 1].equals(points[idx + 2]))) {\n points.splice(idx + 1, 1);\n }\n}\n\nexport function invertAxis(p0, p1, p2) {\n var invertAxis = false;\n\n if (p0.x === p1.x) {\n invertAxis = true;\n } else if (p1.x === p2.x) {\n if ((p1.y < p2.y && p0.y <= p1.y) || (p2.y < p1.y && p1.y <= p0.y)) {\n invertAxis = true;\n }\n } else {\n var fn = lineFunction(p0,p1);\n var y2 = calculateFunction(fn, p2.x);\n if (!(p0.y <= p1.y && p2.y <= y2) &&\n !(p1.y <= p0.y && p2.y >= y2)) {\n invertAxis = true;\n }\n }\n\n return invertAxis;\n}\n\nexport function isLine(p0, p1, p2) {\n var fn = lineFunction(p0, p1);\n var y2 = calculateFunction(fn, p2.x);\n\n return (p0.x === p1.x && p1.x === p2.x) || round(y2, 1) === round(p2.y, 1);\n}\n\nexport function lineFunction(p1, p2) {\n var a = (p2.y - p1.y) / (p2.x - p1.x);\n var b = p1.y - a * p1.x;\n\n return [ b, a ];\n}\n\nexport function getControlPoints(p0, p1, p2) {\n var xField = X;\n var yField = Y;\n var restrict = false;\n var switchOrientation = false;\n var tangent;\n\n if (isLine(p0, p1, p2)) {\n tangent = getTangent(p0, p1, X, Y);\n } else {\n var monotonic = {\n x: isMonotonicByField(p0, p1, p2, X),\n y: isMonotonicByField(p0, p1, p2, Y)\n };\n\n if (monotonic.x && monotonic.y) {\n tangent = getTangent(p0, p2, X, Y);\n restrict = true;\n } else {\n if (invertAxis(p0, p1, p2)) {\n xField = Y;\n yField = X;\n }\n\n if (monotonic[xField]) {\n tangent = 0;\n } else {\n var sign;\n if ((p2[yField] < p0[yField] && p0[yField] <= p1[yField]) ||\n (p0[yField] < p2[yField] && p1[yField] <= p0[yField])) {\n sign = numberSign((p2[yField] - p0[yField]) * (p1[xField] - p0[xField]));\n } else {\n sign = -numberSign((p2[xField] - p0[xField]) * (p1[yField] - p0[yField]));\n }\n\n tangent = EXTREMUM_ALLOWED_DEVIATION * sign;\n switchOrientation = true;\n }\n }\n }\n\n var secondCP = secondControlPoint(tangent, p0, p1, xField, yField);\n\n if (switchOrientation) {\n var oldXField = xField;\n xField = yField;\n yField = oldXField;\n }\n\n var firstCP = firstControlPoint(tangent, p1, p2, xField, yField);\n\n if (restrict) {\n restrictControlPoint(p0, p1, secondCP, tangent);\n restrictControlPoint(p1, p2, firstCP, tangent);\n }\n\n return [ secondCP, firstCP ];\n}\n\nexport function restrictControlPoint(p1, p2, cp, tangent) {\n if (p1.y < p2.y) {\n if (p2.y < cp.y) {\n cp.x = p1.x + (p2.y - p1.y) / tangent;\n cp.y = p2.y;\n } else if (cp.y < p1.y) {\n cp.x = p2.x - (p2.y - p1.y) / tangent;\n cp.y = p1.y;\n }\n } else {\n if (cp.y < p2.y) {\n cp.x = p1.x - (p1.y - p2.y) / tangent;\n cp.y = p2.y;\n } else if (p1.y < cp.y) {\n cp.x = p2.x + (p1.y - p2.y) / tangent;\n cp.y = p1.y;\n }\n }\n}\n\nexport function getTangent(p0, p1, xField, yField) {\n var x = p1[xField] - p0[xField];\n var y = p1[yField] - p0[yField];\n var tangent;\n\n if (x === 0) {\n tangent = 0;\n } else {\n tangent = y / x;\n }\n\n return tangent;\n}\n\nexport function isMonotonicByField(p0, p1, p2, field) {\n return (p2[field] > p1[field] && p1[field] > p0[field]) ||\n (p2[field] < p1[field] && p1[field] < p0[field]);\n}\n\nexport function firstControlPoint(tangent, p0, p3, xField, yField) {\n var t1 = p0[xField];\n var t2 = p3[xField];\n var distance = (t2 - t1) * WEIGHT;\n\n return point(t1 + distance, p0[yField] + distance * tangent, xField, yField);\n}\n\nexport function secondControlPoint(tangent, p0, p3, xField, yField) {\n var t1 = p0[xField];\n var t2 = p3[xField];\n var distance = (t2 - t1) * WEIGHT;\n\n return point(t2 - distance, p3[yField] - distance * tangent, xField, yField);\n}\n\nexport function point(xValue, yValue, xField, yField) {\n var controlPoint = new Point();\n controlPoint[xField] = xValue;\n controlPoint[yField] = yValue;\n\n return controlPoint;\n}\n\nexport function calculateFunction(fn, x) {\n var length = fn.length;\n var result = 0;\n\n for (var i = 0; i < length; i++) {\n result += Math.pow(x,i) * fn[i];\n }\n return result;\n}\n\nexport function numberSign(value) {\n return value <= 0 ? -1 : 1;\n}\n","import { defined } from '../util';\n\nvar GRADIENT = \"Gradient\";\n\nvar paintable = function (TBase) { return (\n (function (TBase) {\n function anonymous () {\n TBase.apply(this, arguments);\n }\n\n if ( TBase ) anonymous.__proto__ = TBase;\n anonymous.prototype = Object.create( TBase && TBase.prototype );\n anonymous.prototype.constructor = anonymous;\n\n anonymous.prototype.fill = function fill (color, opacity) {\n var options = this.options;\n\n if (defined(color)) {\n if (color && color.nodeType !== GRADIENT) {\n var newFill = {\n color: color\n };\n if (defined(opacity)) {\n newFill.opacity = opacity;\n }\n options.set(\"fill\", newFill);\n } else {\n options.set(\"fill\", color);\n }\n\n return this;\n }\n\n return options.get(\"fill\");\n };\n\n anonymous.prototype.stroke = function stroke (color, width, opacity) {\n if (defined(color)) {\n this.options.set(\"stroke.color\", color);\n\n if (defined(width)) {\n this.options.set(\"stroke.width\", width);\n }\n\n if (defined(opacity)) {\n this.options.set(\"stroke.opacity\", opacity);\n }\n\n return this;\n }\n\n return this.options.get(\"stroke\");\n };\n\n return anonymous;\n }(TBase))\n); };\n\nexport default paintable;\n","import Matrix from '../geometry/matrix';\nimport toMatrix from '../geometry/to-matrix';\n\nvar IDENTITY_MATRIX_HASH = Matrix.IDENTITY.toString();\n\nvar measurable = function (TBase) { return (\n (function (TBase) {\n function anonymous () {\n TBase.apply(this, arguments);\n }\n\n if ( TBase ) anonymous.__proto__ = TBase;\n anonymous.prototype = Object.create( TBase && TBase.prototype );\n anonymous.prototype.constructor = anonymous;\n\n anonymous.prototype.bbox = function bbox (transformation) {\n var combinedMatrix = toMatrix(this.currentTransform(transformation));\n var matrixHash = combinedMatrix ? combinedMatrix.toString() : IDENTITY_MATRIX_HASH;\n var bbox;\n\n if (this._bboxCache && this._matrixHash === matrixHash) {\n bbox = this._bboxCache.clone();\n } else {\n bbox = this._bbox(combinedMatrix);\n this._bboxCache = bbox ? bbox.clone() : null;\n this._matrixHash = matrixHash;\n }\n\n var strokeWidth = this.options.get(\"stroke.width\");\n if (strokeWidth && bbox) {\n bbox.expand(strokeWidth / 2);\n }\n\n return bbox;\n };\n\n anonymous.prototype.geometryChange = function geometryChange () {\n delete this._bboxCache;\n this.trigger(\"geometryChange\", {\n element: this\n });\n };\n\n return anonymous;\n }(TBase))\n); };\n\nexport default measurable;","import close from './close';\n\nexport default function closeOrLess(a, b, tolerance) {\n return a < b || close(a, b, tolerance);\n}","import HasObservers from '../core/has-observers';\nimport { deg, rad, round } from '../util';\nimport withAccessors from '../mixins/with-accessors';\n\nimport closeOrLess from './math/close-or-less';\nimport lineIntersection from './math/line-intersection';\nimport ellipseExtremeAngles from './math/ellipse-extreme-angles';\n\nimport { PRECISION } from './constants';\nimport Point from './point';\nimport Rect from './rect';\nimport transform from './transform';\n\n\nvar MAX_INTERVAL = 45;\nvar pow = Math.pow;\nvar accessors = [ \"radiusX\", \"radiusY\", \"startAngle\", \"endAngle\", \"anticlockwise\" ];\n\nvar Arc = (function (superclass) {\n function Arc(center, options) {\n if ( center === void 0 ) center = new Point();\n if ( options === void 0 ) options = {};\n\n superclass.call(this);\n\n this.setCenter(center);\n\n this.radiusX = options.radiusX;\n this.radiusY = options.radiusY || options.radiusX;\n this.startAngle = options.startAngle;\n this.endAngle = options.endAngle;\n this.anticlockwise = options.anticlockwise || false;\n this.xRotation = options.xRotation;\n }\n\n if ( superclass ) Arc.__proto__ = superclass;\n Arc.prototype = Object.create( superclass && superclass.prototype );\n Arc.prototype.constructor = Arc;\n\n Arc.prototype.clone = function clone () {\n return new Arc(this.center, {\n radiusX: this.radiusX,\n radiusY: this.radiusY,\n startAngle: this.startAngle,\n endAngle: this.endAngle,\n anticlockwise: this.anticlockwise\n });\n };\n\n Arc.prototype.setCenter = function setCenter (value) {\n this._observerField(\"center\", Point.create(value));\n this.geometryChange();\n return this;\n };\n\n Arc.prototype.getCenter = function getCenter () {\n return this.center;\n };\n\n Arc.prototype.pointAt = function pointAt (angle) {\n var center = this.center;\n var radian = rad(angle);\n\n return new Point(\n center.x + this.radiusX * Math.cos(radian),\n center.y + this.radiusY * Math.sin(radian)\n );\n };\n\n Arc.prototype.curvePoints = function curvePoints () {\n var this$1 = this;\n\n var startAngle = this.startAngle;\n var dir = this.anticlockwise ? -1 : 1;\n var curvePoints = [ this.pointAt(startAngle) ];\n var interval = this._arcInterval();\n var intervalAngle = interval.endAngle - interval.startAngle;\n var subIntervalsCount = Math.ceil(intervalAngle / MAX_INTERVAL);\n var subIntervalAngle = intervalAngle / subIntervalsCount;\n var currentAngle = startAngle;\n var transformation;\n if (this.xRotation) {\n transformation = transform().rotate(this.xRotation, this.center);\n }\n\n for (var i = 1; i <= subIntervalsCount; i++) {\n var nextAngle = currentAngle + dir * subIntervalAngle;\n var points = this$1._intervalCurvePoints(currentAngle, nextAngle, transformation);\n\n curvePoints.push(points.cp1, points.cp2, points.p2);\n currentAngle = nextAngle;\n }\n\n return curvePoints;\n };\n\n Arc.prototype.bbox = function bbox (matrix) {\n var this$1 = this;\n\n var interval = this._arcInterval();\n var startAngle = interval.startAngle;\n var endAngle = interval.endAngle;\n var extremeAngles = ellipseExtremeAngles(this.center, this.radiusX, this.radiusY, matrix);\n var extremeX = deg(extremeAngles.x);\n var extremeY = deg(extremeAngles.y);\n var endPoint = this.pointAt(endAngle).transformCopy(matrix);\n var currentAngleX = bboxStartAngle(extremeX, startAngle);\n var currentAngleY = bboxStartAngle(extremeY, startAngle);\n var currentPoint = this.pointAt(startAngle).transformCopy(matrix);\n var minPoint = Point.min(currentPoint, endPoint);\n var maxPoint = Point.max(currentPoint, endPoint);\n\n while (currentAngleX < endAngle || currentAngleY < endAngle) {\n var currentPointX = (void 0);\n if (currentAngleX < endAngle) {\n currentPointX = this$1.pointAt(currentAngleX).transformCopy(matrix);\n currentAngleX += 90;\n }\n\n var currentPointY = (void 0);\n if (currentAngleY < endAngle) {\n currentPointY = this$1.pointAt(currentAngleY).transformCopy(matrix);\n currentAngleY += 90;\n }\n\n currentPoint = new Point(currentPointX.x, currentPointY.y);\n minPoint = Point.min(minPoint, currentPoint);\n maxPoint = Point.max(maxPoint, currentPoint);\n }\n\n return Rect.fromPoints(minPoint, maxPoint);\n };\n\n Arc.prototype._arcInterval = function _arcInterval () {\n var ref = this;\n var startAngle = ref.startAngle;\n var endAngle = ref.endAngle;\n var anticlockwise = ref.anticlockwise;\n\n if (anticlockwise) {\n var oldStart = startAngle;\n startAngle = endAngle;\n endAngle = oldStart;\n }\n\n if (startAngle > endAngle || (anticlockwise && startAngle === endAngle)) {\n endAngle += 360;\n }\n\n return {\n startAngle: startAngle,\n endAngle: endAngle\n };\n };\n\n Arc.prototype._intervalCurvePoints = function _intervalCurvePoints (startAngle, endAngle, transformation) {\n var p1 = this.pointAt(startAngle);\n var p2 = this.pointAt(endAngle);\n var p1Derivative = this._derivativeAt(startAngle);\n var p2Derivative = this._derivativeAt(endAngle);\n var t = (rad(endAngle) - rad(startAngle)) / 3;\n var cp1 = new Point(p1.x + t * p1Derivative.x, p1.y + t * p1Derivative.y);\n var cp2 = new Point(p2.x - t * p2Derivative.x, p2.y - t * p2Derivative.y);\n if (transformation) {\n p1.transform(transformation);\n p2.transform(transformation);\n cp1.transform(transformation);\n cp2.transform(transformation);\n }\n\n return {\n p1: p1,\n cp1: cp1,\n cp2: cp2,\n p2: p2\n };\n };\n\n Arc.prototype._derivativeAt = function _derivativeAt (angle) {\n var radian = rad(angle);\n\n return new Point(-this.radiusX * Math.sin(radian), this.radiusY * Math.cos(radian));\n };\n\n Arc.prototype.containsPoint = function containsPoint (point) {\n var interval = this._arcInterval();\n var intervalAngle = interval.endAngle - interval.startAngle;\n var ref = this;\n var center = ref.center;\n var radiusX = ref.radiusX;\n var radiusY = ref.radiusY;\n var distance = center.distanceTo(point);\n var angleRad = Math.atan2(point.y - center.y, point.x - center.x);\n var pointRadius = (radiusX * radiusY) /\n Math.sqrt(pow(radiusX, 2) * pow(Math.sin(angleRad), 2) + pow(radiusY, 2) * pow(Math.cos(angleRad), 2));\n var startPoint = this.pointAt(this.startAngle).round(PRECISION);\n var endPoint = this.pointAt(this.endAngle).round(PRECISION);\n var intersection = lineIntersection(center, point.round(PRECISION), startPoint, endPoint);\n var containsPoint;\n\n if (intervalAngle < 180) {\n containsPoint = intersection && closeOrLess(center.distanceTo(intersection), distance) && closeOrLess(distance, pointRadius);\n } else {\n var angle = calculateAngle(center.x, center.y, radiusX, radiusY, point.x, point.y);\n if (angle !== 360) {\n angle = (360 + angle) % 360;\n }\n\n var inAngleRange = interval.startAngle <= angle && angle <= interval.endAngle;\n containsPoint = (inAngleRange && closeOrLess(distance, pointRadius)) || (!inAngleRange && (!intersection || intersection.equals(point)));\n }\n return containsPoint;\n };\n\n Arc.prototype._isOnPath = function _isOnPath (point, width) {\n var interval = this._arcInterval();\n var center = this.center;\n var angle = calculateAngle(center.x, center.y, this.radiusX, this.radiusY, point.x, point.y);\n if (angle !== 360) {\n angle = (360 + angle) % 360;\n }\n\n var inAngleRange = interval.startAngle <= angle && angle <= interval.endAngle;\n\n return inAngleRange && this.pointAt(angle).distanceTo(point) <= width;\n };\n\n Arc.fromPoints = function fromPoints (start, end, rx, ry, largeArc, swipe, rotation) {// eslint-disable-line max-params\n var arcParameters = normalizeArcParameters({\n x1: start.x,\n y1: start.y,\n x2: end.x,\n y2: end.y,\n rx: rx,\n ry: ry,\n largeArc: largeArc,\n swipe: swipe,\n rotation: rotation\n });\n\n return new Arc(arcParameters.center, {\n startAngle: arcParameters.startAngle,\n endAngle: arcParameters.endAngle,\n radiusX: arcParameters.radiusX,\n radiusY: arcParameters.radiusY,\n xRotation: arcParameters.xRotation,\n anticlockwise: swipe === 0\n });\n };\n\n return Arc;\n}(withAccessors(HasObservers, accessors)));\n\nfunction calculateAngle(cx, cy, rx, ry, x, y) {\n var cos = round((x - cx) / rx, 3);\n var sin = round((y - cy) / ry, 3);\n\n return round(deg(Math.atan2(sin, cos)));\n}\n\nfunction normalizeArcParameters(parameters) {\n var x1 = parameters.x1;\n var y1 = parameters.y1;\n var x2 = parameters.x2;\n var y2 = parameters.y2;\n var rx = parameters.rx;\n var ry = parameters.ry;\n var largeArc = parameters.largeArc;\n var swipe = parameters.swipe;\n var rotation = parameters.rotation; if ( rotation === void 0 ) rotation = 0;\n\n var radians = rad(rotation);\n var cosine = Math.cos(radians);\n var sine = Math.sin(radians);\n\n var xT = cosine * (x1 - x2) / 2 + sine * (y1 - y2) / 2;\n var yT = -sine * (x1 - x2) / 2 + cosine * (y1 - y2) / 2;\n\n var sign = largeArc !== swipe ? 1 : -1;\n\n var xt2 = Math.pow(xT, 2);\n var yt2 = Math.pow(yT, 2);\n var rx2 = Math.pow(rx, 2);\n var ry2 = Math.pow(ry, 2);\n\n var delta = xt2 / rx2 + yt2 / ry2;\n\n if (delta > 1) {\n delta = Math.sqrt(xt2 / rx2 + yt2 / ry2);\n rx = delta * rx;\n rx2 = Math.pow(rx, 2);\n\n ry = delta * ry;\n ry2 = Math.pow(ry, 2);\n }\n\n var constT = sign * Math.sqrt((rx2 * ry2 - rx2 * yt2 - ry2 * xt2) / (rx2 * yt2 + ry2 * xt2));\n // due to rounding errors the value could become NaN even after radii correction\n if (isNaN(constT)) {\n constT = 0;\n }\n\n var cxT = constT * (rx * yT) / ry;\n var cyT = - constT * (ry * xT) / rx;\n\n var cx = cosine * cxT - sine * cyT + (x1 + x2) / 2;\n var cy = sine * cxT + cosine * cyT + (y1 + y2) / 2;\n\n\n var uX = (xT - cxT) / rx;\n var uY = (yT - cyT) / ry;\n var vX = -(xT + cxT) / rx;\n var vY = -(yT + cyT) / ry;\n\n var startAngle = (uY >= 0 ? 1 : -1) * deg(Math.acos(uX / Math.sqrt(uX * uX + uY * uY)));\n\n var angleCosine = round((uX * vX + uY * vY) / (Math.sqrt(uX * uX + uY * uY) * Math.sqrt(vX * vX + vY * vY)), 10);\n var angle = (uX * vY - uY * vX >= 0 ? 1 : -1) * deg(Math.acos(angleCosine));\n\n if (!swipe && angle > 0) {\n angle -= 360;\n }\n\n if (swipe && angle < 0) {\n angle += 360;\n }\n var endAngle = startAngle + angle;\n var signEndAngle = endAngle >= 0 ? 1 : -1;\n endAngle = (Math.abs(endAngle) % 360) * signEndAngle;\n\n return {\n center: new Point(cx, cy),\n startAngle: startAngle,\n endAngle: endAngle,\n radiusX: rx,\n radiusY: ry,\n xRotation: rotation\n };\n}\n\nfunction bboxStartAngle(angle, start) {\n var startAngle = angle;\n\n while (startAngle < start) {\n startAngle += 90;\n }\n\n return startAngle;\n}\n\nexport default Arc;\n","export default function ellipseExtremeAngles(center, rx, ry, matrix) {\n var extremeX = 0;\n var extremeY = 0;\n\n if (matrix) {\n extremeX = Math.atan2(matrix.c * ry, matrix.a * rx);\n if (matrix.b !== 0) {\n extremeY = Math.atan2(matrix.d * ry, matrix.b * rx);\n }\n }\n\n return {\n x: extremeX,\n y: extremeY\n };\n}","import Point from '../point';\n\nexport default function lineIntersection(p0, p1, p2, p3) {\n var s1x = p1.x - p0.x;\n var s2x = p3.x - p2.x;\n var s1y = p1.y - p0.y;\n var s2y = p3.y - p2.y;\n var nx = p0.x - p2.x;\n var ny = p0.y - p2.y;\n var d = s1x * s2y - s2x * s1y;\n var s = (s1x * ny - s1y * nx) / d;\n var t = (s2x * ny - s2y * nx) / d;\n\n if (s >= 0 && s <= 1 && t >= 0 && t <= 1) {\n return new Point(p0.x + t * s1x, p0.y + t * s1y);\n }\n}","import Point from '../geometry/point';\nimport { last } from '../util';\n\nvar ShapeMap = {\n l: function(path, options) {\n var parameters = options.parameters;\n var position = options.position;\n\n for (var i = 0; i < parameters.length; i += 2) {\n var point = new Point(parameters[i], parameters[i + 1]);\n\n if (options.isRelative) {\n point.translateWith(position);\n }\n\n path.lineTo(point.x, point.y);\n\n position.x = point.x;\n position.y = point.y;\n }\n },\n\n c: function(path, options) {\n var parameters = options.parameters;\n var position = options.position;\n\n for (var i = 0; i < parameters.length; i += 6) {\n var controlOut = new Point(parameters[i], parameters[i + 1]);\n var controlIn = new Point(parameters[i + 2], parameters[i + 3]);\n var point = new Point(parameters[i + 4], parameters[i + 5]);\n if (options.isRelative) {\n controlIn.translateWith(position);\n controlOut.translateWith(position);\n point.translateWith(position);\n }\n\n path.curveTo(controlOut, controlIn, point);\n\n position.x = point.x;\n position.y = point.y;\n }\n },\n\n v: function(path, options) {\n var value = options.isRelative ? 0 : options.position.x;\n\n toLineParamaters(options.parameters, true, value);\n this.l(path, options);\n },\n\n h: function(path, options) {\n var value = options.isRelative ? 0 : options.position.y;\n\n toLineParamaters(options.parameters, false, value);\n this.l(path, options);\n },\n\n a: function(path, options) {\n var parameters = options.parameters;\n var position = options.position;\n\n for (var i = 0; i < parameters.length; i += 7) {\n var radiusX = parameters[i];\n var radiusY = parameters[i + 1];\n var rotation = parameters[i + 2];\n var largeArc = parameters[i + 3];\n var swipe = parameters[i + 4];\n var endPoint = new Point(parameters[i + 5], parameters[i + 6]);\n\n if (options.isRelative) {\n endPoint.translateWith(position);\n }\n if (position.x !== endPoint.x || position.y !== endPoint.y) {\n path.arcTo(endPoint, radiusX, radiusY, largeArc, swipe, rotation);\n\n position.x = endPoint.x;\n position.y = endPoint.y;\n }\n }\n },\n\n s: function(path, options) {\n var parameters = options.parameters;\n var position = options.position;\n var previousCommand = options.previousCommand;\n var lastControlIn;\n\n if (previousCommand === \"s\" || previousCommand === \"c\") {\n lastControlIn = last(last(path.paths).segments).controlIn();\n }\n\n for (var i = 0; i < parameters.length; i += 4) {\n var controlIn = new Point(parameters[i], parameters[i + 1]);\n var endPoint = new Point(parameters[i + 2], parameters[i + 3]);\n var controlOut = (void 0);\n\n if (options.isRelative) {\n controlIn.translateWith(position);\n endPoint.translateWith(position);\n }\n\n if (lastControlIn) {\n controlOut = reflectionPoint(lastControlIn, position);\n } else {\n controlOut = position.clone();\n }\n\n lastControlIn = controlIn;\n\n path.curveTo(controlOut, controlIn, endPoint);\n\n position.x = endPoint.x;\n position.y = endPoint.y;\n }\n },\n\n q: function(path, options) {\n var parameters = options.parameters;\n var position = options.position;\n\n for (var i = 0; i < parameters.length; i += 4) {\n var controlPoint = new Point(parameters[i], parameters[i + 1]);\n var endPoint = new Point(parameters[i + 2], parameters[i + 3]);\n\n if (options.isRelative) {\n controlPoint.translateWith(position);\n endPoint.translateWith(position);\n }\n\n var cubicControlPoints = quadraticToCubicControlPoints(position, controlPoint, endPoint);\n\n path.curveTo(cubicControlPoints.controlOut, cubicControlPoints.controlIn, endPoint);\n\n position.x = endPoint.x;\n position.y = endPoint.y;\n }\n },\n\n t: function(path, options) {\n var parameters = options.parameters;\n var position = options.position;\n var previousCommand = options.previousCommand;\n var controlPoint;\n\n if (previousCommand === \"q\" || previousCommand === \"t\") {\n var lastSegment = last(last(path.paths).segments);\n controlPoint = lastSegment.controlIn().clone()\n .translateWith(position.scaleCopy(-1 / 3))\n .scale(3 / 2);\n }\n\n for (var i = 0; i < parameters.length; i += 2) {\n var endPoint = new Point(parameters[i], parameters[i + 1]);\n if (options.isRelative) {\n endPoint.translateWith(position);\n }\n\n if (controlPoint) {\n controlPoint = reflectionPoint(controlPoint, position);\n } else {\n controlPoint = position.clone();\n }\n\n var cubicControlPoints = quadraticToCubicControlPoints(position, controlPoint, endPoint);\n\n path.curveTo(cubicControlPoints.controlOut, cubicControlPoints.controlIn, endPoint);\n\n position.x = endPoint.x;\n position.y = endPoint.y;\n }\n }\n};\n\nfunction toLineParamaters(parameters, isVertical, value) {\n var insertPosition = isVertical ? 0 : 1;\n\n for (var i = 0; i < parameters.length; i += 2) {\n parameters.splice(i + insertPosition, 0, value);\n }\n}\n\nfunction reflectionPoint(point, center) {\n if (point && center) {\n return center.scaleCopy(2).translate(-point.x, -point.y);\n }\n}\n\nvar third = 1 / 3;\n\nfunction quadraticToCubicControlPoints(position, controlPoint, endPoint) {\n var scaledPoint = controlPoint.clone().scale(2 / 3);\n return {\n controlOut: scaledPoint.clone().translateWith(position.scaleCopy(third)),\n controlIn: scaledPoint.translateWith(endPoint.scaleCopy(third))\n };\n}\n\nexport default ShapeMap;","import Point from '../geometry/point';\nimport ShapeMap from './shape-map';\n\nvar SEGMENT_REGEX = /([a-df-z]{1})([^a-df-z]*)(z)?/gi;\nvar SPLIT_REGEX = /[,\\s]?([+\\-]?(?:\\d*\\.\\d+|\\d+)(?:[eE][+\\-]?\\d+)?)/g;\nvar MOVE = \"m\";\nvar CLOSE = \"z\";\n\nfunction parseParameters(str) {\n var parameters = [];\n str.replace(SPLIT_REGEX, function(match, number) {\n parameters.push(parseFloat(number));\n });\n return parameters;\n}\n\nfunction parsePath(pathInstance, str) {\n var position = new Point();\n var previousCommand;\n\n str.replace(SEGMENT_REGEX, function (match, element, params, closePath) {\n var command = element.toLowerCase();\n var isRelative = command === element;\n var parameters = parseParameters(params.trim());\n\n if (command === MOVE) {\n if (isRelative) {\n position.x += parameters[0];\n position.y += parameters[1];\n } else {\n position.x = parameters[0];\n position.y = parameters[1];\n }\n\n pathInstance.moveTo(position.x, position.y);\n\n if (parameters.length > 2) {\n command = \"l\";\n parameters.splice(0, 2);\n }\n }\n\n if (ShapeMap[command]) {\n ShapeMap[command](\n pathInstance, {\n parameters: parameters,\n position: position,\n isRelative: isRelative,\n previousCommand: previousCommand\n }\n );\n\n if (closePath && closePath.toLowerCase() === CLOSE) {\n pathInstance.close();\n }\n } else if (command !== MOVE) {\n throw new Error(\"Error while parsing SVG path. Unsupported command: \" + command);\n }\n\n previousCommand = command;\n });\n\n return pathInstance;\n}\n\nexport default parsePath;\n\n","import Rect from '../../geometry/rect';\n\nexport default function elementsBoundingBox(elements, applyTransform, transformation) {\n var boundingBox;\n\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i];\n if (element.visible()) {\n var elementBoundingBox = applyTransform ? element.bbox(transformation) : element.rawBBox();\n if (elementBoundingBox) {\n if (boundingBox) {\n boundingBox = Rect.union(boundingBox, elementBoundingBox);\n } else {\n boundingBox = elementBoundingBox;\n }\n }\n }\n }\n\n return boundingBox;\n}\n\n","import Rect from '../../geometry/rect';\n\nexport default function elementsClippedBoundingBox(elements, transformation) {\n var boundingBox;\n\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i];\n if (element.visible()) {\n var elementBoundingBox = element.clippedBBox(transformation);\n if (elementBoundingBox) {\n if (boundingBox) {\n boundingBox = Rect.union(boundingBox, elementBoundingBox);\n } else {\n boundingBox = elementBoundingBox;\n }\n }\n }\n }\n\n return boundingBox;\n}","export default function limitValue(value, min, max) {\n return Math.max(Math.min(value, max), min);\n}","import GeometryElementsArray from './geometry-elements-array';\nimport Element from './element';\nimport { pointsToCurve } from './utils/points-to-curve';\nimport paintable from '../mixins/paintable';\nimport measurable from '../mixins/measurable';\nimport Arc from '../geometry/arc';\nimport Rect from '../geometry/rect';\nimport Segment from '../geometry/segment';\nimport Point from '../geometry/point';\nimport Size from '../geometry/size';\nimport lineIntersectionsCount from '../geometry/math/line-intersections-count';\nimport { defined, last, rad } from '../util';\nimport parsePath from '../parsing/parse-path';\nimport elementsBoundingBox from './utils/elements-bounding-box';\nimport elementsClippedBoundingBox from './utils/elements-clippend-bounding-box';\nimport limitValue from '../util/limit-value';\n\nvar SPACE = ' ';\nvar printPoints = function (precision) { return function () {\n var points = [], len = arguments.length;\n while ( len-- ) points[ len ] = arguments[ len ];\n\n return points.map(function (p) { return p.toString(precision); }).join(SPACE);\n; } };\nvar segmentType = function (segmentStart, segmentEnd) { return segmentStart.controlOut() && segmentEnd.controlIn() ? 'C' : 'L'; };\n\nexport var Path = (function (superclass) {\n function Path(options) {\n superclass.call(this, options);\n this.segments = new GeometryElementsArray();\n this.segments.addObserver(this);\n\n if (!defined(this.options.stroke)) {\n this.stroke('#000');\n\n if (!defined(this.options.stroke.lineJoin)) {\n this.options.set('stroke.lineJoin', 'miter');\n }\n }\n }\n\n if ( superclass ) Path.__proto__ = superclass;\n Path.prototype = Object.create( superclass && superclass.prototype );\n Path.prototype.constructor = Path;\n\n var prototypeAccessors = { nodeType: { configurable: true } };\n\n prototypeAccessors.nodeType.get = function () {\n return 'Path';\n };\n\n Path.prototype.moveTo = function moveTo (x, y) {\n this.suspend();\n this.segments.elements([]);\n this.resume();\n\n this.lineTo(x, y);\n\n return this;\n };\n\n Path.prototype.lineTo = function lineTo (x, y) {\n var point = defined(y) ? new Point(x, y) : x;\n var segment = new Segment(point);\n\n this.segments.push(segment);\n\n return this;\n };\n\n Path.prototype.curveTo = function curveTo (controlOut, controlIn, point) {\n if (this.segments.length > 0) {\n var lastSegment = last(this.segments);\n var segment = new Segment(point, controlIn);\n this.suspend();\n lastSegment.controlOut(controlOut);\n this.resume();\n\n this.segments.push(segment);\n }\n\n return this;\n };\n\n Path.prototype.arc = function arc (startAngle, endAngle, radiusX, radiusY, anticlockwise) {\n if (this.segments.length > 0) {\n var lastSegment = last(this.segments);\n var anchor = lastSegment.anchor();\n var start = rad(startAngle);\n var center = new Point(anchor.x - radiusX * Math.cos(start),\n anchor.y - radiusY * Math.sin(start));\n var arc = new Arc(center, {\n startAngle: startAngle,\n endAngle: endAngle,\n radiusX: radiusX,\n radiusY: radiusY,\n anticlockwise: anticlockwise\n });\n\n this._addArcSegments(arc);\n }\n\n return this;\n };\n\n Path.prototype.arcTo = function arcTo (end, rx, ry, largeArc, swipe, rotation) {\n if (this.segments.length > 0) {\n var lastSegment = last(this.segments);\n var anchor = lastSegment.anchor();\n var arc = Arc.fromPoints(anchor, Point.create(end), rx, ry, largeArc, swipe, rotation);\n\n this._addArcSegments(arc);\n }\n return this;\n };\n\n Path.prototype._addArcSegments = function _addArcSegments (arc) {\n var this$1 = this;\n\n this.suspend();\n\n var curvePoints = arc.curvePoints();\n\n for (var i = 1; i < curvePoints.length; i += 3) {\n this$1.curveTo(curvePoints[i], curvePoints[i + 1], curvePoints[i + 2]);\n }\n\n this.resume();\n this.geometryChange();\n };\n\n Path.prototype.close = function close () {\n this.options.closed = true;\n this.geometryChange();\n\n return this;\n };\n\n Path.prototype.rawBBox = function rawBBox () {\n return this._bbox();\n };\n\n Path.prototype.toString = function toString (digits) {\n var output = '';\n\n var segments = this.segments;\n var length = segments.length;\n if (length > 0) {\n var parts = [];\n var print = printPoints(digits);\n var currentType;\n\n for (var i = 1; i < length; i++) {\n var type = segmentType(segments[i - 1], segments[i]);\n if (type !== currentType) {\n currentType = type;\n parts.push(type);\n }\n\n if (type === 'L') {\n parts.push(print(segments[i].anchor()));\n } else {\n parts.push(print(\n segments[i - 1].controlOut(), segments[i].controlIn(), segments[i].anchor()\n ));\n }\n }\n\n output = 'M' + print(segments[0].anchor()) + SPACE + parts.join(SPACE);\n if (this.options.closed) {\n output += 'Z';\n }\n }\n\n return output;\n };\n\n Path.prototype._containsPoint = function _containsPoint (point) {\n var segments = this.segments;\n var length = segments.length;\n var intersectionsCount = 0;\n var previous, current;\n\n for (var idx = 1; idx < length; idx++) {\n previous = segments[idx - 1];\n current = segments[idx];\n intersectionsCount += previous._intersectionsTo(current, point);\n }\n\n if (this.options.closed || !segments[0].anchor().equals(segments[length - 1].anchor())) {\n intersectionsCount += lineIntersectionsCount(segments[0].anchor(), segments[length - 1].anchor(), point);\n }\n\n return intersectionsCount % 2 !== 0;\n };\n\n Path.prototype._isOnPath = function _isOnPath (point, width) {\n var segments = this.segments;\n var length = segments.length;\n var pathWidth = width || this.options.stroke.width;\n\n if (length > 1) {\n if (segments[0]._isOnPathTo(segments[1], point, pathWidth, 'start')) {\n return true;\n }\n\n for (var idx = 2; idx <= length - 2; idx++) {\n if (segments[idx - 1]._isOnPathTo(segments[idx], point, pathWidth)) {\n return true;\n }\n }\n\n if (segments[length - 2]._isOnPathTo(segments[length - 1], point, pathWidth, 'end')) {\n return true;\n }\n }\n return false;\n };\n\n Path.prototype._bbox = function _bbox (matrix) {\n var segments = this.segments;\n var length = segments.length;\n var boundingBox;\n\n if (length === 1) {\n var anchor = segments[0].anchor().transformCopy(matrix);\n boundingBox = new Rect(anchor, Size.ZERO);\n } else if (length > 0) {\n for (var i = 1; i < length; i++) {\n var segmentBox = segments[i - 1].bboxTo(segments[i], matrix);\n if (boundingBox) {\n boundingBox = Rect.union(boundingBox, segmentBox);\n } else {\n boundingBox = segmentBox;\n }\n }\n }\n\n return boundingBox;\n };\n\n Path.parse = function parse (str, options) {\n return MultiPath.parse(str, options);\n };\n\n Path.fromRect = function fromRect (rect, options) {\n var path = new Path(options);\n var ref = rect.cornerRadius;\n var rx = ref[0];\n var ry = ref[1];\n\n if (rx === 0 && ry === 0) {\n path.moveTo(rect.topLeft())\n .lineTo(rect.topRight())\n .lineTo(rect.bottomRight())\n .lineTo(rect.bottomLeft())\n .close();\n } else {\n var origin = rect.origin;\n var x = origin.x;\n var y = origin.y;\n var width = rect.width();\n var height = rect.height();\n rx = limitValue(rx, 0, width / 2);\n ry = limitValue(ry, 0, height / 2);\n\n path.moveTo(x + rx, y)\n .lineTo(x + width - rx, y)\n .arcTo([ x + width, y + ry ], rx, ry, false)\n .lineTo(x + width, y + height - ry)\n .arcTo([ x + width - rx, y + height ], rx, ry, false)\n .lineTo(x + rx, y + height)\n .arcTo([ x, y + height - ry ], rx, ry, false)\n .lineTo(x, y + ry)\n .arcTo([ x + rx, y ], rx, ry, false);\n }\n\n return path;\n };\n\n Path.fromPoints = function fromPoints (points, options) {\n if (points) {\n var path = new Path(options);\n\n for (var i = 0; i < points.length; i++) {\n var point = Point.create(points[i]);\n if (point) {\n if (i === 0) {\n path.moveTo(point);\n } else {\n path.lineTo(point);\n }\n }\n }\n\n return path;\n }\n };\n\n Path.curveFromPoints = function curveFromPoints (points, options) {\n if (points) {\n var segments = pointsToCurve(points);\n var path = new Path(options);\n path.segments.push.apply(path.segments, segments);\n\n return path;\n }\n };\n\n Path.fromArc = function fromArc (arc, options) {\n var path = new Path(options);\n var startAngle = arc.startAngle;\n var start = arc.pointAt(startAngle);\n path.moveTo(start.x, start.y);\n path.arc(startAngle, arc.endAngle, arc.radiusX, arc.radiusY, arc.anticlockwise);\n return path;\n };\n\n Object.defineProperties( Path.prototype, prototypeAccessors );\n\n return Path;\n}(paintable(measurable(Element))));\n\nexport var MultiPath = (function (superclass) {\n function MultiPath(options) {\n superclass.call(this, options);\n this.paths = new GeometryElementsArray();\n this.paths.addObserver(this);\n\n if (!defined(this.options.stroke)) {\n this.stroke('#000');\n }\n }\n\n if ( superclass ) MultiPath.__proto__ = superclass;\n MultiPath.prototype = Object.create( superclass && superclass.prototype );\n MultiPath.prototype.constructor = MultiPath;\n\n var prototypeAccessors$1 = { nodeType: { configurable: true } };\n\n MultiPath.parse = function parse (str, options) {\n var instance = new MultiPath(options);\n return parsePath(instance, str);\n };\n\n MultiPath.prototype.toString = function toString (digits) {\n var paths = this.paths;\n var output = '';\n\n if (paths.length > 0) {\n var result = [];\n\n for (var i = 0; i < paths.length; i++) {\n result.push(paths[i].toString(digits));\n }\n\n output = result.join(SPACE);\n }\n\n return output;\n };\n\n prototypeAccessors$1.nodeType.get = function () {\n return 'MultiPath';\n };\n\n MultiPath.prototype.moveTo = function moveTo (x, y) {\n var path = new Path();\n path.moveTo(x, y);\n\n this.paths.push(path);\n\n return this;\n };\n\n MultiPath.prototype.lineTo = function lineTo (x, y) {\n if (this.paths.length > 0) {\n last(this.paths).lineTo(x, y);\n }\n\n return this;\n };\n\n MultiPath.prototype.curveTo = function curveTo (controlOut, controlIn, point) {\n if (this.paths.length > 0) {\n last(this.paths).curveTo(controlOut, controlIn, point);\n }\n\n return this;\n };\n\n MultiPath.prototype.arc = function arc (startAngle, endAngle, radiusX, radiusY, anticlockwise) {\n if (this.paths.length > 0) {\n last(this.paths).arc(startAngle, endAngle, radiusX, radiusY, anticlockwise);\n }\n\n return this;\n };\n\n MultiPath.prototype.arcTo = function arcTo (end, rx, ry, largeArc, swipe, rotation) {\n if (this.paths.length > 0) {\n last(this.paths).arcTo(end, rx, ry, largeArc, swipe, rotation);\n }\n\n return this;\n };\n\n MultiPath.prototype.close = function close () {\n if (this.paths.length > 0) {\n last(this.paths).close();\n }\n\n return this;\n };\n\n MultiPath.prototype._bbox = function _bbox (matrix) {\n return elementsBoundingBox(this.paths, true, matrix);\n };\n\n MultiPath.prototype.rawBBox = function rawBBox () {\n return elementsBoundingBox(this.paths, false);\n };\n\n MultiPath.prototype._containsPoint = function _containsPoint (point) {\n var paths = this.paths;\n\n for (var idx = 0; idx < paths.length; idx++) {\n if (paths[idx]._containsPoint(point)) {\n return true;\n }\n }\n return false;\n };\n\n MultiPath.prototype._isOnPath = function _isOnPath (point) {\n var paths = this.paths;\n var width = this.options.stroke.width;\n\n for (var idx = 0; idx < paths.length; idx++) {\n if (paths[idx]._isOnPath(point, width)) {\n return true;\n }\n }\n return false;\n };\n\n MultiPath.prototype._clippedBBox = function _clippedBBox (transformation) {\n return elementsClippedBoundingBox(this.paths, this.currentTransform(transformation));\n };\n\n Object.defineProperties( MultiPath.prototype, prototypeAccessors$1 );\n\n return MultiPath;\n}(paintable(measurable(Element))));\n\n","import { defined } from '../util';\n\nfunction geometryAccessor(name) {\n var fieldName = \"_\" + name;\n return function(value) {\n if (defined(value)) {\n this._observerField(fieldName, value);\n this.geometryChange();\n return this;\n }\n\n return this[fieldName];\n };\n}\n\nfunction defineGeometryAccessors(fn, names) {\n for (var i = 0; i < names.length; i++) {\n fn[names[i]] = geometryAccessor(names[i]);\n }\n}\n\nvar withGeometry = function (TBase, names) {\n if ( names === void 0 ) names = [ \"geometry\" ];\n\n var result = (function (TBase) {\n function result () {\n TBase.apply(this, arguments);\n }if ( TBase ) result.__proto__ = TBase;\n result.prototype = Object.create( TBase && TBase.prototype );\n result.prototype.constructor = result;\n\n \n\n return result;\n }(TBase));\n defineGeometryAccessors(result.prototype, names);\n\n return result;\n};\n\nexport default withGeometry;\n","import withGeometry from '../mixins/with-geometry';\nimport Element from './element';\nimport Rect from '../geometry/rect';\nimport toMatrix from '../geometry/to-matrix';\nimport { defined } from '../util';\n\n\nvar Image = (function (superclass) {\n function Image(src, rect, options) {\n if ( rect === void 0 ) rect = new Rect();\n if ( options === void 0 ) options = {};\n\n superclass.call(this, options);\n\n this.src(src);\n this.rect(rect);\n }\n\n if ( superclass ) Image.__proto__ = superclass;\n Image.prototype = Object.create( superclass && superclass.prototype );\n Image.prototype.constructor = Image;\n\n var prototypeAccessors = { nodeType: { configurable: true } };\n\n prototypeAccessors.nodeType.get = function () {\n return \"Image\";\n };\n\n Image.prototype.src = function src (value) {\n if (defined(value)) {\n this.options.set(\"src\", value);\n return this;\n }\n\n return this.options.get(\"src\");\n };\n\n Image.prototype.bbox = function bbox (transformation) {\n var combinedMatrix = toMatrix(this.currentTransform(transformation));\n return this._rect.bbox(combinedMatrix);\n };\n\n Image.prototype.rawBBox = function rawBBox () {\n return this._rect.bbox();\n };\n\n Image.prototype._containsPoint = function _containsPoint (point) {\n return this._rect.containsPoint(point);\n };\n\n Image.prototype._hasFill = function _hasFill () {\n return this.src();\n };\n\n Object.defineProperties( Image.prototype, prototypeAccessors );\n\n return Image;\n}(withGeometry(Element, [ \"rect\" ])));\n\nexport default Image;","var traversable = function (TBase, childrenField) { return (\n (function (TBase) {\n function anonymous () {\n TBase.apply(this, arguments);\n }\n\n if ( TBase ) anonymous.__proto__ = TBase;\n anonymous.prototype = Object.create( TBase && TBase.prototype );\n anonymous.prototype.constructor = anonymous;\n\n anonymous.prototype.traverse = function traverse (callback) {\n var children = this[childrenField];\n\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n\n if (child.traverse) {\n child.traverse(callback);\n } else {\n callback(child);\n }\n }\n\n return this;\n };\n\n return anonymous;\n }(TBase))\n); };\n\nexport default traversable;\n","export default function append(first, second) {\n first.push.apply(first, second);\n return first;\n}","import Element from './element';\nimport traversable from '../mixins/traversable';\nimport { append } from '../util';\nimport elementsBoundingBox from './utils/elements-bounding-box';\nimport elementsClippedBoundingBox from './utils/elements-clippend-bounding-box';\n\n\nvar Group = (function (superclass) {\n function Group(options) {\n superclass.call(this, options);\n this.children = [];\n }\n\n if ( superclass ) Group.__proto__ = superclass;\n Group.prototype = Object.create( superclass && superclass.prototype );\n Group.prototype.constructor = Group;\n\n var prototypeAccessors = { nodeType: { configurable: true } };\n\n prototypeAccessors.nodeType.get = function () {\n return \"Group\";\n };\n\n Group.prototype.childrenChange = function childrenChange (action, items, index) {\n this.trigger(\"childrenChange\",{\n action: action,\n items: items,\n index: index\n });\n };\n\n Group.prototype.append = function append$1 () {\n append(this.children, arguments);\n this._reparent(arguments, this);\n\n this.childrenChange(\"add\", arguments);\n\n return this;\n };\n\n Group.prototype.insert = function insert (index, element) {\n this.children.splice(index, 0, element);\n element.parent = this;\n\n this.childrenChange(\"add\", [ element ], index);\n\n return this;\n };\n\n Group.prototype.insertAt = function insertAt (element, index) {\n return this.insert(index, element);\n };\n\n Group.prototype.remove = function remove (element) {\n var index = this.children.indexOf(element);\n if (index >= 0) {\n this.children.splice(index, 1);\n element.parent = null;\n this.childrenChange(\"remove\", [ element ], index);\n }\n\n return this;\n };\n\n Group.prototype.removeAt = function removeAt (index) {\n if (0 <= index && index < this.children.length) {\n var element = this.children[index];\n this.children.splice(index, 1);\n element.parent = null;\n this.childrenChange(\"remove\", [ element ], index);\n }\n\n return this;\n };\n\n Group.prototype.clear = function clear () {\n var items = this.children;\n this.children = [];\n this._reparent(items, null);\n\n this.childrenChange(\"remove\", items, 0);\n\n return this;\n };\n\n Group.prototype.bbox = function bbox (transformation) {\n return elementsBoundingBox(this.children, true, this.currentTransform(transformation));\n };\n\n Group.prototype.rawBBox = function rawBBox () {\n return elementsBoundingBox(this.children, false);\n };\n\n Group.prototype._clippedBBox = function _clippedBBox (transformation) {\n return elementsClippedBoundingBox(this.children, this.currentTransform(transformation));\n };\n\n Group.prototype.currentTransform = function currentTransform (transformation) {\n return Element.prototype.currentTransform.call(this, transformation) || null;\n };\n\n Group.prototype.containsPoint = function containsPoint (point, parentTransform) {\n if (this.visible()) {\n var children = this.children;\n var transform = this.currentTransform(parentTransform);\n for (var idx = 0; idx < children.length; idx++) {\n if (children[idx].containsPoint(point, transform)) {\n return true;\n }\n }\n }\n return false;\n };\n\n Group.prototype._reparent = function _reparent (elements, newParent) {\n var this$1 = this;\n\n for (var i = 0; i < elements.length; i++) {\n var child = elements[i];\n var parent = child.parent;\n if (parent && parent !== this$1 && parent.remove) {\n parent.remove(child);\n }\n\n child.parent = newParent;\n }\n };\n\n Object.defineProperties( Group.prototype, prototypeAccessors );\n\n return Group;\n}(traversable(Element, \"children\")));\n\nexport default Group;","import Class from './class';\n\nvar Observable = (function (Class) {\n function Observable() {\n Class.call(this);\n\n this._events = {};\n }\n\n if ( Class ) Observable.__proto__ = Class;\n Observable.prototype = Object.create( Class && Class.prototype );\n Observable.prototype.constructor = Observable;\n\n Observable.prototype.bind = function bind (eventName, handlers, one) {\n var arguments$1 = arguments;\n var this$1 = this;\n\n var eventNames = getArray(eventName);\n var handlersIsFunction = isFunction(handlers);\n var length = eventNames.length;\n\n if (handlers === undefined) {\n for (var field in eventName) {\n this$1.bind(field, eventName[field]);\n }\n return this;\n }\n\n var loop = function ( idx ) {\n var eventName$1 = eventNames[idx];\n\n var handler = handlersIsFunction ? handlers : handlers[eventName$1];\n\n if (handler) {\n if (one) {\n var original = handler;\n handler = function () { // eslint-disable-line no-loop-func\n this$1.unbind(eventName$1, handler);\n original.apply(this$1, arguments$1);\n };\n handler.original = original;\n }\n var events = this$1._events[eventName$1] = this$1._events[eventName$1] || [];\n events.push(handler);\n }\n };\n\n for (var idx = 0; idx < length; idx++) loop( idx );\n\n return this;\n };\n\n Observable.prototype.one = function one (eventNames, handlers) {\n return this.bind(eventNames, handlers, true);\n };\n\n Observable.prototype.first = function first (eventName, handlers) {\n var this$1 = this;\n\n var eventNames = getArray(eventName);\n var handlersIsFunction = isFunction(handlers);\n\n for (var idx = 0, length = eventNames.length; idx < length; idx++) {\n var eventName$1 = eventNames[idx];\n\n var handler = handlersIsFunction ? handlers : handlers[eventName$1];\n\n if (handler) {\n var events = this$1._events[eventName$1] = this$1._events[eventName$1] || [];\n events.unshift(handler);\n }\n }\n\n return this;\n };\n\n Observable.prototype.trigger = function trigger (eventName, e) {\n var this$1 = this;\n if ( e === void 0 ) e = {};\n\n var events = this._events[eventName];\n\n if (events) {\n var length = events.length;\n\n e.sender = this;\n e._defaultPrevented = false;\n e.preventDefault = preventDefault;\n e.isDefaultPrevented = isDefaultPrevented;\n\n events = events.slice();\n\n for (var idx = 0; idx < length; idx++) {\n events[idx].call(this$1, e);\n }\n\n return e._defaultPrevented === true;\n }\n\n return false;\n };\n\n Observable.prototype.unbind = function unbind (eventName, handler) {\n var events = this._events[eventName];\n\n if (eventName === undefined) {\n this._events = {};\n } else if (events) {\n if (handler) {\n for (var idx = events.length - 1; idx >= 0; idx--) {\n if (events[idx] === handler || events[idx].original === handler) {\n events.splice(idx, 1);\n }\n }\n } else {\n this._events[eventName] = [];\n }\n }\n\n return this;\n };\n\n return Observable;\n}(Class));\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction getArray(value) {\n return typeof value === \"string\" ? [ value ] : value;\n}\n\nfunction preventDefault() {\n this._defaultPrevented = true;\n}\n\nfunction isDefaultPrevented() {\n return this._defaultPrevented === true;\n}\n\nexport default Observable;","export default function elementStyles(element, styles) {\n var result = {};\n var style = window.getComputedStyle(element) || {};\n var stylesArray = Array.isArray(styles) ? styles : [ styles ];\n\n for (var idx = 0; idx < stylesArray.length; idx++) {\n var field = stylesArray[idx];\n result[field] = style[field];\n }\n\n return result;\n}","import elementStyles from './element-styles';\nimport defined from './defined';\n\nfunction getPixels(value) {\n if (isNaN(value)) {\n return value;\n }\n return value + \"px\";\n}\n\nexport default function elementSize(element, size) {\n if (size) {\n var width = size.width;\n var height = size.height;\n\n if (defined(width)) {\n element.style.width = getPixels(width);\n }\n\n if (defined(height)) {\n element.style.height = getPixels(height);\n }\n\n } else {\n var size$1 = elementStyles(element, [ 'width', 'height' ]);\n\n return {\n width: parseInt(size$1.width, 10),\n height: parseInt(size$1.height, 10)\n };\n }\n}","export default function eventElement(e) {\n if ( e === void 0 ) e = {};\n\n return e.touch ? e.touch.initialTouch : e.target;\n}","import { default as elementStyles } from './element-styles';\n\nexport default function elementPadding(element) {\n var ref = elementStyles(element, [ \"paddingLeft\", \"paddingTop\" ]);\n var paddingLeft = ref.paddingLeft;\n var paddingTop = ref.paddingTop;\n return {\n top: parseFloat(paddingTop),\n left: parseFloat(paddingLeft)\n };\n}\n","export default function elementOffset(element) {\n var box = element.getBoundingClientRect();\n\n var documentElement = document.documentElement;\n\n return {\n top: box.top + (window.pageYOffset || documentElement.scrollTop) - (documentElement.clientTop || 0),\n left: box.left + (window.pageXOffset || documentElement.scrollLeft) - (documentElement.clientLeft || 0)\n };\n}","import defined from './defined';\n\nexport default function eventCoordinates(e) {\n if (defined((e.x || {}).location)) {\n return {\n x: e.x.location,\n y: e.y.location\n };\n }\n\n return {\n x: e.pageX || e.clientX || 0,\n y: e.pageY || e.clientY || 0\n };\n}","import Matrix from '../geometry/matrix';\n\nvar matrixRegexp = /matrix\\((.*)\\)/;\n\nfunction parseMatrix(matrixString) {\n var match = matrixString.match(matrixRegexp);\n if (match === null || match.length !== 2) {\n return Matrix.unit();\n }\n\n var members = match[1].split(',').map(function (x) { return parseFloat(x); });\n return new (Function.prototype.bind.apply( Matrix, [ null ].concat( members) ));\n}\n\nfunction transformMatrix(element) {\n var transform = getComputedStyle(element).transform;\n\n if (transform === 'none') {\n return Matrix.unit();\n }\n\n return parseMatrix(transform);\n}\n\nexport default function elementScale(element) {\n if (!element) {\n return Matrix.unit();\n }\n\n var matrix = transformMatrix(element);\n var parent = element.parentElement;\n while (parent) {\n var parentMatrix = transformMatrix(parent);\n matrix = matrix.multiplyCopy(parentMatrix);\n parent = parent.parentElement;\n }\n\n matrix.b = matrix.c = matrix.e = matrix.f = 0;\n return matrix;\n}\n","import Group from '../shapes/group';\nimport Point from '../geometry/point';\nimport { Observable } from '../common';\nimport { eventElement, eventCoordinates, elementPadding, elementScale, elementSize, elementOffset } from '../util';\n\nvar events = [\n \"click\",\n \"mouseenter\",\n \"mouseleave\",\n \"mousemove\",\n \"resize\"\n];\n\nvar Surface = (function (Observable) {\n function Surface(element, options) {\n Observable.call(this);\n\n this.options = Object.assign({}, options);\n this.element = element;\n this.element._kendoExportVisual = this.exportVisual.bind(this);\n\n this._click = this._handler(\"click\");\n this._mouseenter = this._handler(\"mouseenter\");\n this._mouseleave = this._handler(\"mouseleave\");\n this._mousemove = this._handler(\"mousemove\");\n\n this._visual = new Group();\n\n elementSize(element, this.options);\n\n this.bind(events, this.options);\n\n this._enableTracking();\n }\n\n if ( Observable ) Surface.__proto__ = Observable;\n Surface.prototype = Object.create( Observable && Observable.prototype );\n Surface.prototype.constructor = Surface;\n\n Surface.prototype.draw = function draw (element) {\n this._visual.children.push(element);\n };\n\n Surface.prototype.clear = function clear () {\n this._visual.children = [];\n };\n\n Surface.prototype.destroy = function destroy () {\n this._visual = null;\n this.element._kendoExportVisual = null;\n this.unbind();\n };\n\n Surface.prototype.eventTarget = function eventTarget (e) {\n var this$1 = this;\n\n var domNode = eventElement(e);\n var node;\n\n while (!node && domNode) {\n node = domNode._kendoNode;\n if (domNode === this$1.element) {\n break;\n }\n\n domNode = domNode.parentElement;\n }\n\n if (node) {\n return node.srcElement;\n }\n };\n\n Surface.prototype.exportVisual = function exportVisual () {\n return this._visual;\n };\n\n Surface.prototype.getSize = function getSize () {\n return elementSize(this.element);\n };\n\n Surface.prototype.currentSize = function currentSize (size) {\n if (size) {\n this._size = size;\n } else {\n return this._size;\n }\n };\n\n Surface.prototype.setSize = function setSize (size) {\n elementSize(this.element, size);\n\n this.currentSize(size);\n this._resize();\n };\n\n Surface.prototype.resize = function resize (force) {\n var size = this.getSize();\n var currentSize = this.currentSize();\n\n if (force || (size.width > 0 || size.height > 0) && (!currentSize || size.width !== currentSize.width || size.height !== currentSize.height)) {\n this.currentSize(size);\n this._resize(size, force);\n this.trigger(\"resize\", size);\n }\n };\n\n Surface.prototype.size = function size (value) {\n if (!value) {\n return this.getSize();\n }\n\n this.setSize(value);\n };\n\n Surface.prototype.suspendTracking = function suspendTracking () {\n this._suspendedTracking = true;\n };\n\n Surface.prototype.resumeTracking = function resumeTracking () {\n this._suspendedTracking = false;\n };\n\n Surface.prototype._enableTracking = function _enableTracking () {};\n\n Surface.prototype._resize = function _resize () {};\n\n Surface.prototype._handler = function _handler (eventName) {\n var this$1 = this;\n\n return function (e) {\n var node = this$1.eventTarget(e);\n if (node && !this$1._suspendedTracking) {\n this$1.trigger(eventName, {\n element: node,\n originalEvent: e,\n type: eventName\n });\n }\n };\n };\n\n Surface.prototype._elementOffset = function _elementOffset () {\n var element = this.element;\n var padding = elementPadding(element);\n var ref = elementOffset(element);\n var left = ref.left;\n var top = ref.top;\n\n return {\n left: left + padding.left,\n top: top + padding.top\n };\n };\n\n Surface.prototype._surfacePoint = function _surfacePoint (e) {\n var offset = this._elementOffset();\n var coord = eventCoordinates(e);\n var x = coord.x - offset.left;\n var y = coord.y - offset.top;\n\n var inverseTransform = elementScale(this.element).invert();\n var point = new Point(\n x,\n y\n ).transform(inverseTransform);\n\n return point;\n };\n\n return Surface;\n}(Observable));\n\nexport default Surface;\n","export default function bindEvents(element, events) {\n for (var eventName in events) {\n var eventNames = eventName.trim().split(\" \");\n for (var idx = 0; idx < eventNames.length; idx++) {\n element.addEventListener(eventNames[idx], events[eventName], false);\n }\n }\n}","export default function unbindEvents(element, events) {\n if ( events === void 0 ) events = {};\n\n for (var name in events) {\n var eventNames = name.trim().split(\" \");\n for (var idx = 0; idx < eventNames.length; idx++) {\n element.removeEventListener(eventNames[idx], events[name], false);\n }\n }\n}","export default function createPromise() {\n var resolveFn, rejectFn;\n var promise = new Promise(function (resolve, reject) {\n resolveFn = function (data) {\n promise._state = \"resolved\";\n resolve(data);\n return promise;\n };\n rejectFn = function (data) {\n promise._state = \"rejected\";\n reject(data);\n\n return promise;\n };\n });\n promise._state = \"pending\";\n promise.resolve = resolveFn;\n promise.reject = rejectFn;\n promise.state = function () { return promise._state; };\n\n return promise;\n}\n","export default function promiseAll(promises) {\n return Promise.all(promises);\n}","import { Class } from '../common';\n\nvar BaseNode = (function (Class) {\n function BaseNode(srcElement) {\n Class.call(this);\n\n this.childNodes = [];\n this.parent = null;\n\n if (srcElement) {\n this.srcElement = srcElement;\n this.observe();\n }\n }\n\n if ( Class ) BaseNode.__proto__ = Class;\n BaseNode.prototype = Object.create( Class && Class.prototype );\n BaseNode.prototype.constructor = BaseNode;\n\n BaseNode.prototype.destroy = function destroy () {\n var this$1 = this;\n\n if (this.srcElement) {\n this.srcElement.removeObserver(this);\n }\n\n var children = this.childNodes;\n for (var i = 0; i < children.length; i++) {\n this$1.childNodes[i].destroy();\n }\n\n this.parent = null;\n };\n\n BaseNode.prototype.load = function load () {};\n\n BaseNode.prototype.observe = function observe () {\n if (this.srcElement) {\n this.srcElement.addObserver(this);\n }\n };\n\n BaseNode.prototype.append = function append (node) {\n this.childNodes.push(node);\n node.parent = this;\n };\n\n BaseNode.prototype.insertAt = function insertAt (node, pos) {\n this.childNodes.splice(pos, 0, node);\n node.parent = this;\n };\n\n BaseNode.prototype.remove = function remove (index, count) {\n var this$1 = this;\n\n var end = index + count;\n for (var i = index; i < end; i++) {\n this$1.childNodes[i].removeSelf();\n }\n this.childNodes.splice(index, count);\n };\n\n BaseNode.prototype.removeSelf = function removeSelf () {\n this.clear();\n this.destroy();\n };\n\n BaseNode.prototype.clear = function clear () {\n this.remove(0, this.childNodes.length);\n };\n\n BaseNode.prototype.invalidate = function invalidate () {\n if (this.parent) {\n this.parent.invalidate();\n }\n };\n\n BaseNode.prototype.geometryChange = function geometryChange () {\n this.invalidate();\n };\n\n BaseNode.prototype.optionsChange = function optionsChange () {\n this.invalidate();\n };\n\n BaseNode.prototype.childrenChange = function childrenChange (e) {\n if (e.action === \"add\") {\n this.load(e.items, e.index);\n } else if (e.action === \"remove\") {\n this.remove(e.index, e.items.length);\n }\n\n this.invalidate();\n };\n\n return BaseNode;\n}(Class));\n\nexport default BaseNode;","var NODE_MAP = {};\n\nexport default NODE_MAP;","\nexport default function renderPath(ctx, path) {\n var segments = path.segments;\n\n if (segments.length === 0) {\n return;\n }\n\n var segment = segments[0];\n var anchor = segment.anchor();\n ctx.moveTo(anchor.x, anchor.y);\n\n for (var i = 1; i < segments.length; i++) {\n segment = segments[i];\n anchor = segment.anchor();\n\n var prevSeg = segments[i - 1];\n var prevOut = prevSeg.controlOut();\n var controlIn = segment.controlIn();\n\n if (prevOut && controlIn) {\n ctx.bezierCurveTo(prevOut.x, prevOut.y,\n controlIn.x, controlIn.y,\n anchor.x, anchor.y);\n } else {\n ctx.lineTo(anchor.x, anchor.y);\n }\n }\n\n if (path.options.closed) {\n ctx.closePath();\n }\n}\n","import BaseNode from '../core/base-node';\nimport NODE_MAP from './node-map';\nimport renderPath from './utils/render-path';\nimport { defined } from '../util';\n\nvar Node = (function (BaseNode) {\n function Node(srcElement) {\n BaseNode.call(this, srcElement);\n if (srcElement) {\n this.initClip();\n }\n }\n\n if ( BaseNode ) Node.__proto__ = BaseNode;\n Node.prototype = Object.create( BaseNode && BaseNode.prototype );\n Node.prototype.constructor = Node;\n\n Node.prototype.initClip = function initClip () {\n var clip = this.srcElement.clip();\n if (clip) {\n this.clip = clip;\n clip.addObserver(this);\n }\n };\n\n Node.prototype.clear = function clear () {\n if (this.srcElement) {\n this.srcElement.removeObserver(this);\n }\n\n this.clearClip();\n\n BaseNode.prototype.clear.call(this);\n };\n\n Node.prototype.clearClip = function clearClip () {\n if (this.clip) {\n this.clip.removeObserver(this);\n delete this.clip;\n }\n };\n\n Node.prototype.setClip = function setClip (ctx) {\n if (this.clip) {\n ctx.beginPath();\n renderPath(ctx, this.clip);\n ctx.clip();\n }\n };\n\n Node.prototype.optionsChange = function optionsChange (e) {\n if (e.field === \"clip\") {\n this.clearClip();\n this.initClip();\n }\n\n BaseNode.prototype.optionsChange.call(this, e);\n };\n\n Node.prototype.setTransform = function setTransform (ctx) {\n if (this.srcElement) {\n var transform = this.srcElement.transform();\n if (transform) {\n ctx.transform.apply(ctx, transform.matrix().toArray(6));\n }\n }\n };\n\n Node.prototype.loadElements = function loadElements (elements, pos, cors) {\n var this$1 = this;\n\n for (var i = 0; i < elements.length; i++) {\n var srcElement = elements[i];\n var children = srcElement.children;\n\n var childNode = new NODE_MAP[srcElement.nodeType](srcElement, cors);\n\n if (children && children.length > 0) {\n childNode.load(children, pos, cors);\n }\n\n if (defined(pos)) {\n this$1.insertAt(childNode, pos);\n } else {\n this$1.append(childNode);\n }\n }\n };\n\n Node.prototype.load = function load (elements, pos, cors) {\n this.loadElements(elements, pos, cors);\n\n this.invalidate();\n };\n\n Node.prototype.setOpacity = function setOpacity (ctx) {\n if (this.srcElement) {\n var opacity = this.srcElement.opacity();\n if (defined(opacity)) {\n this.globalAlpha(ctx, opacity);\n }\n }\n };\n\n Node.prototype.globalAlpha = function globalAlpha (ctx, value) {\n var opactity = value;\n if (opactity && ctx.globalAlpha) {\n opactity *= ctx.globalAlpha;\n }\n ctx.globalAlpha = opactity;\n };\n\n Node.prototype.visible = function visible () {\n var src = this.srcElement;\n return !src || (src && src.options.visible !== false);\n };\n\n return Node;\n}(BaseNode));\n\nexport default Node;","import Node from './node';\nimport traversable from '../mixins/traversable';\n\n\nvar GroupNode = (function (superclass) {\n function GroupNode () {\n superclass.apply(this, arguments);\n }\n\n if ( superclass ) GroupNode.__proto__ = superclass;\n GroupNode.prototype = Object.create( superclass && superclass.prototype );\n GroupNode.prototype.constructor = GroupNode;\n\n GroupNode.prototype.renderTo = function renderTo (ctx) {\n if (!this.visible()) {\n return;\n }\n\n ctx.save();\n\n this.setTransform(ctx);\n this.setClip(ctx);\n this.setOpacity(ctx);\n\n var childNodes = this.childNodes;\n for (var i = 0; i < childNodes.length; i++) {\n var child = childNodes[i];\n if (child.visible()) {\n child.renderTo(ctx);\n }\n }\n\n ctx.restore();\n };\n\n return GroupNode;\n}(traversable(Node, \"childNodes\")));\n\nexport default GroupNode;\n","var now = Date.now || function() {\n return new Date().getTime();\n};\n\nexport default now;\n","var animationFrameProxy = function (callback) {\n var wnd = typeof window !== \"undefined\" ? window : {};\n var animationFrame = wnd.requestAnimationFrame ||\n wnd.webkitRequestAnimationFrame ||\n wnd.mozRequestAnimationFrame ||\n wnd.oRequestAnimationFrame ||\n wnd.msRequestAnimationFrame ||\n function(callback) { setTimeout(callback, 1000 / 60); };\n\n animationFrameProxy = function (callback) { return animationFrame.call(wnd, callback); };\n animationFrameProxy(callback);\n};\n\nexport default animationFrameProxy;\n","import GroupNode from './group-node';\nimport traversable from '../mixins/traversable';\nimport { animationFrame, throttle } from '../common';\n\n\nvar FRAME_DELAY = 1000 / 60;\n\nvar RootNode = (function (superclass) {\n function RootNode(canvas, size) {\n superclass.call(this);\n\n this.canvas = canvas;\n this.size = size;\n this.ctx = canvas.getContext(\"2d\");\n\n var invalidateHandler = this._invalidate.bind(this);\n this.invalidate = throttle(function () {\n animationFrame(invalidateHandler);\n }, FRAME_DELAY);\n }\n\n if ( superclass ) RootNode.__proto__ = superclass;\n RootNode.prototype = Object.create( superclass && superclass.prototype );\n RootNode.prototype.constructor = RootNode;\n\n RootNode.prototype.destroy = function destroy () {\n superclass.prototype.destroy.call(this);\n this.canvas = null;\n this.ctx = null;\n };\n\n RootNode.prototype.load = function load (elements, pos, cors) {\n this.loadElements(elements, pos, cors);\n this._invalidate();\n };\n\n RootNode.prototype._rescale = function _rescale (scale) {\n var ref = this;\n var canvas = ref.canvas;\n var size = ref.size;\n canvas.width = size.width * scale;\n canvas.height = size.height * scale;\n this.ctx.scale(scale, scale);\n };\n\n RootNode.prototype._devicePixelRatio = function _devicePixelRatio () {\n if (typeof window.devicePixelRatio === 'number') {\n return window.devicePixelRatio;\n }\n\n return 1;\n };\n\n RootNode.prototype._invalidate = function _invalidate (options) {\n if (!this.ctx) {\n return;\n }\n\n var fixedScale = options && options.fixedScale;\n var scale = fixedScale ? 1 : this._devicePixelRatio();\n this._rescale(scale);\n\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n this.renderTo(this.ctx);\n };\n\n return RootNode;\n}(traversable(GroupNode, \"childNodes\")));\n\nexport default RootNode;\n","import now from '../util/now';\n\nexport default function throttle(fn, delay) {\n var lastExecTime = 0;\n var timeout;\n\n if (!delay || delay <= 0) {\n return fn;\n }\n\n var throttled = function() {\n var elapsed = now() - lastExecTime;\n var args = arguments;\n\n var exec = function() {\n fn.apply(null, args);\n lastExecTime = now();\n };\n\n // first execution\n if (!lastExecTime) {\n return exec();\n }\n\n if (timeout) {\n clearTimeout(timeout);\n }\n\n if (elapsed > delay) {\n exec();\n } else {\n timeout = setTimeout(exec, delay - elapsed);\n }\n };\n\n throttled.cancel = function() {\n clearTimeout(timeout);\n };\n\n return throttled;\n}\n","import { Class } from '../common';\n\nvar QuadRoot = (function (Class) {\n function QuadRoot() {\n Class.call(this);\n\n this.shapes = [];\n }\n\n if ( Class ) QuadRoot.__proto__ = Class;\n QuadRoot.prototype = Object.create( Class && Class.prototype );\n QuadRoot.prototype.constructor = QuadRoot;\n\n QuadRoot.prototype._add = function _add (shape, bbox) {\n this.shapes.push({\n bbox: bbox,\n shape: shape\n });\n shape._quadNode = this;\n };\n\n QuadRoot.prototype.pointShapes = function pointShapes (point) {\n var shapes = this.shapes;\n var length = shapes.length;\n var result = [];\n for (var idx = 0; idx < length; idx++) {\n if (shapes[idx].bbox.containsPoint(point)) {\n result.push(shapes[idx].shape);\n }\n }\n return result;\n };\n\n QuadRoot.prototype.insert = function insert (shape, bbox) {\n this._add(shape, bbox);\n };\n\n QuadRoot.prototype.remove = function remove (shape) {\n var shapes = this.shapes;\n var length = shapes.length;\n\n for (var idx = 0; idx < length; idx++) {\n if (shapes[idx].shape === shape) {\n shapes.splice(idx, 1);\n break;\n }\n }\n };\n\n return QuadRoot;\n}(Class));\n\nexport default QuadRoot;","import QuadRoot from './quad-root';\nimport { Rect } from '../geometry';\nimport { append } from '../util';\n\nvar QuadNode = (function (QuadRoot) {\n function QuadNode(rect) {\n QuadRoot.call(this);\n this.children = [];\n this.rect = rect;\n }\n\n if ( QuadRoot ) QuadNode.__proto__ = QuadRoot;\n QuadNode.prototype = Object.create( QuadRoot && QuadRoot.prototype );\n QuadNode.prototype.constructor = QuadNode;\n\n QuadNode.prototype.inBounds = function inBounds (rect) {\n var nodeRect = this.rect;\n var nodeBottomRight = nodeRect.bottomRight();\n var bottomRight = rect.bottomRight();\n var inBounds = nodeRect.origin.x <= rect.origin.x && nodeRect.origin.y <= rect.origin.y && bottomRight.x <= nodeBottomRight.x &&\n bottomRight.y <= nodeBottomRight.y;\n return inBounds;\n };\n\n QuadNode.prototype.pointShapes = function pointShapes (point) {\n var children = this.children;\n var length = children.length;\n var result = QuadRoot.prototype.pointShapes.call(this, point);\n for (var idx = 0; idx < length; idx++) {\n append(result, children[idx].pointShapes(point));\n }\n return result;\n };\n\n QuadNode.prototype.insert = function insert (shape, bbox) {\n var children = this.children;\n var inserted = false;\n\n if (this.inBounds(bbox)) {\n if (this.shapes.length < 4) {\n this._add(shape, bbox);\n } else {\n if (!children.length) {\n this._initChildren();\n }\n\n for (var idx = 0; idx < children.length; idx++) {\n if (children[idx].insert(shape, bbox)) {\n inserted = true;\n break;\n }\n }\n\n if (!inserted) {\n this._add(shape, bbox);\n }\n }\n inserted = true;\n }\n\n return inserted;\n };\n\n QuadNode.prototype._initChildren = function _initChildren () {\n var ref = this;\n var rect = ref.rect;\n var children = ref.children;\n var center = rect.center();\n var halfWidth = rect.width() / 2;\n var halfHeight = rect.height() / 2;\n\n children.push(\n new QuadNode(new Rect([ rect.origin.x, rect.origin.y ], [ halfWidth, halfHeight ])),\n new QuadNode(new Rect([ center.x, rect.origin.y ], [ halfWidth, halfHeight ])),\n new QuadNode(new Rect([ rect.origin.x, center.y ], [ halfWidth, halfHeight ])),\n new QuadNode(new Rect([ center.x, center.y ], [ halfWidth, halfHeight ]))\n );\n };\n\n return QuadNode;\n}(QuadRoot));\n\nexport default QuadNode;","import QuadRoot from './quad-root';\nimport QuadNode from './quad-node';\nimport { Rect } from '../geometry';\nimport { Class } from '../common';\nimport { append } from '../util';\n\nvar ROOT_SIZE = 3000;\nvar LEVEL_STEP = 10000;\nvar MAX_LEVEL = 75;\n\nvar ShapesQuadTree = (function (Class) {\n function ShapesQuadTree() {\n Class.call(this);\n\n this.initRoots();\n }\n\n if ( Class ) ShapesQuadTree.__proto__ = Class;\n ShapesQuadTree.prototype = Object.create( Class && Class.prototype );\n ShapesQuadTree.prototype.constructor = ShapesQuadTree;\n\n ShapesQuadTree.prototype.initRoots = function initRoots () {\n this.rootMap = {};\n this.root = new QuadRoot();\n this.rootElements = [];\n };\n\n ShapesQuadTree.prototype.clear = function clear () {\n var this$1 = this;\n\n var rootElements = this.rootElements;\n for (var idx = 0; idx < rootElements.length; idx++) {\n this$1.remove(rootElements[idx]);\n }\n this.initRoots();\n };\n\n ShapesQuadTree.prototype.pointShape = function pointShape (point) {\n var sectorRoot = ( this.rootMap[ Math.floor( point.x / ROOT_SIZE ) ] || {} )[ Math.floor( point.y / ROOT_SIZE ) ];\n var result = this.root.pointShapes(point);\n\n if (sectorRoot) {\n result = result.concat(sectorRoot.pointShapes(point));\n }\n\n this.assignZindex(result);\n\n result.sort(zIndexComparer);\n for (var idx = 0; idx < result.length; idx++) {\n if (result[idx].containsPoint(point)) {\n return result[idx];\n }\n }\n };\n\n ShapesQuadTree.prototype.assignZindex = function assignZindex (elements) {\n var this$1 = this;\n\n for (var idx = 0; idx < elements.length; idx++) {\n var element = elements[idx];\n var zIndex = 0;\n var levelWeight = Math.pow(LEVEL_STEP, MAX_LEVEL);\n var parents = [];\n\n while (element) {\n parents.push(element);\n element = element.parent;\n }\n\n while (parents.length) {\n element = parents.pop();\n zIndex += ((element.parent ? element.parent.children : this$1.rootElements).indexOf(element) + 1) * levelWeight;\n levelWeight /= LEVEL_STEP;\n }\n\n elements[idx]._zIndex = zIndex;\n }\n };\n\n ShapesQuadTree.prototype.optionsChange = function optionsChange (e) {\n if (e.field === \"transform\" || e.field === \"stroke.width\") {\n this.bboxChange(e.element);\n }\n };\n\n ShapesQuadTree.prototype.geometryChange = function geometryChange (e) {\n this.bboxChange(e.element);\n };\n\n ShapesQuadTree.prototype.bboxChange = function bboxChange (element) {\n var this$1 = this;\n\n if (element.nodeType === \"Group\") {\n for (var idx = 0; idx < element.children.length; idx++) {\n this$1.bboxChange(element.children[idx]);\n }\n } else {\n if (element._quadNode) {\n element._quadNode.remove(element);\n }\n this._insertShape(element);\n }\n };\n\n ShapesQuadTree.prototype.add = function add (elements) {\n var elementsArray = Array.isArray(elements) ? elements.slice(0) : [ elements ];\n\n append(this.rootElements, elementsArray);\n this._insert(elementsArray);\n };\n\n ShapesQuadTree.prototype.childrenChange = function childrenChange (e) {\n var this$1 = this;\n\n if (e.action === \"remove\") {\n for (var idx = 0; idx < e.items.length; idx++) {\n this$1.remove(e.items[idx]);\n }\n } else {\n this._insert(Array.prototype.slice.call(e.items, 0));\n }\n };\n\n ShapesQuadTree.prototype._insert = function _insert (elements) {\n var this$1 = this;\n\n var element;\n\n while (elements.length > 0) {\n element = elements.pop();\n element.addObserver(this$1);\n if (element.nodeType === \"Group\") {\n append(elements, element.children);\n } else {\n this$1._insertShape(element);\n }\n }\n };\n\n ShapesQuadTree.prototype._insertShape = function _insertShape (shape) {\n var bbox = shape.bbox();\n if (bbox) {\n var sectors = this.getSectors(bbox);\n var x = sectors[0][0];\n var y = sectors[1][0];\n\n if (this.inRoot(sectors)) {\n this.root.insert(shape, bbox);\n } else {\n var rootMap = this.rootMap;\n if (!rootMap[x]) {\n rootMap[x] = {};\n }\n\n if (!rootMap[x][y]) {\n rootMap[x][y] = new QuadNode(\n new Rect([ x * ROOT_SIZE, y * ROOT_SIZE ], [ ROOT_SIZE, ROOT_SIZE ])\n );\n }\n\n rootMap[x][y].insert(shape, bbox);\n }\n }\n };\n\n ShapesQuadTree.prototype.remove = function remove (element) {\n var this$1 = this;\n\n element.removeObserver(this);\n\n if (element.nodeType === \"Group\") {\n var children = element.children;\n for (var idx = 0; idx < children.length; idx++) {\n this$1.remove(children[idx]);\n }\n } else if (element._quadNode) {\n element._quadNode.remove(element);\n delete element._quadNode;\n }\n };\n\n ShapesQuadTree.prototype.inRoot = function inRoot (sectors) {\n return sectors[0].length > 1 || sectors[1].length > 1;\n };\n\n ShapesQuadTree.prototype.getSectors = function getSectors (rect) {\n var bottomRight = rect.bottomRight();\n var bottomX = Math.floor(bottomRight.x / ROOT_SIZE);\n var bottomY = Math.floor(bottomRight.y / ROOT_SIZE);\n var sectors = [ [], [] ];\n for (var x = Math.floor(rect.origin.x / ROOT_SIZE); x <= bottomX; x++) {\n sectors[0].push(x);\n }\n for (var y = Math.floor(rect.origin.y / ROOT_SIZE); y <= bottomY; y++) {\n sectors[1].push(y);\n }\n return sectors;\n };\n\n return ShapesQuadTree;\n}(Class));\n\nfunction zIndexComparer(x1, x2) {\n if (x1._zIndex < x2._zIndex) {\n return 1;\n }\n if (x1._zIndex > x2._zIndex) {\n return -1;\n }\n\n return 0;\n}\n\nexport default ShapesQuadTree;","import { defined } from '../util';\n\nvar SurfaceCursor = function SurfaceCursor(surface) {\n surface.bind(\"mouseenter\", this._mouseenter.bind(this));\n surface.bind(\"mouseleave\", this._mouseleave.bind(this));\n\n this.element = surface.element;\n};\n\nSurfaceCursor.prototype.clear = function clear () {\n this._resetCursor();\n};\n\nSurfaceCursor.prototype.destroy = function destroy () {\n this._resetCursor();\n delete this.element;\n};\n\nSurfaceCursor.prototype._mouseenter = function _mouseenter (e) {\n var cursor = this._shapeCursor(e);\n\n if (!cursor) {\n this._resetCursor();\n } else {\n if (!this._current) {\n this._defaultCursor = this._getCursor();\n }\n\n this._setCursor(cursor);\n }\n};\n\nSurfaceCursor.prototype._mouseleave = function _mouseleave () {\n this._resetCursor();\n};\n\nSurfaceCursor.prototype._shapeCursor = function _shapeCursor (e) {\n var shape = e.element;\n\n while (shape && !defined(shape.options.cursor)) {\n shape = shape.parent;\n }\n\n if (shape) {\n return shape.options.cursor;\n }\n};\n\nSurfaceCursor.prototype._getCursor = function _getCursor () {\n if (this.element) {\n return this.element.style.cursor;\n }\n};\n\nSurfaceCursor.prototype._setCursor = function _setCursor (cursor) {\n if (this.element) {\n this.element.style.cursor = cursor;\n this._current = cursor;\n }\n};\n\nSurfaceCursor.prototype._resetCursor = function _resetCursor () {\n if (this._current) {\n this._setCursor(this._defaultCursor || \"\");\n delete this._current;\n }\n};\n\nexport default SurfaceCursor;\n\n","import ElementsArray from '../shapes/elements-array';\n\nvar StopsArray = (function (ElementsArray) {\n function StopsArray () {\n ElementsArray.apply(this, arguments);\n }\n\n if ( ElementsArray ) StopsArray.__proto__ = ElementsArray;\n StopsArray.prototype = Object.create( ElementsArray && ElementsArray.prototype );\n StopsArray.prototype.constructor = StopsArray;\n\n StopsArray.prototype._change = function _change () {\n this.optionsChange({\n field: \"stops\"\n });\n };\n\n return StopsArray;\n}(ElementsArray));\n\nexport default StopsArray;","import { defined } from '../util';\n\nfunction optionsAccessor(name) {\n return function(value) {\n if (defined(value)) {\n this.options.set(name, value);\n return this;\n }\n\n return this.options.get(name);\n };\n}\n\nfunction defineOptionsAccessors(fn, names) {\n for (var i = 0; i < names.length; i++) {\n fn[names[i]] = optionsAccessor(names[i]);\n }\n}\n\nvar withOptions = function (TBase, names) {\n var result = (function (TBase) {\n function result () {\n TBase.apply(this, arguments);\n }if ( TBase ) result.__proto__ = TBase;\n result.prototype = Object.create( TBase && TBase.prototype );\n result.prototype.constructor = result;\n\n \n\n return result;\n }(TBase));\n defineOptionsAccessors(result.prototype, names);\n\n return result;\n};\n\nexport default withOptions;\n","import OptionsStore from '../core/options-store';\nimport withOptions from '../mixins/with-options';\nimport HasObservers from '../core/has-observers';\nimport { defined } from '../util';\n\n\nvar options = [ \"offset\", \"color\", \"opacity\" ];\n\nvar GradientStop = (function (superclass) {\n function GradientStop(offset, color, opacity) {\n superclass.call(this);\n\n this.options = new OptionsStore({\n offset: offset,\n color: color,\n opacity: defined(opacity) ? opacity : 1\n });\n\n this.options.addObserver(this);\n }\n\n if ( superclass ) GradientStop.__proto__ = superclass;\n GradientStop.prototype = Object.create( superclass && superclass.prototype );\n GradientStop.prototype.constructor = GradientStop;\n\n GradientStop.create = function create (arg) {\n if (defined(arg)) {\n var stop;\n if (arg instanceof GradientStop) {\n stop = arg;\n } else if (arg.length > 1) {\n stop = new GradientStop(arg[0], arg[1], arg[2]);\n } else {\n stop = new GradientStop(arg.offset, arg.color, arg.opacity);\n }\n\n return stop;\n }\n };\n\n return GradientStop;\n}(withOptions(HasObservers, options)));\n\nexport default GradientStop;\n","import StopsArray from './stops-array';\nimport GradientStop from './gradient-stop';\nimport HasObservers from '../core/has-observers';\nimport { defined, definitionId } from '../util';\n\nvar Gradient = (function (HasObservers) {\n function Gradient(options) {\n if ( options === void 0 ) options = {};\n\n HasObservers.call(this);\n\n this.stops = new StopsArray(this._createStops(options.stops));\n this.stops.addObserver(this);\n this._userSpace = options.userSpace;\n this.id = definitionId();\n }\n\n if ( HasObservers ) Gradient.__proto__ = HasObservers;\n Gradient.prototype = Object.create( HasObservers && HasObservers.prototype );\n Gradient.prototype.constructor = Gradient;\n\n var prototypeAccessors = { nodeType: { configurable: true } };\n\n prototypeAccessors.nodeType.get = function () {\n return \"Gradient\";\n };\n\n Gradient.prototype.userSpace = function userSpace (value) {\n if (defined(value)) {\n this._userSpace = value;\n this.optionsChange();\n return this;\n }\n\n return this._userSpace;\n };\n\n Gradient.prototype._createStops = function _createStops (stops) {\n if ( stops === void 0 ) stops = [];\n\n var result = [];\n for (var idx = 0; idx < stops.length; idx++) {\n result.push(GradientStop.create(stops[idx]));\n }\n\n return result;\n };\n\n Gradient.prototype.addStop = function addStop (offset, color, opacity) {\n this.stops.push(new GradientStop(offset, color, opacity));\n };\n\n Gradient.prototype.removeStop = function removeStop (stop) {\n var index = this.stops.indexOf(stop);\n if (index >= 0) {\n this.stops.splice(index, 1);\n }\n };\n\n Gradient.prototype.optionsChange = function optionsChange (e) {\n this.trigger(\"optionsChange\", {\n field: \"gradient\" + (e ? \".\" + e.field : \"\"),\n value: this\n });\n };\n\n Gradient.prototype.geometryChange = function geometryChange () {\n this.optionsChange();\n };\n\n Object.defineProperties( Gradient.prototype, prototypeAccessors );\n\n return Gradient;\n}(HasObservers));\n\nexport default Gradient;\n","import withPoints from '../mixins/with-points';\nimport Point from '../geometry/point';\nimport Gradient from './gradient';\n\n\nvar points = [ \"start\", \"end\" ];\n\nvar LinearGradient = (function (superclass) {\n function LinearGradient(options) {\n if ( options === void 0 ) options = {};\n\n superclass.call(this, options);\n\n this.start(options.start || new Point());\n this.end(options.end || new Point(1, 0));\n }\n\n if ( superclass ) LinearGradient.__proto__ = superclass;\n LinearGradient.prototype = Object.create( superclass && superclass.prototype );\n LinearGradient.prototype.constructor = LinearGradient;\n\n return LinearGradient;\n}(withPoints(Gradient, points)));\n\nexport default LinearGradient;\n","import withPoints from '../mixins/with-points';\nimport Point from '../geometry/point';\nimport Gradient from './gradient';\nimport { defined } from '../util';\n\n\nvar RadialGradient = (function (superclass) {\n function RadialGradient(options) {\n if ( options === void 0 ) options = {};\n\n superclass.call(this, options);\n\n this.center(options.center || new Point());\n this._radius = defined(options.radius) ? options.radius : 1;\n this._fallbackFill = options.fallbackFill;\n }\n\n if ( superclass ) RadialGradient.__proto__ = superclass;\n RadialGradient.prototype = Object.create( superclass && superclass.prototype );\n RadialGradient.prototype.constructor = RadialGradient;\n\n RadialGradient.prototype.radius = function radius (value) {\n if (defined(value)) {\n this._radius = value;\n this.geometryChange();\n return this;\n }\n\n return this._radius;\n };\n\n RadialGradient.prototype.fallbackFill = function fallbackFill (value) {\n if (defined(value)) {\n this._fallbackFill = value;\n this.optionsChange();\n return this;\n }\n\n return this._fallbackFill;\n };\n\n return RadialGradient;\n}(withPoints(Gradient, [ \"center\" ])));\n\nexport default RadialGradient;\n","var DASH_ARRAYS = {\n dot: [ 1.5, 3.5 ],\n dash: [ 4, 3.5 ],\n longdash: [ 8, 3.5 ],\n dashdot: [ 3.5, 3.5, 1.5, 3.5 ],\n longdashdot: [ 8, 3.5, 1.5, 3.5 ],\n longdashdotdot: [ 8, 3.5, 1.5, 3.5, 1.5, 3.5 ]\n};\n\nvar SOLID = \"solid\";\nvar BUTT = \"butt\";\n\nexport { DASH_ARRAYS, SOLID, BUTT };","import Node from './node';\nimport { parseColor } from '../common';\nimport { isTransparent, valueOrDefault } from '../util';\nimport LinearGradient from '../gradients/linear-gradient';\nimport RadialGradient from '../gradients/radial-gradient';\nimport { DASH_ARRAYS, SOLID, BUTT } from '../core/constants';\nimport renderPath from './utils/render-path';\n\nfunction addGradientStops(gradient, stops) {\n for (var idx = 0; idx < stops.length; idx++) {\n var stop = stops[idx];\n var color = parseColor(stop.color());\n\n color.a *= stop.opacity();\n\n gradient.addColorStop(stop.offset(), color.toCssRgba());\n }\n}\n\nvar PathNode = (function (Node) {\n function PathNode () {\n Node.apply(this, arguments);\n }\n\n if ( Node ) PathNode.__proto__ = Node;\n PathNode.prototype = Object.create( Node && Node.prototype );\n PathNode.prototype.constructor = PathNode;\n\n PathNode.prototype.renderTo = function renderTo (ctx) {\n ctx.save();\n\n this.setTransform(ctx);\n this.setClip(ctx);\n this.setOpacity(ctx);\n\n ctx.beginPath();\n\n this.renderPoints(ctx, this.srcElement);\n\n this.setLineDash(ctx);\n this.setLineCap(ctx);\n this.setLineJoin(ctx);\n\n this.setFill(ctx);\n this.setStroke(ctx);\n\n ctx.restore();\n };\n\n PathNode.prototype.setFill = function setFill (ctx) {\n var fill = this.srcElement.options.fill;\n var hasFill = false;\n\n if (fill) {\n if (fill.nodeType === \"Gradient\") {\n this.setGradientFill(ctx, fill);\n hasFill = true;\n } else if (!isTransparent(fill.color)) {\n ctx.fillStyle = fill.color;\n\n ctx.save();\n this.globalAlpha(ctx, fill.opacity);\n ctx.fill();\n ctx.restore();\n\n hasFill = true;\n }\n }\n\n return hasFill;\n };\n\n PathNode.prototype.setGradientFill = function setGradientFill (ctx, fill) {\n var bbox = this.srcElement.rawBBox();\n var gradient;\n\n if (fill instanceof LinearGradient) {\n var start = fill.start();\n var end = fill.end();\n gradient = ctx.createLinearGradient(start.x, start.y, end.x, end.y);\n } else if (fill instanceof RadialGradient) {\n var center = fill.center();\n gradient = ctx.createRadialGradient(center.x, center.y, 0, center.x, center.y, fill.radius());\n }\n\n addGradientStops(gradient, fill.stops);\n\n ctx.save();\n\n if (!fill.userSpace()) {\n ctx.transform(bbox.width(), 0, 0, bbox.height(), bbox.origin.x, bbox.origin.y);\n }\n ctx.fillStyle = gradient;\n ctx.fill();\n\n ctx.restore();\n };\n\n PathNode.prototype.setStroke = function setStroke (ctx) {\n var stroke = this.srcElement.options.stroke;\n if (stroke && !isTransparent(stroke.color) && stroke.width > 0) {\n ctx.strokeStyle = stroke.color;\n ctx.lineWidth = valueOrDefault(stroke.width, 1);\n\n ctx.save();\n this.globalAlpha(ctx, stroke.opacity);\n ctx.stroke();\n ctx.restore();\n\n return true;\n }\n };\n\n PathNode.prototype.dashType = function dashType () {\n var stroke = this.srcElement.options.stroke;\n if (stroke && stroke.dashType) {\n return stroke.dashType.toLowerCase();\n }\n };\n\n PathNode.prototype.setLineDash = function setLineDash (ctx) {\n var dashType = this.dashType();\n if (dashType && dashType !== SOLID) {\n var dashArray = DASH_ARRAYS[dashType];\n if (ctx.setLineDash) {\n ctx.setLineDash(dashArray);\n } else {\n ctx.mozDash = dashArray;\n ctx.webkitLineDash = dashArray;\n }\n }\n };\n\n PathNode.prototype.setLineCap = function setLineCap (ctx) {\n var dashType = this.dashType();\n var stroke = this.srcElement.options.stroke;\n if (dashType && dashType !== SOLID) {\n ctx.lineCap = BUTT;\n } else if (stroke && stroke.lineCap) {\n ctx.lineCap = stroke.lineCap;\n }\n };\n\n PathNode.prototype.setLineJoin = function setLineJoin (ctx) {\n var stroke = this.srcElement.options.stroke;\n if (stroke && stroke.lineJoin) {\n ctx.lineJoin = stroke.lineJoin;\n }\n };\n\n PathNode.prototype.renderPoints = function renderPoints (ctx, path) {\n renderPath(ctx, path);\n };\n\n return PathNode;\n}(Node));\n\nexport default PathNode;\n","import PathNode from './path-node';\nimport renderPath from './utils/render-path';\n\nvar ArcNode = (function (PathNode) {\n function ArcNode () {\n PathNode.apply(this, arguments);\n }\n\n if ( PathNode ) ArcNode.__proto__ = PathNode;\n ArcNode.prototype = Object.create( PathNode && PathNode.prototype );\n ArcNode.prototype.constructor = ArcNode;\n\n ArcNode.prototype.renderPoints = function renderPoints (ctx) {\n var path = this.srcElement.toPath();\n renderPath(ctx, path);\n };\n\n return ArcNode;\n}(PathNode));\n\nexport default ArcNode;\n","import PathNode from './path-node';\n\nvar CircleNode = (function (PathNode) {\n function CircleNode () {\n PathNode.apply(this, arguments);\n }\n\n if ( PathNode ) CircleNode.__proto__ = PathNode;\n CircleNode.prototype = Object.create( PathNode && PathNode.prototype );\n CircleNode.prototype.constructor = CircleNode;\n\n CircleNode.prototype.renderPoints = function renderPoints (ctx) {\n var ref = this.srcElement.geometry();\n var center = ref.center;\n var radius = ref.radius;\n\n ctx.arc(center.x, center.y, radius, 0, Math.PI * 2);\n };\n\n return CircleNode;\n}(PathNode));\n\nexport default CircleNode;\n","import PathNode from './path-node';\nimport { createPromise } from '../util';\n\nvar ImageNode = (function (PathNode) {\n function ImageNode(srcElement, cors) {\n PathNode.call(this, srcElement);\n\n this.onLoad = this.onLoad.bind(this);\n this.onError = this.onError.bind(this);\n\n this.loading = createPromise();\n\n var img = this.img = new Image();\n var src = srcElement.src();\n\n if (cors && !(/^data:/i.test(src))) {\n img.crossOrigin = cors;\n }\n\n if (src) {\n img.src = src;\n }\n\n if (img.complete) {\n this.onLoad();\n } else {\n img.onload = this.onLoad;\n img.onerror = this.onError;\n }\n }\n\n if ( PathNode ) ImageNode.__proto__ = PathNode;\n ImageNode.prototype = Object.create( PathNode && PathNode.prototype );\n ImageNode.prototype.constructor = ImageNode;\n\n ImageNode.prototype.renderTo = function renderTo (ctx) {\n if (this.loading.state() === \"resolved\") {\n ctx.save();\n\n this.setTransform(ctx);\n this.setClip(ctx);\n\n this.drawImage(ctx);\n\n ctx.restore();\n }\n };\n\n ImageNode.prototype.optionsChange = function optionsChange (e) {\n if (e.field === \"src\") {\n this.loading = createPromise();\n this.img.src = this.srcElement.src();\n } else {\n PathNode.prototype.optionsChange.call(this, e);\n }\n };\n\n ImageNode.prototype.onLoad = function onLoad () {\n this.loading.resolve();\n this.invalidate();\n };\n\n ImageNode.prototype.onError = function onError () {\n this.loading.reject(new Error(\n \"Unable to load image '\" + this.img.src +\n \"'. Check for connectivity and verify CORS headers.\"\n ));\n };\n\n ImageNode.prototype.drawImage = function drawImage (ctx) {\n var rect = this.srcElement.rect();\n var topLeft = rect.topLeft();\n\n ctx.drawImage(\n this.img, topLeft.x, topLeft.y, rect.width(), rect.height()\n );\n };\n\n return ImageNode;\n}(PathNode));\n\nexport default ImageNode;\n","import PathNode from './path-node';\nimport renderPath from './utils/render-path';\n\nvar MultiPathNode = (function (PathNode) {\n function MultiPathNode () {\n PathNode.apply(this, arguments);\n }\n\n if ( PathNode ) MultiPathNode.__proto__ = PathNode;\n MultiPathNode.prototype = Object.create( PathNode && PathNode.prototype );\n MultiPathNode.prototype.constructor = MultiPathNode;\n\n MultiPathNode.prototype.renderPoints = function renderPoints (ctx) {\n var paths = this.srcElement.paths;\n for (var i = 0; i < paths.length; i++) {\n renderPath(ctx, paths[i]);\n }\n };\n\n return MultiPathNode;\n}(PathNode));\n\nexport default MultiPathNode;\n","import { Path } from '../shapes/path';\nimport PathNode from './path-node';\n\nvar RectNode = (function (PathNode) {\n function RectNode () {\n PathNode.apply(this, arguments);\n }\n\n if ( PathNode ) RectNode.__proto__ = PathNode;\n RectNode.prototype = Object.create( PathNode && PathNode.prototype );\n RectNode.prototype.constructor = RectNode;\n\n RectNode.prototype.renderPoints = function renderPoints (ctx) {\n var geometry = this.srcElement.geometry();\n var ref = geometry.cornerRadius;\n var rx = ref[0];\n var ry = ref[1];\n\n if (rx === 0 && ry === 0) {\n var origin = geometry.origin;\n var size = geometry.size;\n ctx.rect(origin.x, origin.y, size.width, size.height);\n } else {\n PathNode.prototype.renderPoints.call(this, ctx, Path.fromRect(geometry));\n }\n };\n\n return RectNode;\n}(PathNode));\n\nexport default RectNode;\n","import PathNode from './path-node';\n\nvar TextNode = (function (PathNode) {\n function TextNode () {\n PathNode.apply(this, arguments);\n }\n\n if ( PathNode ) TextNode.__proto__ = PathNode;\n TextNode.prototype = Object.create( PathNode && PathNode.prototype );\n TextNode.prototype.constructor = TextNode;\n\n TextNode.prototype.renderTo = function renderTo (ctx) {\n var text = this.srcElement;\n var pos = text.position();\n var size = text.measure();\n\n ctx.save();\n\n this.setTransform(ctx);\n this.setClip(ctx);\n this.setOpacity(ctx);\n\n ctx.beginPath();\n\n ctx.font = text.options.font;\n ctx.textAlign = 'left';\n\n if (this.setFill(ctx)) {\n ctx.fillText(text.content(), pos.x, pos.y + size.baseline);\n }\n\n if (this.setStroke(ctx)) {\n this.setLineDash(ctx);\n ctx.strokeText(text.content(), pos.x, pos.y + size.baseline);\n }\n\n ctx.restore();\n };\n\n return TextNode;\n}(PathNode));\n\n\nexport default TextNode;\n","import BaseSurface from '../core/surface';\nimport { createPromise, promiseAll, bindEvents, elementSize, unbindEvents } from '../util';\nimport RootNode from './root-node';\nimport ShapesQuadTree from '../search/shapes-quad-tree';\nimport SurfaceCursor from './surface-cursor';\n\nimport ArcNode from './arc-node';\nimport CircleNode from './circle-node';\nimport GroupNode from './group-node';\nimport ImageNode from './image-node';\nimport MultiPathNode from './multi-path-node';\nimport PathNode from './path-node';\nimport RectNode from './rect-node';\nimport TextNode from './text-node';\nimport NODE_MAP from './node-map';\n\nNODE_MAP.Arc = ArcNode;\nNODE_MAP.Circle = CircleNode;\nNODE_MAP.Group = GroupNode;\nNODE_MAP.Image = ImageNode;\nNODE_MAP.MultiPath = MultiPathNode;\nNODE_MAP.Path = PathNode;\nNODE_MAP.Rect = RectNode;\nNODE_MAP.Text = TextNode;\n\n\nvar Surface = (function (BaseSurface) {\n function Surface(element, options) {\n BaseSurface.call(this, element, options);\n\n this.element.innerHTML = this._template(this);\n\n var canvas = this.element.firstElementChild;\n canvas.style.width = '100%';\n canvas.style.height = '100%';\n\n var size = elementSize(element);\n\n canvas.width = size.width;\n canvas.height = size.height;\n\n this._rootElement = canvas;\n\n this._root = new RootNode(canvas, size);\n\n this._mouseTrackHandler = this._trackMouse.bind(this);\n\n bindEvents(this.element, {\n click: this._mouseTrackHandler,\n mousemove: this._mouseTrackHandler\n });\n }\n\n if ( BaseSurface ) Surface.__proto__ = BaseSurface;\n Surface.prototype = Object.create( BaseSurface && BaseSurface.prototype );\n Surface.prototype.constructor = Surface;\n\n var prototypeAccessors = { type: { configurable: true } };\n\n prototypeAccessors.type.get = function () {\n return \"canvas\";\n };\n\n Surface.prototype.destroy = function destroy () {\n BaseSurface.prototype.destroy.call(this);\n\n if (this._root) {\n this._root.destroy();\n this._root = null;\n }\n\n if (this._searchTree) {\n this._searchTree.clear();\n delete this._searchTree;\n }\n\n if (this._cursor) {\n this._cursor.destroy();\n delete this._cursor;\n }\n\n unbindEvents(this.element, {\n click: this._mouseTrackHandler,\n mousemove: this._mouseTrackHandler\n });\n };\n\n Surface.prototype.draw = function draw (element) {\n BaseSurface.prototype.draw.call(this, element);\n this._root.load([ element ], undefined, this.options.cors);\n\n if (this._searchTree) {\n this._searchTree.add([ element ]);\n }\n };\n\n Surface.prototype.clear = function clear () {\n BaseSurface.prototype.clear.call(this);\n this._root.clear();\n\n if (this._searchTree) {\n this._searchTree.clear();\n }\n\n if (this._cursor) {\n this._cursor.clear();\n }\n };\n\n Surface.prototype.eventTarget = function eventTarget (e) {\n if (this._searchTree) {\n var point = this._surfacePoint(e);\n var shape = this._searchTree.pointShape(point);\n return shape;\n }\n };\n\n Surface.prototype.image = function image () {\n var ref = this;\n var root = ref._root;\n var rootElement = ref._rootElement;\n var loadingStates = [];\n\n root.traverse(function (childNode) {\n if (childNode.loading) {\n loadingStates.push(childNode.loading);\n }\n });\n\n var promise = createPromise();\n var resolveDataURL = function () {\n root._invalidate({ fixedScale: true });\n\n try {\n var data = rootElement.toDataURL();\n promise.resolve(data);\n } catch (e) {\n promise.reject(e);\n }\n };\n\n promiseAll(loadingStates).then(resolveDataURL, resolveDataURL);\n\n return promise;\n };\n\n Surface.prototype.suspendTracking = function suspendTracking () {\n BaseSurface.prototype.suspendTracking.call(this);\n if (this._searchTree) {\n this._searchTree.clear();\n delete this._searchTree;\n }\n };\n\n Surface.prototype.resumeTracking = function resumeTracking () {\n BaseSurface.prototype.resumeTracking.call(this);\n if (!this._searchTree) {\n this._searchTree = new ShapesQuadTree();\n\n var childNodes = this._root.childNodes;\n var rootElements = [];\n for (var idx = 0; idx < childNodes.length; idx++) {\n rootElements.push(childNodes[idx].srcElement);\n }\n this._searchTree.add(rootElements);\n }\n };\n\n Surface.prototype._resize = function _resize () {\n this._rootElement.width = this._size.width;\n this._rootElement.height = this._size.height;\n\n this._root.size = this._size;\n this._root.invalidate();\n };\n\n Surface.prototype._template = function _template () {\n return \"<canvas></canvas>\";\n };\n\n Surface.prototype._enableTracking = function _enableTracking () {\n this._searchTree = new ShapesQuadTree();\n this._cursor = new SurfaceCursor(this);\n\n BaseSurface.prototype._enableTracking.call(this);\n };\n\n Surface.prototype._trackMouse = function _trackMouse (e) {\n if (this._suspendedTracking) {\n return;\n }\n\n var shape = this.eventTarget(e);\n\n if (e.type !== \"click\") {\n var currentShape = this._currentShape;\n if (currentShape && currentShape !== shape) {\n this.trigger(\"mouseleave\", {\n element: currentShape,\n originalEvent: e,\n type: \"mouseleave\"\n });\n }\n\n if (shape && currentShape !== shape) {\n this.trigger(\"mouseenter\", {\n element: shape,\n originalEvent: e,\n type: \"mouseenter\"\n });\n }\n\n this.trigger(\"mousemove\", {\n element: shape,\n originalEvent: e,\n type: \"mousemove\"\n });\n\n this._currentShape = shape;\n } else if (shape) {\n this.trigger(\"click\", {\n element: shape,\n originalEvent: e,\n type: \"click\"\n });\n }\n };\n\n Object.defineProperties( Surface.prototype, prototypeAccessors );\n\n return Surface;\n}(BaseSurface));\n\nexport default Surface;\n","import { defined } from '../../util';\n\nexport default function renderAttr(name, value) {\n return (defined(value) && value !== null) ? (\" \" + name + \"=\\\"\" + value + \"\\\" \") : \"\";\n}","import renderAttr from './render-attribute';\n\nexport default function renderAllAttr(attrs) {\n var output = \"\";\n for (var i = 0; i < attrs.length; i++) {\n output += renderAttr(attrs[i][0], attrs[i][1]);\n }\n\n return output;\n}","import { defined } from '../../util';\n\nexport default function renderStyle(attrs) {\n var output = \"\";\n for (var i = 0; i < attrs.length; i++) {\n var value = attrs[i][1];\n if (defined(value)) {\n output += attrs[i][0] + \":\" + value + \";\";\n }\n }\n\n if (output !== \"\") {\n return output;\n }\n}","var NODE_MAP = {};\n\nexport default NODE_MAP;","var SVG_NS = \"http://www.w3.org/2000/svg\";\nvar NONE = \"none\";\nvar POINT_DIGITS = 3;\n\nexport { SVG_NS, NONE, POINT_DIGITS };","import { SVG_NS } from '../constants';\n\nvar applyStyle = function (styleString, element) { return styleString.split(';').filter(function (s) { return s !== ''; }).forEach(function (s) {\n var parts = s.split(':');\n element.style[parts[0].trim()] = parts[1].trim();\n }); };\n\nvar styleAttr = 'data-style';\nvar replaceStyleAttr = function (html) { return html.replace(/\\sstyle=/g, ' ' + styleAttr + '='); };\nvar restoreStyleAttr = function (container) {\n Array.from(container.querySelectorAll('[' + styleAttr +']')).forEach(function (element) {\n var styleString = element.getAttribute(styleAttr);\n element.removeAttribute(styleAttr);\n applyStyle(styleString, element);\n });\n};\n\nvar renderSVG = function(container, svg) {\n container.innerHTML = replaceStyleAttr(svg);\n restoreStyleAttr(container);\n};\n\nif (typeof document !== \"undefined\") {\n var testFragment = \"<svg xmlns='\" + SVG_NS + \"'></svg>\";\n var testContainer = document.createElement(\"div\");\n var hasParser = typeof DOMParser !== \"undefined\";\n\n testContainer.innerHTML = testFragment;\n\n if (hasParser && testContainer.firstChild.namespaceURI !== SVG_NS) {\n renderSVG = function(container, svg) {\n var parser = new DOMParser();\n var chartDoc = parser.parseFromString(replaceStyleAttr(svg), \"text/xml\");\n restoreStyleAttr(chartDoc);\n var importedDoc = document.adoptNode(chartDoc.documentElement);\n\n container.innerHTML = \"\";\n container.appendChild(importedDoc);\n };\n }\n}\n\nexport default renderSVG;\n","import BaseNode from '../core/base-node';\nimport renderAllAttr from './utils/render-all-attributes';\nimport renderAttr from './utils/render-attribute';\nimport renderStyle from './utils/render-style';\nimport NODE_MAP from './node-map';\nimport renderSVG from './utils/render-svg';\nimport { SVG_NS, NONE } from './constants';\nimport { support } from '../common';\nimport { defined } from '../util';\n\nvar TRANSFORM = \"transform\";\nvar DefinitionMap = {\n clip: \"clip-path\",\n fill: \"fill\"\n};\n\nfunction isDefinition(type, value) {\n return type === \"clip\" || (type === \"fill\" && (!value || value.nodeType === \"Gradient\"));\n}\n\nfunction baseUrl() {\n var base = document.getElementsByTagName(\"base\")[0];\n var href = document.location.href;\n var url = \"\";\n\n if (base && !(support.browser || {}).msie) {\n var hashIndex = href.indexOf(\"#\");\n if (hashIndex !== -1) {\n href = href.substring(0, hashIndex);\n }\n\n url = href;\n }\n\n return url;\n}\n\nvar Node = (function (BaseNode) {\n function Node(srcElement, options) {\n BaseNode.call(this, srcElement);\n this.definitions = {};\n\n this.options = options;\n }\n\n if ( BaseNode ) Node.__proto__ = BaseNode;\n Node.prototype = Object.create( BaseNode && BaseNode.prototype );\n Node.prototype.constructor = Node;\n\n Node.prototype.destroy = function destroy () {\n if (this.element) {\n this.element._kendoNode = null;\n this.element = null;\n }\n\n this.clearDefinitions();\n BaseNode.prototype.destroy.call(this);\n };\n\n Node.prototype.load = function load (elements, pos) {\n var this$1 = this;\n\n for (var i = 0; i < elements.length; i++) {\n var srcElement = elements[i];\n var children = srcElement.children;\n\n var childNode = new NODE_MAP[srcElement.nodeType](srcElement, this$1.options);\n\n if (defined(pos)) {\n this$1.insertAt(childNode, pos);\n } else {\n this$1.append(childNode);\n }\n\n childNode.createDefinitions();\n\n if (children && children.length > 0) {\n childNode.load(children);\n }\n\n var element = this$1.element;\n if (element) {\n childNode.attachTo(element, pos);\n }\n }\n };\n\n Node.prototype.root = function root () {\n var root = this;\n\n while (root.parent) {\n root = root.parent;\n }\n\n return root;\n };\n\n Node.prototype.attachTo = function attachTo (domElement, pos) {\n var container = document.createElement(\"div\");\n renderSVG(container,\n \"<svg xmlns='\" + SVG_NS + \"' version='1.1'>\" +\n this.render() +\n \"</svg>\"\n );\n\n var element = container.firstChild.firstChild;\n if (element) {\n if (defined(pos)) {\n domElement.insertBefore(element, domElement.childNodes[pos] || null);\n } else {\n domElement.appendChild(element);\n }\n this.setElement(element);\n }\n };\n\n Node.prototype.setElement = function setElement (element) {\n if (this.element) {\n this.element._kendoNode = null;\n }\n\n this.element = element;\n this.element._kendoNode = this;\n\n var nodes = this.childNodes;\n for (var i = 0; i < nodes.length; i++) {\n var childElement = element.childNodes[i];\n nodes[i].setElement(childElement);\n }\n };\n\n Node.prototype.clear = function clear () {\n this.clearDefinitions();\n\n if (this.element) {\n this.element.innerHTML = \"\";\n }\n\n var children = this.childNodes;\n for (var i = 0; i < children.length; i++) {\n children[i].destroy();\n }\n\n this.childNodes = [];\n };\n\n Node.prototype.removeSelf = function removeSelf () {\n if (this.element) {\n var parentNode = this.element.parentNode;\n if (parentNode) {\n parentNode.removeChild(this.element);\n }\n this.element = null;\n }\n\n BaseNode.prototype.removeSelf.call(this);\n };\n\n Node.prototype.template = function template () {\n return this.renderChildren();\n };\n\n Node.prototype.render = function render () {\n return this.template();\n };\n\n Node.prototype.renderChildren = function renderChildren () {\n var nodes = this.childNodes;\n var output = \"\";\n\n for (var i = 0; i < nodes.length; i++) {\n output += nodes[i].render();\n }\n\n return output;\n };\n\n Node.prototype.optionsChange = function optionsChange (e) {\n var field = e.field;\n var value = e.value;\n\n if (field === \"visible\") {\n this.css(\"display\", value ? \"\" : NONE);\n } else if (DefinitionMap[field] && isDefinition(field, value)) {\n this.updateDefinition(field, value);\n } else if (field === \"opacity\") {\n this.attr(\"opacity\", value);\n } else if (field === \"cursor\") {\n this.css(\"cursor\", value);\n } else if (field === \"id\") {\n if (value) {\n this.attr(\"id\", value);\n } else {\n this.removeAttr(\"id\");\n }\n }\n\n BaseNode.prototype.optionsChange.call(this, e);\n };\n\n Node.prototype.attr = function attr (name, value) {\n if (this.element) {\n this.element.setAttribute(name, value);\n }\n };\n\n Node.prototype.allAttr = function allAttr (attrs) {\n var this$1 = this;\n\n for (var i = 0; i < attrs.length; i++) {\n this$1.attr(attrs[i][0], attrs[i][1]);\n }\n };\n\n Node.prototype.css = function css (name, value) {\n if (this.element) {\n this.element.style[name] = value;\n }\n };\n\n Node.prototype.allCss = function allCss (styles) {\n var this$1 = this;\n\n for (var i = 0; i < styles.length; i++) {\n this$1.css(styles[i][0], styles[i][1]);\n }\n };\n\n Node.prototype.removeAttr = function removeAttr (name) {\n if (this.element) {\n this.element.removeAttribute(name);\n }\n };\n\n Node.prototype.mapTransform = function mapTransform (transform) {\n var attrs = [];\n if (transform) {\n attrs.push([\n TRANSFORM,\n \"matrix(\" + transform.matrix().toString(6) + \")\"\n ]);\n }\n\n return attrs;\n };\n\n Node.prototype.renderTransform = function renderTransform () {\n return renderAllAttr(\n this.mapTransform(this.srcElement.transform())\n );\n };\n\n Node.prototype.transformChange = function transformChange (value) {\n if (value) {\n this.allAttr(this.mapTransform(value));\n } else {\n this.removeAttr(TRANSFORM);\n }\n };\n\n Node.prototype.mapStyle = function mapStyle () {\n var options = this.srcElement.options;\n var style = [ [ \"cursor\", options.cursor ] ];\n\n if (options.visible === false) {\n style.push([ \"display\", NONE ]);\n }\n\n return style;\n };\n\n Node.prototype.renderStyle = function renderStyle$1 () {\n return renderAttr(\"style\", renderStyle(this.mapStyle(true)));\n };\n\n Node.prototype.renderOpacity = function renderOpacity () {\n return renderAttr(\"opacity\", this.srcElement.options.opacity);\n };\n\n Node.prototype.renderId = function renderId () {\n return renderAttr(\"id\", this.srcElement.options.id);\n };\n\n Node.prototype.createDefinitions = function createDefinitions () {\n var srcElement = this.srcElement;\n var definitions = this.definitions;\n if (srcElement) {\n var options = srcElement.options;\n var hasDefinitions;\n\n for (var field in DefinitionMap) {\n var definition = options.get(field);\n if (definition && isDefinition(field, definition)) {\n definitions[field] = definition;\n hasDefinitions = true;\n }\n }\n if (hasDefinitions) {\n this.definitionChange({\n action: \"add\",\n definitions: definitions\n });\n }\n }\n };\n\n Node.prototype.definitionChange = function definitionChange (e) {\n if (this.parent) {\n this.parent.definitionChange(e);\n }\n };\n\n Node.prototype.updateDefinition = function updateDefinition (type, value) {\n var definitions = this.definitions;\n var current = definitions[type];\n var attr = DefinitionMap[type];\n var definition = {};\n if (current) {\n definition[type] = current;\n this.definitionChange({\n action: \"remove\",\n definitions: definition\n });\n delete definitions[type];\n }\n\n if (!value) {\n if (current) {\n this.removeAttr(attr);\n }\n } else {\n definition[type] = value;\n this.definitionChange({\n action: \"add\",\n definitions: definition\n });\n definitions[type] = value;\n this.attr(attr, this.refUrl(value.id));\n }\n };\n\n Node.prototype.clearDefinitions = function clearDefinitions () {\n var definitions = this.definitions;\n\n this.definitionChange({\n action: \"remove\",\n definitions: definitions\n });\n this.definitions = {};\n };\n\n Node.prototype.renderDefinitions = function renderDefinitions () {\n return renderAllAttr(this.mapDefinitions());\n };\n\n Node.prototype.mapDefinitions = function mapDefinitions () {\n var this$1 = this;\n\n var definitions = this.definitions;\n var attrs = [];\n\n for (var field in definitions) {\n attrs.push([ DefinitionMap[field], this$1.refUrl(definitions[field].id) ]);\n }\n\n return attrs;\n };\n\n Node.prototype.refUrl = function refUrl (id) {\n var skipBaseHref = (this.options || {}).skipBaseHref;\n var baseHref = this.baseUrl().replace(/'/g, \"\\\\'\");\n var base = skipBaseHref ? '' : baseHref;\n return (\"url(\" + base + \"#\" + id + \")\");\n };\n\n Node.prototype.baseUrl = function baseUrl$1 () {\n return baseUrl();\n };\n\n return Node;\n}(BaseNode));\n\nexport default Node;\n","import Node from './node';\nimport renderAttr from './utils/render-attribute';\n\nvar GradientStopNode = (function (Node) {\n function GradientStopNode () {\n Node.apply(this, arguments);\n }\n\n if ( Node ) GradientStopNode.__proto__ = Node;\n GradientStopNode.prototype = Object.create( Node && Node.prototype );\n GradientStopNode.prototype.constructor = GradientStopNode;\n\n GradientStopNode.prototype.template = function template () {\n return (\"<stop \" + (this.renderOffset()) + \" \" + (this.renderStyle()) + \" />\");\n };\n\n GradientStopNode.prototype.renderOffset = function renderOffset () {\n return renderAttr(\"offset\", this.srcElement.offset());\n };\n\n GradientStopNode.prototype.mapStyle = function mapStyle () {\n var srcElement = this.srcElement;\n return [\n [ \"stop-color\", srcElement.color() ],\n [ \"stop-opacity\", srcElement.opacity() ]\n ];\n };\n\n GradientStopNode.prototype.optionsChange = function optionsChange (e) {\n if (e.field === \"offset\") {\n this.attr(e.field, e.value);\n } else if (e.field === \"color\" || e.field === \"opacity\") {\n this.css(\"stop-\" + e.field, e.value);\n }\n };\n\n return GradientStopNode;\n}(Node));\n\nexport default GradientStopNode;","import GradientStopNode from './gradient-stop-node';\nimport BaseNode from '../core/base-node';\nimport Node from './node';\nimport renderAllAttr from './utils/render-all-attributes';\n\nvar GradientNode = (function (Node) {\n function GradientNode(srcElement) {\n Node.call(this, srcElement);\n\n this.id = srcElement.id;\n\n this.loadStops();\n }\n\n if ( Node ) GradientNode.__proto__ = Node;\n GradientNode.prototype = Object.create( Node && Node.prototype );\n GradientNode.prototype.constructor = GradientNode;\n\n GradientNode.prototype.loadStops = function loadStops () {\n var this$1 = this;\n\n var stops = this.srcElement.stops;\n var element = this.element;\n\n for (var idx = 0; idx < stops.length; idx++) {\n var stopNode = new GradientStopNode(stops[idx]);\n this$1.append(stopNode);\n if (element) {\n stopNode.attachTo(element);\n }\n }\n };\n\n GradientNode.prototype.optionsChange = function optionsChange (e) {\n if (e.field === \"gradient.stops\") {\n BaseNode.prototype.clear.call(this);\n this.loadStops();\n } else if (e.field === \"gradient\") {\n this.allAttr(this.mapCoordinates());\n }\n };\n\n GradientNode.prototype.renderCoordinates = function renderCoordinates () {\n return renderAllAttr(this.mapCoordinates());\n };\n\n GradientNode.prototype.mapSpace = function mapSpace () {\n return [ \"gradientUnits\", this.srcElement.userSpace() ? \"userSpaceOnUse\" : \"objectBoundingBox\" ];\n };\n\n return GradientNode;\n}(Node));\n\nexport default GradientNode;","import GradientNode from './gradient-node';\n\nvar LinearGradientNode = (function (GradientNode) {\n function LinearGradientNode () {\n GradientNode.apply(this, arguments);\n }\n\n if ( GradientNode ) LinearGradientNode.__proto__ = GradientNode;\n LinearGradientNode.prototype = Object.create( GradientNode && GradientNode.prototype );\n LinearGradientNode.prototype.constructor = LinearGradientNode;\n\n LinearGradientNode.prototype.template = function template () {\n return (\"<linearGradient id='\" + (this.id) + \"' \" + (this.renderCoordinates()) + \">\" + (this.renderChildren()) + \"</linearGradient>\");\n };\n\n LinearGradientNode.prototype.mapCoordinates = function mapCoordinates () {\n var srcElement = this.srcElement;\n var start = srcElement.start();\n var end = srcElement.end();\n var attrs = [\n [ \"x1\", start.x ],\n [ \"y1\", start.y ],\n [ \"x2\", end.x ],\n [ \"y2\", end.y ],\n this.mapSpace()\n ];\n\n return attrs;\n };\n\n return LinearGradientNode;\n}(GradientNode));\n\nexport default LinearGradientNode;","import GradientNode from './gradient-node';\n\nvar RadialGradientNode = (function (GradientNode) {\n function RadialGradientNode () {\n GradientNode.apply(this, arguments);\n }\n\n if ( GradientNode ) RadialGradientNode.__proto__ = GradientNode;\n RadialGradientNode.prototype = Object.create( GradientNode && GradientNode.prototype );\n RadialGradientNode.prototype.constructor = RadialGradientNode;\n\n RadialGradientNode.prototype.template = function template () {\n return (\"<radialGradient id='\" + (this.id) + \"' \" + (this.renderCoordinates()) + \">\" + (this.renderChildren()) + \"</radialGradient>\");\n };\n\n RadialGradientNode.prototype.mapCoordinates = function mapCoordinates () {\n var srcElement = this.srcElement;\n var center = srcElement.center();\n var radius = srcElement.radius();\n var attrs = [\n [ \"cx\", center.x ],\n [ \"cy\", center.y ],\n [ \"r\", radius ],\n this.mapSpace()\n ];\n return attrs;\n };\n\n return RadialGradientNode;\n}(GradientNode));\n\nexport default RadialGradientNode;","import Node from './node';\n\nvar ClipNode = (function (Node) {\n function ClipNode(srcElement) {\n Node.call(this);\n\n this.srcElement = srcElement;\n this.id = srcElement.id;\n\n this.load([ srcElement ]);\n }\n\n if ( Node ) ClipNode.__proto__ = Node;\n ClipNode.prototype = Object.create( Node && Node.prototype );\n ClipNode.prototype.constructor = ClipNode;\n\n ClipNode.prototype.template = function template () {\n return (\"<clipPath id='\" + (this.id) + \"'>\" + (this.renderChildren()) + \"</clipPath>\");\n };\n\n return ClipNode;\n}(Node));\n\nexport default ClipNode;","import LinearGradient from '../gradients/linear-gradient';\nimport RadialGradient from '../gradients/radial-gradient';\nimport LinearGradientNode from './linear-gradient-node';\nimport RadialGradientNode from './radial-gradient-node';\nimport Node from './node';\nimport ClipNode from './clip-node';\n\nvar DefinitionNode = (function (Node) {\n function DefinitionNode() {\n Node.call(this);\n this.definitionMap = {};\n }\n\n if ( Node ) DefinitionNode.__proto__ = Node;\n DefinitionNode.prototype = Object.create( Node && Node.prototype );\n DefinitionNode.prototype.constructor = DefinitionNode;\n\n DefinitionNode.prototype.attachTo = function attachTo (domElement) {\n this.element = domElement;\n };\n\n DefinitionNode.prototype.template = function template () {\n return (\"<defs>\" + (this.renderChildren()) + \"</defs>\");\n };\n\n DefinitionNode.prototype.definitionChange = function definitionChange (e) {\n var definitions = e.definitions;\n var action = e.action;\n\n if (action === \"add\") {\n this.addDefinitions(definitions);\n } else if (action === \"remove\") {\n this.removeDefinitions(definitions);\n }\n };\n\n DefinitionNode.prototype.createDefinition = function createDefinition (type, item) {\n var nodeType;\n if (type === \"clip\") {\n nodeType = ClipNode;\n } else if (type === \"fill\") {\n if (item instanceof LinearGradient) {\n nodeType = LinearGradientNode;\n } else if (item instanceof RadialGradient) {\n nodeType = RadialGradientNode;\n }\n }\n return new nodeType(item);\n };\n\n DefinitionNode.prototype.addDefinitions = function addDefinitions (definitions) {\n var this$1 = this;\n\n for (var field in definitions) {\n this$1.addDefinition(field, definitions[field]);\n }\n };\n\n DefinitionNode.prototype.addDefinition = function addDefinition (type, srcElement) {\n var ref = this;\n var element = ref.element;\n var definitionMap = ref.definitionMap;\n var id = srcElement.id;\n var mapItem = definitionMap[id];\n if (!mapItem) {\n var node = this.createDefinition(type, srcElement);\n definitionMap[id] = {\n element: node,\n count: 1\n };\n this.append(node);\n if (element) {\n node.attachTo(this.element);\n }\n } else {\n mapItem.count++;\n }\n };\n\n DefinitionNode.prototype.removeDefinitions = function removeDefinitions (definitions) {\n var this$1 = this;\n\n for (var field in definitions) {\n this$1.removeDefinition(definitions[field]);\n }\n };\n\n DefinitionNode.prototype.removeDefinition = function removeDefinition (srcElement) {\n var definitionMap = this.definitionMap;\n var id = srcElement.id;\n var mapItem = definitionMap[id];\n\n if (mapItem) {\n mapItem.count--;\n if (mapItem.count === 0) {\n this.remove(this.childNodes.indexOf(mapItem.element), 1);\n delete definitionMap[id];\n }\n }\n };\n\n return DefinitionNode;\n}(Node));\n\nexport default DefinitionNode;","import BaseNode from '../core/base-node';\nimport Node from './node';\nimport DefinitionNode from './definition-node';\n\nvar RootNode = (function (Node) {\n function RootNode(options) {\n Node.call(this);\n this.options = options;\n this.defs = new DefinitionNode();\n }\n\n if ( Node ) RootNode.__proto__ = Node;\n RootNode.prototype = Object.create( Node && Node.prototype );\n RootNode.prototype.constructor = RootNode;\n\n RootNode.prototype.attachTo = function attachTo (domElement) {\n this.element = domElement;\n this.defs.attachTo(domElement.firstElementChild);\n };\n\n RootNode.prototype.clear = function clear () {\n BaseNode.prototype.clear.call(this);\n };\n\n RootNode.prototype.template = function template () {\n return this.defs.render() + this.renderChildren();\n };\n\n RootNode.prototype.definitionChange = function definitionChange (e) {\n this.defs.definitionChange(e);\n };\n\n return RootNode;\n}(Node));\n\nexport default RootNode;","import Node from './node';\nimport { defined, isTransparent } from '../util';\nimport { DASH_ARRAYS, SOLID, BUTT } from '../core/constants';\nimport { NONE, POINT_DIGITS } from './constants';\nimport renderAllAttr from './utils/render-all-attributes';\nimport renderAttr from './utils/render-attribute';\n\nvar ATTRIBUTE_MAP = {\n \"fill.opacity\": \"fill-opacity\",\n \"stroke.color\": \"stroke\",\n \"stroke.width\": \"stroke-width\",\n \"stroke.opacity\": \"stroke-opacity\"\n};\n\nvar PathNode = (function (Node) {\n function PathNode () {\n Node.apply(this, arguments);\n }\n\n if ( Node ) PathNode.__proto__ = Node;\n PathNode.prototype = Object.create( Node && Node.prototype );\n PathNode.prototype.constructor = PathNode;\n\n PathNode.prototype.geometryChange = function geometryChange () {\n this.attr(\"d\", this.renderData());\n this.invalidate();\n };\n\n PathNode.prototype.optionsChange = function optionsChange (e) {\n switch (e.field) {\n case \"fill\":\n if (e.value) {\n this.allAttr(this.mapFill(e.value));\n } else {\n this.removeAttr(\"fill\");\n }\n break;\n\n case \"fill.color\":\n this.allAttr(this.mapFill({ color: e.value }));\n break;\n\n case \"stroke\":\n if (e.value) {\n this.allAttr(this.mapStroke(e.value));\n } else {\n this.removeAttr(\"stroke\");\n }\n break;\n\n case \"transform\":\n this.transformChange(e.value);\n break;\n\n default:\n var name = ATTRIBUTE_MAP[e.field];\n if (name) {\n this.attr(name, e.value);\n }\n break;\n }\n\n Node.prototype.optionsChange.call(this, e);\n };\n\n PathNode.prototype.content = function content () {\n if (this.element) {\n this.element.textContent = this.srcElement.content();\n }\n };\n\n PathNode.prototype.renderData = function renderData () {\n return this.srcElement.toString(POINT_DIGITS) || undefined;\n };\n\n PathNode.prototype.mapStroke = function mapStroke (stroke) {\n var attrs = [];\n\n if (stroke && !isTransparent(stroke.color)) {\n attrs.push([ \"stroke\", stroke.color ]);\n attrs.push([ \"stroke-width\", stroke.width ]);\n attrs.push([ \"stroke-linecap\", this.renderLinecap(stroke) ]);\n attrs.push([ \"stroke-linejoin\", stroke.lineJoin ]);\n\n if (defined(stroke.opacity)) {\n attrs.push([ \"stroke-opacity\", stroke.opacity ]);\n }\n\n if (defined(stroke.dashType)) {\n attrs.push([ \"stroke-dasharray\", this.renderDashType(stroke) ]);\n }\n } else {\n attrs.push([ \"stroke\", NONE ]);\n }\n\n return attrs;\n };\n\n PathNode.prototype.renderStroke = function renderStroke () {\n return renderAllAttr(\n this.mapStroke(this.srcElement.options.stroke)\n );\n };\n\n PathNode.prototype.renderDashType = function renderDashType (stroke) {\n var dashType = stroke.dashType;\n var width = stroke.width; if ( width === void 0 ) width = 1;\n\n if (dashType && dashType !== SOLID) {\n var dashArray = DASH_ARRAYS[dashType.toLowerCase()];\n var result = [];\n\n for (var i = 0; i < dashArray.length; i++) {\n result.push(dashArray[i] * width);\n }\n\n return result.join(\" \");\n }\n };\n\n PathNode.prototype.renderLinecap = function renderLinecap (stroke) {\n var dashType = stroke.dashType;\n var lineCap = stroke.lineCap;\n\n return (dashType && dashType !== \"solid\") ? BUTT : lineCap;\n };\n\n PathNode.prototype.mapFill = function mapFill (fill) {\n var attrs = [];\n if (!(fill && fill.nodeType === \"Gradient\")) {\n if (fill && !isTransparent(fill.color)) {\n attrs.push([ \"fill\", fill.color ]);\n\n if (defined(fill.opacity)) {\n attrs.push([ \"fill-opacity\", fill.opacity ]);\n }\n } else {\n attrs.push([ \"fill\", NONE ]);\n }\n }\n\n return attrs;\n };\n\n PathNode.prototype.renderFill = function renderFill () {\n return renderAllAttr(\n this.mapFill(this.srcElement.options.fill)\n );\n };\n\n PathNode.prototype.template = function template () {\n return \"<path \" + (this.renderId()) + \" \" + (this.renderStyle()) + \" \" + (this.renderOpacity()) + \" \" + (renderAttr('d', this.renderData())) +\n \"\" + (this.renderStroke()) + (this.renderFill()) + (this.renderDefinitions()) + (this.renderTransform()) + \"></path>\";\n };\n\n return PathNode;\n}(Node));\n\nexport default PathNode;\n","import { POINT_DIGITS } from './constants';\nimport PathNode from './path-node';\n\nvar ArcNode = (function (PathNode) {\n function ArcNode () {\n PathNode.apply(this, arguments);\n }\n\n if ( PathNode ) ArcNode.__proto__ = PathNode;\n ArcNode.prototype = Object.create( PathNode && PathNode.prototype );\n ArcNode.prototype.constructor = ArcNode;\n\n ArcNode.prototype.renderData = function renderData () {\n return this.srcElement.toPath().toString(POINT_DIGITS);\n };\n\n return ArcNode;\n}(PathNode));\n\nexport default ArcNode;\n","import PathNode from './path-node';\n\nvar CircleNode = (function (PathNode) {\n function CircleNode () {\n PathNode.apply(this, arguments);\n }\n\n if ( PathNode ) CircleNode.__proto__ = PathNode;\n CircleNode.prototype = Object.create( PathNode && PathNode.prototype );\n CircleNode.prototype.constructor = CircleNode;\n\n CircleNode.prototype.geometryChange = function geometryChange () {\n var center = this.center();\n this.attr(\"cx\", center.x);\n this.attr(\"cy\", center.y);\n this.attr(\"r\", this.radius());\n this.invalidate();\n };\n\n CircleNode.prototype.center = function center () {\n return this.srcElement.geometry().center;\n };\n\n CircleNode.prototype.radius = function radius () {\n return this.srcElement.geometry().radius;\n };\n\n CircleNode.prototype.template = function template () {\n return \"<circle \" + (this.renderId()) + \" \" + (this.renderStyle()) + \" \" + (this.renderOpacity()) +\n \"cx='\" + (this.center().x) + \"' cy='\" + (this.center().y) + \"' r='\" + (this.radius()) + \"'\" +\n (this.renderStroke()) + \" \" + (this.renderFill()) + \" \" + (this.renderDefinitions()) +\n (this.renderTransform()) + \" ></circle>\";\n };\n\n return CircleNode;\n}(PathNode));\n\nexport default CircleNode;\n","import Node from './node';\n\nvar GroupNode = (function (Node) {\n function GroupNode () {\n Node.apply(this, arguments);\n }\n\n if ( Node ) GroupNode.__proto__ = Node;\n GroupNode.prototype = Object.create( Node && Node.prototype );\n GroupNode.prototype.constructor = GroupNode;\n\n GroupNode.prototype.template = function template () {\n return (\"<g\" + (this.renderId() + this.renderTransform() + this.renderStyle() + this.renderOpacity() + this.renderDefinitions()) + \">\" + (this.renderChildren()) + \"</g>\");\n };\n\n GroupNode.prototype.optionsChange = function optionsChange (e) {\n if (e.field === \"transform\") {\n this.transformChange(e.value);\n }\n\n Node.prototype.optionsChange.call(this, e);\n };\n\n return GroupNode;\n}(Node));\n\nexport default GroupNode;\n","var ampRegExp = /&/g;\nvar ltRegExp = /</g;\nvar quoteRegExp = /\"/g;\nvar aposRegExp = /'/g;\nvar gtRegExp = />/g;\n\nexport default function htmlEncode(value) {\n return String(value).replace(ampRegExp, \"&\").replace(ltRegExp, \"<\").replace(gtRegExp, \">\").replace(quoteRegExp, \""\").replace(aposRegExp, \"'\");\n}","import PathNode from './path-node';\nimport renderAllAttr from './utils/render-all-attributes';\nimport { htmlEncode } from '../common';\n\nvar ImageNode = (function (PathNode) {\n function ImageNode () {\n PathNode.apply(this, arguments);\n }\n\n if ( PathNode ) ImageNode.__proto__ = PathNode;\n ImageNode.prototype = Object.create( PathNode && PathNode.prototype );\n ImageNode.prototype.constructor = ImageNode;\n\n ImageNode.prototype.geometryChange = function geometryChange () {\n this.allAttr(this.mapPosition());\n this.invalidate();\n };\n\n ImageNode.prototype.optionsChange = function optionsChange (e) {\n if (e.field === \"src\") {\n this.allAttr(this.mapSource());\n }\n\n PathNode.prototype.optionsChange.call(this, e);\n };\n\n ImageNode.prototype.mapPosition = function mapPosition () {\n var rect = this.srcElement.rect();\n var tl = rect.topLeft();\n\n return [\n [ \"x\", tl.x ],\n [ \"y\", tl.y ],\n [ \"width\", rect.width() + \"px\" ],\n [ \"height\", rect.height() + \"px\" ]\n ];\n };\n\n ImageNode.prototype.renderPosition = function renderPosition () {\n return renderAllAttr(this.mapPosition());\n };\n\n ImageNode.prototype.mapSource = function mapSource (encode) {\n var src = this.srcElement.src();\n\n if (encode) {\n src = htmlEncode(src);\n }\n\n return [ [ \"xlink:href\", src ] ];\n };\n\n ImageNode.prototype.renderSource = function renderSource () {\n return renderAllAttr(this.mapSource(true));\n };\n\n ImageNode.prototype.template = function template () {\n return \"<image preserveAspectRatio='none' \" + (this.renderId()) + \" \" + (this.renderStyle()) + \" \" + (this.renderTransform()) + \" \" + (this.renderOpacity()) +\n (this.renderPosition()) + \" \" + (this.renderSource()) + \" \" + (this.renderDefinitions()) + \">\" +\n \"</image>\";\n };\n\n return ImageNode;\n}(PathNode));\n\nexport default ImageNode;\n","import { POINT_DIGITS } from './constants';\nimport PathNode from './path-node';\n\nvar MultiPathNode = (function (PathNode) {\n function MultiPathNode () {\n PathNode.apply(this, arguments);\n }\n\n if ( PathNode ) MultiPathNode.__proto__ = PathNode;\n MultiPathNode.prototype = Object.create( PathNode && PathNode.prototype );\n MultiPathNode.prototype.constructor = MultiPathNode;\n\n MultiPathNode.prototype.renderData = function renderData () {\n return this.srcElement.toString(POINT_DIGITS) || 'undefined';\n };\n\n return MultiPathNode;\n}(PathNode));\n\nexport default MultiPathNode;\n","import PathNode from './path-node';\n\nvar RectNode = (function (PathNode) {\n function RectNode () {\n PathNode.apply(this, arguments);\n }\n\n if ( PathNode ) RectNode.__proto__ = PathNode;\n RectNode.prototype = Object.create( PathNode && PathNode.prototype );\n RectNode.prototype.constructor = RectNode;\n\n RectNode.prototype.geometryChange = function geometryChange () {\n var geometry = this.srcElement.geometry();\n this.attr(\"x\", geometry.origin.x);\n this.attr(\"y\", geometry.origin.y);\n this.attr(\"width\", geometry.size.width);\n this.attr(\"height\", geometry.size.height);\n this.attr(\"rx\", geometry.cornerRadius[0]);\n this.attr(\"ry\", geometry.cornerRadius[1]);\n this.invalidate();\n };\n\n RectNode.prototype.size = function size () {\n return this.srcElement.geometry().size;\n };\n\n RectNode.prototype.origin = function origin () {\n return this.srcElement.geometry().origin;\n };\n\n RectNode.prototype.rx = function rx () {\n return this.srcElement.geometry().cornerRadius[0];\n };\n\n RectNode.prototype.ry = function ry () {\n return this.srcElement.geometry().cornerRadius[1];\n };\n\n RectNode.prototype.template = function template () {\n return \"<rect \" + (this.renderId()) + \" \" + (this.renderStyle()) + \" \" + (this.renderOpacity()) + \" x='\" + (this.origin().x) + \"' y='\" + (this.origin().y) + \"' \" +\n \"rx='\" + (this.rx()) + \"' ry='\" + (this.ry()) + \"' \" +\n \"width='\" + (this.size().width) + \"' height='\" + (this.size().height) + \"' \" + (this.renderStroke()) + \" \" +\n (this.renderFill()) + \" \" + (this.renderDefinitions()) + \" \" + (this.renderTransform()) + \" />\";\n };\n\n return RectNode;\n}(PathNode));\n\nexport default RectNode;\n","var REPLACE_REGEX = /\\r?\\n|\\r|\\t/g;\nvar SPACE = ' ';\n\nfunction normalizeText(text) {\n return String(text).replace(REPLACE_REGEX, SPACE);\n}\n\nfunction objectKey(object) {\n var parts = [];\n for (var key in object) {\n parts.push(key + object[key]);\n }\n\n return parts.sort().join(\"\");\n}\n\n// Computes FNV-1 hash\n// See http://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function\nfunction hashKey(str) {\n // 32-bit FNV-1 offset basis\n // See http://isthe.com/chongo/tech/comp/fnv/#FNV-param\n var hash = 0x811C9DC5;\n\n for (var i = 0; i < str.length; ++i) {\n hash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);\n hash ^= str.charCodeAt(i);\n }\n\n return hash >>> 0;\n}\n\nexport { objectKey, hashKey, normalizeText };","import PathNode from './path-node';\nimport renderStyle from './utils/render-style';\nimport renderAttr from './utils/render-attribute';\nimport { htmlEncode, support } from '../common';\nimport { normalizeText } from '../text-metrics';\n\nvar ENTITY_REGEX = /&(?:[a-zA-Z]+|#\\d+);/g;\n\nfunction decodeEntities(text) {\n if (!text || typeof text !== \"string\" || !ENTITY_REGEX.test(text)) {\n return text;\n }\n\n var element = decodeEntities._element;\n ENTITY_REGEX.lastIndex = 0;\n\n return text.replace(ENTITY_REGEX, function (match) {\n element.innerHTML = match;\n\n return element.textContent || element.innerText;\n });\n}\n\nif (typeof document !== \"undefined\") {\n decodeEntities._element = document.createElement(\"span\");\n}\n\nvar TextNode = (function (PathNode) {\n function TextNode () {\n PathNode.apply(this, arguments);\n }\n\n if ( PathNode ) TextNode.__proto__ = PathNode;\n TextNode.prototype = Object.create( PathNode && PathNode.prototype );\n TextNode.prototype.constructor = TextNode;\n\n TextNode.prototype.geometryChange = function geometryChange () {\n var pos = this.pos();\n this.attr(\"x\", pos.x);\n this.attr(\"y\", pos.y);\n this.invalidate();\n };\n\n TextNode.prototype.optionsChange = function optionsChange (e) {\n if (e.field === \"font\") {\n this.attr(\"style\", renderStyle(this.mapStyle()));\n this.geometryChange();\n } else if (e.field === \"content\") {\n PathNode.prototype.content.call(this, this.srcElement.content());\n }\n\n PathNode.prototype.optionsChange.call(this, e);\n };\n\n TextNode.prototype.mapStyle = function mapStyle (encode) {\n var style = PathNode.prototype.mapStyle.call(this, encode);\n var font = this.srcElement.options.font;\n\n if (encode) {\n font = htmlEncode(font);\n }\n\n style.push([ \"font\", font ], [ \"white-space\", \"pre\" ]);\n\n return style;\n };\n\n TextNode.prototype.pos = function pos () {\n var pos = this.srcElement.position();\n var size = this.srcElement.measure();\n return pos.clone().setY(pos.y + size.baseline);\n };\n\n TextNode.prototype.renderContent = function renderContent () {\n var content = this.srcElement.content();\n content = decodeEntities(content);\n content = htmlEncode(content);\n\n return normalizeText(content);\n };\n\n TextNode.prototype.renderTextAnchor = function renderTextAnchor () {\n var anchor;\n\n if ((this.options || {}).rtl && !(support.browser.msie || support.browser.edge)) {\n anchor = 'end';\n }\n\n return renderAttr(\"text-anchor\", anchor);\n };\n\n TextNode.prototype.template = function template () {\n return \"<text \" + (this.renderId()) + \" \" + (this.renderTextAnchor()) + \" \" + (this.renderStyle()) + \" \" + (this.renderOpacity()) +\n \"x='\" + (this.pos().x) + \"' y='\" + (this.pos().y) + \"' \" + (this.renderStroke()) + \" \" + (this.renderTransform()) + \" \" + (this.renderDefinitions()) +\n (this.renderFill()) + \">\" + (this.renderContent()) + \"</text>\";\n };\n\n return TextNode;\n}(PathNode));\n\nexport default TextNode;\n","import BaseSurface from '../core/surface';\nimport RootNode from './root-node';\nimport Group from '../shapes/group';\nimport transform from '../geometry/transform';\nimport renderSVG from './utils/render-svg';\nimport { SVG_NS } from './constants';\nimport { bindEvents, unbindEvents, elementStyles } from '../util';\n\nimport ArcNode from './arc-node';\nimport CircleNode from './circle-node';\nimport GroupNode from './group-node';\nimport ImageNode from './image-node';\nimport MultiPathNode from './multi-path-node';\nimport PathNode from './path-node';\nimport RectNode from './rect-node';\nimport TextNode from './text-node';\nimport NODE_MAP from './node-map';\n\nNODE_MAP.Arc = ArcNode;\nNODE_MAP.Circle = CircleNode;\nNODE_MAP.Group = GroupNode;\nNODE_MAP.Image = ImageNode;\nNODE_MAP.MultiPath = MultiPathNode;\nNODE_MAP.Path = PathNode;\nNODE_MAP.Rect = RectNode;\nNODE_MAP.Text = TextNode;\n\nvar RTL = 'rtl';\n\nfunction alignToScreen(element) {\n var ctm;\n\n try {\n ctm = element.getScreenCTM ? element.getScreenCTM() : null;\n } catch (e) { } // eslint-disable-line no-empty\n\n if (ctm) {\n var left = - ctm.e % 1;\n var top = - ctm.f % 1;\n var style = element.style;\n\n if (left !== 0 || top !== 0) {\n style.left = left + \"px\";\n style.top = top + \"px\";\n }\n }\n}\n\nvar Surface = (function (BaseSurface) {\n function Surface(element, options) {\n BaseSurface.call(this, element, options);\n\n this._root = new RootNode(Object.assign({\n rtl: elementStyles(element, 'direction').direction === RTL\n }, this.options));\n\n renderSVG(this.element, this._template(''));\n\n this._rootElement = this.element.firstElementChild;\n this._rootElement.style.width = '100%';\n this._rootElement.style.height = '100%';\n this._rootElement.style.overflow = 'hidden';\n\n alignToScreen(this._rootElement);\n\n this._root.attachTo(this._rootElement);\n\n bindEvents(this.element, {\n click: this._click,\n mouseover: this._mouseenter,\n mouseout: this._mouseleave,\n mousemove: this._mousemove\n });\n\n this.resize();\n }\n\n if ( BaseSurface ) Surface.__proto__ = BaseSurface;\n Surface.prototype = Object.create( BaseSurface && BaseSurface.prototype );\n Surface.prototype.constructor = Surface;\n\n var prototypeAccessors = { type: { configurable: true } };\n\n prototypeAccessors.type.get = function () {\n return \"svg\";\n };\n\n Surface.prototype.destroy = function destroy () {\n if (this._root) {\n this._root.destroy();\n this._root = null;\n this._rootElement = null;\n unbindEvents(this.element, {\n click: this._click,\n mouseover: this._mouseenter,\n mouseout: this._mouseleave,\n mousemove: this._mousemove\n });\n }\n\n BaseSurface.prototype.destroy.call(this);\n };\n\n Surface.prototype.translate = function translate (offset) {\n var viewBox = (Math.round(offset.x)) + \" \" + (Math.round(offset.y)) + \" \" + (this._size.width) + \" \" + (this._size.height);\n\n this._offset = offset;\n this._rootElement.setAttribute(\"viewBox\", viewBox);\n };\n\n Surface.prototype.draw = function draw (element) {\n BaseSurface.prototype.draw.call(this, element);\n this._root.load([ element ]);\n };\n\n Surface.prototype.clear = function clear () {\n BaseSurface.prototype.clear.call(this);\n this._root.clear();\n };\n\n Surface.prototype.svg = function svg () {\n return \"<?xml version='1.0' ?>\" + this._template();\n };\n\n Surface.prototype.exportVisual = function exportVisual () {\n var ref = this;\n var visual = ref._visual;\n var offset = ref._offset;\n\n if (offset) {\n var wrap = new Group();\n wrap.children.push(visual);\n\n wrap.transform(\n transform().translate(-offset.x, -offset.y)\n );\n\n visual = wrap;\n }\n\n return visual;\n };\n\n Surface.prototype._resize = function _resize () {\n if (this._offset) {\n this.translate(this._offset);\n }\n };\n\n Surface.prototype._template = function _template (svgStyles) {\n var styles = typeof svgStyles === 'string' ? svgStyles :\n \"style='width: 100%; height: 100%; overflow: hidden;' \";\n return (\"<svg \" + styles + \"xmlns='\" + SVG_NS + \"' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1'>\" + (this._root.render()) + \"</svg>\");\n };\n\n Object.defineProperties( Surface.prototype, prototypeAccessors );\n\n return Surface;\n}(BaseSurface));\n\nexport default Surface;\n","import { Class, logToConsole } from './common';\nimport SVGSurface from './svg/surface';\nimport CanvasSurface from './canvas/surface';\n\nvar instance;\nvar support;\n\nvar hasDocument = function () { return typeof document !== \"undefined\"; };\n\nvar supportsCanvas = function () { return hasDocument() &&\n document.createElement(\"canvas\").getContext; };\n\nvar supportsSVG = function () { return hasDocument() &&\n document.implementation.hasFeature(\"http://www.w3.org/TR/SVG11/feature#BasicStructure\", \"1.1\"); };\n\nvar SurfaceFactory = (function (Class) {\n function SurfaceFactory() {\n Class.call(this);\n\n this._items = [ {\n name: \"svg\",\n type: SVGSurface\n }, {\n name: \"canvas\",\n type: CanvasSurface\n } ];\n }\n\n if ( Class ) SurfaceFactory.__proto__ = Class;\n SurfaceFactory.prototype = Object.create( Class && Class.prototype );\n SurfaceFactory.prototype.constructor = SurfaceFactory;\n\n var staticAccessors = { support: { configurable: true },current: { configurable: true } };\n\n staticAccessors.support.get = function () {\n if (!support) {\n support = {\n canvas: supportsCanvas(),\n svg: supportsSVG()\n };\n }\n\n return support;\n };\n\n staticAccessors.current.get = function () {\n if (!instance) {\n instance = new SurfaceFactory();\n }\n\n return instance;\n };\n\n SurfaceFactory.prototype.create = function create (element, options) {\n var items = this._items;\n var match = items[0];\n\n if (options && options.type) {\n var preferred = options.type.toLowerCase();\n for (var i = 0; i < items.length; i++) {\n if (items[i].name === preferred) {\n match = items[i];\n break;\n }\n }\n }\n\n if (match) {\n return new match.type(element, options);\n }\n\n logToConsole(\n \"Warning: Unable to create Kendo UI Drawing Surface. Possible causes:\\n\" +\n \"- The browser does not support SVG and Canvas. User agent: \" + (navigator.userAgent));\n };\n\n Object.defineProperties( SurfaceFactory, staticAccessors );\n\n return SurfaceFactory;\n}(Class));\n\nexport default SurfaceFactory;\n\n","/* eslint-disable no-console */\n\nexport default function logToConsole(message) {\n var console = window.console;\n\n if (typeof(console) != \"undefined\" && console.log) {\n console.log(message);\n }\n}","import BaseSurface from './core/surface';\nimport SurfaceFactory from './surface-factory';\n\nvar Surface = (function (BaseSurface) {\n function Surface () {\n BaseSurface.apply(this, arguments);\n }\n\n if ( BaseSurface ) Surface.__proto__ = BaseSurface;\n Surface.prototype = Object.create( BaseSurface && BaseSurface.prototype );\n Surface.prototype.constructor = Surface;\n\n var staticAccessors = { support: { configurable: true } };\n\n staticAccessors.support.get = function () {\n return SurfaceFactory.support;\n };\n\n Surface.create = function create (element, options) {\n return SurfaceFactory.current.create(element, options);\n };\n\n Object.defineProperties( Surface, staticAccessors );\n\n return Surface;\n}(BaseSurface));\n\nexport default Surface;\n\n","/* eslint-disable key-spacing,no-multi-spaces,no-param-reassign */\n\nvar literals = {\n 1 : \"i\", 10 : \"x\", 100 : \"c\",\n 2 : \"ii\", 20 : \"xx\", 200 : \"cc\",\n 3 : \"iii\", 30 : \"xxx\", 300 : \"ccc\",\n 4 : \"iv\", 40 : \"xl\", 400 : \"cd\",\n 5 : \"v\", 50 : \"l\", 500 : \"d\",\n 6 : \"vi\", 60 : \"lx\", 600 : \"dc\",\n 7 : \"vii\", 70 : \"lxx\", 700 : \"dcc\",\n 8 : \"viii\", 80 : \"lxxx\", 800 : \"dccc\",\n 9 : \"ix\", 90 : \"xc\", 900 : \"cm\",\n 1000 : \"m\"\n};\n\nexport default function arabicToRoman(n) {\n var values = [ 1000,\n 900 , 800, 700, 600, 500, 400, 300, 200, 100,\n 90 , 80 , 70 , 60 , 50 , 40 , 30 , 20 , 10 ,\n 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 ];\n\n var roman = \"\";\n while (n > 0) {\n if (n < values[0]) {\n values.shift();\n } else {\n roman += literals[values[0]];\n n -= values[0];\n }\n }\n return roman;\n}\n","var fromCharCode = String.fromCharCode;\n\nexport var BOM = '\\xfe\\xff';\n\n// Encodes a string as UTF-8\nexport function encodeUTF8(input) {\n var output = \"\";\n\n for (var i = 0; i < input.length; i++) {\n var code = input.charCodeAt(i);\n\n if (0xD800 <= code && code <= 0xDBFF) {\n var hi = code;\n var low = input.charCodeAt(++i);\n\n if (!isNaN(low)) {\n // Combine high and low surrogate\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt\n code = (hi - 0xD800) * 0x400 +\n (low - 0xDC00) + 0x10000;\n }\n }\n\n if (code < 0x80) {\n // One byte\n output += fromCharCode(code);\n } else if (code < 0x800) {\n // Two bytes\n output += fromCharCode(0xC0 | (code >>> 6));\n output += fromCharCode(0x80 | (code & 0x3f));\n } else if (code < 0x10000) {\n // Three bytes\n output += fromCharCode(0xE0 | (code >>> 12));\n output += fromCharCode(0x80 | (code >>> 6 & 0x3f));\n output += fromCharCode(0x80 | (code & 0x3f));\n } else if (code < 0x10FFFF) {\n // Four bytes\n output += fromCharCode(0xF0 | (code >>> 18));\n output += fromCharCode(0x80 | (code >>> 12 & 0x3f));\n output += fromCharCode(0x80 | (code >>> 6 & 0x3f));\n output += fromCharCode(0x80 | (code & 0x3f));\n }\n }\n\n return output;\n}\n\nfunction encodeUnit(codeUnit) {\n return fromCharCode(codeUnit >> 8) + fromCharCode(codeUnit & 0x00ff);\n}\n\n// Encodes a string as UTF-16 big-endian\nexport function encodeUTF16BE(input) {\n var output = '';\n\n for (var i = 0; i < input.length; i++) {\n var c = input.charCodeAt(i);\n\n if (c < 0xFFFF) {\n output += encodeUnit(c);\n } else {\n var lead = ((c - 0x10000) >> 10) + 0xD800;\n var trail = ((c - 0x10000) & 0x3FF) + 0xDC00;\n output += encodeUnit(lead);\n output += encodeUnit(trail);\n }\n }\n\n return output;\n}\n","import { encodeUTF8 } from './encode-utf';\n\nvar KEY_STR = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\nexport default function encodeBase64(input) {\n var output = \"\";\n var i = 0;\n\n var utfInput = encodeUTF8(input);\n\n while (i < utfInput.length) {\n var chr1 = utfInput.charCodeAt(i++);\n var chr2 = utfInput.charCodeAt(i++);\n var chr3 = utfInput.charCodeAt(i++);\n\n var enc1 = chr1 >> 2;\n var enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n var enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\n var enc4 = chr3 & 63;\n\n if (isNaN(chr2)) {\n enc3 = enc4 = 64;\n } else if (isNaN(chr3)) {\n enc4 = 64;\n }\n\n output = output +\n KEY_STR.charAt(enc1) + KEY_STR.charAt(enc2) +\n KEY_STR.charAt(enc3) + KEY_STR.charAt(enc4);\n }\n\n return output;\n}","/* eslint-disable no-multi-spaces, key-spacing, indent, camelcase, space-before-blocks, eqeqeq, brace-style */\n/* eslint-disable space-infix-ops, space-before-function-paren, array-bracket-spacing, object-curly-spacing */\n/* eslint-disable no-nested-ternary, max-params, default-case, no-else-return, no-empty */\n/* eslint-disable no-param-reassign, no-var, block-scoped-var */\n\n// mergeSort is stable.\nexport default function mergeSort(a, cmp) {\n if (a.length < 2) {\n return a.slice();\n }\n function merge(a, b) {\n var r = [], ai = 0, bi = 0, i = 0;\n while (ai < a.length && bi < b.length) {\n if (cmp(a[ai], b[bi]) <= 0) {\n r[i++] = a[ai++];\n } else {\n r[i++] = b[bi++];\n }\n }\n if (ai < a.length) {\n r.push.apply(r, a.slice(ai));\n }\n if (bi < b.length) {\n r.push.apply(r, b.slice(bi));\n }\n return r;\n }\n return (function sort(a) {\n if (a.length <= 1) {\n return a;\n }\n var m = Math.floor(a.length / 2);\n var left = a.slice(0, m);\n var right = a.slice(m);\n left = sort(left);\n right = sort(right);\n return merge(left, right);\n })(a);\n}","import { Class } from '../common';\n\nvar LRUCache = (function (Class) {\n function LRUCache(size) {\n Class.call(this);\n\n this._size = size;\n this._length = 0;\n this._map = {};\n }\n\n if ( Class ) LRUCache.__proto__ = Class;\n LRUCache.prototype = Object.create( Class && Class.prototype );\n LRUCache.prototype.constructor = LRUCache;\n\n LRUCache.prototype.put = function put (key, value) {\n var map = this._map;\n var entry = { key: key, value: value };\n\n map[key] = entry;\n\n if (!this._head) {\n this._head = this._tail = entry;\n } else {\n this._tail.newer = entry;\n entry.older = this._tail;\n this._tail = entry;\n }\n\n if (this._length >= this._size) {\n map[this._head.key] = null;\n this._head = this._head.newer;\n this._head.older = null;\n } else {\n this._length++;\n }\n };\n\n LRUCache.prototype.get = function get (key) {\n var entry = this._map[key];\n\n if (entry) {\n if (entry === this._head && entry !== this._tail) {\n this._head = entry.newer;\n this._head.older = null;\n }\n\n if (entry !== this._tail) {\n if (entry.older) {\n entry.older.newer = entry.newer;\n entry.newer.older = entry.older;\n }\n\n entry.older = this._tail;\n entry.newer = null;\n\n this._tail.newer = entry;\n this._tail = entry;\n }\n\n return entry.value;\n }\n };\n\n return LRUCache;\n}(Class));\n\nexport default LRUCache;","import LRUCache from './lru-cache';\nimport { Class } from '../common';\nimport { objectKey, hashKey, normalizeText } from './util';\n\nfunction zeroSize() {\n return { width: 0, height: 0, baseline: 0 };\n}\n\nvar DEFAULT_OPTIONS = {\n baselineMarkerSize: 1\n};\n\nvar defaultMeasureBox;\n\nif (typeof document !== \"undefined\") {\n defaultMeasureBox = document.createElement(\"div\");\n defaultMeasureBox.style.cssText = \"position: absolute !important; top: -4000px !important; width: auto !important; height: auto !important;\" +\n \"padding: 0 !important; margin: 0 !important; border: 0 !important;\" +\n \"line-height: normal !important; visibility: hidden !important; white-space: pre!important;\";\n}\n\nvar TextMetrics = (function (Class) {\n function TextMetrics(options) {\n Class.call(this);\n\n this._cache = new LRUCache(1000);\n this.options = Object.assign({}, DEFAULT_OPTIONS, options);\n }\n\n if ( Class ) TextMetrics.__proto__ = Class;\n TextMetrics.prototype = Object.create( Class && Class.prototype );\n TextMetrics.prototype.constructor = TextMetrics;\n\n TextMetrics.prototype.measure = function measure (text, style, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof text === 'undefined' || text === null) {\n return zeroSize();\n }\n\n var styleKey = objectKey(style);\n var cacheKey = hashKey(text + styleKey);\n var cachedResult = this._cache.get(cacheKey);\n\n if (cachedResult) {\n return cachedResult;\n }\n\n var size = zeroSize();\n var measureBox = options.box || defaultMeasureBox;\n var baselineMarker = this._baselineMarker().cloneNode(false);\n\n for (var key in style) {\n var value = style[key];\n if (typeof value !== \"undefined\") {\n measureBox.style[key] = value;\n }\n }\n\n var textStr = options.normalizeText !== false ? normalizeText(text) : String(text);\n\n measureBox.textContent = textStr;\n measureBox.appendChild(baselineMarker);\n document.body.appendChild(measureBox);\n\n if (textStr.length) {\n size.width = measureBox.offsetWidth - this.options.baselineMarkerSize;\n size.height = measureBox.offsetHeight;\n size.baseline = baselineMarker.offsetTop + this.options.baselineMarkerSize;\n }\n\n if (size.width > 0 && size.height > 0) {\n this._cache.put(cacheKey, size);\n }\n\n measureBox.parentNode.removeChild(measureBox);\n\n return size;\n };\n\n TextMetrics.prototype._baselineMarker = function _baselineMarker () {\n var marker = document.createElement(\"div\");\n marker.style.cssText = \"display: inline-block; vertical-align: baseline;width: \" +\n this.options.baselineMarkerSize + \"px; height: \" + this.options.baselineMarkerSize + \"px;overflow: hidden;\";\n\n return marker;\n };\n\n return TextMetrics;\n}(Class));\n\nTextMetrics.current = new TextMetrics();\n\nexport default TextMetrics;\n","import TextMetrics from './text-metrics';\n\nexport default function measureText(text, style, measureBox) {\n return TextMetrics.current.measure(text, style, measureBox);\n}\n","import { drawing } from '@progress/kendo-drawing';\nvar _a = drawing.util, elementOffset = _a.elementOffset, limitValue = _a.limitValue;\nexport { elementOffset, limitValue };\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","import Surface from './surface';\nimport { transform } from '../geometry';\nimport Group from '../shapes/group';\n\nexport default function exportImage(group, options) {\n var defaults = {\n width: \"800px\", height: \"600px\",\n cors: \"Anonymous\"\n };\n\n var exportRoot = group;\n var bbox = group.clippedBBox();\n\n\n if (bbox) {\n var origin = bbox.getOrigin();\n exportRoot = new Group();\n exportRoot.transform(transform().translate(-origin.x, -origin.y));\n exportRoot.children.push(group);\n\n var size = bbox.getSize();\n defaults.width = size.width + \"px\";\n defaults.height = size.height + \"px\";\n }\n\n var surfaceOptions = Object.assign(defaults, options);\n\n var container = document.createElement(\"div\");\n var style = container.style;\n\n style.display = \"none\";\n style.width = surfaceOptions.width;\n style.height = surfaceOptions.height;\n document.body.appendChild(container);\n\n var surface = new Surface(container, surfaceOptions);\n surface.suspendTracking();\n surface.draw(exportRoot);\n\n var promise = surface.image();\n var destroy = function () {\n surface.destroy();\n document.body.removeChild(container);\n };\n promise.then(destroy, destroy);\n\n return promise;\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 __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport * as React from 'react';\n/**\n * An utility function for asynchronous focus/blur handling.\n *\n * By default, the `onFocus` and `onBlur` callbacks are called every time a child components receives/loses focus.\n * Use this utility hook for scenarios where you need to know if the parent has received focus for the first time, or completely lost focus.\n *\n * @returns\n */\nexport function useAsyncFocusBlur(_a) {\n var onFocus = _a.onFocus, onBlur = _a.onBlur, onSyncFocus = _a.onSyncFocus, onSyncBlur = _a.onSyncBlur;\n var focused = React.useRef(false);\n var tick = React.useRef(0);\n var nextTick = React.useCallback(function (f) {\n clearTimeout(tick.current);\n tick.current = window.setTimeout(function () { return f(); });\n }, [tick]);\n var handleFocus = React.useCallback(function () {\n var event = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n event[_i] = arguments[_i];\n }\n clearTimeout(tick.current);\n if (onSyncFocus) {\n onSyncFocus.call(undefined, event[0]);\n }\n if (focused.current) {\n return;\n }\n ;\n focused.current = true;\n if (onFocus) {\n onFocus.call.apply(onFocus, __spreadArray([undefined], event, false));\n }\n }, [focused, onFocus, onSyncFocus]);\n var handleBlur = React.useCallback(function () {\n var event = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n event[_i] = arguments[_i];\n }\n if (onSyncBlur) {\n onSyncBlur.call(undefined, event[0]);\n }\n nextTick(function () {\n if (!focused.current) {\n return;\n }\n if (onBlur) {\n focused.current = false;\n onBlur.call.apply(onBlur, __spreadArray([undefined], event, false));\n }\n });\n }, [focused, nextTick, onBlur, onSyncBlur]);\n React.useEffect(function () {\n return function () {\n clearTimeout(tick.current);\n };\n }, []);\n return {\n onFocus: handleFocus,\n onBlur: handleBlur\n };\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, kendoThemeMaps, useAsyncFocusBlur, useCustomComponent, validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\n;\n/**\n * Represents the [KendoReact TextBox component]({% slug overview_textbox %}).\n */\nexport var TextBox = React.forwardRef(function (props, ref) {\n var _a;\n validatePackage(packageMetadata);\n var element = React.useRef(null);\n var target = React.useRef(null);\n var valueDuringChangeRef = React.useRef();\n var valueGetter = React.useCallback(function () {\n var _a;\n if (valueDuringChangeRef.current !== undefined) {\n return valueDuringChangeRef.current;\n }\n else {\n return (_a = element.current) === null || _a === void 0 ? void 0 : _a.value;\n }\n }, []);\n React.useImperativeHandle(target, function () {\n var result = {\n element: element.current\n };\n Object.defineProperty(result, 'value', { get: valueGetter });\n return result;\n });\n React.useImperativeHandle(ref, function () { return target.current; });\n var _b = props, size = _b.size, fillMode = _b.fillMode, rounded = _b.rounded, className = _b.className, dir = _b.dir, style = _b.style, _c = _b.prefix, prefix = _c === void 0 ? defaultProps.prefix : _c, _d = _b.suffix, suffix = _d === void 0 ? defaultProps.suffix : _d, valid = _b.valid, \n // Destruct to avoid warning when used inside a form field\n _modified = _b.modified, _touched = _b.touched, _visited = _b.visited, other = __rest(_b, [\"size\", \"fillMode\", \"rounded\", \"className\", \"dir\", \"style\", \"prefix\", \"suffix\", \"valid\", \"modified\", \"touched\", \"visited\"]);\n var Prefix = useCustomComponent(prefix)[0];\n var Suffix = useCustomComponent(suffix)[0];\n var _e = React.useState(false), focused = _e[0], setFocused = _e[1];\n var handleFocus = function (_) {\n setFocused(true);\n };\n var handleBlur = function (_) {\n setFocused(false);\n };\n var handleChange = React.useCallback(function (event) {\n valueDuringChangeRef.current = event.target.value;\n if (props.onChange) {\n props.onChange.call(undefined, {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n value: event.target.value,\n target: target.current\n });\n }\n valueDuringChangeRef.current = undefined;\n }, [props.onChange]);\n var _f = useAsyncFocusBlur({\n onFocus: handleFocus,\n onBlur: handleBlur,\n onSyncFocus: props.onFocus,\n onSyncBlur: props.onBlur\n }), onFocus = _f.onFocus, onBlur = _f.onBlur;\n return (React.createElement(\"span\", { style: style, dir: dir, className: classNames('k-textbox k-input', (_a = {},\n _a[\"k-input-\".concat(kendoThemeMaps.sizeMap[size] || size)] = size,\n _a[\"k-input-\".concat(fillMode)] = fillMode,\n _a[\"k-rounded-\".concat(kendoThemeMaps.roundedMap[rounded] || rounded)] = rounded,\n _a), {\n 'k-focus': focused,\n 'k-required': props.required,\n 'k-disabled': props.disabled,\n 'k-invalid': props.valid === false\n }, className), onFocus: onFocus, onBlur: onBlur },\n React.createElement(Prefix, null),\n React.createElement(\"input\", __assign({ ref: element, className: \"k-input-inner\" }, other, { onChange: handleChange })),\n React.createElement(Suffix, null)));\n});\nvar defaultProps = {\n prefix: function (_) { return null; },\n suffix: function (_) { return null; },\n size: 'medium',\n rounded: 'medium',\n fillMode: 'solid'\n};\nTextBox.propTypes = {\n size: PropTypes.oneOf([null, 'small', 'medium', 'large']),\n rounded: PropTypes.oneOf([null, 'small', 'medium', 'large', 'full']),\n fillMode: PropTypes.oneOf([null, 'solid', 'flat', 'outline'])\n};\nTextBox.displayName = 'KendoReactTextBoxComponent';\nTextBox.defaultProps = defaultProps;\n","var __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","import * as React from 'react';\nimport { GlobalizationContext } from '../globalization/GlobalizationContext';\n/**\n * A custom [React Hook](https://reactjs.org/docs/hooks-intro.html) providing access to an [IntlService]({% slug api_intl_intlservice %}).\n */\nexport var useInternationalization = function () { return React.useContext(GlobalizationContext).intl; };\n"],"names":["usePropsContext","context","props","React","contextPropsCallback","__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","createPropsContext","withPropsContext","Component","ref","contextProps","guid","random","id","Math","toString","useCustomComponent","comp","dispatchEvent","eventHandler","dispatchedEvent","target","eventData","eventBaseData","syntheticEvent","nativeEvent","undefined","getActiveElement","document","activeElement","shadowRoot","classNames","args","_i","result","addKeys","list","filter","arg","map","Array","isArray","keys","forEach","key","addLeafKeys","el","join","kendoThemeMaps","sizeMap","small","medium","large","roundedMap","getTabIndex","tabIndex","disabled","useDefaultTabIndexWhenDisabled","parsedTabIndex","parseInt","NaN","validatePackage","packageMetadata","licensing","message","concat","name","licensingDocsUrl","console","warn","_a","productName","productCodes","publishDate","version","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","String","split","maxFractionLength","value1","value2","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","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","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","newText","oldText","isMinusSymbolAdded","currentNumberStart","oldNumberStart","isMinusSymbolRemoved","valueCandidate","currentLastNumberIndex","isDecimalDuplicated","formatInfoIndex","prefix","prefixIndex","suffixIndex","prefixFound","suffixFound","prefixGap","suffixGap","currentDecimalCount","endsOnDecimal","valueUntillDecimal","looseDecimalPlace","NumericTextBoxPropsContext","NumericTextBox","directProps","calculatedId","inputId","useInternationalization","localizationService","useLocalization","elementRef","valueDuringChangeRef","_b","forceUpdate","setForceUpdate","stateRef","focused","decimalSelect","valueIsOutOfRange","isPasteRef","prevLooseValueRef","stateValueRef","defaultValue","looseValue","current","Prefix","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","onChange","_x","onChangeHandler","stateCandidate","onKeyDown","keyCode","rangeOnEnter","slice","preventDefault","onPasteHandler","onIncrease","readOnly","onDecrease","onWheelHandler","deltaY","onFocus","onBlur","onMouseDown","e","type","isValid","numerictextbox","dir","style","label","width","className","size","fillMode","rounded","role","accessKey","title","ariaLabel","ariaLabelledBy","ariaDescribedBy","placeholder","spellCheck","autoComplete","autoCorrect","inputType","inputStyle","onPaste","onWheel","children","spinners","Button","icon","svgIcon","caretAltUpIcon","toLanguageString","onClick","caretAltDownIcon","FloatingLabel","editorId","editorValue","editorValid","editorDisabled","editorPlaceholder","propTypes","PropTypes","currency","currencyDisplay","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","displayName","defaultProps","_","browser","window","userAgent","browserRxs","edge","webkit","safari","opera","msie","mozilla","agent","match","toLowerCase","documentMode","matchUserAgent","navigator","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgrey","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","support","matchNamedColor","color","colorNames","namedColors","push","regexp","exec","BaseColor","Class","__proto__","create","constructor","toHSV","toRGB","toHex","toBytes","toCss","toCssRgba","rgb","r","g","b","Number","a","toDisplay","equals","c","parseColor","diff","other","c1","c2","sqrt","pow","clone","Bytes","RGB","h","delta","v","HSV","toHSL","l","d","HSL","round","hex","alpha","pad","floor","f","q","hue2rgb","alphaFromHex","safe","m","ret","Error","Color","this$1","formats","resolvedColor","resolveColor","formatRegex","re","processor","process","parts","channels","normalizeByte","padDigit","substr","isNaN","brightness","percBrightness","isDark","fromBytes","fromRGB","fromHSV","fromHSL","isPresent","fitIntoBounds","contender","parsedColor","parse","trim","getHSV","parsed","getRGBA","getColorFromHSV","hsva","hue","saturation","getColorFromHue","getRGBFromRGBA","foregroundColor","backgroundColor","r1","g1","b1","a1","r2","g2","b2","getLuminance","getContrastFromTwoRGBAs","luminance1","luminance2","__extends","extendStatics","setPrototypeOf","TypeError","__","__rest","getOwnPropertySymbols","propertyIsEnumerable","InputWithoutContext","_super","_this","_input","_inputId","isInvalid","prop","setValidity","validity","classList","remove","add","handleChange","setState","valueDuringOnChange","handleAutoFill","animationName","parent_1","parentNode","contains","enumerable","configurable","badInput","patternMismatch","rangeOverflow","rangeUnderflow","stepMismatch","tooLong","typeMismatch","componentDidMount","componentDidUpdate","render","visited","touched","modified","inputClassName","textbox","onAnimationStart","validate","InputPropsContext","Input","HexInput","onHexChange","originalHex","getDerivedStateFromProps","Label","editorRef","optional","localizedOptional","labelsOptional","optionalElement","onLabelClick","editorActionElement","actionElement","click","labelClassName","htmlFor","modes","ColorInput","onRgbaRChange","dispatchRgbaChange","onRgbaGChange","onRgbaBChange","onRgbaAChange","inputMode","defaultInputMode","provideLocalizationService","hexMessage","rMessage","gMessage","bMessage","aMessage","toggleButtonMessage","caretAltExpandIcon","onToggleModeChange","bind","rgba","opacity","newValue","onRgbaChange","index","nextIndex","registerForIntl","registerForLocalization","focusFirstFocusableChild","HTMLInputElement","querySelector","noop","useInheritedState","contextValue","contextSetter","localValue","localSetter","DragContext","DropContext","DragsContext","DropsContext","useDraggable","callbacks","onPress","onRelease","_c","onDragStart","_d","onDrag","_e","onDragEnd","_f","hint","_g","mouseOnly","_h","autoScroll","_j","scrollContainer","_k","pressed","setPressed","_l","scrolling","setScrolling","drop","_m","drag","setDrag","drops","_o","drags","registerDrag","deregisterDrag","velocity","y","scrollInterval","ignoreMouse","restoreMouseTimeout","scrollable","unmount","offset","pageOffset","clientOffset","initialClientOffset","scrollOffset","initialScrollOffset","supportPointerEvent","PointerEvent","pointers","getElement","getHintElement","getScrollContainer","getAutoScrollContainer","boundaryElementRef","handlePress","handleDragStart","handleDrag","handleDragEnd","handleRelease","data","getDocument","ownerDocument","getWindow","defaultView","getState","enabled","scrollableParent","autoScrollDirection","direction","horizontal","vertical","isScrolling","handlePressedChange","handleScrollingChange","handleVelocityChange","handleOffsetChange","handleClientOffsetChange","handlePageOffsetChange","handleInitialClientOffsetChange","handleScrollOffsetChange","handleInitialScrollOffsetChange","dispatchDragEvent","dispatchDragAndDrop","payload","onVelocityChange","onOffsetChange","onClientOffsetChange","onPageOffsetChange","onInitialClientOffsetChange","onScrollOffsetChange","onInitialScrollOffsetChange","onIsPressedChange","onIsScrollingChange","handlePointerDown","handlePointerMove","handlePointerCancel","handlePointerUp","handleMouseDown","handleMouseMove","handleMouseUp","handleContextMenu","handleTouchStart","handleTouchMove","handleTouchEnd","touches","changedTouches","currentWindow","setTimeout","handleScroll","prerequisites","initialTouchAction_1","touchAction","register","scrollableParent_1","getScrollableParent","elementFromPoint","clearInterval","setInterval","autoScrollElement","addEventListener","passive","capture","removeEventListener","clearTimeout","Draggable","childRef","Keys","useDir","initialDir","setDir","rtlCandidate","getComputedStyle","SLIDER_LABEL_ATTRIBUTE","SliderLabel","sliderLabelRef","bottom","position","tickStyle","zIndex","SliderWithoutContext","_sliderTrack","_element","buttons","increaseSvgArrow","caretAltLeftIcon","caretAltRightIcon","decreaseSvgArrow","increaseFontArrow","decreaseFontArrow","decrementTitle","decrement","incrementTitle","increment","isLabel","currentTarget","getAttribute","parentElement","change","dragStart","originalEvent","isTouch","dragOver","computed","getBoundingClientRect","percentage","clientY","right","clientX","left","height","lS","percentValue","trackStyles","marginTop","marginBottom","marginLeft","marginRight","sliderItemsStyle","paddingTop","gap","flexGrow","margin","child","SliderPropsContext","Slider","cache","SIZE_CLASSES","toIconName","iconClass","svgIconPropType","content","viewBox","Icon","themeColor","flip","others","sizeProp","flipProp","fontClassNames","toIconClass","mouseProps","extend","onMouseUp","onDoubleClick","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","useMouse","SvgIcon","svgClassName","svgStyle","iconNameProp","viewBoxProp","elementClassNames","elementStyle","focusable","xmlns","dangerouslySetInnerHTML","__html","IconsContext","IconWrap","icons","fontIconProps","svg","ColorContrastLabels","contrastRatioMessage","AALevelMessage","AAALevelMessage","passMessage","failMessage","contrast","bgColor","requiredAAContrast","requiredAAAContrast","contrastText","aaText","aaaText","success","checkIcon","error","xIcon","svgPath","points","command","reduce","acc","point","line","pointA","pointB","lengthX","lengthY","angle","atan2","ColorContrastSvg","renderSvgCurveLine","controlPointCalc","lineCalc","gradientRectMetrics","metrics","findValue","low","high","comparer","mid","currentContrast","getPaths","stepCount","reversed","bezierCommandCalc","previous","next","PI","cos","sin","cpsX","cpsY","cpeX","cpeY","shouldComponentUpdate","nextProps","overflow","pointerEvents","top","DEFAULT_SELECTED_COLOR","ColorGradientWithoutContext","wrapper","isUncontrolled","componentGuid","cacheHex","dispatchChangeEvent","getColorFromRGBA","cacheRgba","onAlphaSliderChange","handleHsvaChange","onHueSliderChange","gradientWrapper","changePosition","onGradientWrapperClick","getGradientRectMetrics","deltaX","getStateFromValue","isFirstRender","setAlphaSliderBackground","componentWillUnmount","prevState","renderRectangleDragHandle","top_1","ariaValueText","ariaLabelHSV","cacheHsva","cachedColor","getCachedHsva","getCachedRgba","getCachedHex","alphaSlider","sliderTrack","background","ColorGradientPropsContext","ColorGradient","ColorPaletteService","colorRows","setColorMatrix","palette","columns","start","row","getCellCoordsFor","colors","_loop_1","_loop_2","col","some","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","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","popupAlign","input","button","Popup","anchor","popupAnchor","show","open","onOpen","onClose","DEFAULT_PALETTE_SETTINGS","isControlled","ColorPickerPropsContext","ColorPicker","localization","gradientSettings","paletteSettings","view","iconClassName","onActiveColorClick","focusableElementRef","gradientRef","paletteRef","blurTimeoutRef","buttonRef","setFocused","setStateValue","stateOpen","setStateOpen","isValueControlled","isOpenControlled","setOpen","nextOpen","isBlur","onKeyDownHandler","altKey","stopPropagation","onOpenHandler","onClickHandler","onActiveColorClickHandler","onFocusHandler","onBlurTimeout","onBlurHandler","isPalette","onPaletteChangeHandler","ResultType","styles","util","ButtonGroup","mapButtons","groupClasses","groupProps","div","count","rtl","renderButton","isLast","isRtl","buttonProps","defaultColor","FlatColorPicker","flatColorPickerRef","colorGradientRef","showButtons","showPreview","showClearButton","colorGradientView","setColorGradientView","colorValue","setColorValue","prevColor","setPrevColor","handleViewChange","viewType","handleResetColor","handleColorChange","handleApplyBtnClick","ev","handleCancelBtnClick","handlePrevColorClick","handleFocus","handleFlatColorPickerBlur","relatedTarget","header","togglable","selected","dropletSliderIcon","paletteIcon","dropletSlashIcon","Result","rest","Undefined","fn","chain","fold","vs","Stream","control","inputCursor","controlCursor","eof","char","peek","eat_input","eat_control","eat","toArray","Parser","run","stream","isLiteral","Literal","token","rules","creator","rule","literal","mask","rawMask","prompt","promptPlaceholder","rawLiteral","includeLiterals","sequence","parser","p2","greedy","MaskingService","maskTokens","unmaskTokens","rawTokens","validationTokens","update","tokenize","validationValue","maskedValue","unmasked","rawValue","maskRaw","masked","maskInput","splitPoint","maskRemoved","maskInserted","maskInRange","pasted","oldValue","end","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","component","autoCapitalize","readonly","onDrop","extra","config","propName","componentName","entries","MaskedTextBoxPropsContext","MaskedTextBox","RANGE_ACTION","rangeReducer","action","increase","decrease","RangeSliderPropsContext","RangeSlider","sliderRef","sliderSelectionRef","startHandle","endHandle","currentDrag","setCurrentDrag","callback","handleDispatchAction","useRange","dispatchStateValue","sliderTrackRef","sliderTrackWrapRef","percentStart","percentEnd","calcNewDistance","distance","calcKey","handleStartKeyDown","handleEndKeyDown","handleTrackPress","startTabIndex","endTabIndex","SwitchWithoutContext","defaultValidationMessage","limit","wrapperWidth","offsetWidth","toggle","checked","_wrapper","_id","dummyInput","border","handleClick","eventTimeStamp","timeStamp","handleKeyDown","handleWrapperFocus","handleWrapperBlur","defaultChecked","trackRounded","thumbRounded","offLabel","onLabel","switchClassName","ariaAttributes","span","SwitchPropsContext","Switch","CheckboxPropsContext","Checkbox","labelPlacement","labelOptional","stateChecked","setStateChecked","valueIsBoolean","isCheckedControlled","currentChecked","useValueAsChecked","checkedProp","valueProp","indeterminateProp","localizeMessage","optionalMessage","setValue","val","currentVal","handleKeyUp","handleBlur","checkboxClasses","inputProps","onKeyUp","checkboxInput","checkboxLabel","userSelect","RadioButtonPropsContext","RadioButton","radioButtonLabel","radio","RadioGroupPropsContext","RadioGroup","layout","item","Item","checkedRadioValue","radioGroupName","radioGroupClasses","useRtl","radioOptions","option","isCurrentlyChecked","noOptionChecked","radioButtonProps","TextAreaPropsContext","TextArea","autoSize","textAreaHeight","setTextAreaHeight","scrollHeight","textAreaProps","resize","RatingItem","handleMouseEnter","handleMouseLeave","half","hovered","RATING_ACTION","toRound","num","base","percent","isHalf","calcIsFirstHalf","rect","isCorrectValue","ratingReducer","select","deselect","reset","useRating","RatingPropsContext","Rating","ratingRef","stateHover","dispatchStateHover","hoveredValue","handleItemClick","handleItemMouseMove","items","remainder","itemValue","selectedValue","svgIconOutline","starOutlineIcon","clipPath","starIcon","display","maskParser","setAccessor","field","geometryChange","getAccessor","TBase","names","fields","capitalized","toUpperCase","defineAccessors","HasObservers","observers","_observers","addObserver","removeObserver","splice","trigger","methodName","_suspended","observer","optionsChange","suspend","resume","_observerField","power","UNDEFINED","defined","DEG_TO_RAD","MAX_NUM","MAX_VALUE","MIN_NUM","rad","degrees","Matrix","multiplyCopy","matrix","invert","det","separator","translate","unit","rotate","scale","scaleX","scaleY","IDENTITY","toMatrix","transformation","Point","superclass","staticAccessors","ZERO","origin","originPoint","transform","translateWith","move","scaleCopy","transformCopy","distanceTo","dx","dy","digits","doRound","arg0","arg1","arguments$1","minX","minY","maxX","maxY","minPoint","maxPoint","defineProperties","withAccessors","Size","Rect","cornerRadius","setOrigin","setSize","setCornerRadius","getOrigin","radius","getCornerRadius","getSize","topLeft","bottomRight","topRight","bottomLeft","center","bbox","tl","tr","br","bl","fromPoints","expand","expandCopy","containsPoint","_isOnPath","rectOuter","rectInner","union","intersect","rect1","rect2","Transformation","_matrix","_optionsChange","multiply","pop","shift","unshift","ElementsArray","array","_splice","elements","_change","_add","_remove","howMany","_clearObserver","_setObserver","GeometryElementsArray","OptionsStore","member","_wrap","set","_set","composite","parentObj","fieldName","obj","_clear","object","wrapped","defId","definitionId","valueOrDefault","isTransparent","Element","_initOptions","prototypeAccessors","nodeType","clip","createTransform","parentTransform","parentMatrix","parent","currentTransform","combinedMatrix","elementMatrix","visible","clippedBBox","_clippedBBox","transformedPoint","_hasFill","_containsPoint","_hasStroke","fill","stroke","deg","radians","isOutOfEndPoint","endPoint","controlPoint","calculateCurveAt","t1","toCubicPolynomial","PRECISION","ComplexNumber","real","img","cNumber","addConstant","negate","multiplyConstant","nthRoot","nthR","isReal","numberSign","solveCubicEquation","squareRoot","solveQuadraticEquation","x1","x2","y1","y2","y3","z1","z2","Q","b3a","abs","hasRootsInRange","rootField","range","intersection","polynomial","roots","close","tolerance","lineIntersectionsCount","intersects","inRange","pointAccessor","definePointAccessors","Segment","controlIn","controlOut","bboxTo","toSegment","segmentAnchor","toSegmentAnchor","_curveBoundingBox","_lineBoundingBox","p1","cp1","cp2","extremesX","_curveExtremesFor","extremesY","xLimits","arrayLimits","yLimits","extremes","_curveExtremes","x3","x4","t2","_intersectionsTo","segment","intersectionsCount","rayIntersection","curveIntersectionsCount","_isOnCurveTo","endSegment","p3","p4","rotation","rotatedPoints","_isOnLineTo","_isOnPathTo","withPoints","arr","last","WEIGHT","EXTREMUM_ALLOWED_DEVIATION","X","Y","pointsToCurve","pointsIn","closed","segments","removeDuplicates","initialControlPoint","lastControlPoint","p0","tangent","getTangent","firstControlPoint","secondControlPoint","controlPoints","getControlPoints","cp0","controlPoints$1","controlPoints$2","tangent$2","lineFunction","xField","yField","restrict","switchOrientation","calculateFunction","isLine","sign","monotonic","isMonotonicByField","invertAxis","secondCP","oldXField","firstCP","restrictControlPoint","cp","xValue","yValue","anonymous","newFill","IDENTITY_MATRIX_HASH","matrixHash","_bboxCache","_matrixHash","_bbox","strokeWidth","closeOrLess","Arc","setCenter","radiusX","radiusY","startAngle","endAngle","anticlockwise","xRotation","getCenter","pointAt","radian","curvePoints","interval","_arcInterval","intervalAngle","subIntervalsCount","ceil","subIntervalAngle","currentAngle","nextAngle","_intervalCurvePoints","extremeAngles","rx","ry","extremeX","extremeY","ellipseExtremeAngles","currentAngleX","bboxStartAngle","currentAngleY","currentPoint","currentPointX","currentPointY","oldStart","p1Derivative","_derivativeAt","p2Derivative","angleRad","pointRadius","startPoint","s1x","s2x","s1y","s2y","nx","ny","lineIntersection","calculateAngle","inAngleRange","largeArc","swipe","arcParameters","parameters","cosine","sine","xT","yT","xt2","yt2","rx2","ry2","constT","cxT","cyT","cx","cy","uX","uY","vX","vY","acos","angleCosine","signEndAngle","normalizeArcParameters","ShapeMap","path","isRelative","lineTo","curveTo","toLineParamaters","arcTo","lastControlIn","previousCommand","paths","reflectionPoint","cubicControlPoints","quadraticToCubicControlPoints","isVertical","insertPosition","third","scaledPoint","SEGMENT_REGEX","SPLIT_REGEX","pathInstance","params","closePath","number","parseParameters","moveTo","elementsBoundingBox","applyTransform","boundingBox","elementBoundingBox","rawBBox","elementsClippedBoundingBox","limitValue","SPACE","Path","lineJoin","lastSegment","arc","_addArcSegments","segmentStart","segmentEnd","output","currentType","print","len","pathWidth","segmentBox","MultiPath","fromRect","curveFromPoints","fromArc","paintable","measurable","prototypeAccessors$1","instance","parsePath","geometryAccessor","Image","src","_rect","defineGeometryAccessors","withGeometry","childrenField","traverse","append","first","second","Group","childrenChange","_reparent","insert","insertAt","removeAt","clear","newParent","traversable","Observable","_events","eventName","handlers","one","eventNames","getArray","handlersIsFunction","isFunction","loop","eventName$1","handler","original","unbind","events","sender","_defaultPrevented","isDefaultPrevented","elementStyles","stylesArray","getPixels","elementSize","size$1","eventElement","touch","initialTouch","elementPadding","paddingLeft","elementOffset","box","documentElement","pageYOffset","scrollTop","clientTop","pageXOffset","scrollLeft","clientLeft","eventCoordinates","location","pageX","pageY","matrixRegexp","transformMatrix","matrixString","members","Function","parseMatrix","elementScale","Surface","_kendoExportVisual","exportVisual","_click","_handler","_mouseenter","_mouseleave","_mousemove","_visual","_enableTracking","draw","destroy","eventTarget","node","domNode","_kendoNode","srcElement","currentSize","_size","_resize","force","suspendTracking","_suspendedTracking","resumeTracking","_elementOffset","padding","_surfacePoint","coord","inverseTransform","bindEvents","unbindEvents","createPromise","resolveFn","rejectFn","promise","Promise","resolve","reject","_state","promiseAll","promises","all","BaseNode","childNodes","observe","load","pos","removeSelf","invalidate","renderPath","ctx","prevOut","bezierCurveTo","Node","initClip","clearClip","setClip","beginPath","setTransform","loadElements","cors","childNode","NODE_MAP","setOpacity","globalAlpha","opactity","GroupNode","renderTo","save","restore","Date","now","getTime","animationFrameProxy","wnd","animationFrame","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","RootNode","canvas","getContext","invalidateHandler","_invalidate","delay","timeout","lastExecTime","throttled","elapsed","cancel","throttle","_rescale","_devicePixelRatio","devicePixelRatio","fixedScale","clearRect","QuadRoot","shapes","shape","_quadNode","pointShapes","QuadNode","inBounds","nodeRect","nodeBottomRight","inserted","_initChildren","halfWidth","halfHeight","ROOT_SIZE","ShapesQuadTree","initRoots","rootMap","root","rootElements","pointShape","sectorRoot","assignZindex","sort","zIndexComparer","levelWeight","parents","_zIndex","bboxChange","_insertShape","elementsArray","_insert","sectors","getSectors","inRoot","bottomX","bottomY","SurfaceCursor","surface","_resetCursor","cursor","_shapeCursor","_current","_defaultCursor","_getCursor","_setCursor","StopsArray","optionsAccessor","GradientStop","defineOptionsAccessors","withOptions","Gradient","stops","_createStops","_userSpace","userSpace","addStop","removeStop","stop","LinearGradient","RadialGradient","_radius","_fallbackFill","fallbackFill","DASH_ARRAYS","dot","dash","longdash","dashdot","longdashdot","longdashdotdot","SOLID","BUTT","PathNode","renderPoints","setLineDash","setLineCap","setLineJoin","setFill","setStroke","hasFill","setGradientFill","fillStyle","gradient","createLinearGradient","createRadialGradient","addColorStop","addGradientStops","strokeStyle","lineWidth","dashType","dashArray","mozDash","webkitLineDash","lineCap","ArcNode","toPath","CircleNode","geometry","ImageNode","onLoad","onError","loading","crossOrigin","complete","onload","onerror","drawImage","MultiPathNode","RectNode","TextNode","text","measure","font","textAlign","fillText","baseline","strokeText","BaseSurface","innerHTML","_template","firstElementChild","_rootElement","_root","_mouseTrackHandler","_trackMouse","mousemove","_searchTree","_cursor","image","rootElement","loadingStates","resolveDataURL","toDataURL","then","currentShape","_currentShape","renderAttr","renderAllAttr","attrs","renderStyle","SVG_NS","NONE","styleAttr","replaceStyleAttr","html","restoreStyleAttr","container","from","querySelectorAll","styleString","removeAttribute","applyStyle","renderSVG","testFragment","testContainer","createElement","hasParser","DOMParser","firstChild","namespaceURI","chartDoc","parseFromString","importedDoc","adoptNode","appendChild","TRANSFORM","DefinitionMap","isDefinition","definitions","clearDefinitions","createDefinitions","attachTo","domElement","insertBefore","setElement","nodes","childElement","removeChild","template","renderChildren","css","updateDefinition","attr","removeAttr","setAttribute","allAttr","allCss","mapTransform","renderTransform","transformChange","mapStyle","renderOpacity","renderId","hasDefinitions","definition","definitionChange","refUrl","renderDefinitions","mapDefinitions","skipBaseHref","baseHref","baseUrl","getElementsByTagName","href","url","hashIndex","GradientStopNode","renderOffset","GradientNode","loadStops","stopNode","mapCoordinates","renderCoordinates","mapSpace","LinearGradientNode","RadialGradientNode","ClipNode","DefinitionNode","definitionMap","addDefinitions","removeDefinitions","createDefinition","addDefinition","mapItem","removeDefinition","defs","ATTRIBUTE_MAP","renderData","mapFill","mapStroke","textContent","renderLinecap","renderDashType","renderStroke","renderFill","ampRegExp","ltRegExp","quoteRegExp","aposRegExp","gtRegExp","htmlEncode","mapPosition","mapSource","renderPosition","encode","renderSource","REPLACE_REGEX","normalizeText","objectKey","hashKey","hash","charCodeAt","ENTITY_REGEX","decodeEntities","lastIndex","innerText","setY","renderContent","renderTextAnchor","ctm","getScreenCTM","alignToScreen","mouseover","mouseout","_offset","visual","wrap","svgStyles","hasDocument","SurfaceFactory","_items","SVGSurface","CanvasSurface","implementation","hasFeature","preferred","log","logToConsole","literals","arabicToRoman","values","roman","fromCharCode","KEY_STR","encodeBase64","utfInput","code","hi","encodeUTF8","chr1","chr2","chr3","enc1","enc2","enc3","enc4","mergeSort","cmp","ai","bi","merge","LRUCache","_length","_map","put","entry","_head","_tail","newer","older","defaultMeasureBox","DEFAULT_OPTIONS","baselineMarkerSize","cssText","TextMetrics","_cache","cacheKey","cachedResult","measureBox","baselineMarker","_baselineMarker","cloneNode","textStr","body","offsetHeight","offsetTop","marker","measureText","drawing","SignaturePad","lastMoveTime","samplingRate","smooth","onDraw","onDrawEnd","pathOptions","initSurface","attachEvents","detachEvents","rootGroup","loadImage","contentWidth","contentHeight","importWidth","importHeight","exportImage","exportWidth","exportHeight","exportRect","exportGroup","contentGroup","frame","defaults","exportRoot","surfaceOptions","setOptions","onPointerDown","onPointerMove","onPointerUp","touchPoint","isPrimary","isMainButton","setPointerCapture","pointerId","lastPoint","minDelta","pathData","__awaiter","thisArg","_arguments","P","generator","fulfilled","rejected","done","__generator","sent","trys","ops","verb","Symbol","iterator","op","SignaturePropsContext","Signature","canvasRef","dialogRef","minimizeButtonRef","maximizeButtonRef","setInstance","isDrawing","setIsDrawing","popupValue","setPopupValue","showMaximize","maximized","maximizable","showMinimize","showClear","maximizeTitle","minimizeTitle","clearTitle","popupScale","exportScale","onValueChange","colorGetter","backgroundColorGetter","defaultBackgroundColor","getOptions","exportSize","overlay","onOverlayClick","onDocumentKeydown","hasParent","onMaximizeClick","popupSize","onMinimizeClick","hyperlinkOpenIcon","hideLine","Dialog","__spreadArray","pack","ar","TextBox","onSyncFocus","onSyncBlur","tick","nextTick","useAsyncFocusBlur","InputClearValue","InputPrefix","InputSeparator","InputSuffix","InputValidationIcon","GlobalizationContext","intl"],"sourceRoot":""}