diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5af44d1d6..b311f548b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,21 @@
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
+## [0.37.0] - 2018-11-04
+### Fixed
+- Some Input props weren't being picked up by React. Changed:
+ - `autocomplete` to `autoComplete`
+ - `autofocus` to `autoFocus`
+ - `inputmode` to `inputMode`
+ - `maxlength` to `maxLength`
+ - `minlength` to `minLength`
+### Added
+- Unit tests for `Input` component.
+- New `debounce` prop for `Input` component that determines if the input should update to a Dash server immediately, or on 'Enter' key. Fixes [#169](https://github.com/plotly/dash-core-components/issues/169)
+### Changed
+- `min` and `max` prop now won't update the input when values are lower than or greater than `min` and `max` respectively. Fixes[#173](https://github.com/plotly/dash-core-components/issues/173)
+- `step` prop can now be a `number` and is therefor set correctly on the corresponding ` ` tag. Fixes [#292](https://github.com/plotly/dash-core-components/issues/292)
+
## [0.36.0] - 2018-11-01
### Fixed
- The `npm start` command now runs the Demo app again [#346](https://github.com/plotly/dash-core-components/issues/346)
diff --git a/dash_core_components/Input.py b/dash_core_components/Input.py
index 57d57ac12..5cecab72c 100644
--- a/dash_core_components/Input.py
+++ b/dash_core_components/Input.py
@@ -15,9 +15,11 @@ class Input(Component):
- id (string; optional): The ID of this component, used to identify dash components
in callbacks. The ID needs to be unique across all of the
components in an app.
-- value (string; optional): The value of the input
+- value (string | number; optional): The value of the input
- style (dict; optional): The input's inline styles
- className (string; optional): The class of the input element
+- debounce (boolean; optional): If true, changes to input will be sent back to the Dash server only on enter or when losing focus.
+If it's false, it will sent the value back on every change.
- type (a value equal to: "text", 'number', 'password', 'email', 'range', 'search', 'tel', 'url', 'hidden'; optional): The type of control to render.
- autocomplete (string; optional): This attribute indicates whether the value of the control can be automatically completed by the browser.
- autofocus (string; optional): The element should be automatically focused after the page loaded.
@@ -29,11 +31,11 @@ class Input(Component):
input element.
This attribute is ignored when the type attribute's value is
hidden, checkbox, radio, file, or a button type.
-- max (string; optional): The maximum (numeric or date-time) value for this item, which must not be less than its minimum (min attribute) value.
+- max (string | number; optional): The maximum (numeric or date-time) value for this item, which must not be less than its minimum (min attribute) value.
- maxlength (string; optional): If the value of the type attribute is text, email, search, password, tel, or url, this attribute specifies the maximum number of characters (in UTF-16 code units) that the user can enter. For other control types, it is ignored. It can exceed the value of the size attribute. If it is not specified, the user can enter an unlimited number of characters. Specifying a negative number results in the default behavior (i.e. the user can enter an unlimited number of characters). The constraint is evaluated only when the value of the attribute has been changed.
-- min (string; optional): The minimum (numeric or date-time) value for this item, which must not be greater than its maximum (max attribute) value.
+- min (string | number; optional): The minimum (numeric or date-time) value for this item, which must not be greater than its maximum (max attribute) value.
- minlength (string; optional): If the value of the type attribute is text, email, search, password, tel, or url, this attribute specifies the minimum number of characters (in Unicode code points) that the user can enter. For other control types, it is ignored.
-- multiple (string; optional): This Boolean attribute indicates whether the user can enter more than one value. This attribute applies when the type attribute is set to email or file, otherwise it is ignored.
+- multiple (boolean; optional): This Boolean attribute indicates whether the user can enter more than one value. This attribute applies when the type attribute is set to email or file, otherwise it is ignored.
- name (string; optional): The name of the control, which is submitted with the form data.
- pattern (string; optional): A regular expression that the control's value is checked against. The pattern must match the entire value, not just some subset. Use the title attribute to describe the pattern to help the user. This attribute applies when the value of the type attribute is text, search, tel, url, email, or password, otherwise it is ignored. The regular expression language is the same as JavaScript RegExp algorithm, with the 'u' parameter that makes it treat the pattern as a sequence of unicode code points. The pattern is not surrounded by forward slashes.
- placeholder (string; optional): A hint to the user of what can be entered in the control . The placeholder text must not contain carriage returns or line-feeds. Note: Do not use the placeholder attribute instead of a element, their purposes are different. The attribute describes the role of the form element (i.e. it indicates what kind of information is expected), and the placeholder attribute is a hint about the format that the content should take. There are cases in which the placeholder attribute is never displayed to the user, so the form must be understandable without it.
@@ -43,8 +45,8 @@ class Input(Component):
- selectionEnd (string; optional): The offset into the element's text content of the last selected character. If there's no selection, this value indicates the offset to the character following the current text input cursor position (that is, the position the next character typed would occupy).
- selectionStart (string; optional): The offset into the element's text content of the first selected character. If there's no selection, this value indicates the offset to the character following the current text input cursor position (that is, the position the next character typed would occupy).
- size (string; optional): The initial size of the control. This value is in pixels unless the value of the type attribute is text or password, in which case it is an integer number of characters. Starting in, this attribute applies only when the type attribute is set to text, search, tel, url, email, or password, otherwise it is ignored. In addition, the size must be greater than zero. If you do not specify a size, a default value of 20 is used.' simply states "the user agent should ensure that at least that many characters are visible", but different characters can have different widths in certain fonts. In some browsers, a certain string with x characters will not be entirely visible even if size is defined to at least x.
-- spellcheck (string; optional): Setting the value of this attribute to true indicates that the element needs to have its spelling and grammar checked. The value default indicates that the element is to act according to a default behavior, possibly based on the parent element's own spellcheck value. The value false indicates that the element should not be checked.
-- step (string; optional): Works with the min and max attributes to limit the increments at which a numeric or date-time value can be set. It can be the string any or a positive floating point number. If this attribute is not set to any, the control accepts only values at multiples of the step value greater than the minimum.
+- spellCheck (string; optional): Setting the value of this attribute to true indicates that the element needs to have its spelling and grammar checked. The value default indicates that the element is to act according to a default behavior, possibly based on the parent element's own spellcheck value. The value false indicates that the element should not be checked.
+- step (string | number; optional): Works with the min and max attributes to limit the increments at which a numeric or date-time value can be set. It can be the string any or a positive floating point number. If this attribute is not set to any, the control accepts only values at multiples of the step value greater than the minimum.
- n_submit (number; optional): Number of times the `Enter` key was pressed while the input had focus.
- n_submit_timestamp (number; optional): Last time that `Enter` was pressed.
- n_blur (number; optional): Number of times the input lost focus.
@@ -52,13 +54,13 @@ class Input(Component):
Available events: 'blur', 'change'"""
@_explicitize_args
- def __init__(self, id=Component.UNDEFINED, value=Component.UNDEFINED, style=Component.UNDEFINED, className=Component.UNDEFINED, type=Component.UNDEFINED, autocomplete=Component.UNDEFINED, autofocus=Component.UNDEFINED, disabled=Component.UNDEFINED, inputmode=Component.UNDEFINED, list=Component.UNDEFINED, max=Component.UNDEFINED, maxlength=Component.UNDEFINED, min=Component.UNDEFINED, minlength=Component.UNDEFINED, multiple=Component.UNDEFINED, name=Component.UNDEFINED, pattern=Component.UNDEFINED, placeholder=Component.UNDEFINED, readOnly=Component.UNDEFINED, required=Component.UNDEFINED, selectionDirection=Component.UNDEFINED, selectionEnd=Component.UNDEFINED, selectionStart=Component.UNDEFINED, size=Component.UNDEFINED, spellcheck=Component.UNDEFINED, step=Component.UNDEFINED, n_submit=Component.UNDEFINED, n_submit_timestamp=Component.UNDEFINED, n_blur=Component.UNDEFINED, n_blur_timestamp=Component.UNDEFINED, **kwargs):
- self._prop_names = ['id', 'value', 'style', 'className', 'type', 'autocomplete', 'autofocus', 'disabled', 'inputmode', 'list', 'max', 'maxlength', 'min', 'minlength', 'multiple', 'name', 'pattern', 'placeholder', 'readOnly', 'required', 'selectionDirection', 'selectionEnd', 'selectionStart', 'size', 'spellcheck', 'step', 'n_submit', 'n_submit_timestamp', 'n_blur', 'n_blur_timestamp']
+ def __init__(self, id=Component.UNDEFINED, value=Component.UNDEFINED, style=Component.UNDEFINED, className=Component.UNDEFINED, debounce=Component.UNDEFINED, type=Component.UNDEFINED, autocomplete=Component.UNDEFINED, autofocus=Component.UNDEFINED, disabled=Component.UNDEFINED, inputmode=Component.UNDEFINED, list=Component.UNDEFINED, max=Component.UNDEFINED, maxlength=Component.UNDEFINED, min=Component.UNDEFINED, minlength=Component.UNDEFINED, multiple=Component.UNDEFINED, name=Component.UNDEFINED, pattern=Component.UNDEFINED, placeholder=Component.UNDEFINED, readOnly=Component.UNDEFINED, required=Component.UNDEFINED, selectionDirection=Component.UNDEFINED, selectionEnd=Component.UNDEFINED, selectionStart=Component.UNDEFINED, size=Component.UNDEFINED, spellCheck=Component.UNDEFINED, step=Component.UNDEFINED, n_submit=Component.UNDEFINED, n_submit_timestamp=Component.UNDEFINED, n_blur=Component.UNDEFINED, n_blur_timestamp=Component.UNDEFINED, **kwargs):
+ self._prop_names = ['id', 'value', 'style', 'className', 'debounce', 'type', 'autocomplete', 'autofocus', 'disabled', 'inputmode', 'list', 'max', 'maxlength', 'min', 'minlength', 'multiple', 'name', 'pattern', 'placeholder', 'readOnly', 'required', 'selectionDirection', 'selectionEnd', 'selectionStart', 'size', 'spellCheck', 'step', 'n_submit', 'n_submit_timestamp', 'n_blur', 'n_blur_timestamp']
self._type = 'Input'
self._namespace = 'dash_core_components'
self._valid_wildcard_attributes = []
self.available_events = ['blur', 'change']
- self.available_properties = ['id', 'value', 'style', 'className', 'type', 'autocomplete', 'autofocus', 'disabled', 'inputmode', 'list', 'max', 'maxlength', 'min', 'minlength', 'multiple', 'name', 'pattern', 'placeholder', 'readOnly', 'required', 'selectionDirection', 'selectionEnd', 'selectionStart', 'size', 'spellcheck', 'step', 'n_submit', 'n_submit_timestamp', 'n_blur', 'n_blur_timestamp']
+ self.available_properties = ['id', 'value', 'style', 'className', 'debounce', 'type', 'autocomplete', 'autofocus', 'disabled', 'inputmode', 'list', 'max', 'maxlength', 'min', 'minlength', 'multiple', 'name', 'pattern', 'placeholder', 'readOnly', 'required', 'selectionDirection', 'selectionEnd', 'selectionStart', 'size', 'spellCheck', 'step', 'n_submit', 'n_submit_timestamp', 'n_blur', 'n_blur_timestamp']
self.available_wildcard_properties = []
_explicit_args = kwargs.pop('_explicit_args')
diff --git a/dash_core_components/dash_core_components.dev.js b/dash_core_components/dash_core_components.dev.js
index 9237ec722..9f8d2206f 100644
--- a/dash_core_components/dash_core_components.dev.js
+++ b/dash_core_components/dash_core_components.dev.js
@@ -12574,7 +12574,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(/*! react */ \"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _ramda = __webpack_require__(/*! ramda */ \"./node_modules/ramda/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * A basic HTML input control for entering text, numbers, or passwords.\n *\n * Note that checkbox and radio types are supported through\n * the Checklist and RadioItems component. Dates, times, and file uploads\n * are also supported through separate components.\n */\nvar Input = function (_Component) {\n _inherits(Input, _Component);\n\n function Input(props) {\n _classCallCheck(this, Input);\n\n var _this = _possibleConstructorReturn(this, (Input.__proto__ || Object.getPrototypeOf(Input)).call(this, props));\n\n _this.state = { value: props.value };\n return _this;\n }\n\n _createClass(Input, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if (this.props.setProps) {\n // Only setState from props if the component is driven by props.\n // If the component prop is not used in a callback,\n // it will receive the same initial props every time\n // the layout is updated.\n this.setState({ value: nextProps.value });\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n fireEvent = _props.fireEvent,\n setProps = _props.setProps,\n type = _props.type;\n var value = this.state.value;\n\n return _react2.default.createElement('input', _extends({\n onChange: function onChange(e) {\n _this2.setState({ value: e.target.value });\n if (setProps) {\n if (type === 'number') {\n setProps({ value: Number(e.target.value) });\n } else {\n setProps({ value: e.target.value });\n }\n }\n if (fireEvent) {\n fireEvent({ event: 'change' });\n }\n },\n onBlur: function onBlur() {\n if (fireEvent) {\n fireEvent({ event: 'blur' });\n }\n if (setProps) {\n setProps({\n n_blur: _this2.props.n_blur + 1,\n n_blur_timestamp: new Date()\n });\n }\n },\n onKeyUp: function onKeyUp(e) {\n if (setProps && e.key === 'Enter') {\n setProps({\n n_submit: _this2.props.n_submit + 1,\n n_submit_timestamp: new Date()\n });\n }\n },\n value: value\n }, (0, _ramda.omit)(['fireEvent', 'setProps', 'value'], this.props)));\n }\n }]);\n\n return Input;\n}(_react.Component);\n\nexports.default = Input;\n\n\nInput.defaultProps = {\n n_blur: 0,\n n_blur_timestamp: -1,\n n_submit: 0,\n n_submit_timestamp: -1\n};\n\nInput.propTypes = {\n /**\n * The ID of this component, used to identify dash components\n * in callbacks. The ID needs to be unique across all of the\n * components in an app.\n */\n id: _propTypes2.default.string,\n\n /**\n * The value of the input\n */\n value: _propTypes2.default.string,\n\n /**\n * The input's inline styles\n */\n style: _propTypes2.default.object,\n\n /**\n * The class of the input element\n */\n className: _propTypes2.default.string,\n\n /**\n * The type of control to render.\n */\n type: _propTypes2.default.oneOf([\n // Only allowing the input types with wide browser compatibility\n 'text', 'number', 'password', 'email', 'range', 'search', 'tel', 'url', 'hidden']),\n\n /**\n * This attribute indicates whether the value of the control can be automatically completed by the browser.\n */\n autocomplete: _propTypes2.default.string,\n\n /**\n * The element should be automatically focused after the page loaded.\n */\n autofocus: _propTypes2.default.string,\n\n /**\n * If true, the input is disabled and can't be clicked on.\n */\n disabled: _propTypes2.default.bool,\n\n inputmode: _propTypes2.default.oneOf([\n /**\n * Alphanumeric, non-prose content such as usernames and passwords.\n */\n 'verbatim',\n\n /**\n * Latin-script input in the user's preferred language with typing aids such as text prediction enabled. For human-to-computer communication such as search boxes.\n */\n 'latin',\n\n /**\n * As latin, but for human names.\n */\n 'latin-name',\n\n /**\n * As latin, but with more aggressive typing aids. For human-to-human communication such as instant messaging or email.\n */\n 'latin-prose',\n\n /**\n * As latin-prose, but for the user's secondary languages.\n */\n 'full-width-latin',\n\n /**\n * Kana or romaji input, typically hiragana input, using full-width characters, with support for converting to kanji. Intended for Japanese text input.\n */\n 'kana',\n\n /**\n * Katakana input, using full-width characters, with support for converting to kanji. Intended for Japanese text input.\n */\n 'katakana',\n\n /**\n * Numeric input, including keys for the digits 0 to 9, the user's preferred thousands separator character, and the character for indicating negative numbers. Intended for numeric codes (e.g. credit card numbers). For actual numbers, prefer using type=\"number\"\n */\n 'numeric',\n\n /**\n * Telephone input, including asterisk and pound key. Use type=\"tel\" if possible instead.\n */\n 'tel',\n\n /**\n * Email input. Use type=\"email\" if possible instead.\n */\n 'email',\n\n /**\n * URL input. Use type=\"url\" if possible instead.\n */\n 'url']),\n\n /**\n * Identifies a list of pre-defined options to suggest to the user.\n * The value must be the id of a element in the same document.\n * The browser displays only options that are valid values for this\n * input element.\n * This attribute is ignored when the type attribute's value is\n * hidden, checkbox, radio, file, or a button type.\n */\n list: _propTypes2.default.string,\n\n /**\n * The maximum (numeric or date-time) value for this item, which must not be less than its minimum (min attribute) value.\n */\n max: _propTypes2.default.string,\n\n /**\n * If the value of the type attribute is text, email, search, password, tel, or url, this attribute specifies the maximum number of characters (in UTF-16 code units) that the user can enter. For other control types, it is ignored. It can exceed the value of the size attribute. If it is not specified, the user can enter an unlimited number of characters. Specifying a negative number results in the default behavior (i.e. the user can enter an unlimited number of characters). The constraint is evaluated only when the value of the attribute has been changed.\n */\n maxlength: _propTypes2.default.string,\n\n /**\n * The minimum (numeric or date-time) value for this item, which must not be greater than its maximum (max attribute) value.\n */\n min: _propTypes2.default.string,\n\n /**\n * If the value of the type attribute is text, email, search, password, tel, or url, this attribute specifies the minimum number of characters (in Unicode code points) that the user can enter. For other control types, it is ignored.\n */\n minlength: _propTypes2.default.string,\n\n /**\n * This Boolean attribute indicates whether the user can enter more than one value. This attribute applies when the type attribute is set to email or file, otherwise it is ignored.\n */\n multiple: _propTypes2.default.string,\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n name: _propTypes2.default.string,\n\n /**\n * A regular expression that the control's value is checked against. The pattern must match the entire value, not just some subset. Use the title attribute to describe the pattern to help the user. This attribute applies when the value of the type attribute is text, search, tel, url, email, or password, otherwise it is ignored. The regular expression language is the same as JavaScript RegExp algorithm, with the 'u' parameter that makes it treat the pattern as a sequence of unicode code points. The pattern is not surrounded by forward slashes.\n */\n pattern: _propTypes2.default.string,\n\n /**\n * A hint to the user of what can be entered in the control . The placeholder text must not contain carriage returns or line-feeds. Note: Do not use the placeholder attribute instead of a element, their purposes are different. The attribute describes the role of the form element (i.e. it indicates what kind of information is expected), and the placeholder attribute is a hint about the format that the content should take. There are cases in which the placeholder attribute is never displayed to the user, so the form must be understandable without it.\n */\n placeholder: _propTypes2.default.string,\n\n /**\n * This attribute indicates that the user cannot modify the value of the control. The value of the attribute is irrelevant. If you need read-write access to the input value, do not add the \"readonly\" attribute. It is ignored if the value of the type attribute is hidden, range, color, checkbox, radio, file, or a button type (such as button or submit).\n */\n readOnly: _propTypes2.default.string,\n\n /**\n * This attribute specifies that the user must fill in a value before submitting a form. It cannot be used when the type attribute is hidden, image, or a button type (submit, reset, or button). The :optional and :required CSS pseudo-classes will be applied to the field as appropriate.\n */\n required: _propTypes2.default.string,\n\n /**\n * The direction in which selection occurred. This is \"forward\" if the selection was made from left-to-right in an LTR locale or right-to-left in an RTL locale, or \"backward\" if the selection was made in the opposite direction. On platforms on which it's possible this value isn't known, the value can be \"none\"; for example, on macOS, the default direction is \"none\", then as the user begins to modify the selection using the keyboard, this will change to reflect the direction in which the selection is expanding.\n */\n selectionDirection: _propTypes2.default.string,\n\n /**\n * The offset into the element's text content of the last selected character. If there's no selection, this value indicates the offset to the character following the current text input cursor position (that is, the position the next character typed would occupy).\n */\n selectionEnd: _propTypes2.default.string,\n\n /**\n * The offset into the element's text content of the first selected character. If there's no selection, this value indicates the offset to the character following the current text input cursor position (that is, the position the next character typed would occupy).\n */\n selectionStart: _propTypes2.default.string,\n\n /**\n * The initial size of the control. This value is in pixels unless the value of the type attribute is text or password, in which case it is an integer number of characters. Starting in, this attribute applies only when the type attribute is set to text, search, tel, url, email, or password, otherwise it is ignored. In addition, the size must be greater than zero. If you do not specify a size, a default value of 20 is used.' simply states \"the user agent should ensure that at least that many characters are visible\", but different characters can have different widths in certain fonts. In some browsers, a certain string with x characters will not be entirely visible even if size is defined to at least x.\n */\n size: _propTypes2.default.string,\n\n /**\n * Setting the value of this attribute to true indicates that the element needs to have its spelling and grammar checked. The value default indicates that the element is to act according to a default behavior, possibly based on the parent element's own spellcheck value. The value false indicates that the element should not be checked.\n */\n spellcheck: _propTypes2.default.string,\n\n /**\n * Works with the min and max attributes to limit the increments at which a numeric or date-time value can be set. It can be the string any or a positive floating point number. If this attribute is not set to any, the control accepts only values at multiples of the step value greater than the minimum.\n */\n step: _propTypes2.default.string,\n\n /**\n * Number of times the `Enter` key was pressed while the input had focus.\n */\n n_submit: _propTypes2.default.number,\n /**\n * Last time that `Enter` was pressed.\n */\n n_submit_timestamp: _propTypes2.default.number,\n\n /**\n * Number of times the input lost focus.\n */\n n_blur: _propTypes2.default.number,\n /**\n * Last time the input lost focus.\n */\n n_blur_timestamp: _propTypes2.default.number,\n\n /**\n * Dash-assigned callback that gets fired when the input changes.\n */\n fireEvent: _propTypes2.default.func,\n\n /**\n * Dash-assigned callback that gets fired when the value changes.\n */\n setProps: _propTypes2.default.func,\n\n dashEvents: _propTypes2.default.oneOf(['blur', 'change'])\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9kYXNoX2NvcmVfY29tcG9uZW50cy8uL3NyYy9jb21wb25lbnRzL0lucHV0LnJlYWN0LmpzPzc0M2YiXSwibmFtZXMiOlsiSW5wdXQiLCJwcm9wcyIsInN0YXRlIiwidmFsdWUiLCJuZXh0UHJvcHMiLCJzZXRQcm9wcyIsInNldFN0YXRlIiwiZmlyZUV2ZW50IiwidHlwZSIsImUiLCJ0YXJnZXQiLCJOdW1iZXIiLCJldmVudCIsIm5fYmx1ciIsIm5fYmx1cl90aW1lc3RhbXAiLCJEYXRlIiwia2V5Iiwibl9zdWJtaXQiLCJuX3N1Ym1pdF90aW1lc3RhbXAiLCJkZWZhdWx0UHJvcHMiLCJwcm9wVHlwZXMiLCJpZCIsInN0cmluZyIsInN0eWxlIiwib2JqZWN0IiwiY2xhc3NOYW1lIiwib25lT2YiLCJhdXRvY29tcGxldGUiLCJhdXRvZm9jdXMiLCJkaXNhYmxlZCIsImJvb2wiLCJpbnB1dG1vZGUiLCJsaXN0IiwibWF4IiwibWF4bGVuZ3RoIiwibWluIiwibWlubGVuZ3RoIiwibXVsdGlwbGUiLCJuYW1lIiwicGF0dGVybiIsInBsYWNlaG9sZGVyIiwicmVhZE9ubHkiLCJyZXF1aXJlZCIsInNlbGVjdGlvbkRpcmVjdGlvbiIsInNlbGVjdGlvbkVuZCIsInNlbGVjdGlvblN0YXJ0Iiwic2l6ZSIsInNwZWxsY2hlY2siLCJzdGVwIiwibnVtYmVyIiwiZnVuYyIsImRhc2hFdmVudHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7QUFFQTs7Ozs7OztJQU9xQkEsSzs7O0FBQ2pCLGlCQUFZQyxLQUFaLEVBQW1CO0FBQUE7O0FBQUEsOEdBQ1RBLEtBRFM7O0FBRWYsVUFBS0MsS0FBTCxHQUFhLEVBQUNDLE9BQU9GLE1BQU1FLEtBQWQsRUFBYjtBQUZlO0FBR2xCOzs7OzhDQUV5QkMsUyxFQUFXO0FBQ2pDLFVBQUksS0FBS0gsS0FBTCxDQUFXSSxRQUFmLEVBQXlCO0FBQ3JCO0FBQ0E7QUFDQTtB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QXFPZEMsY0FBWSxvQkFBVXpCLEtBQVYsQ0FBZ0IsQ0FBQyxNQUFELEVBQVMsUUFBVCxDQUFoQjtBQXJPRSxDQUFsQiIsImZpbGUiOiIuL3NyYy9jb21wb25lbnRzL0lucHV0LnJlYWN0LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHtvbWl0fSBmcm9tICdyYW1kYSc7XG5cbi8qKlxuICogQSBiYXNpYyBIVE1MIGlucHV0IGNvbnRyb2wgZm9yIGVudGVyaW5nIHRleHQsIG51bWJlcnMsIG9yIHBhc3N3b3Jkcy5cbiAqXG4gKiBOb3RlIHRoYXQgY2hlY2tib3ggYW5kIHJhZGlvIHR5cGVzIGFyZSBzdXBwb3J0ZWQgdGhyb3VnaFxuICogdGhlIENoZWNrbGlzdCBhbmQgUmFkaW9JdGVtcyBjb21wb25lbnQuIERhdGVzLCB0aW1lcywgYW5kIGZpbGUgdXBsb2Fkc1xuICogYXJlIGFsc28gc3VwcG9ydGVkIHRocm91Z2ggc2VwYXJhdGUgY29tcG9uZW50cy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSW5wdXQgZXh0ZW5kcyBDb21wb25lbnQge1xuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgICAgIHN1cGVyKHByb3BzKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHt2YWx1ZTogcHJvcHMudmFsdWV9O1xuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLnNldFByb3BzKSB7XG4gICAgICAgICAgICAvLyBPbmx5IHNldFN0YXRlIGZyb20gcHJvcHMgaWYgdGhlIGNvbXBvbmVudCBpcyBkcml2ZW4gYnkgcHJvcHMuXG4gICAgICAgICAgICAvLyBJZiB0aGUgY29tcG9uZW50IHByb3AgaXMgbm90IHVzZWQgaW4gYSBjYWxsYmFjayxcbiAgICAgICAgICAgIC8vIGl0IHdpbGwgcmVjZWl2ZSB0aGUgc2FtZSBpbml0aWFsIHByb3BzIGV2ZXJ5IHRpbWVcbiAgICAgICAgICAgIC8vIHRoZSBsYXlvdXQgaXMgdXBkYXRlZC5cbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe3ZhbHVlOiBuZXh0UHJvcHMudmFsdWV9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3Qge2ZpcmVFdmVudCwgc2V0UHJvcHMsIHR5cGV9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgY29uc3Qge3ZhbHVlfSA9IHRoaXMuc3RhdGU7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe3ZhbHVlOiBlLnRhcmdldC52YWx1ZX0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2V0UHJvcHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFByb3BzKHt2YWx1ZTogTnVtYmVyKGUudGFyZ2V0LnZhbHVlKX0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9wcyh7dmFsdWU6IGUudGFyZ2V0LnZhbHVlfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpcmVFdmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlyZUV2ZW50KHtldmVudDogJ2NoYW5nZSd9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25CbHVyPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaXJlRXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVFdmVudCh7ZXZlbnQ6ICdibHVyJ30pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZXRQcm9wcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0UHJvcHMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5fYmx1cjogdGhpcy5wcm9wcy5uX2JsdXIgKyAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5fYmx1cl90aW1lc3RhbXA6IG5ldyBEYXRlKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25LZXlVcD17ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZXRQcm9wcyAmJiBlLmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0UHJvcHMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5fc3VibWl0OiB0aGlzLnByb3BzLm5fc3VibWl0ICsgMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuX3N1Ym1pdF90aW1lc3RhbXA6IG5ldyBEYXRlKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgIHsuLi5vbWl0KFsnZmlyZUV2ZW50JywgJ3NldFByb3BzJywgJ3ZhbHVlJ10sIHRoaXMucHJvcHMpfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgKTtcbiAgICB9XG59XG5cbklucHV0LmRlZmF1bHRQcm9wcyA9IHtcbiAgICBuX2JsdXI6IDAsXG4gICAgbl9ibHVyX3RpbWVzdGFtcDogLTEsXG4gICAgbl9zdWJtaXQ6IDAsXG4gICAgbl9zdWJtaXRfdGltZXN0YW1wOiAtMSxcbn07XG5cbklucHV0LnByb3BUeXBlcyA9IHtcbiAgICAvKipcbiAgICAgKiBUaGUgSUQgb2YgdGhpcyBjb21wb25lbnQsIHVzZWQgdG8gaWRlbnRpZnkgZGFzaCBjb21wb25lbnRzXG4gICAgICogaW4gY2FsbGJhY2tzLiBUaGUgSUQgbmVlZHMgdG8gYmUgdW5pcXVlIGFjcm9zcyBhbGwgb2YgdGhlXG4gICAgICogY29tcG9uZW50cyBpbiBhbiBhcHAuXG4gICAgICovXG4gICAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBUaGUgdmFsdWUgb2YgdGhlIGlucHV0XG4gICAgICovXG4gICAgdmFsdWU6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBUaGUgaW5wdXQncyBpbmxpbmUgc3R5bGVzXG4gICAgICovXG4gICAgc3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG5cbiAgICAvKipcbiAgICAgKiBUaGUgY2xhc3Mgb2YgdGhlIGlucHV0IGVsZW1lbnRcbiAgICAgKi9cbiAgICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBUaGUgdHlwZSBvZiBjb250cm9sIHRvIHJlbmRlci5cbiAgICAgKi9cbiAgICB0eXBlOiBQcm9wVHlwZXMub25lT2YoW1xuICAgICAgICAvLyBPbmx5IGFsbG93aW5nIHRoZSBpbnB1dCB0eXBlcyB3aXRoIHdpZGUgYnJvd3NlciBjb21wYXRpYmlsaXR5XG4gICAgICAgICd0ZXh0JyxcbiAgICAgICAgJ251bWJlcicsXG4gICAgICAgICdwYXNzd29yZCcsXG4gICAgICAgICdlbWFpbCcsXG4gICAgICAgICdyYW5nZScsXG4gICAgICAgICdzZWFyY2gnLFxuICAgICAgICAndGVsJyxcbiAgICAgICAgJ3VybCcsXG4gICAgICAgICdoaWRkZW4nLFxuICAgIF0pLFxuXG4gICAgLyoqXG4gICAgICogVGhpcyBhdHRyaWJ1dGUgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIHZhbHVlIG9mIHRoZSBjb250cm9sIGNhbiBiZSBhdXRvbWF0aWNhbGx5IGNvbXBsZXRlZCBieSB0aGUgYnJvd3Nlci5cbiAgICAgKi9cbiAgICBhdXRvY29tcGxldGU6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBUaGUgZWxlbWVudCBzaG91bGQgYmUgYXV0b21hdGljYWxseSBmb2N1c2VkIGFmdGVyIHRoZSBwYWdlIGxvYWRlZC5cbiAgICAgKi9cbiAgICBhdXRvZm9jdXM6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCB0aGUgaW5wdXQgaXMgZGlzYWJsZWQgYW5kIGNhbid0IGJlIGNsaWNrZWQgb24uXG4gICAgICovXG4gICAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuXG4gICAgaW5wdXRtb2RlOiBQcm9wVHlwZXMub25lT2YoW1xuICAgICAgICAvKipcbiAgICAgICAgICogQWxwaGFudW1lcmljLCBub24tcHJvc2UgY29udGVudCBzdWNoIGFzIHVzZXJuYW1lcyBhbmQgcGFzc3dvcmRzLlxuICAgICAgICAgKi9cbiAgICAgICAgJ3ZlcmJhdGltJyxcblxuICAgICAgICAvKipcbiAgICAgICAgICogTGF0aW4tc2NyaXB0IGlucHV0IGluIHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlIHdpdGggdHlwaW5nIGFpZHMgc3VjaCBhcyB0ZXh0IHByZWRpY3Rpb24gZW5hYmxlZC4gRm9yIGh1bWFuLXRvLWNvbXB1dGVyIGNvbW11bmljYXRpb24gc3VjaCBhcyBzZWFyY2ggYm94ZXMuXG4gICAgICAgICAqL1xuICAgICAgICAnbGF0aW4nLFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBcyBsYXRpbiwgYnV0IGZvciBodW1hbiBuYW1lcy5cbiAgICAgICAgICovXG4gICAgICAgICdsYXRpbi1uYW1lJyxcblxuICAgICAgICAvKipcbiAgICAgICAgICogQXMgbGF0aW4sIGJ1dCB3aXRoIG1vcmUgYWdncmVzc2l2ZSB0eXBpbmcgYWlkcy4gRm9yIGh1bWFuLXRvLWh1bWFuIGNvbW11bmljYXRpb24gc3VjaCBhcyBpbnN0YW50IG1lc3NhZ2luZyBvciBlbWFpbC5cbiAgICAgICAgICovXG4gICAgICAgICdsYXRpbi1wcm9zZScsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFzIGxhdGluLXByb3NlLCBidXQgZm9yIHRoZSB1c2VyJ3Mgc2Vjb25kYXJ5IGxhbmd1YWdlcy5cbiAgICAgICAgICovXG4gICAgICAgICdmdWxsLXdpZHRoLWxhdGluJyxcblxuICAgICAgICAvKipcbiAgICAgICAgICogS2FuYSBvciByb21hamkgaW5wdXQsIHR5cGljYWxseSBoaXJhZ2FuYSBpbnB1dCwgdXNpbmcgZnVsbC13aWR0aCBjaGFyYWN0ZXJzLCB3aXRoIHN1cHBvcnQgZm9yIGNvbnZlcnRpbmcgdG8ga2FuamkuIEludGVuZGVkIGZvciBKYXBhbmVzZSB0ZXh0IGlucHV0LlxuICAgICAgICAgKi9cbiAgICAgICAgJ2thbmEnLFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBLYXRha2FuYSBpbnB1dCwgdXNpbmcgZnVsbC13aWR0aCBjaGFyYWN0ZXJzLCB3aXRoIHN1cHBvcnQgZm9yIGNvbnZlcnRpbmcgdG8ga2FuamkuIEludGVuZGVkIGZvciBKYXBhbmVzZSB0ZXh0IGlucHV0LlxuICAgICAgICAgKi9cbiAgICAgICAgJ2thdGFrYW5hJyxcblxuICAgICAgICAvKipcbiAgICAgICAgICogTnVtZXJpYyBpbnB1dCwgaW5jbHVkaW5nIGtleXMgZm9yIHRoZSBkaWdpdHMgMCB0byA5LCB0aGUgdXNlcidzIHByZWZlcnJlZCB0aG91c2FuZHMgc2VwYXJhdG9yIGNoYXJhY3RlciwgYW5kIHRoZSBjaGFyYWN0ZXIgZm9yIGluZGljYXRpbmcgbmVnYXRpdmUgbnVtYmVycy4gSW50ZW5kZWQgZm9yIG51bWVyaWMgY29kZXMgKGUuZy4gY3JlZGl0IGNhcmQgbnVtYmVycykuIEZvciBhY3R1YWwgbnVtYmVycywgcHJlZmVyIHVzaW5nIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgKi9cbiAgICAgICAgJ251bWVyaWMnLFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUZWxlcGhvbmUgaW5wdXQsIGluY2x1ZGluZyBhc3RlcmlzayBhbmQgcG91bmQga2V5LiBVc2UgdHlwZT1cInRlbFwiIGlmIHBvc3NpYmxlIGluc3RlYWQuXG4gICAgICAgICAqL1xuICAgICAgICAndGVsJyxcblxuICAgICAgICAvKipcbiAgICAgICAgICogRW1haWwgaW5wdXQuIFVzZSB0eXBlPVwiZW1haWxcIiBpZiBwb3NzaWJsZSBpbnN0ZWFkLlxuICAgICAgICAgKi9cbiAgICAgICAgJ2VtYWlsJyxcblxuICAgICAgICAvKipcbiAgICAgICAgICogVVJMIGlucHV0LiBVc2UgdHlwZT1cInVybFwiIGlmIHBvc3NpYmxlIGluc3RlYWQuXG4gICAgICAgICAqL1xuICAgICAgICAndXJsJyxcbiAgICBdKSxcblxuICAgIC8qKlxuICAgICAqIElkZW50aWZpZXMgYSBsaXN0IG9mIHByZS1kZWZpbmVkIG9wdGlvbnMgdG8gc3VnZ2VzdCB0byB0aGUgdXNlci5cbiAgICAgKiBUaGUgdmFsdWUgbXVzdCBiZSB0aGUgaWQgb2YgYSA8ZGF0YWxpc3Q+IGVsZW1lbnQgaW4gdGhlIHNhbWUgZG9jdW1lbnQuXG4gICAgICogVGhlIGJyb3dzZXIgZGlzcGxheXMgb25seSBvcHRpb25zIHRoYXQgYXJlIHZhbGlkIHZhbHVlcyBmb3IgdGhpc1xuICAgICAqIGlucHV0IGVsZW1lbnQuXG4gICAgICogVGhpcyBhdHRyaWJ1dGUgaXMgaWdub3JlZCB3aGVuIHRoZSB0eXBlIGF0dHJpYnV0ZSdzIHZhbHVlIGlzXG4gICAgICogaGlkZGVuLCBjaGVja2JveCwgcmFkaW8sIGZpbGUsIG9yIGEgYnV0dG9uIHR5cGUuXG4gICAgICovXG4gICAgbGlzdDogUHJvcFR5cGVzLnN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIFRoZSBtYXhpbXVtIChudW1lcmljIG9yIGRhdGUtdGltZSkgdmFsdWUgZm9yIHRoaXMgaXRlbSwgd2hpY2ggbXVzdCBub3QgYmUgbGVzcyB0aGFuIGl0cyBtaW5pbXVtIChtaW4gYXR0cmlidXRlKSB2YWx1ZS5cbiAgICAgKi9cbiAgICBtYXg6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBJZiB0aGUgdmFsdWUgb2YgdGhlIHR5cGUgYXR0cmlidXRlIGlzIHRleHQsIGVtYWlsLCBzZWFyY2gsIHBhc3N3b3JkLCB0ZWwsIG9yIHVybCwgdGhpcyBhdHRyaWJ1dGUgc3BlY2lmaWVzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIChpbiBVVEYtMTYgY29kZSB1bml0cykgdGhhdCB0aGUgdXNlciBjYW4gZW50ZXIuIEZvciBvdGhlciBjb250cm9sIHR5cGVzLCBpdCBpcyBpZ25vcmVkLiBJdCBjYW4gZXhjZWVkIHRoZSB2YWx1ZSBvZiB0aGUgc2l6ZSBhdHRyaWJ1dGUuIElmIGl0IGlzIG5vdCBzcGVjaWZpZWQsIHRoZSB1c2VyIGNhbiBlbnRlciBhbiB1bmxpbWl0ZWQgbnVtYmVyIG9mIGNoYXJhY3RlcnMuIFNwZWNpZnlpbmcgYSBuZWdhdGl2ZSBudW1iZXIgcmVzdWx0cyBpbiB0aGUgZGVmYXVsdCBiZWhhdmlvciAoaS5lLiB0aGUgdXNlciBjYW4gZW50ZXIgYW4gdW5saW1pdGVkIG51bWJlciBvZiBjaGFyYWN0ZXJzKS4gVGhlIGNvbnN0cmFpbnQgaXMgZXZhbHVhdGVkIG9ubHkgd2hlbiB0aGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZSBoYXMgYmVlbiBjaGFuZ2VkLlxuICAgICAqL1xuICAgIG1heGxlbmd0aDogUHJvcFR5cGVzLnN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIFRoZSBtaW5pbXVtIChudW1lcmljIG9yIGRhdGUtdGltZSkgdmFsdWUgZm9yIHRoaXMgaXRlbSwgd2hpY2ggbXVzdCBub3QgYmUgZ3JlYXRlciB0aGFuIGl0cyBtYXhpbXVtIChtYXggYXR0cmlidXRlKSB2YWx1ZS5cbiAgICAgKi9cbiAgICBtaW46IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBJZiB0aGUgdmFsdWUgb2YgdGhlIHR5cGUgYXR0cmlidXRlIGlzIHRleHQsIGVtYWlsLCBzZWFyY2gsIHBhc3N3b3JkLCB0ZWwsIG9yIHVybCwgdGhpcyBhdHRyaWJ1dGUgc3BlY2lmaWVzIHRoZSBtaW5pbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIChpbiBVbmljb2RlIGNvZGUgcG9pbnRzKSB0aGF0IHRoZSB1c2VyIGNhbiBlbnRlci4gRm9yIG90aGVyIGNvbnRyb2wgdHlwZXMsIGl0IGlzIGlnbm9yZWQuXG4gICAgICovXG4gICAgbWlubGVuZ3RoOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gICAgLyoqXG4gICAgICogVGhpcyBCb29sZWFuIGF0dHJpYnV0ZSBpbmRpY2F0ZXMgd2hldGhlciB0aGUgdXNlciBjYW4gZW50ZXIgbW9yZSB0aGFuIG9uZSB2YWx1ZS4gVGhpcyBhdHRyaWJ1dGUgYXBwbGllcyB3aGVuIHRoZSB0eXBlIGF0dHJpYnV0ZSBpcyBzZXQgdG8gZW1haWwgb3IgZmlsZSwgb3RoZXJ3aXNlIGl0IGlzIGlnbm9yZWQuXG4gICAgICovXG4gICAgbXVsdGlwbGU6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgY29udHJvbCwgd2hpY2ggaXMgc3VibWl0dGVkIHdpdGggdGhlIGZvcm0gZGF0YS5cbiAgICAgKi9cbiAgICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gICAgLyoqXG4gICAgICogQSByZWd1bGFyIGV4cHJlc3Npb24gdGhhdCB0aGUgY29udHJvbCdzIHZhbHVlIGlzIGNoZWNrZWQgYWdhaW5zdC4gVGhlIHBhdHRlcm4gbXVzdCBtYXRjaCB0aGUgZW50aXJlIHZhbHVlLCBub3QganVzdCBzb21lIHN1YnNldC4gVXNlIHRoZSB0aXRsZSBhdHRyaWJ1dGUgdG8gZGVzY3JpYmUgdGhlIHBhdHRlcm4gdG8gaGVscCB0aGUgdXNlci4gVGhpcyBhdHRyaWJ1dGUgYXBwbGllcyB3aGVuIHRoZSB2YWx1ZSBvZiB0aGUgdHlwZSBhdHRyaWJ1dGUgaXMgdGV4dCwgc2VhcmNoLCB0ZWwsIHVybCwgZW1haWwsIG9yIHBhc3N3b3JkLCBvdGhlcndpc2UgaXQgaXMgaWdub3JlZC4gVGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBsYW5ndWFnZSBpcyB0aGUgc2FtZSBhcyBKYXZhU2NyaXB0IFJlZ0V4cCBhbGdvcml0aG0sIHdpdGggdGhlICd1JyBwYXJhbWV0ZXIgdGhhdCBtYWtlcyBpdCB0cmVhdCB0aGUgcGF0dGVybiBhcyBhIHNlcXVlbmNlIG9mIHVuaWNvZGUgY29kZSBwb2ludHMuIFRoZSBwYXR0ZXJuIGlzIG5vdCBzdXJyb3VuZGVkIGJ5IGZvcndhcmQgc2xhc2hlcy5cbiAgICAgKi9cbiAgICBwYXR0ZXJuOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gICAgLyoqXG4gICAgICogQSBoaW50IHRvIHRoZSB1c2VyIG9mIHdoYXQgY2FuIGJlIGVudGVyZWQgaW4gdGhlIGNvbnRyb2wgLiBUaGUgcGxhY2Vob2xkZXIgdGV4dCBtdXN0IG5vdCBjb250YWluIGNhcnJpYWdlIHJldHVybnMgb3IgbGluZS1mZWVkcy4gTm90ZTogRG8gbm90IHVzZSB0aGUgcGxhY2Vob2xkZXIgYXR0cmlidXRlIGluc3RlYWQgb2YgYSA8bGFiZWw+IGVsZW1lbnQsIHRoZWlyIHB1cnBvc2VzIGFyZSBkaWZmZXJlbnQuIFRoZSA8bGFiZWw+IGF0dHJpYnV0ZSBkZXNjcmliZXMgdGhlIHJvbGUgb2YgdGhlIGZvcm0gZWxlbWVudCAoaS5lLiBpdCBpbmRpY2F0ZXMgd2hhdCBraW5kIG9mIGluZm9ybWF0aW9uIGlzIGV4cGVjdGVkKSwgYW5kIHRoZSBwbGFjZWhvbGRlciBhdHRyaWJ1dGUgaXMgYSBoaW50IGFib3V0IHRoZSBmb3JtYXQgdGhhdCB0aGUgY29udGVudCBzaG91bGQgdGFrZS4gVGhlcmUgYXJlIGNhc2VzIGluIHdoaWNoIHRoZSBwbGFjZWhvbGRlciBhdHRyaWJ1dGUgaXMgbmV2ZXIgZGlzcGxheWVkIHRvIHRoZSB1c2VyLCBzbyB0aGUgZm9ybSBtdXN0IGJlIHVuZGVyc3RhbmRhYmxlIHdpdGhvdXQgaXQuXG4gICAgICovXG4gICAgcGxhY2Vob2xkZXI6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGF0dHJpYnV0ZSBpbmRpY2F0ZXMgdGhhdCB0aGUgdXNlciBjYW5ub3QgbW9kaWZ5IHRoZSB2YWx1ZSBvZiB0aGUgY29udHJvbC4gVGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUgaXMgaXJyZWxldmFudC4gSWYgeW91IG5lZWQgcmVhZC13cml0ZSBhY2Nlc3MgdG8gdGhlIGlucHV0IHZhbHVlLCBkbyBub3QgYWRkIHRoZSBcInJlYWRvbmx5XCIgYXR0cmlidXRlLiBJdCBpcyBpZ25vcmVkIGlmIHRoZSB2YWx1ZSBvZiB0aGUgdHlwZSBhdHRyaWJ1dGUgaXMgaGlkZGVuLCByYW5nZSwgY29sb3IsIGNoZWNrYm94LCByYWRpbywgZmlsZSwgb3IgYSBidXR0b24gdHlwZSAoc3VjaCBhcyBidXR0b24gb3Igc3VibWl0KS5cbiAgICAgKi9cbiAgICByZWFkT25seTogUHJvcFR5cGVzLnN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIFRoaXMgYXR0cmlidXRlIHNwZWNpZmllcyB0aGF0IHRoZSB1c2VyIG11c3QgZmlsbCBpbiBhIHZhbHVlIGJlZm9yZSBzdWJtaXR0aW5nIGEgZm9ybS4gSXQgY2Fubm90IGJlIHVzZWQgd2hlbiB0aGUgdHlwZSBhdHRyaWJ1dGUgaXMgaGlkZGVuLCBpbWFnZSwgb3IgYSBidXR0b24gdHlwZSAoc3VibWl0LCByZXNldCwgb3IgYnV0dG9uKS4gVGhlIDpvcHRpb25hbCBhbmQgOnJlcXVpcmVkIENTUyBwc2V1ZG8tY2xhc3NlcyB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIGZpZWxkIGFzIGFwcHJvcHJpYXRlLlxuICAgICAqL1xuICAgIHJlcXVpcmVkOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gICAgLyoqXG4gICAgICogVGhlIGRpcmVjdGlvbiBpbiB3aGljaCBzZWxlY3Rpb24gb2NjdXJyZWQuIFRoaXMgaXMgXCJmb3J3YXJkXCIgaWYgdGhlIHNlbGVjdGlvbiB3YXMgbWFkZSBmcm9tIGxlZnQtdG8tcmlnaHQgaW4gYW4gTFRSIGxvY2FsZSBvciByaWdodC10by1sZWZ0IGluIGFuIFJUTCBsb2NhbGUsIG9yIFwiYmFja3dhcmRcIiBpZiB0aGUgc2VsZWN0aW9uIHdhcyBtYWRlIGluIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24uIE9uIHBsYXRmb3JtcyBvbiB3aGljaCBpdCdzIHBvc3NpYmxlIHRoaXMgdmFsdWUgaXNuJ3Qga25vd24sIHRoZSB2YWx1ZSBjYW4gYmUgXCJub25lXCI7IGZvciBleGFtcGxlLCBvbiBtYWNPUywgdGhlIGRlZmF1bHQgZGlyZWN0aW9uIGlzIFwibm9uZVwiLCB0aGVuIGFzIHRoZSB1c2VyIGJlZ2lucyB0byBtb2RpZnkgdGhlIHNlbGVjdGlvbiB1c2luZyB0aGUga2V5Ym9hcmQsIHRoaXMgd2lsbCBjaGFuZ2UgdG8gcmVmbGVjdCB0aGUgZGlyZWN0aW9uIGluIHdoaWNoIHRoZSBzZWxlY3Rpb24gaXMgZXhwYW5kaW5nLlxuICAgICAqL1xuICAgIHNlbGVjdGlvbkRpcmVjdGlvbjogUHJvcFR5cGVzLnN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIFRoZSBvZmZzZXQgaW50byB0aGUgZWxlbWVudCdzIHRleHQgY29udGVudCBvZiB0aGUgbGFzdCBzZWxlY3RlZCBjaGFyYWN0ZXIuIElmIHRoZXJlJ3Mgbm8gc2VsZWN0aW9uLCB0aGlzIHZhbHVlIGluZGljYXRlcyB0aGUgb2Zmc2V0IHRvIHRoZSBjaGFyYWN0ZXIgZm9sbG93aW5nIHRoZSBjdXJyZW50IHRleHQgaW5wdXQgY3Vyc29yIHBvc2l0aW9uICh0aGF0IGlzLCB0aGUgcG9zaXRpb24gdGhlIG5leHQgY2hhcmFjdGVyIHR5cGVkIHdvdWxkIG9jY3VweSkuXG4gICAgICovXG4gICAgc2VsZWN0aW9uRW5kOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gICAgLyoqXG4gICAgICogVGhlIG9mZnNldCBpbnRvIHRoZSBlbGVtZW50J3MgdGV4dCBjb250ZW50IG9mIHRoZSBmaXJzdCBzZWxlY3RlZCBjaGFyYWN0ZXIuIElmIHRoZXJlJ3Mgbm8gc2VsZWN0aW9uLCB0aGlzIHZhbHVlIGluZGljYXRlcyB0aGUgb2Zmc2V0IHRvIHRoZSBjaGFyYWN0ZXIgZm9sbG93aW5nIHRoZSBjdXJyZW50IHRleHQgaW5wdXQgY3Vyc29yIHBvc2l0aW9uICh0aGF0IGlzLCB0aGUgcG9zaXRpb24gdGhlIG5leHQgY2hhcmFjdGVyIHR5cGVkIHdvdWxkIG9jY3VweSkuXG4gICAgICovXG4gICAgc2VsZWN0aW9uU3RhcnQ6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBUaGUgaW5pdGlhbCBzaXplIG9mIHRoZSBjb250cm9sLiBUaGlzIHZhbHVlIGlzIGluIHBpeGVscyB1bmxlc3MgdGhlIHZhbHVlIG9mIHRoZSB0eXBlIGF0dHJpYnV0ZSBpcyB0ZXh0IG9yIHBhc3N3b3JkLCBpbiB3aGljaCBjYXNlIGl0IGlzIGFuIGludGVnZXIgbnVtYmVyIG9mIGNoYXJhY3RlcnMuIFN0YXJ0aW5nIGluLCB0aGlzIGF0dHJpYnV0ZSBhcHBsaWVzIG9ubHkgd2hlbiB0aGUgdHlwZSBhdHRyaWJ1dGUgaXMgc2V0IHRvIHRleHQsIHNlYXJjaCwgdGVsLCB1cmwsIGVtYWlsLCBvciBwYXNzd29yZCwgb3RoZXJ3aXNlIGl0IGlzIGlnbm9yZWQuIEluIGFkZGl0aW9uLCB0aGUgc2l6ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLiBJZiB5b3UgZG8gbm90IHNwZWNpZnkgYSBzaXplLCBhIGRlZmF1bHQgdmFsdWUgb2YgMjAgaXMgdXNlZC4nIHNpbXBseSBzdGF0ZXMgXCJ0aGUgdXNlciBhZ2VudCBzaG91bGQgZW5zdXJlIHRoYXQgYXQgbGVhc3QgdGhhdCBtYW55IGNoYXJhY3RlcnMgYXJlIHZpc2libGVcIiwgYnV0IGRpZmZlcmVudCBjaGFyYWN0ZXJzIGNhbiBoYXZlIGRpZmZlcmVudCB3aWR0aHMgaW4gY2VydGFpbiBmb250cy4gSW4gc29tZSBicm93c2VycywgYSBjZXJ0YWluIHN0cmluZyB3aXRoIHggY2hhcmFjdGVycyB3aWxsIG5vdCBiZSBlbnRpcmVseSB2aXNpYmxlIGV2ZW4gaWYgc2l6ZSBpcyBkZWZpbmVkIHRvIGF0IGxlYXN0IHguXG4gICAgICovXG4gICAgc2l6ZTogUHJvcFR5cGVzLnN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIFNldHRpbmcgdGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIHRvIHRydWUgaW5kaWNhdGVzIHRoYXQgdGhlIGVsZW1lbnQgbmVlZHMgdG8gaGF2ZSBpdHMgc3BlbGxpbmcgYW5kIGdyYW1tYXIgY2hlY2tlZC4gVGhlIHZhbHVlIGRlZmF1bHQgaW5kaWNhdGVzIHRoYXQgdGhlIGVsZW1lbnQgaXMgdG8gYWN0IGFjY29yZGluZyB0byBhIGRlZmF1bHQgYmVoYXZpb3IsIHBvc3NpYmx5IGJhc2VkIG9uIHRoZSBwYXJlbnQgZWxlbWVudCdzIG93biBzcGVsbGNoZWNrIHZhbHVlLiBUaGUgdmFsdWUgZmFsc2UgaW5kaWNhdGVzIHRoYXQgdGhlIGVsZW1lbnQgc2hvdWxkIG5vdCBiZSBjaGVja2VkLlxuICAgICAqL1xuICAgIHNwZWxsY2hlY2s6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBXb3JrcyB3aXRoIHRoZSBtaW4gYW5kIG1heCBhdHRyaWJ1dGVzIHRvIGxpbWl0IHRoZSBpbmNyZW1lbnRzIGF0IHdoaWNoIGEgbnVtZXJpYyBvciBkYXRlLXRpbWUgdmFsdWUgY2FuIGJlIHNldC4gSXQgY2FuIGJlIHRoZSBzdHJpbmcgYW55IG9yIGEgcG9zaXRpdmUgZmxvYXRpbmcgcG9pbnQgbnVtYmVyLiBJZiB0aGlzIGF0dHJpYnV0ZSBpcyBub3Qgc2V0IHRvIGFueSwgdGhlIGNvbnRyb2wgYWNjZXB0cyBvbmx5IHZhbHVlcyBhdCBtdWx0aXBsZXMgb2YgdGhlIHN0ZXAgdmFsdWUgZ3JlYXRlciB0aGFuIHRoZSBtaW5pbXVtLlxuICAgICAqL1xuICAgIHN0ZXA6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBOdW1iZXIgb2YgdGltZXMgdGhlIGBFbnRlcmAga2V5IHdhcyBwcmVzc2VkIHdoaWxlIHRoZSBpbnB1dCBoYWQgZm9jdXMuXG4gICAgICovXG4gICAgbl9zdWJtaXQ6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgLyoqXG4gICAgICogTGFzdCB0aW1lIHRoYXQgYEVudGVyYCB3YXMgcHJlc3NlZC5cbiAgICAgKi9cbiAgICBuX3N1Ym1pdF90aW1lc3RhbXA6IFByb3BUeXBlcy5udW1iZXIsXG5cbiAgICAvKipcbiAgICAgKiBOdW1iZXIgb2YgdGltZXMgdGhlIGlucHV0IGxvc3QgZm9jdXMuXG4gICAgICovXG4gICAgbl9ibHVyOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIC8qKlxuICAgICAqIExhc3QgdGltZSB0aGUgaW5wdXQgbG9zdCBmb2N1cy5cbiAgICAgKi9cbiAgICBuX2JsdXJfdGltZXN0YW1wOiBQcm9wVHlwZXMubnVtYmVyLFxuXG4gICAgLyoqXG4gICAgICogRGFzaC1hc3NpZ25lZCBjYWxsYmFjayB0aGF0IGdldHMgZmlyZWQgd2hlbiB0aGUgaW5wdXQgY2hhbmdlcy5cbiAgICAgKi9cbiAgICBmaXJlRXZlbnQ6IFByb3BUeXBlcy5mdW5jLFxuXG4gICAgLyoqXG4gICAgICogRGFzaC1hc3NpZ25lZCBjYWxsYmFjayB0aGF0IGdldHMgZmlyZWQgd2hlbiB0aGUgdmFsdWUgY2hhbmdlcy5cbiAgICAgKi9cbiAgICBzZXRQcm9wczogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgICBkYXNoRXZlbnRzOiBQcm9wVHlwZXMub25lT2YoWydibHVyJywgJ2NoYW5nZSddKSxcbn07XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Input.react.js\n");
+eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(/*! react */ \"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _ramda = __webpack_require__(/*! ramda */ \"./node_modules/ramda/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * A basic HTML input control for entering text, numbers, or passwords.\n *\n * Note that checkbox and radio types are supported through\n * the Checklist and RadioItems component. Dates, times, and file uploads\n * are also supported through separate components.\n */\nvar Input = function (_Component) {\n _inherits(Input, _Component);\n\n function Input(props) {\n _classCallCheck(this, Input);\n\n var _this = _possibleConstructorReturn(this, (Input.__proto__ || Object.getPrototypeOf(Input)).call(this, props));\n\n if (!props.setProps || props.debounce) {\n _this.state = { value: props.value };\n }\n return _this;\n }\n\n _createClass(Input, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if (this.props.setProps) {\n this.props = nextProps;\n if (this.props.debounce) {\n this.setState({\n value: nextProps.value\n });\n }\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n fireEvent = _props.fireEvent,\n setProps = _props.setProps,\n type = _props.type,\n min = _props.min,\n max = _props.max,\n debounce = _props.debounce;\n\n var _ref = setProps ? debounce ? this.state : this.props : this.state,\n value = _ref.value;\n\n return _react2.default.createElement('input', _extends({\n onChange: function onChange(e) {\n var newValue = e.target.value;\n if (!(0, _ramda.isEmpty)(min) && Number(newValue) < min || !(0, _ramda.isEmpty)(max) && Number(newValue) > max) {\n return;\n }\n if (fireEvent) {\n fireEvent({ event: 'change' });\n }\n if (!debounce && setProps) {\n var castValue = type === 'number' ? Number(newValue) : newValue;\n setProps({\n value: castValue\n });\n } else {\n _this2.setState({ value: newValue });\n }\n },\n onBlur: function onBlur() {\n if (fireEvent) {\n fireEvent({ event: 'blur' });\n }\n if (setProps) {\n var castValue = type === 'number' ? Number(value) : value;\n setProps({\n n_blur: _this2.props.n_blur + 1,\n n_blur_timestamp: new Date(),\n value: castValue\n });\n }\n },\n onKeyPress: function onKeyPress(e) {\n if (setProps && e.key === 'Enter') {\n var castValue = type === 'number' ? Number(value) : value;\n setProps({\n n_submit: _this2.props.n_submit + 1,\n n_submit_timestamp: new Date(),\n value: castValue\n });\n }\n },\n value: value\n }, (0, _ramda.omit)(['debounce', 'fireEvent', 'value', 'n_blur', 'n_blur_timestamp', 'n_submit', 'n_submit_timestamp', 'selectionDirection', 'selectionEnd', 'selectionStart', 'setProps'], this.props)));\n }\n }]);\n\n return Input;\n}(_react.Component);\n\nexports.default = Input;\n\n\nInput.defaultProps = {\n n_blur: 0,\n n_blur_timestamp: -1,\n n_submit: 0,\n n_submit_timestamp: -1,\n debounce: false\n};\n\nInput.propTypes = {\n /**\n * The ID of this component, used to identify dash components\n * in callbacks. The ID needs to be unique across all of the\n * components in an app.\n */\n id: _propTypes2.default.string,\n\n /**\n * The value of the input\n */\n value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n\n /**\n * The input's inline styles\n */\n style: _propTypes2.default.object,\n\n /**\n * The class of the input element\n */\n className: _propTypes2.default.string,\n\n /**\n * If true, changes to input will be sent back to the Dash server only on enter or when losing focus.\n * If it's false, it will sent the value back on every change.\n */\n debounce: _propTypes2.default.bool,\n\n /**\n * The type of control to render.\n */\n type: _propTypes2.default.oneOf([\n // Only allowing the input types with wide browser compatibility\n 'text', 'number', 'password', 'email', 'range', 'search', 'tel', 'url', 'hidden']),\n\n /**\n * This attribute indicates whether the value of the control can be automatically completed by the browser.\n */\n autocomplete: _propTypes2.default.string,\n\n /**\n * The element should be automatically focused after the page loaded.\n */\n autofocus: _propTypes2.default.string,\n\n /**\n * If true, the input is disabled and can't be clicked on.\n */\n disabled: _propTypes2.default.bool,\n\n inputmode: _propTypes2.default.oneOf([\n /**\n * Alphanumeric, non-prose content such as usernames and passwords.\n */\n 'verbatim',\n\n /**\n * Latin-script input in the user's preferred language with typing aids such as text prediction enabled. For human-to-computer communication such as search boxes.\n */\n 'latin',\n\n /**\n * As latin, but for human names.\n */\n 'latin-name',\n\n /**\n * As latin, but with more aggressive typing aids. For human-to-human communication such as instant messaging or email.\n */\n 'latin-prose',\n\n /**\n * As latin-prose, but for the user's secondary languages.\n */\n 'full-width-latin',\n\n /**\n * Kana or romaji input, typically hiragana input, using full-width characters, with support for converting to kanji. Intended for Japanese text input.\n */\n 'kana',\n\n /**\n * Katakana input, using full-width characters, with support for converting to kanji. Intended for Japanese text input.\n */\n 'katakana',\n\n /**\n * Numeric input, including keys for the digits 0 to 9, the user's preferred thousands separator character, and the character for indicating negative numbers. Intended for numeric codes (e.g. credit card numbers). For actual numbers, prefer using type=\"number\"\n */\n 'numeric',\n\n /**\n * Telephone input, including asterisk and pound key. Use type=\"tel\" if possible instead.\n */\n 'tel',\n\n /**\n * Email input. Use type=\"email\" if possible instead.\n */\n 'email',\n\n /**\n * URL input. Use type=\"url\" if possible instead.\n */\n 'url']),\n\n /**\n * Identifies a list of pre-defined options to suggest to the user.\n * The value must be the id of a element in the same document.\n * The browser displays only options that are valid values for this\n * input element.\n * This attribute is ignored when the type attribute's value is\n * hidden, checkbox, radio, file, or a button type.\n */\n list: _propTypes2.default.string,\n\n /**\n * The maximum (numeric or date-time) value for this item, which must not be less than its minimum (min attribute) value.\n */\n max: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n\n /**\n * If the value of the type attribute is text, email, search, password, tel, or url, this attribute specifies the maximum number of characters (in UTF-16 code units) that the user can enter. For other control types, it is ignored. It can exceed the value of the size attribute. If it is not specified, the user can enter an unlimited number of characters. Specifying a negative number results in the default behavior (i.e. the user can enter an unlimited number of characters). The constraint is evaluated only when the value of the attribute has been changed.\n */\n maxlength: _propTypes2.default.string,\n\n /**\n * The minimum (numeric or date-time) value for this item, which must not be greater than its maximum (max attribute) value.\n */\n min: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n\n /**\n * If the value of the type attribute is text, email, search, password, tel, or url, this attribute specifies the minimum number of characters (in Unicode code points) that the user can enter. For other control types, it is ignored.\n */\n minlength: _propTypes2.default.string,\n\n /**\n * This Boolean attribute indicates whether the user can enter more than one value. This attribute applies when the type attribute is set to email or file, otherwise it is ignored.\n */\n multiple: _propTypes2.default.bool,\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n name: _propTypes2.default.string,\n\n /**\n * A regular expression that the control's value is checked against. The pattern must match the entire value, not just some subset. Use the title attribute to describe the pattern to help the user. This attribute applies when the value of the type attribute is text, search, tel, url, email, or password, otherwise it is ignored. The regular expression language is the same as JavaScript RegExp algorithm, with the 'u' parameter that makes it treat the pattern as a sequence of unicode code points. The pattern is not surrounded by forward slashes.\n */\n pattern: _propTypes2.default.string,\n\n /**\n * A hint to the user of what can be entered in the control . The placeholder text must not contain carriage returns or line-feeds. Note: Do not use the placeholder attribute instead of a element, their purposes are different. The attribute describes the role of the form element (i.e. it indicates what kind of information is expected), and the placeholder attribute is a hint about the format that the content should take. There are cases in which the placeholder attribute is never displayed to the user, so the form must be understandable without it.\n */\n placeholder: _propTypes2.default.string,\n\n /**\n * This attribute indicates that the user cannot modify the value of the control. The value of the attribute is irrelevant. If you need read-write access to the input value, do not add the \"readonly\" attribute. It is ignored if the value of the type attribute is hidden, range, color, checkbox, radio, file, or a button type (such as button or submit).\n */\n readOnly: _propTypes2.default.string,\n\n /**\n * This attribute specifies that the user must fill in a value before submitting a form. It cannot be used when the type attribute is hidden, image, or a button type (submit, reset, or button). The :optional and :required CSS pseudo-classes will be applied to the field as appropriate.\n */\n required: _propTypes2.default.string,\n\n /**\n * The direction in which selection occurred. This is \"forward\" if the selection was made from left-to-right in an LTR locale or right-to-left in an RTL locale, or \"backward\" if the selection was made in the opposite direction. On platforms on which it's possible this value isn't known, the value can be \"none\"; for example, on macOS, the default direction is \"none\", then as the user begins to modify the selection using the keyboard, this will change to reflect the direction in which the selection is expanding.\n */\n selectionDirection: _propTypes2.default.string,\n\n /**\n * The offset into the element's text content of the last selected character. If there's no selection, this value indicates the offset to the character following the current text input cursor position (that is, the position the next character typed would occupy).\n */\n selectionEnd: _propTypes2.default.string,\n\n /**\n * The offset into the element's text content of the first selected character. If there's no selection, this value indicates the offset to the character following the current text input cursor position (that is, the position the next character typed would occupy).\n */\n selectionStart: _propTypes2.default.string,\n\n /**\n * The initial size of the control. This value is in pixels unless the value of the type attribute is text or password, in which case it is an integer number of characters. Starting in, this attribute applies only when the type attribute is set to text, search, tel, url, email, or password, otherwise it is ignored. In addition, the size must be greater than zero. If you do not specify a size, a default value of 20 is used.' simply states \"the user agent should ensure that at least that many characters are visible\", but different characters can have different widths in certain fonts. In some browsers, a certain string with x characters will not be entirely visible even if size is defined to at least x.\n */\n size: _propTypes2.default.string,\n\n /**\n * Setting the value of this attribute to true indicates that the element needs to have its spelling and grammar checked. The value default indicates that the element is to act according to a default behavior, possibly based on the parent element's own spellcheck value. The value false indicates that the element should not be checked.\n */\n spellCheck: _propTypes2.default.string,\n\n /**\n * Works with the min and max attributes to limit the increments at which a numeric or date-time value can be set. It can be the string any or a positive floating point number. If this attribute is not set to any, the control accepts only values at multiples of the step value greater than the minimum.\n */\n step: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n\n /**\n * Number of times the `Enter` key was pressed while the input had focus.\n */\n n_submit: _propTypes2.default.number,\n /**\n * Last time that `Enter` was pressed.\n */\n n_submit_timestamp: _propTypes2.default.number,\n\n /**\n * Number of times the input lost focus.\n */\n n_blur: _propTypes2.default.number,\n /**\n * Last time the input lost focus.\n */\n n_blur_timestamp: _propTypes2.default.number,\n\n /**\n * Dash-assigned callback that gets fired when the input changes.\n */\n fireEvent: _propTypes2.default.func,\n\n /**\n * Dash-assigned callback that gets fired when the value changes.\n */\n setProps: _propTypes2.default.func,\n\n dashEvents: _propTypes2.default.oneOf(['blur', 'change'])\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9kYXNoX2NvcmVfY29tcG9uZW50cy8uL3NyYy9jb21wb25lbnRzL0lucHV0LnJlYWN0LmpzPzc0M2YiXSwibmFtZXMiOlsiSW5wdXQiLCJwcm9wcyIsInNldFByb3BzIiwiZGVib3VuY2UiLCJzdGF0ZSIsInZhbHVlIiwibmV4dFByb3BzIiwic2V0U3RhdGUiLCJmaXJlRXZlbnQiLCJ0eXBlIiwibWluIiwibWF4IiwibmV3VmFsdWUiLCJlIiwidGFyZ2V0IiwiTnVtYmVyIiwiZXZlbnQiLCJjYXN0VmFsdWUiLCJuX2JsdXIiLCJuX2JsdXJfdGltZXN0YW1wIiwiRGF0ZSIsImtleSIsIm5fc3VibWl0Iiwibl9zdWJtaXRfdGltZXN0YW1wIiwiZGVmYXVsdFByb3BzIiwicHJvcFR5cGVzIiwiaWQiLCJzdHJpbmciLCJvbmVPZlR5cGUiLCJudW1iZXIiLCJzdHlsZSIsIm9iamVjdCIsImNsYXNzTmFtZSIsImJvb2wiLCJvbmVPZiIsImF1dG9jb21wbGV0ZSIsImF1dG9mb2N1cyIsImRpc2FibGVkIiwiaW5wdXRtb2RlIiwibGlzdCIsIm1heGxlbmd0aCIsIm1pbmxlbmd0aCIsIm11bHRpcGxlIiwibmFtZSIsInBhdHRlcm4iLCJwbGFjZWhvbGRlciIsInJlYWRPbmx5IiwicmVxdWlyZWQiLCJzZWxlY3Rpb25EaXJlY3Rpb24iLCJzZWxlY3Rpb25FbmQiLCJzZWxlY3Rpb25TdGFydCIsInNpemUiLCJzcGVsbENoZWNrIiwic3RlcCIsImZ1bmMiLCJkYXNoRXZlbnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7Ozs7O0FBRUE7Ozs7Ozs7SUFPcUJBLEs7OztBQUNqQixpQkFBWUMsS0FBWixFQUFtQjtBQUFBOztBQUFBLDhHQUNUQSxLQURTOztBQUVmLFFBQUksQ0FBQ0EsTUFBTUMsUUFBUCxJQUFtQkQsTUFBTUUsUUFBN0IsRUFBdUM7QUFDbkMsWUFBS0MsS0FBTCxHQUFhLEVBQUNDLE9BQU9KLE1B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T1A7O0FBc09kOzs7QUFHQXBELFlBQVUsb0JBQVVvRCxJQXpPTjs7QUEyT2RDLGNBQVksb0JBQVVyQixLQUFWLENBQWdCLENBQUMsTUFBRCxFQUFTLFFBQVQsQ0FBaEI7QUEzT0UsQ0FBbEIiLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9JbnB1dC5yZWFjdC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge0NvbXBvbmVudH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7b21pdCwgaXNFbXB0eX0gZnJvbSAncmFtZGEnO1xuXG4vKipcbiAqIEEgYmFzaWMgSFRNTCBpbnB1dCBjb250cm9sIGZvciBlbnRlcmluZyB0ZXh0LCBudW1iZXJzLCBvciBwYXNzd29yZHMuXG4gKlxuICogTm90ZSB0aGF0IGNoZWNrYm94IGFuZCByYWRpbyB0eXBlcyBhcmUgc3VwcG9ydGVkIHRocm91Z2hcbiAqIHRoZSBDaGVja2xpc3QgYW5kIFJhZGlvSXRlbXMgY29tcG9uZW50LiBEYXRlcywgdGltZXMsIGFuZCBmaWxlIHVwbG9hZHNcbiAqIGFyZSBhbHNvIHN1cHBvcnRlZCB0aHJvdWdoIHNlcGFyYXRlIGNvbXBvbmVudHMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIElucHV0IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgICAgICBzdXBlcihwcm9wcyk7XG4gICAgICAgIGlmICghcHJvcHMuc2V0UHJvcHMgfHwgcHJvcHMuZGVib3VuY2UpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSB7dmFsdWU6IHByb3BzLnZhbHVlfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLnNldFByb3BzKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzID0gbmV4dFByb3BzO1xuICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMuZGVib3VuY2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG5leHRQcm9wcy52YWx1ZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3Qge2ZpcmVFdmVudCwgc2V0UHJvcHMsIHR5cGUsIG1pbiwgbWF4LCBkZWJvdW5jZX0gPSB0aGlzLnByb3BzO1xuICAgICAgICBjb25zdCB7dmFsdWV9ID0gc2V0UHJvcHNcbiAgICAgICAgICAgID8gZGVib3VuY2VcbiAgICAgICAgICAgICAgICA/IHRoaXMuc3RhdGVcbiAgICAgICAgICAgICAgICA6IHRoaXMucHJvcHNcbiAgICAgICAgICAgIDogdGhpcy5zdGF0ZTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgKCFpc0VtcHR5KG1pbikgJiYgTnVtYmVyKG5ld1ZhbHVlKSA8IG1pbikgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICghaXNFbXB0eShtYXgpICYmIE51bWJlcihuZXdWYWx1ZSkgPiBtYXgpXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaXJlRXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVFdmVudCh7ZXZlbnQ6ICdjaGFuZ2UnfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFkZWJvdW5jZSAmJiBzZXRQcm9wcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FzdFZhbHVlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID09PSAnbnVtYmVyJyA/IE51bWJlcihuZXdWYWx1ZSkgOiBuZXdWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFByb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogY2FzdFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHt2YWx1ZTogbmV3VmFsdWV9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25CbHVyPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaXJlRXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcmVFdmVudCh7ZXZlbnQ6ICdibHVyJ30pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZXRQcm9wcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FzdFZhbHVlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID09PSAnbnVtYmVyJyA/IE51bWJlcih2YWx1ZSkgOiB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFByb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuX2JsdXI6IHRoaXMucHJvcHMubl9ibHVyICsgMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuX2JsdXJfdGltZXN0YW1wOiBuZXcgRGF0ZSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBjYXN0VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25LZXlQcmVzcz17ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZXRQcm9wcyAmJiBlLmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FzdFZhbHVlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID09PSAnbnVtYmVyJyA/IE51bWJlcih2YWx1ZSkgOiB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFByb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuX3N1Ym1pdDogdGhpcy5wcm9wcy5uX3N1Ym1pdCArIDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbl9zdWJtaXRfdGltZXN0YW1wOiBuZXcgRGF0ZSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBjYXN0VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgIHsuLi5vbWl0KFxuICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAnZGVib3VuY2UnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpcmVFdmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAndmFsdWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ25fYmx1cicsXG4gICAgICAgICAgICAgICAgICAgICAgICAnbl9ibHVyX3RpbWVzdGFtcCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAnbl9zdWJtaXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ25fc3VibWl0X3RpbWVzdGFtcCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAnc2VsZWN0aW9uRGlyZWN0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdzZWxlY3Rpb25FbmQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3NlbGVjdGlvblN0YXJ0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdzZXRQcm9wcycsXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHNcbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgKTtcbiAgICB9XG59XG5cbklucHV0LmRlZmF1bHRQcm9wcyA9IHtcbiAgICBuX2JsdXI6IDAsXG4gICAgbl9ibHVyX3RpbWVzdGFtcDogLTEsXG4gICAgbl9zdWJtaXQ6IDAsXG4gICAgbl9zdWJtaXRfdGltZXN0YW1wOiAtMSxcbiAgICBkZWJvdW5jZTogZmFsc2UsXG59O1xuXG5JbnB1dC5wcm9wVHlwZXMgPSB7XG4gICAgLyoqXG4gICAgICogVGhlIElEIG9mIHRoaXMgY29tcG9uZW50LCB1c2VkIHRvIGlkZW50aWZ5IGRhc2ggY29tcG9uZW50c1xuICAgICAqIGluIGNhbGxiYWNrcy4gVGhlIElEIG5lZWRzIHRvIGJlIHVuaXF1ZSBhY3Jvc3MgYWxsIG9mIHRoZVxuICAgICAqIGNvbXBvbmVudHMgaW4gYW4gYXBwLlxuICAgICAqL1xuICAgIGlkOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gICAgLyoqXG4gICAgICogVGhlIHZhbHVlIG9mIHRoZSBpbnB1dFxuICAgICAqL1xuICAgIHZhbHVlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMubnVtYmVyXSksXG5cbiAgICAvKipcbiAgICAgKiBUaGUgaW5wdXQncyBpbmxpbmUgc3R5bGVzXG4gICAgICovXG4gICAgc3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG5cbiAgICAvKipcbiAgICAgKiBUaGUgY2xhc3Mgb2YgdGhlIGlucHV0IGVsZW1lbnRcbiAgICAgKi9cbiAgICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCBjaGFuZ2VzIHRvIGlucHV0IHdpbGwgYmUgc2VudCBiYWNrIHRvIHRoZSBEYXNoIHNlcnZlciBvbmx5IG9uIGVudGVyIG9yIHdoZW4gbG9zaW5nIGZvY3VzLlxuICAgICAqIElmIGl0J3MgZmFsc2UsIGl0IHdpbGwgc2VudCB0aGUgdmFsdWUgYmFjayBvbiBldmVyeSBjaGFuZ2UuXG4gICAgICovXG4gICAgZGVib3VuY2U6IFByb3BUeXBlcy5ib29sLFxuXG4gICAgLyoqXG4gICAgICogVGhlIHR5cGUgb2YgY29udHJvbCB0byByZW5kZXIuXG4gICAgICovXG4gICAgdHlwZTogUHJvcFR5cGVzLm9uZU9mKFtcbiAgICAgICAgLy8gT25seSBhbGxvd2luZyB0aGUgaW5wdXQgdHlwZXMgd2l0aCB3aWRlIGJyb3dzZXIgY29tcGF0aWJpbGl0eVxuICAgICAgICAndGV4dCcsXG4gICAgICAgICdudW1iZXInLFxuICAgICAgICAncGFzc3dvcmQnLFxuICAgICAgICAnZW1haWwnLFxuICAgICAgICAncmFuZ2UnLFxuICAgICAgICAnc2VhcmNoJyxcbiAgICAgICAgJ3RlbCcsXG4gICAgICAgICd1cmwnLFxuICAgICAgICAnaGlkZGVuJyxcbiAgICBdKSxcblxuICAgIC8qKlxuICAgICAqIFRoaXMgYXR0cmlidXRlIGluZGljYXRlcyB3aGV0aGVyIHRoZSB2YWx1ZSBvZiB0aGUgY29udHJvbCBjYW4gYmUgYXV0b21hdGljYWxseSBjb21wbGV0ZWQgYnkgdGhlIGJyb3dzZXIuXG4gICAgICovXG4gICAgYXV0b2NvbXBsZXRlOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gICAgLyoqXG4gICAgICogVGhlIGVsZW1lbnQgc2hvdWxkIGJlIGF1dG9tYXRpY2FsbHkgZm9jdXNlZCBhZnRlciB0aGUgcGFnZSBsb2FkZWQuXG4gICAgICovXG4gICAgYXV0b2ZvY3VzOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgdGhlIGlucHV0IGlzIGRpc2FibGVkIGFuZCBjYW4ndCBiZSBjbGlja2VkIG9uLlxuICAgICAqL1xuICAgIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcblxuICAgIGlucHV0bW9kZTogUHJvcFR5cGVzLm9uZU9mKFtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFscGhhbnVtZXJpYywgbm9uLXByb3NlIGNvbnRlbnQgc3VjaCBhcyB1c2VybmFtZXMgYW5kIHBhc3N3b3Jkcy5cbiAgICAgICAgICovXG4gICAgICAgICd2ZXJiYXRpbScsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIExhdGluLXNjcmlwdCBpbnB1dCBpbiB0aGUgdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZSB3aXRoIHR5cGluZyBhaWRzIHN1Y2ggYXMgdGV4dCBwcmVkaWN0aW9uIGVuYWJsZWQuIEZvciBodW1hbi10by1jb21wdXRlciBjb21tdW5pY2F0aW9uIHN1Y2ggYXMgc2VhcmNoIGJveGVzLlxuICAgICAgICAgKi9cbiAgICAgICAgJ2xhdGluJyxcblxuICAgICAgICAvKipcbiAgICAgICAgICogQXMgbGF0aW4sIGJ1dCBmb3IgaHVtYW4gbmFtZXMuXG4gICAgICAgICAqL1xuICAgICAgICAnbGF0aW4tbmFtZScsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFzIGxhdGluLCBidXQgd2l0aCBtb3JlIGFnZ3Jlc3NpdmUgdHlwaW5nIGFpZHMuIEZvciBodW1hbi10by1odW1hbiBjb21tdW5pY2F0aW9uIHN1Y2ggYXMgaW5zdGFudCBtZXNzYWdpbmcgb3IgZW1haWwuXG4gICAgICAgICAqL1xuICAgICAgICAnbGF0aW4tcHJvc2UnLFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBcyBsYXRpbi1wcm9zZSwgYnV0IGZvciB0aGUgdXNlcidzIHNlY29uZGFyeSBsYW5ndWFnZXMuXG4gICAgICAgICAqL1xuICAgICAgICAnZnVsbC13aWR0aC1sYXRpbicsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEthbmEgb3Igcm9tYWppIGlucHV0LCB0eXBpY2FsbHkgaGlyYWdhbmEgaW5wdXQsIHVzaW5nIGZ1bGwtd2lkdGggY2hhcmFjdGVycywgd2l0aCBzdXBwb3J0IGZvciBjb252ZXJ0aW5nIHRvIGthbmppLiBJbnRlbmRlZCBmb3IgSmFwYW5lc2UgdGV4dCBpbnB1dC5cbiAgICAgICAgICovXG4gICAgICAgICdrYW5hJyxcblxuICAgICAgICAvKipcbiAgICAgICAgICogS2F0YWthbmEgaW5wdXQsIHVzaW5nIGZ1bGwtd2lkdGggY2hhcmFjdGVycywgd2l0aCBzdXBwb3J0IGZvciBjb252ZXJ0aW5nIHRvIGthbmppLiBJbnRlbmRlZCBmb3IgSmFwYW5lc2UgdGV4dCBpbnB1dC5cbiAgICAgICAgICovXG4gICAgICAgICdrYXRha2FuYScsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIE51bWVyaWMgaW5wdXQsIGluY2x1ZGluZyBrZXlzIGZvciB0aGUgZGlnaXRzIDAgdG8gOSwgdGhlIHVzZXIncyBwcmVmZXJyZWQgdGhvdXNhbmRzIHNlcGFyYXRvciBjaGFyYWN0ZXIsIGFuZCB0aGUgY2hhcmFjdGVyIGZvciBpbmRpY2F0aW5nIG5lZ2F0aXZlIG51bWJlcnMuIEludGVuZGVkIGZvciBudW1lcmljIGNvZGVzIChlLmcuIGNyZWRpdCBjYXJkIG51bWJlcnMpLiBGb3IgYWN0dWFsIG51bWJlcnMsIHByZWZlciB1c2luZyB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICovXG4gICAgICAgICdudW1lcmljJyxcblxuICAgICAgICAvKipcbiAgICAgICAgICogVGVsZXBob25lIGlucHV0LCBpbmNsdWRpbmcgYXN0ZXJpc2sgYW5kIHBvdW5kIGtleS4gVXNlIHR5cGU9XCJ0ZWxcIiBpZiBwb3NzaWJsZSBpbnN0ZWFkLlxuICAgICAgICAgKi9cbiAgICAgICAgJ3RlbCcsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEVtYWlsIGlucHV0LiBVc2UgdHlwZT1cImVtYWlsXCIgaWYgcG9zc2libGUgaW5zdGVhZC5cbiAgICAgICAgICovXG4gICAgICAgICdlbWFpbCcsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVSTCBpbnB1dC4gVXNlIHR5cGU9XCJ1cmxcIiBpZiBwb3NzaWJsZSBpbnN0ZWFkLlxuICAgICAgICAgKi9cbiAgICAgICAgJ3VybCcsXG4gICAgXSksXG5cbiAgICAvKipcbiAgICAgKiBJZGVudGlmaWVzIGEgbGlzdCBvZiBwcmUtZGVmaW5lZCBvcHRpb25zIHRvIHN1Z2dlc3QgdG8gdGhlIHVzZXIuXG4gICAgICogVGhlIHZhbHVlIG11c3QgYmUgdGhlIGlkIG9mIGEgPGRhdGFsaXN0PiBlbGVtZW50IGluIHRoZSBzYW1lIGRvY3VtZW50LlxuICAgICAqIFRoZSBicm93c2VyIGRpc3BsYXlzIG9ubHkgb3B0aW9ucyB0aGF0IGFyZSB2YWxpZCB2YWx1ZXMgZm9yIHRoaXNcbiAgICAgKiBpbnB1dCBlbGVtZW50LlxuICAgICAqIFRoaXMgYXR0cmlidXRlIGlzIGlnbm9yZWQgd2hlbiB0aGUgdHlwZSBhdHRyaWJ1dGUncyB2YWx1ZSBpc1xuICAgICAqIGhpZGRlbiwgY2hlY2tib3gsIHJhZGlvLCBmaWxlLCBvciBhIGJ1dHRvbiB0eXBlLlxuICAgICAqL1xuICAgIGxpc3Q6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBUaGUgbWF4aW11bSAobnVtZXJpYyBvciBkYXRlLXRpbWUpIHZhbHVlIGZvciB0aGlzIGl0ZW0sIHdoaWNoIG11c3Qgbm90IGJlIGxlc3MgdGhhbiBpdHMgbWluaW11bSAobWluIGF0dHJpYnV0ZSkgdmFsdWUuXG4gICAgICovXG4gICAgbWF4OiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMubnVtYmVyXSksXG5cbiAgICAvKipcbiAgICAgKiBJZiB0aGUgdmFsdWUgb2YgdGhlIHR5cGUgYXR0cmlidXRlIGlzIHRleHQsIGVtYWlsLCBzZWFyY2gsIHBhc3N3b3JkLCB0ZWwsIG9yIHVybCwgdGhpcyBhdHRyaWJ1dGUgc3BlY2lmaWVzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIChpbiBVVEYtMTYgY29kZSB1bml0cykgdGhhdCB0aGUgdXNlciBjYW4gZW50ZXIuIEZvciBvdGhlciBjb250cm9sIHR5cGVzLCBpdCBpcyBpZ25vcmVkLiBJdCBjYW4gZXhjZWVkIHRoZSB2YWx1ZSBvZiB0aGUgc2l6ZSBhdHRyaWJ1dGUuIElmIGl0IGlzIG5vdCBzcGVjaWZpZWQsIHRoZSB1c2VyIGNhbiBlbnRlciBhbiB1bmxpbWl0ZWQgbnVtYmVyIG9mIGNoYXJhY3RlcnMuIFNwZWNpZnlpbmcgYSBuZWdhdGl2ZSBudW1iZXIgcmVzdWx0cyBpbiB0aGUgZGVmYXVsdCBiZWhhdmlvciAoaS5lLiB0aGUgdXNlciBjYW4gZW50ZXIgYW4gdW5saW1pdGVkIG51bWJlciBvZiBjaGFyYWN0ZXJzKS4gVGhlIGNvbnN0cmFpbnQgaXMgZXZhbHVhdGVkIG9ubHkgd2hlbiB0aGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZSBoYXMgYmVlbiBjaGFuZ2VkLlxuICAgICAqL1xuICAgIG1heGxlbmd0aDogUHJvcFR5cGVzLnN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIFRoZSBtaW5pbXVtIChudW1lcmljIG9yIGRhdGUtdGltZSkgdmFsdWUgZm9yIHRoaXMgaXRlbSwgd2hpY2ggbXVzdCBub3QgYmUgZ3JlYXRlciB0aGFuIGl0cyBtYXhpbXVtIChtYXggYXR0cmlidXRlKSB2YWx1ZS5cbiAgICAgKi9cbiAgICBtaW46IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5udW1iZXJdKSxcblxuICAgIC8qKlxuICAgICAqIElmIHRoZSB2YWx1ZSBvZiB0aGUgdHlwZSBhdHRyaWJ1dGUgaXMgdGV4dCwgZW1haWwsIHNlYXJjaCwgcGFzc3dvcmQsIHRlbCwgb3IgdXJsLCB0aGlzIGF0dHJpYnV0ZSBzcGVjaWZpZXMgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgKGluIFVuaWNvZGUgY29kZSBwb2ludHMpIHRoYXQgdGhlIHVzZXIgY2FuIGVudGVyLiBGb3Igb3RoZXIgY29udHJvbCB0eXBlcywgaXQgaXMgaWdub3JlZC5cbiAgICAgKi9cbiAgICBtaW5sZW5ndGg6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIEJvb2xlYW4gYXR0cmlidXRlIGluZGljYXRlcyB3aGV0aGVyIHRoZSB1c2VyIGNhbiBlbnRlciBtb3JlIHRoYW4gb25lIHZhbHVlLiBUaGlzIGF0dHJpYnV0ZSBhcHBsaWVzIHdoZW4gdGhlIHR5cGUgYXR0cmlidXRlIGlzIHNldCB0byBlbWFpbCBvciBmaWxlLCBvdGhlcndpc2UgaXQgaXMgaWdub3JlZC5cbiAgICAgKi9cbiAgICBtdWx0aXBsZTogUHJvcFR5cGVzLmJvb2wsXG5cbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgY29udHJvbCwgd2hpY2ggaXMgc3VibWl0dGVkIHdpdGggdGhlIGZvcm0gZGF0YS5cbiAgICAgKi9cbiAgICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gICAgLyoqXG4gICAgICogQSByZWd1bGFyIGV4cHJlc3Npb24gdGhhdCB0aGUgY29udHJvbCdzIHZhbHVlIGlzIGNoZWNrZWQgYWdhaW5zdC4gVGhlIHBhdHRlcm4gbXVzdCBtYXRjaCB0aGUgZW50aXJlIHZhbHVlLCBub3QganVzdCBzb21lIHN1YnNldC4gVXNlIHRoZSB0aXRsZSBhdHRyaWJ1dGUgdG8gZGVzY3JpYmUgdGhlIHBhdHRlcm4gdG8gaGVscCB0aGUgdXNlci4gVGhpcyBhdHRyaWJ1dGUgYXBwbGllcyB3aGVuIHRoZSB2YWx1ZSBvZiB0aGUgdHlwZSBhdHRyaWJ1dGUgaXMgdGV4dCwgc2VhcmNoLCB0ZWwsIHVybCwgZW1haWwsIG9yIHBhc3N3b3JkLCBvdGhlcndpc2UgaXQgaXMgaWdub3JlZC4gVGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBsYW5ndWFnZSBpcyB0aGUgc2FtZSBhcyBKYXZhU2NyaXB0IFJlZ0V4cCBhbGdvcml0aG0sIHdpdGggdGhlICd1JyBwYXJhbWV0ZXIgdGhhdCBtYWtlcyBpdCB0cmVhdCB0aGUgcGF0dGVybiBhcyBhIHNlcXVlbmNlIG9mIHVuaWNvZGUgY29kZSBwb2ludHMuIFRoZSBwYXR0ZXJuIGlzIG5vdCBzdXJyb3VuZGVkIGJ5IGZvcndhcmQgc2xhc2hlcy5cbiAgICAgKi9cbiAgICBwYXR0ZXJuOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gICAgLyoqXG4gICAgICogQSBoaW50IHRvIHRoZSB1c2VyIG9mIHdoYXQgY2FuIGJlIGVudGVyZWQgaW4gdGhlIGNvbnRyb2wgLiBUaGUgcGxhY2Vob2xkZXIgdGV4dCBtdXN0IG5vdCBjb250YWluIGNhcnJpYWdlIHJldHVybnMgb3IgbGluZS1mZWVkcy4gTm90ZTogRG8gbm90IHVzZSB0aGUgcGxhY2Vob2xkZXIgYXR0cmlidXRlIGluc3RlYWQgb2YgYSA8bGFiZWw+IGVsZW1lbnQsIHRoZWlyIHB1cnBvc2VzIGFyZSBkaWZmZXJlbnQuIFRoZSA8bGFiZWw+IGF0dHJpYnV0ZSBkZXNjcmliZXMgdGhlIHJvbGUgb2YgdGhlIGZvcm0gZWxlbWVudCAoaS5lLiBpdCBpbmRpY2F0ZXMgd2hhdCBraW5kIG9mIGluZm9ybWF0aW9uIGlzIGV4cGVjdGVkKSwgYW5kIHRoZSBwbGFjZWhvbGRlciBhdHRyaWJ1dGUgaXMgYSBoaW50IGFib3V0IHRoZSBmb3JtYXQgdGhhdCB0aGUgY29udGVudCBzaG91bGQgdGFrZS4gVGhlcmUgYXJlIGNhc2VzIGluIHdoaWNoIHRoZSBwbGFjZWhvbGRlciBhdHRyaWJ1dGUgaXMgbmV2ZXIgZGlzcGxheWVkIHRvIHRoZSB1c2VyLCBzbyB0aGUgZm9ybSBtdXN0IGJlIHVuZGVyc3RhbmRhYmxlIHdpdGhvdXQgaXQuXG4gICAgICovXG4gICAgcGxhY2Vob2xkZXI6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGF0dHJpYnV0ZSBpbmRpY2F0ZXMgdGhhdCB0aGUgdXNlciBjYW5ub3QgbW9kaWZ5IHRoZSB2YWx1ZSBvZiB0aGUgY29udHJvbC4gVGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUgaXMgaXJyZWxldmFudC4gSWYgeW91IG5lZWQgcmVhZC13cml0ZSBhY2Nlc3MgdG8gdGhlIGlucHV0IHZhbHVlLCBkbyBub3QgYWRkIHRoZSBcInJlYWRvbmx5XCIgYXR0cmlidXRlLiBJdCBpcyBpZ25vcmVkIGlmIHRoZSB2YWx1ZSBvZiB0aGUgdHlwZSBhdHRyaWJ1dGUgaXMgaGlkZGVuLCByYW5nZSwgY29sb3IsIGNoZWNrYm94LCByYWRpbywgZmlsZSwgb3IgYSBidXR0b24gdHlwZSAoc3VjaCBhcyBidXR0b24gb3Igc3VibWl0KS5cbiAgICAgKi9cbiAgICByZWFkT25seTogUHJvcFR5cGVzLnN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIFRoaXMgYXR0cmlidXRlIHNwZWNpZmllcyB0aGF0IHRoZSB1c2VyIG11c3QgZmlsbCBpbiBhIHZhbHVlIGJlZm9yZSBzdWJtaXR0aW5nIGEgZm9ybS4gSXQgY2Fubm90IGJlIHVzZWQgd2hlbiB0aGUgdHlwZSBhdHRyaWJ1dGUgaXMgaGlkZGVuLCBpbWFnZSwgb3IgYSBidXR0b24gdHlwZSAoc3VibWl0LCByZXNldCwgb3IgYnV0dG9uKS4gVGhlIDpvcHRpb25hbCBhbmQgOnJlcXVpcmVkIENTUyBwc2V1ZG8tY2xhc3NlcyB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIGZpZWxkIGFzIGFwcHJvcHJpYXRlLlxuICAgICAqL1xuICAgIHJlcXVpcmVkOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gICAgLyoqXG4gICAgICogVGhlIGRpcmVjdGlvbiBpbiB3aGljaCBzZWxlY3Rpb24gb2NjdXJyZWQuIFRoaXMgaXMgXCJmb3J3YXJkXCIgaWYgdGhlIHNlbGVjdGlvbiB3YXMgbWFkZSBmcm9tIGxlZnQtdG8tcmlnaHQgaW4gYW4gTFRSIGxvY2FsZSBvciByaWdodC10by1sZWZ0IGluIGFuIFJUTCBsb2NhbGUsIG9yIFwiYmFja3dhcmRcIiBpZiB0aGUgc2VsZWN0aW9uIHdhcyBtYWRlIGluIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24uIE9uIHBsYXRmb3JtcyBvbiB3aGljaCBpdCdzIHBvc3NpYmxlIHRoaXMgdmFsdWUgaXNuJ3Qga25vd24sIHRoZSB2YWx1ZSBjYW4gYmUgXCJub25lXCI7IGZvciBleGFtcGxlLCBvbiBtYWNPUywgdGhlIGRlZmF1bHQgZGlyZWN0aW9uIGlzIFwibm9uZVwiLCB0aGVuIGFzIHRoZSB1c2VyIGJlZ2lucyB0byBtb2RpZnkgdGhlIHNlbGVjdGlvbiB1c2luZyB0aGUga2V5Ym9hcmQsIHRoaXMgd2lsbCBjaGFuZ2UgdG8gcmVmbGVjdCB0aGUgZGlyZWN0aW9uIGluIHdoaWNoIHRoZSBzZWxlY3Rpb24gaXMgZXhwYW5kaW5nLlxuICAgICAqL1xuICAgIHNlbGVjdGlvbkRpcmVjdGlvbjogUHJvcFR5cGVzLnN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIFRoZSBvZmZzZXQgaW50byB0aGUgZWxlbWVudCdzIHRleHQgY29udGVudCBvZiB0aGUgbGFzdCBzZWxlY3RlZCBjaGFyYWN0ZXIuIElmIHRoZXJlJ3Mgbm8gc2VsZWN0aW9uLCB0aGlzIHZhbHVlIGluZGljYXRlcyB0aGUgb2Zmc2V0IHRvIHRoZSBjaGFyYWN0ZXIgZm9sbG93aW5nIHRoZSBjdXJyZW50IHRleHQgaW5wdXQgY3Vyc29yIHBvc2l0aW9uICh0aGF0IGlzLCB0aGUgcG9zaXRpb24gdGhlIG5leHQgY2hhcmFjdGVyIHR5cGVkIHdvdWxkIG9jY3VweSkuXG4gICAgICovXG4gICAgc2VsZWN0aW9uRW5kOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gICAgLyoqXG4gICAgICogVGhlIG9mZnNldCBpbnRvIHRoZSBlbGVtZW50J3MgdGV4dCBjb250ZW50IG9mIHRoZSBmaXJzdCBzZWxlY3RlZCBjaGFyYWN0ZXIuIElmIHRoZXJlJ3Mgbm8gc2VsZWN0aW9uLCB0aGlzIHZhbHVlIGluZGljYXRlcyB0aGUgb2Zmc2V0IHRvIHRoZSBjaGFyYWN0ZXIgZm9sbG93aW5nIHRoZSBjdXJyZW50IHRleHQgaW5wdXQgY3Vyc29yIHBvc2l0aW9uICh0aGF0IGlzLCB0aGUgcG9zaXRpb24gdGhlIG5leHQgY2hhcmFjdGVyIHR5cGVkIHdvdWxkIG9jY3VweSkuXG4gICAgICovXG4gICAgc2VsZWN0aW9uU3RhcnQ6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBUaGUgaW5pdGlhbCBzaXplIG9mIHRoZSBjb250cm9sLiBUaGlzIHZhbHVlIGlzIGluIHBpeGVscyB1bmxlc3MgdGhlIHZhbHVlIG9mIHRoZSB0eXBlIGF0dHJpYnV0ZSBpcyB0ZXh0IG9yIHBhc3N3b3JkLCBpbiB3aGljaCBjYXNlIGl0IGlzIGFuIGludGVnZXIgbnVtYmVyIG9mIGNoYXJhY3RlcnMuIFN0YXJ0aW5nIGluLCB0aGlzIGF0dHJpYnV0ZSBhcHBsaWVzIG9ubHkgd2hlbiB0aGUgdHlwZSBhdHRyaWJ1dGUgaXMgc2V0IHRvIHRleHQsIHNlYXJjaCwgdGVsLCB1cmwsIGVtYWlsLCBvciBwYXNzd29yZCwgb3RoZXJ3aXNlIGl0IGlzIGlnbm9yZWQuIEluIGFkZGl0aW9uLCB0aGUgc2l6ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLiBJZiB5b3UgZG8gbm90IHNwZWNpZnkgYSBzaXplLCBhIGRlZmF1bHQgdmFsdWUgb2YgMjAgaXMgdXNlZC4nIHNpbXBseSBzdGF0ZXMgXCJ0aGUgdXNlciBhZ2VudCBzaG91bGQgZW5zdXJlIHRoYXQgYXQgbGVhc3QgdGhhdCBtYW55IGNoYXJhY3RlcnMgYXJlIHZpc2libGVcIiwgYnV0IGRpZmZlcmVudCBjaGFyYWN0ZXJzIGNhbiBoYXZlIGRpZmZlcmVudCB3aWR0aHMgaW4gY2VydGFpbiBmb250cy4gSW4gc29tZSBicm93c2VycywgYSBjZXJ0YWluIHN0cmluZyB3aXRoIHggY2hhcmFjdGVycyB3aWxsIG5vdCBiZSBlbnRpcmVseSB2aXNpYmxlIGV2ZW4gaWYgc2l6ZSBpcyBkZWZpbmVkIHRvIGF0IGxlYXN0IHguXG4gICAgICovXG4gICAgc2l6ZTogUHJvcFR5cGVzLnN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIFNldHRpbmcgdGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIHRvIHRydWUgaW5kaWNhdGVzIHRoYXQgdGhlIGVsZW1lbnQgbmVlZHMgdG8gaGF2ZSBpdHMgc3BlbGxpbmcgYW5kIGdyYW1tYXIgY2hlY2tlZC4gVGhlIHZhbHVlIGRlZmF1bHQgaW5kaWNhdGVzIHRoYXQgdGhlIGVsZW1lbnQgaXMgdG8gYWN0IGFjY29yZGluZyB0byBhIGRlZmF1bHQgYmVoYXZpb3IsIHBvc3NpYmx5IGJhc2VkIG9uIHRoZSBwYXJlbnQgZWxlbWVudCdzIG93biBzcGVsbGNoZWNrIHZhbHVlLiBUaGUgdmFsdWUgZmFsc2UgaW5kaWNhdGVzIHRoYXQgdGhlIGVsZW1lbnQgc2hvdWxkIG5vdCBiZSBjaGVja2VkLlxuICAgICAqL1xuICAgIHNwZWxsQ2hlY2s6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBXb3JrcyB3aXRoIHRoZSBtaW4gYW5kIG1heCBhdHRyaWJ1dGVzIHRvIGxpbWl0IHRoZSBpbmNyZW1lbnRzIGF0IHdoaWNoIGEgbnVtZXJpYyBvciBkYXRlLXRpbWUgdmFsdWUgY2FuIGJlIHNldC4gSXQgY2FuIGJlIHRoZSBzdHJpbmcgYW55IG9yIGEgcG9zaXRpdmUgZmxvYXRpbmcgcG9pbnQgbnVtYmVyLiBJZiB0aGlzIGF0dHJpYnV0ZSBpcyBub3Qgc2V0IHRvIGFueSwgdGhlIGNvbnRyb2wgYWNjZXB0cyBvbmx5IHZhbHVlcyBhdCBtdWx0aXBsZXMgb2YgdGhlIHN0ZXAgdmFsdWUgZ3JlYXRlciB0aGFuIHRoZSBtaW5pbXVtLlxuICAgICAqL1xuICAgIHN0ZXA6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5udW1iZXJdKSxcblxuICAgIC8qKlxuICAgICAqIE51bWJlciBvZiB0aW1lcyB0aGUgYEVudGVyYCBrZXkgd2FzIHByZXNzZWQgd2hpbGUgdGhlIGlucHV0IGhhZCBmb2N1cy5cbiAgICAgKi9cbiAgICBuX3N1Ym1pdDogUHJvcFR5cGVzLm51bWJlcixcbiAgICAvKipcbiAgICAgKiBMYXN0IHRpbWUgdGhhdCBgRW50ZXJgIHdhcyBwcmVzc2VkLlxuICAgICAqL1xuICAgIG5fc3VibWl0X3RpbWVzdGFtcDogUHJvcFR5cGVzLm51bWJlcixcblxuICAgIC8qKlxuICAgICAqIE51bWJlciBvZiB0aW1lcyB0aGUgaW5wdXQgbG9zdCBmb2N1cy5cbiAgICAgKi9cbiAgICBuX2JsdXI6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgLyoqXG4gICAgICogTGFzdCB0aW1lIHRoZSBpbnB1dCBsb3N0IGZvY3VzLlxuICAgICAqL1xuICAgIG5fYmx1cl90aW1lc3RhbXA6IFByb3BUeXBlcy5udW1iZXIsXG5cbiAgICAvKipcbiAgICAgKiBEYXNoLWFzc2lnbmVkIGNhbGxiYWNrIHRoYXQgZ2V0cyBmaXJlZCB3aGVuIHRoZSBpbnB1dCBjaGFuZ2VzLlxuICAgICAqL1xuICAgIGZpcmVFdmVudDogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgICAvKipcbiAgICAgKiBEYXNoLWFzc2lnbmVkIGNhbGxiYWNrIHRoYXQgZ2V0cyBmaXJlZCB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VzLlxuICAgICAqL1xuICAgIHNldFByb3BzOiBQcm9wVHlwZXMuZnVuYyxcblxuICAgIGRhc2hFdmVudHM6IFByb3BUeXBlcy5vbmVPZihbJ2JsdXInLCAnY2hhbmdlJ10pLFxufTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/components/Input.react.js\n");
/***/ }),
diff --git a/dash_core_components/dash_core_components.min.js b/dash_core_components/dash_core_components.min.js
index 73655fc98..c80ababe7 100644
--- a/dash_core_components/dash_core_components.min.js
+++ b/dash_core_components/dash_core_components.min.js
@@ -20,7 +20,7 @@ object-assign
Licensed under the MIT License (MIT), see
http://jedwatson.github.io/react-select
*/
-var O=function(e){return"string"==typeof e?e:null!==e&&JSON.stringify(e)||""},L=l.a.oneOfType([l.a.string,l.a.node]),A=l.a.oneOfType([l.a.string,l.a.number]),j=1,N=function(e,t){var n=void 0===e?"undefined":v(e);if("string"!==n&&"number"!==n&&"boolean"!==n)return e;var r=t.options,o=t.valueKey;if(r)for(var a=0;ai||ap.bottom?c.scrollTop=l.offsetTop+l.clientHeight-c.offsetHeight:u.top t.offsetHeight&&t.scrollHeight-t.offsetHeight-t.scrollTop<=0&&this.props.onMenuScrollToBottom()}}},{key:"getOptionLabel",value:function(e){return e[this.props.labelKey]}},{key:"getValueArray",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,n="object"===(void 0===t?"undefined":v(t))?t:this.props;if(n.multi){if("string"==typeof e&&(e=e.split(n.delimiter)),!Array.isArray(e)){if(null===e||void 0===e)return[];e=[e]}return e.map(function(e){return N(e,n)}).filter(function(e){return e})}var r=N(e,n);return r?[r]:[]}},{key:"setValue",value:function(e){var t=this;if(this.props.autoBlur&&this.blurInput(),this.props.required){var n=P(e,this.props.multi);this.setState({required:n})}this.props.simpleValue&&e&&(e=this.props.multi?e.map(function(e){return e[t.props.valueKey]}).join(this.props.delimiter):e[this.props.valueKey]),this.props.onChange&&this.props.onChange(e)}},{key:"selectValue",value:function(e){var t=this;this.props.closeOnSelect&&(this.hasScrolledToOption=!1);var n=this.props.onSelectResetsInput?"":this.state.inputValue;this.props.multi?this.setState({focusedIndex:null,inputValue:this.handleInputValueChange(n),isOpen:!this.props.closeOnSelect},function(){t.getValueArray(t.props.value).some(function(n){return n[t.props.valueKey]===e[t.props.valueKey]})?t.removeValue(e):t.addValue(e)}):this.setState({inputValue:this.handleInputValueChange(n),isOpen:!this.props.closeOnSelect,isPseudoFocused:this.state.isFocused},function(){t.setValue(e)})}},{key:"addValue",value:function(e){var t=this.getValueArray(this.props.value),n=this._visibleOptions.filter(function(e){return!e.disabled}),r=n.indexOf(e);this.setValue(t.concat(e)),n.length-1===r?this.focusOption(n[r-1]):n.length>r&&this.focusOption(n[r+1])}},{key:"popValue",value:function(){var e=this.getValueArray(this.props.value);e.length&&!1!==e[e.length-1].clearableValue&&this.setValue(this.props.multi?e.slice(0,e.length-1):null)}},{key:"removeValue",value:function(e){var t=this,n=this.getValueArray(this.props.value);this.setValue(n.filter(function(n){return n[t.props.valueKey]!==e[t.props.valueKey]})),this.focus()}},{key:"clearValue",value:function(e){e&&"mousedown"===e.type&&0!==e.button||(e.preventDefault(),this.setValue(this.getResetValue()),this.setState({inputValue:this.handleInputValueChange(""),isOpen:!1},this.focus),this._focusAfterClear=!0)}},{key:"getResetValue",value:function(){return void 0!==this.props.resetValue?this.props.resetValue:this.props.multi?[]:null}},{key:"focusOption",value:function(e){this.setState({focusedOption:e})}},{key:"focusNextOption",value:function(){this.focusAdjacentOption("next")}},{key:"focusPreviousOption",value:function(){this.focusAdjacentOption("previous")}},{key:"focusPageUpOption",value:function(){this.focusAdjacentOption("page_up")}},{key:"focusPageDownOption",value:function(){this.focusAdjacentOption("page_down")}},{key:"focusStartOption",value:function(){this.focusAdjacentOption("start")}},{key:"focusEndOption",value:function(){this.focusAdjacentOption("end")}},{key:"focusAdjacentOption",value:function(e){var t=this._visibleOptions.map(function(e,t){return{option:e,index:t}}).filter(function(e){return!e.option.disabled});if(this._scrollToFocusedOptionOnUpdate=!0,!this.state.isOpen){var n={focusedOption:this._focusedOption||(t.length?t["next"===e?0:t.length-1].option:null),isOpen:!0};return this.props.onSelectResetsInput&&(n.inputValue=""),void this.setState(n)}if(t.length){for(var r=-1,o=0;o0?r-=1:r=t.length-1;else if("start"===e)r=0;else if("end"===e)r=t.length-1;else if("page_up"===e){var a=r-this.props.pageSize;r=a<0?0:a}else if("page_down"===e){var i=r+this.props.pageSize;r=i>t.length-1?t.length-1:i}-1===r&&(r=0),this.setState({focusedIndex:t[r].index,focusedOption:t[r].option})}}},{key:"getFocusedOption",value:function(){return this._focusedOption}},{key:"selectFocusedOption",value:function(){if(this._focusedOption)return this.selectValue(this._focusedOption)}},{key:"renderLoading",value:function(){if(this.props.isLoading)return u.a.createElement("span",{className:"Select-loading-zone","aria-hidden":"true"},u.a.createElement("span",{className:"Select-loading"}))}},{key:"renderValue",value:function(e,t){var n=this,r=this.props.valueRenderer||this.getOptionLabel,o=this.props.valueComponent;if(!e.length)return function(e,t,n){var r=e.inputValue,o=e.isPseudoFocused,a=e.isFocused,i=t.onSelectResetsInput;return!r||!i&&!n&&!o&&!a}(this.state,this.props,t)?u.a.createElement("div",{className:"Select-placeholder"},this.props.placeholder):null;var a=this.props.onValueClick?this.handleValueClick:null;return this.props.multi?e.map(function(e,t){return u.a.createElement(o,{disabled:n.props.disabled||!1===e.clearableValue,id:n._instancePrefix+"-value-"+t,instancePrefix:n._instancePrefix,key:"value-"+t+"-"+e[n.props.valueKey],onClick:a,onRemove:n.removeValue,placeholder:n.props.placeholder,value:e},r(e,t),u.a.createElement("span",{className:"Select-aria-only"}," "))}):function(e,t){var n=e.inputValue,r=e.isPseudoFocused,o=e.isFocused,a=t.onSelectResetsInput;return!n||!a&&!(!o&&r||o&&!r)}(this.state,this.props)?(t&&(a=null),u.a.createElement(o,{disabled:this.props.disabled,id:this._instancePrefix+"-value-item",instancePrefix:this._instancePrefix,onClick:a,placeholder:this.props.placeholder,value:e[0]},r(e[0]))):void 0}},{key:"renderInput",value:function(e,t){var n,r=this,a=i()("Select-input",this.props.inputProps.className),s=this.state.isOpen,l=i()((S(n={},this._instancePrefix+"-list",s),S(n,this._instancePrefix+"-backspace-remove-message",this.props.multi&&!this.props.disabled&&this.state.isFocused&&!this.state.inputValue),n)),c=this.state.inputValue;!c||this.props.onSelectResetsInput||this.state.isFocused||(c="");var d=w({},this.props.inputProps,{"aria-activedescendant":s?this._instancePrefix+"-option-"+t:this._instancePrefix+"-value","aria-describedby":this.props["aria-describedby"],"aria-expanded":""+s,"aria-haspopup":""+s,"aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"],"aria-owns":l,className:a,onBlur:this.handleInputBlur,onChange:this.handleInputChange,onFocus:this.handleInputFocus,ref:function(e){return r.input=e},role:"combobox",required:this.state.required,tabIndex:this.props.tabIndex,value:c});if(this.props.inputRenderer)return this.props.inputRenderer(d);if(this.props.disabled||!this.props.searchable){var p=T(this.props.inputProps,[]),f=i()(S({},this._instancePrefix+"-list",s));return u.a.createElement("div",w({},p,{"aria-expanded":s,"aria-owns":f,"aria-activedescendant":s?this._instancePrefix+"-option-"+t:this._instancePrefix+"-value","aria-disabled":""+this.props.disabled,"aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"],className:a,onBlur:this.handleInputBlur,onFocus:this.handleInputFocus,ref:function(e){return r.input=e},role:"combobox",style:{border:0,width:1,display:"inline-block"},tabIndex:this.props.tabIndex||0}))}return this.props.autosize?u.a.createElement(o.a,w({id:this.props.id},d,{minWidth:"5"})):u.a.createElement("div",{className:a,key:"input-wrap",style:{display:"inline-block"}},u.a.createElement("input",w({id:this.props.id},d)))}},{key:"renderClear",value:function(){var e=this.getValueArray(this.props.value);if(this.props.clearable&&e.length&&!this.props.disabled&&!this.props.isLoading){var t=this.props.multi?this.props.clearAllText:this.props.clearValueText,n=this.props.clearRenderer();return u.a.createElement("span",{"aria-label":t,className:"Select-clear-zone",onMouseDown:this.clearValue,onTouchEnd:this.handleTouchEndClearValue,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,title:t},n)}}},{key:"renderArrow",value:function(){if(this.props.arrowRenderer){var e=this.handleMouseDownOnArrow,t=this.state.isOpen,n=this.props.arrowRenderer({onMouseDown:e,isOpen:t});return n?u.a.createElement("span",{className:"Select-arrow-zone",onMouseDown:e},n):null}}},{key:"filterOptions",value:function(e){var t=this.state.inputValue,n=this.props.options||[];if(this.props.filterOptions){var r="function"==typeof this.props.filterOptions?this.props.filterOptions:g;return r(n,t,e,{filterOption:this.props.filterOption,ignoreAccents:this.props.ignoreAccents,ignoreCase:this.props.ignoreCase,labelKey:this.props.labelKey,matchPos:this.props.matchPos,matchProp:this.props.matchProp,trimFilter:this.props.trimFilter,valueKey:this.props.valueKey})}return n}},{key:"onOptionRef",value:function(e,t){t&&(this.focused=e)}},{key:"renderMenu",value:function(e,t,n){return e&&e.length?this.props.menuRenderer({focusedOption:n,focusOption:this.focusOption,inputValue:this.state.inputValue,instancePrefix:this._instancePrefix,labelKey:this.props.labelKey,onFocus:this.focusOption,onOptionRef:this.onOptionRef,onSelect:this.selectValue,optionClassName:this.props.optionClassName,optionComponent:this.props.optionComponent,optionRenderer:this.props.optionRenderer||this.getOptionLabel,options:e,removeValue:this.removeValue,selectValue:this.selectValue,valueArray:t,valueKey:this.props.valueKey}):this.props.noResultsText?u.a.createElement("div",{className:"Select-noresults"},this.props.noResultsText):null}},{key:"renderHiddenField",value:function(e){var t=this;if(this.props.name){if(this.props.joinValues){var n=e.map(function(e){return O(e[t.props.valueKey])}).join(this.props.delimiter);return u.a.createElement("input",{disabled:this.props.disabled,name:this.props.name,ref:function(e){return t.value=e},type:"hidden",value:n})}return e.map(function(e,n){return u.a.createElement("input",{disabled:t.props.disabled,key:"hidden."+n,name:t.props.name,ref:"value"+n,type:"hidden",value:O(e[t.props.valueKey])})})}}},{key:"getFocusableOptionIndex",value:function(e){var t=this._visibleOptions;if(!t.length)return null;var n=this.props.valueKey,r=this.state.focusedOption||e;if(r&&!r.disabled){var o=-1;if(t.some(function(e,t){var a=e[n]===r[n];return a&&(o=t),a}),-1!==o)return o}for(var a=0;ac;)for(var p,f=s(arguments[c++]),m=u?r(f).concat(u(f)):r(f),h=m.length,_=0;h>_;)d.call(f,p=m[_++])&&(n[p]=f[p]);return n}:l},function(e,t,n){var r=n(43),o=n(610),a=n(611);e.exports=function(e){return function(t,n,i){var s,l=r(t),c=o(l.length),u=a(i,c);if(e&&n!=n){for(;c>u;)if((s=l[u++])!=s)return!0}else for(;c>u;u++)if((e||u in l)&&l[u]===n)return e||u||0;return!e&&-1}}},function(e,t,n){var r=n(125),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},function(e,t,n){var r=n(125),o=Math.max,a=Math.min;e.exports=function(e,t){return(e=r(e))<0?o(e+t,0):a(e,t)}},function(e,t,n){n(613),e.exports=n(27).Object.getPrototypeOf},function(e,t,n){var r=n(94),o=n(212);n(131)("getPrototypeOf",function(){return function(e){return o(r(e))}})},function(e,t,n){n(615);var r=n(27).Object;e.exports=function(e,t,n){return r.defineProperty(e,t,n)}},function(e,t,n){var r=n(39);r(r.S+r.F*!n(41),"Object",{defineProperty:n(40).f})},function(e,t,n){e.exports={default:n(617),__esModule:!0}},function(e,t,n){n(618),n(623),e.exports=n(136).f("iterator")},function(e,t,n){"use strict";var r=n(619)(!0);n(214)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t,n){var r=n(125),o=n(124);e.exports=function(e){return function(t,n){var a,i,s=String(o(t)),l=r(n),c=s.length;return l<0||l>=c?e?"":void 0:(a=s.charCodeAt(l))<55296||a>56319||l+1===c||(i=s.charCodeAt(l+1))<56320||i>57343?e?s.charAt(l):a:e?s.slice(l,l+2):i-56320+(a-55296<<10)+65536}}},function(e,t,n){"use strict";var r=n(134),o=n(91),a=n(135),i={};n(47)(i,n(50)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r(i,{next:o(1,n)}),a(e,t+" Iterator")}},function(e,t,n){var r=n(40),o=n(67),a=n(68);e.exports=n(41)?Object.defineProperties:function(e,t){o(e);for(var n,i=a(t),s=i.length,l=0;s>l;)r.f(e,n=i[l++],t[n]);return e}},function(e,t,n){var r=n(35).document;e.exports=r&&r.documentElement},function(e,t,n){n(624);for(var r=n(35),o=n(47),a=n(133),i=n(50)("toStringTag"),s="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),l=0;l=e.length?(this._t=void 0,o(1)):o(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])},"values"),a.Arguments=a.Array,r("keys"),r("values"),r("entries")},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){e.exports={default:n(628),__esModule:!0}},function(e,t,n){n(629),n(634),n(635),n(636),e.exports=n(27).Symbol},function(e,t,n){"use strict";var r=n(35),o=n(42),a=n(41),i=n(39),s=n(215),l=n(630).KEY,c=n(49),u=n(127),d=n(135),p=n(92),f=n(50),m=n(136),h=n(137),_=n(631),g=n(632),b=n(67),y=n(48),v=n(43),M=n(123),E=n(91),S=n(134),w=n(633),D=n(138),T=n(40),k=n(68),C=D.f,x=T.f,O=w.f,L=r.Symbol,A=r.JSON,j=A&&A.stringify,N=f("_hidden"),P=f("toPrimitive"),I={}.propertyIsEnumerable,R=u("symbol-registry"),F=u("symbols"),Y=u("op-symbols"),B=Object.prototype,H="function"==typeof L,z=r.QObject,U=!z||!z.prototype||!z.prototype.findChild,W=a&&c(function(){return 7!=S(x({},"a",{get:function(){return x(this,"a",{value:7}).a}})).a})?function(e,t,n){var r=C(B,t);r&&delete B[t],x(e,t,n),r&&e!==B&&x(B,t,r)}:x,G=function(e){var t=F[e]=S(L.prototype);return t._k=e,t},q=H&&"symbol"==typeof L.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof L},V=function(e,t,n){return e===B&&V(Y,t,n),b(e),t=M(t,!0),b(n),o(F,t)?(n.enumerable?(o(e,N)&&e[N][t]&&(e[N][t]=!1),n=S(n,{enumerable:E(0,!1)})):(o(e,N)||x(e,N,E(1,{})),e[N][t]=!0),W(e,t,n)):x(e,t,n)},K=function(e,t){b(e);for(var n,r=_(t=v(t)),o=0,a=r.length;a>o;)V(e,n=r[o++],t[n]);return e},$=function(e){var t=I.call(this,e=M(e,!0));return!(this===B&&o(F,e)&&!o(Y,e))&&(!(t||!o(this,e)||!o(F,e)||o(this,N)&&this[N][e])||t)},Q=function(e,t){if(e=v(e),t=M(t,!0),e!==B||!o(F,t)||o(Y,t)){var n=C(e,t);return!n||!o(F,t)||o(e,N)&&e[N][t]||(n.enumerable=!0),n}},Z=function(e){for(var t,n=O(v(e)),r=[],a=0;n.length>a;)o(F,t=n[a++])||t==N||t==l||r.push(t);return r},X=function(e){for(var t,n=e===B,r=O(n?Y:v(e)),a=[],i=0;r.length>i;)!o(F,t=r[i++])||n&&!o(B,t)||a.push(F[t]);return a};H||(s((L=function(){if(this instanceof L)throw TypeError("Symbol is not a constructor!");var e=p(arguments.length>0?arguments[0]:void 0),t=function(n){this===B&&t.call(Y,n),o(this,N)&&o(this[N],e)&&(this[N][e]=!1),W(this,e,E(1,n))};return a&&U&&W(B,e,{configurable:!0,set:t}),G(e)}).prototype,"toString",function(){return this._k}),D.f=Q,T.f=V,n(216).f=w.f=Z,n(93).f=$,n(129).f=X,a&&!n(132)&&s(B,"propertyIsEnumerable",$,!0),m.f=function(e){return G(f(e))}),i(i.G+i.W+i.F*!H,{Symbol:L});for(var J="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ee=0;J.length>ee;)f(J[ee++]);for(var te=k(f.store),ne=0;te.length>ne;)h(te[ne++]);i(i.S+i.F*!H,"Symbol",{for:function(e){return o(R,e+="")?R[e]:R[e]=L(e)},keyFor:function(e){if(!q(e))throw TypeError(e+" is not a symbol!");for(var t in R)if(R[t]===e)return t},useSetter:function(){U=!0},useSimple:function(){U=!1}}),i(i.S+i.F*!H,"Object",{create:function(e,t){return void 0===t?S(e):K(S(e),t)},defineProperty:V,defineProperties:K,getOwnPropertyDescriptor:Q,getOwnPropertyNames:Z,getOwnPropertySymbols:X}),A&&i(i.S+i.F*(!H||c(function(){var e=L();return"[null]"!=j([e])||"{}"!=j({a:e})||"{}"!=j(Object(e))})),"JSON",{stringify:function(e){for(var t,n,r=[e],o=1;arguments.length>o;)r.push(arguments[o++]);if(n=t=r[1],(y(t)||void 0!==e)&&!q(e))return g(t)||(t=function(e,t){if("function"==typeof n&&(t=n.call(this,e,t)),!q(t))return t}),r[1]=t,j.apply(A,r)}}),L.prototype[P]||n(47)(L.prototype,P,L.prototype.valueOf),d(L,"Symbol"),d(Math,"Math",!0),d(r.JSON,"JSON",!0)},function(e,t,n){var r=n(92)("meta"),o=n(48),a=n(42),i=n(40).f,s=0,l=Object.isExtensible||function(){return!0},c=!n(49)(function(){return l(Object.preventExtensions({}))}),u=function(e){i(e,r,{value:{i:"O"+ ++s,w:{}}})},d=e.exports={KEY:r,NEED:!1,fastKey:function(e,t){if(!o(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!a(e,r)){if(!l(e))return"F";if(!t)return"E";u(e)}return e[r].i},getWeak:function(e,t){if(!a(e,r)){if(!l(e))return!0;if(!t)return!1;u(e)}return e[r].w},onFreeze:function(e){return c&&d.NEED&&l(e)&&!a(e,r)&&u(e),e}}},function(e,t,n){var r=n(68),o=n(129),a=n(93);e.exports=function(e){var t=r(e),n=o.f;if(n)for(var i,s=n(e),l=a.f,c=0;s.length>c;)l.call(e,i=s[c++])&&t.push(i);return t}},function(e,t,n){var r=n(211);e.exports=Array.isArray||function(e){return"Array"==r(e)}},function(e,t,n){var r=n(43),o=n(216).f,a={}.toString,i="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return i&&"[object Window]"==a.call(e)?function(e){try{return o(e)}catch(e){return i.slice()}}(e):o(r(e))}},function(e,t){},function(e,t,n){n(137)("asyncIterator")},function(e,t,n){n(137)("observable")},function(e,t,n){e.exports={default:n(638),__esModule:!0}},function(e,t,n){n(639),e.exports=n(27).Object.setPrototypeOf},function(e,t,n){var r=n(39);r(r.S,"Object",{setPrototypeOf:n(640).set})},function(e,t,n){var r=n(48),o=n(67),a=function(e,t){if(o(e),!r(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,r){try{(r=n(206)(Function.call,n(138).f(Object.prototype,"__proto__").set,2))(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return a(e,n),t?e.__proto__=n:r(e,n),e}}({},!1):void 0),check:a}},function(e,t,n){e.exports={default:n(642),__esModule:!0}},function(e,t,n){n(643);var r=n(27).Object;e.exports=function(e,t){return r.create(e,t)}},function(e,t,n){var r=n(39);r(r.S,"Object",{create:n(134)})},function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(t){var n;n="undefined"!=typeof window?window:"undefined"!=typeof self?self:e;var r="undefined"!=typeof document&&document.attachEvent;if(!r){var o=function(){var e=n.requestAnimationFrame||n.mozRequestAnimationFrame||n.webkitRequestAnimationFrame||function(e){return n.setTimeout(e,20)};return function(t){return e(t)}}(),a=function(){var e=n.cancelAnimationFrame||n.mozCancelAnimationFrame||n.webkitCancelAnimationFrame||n.clearTimeout;return function(t){return e(t)}}(),i=function(e){var t=e.__resizeTriggers__,n=t.firstElementChild,r=t.lastElementChild,o=n.firstElementChild;r.scrollLeft=r.scrollWidth,r.scrollTop=r.scrollHeight,o.style.width=n.offsetWidth+1+"px",o.style.height=n.offsetHeight+1+"px",n.scrollLeft=n.scrollWidth,n.scrollTop=n.scrollHeight},s=function(e){if(!(e.target.className.indexOf("contract-trigger")<0&&e.target.className.indexOf("expand-trigger")<0)){var t=this;i(this),this.__resizeRAF__&&a(this.__resizeRAF__),this.__resizeRAF__=o(function(){(function(e){return e.offsetWidth!=e.__resizeLast__.width||e.offsetHeight!=e.__resizeLast__.height})(t)&&(t.__resizeLast__.width=t.offsetWidth,t.__resizeLast__.height=t.offsetHeight,t.__resizeListeners__.forEach(function(n){n.call(t,e)}))})}},l=!1,c="",u="animationstart",d="Webkit Moz O ms".split(" "),p="webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" "),f="",m=document.createElement("fakeelement");if(void 0!==m.style.animationName&&(l=!0),!1===l)for(var h=0;h div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',r=e.head||e.getElementsByTagName("head")[0],o=e.createElement("style");o.id="detectElementResize",o.type="text/css",null!=t&&o.setAttribute("nonce",t),o.styleSheet?o.styleSheet.cssText=n:o.appendChild(e.createTextNode(n)),r.appendChild(o)}}(a),e.__resizeLast__={},e.__resizeListeners__=[],(e.__resizeTriggers__=a.createElement("div")).className="resize-triggers",e.__resizeTriggers__.innerHTML='
',e.appendChild(e.__resizeTriggers__),i(e),e.addEventListener("scroll",s,!0),u&&(e.__resizeTriggers__.__animationListener__=function(t){t.animationName==_&&i(e)},e.__resizeTriggers__.addEventListener(u,e.__resizeTriggers__.__animationListener__))}e.__resizeListeners__.push(o)}},removeResizeListener:function(e,t){if(r)e.detachEvent("onresize",t);else if(e.__resizeListeners__.splice(e.__resizeListeners__.indexOf(t),1),!e.__resizeListeners__.length){e.removeEventListener("scroll",s,!0),e.__resizeTriggers__.__animationListener__&&(e.__resizeTriggers__.removeEventListener(u,e.__resizeTriggers__.__animationListener__),e.__resizeTriggers__.__animationListener__=null);try{e.__resizeTriggers__=!e.removeChild(e.__resizeTriggers__)}catch(e){}}}}}}).call(this,n(217))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(646);function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o(r).default}}),Object.defineProperty(t,"List",{enumerable:!0,get:function(){return o(r).default}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=m(n(5)),o=m(n(647)),a=m(n(130)),i=m(n(7)),s=m(n(28)),l=m(n(8)),c=m(n(10)),u=n(32),d=m(u),p=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1)),f=m(n(9));function m(e){return e&&e.__esModule?e:{default:e}}n(32).babelPluginFlowReactPropTypes_proptype_Scroll||n(0).any,n(32).babelPluginFlowReactPropTypes_proptype_CellRendererParams||n(0).any,n(32).babelPluginFlowReactPropTypes_proptype_RenderedSection||n(0).any,n(32).babelPluginFlowReactPropTypes_proptype_OverscanIndicesGetter||n(0).any,n(32).babelPluginFlowReactPropTypes_proptype_CellPosition||n(0).any,n(32).babelPluginFlowReactPropTypes_proptype_CellSize||n(0).any,n(32).babelPluginFlowReactPropTypes_proptype_Alignment||n(0).any,n(32).babelPluginFlowReactPropTypes_proptype_NoContentRenderer||n(0).any,n(140).babelPluginFlowReactPropTypes_proptype_Scroll||n(0).any,n(140).babelPluginFlowReactPropTypes_proptype_RenderedRows||n(0).any,n(140).babelPluginFlowReactPropTypes_proptype_RowRenderer||n(0).any;var h=function(e){function t(){var e,n,r,s;(0,i.default)(this,t);for(var c=arguments.length,u=Array(c),d=0;d0&&void 0!==arguments[0]?arguments[0]:{},t=e.columnIndex,n=void 0===t?0:t,r=e.rowIndex,o=void 0===r?0:r;this.Grid&&this.Grid.recomputeGridSize({rowIndex:o,columnIndex:n})}},{key:"recomputeRowHeights",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.Grid&&this.Grid.recomputeGridSize({rowIndex:e,columnIndex:0})}},{key:"scrollToPosition",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.Grid&&this.Grid.scrollToPosition({scrollTop:e})}},{key:"scrollToRow",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.Grid&&this.Grid.scrollToCell({columnIndex:0,rowIndex:e})}},{key:"render",value:function(){var e=this.props,t=e.className,n=e.noRowsRenderer,o=e.scrollToIndex,a=e.width,i=(0,f.default)("ReactVirtualized__List",t);return p.createElement(d.default,(0,r.default)({},this.props,{autoContainerWidth:!0,cellRenderer:this._cellRenderer,className:i,columnWidth:a,columnCount:1,noContentRenderer:n,onScroll:this._onScroll,onSectionRendered:this._onSectionRendered,ref:this._setRef,scrollToRow:o}))}}]),t}(p.PureComponent);h.defaultProps={autoHeight:!1,estimatedRowSize:30,onScroll:function(){},noRowsRenderer:function(){return null},onRowsRendered:function(){},overscanIndicesGetter:u.accessibilityOverscanIndicesGetter,overscanRowCount:10,scrollToAlignment:"auto",scrollToIndex:-1,style:{}},h.propTypes=null,t.default=h},function(e,t,n){e.exports={default:n(648),__esModule:!0}},function(e,t,n){n(649);var r=n(27).Object;e.exports=function(e,t){return r.getOwnPropertyDescriptor(e,t)}},function(e,t,n){var r=n(43),o=n(138).f;n(131)("getOwnPropertyDescriptor",function(){return function(e,t){return o(r(e),t)}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_SCROLLING_RESET_TIME_INTERVAL=void 0;var r=v(n(5)),o=v(n(130)),a=v(n(7)),i=v(n(28)),s=v(n(8)),l=v(n(10)),c=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(1)),u=v(n(9)),d=v(n(651)),p=v(n(139)),f=v(n(654)),m=n(218),h=v(m),_=v(n(658)),g=v(n(219)),b=v(n(659)),y=n(220);function v(e){return e&&e.__esModule?e:{default:e}}n(13).babelPluginFlowReactPropTypes_proptype_Alignment||n(0).any,n(13).babelPluginFlowReactPropTypes_proptype_OverscanIndicesGetter||n(0).any,n(13).babelPluginFlowReactPropTypes_proptype_RenderedSection||n(0).any,n(13).babelPluginFlowReactPropTypes_proptype_ScrollbarPresenceChange||n(0).any,n(13).babelPluginFlowReactPropTypes_proptype_Scroll||n(0).any,n(13).babelPluginFlowReactPropTypes_proptype_NoContentRenderer||n(0).any,n(13).babelPluginFlowReactPropTypes_proptype_CellSizeGetter||n(0).any,n(13).babelPluginFlowReactPropTypes_proptype_CellSize||n(0).any,n(13).babelPluginFlowReactPropTypes_proptype_CellPosition||n(0).any,n(13).babelPluginFlowReactPropTypes_proptype_CellRangeRenderer||n(0).any,n(13).babelPluginFlowReactPropTypes_proptype_CellRenderer||n(0).any,n(220).babelPluginFlowReactPropTypes_proptype_AnimationTimeoutId||n(0).any;var M=t.DEFAULT_SCROLLING_RESET_TIME_INTERVAL=150,E="observed",S="requested",w=function(e){function t(e){(0,a.default)(this,t);var n=(0,s.default)(this,(t.__proto__||(0,o.default)(t)).call(this,e));return n.state={isScrolling:!1,scrollDirectionHorizontal:m.SCROLL_DIRECTION_FORWARD,scrollDirectionVertical:m.SCROLL_DIRECTION_FORWARD,scrollLeft:0,scrollTop:0,scrollPositionChangeReason:null},n._onGridRenderedMemoizer=(0,f.default)(),n._onScrollMemoizer=(0,f.default)(!1),n._deferredInvalidateColumnIndex=null,n._deferredInvalidateRowIndex=null,n._recomputeScrollLeftFlag=!1,n._recomputeScrollTopFlag=!1,n._horizontalScrollBarSize=0,n._verticalScrollBarSize=0,n._scrollbarPresenceChanged=!1,n._cellCache={},n._styleCache={},n._scrollbarSizeMeasured=!1,n._renderedColumnStartIndex=0,n._renderedColumnStopIndex=0,n._renderedRowStartIndex=0,n._renderedRowStopIndex=0,n._debounceScrollEndedCallback=function(){n._disablePointerEventsTimeoutId=null,n._resetStyleCache()},n._invokeOnGridRenderedHelper=function(){var e=n.props.onSectionRendered;n._onGridRenderedMemoizer({callback:e,indices:{columnOverscanStartIndex:n._columnStartIndex,columnOverscanStopIndex:n._columnStopIndex,columnStartIndex:n._renderedColumnStartIndex,columnStopIndex:n._renderedColumnStopIndex,rowOverscanStartIndex:n._rowStartIndex,rowOverscanStopIndex:n._rowStopIndex,rowStartIndex:n._renderedRowStartIndex,rowStopIndex:n._renderedRowStopIndex}})},n._setScrollingContainerRef=function(e){n._scrollingContainer=e},n._onScroll=function(e){e.target===n._scrollingContainer&&n.handleScrollEvent(e.target)},n._columnWidthGetter=n._wrapSizeGetter(e.columnWidth),n._rowHeightGetter=n._wrapSizeGetter(e.rowHeight),n._columnSizeAndPositionManager=new p.default({cellCount:e.columnCount,cellSizeGetter:function(e){return n._columnWidthGetter(e)},estimatedCellSize:n._getEstimatedColumnSize(e)}),n._rowSizeAndPositionManager=new p.default({cellCount:e.rowCount,cellSizeGetter:function(e){return n._rowHeightGetter(e)},estimatedCellSize:n._getEstimatedRowSize(e)}),n}return(0,l.default)(t,e),(0,i.default)(t,[{key:"getOffsetForCell",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.alignment,n=void 0===t?this.props.scrollToAlignment:t,o=e.columnIndex,a=void 0===o?this.props.scrollToColumn:o,i=e.rowIndex,s=void 0===i?this.props.scrollToRow:i,l=(0,r.default)({},this.props,{scrollToAlignment:n,scrollToColumn:a,scrollToRow:s});return{scrollLeft:this._getCalculatedScrollLeft(l),scrollTop:this._getCalculatedScrollTop(l)}}},{key:"handleScrollEvent",value:function(e){var t=e.scrollLeft,n=void 0===t?0:t,r=e.scrollTop,o=void 0===r?0:r;if(!(o<0)){this._debounceScrollEnded();var a=this.props,i=a.autoHeight,s=a.autoWidth,l=a.height,c=a.width,u=this._scrollbarSize,d=this._rowSizeAndPositionManager.getTotalSize(),p=this._columnSizeAndPositionManager.getTotalSize(),f=Math.min(Math.max(0,p-c+u),n),h=Math.min(Math.max(0,d-l+u),o);if(this.state.scrollLeft!==f||this.state.scrollTop!==h){var _={isScrolling:!0,scrollDirectionHorizontal:f!==this.state.scrollLeft?f>this.state.scrollLeft?m.SCROLL_DIRECTION_FORWARD:m.SCROLL_DIRECTION_BACKWARD:this.state.scrollDirectionHorizontal,scrollDirectionVertical:h!==this.state.scrollTop?h>this.state.scrollTop?m.SCROLL_DIRECTION_FORWARD:m.SCROLL_DIRECTION_BACKWARD:this.state.scrollDirectionVertical,scrollPositionChangeReason:E};i||(_.scrollTop=h),s||(_.scrollLeft=f),this.setState(_)}this._invokeOnScrollMemoizer({scrollLeft:f,scrollTop:h,totalColumnsWidth:p,totalRowsHeight:d})}}},{key:"invalidateCellSizeAfterRender",value:function(e){var t=e.columnIndex,n=e.rowIndex;this._deferredInvalidateColumnIndex="number"==typeof this._deferredInvalidateColumnIndex?Math.min(this._deferredInvalidateColumnIndex,t):t,this._deferredInvalidateRowIndex="number"==typeof this._deferredInvalidateRowIndex?Math.min(this._deferredInvalidateRowIndex,n):n}},{key:"measureAllCells",value:function(){var e=this.props,t=e.columnCount,n=e.rowCount;this._columnSizeAndPositionManager.getSizeAndPositionOfCell(t-1),this._rowSizeAndPositionManager.getSizeAndPositionOfCell(n-1)}},{key:"recomputeGridSize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.columnIndex,n=void 0===t?0:t,r=e.rowIndex,o=void 0===r?0:r,a=this.props,i=a.scrollToColumn,s=a.scrollToRow;this._columnSizeAndPositionManager.resetCell(n),this._rowSizeAndPositionManager.resetCell(o),this._recomputeScrollLeftFlag=i>=0&&n<=i,this._recomputeScrollTopFlag=s>=0&&o<=s,this._cellCache={},this._styleCache={},this.forceUpdate()}},{key:"scrollToCell",value:function(e){var t=e.columnIndex,n=e.rowIndex,o=this.props.columnCount,a=this.props;o>1&&void 0!==t&&this._updateScrollLeftForScrollToColumn((0,r.default)({},a,{scrollToColumn:t})),void 0!==n&&this._updateScrollTopForScrollToRow((0,r.default)({},a,{scrollToRow:n}))}},{key:"componentDidMount",value:function(){var e=this.props,t=e.getScrollbarSize,n=e.height,r=e.scrollLeft,o=e.scrollToColumn,a=e.scrollTop,i=e.scrollToRow,s=e.width;this._handleInvalidatedGridSize(),this._scrollbarSizeMeasured||(this._scrollbarSize=t(),this._scrollbarSizeMeasured=!0,this.setState({})),("number"==typeof r&&r>=0||"number"==typeof a&&a>=0)&&this.scrollToPosition({scrollLeft:r,scrollTop:a});var l=n>0&&s>0;o>=0&&l&&this._updateScrollLeftForScrollToColumn(),i>=0&&l&&this._updateScrollTopForScrollToRow(),this._invokeOnGridRenderedHelper(),this._invokeOnScrollMemoizer({scrollLeft:r||0,scrollTop:a||0,totalColumnsWidth:this._columnSizeAndPositionManager.getTotalSize(),totalRowsHeight:this._rowSizeAndPositionManager.getTotalSize()}),this._maybeCallOnScrollbarPresenceChange()}},{key:"componentDidUpdate",value:function(e,t){var n=this,r=this.props,o=r.autoHeight,a=r.autoWidth,i=r.columnCount,s=r.height,l=r.rowCount,c=r.scrollToAlignment,u=r.scrollToColumn,d=r.scrollToRow,p=r.width,f=this.state,m=f.scrollLeft,h=f.scrollPositionChangeReason,g=f.scrollTop;this._handleInvalidatedGridSize();var b=i>0&&0===e.columnCount||l>0&&0===e.rowCount;h===S&&(!a&&m>=0&&(m!==t.scrollLeft&&m!==this._scrollingContainer.scrollLeft||b)&&(this._scrollingContainer.scrollLeft=m),!o&&g>=0&&(g!==t.scrollTop&&g!==this._scrollingContainer.scrollTop||b)&&(this._scrollingContainer.scrollTop=g));var y=(0===e.width||0===e.height)&&s>0&&p>0;if(this._recomputeScrollLeftFlag?(this._recomputeScrollLeftFlag=!1,this._updateScrollLeftForScrollToColumn(this.props)):(0,_.default)({cellSizeAndPositionManager:this._columnSizeAndPositionManager,previousCellsCount:e.columnCount,previousCellSize:e.columnWidth,previousScrollToAlignment:e.scrollToAlignment,previousScrollToIndex:e.scrollToColumn,previousSize:e.width,scrollOffset:m,scrollToAlignment:c,scrollToIndex:u,size:p,sizeJustIncreasedFromZero:y,updateScrollIndexCallback:function(){return n._updateScrollLeftForScrollToColumn(n.props)}}),this._recomputeScrollTopFlag?(this._recomputeScrollTopFlag=!1,this._updateScrollTopForScrollToRow(this.props)):(0,_.default)({cellSizeAndPositionManager:this._rowSizeAndPositionManager,previousCellsCount:e.rowCount,previousCellSize:e.rowHeight,previousScrollToAlignment:e.scrollToAlignment,previousScrollToIndex:e.scrollToRow,previousSize:e.height,scrollOffset:g,scrollToAlignment:c,scrollToIndex:d,size:s,sizeJustIncreasedFromZero:y,updateScrollIndexCallback:function(){return n._updateScrollTopForScrollToRow(n.props)}}),this._invokeOnGridRenderedHelper(),m!==t.scrollLeft||g!==t.scrollTop){var v=this._rowSizeAndPositionManager.getTotalSize(),M=this._columnSizeAndPositionManager.getTotalSize();this._invokeOnScrollMemoizer({scrollLeft:m,scrollTop:g,totalColumnsWidth:M,totalRowsHeight:v})}this._maybeCallOnScrollbarPresenceChange()}},{key:"componentWillMount",value:function(){var e=this.props.getScrollbarSize;this._scrollbarSize=e(),void 0===this._scrollbarSize?(this._scrollbarSizeMeasured=!1,this._scrollbarSize=0):this._scrollbarSizeMeasured=!0,this._calculateChildrenToRender()}},{key:"componentWillUnmount",value:function(){this._disablePointerEventsTimeoutId&&(0,y.cancelAnimationTimeout)(this._disablePointerEventsTimeoutId)}},{key:"componentWillReceiveProps",value:function(e){var t=this,n=this.state,r=n.scrollLeft,o=n.scrollTop;if(0===e.columnCount&&0!==r||0===e.rowCount&&0!==o)this.scrollToPosition({scrollLeft:0,scrollTop:0});else if(e.scrollLeft!==this.props.scrollLeft||e.scrollTop!==this.props.scrollTop){var a={};null!=e.scrollLeft&&(a.scrollLeft=e.scrollLeft),null!=e.scrollTop&&(a.scrollTop=e.scrollTop),this.scrollToPosition(a)}e.columnWidth===this.props.columnWidth&&e.rowHeight===this.props.rowHeight||(this._styleCache={}),this._columnWidthGetter=this._wrapSizeGetter(e.columnWidth),this._rowHeightGetter=this._wrapSizeGetter(e.rowHeight),this._columnSizeAndPositionManager.configure({cellCount:e.columnCount,estimatedCellSize:this._getEstimatedColumnSize(e)}),this._rowSizeAndPositionManager.configure({cellCount:e.rowCount,estimatedCellSize:this._getEstimatedRowSize(e)});var i=this.props,s=i.columnCount,l=i.rowCount;0!==s&&0!==l||(s=0,l=0),e.autoHeight&&!1===e.isScrolling&&!0===this.props.isScrolling&&this._resetStyleCache(),(0,d.default)({cellCount:s,cellSize:"number"==typeof this.props.columnWidth?this.props.columnWidth:null,computeMetadataCallback:function(){return t._columnSizeAndPositionManager.resetCell(0)},computeMetadataCallbackProps:e,nextCellsCount:e.columnCount,nextCellSize:"number"==typeof e.columnWidth?e.columnWidth:null,nextScrollToIndex:e.scrollToColumn,scrollToIndex:this.props.scrollToColumn,updateScrollOffsetForScrollToIndex:function(){return t._updateScrollLeftForScrollToColumn(e,t.state)}}),(0,d.default)({cellCount:l,cellSize:"number"==typeof this.props.rowHeight?this.props.rowHeight:null,computeMetadataCallback:function(){return t._rowSizeAndPositionManager.resetCell(0)},computeMetadataCallbackProps:e,nextCellsCount:e.rowCount,nextCellSize:"number"==typeof e.rowHeight?e.rowHeight:null,nextScrollToIndex:e.scrollToRow,scrollToIndex:this.props.scrollToRow,updateScrollOffsetForScrollToIndex:function(){return t._updateScrollTopForScrollToRow(e,t.state)}})}},{key:"componentWillUpdate",value:function(e,t){this._calculateChildrenToRender(e,t)}},{key:"render",value:function(){var e=this.props,t=e.autoContainerWidth,n=e.autoHeight,o=e.autoWidth,a=e.className,i=e.containerProps,s=e.containerRole,l=e.containerStyle,d=e.height,p=e.id,f=e.noContentRenderer,m=e.role,h=e.style,_=e.tabIndex,g=e.width,b=this._isScrolling(),y={boxSizing:"border-box",direction:"ltr",height:n?"auto":d,position:"relative",width:o?"auto":g,WebkitOverflowScrolling:"touch",willChange:"transform"},v=this._columnSizeAndPositionManager.getTotalSize(),M=this._rowSizeAndPositionManager.getTotalSize(),E=M>d?this._scrollbarSize:0,S=v>g?this._scrollbarSize:0;S===this._horizontalScrollBarSize&&E===this._verticalScrollBarSize||(this._horizontalScrollBarSize=S,this._verticalScrollBarSize=E,this._scrollbarPresenceChanged=!0),y.overflowX=v+E<=g?"hidden":"auto",y.overflowY=M+S<=d?"hidden":"auto";var w=this._childrenToDisplay,D=0===w.length&&d>0&&g>0;return c.createElement("div",(0,r.default)({ref:this._setScrollingContainerRef},i,{"aria-label":this.props["aria-label"],"aria-readonly":this.props["aria-readonly"],className:(0,u.default)("ReactVirtualized__Grid",a),id:p,onScroll:this._onScroll,role:m,style:(0,r.default)({},y,h),tabIndex:_}),w.length>0&&c.createElement("div",{className:"ReactVirtualized__Grid__innerScrollContainer",role:s,style:(0,r.default)({width:t?"auto":v,height:M,maxWidth:v,maxHeight:M,overflow:"hidden",pointerEvents:b?"none":"",position:"relative"},l)},w),D&&f())}},{key:"_calculateChildrenToRender",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.state,n=e.cellRenderer,r=e.cellRangeRenderer,o=e.columnCount,a=e.deferredMeasurementCache,i=e.height,s=e.overscanColumnCount,l=e.overscanIndicesGetter,c=e.overscanRowCount,u=e.rowCount,d=e.width,p=t.scrollDirectionHorizontal,f=t.scrollDirectionVertical,m=t.scrollLeft,h=t.scrollTop,_=this._isScrolling(e,t);if(this._childrenToDisplay=[],i>0&&d>0){var g=this._columnSizeAndPositionManager.getVisibleCellRange({containerSize:d,offset:m}),b=this._rowSizeAndPositionManager.getVisibleCellRange({containerSize:i,offset:h}),y=this._columnSizeAndPositionManager.getOffsetAdjustment({containerSize:d,offset:m}),v=this._rowSizeAndPositionManager.getOffsetAdjustment({containerSize:i,offset:h});this._renderedColumnStartIndex=g.start,this._renderedColumnStopIndex=g.stop,this._renderedRowStartIndex=b.start,this._renderedRowStopIndex=b.stop;var M=l({direction:"horizontal",cellCount:o,overscanCellsCount:s,scrollDirection:p,startIndex:"number"==typeof g.start?g.start:0,stopIndex:"number"==typeof g.stop?g.stop:-1}),E=l({direction:"vertical",cellCount:u,overscanCellsCount:c,scrollDirection:f,startIndex:"number"==typeof b.start?b.start:0,stopIndex:"number"==typeof b.stop?b.stop:-1});if(this._columnStartIndex=M.overscanStartIndex,this._columnStopIndex=M.overscanStopIndex,this._rowStartIndex=E.overscanStartIndex,this._rowStopIndex=E.overscanStopIndex,a){if(!a.hasFixedHeight())for(var S=this._rowStartIndex;S<=this._rowStopIndex;S++)if(!a.has(S,0)){this._columnStartIndex=0,this._columnStopIndex=o-1;break}if(!a.hasFixedWidth())for(var w=this._columnStartIndex;w<=this._columnStopIndex;w++)if(!a.has(0,w)){this._rowStartIndex=0,this._rowStopIndex=u-1;break}}this._childrenToDisplay=r({cellCache:this._cellCache,cellRenderer:n,columnSizeAndPositionManager:this._columnSizeAndPositionManager,columnStartIndex:this._columnStartIndex,columnStopIndex:this._columnStopIndex,deferredMeasurementCache:a,horizontalOffsetAdjustment:y,isScrolling:_,parent:this,rowSizeAndPositionManager:this._rowSizeAndPositionManager,rowStartIndex:this._rowStartIndex,rowStopIndex:this._rowStopIndex,scrollLeft:m,scrollTop:h,styleCache:this._styleCache,verticalOffsetAdjustment:v,visibleColumnIndices:g,visibleRowIndices:b})}}},{key:"_debounceScrollEnded",value:function(){var e=this.props.scrollingResetTimeInterval;this._disablePointerEventsTimeoutId&&(0,y.cancelAnimationTimeout)(this._disablePointerEventsTimeoutId),this._disablePointerEventsTimeoutId=(0,y.requestAnimationTimeout)(this._debounceScrollEndedCallback,e)}},{key:"_getEstimatedColumnSize",value:function(e){return"number"==typeof e.columnWidth?e.columnWidth:e.estimatedColumnSize}},{key:"_getEstimatedRowSize",value:function(e){return"number"==typeof e.rowHeight?e.rowHeight:e.estimatedRowSize}},{key:"_handleInvalidatedGridSize",value:function(){if("number"==typeof this._deferredInvalidateColumnIndex&&"number"==typeof this._deferredInvalidateRowIndex){var e=this._deferredInvalidateColumnIndex,t=this._deferredInvalidateRowIndex;this._deferredInvalidateColumnIndex=null,this._deferredInvalidateRowIndex=null,this.recomputeGridSize({columnIndex:e,rowIndex:t})}}},{key:"_invokeOnScrollMemoizer",value:function(e){var t=this,n=e.scrollLeft,r=e.scrollTop,o=e.totalColumnsWidth,a=e.totalRowsHeight;this._onScrollMemoizer({callback:function(e){var n=e.scrollLeft,r=e.scrollTop,i=t.props,s=i.height;(0,i.onScroll)({clientHeight:s,clientWidth:i.width,scrollHeight:a,scrollLeft:n,scrollTop:r,scrollWidth:o})},indices:{scrollLeft:n,scrollTop:r}})}},{key:"_isScrolling",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.state;return Object.hasOwnProperty.call(e,"isScrolling")?Boolean(e.isScrolling):Boolean(t.isScrolling)}},{key:"_maybeCallOnScrollbarPresenceChange",value:function(){if(this._scrollbarPresenceChanged){var e=this.props.onScrollbarPresenceChange;this._scrollbarPresenceChanged=!1,e({horizontal:this._horizontalScrollBarSize>0,size:this._scrollbarSize,vertical:this._verticalScrollBarSize>0})}}},{key:"scrollToPosition",value:function(e){var t=e.scrollLeft,n=e.scrollTop,r={scrollPositionChangeReason:S};"number"==typeof t&&t>=0&&(r.scrollDirectionHorizontal=t>this.state.scrollLeft?m.SCROLL_DIRECTION_FORWARD:m.SCROLL_DIRECTION_BACKWARD,r.scrollLeft=t),"number"==typeof n&&n>=0&&(r.scrollDirectionVertical=n>this.state.scrollTop?m.SCROLL_DIRECTION_FORWARD:m.SCROLL_DIRECTION_BACKWARD,r.scrollTop=n),("number"==typeof t&&t>=0&&t!==this.state.scrollLeft||"number"==typeof n&&n>=0&&n!==this.state.scrollTop)&&this.setState(r)}},{key:"_wrapSizeGetter",value:function(e){return"function"==typeof e?e:function(){return e}}},{key:"_getCalculatedScrollLeft",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.state,n=e.columnCount,r=e.height,o=e.scrollToAlignment,a=e.scrollToColumn,i=e.width,s=t.scrollLeft;if(n>0){var l=n-1,c=a<0?l:Math.min(l,a),u=this._rowSizeAndPositionManager.getTotalSize()>r?this._scrollbarSize:0;return this._columnSizeAndPositionManager.getUpdatedOffsetForIndex({align:o,containerSize:i-u,currentOffset:s,targetIndex:c})}}},{key:"_updateScrollLeftForScrollToColumn",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.state,n=t.scrollLeft,r=this._getCalculatedScrollLeft(e,t);"number"==typeof r&&r>=0&&n!==r&&this.scrollToPosition({scrollLeft:r,scrollTop:-1})}},{key:"_getCalculatedScrollTop",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.state,n=e.height,r=e.rowCount,o=e.scrollToAlignment,a=e.scrollToRow,i=e.width,s=t.scrollTop;if(r>0){var l=r-1,c=a<0?l:Math.min(l,a),u=this._columnSizeAndPositionManager.getTotalSize()>i?this._scrollbarSize:0;return this._rowSizeAndPositionManager.getUpdatedOffsetForIndex({align:o,containerSize:n-u,currentOffset:s,targetIndex:c})}}},{key:"_resetStyleCache",value:function(){var e=this._styleCache;this._cellCache={},this._styleCache={};for(var t=this._rowStartIndex;t<=this._rowStopIndex;t++)for(var n=this._columnStartIndex;n<=this._columnStopIndex;n++){var r=t+"-"+n;this._styleCache[r]=e[r]}this.setState({isScrolling:!1})}},{key:"_updateScrollTopForScrollToRow",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.state,n=t.scrollTop,r=this._getCalculatedScrollTop(e,t);"number"==typeof r&&r>=0&&n!==r&&this.scrollToPosition({scrollLeft:-1,scrollTop:r})}}]),t}(c.PureComponent);w.defaultProps={"aria-label":"grid","aria-readonly":!0,autoContainerWidth:!1,autoHeight:!1,autoWidth:!1,cellRangeRenderer:g.default,containerRole:"rowgroup",containerStyle:{},estimatedColumnSize:100,estimatedRowSize:30,getScrollbarSize:b.default,noContentRenderer:function(){return null},onScroll:function(){},onScrollbarPresenceChange:function(){},onSectionRendered:function(){},overscanColumnCount:0,overscanIndicesGetter:h.default,overscanRowCount:10,role:"grid",scrollingResetTimeInterval:M,scrollToAlignment:"auto",scrollToColumn:-1,scrollToRow:-1,style:{},tabIndex:0},w.propTypes=null,t.default=w},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.cellCount,n=e.cellSize,r=e.computeMetadataCallback,o=e.computeMetadataCallbackProps,a=e.nextCellsCount,i=e.nextCellSize,s=e.nextScrollToIndex,l=e.scrollToIndex,c=e.updateScrollOffsetForScrollToIndex;t===a&&("number"!=typeof n&&"number"!=typeof i||n===i)||(r(o),l>=0&&l===s&&c())}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=a(n(7)),o=a(n(28));function a(e){return e&&e.__esModule?e:{default:e}}n(13).babelPluginFlowReactPropTypes_proptype_VisibleCellRange||n(0).any,n(13).babelPluginFlowReactPropTypes_proptype_CellSizeGetter||n(0).any,n(13).babelPluginFlowReactPropTypes_proptype_Alignment||n(0).any;var i=function(){function e(t){var n=t.cellCount,o=t.cellSizeGetter,a=t.estimatedCellSize;(0,r.default)(this,e),this._cellSizeAndPositionData={},this._lastMeasuredIndex=-1,this._lastBatchedIndex=-1,this._cellSizeGetter=o,this._cellCount=n,this._estimatedCellSize=a}return(0,o.default)(e,[{key:"areOffsetsAdjusted",value:function(){return!1}},{key:"configure",value:function(e){var t=e.cellCount,n=e.estimatedCellSize;this._cellCount=t,this._estimatedCellSize=n}},{key:"getCellCount",value:function(){return this._cellCount}},{key:"getEstimatedCellSize",value:function(){return this._estimatedCellSize}},{key:"getLastMeasuredIndex",value:function(){return this._lastMeasuredIndex}},{key:"getOffsetAdjustment",value:function(){return 0}},{key:"getSizeAndPositionOfCell",value:function(e){if(e<0||e>=this._cellCount)throw Error("Requested index "+e+" is outside of range 0.."+this._cellCount);if(e>this._lastMeasuredIndex)for(var t=this.getSizeAndPositionOfLastMeasuredCell(),n=t.offset+t.size,r=this._lastMeasuredIndex+1;r<=e;r++){var o=this._cellSizeGetter({index:r});if(void 0===o||isNaN(o))throw Error("Invalid size returned for cell "+r+" of value "+o);null===o?(this._cellSizeAndPositionData[r]={offset:n,size:0},this._lastBatchedIndex=e):(this._cellSizeAndPositionData[r]={offset:n,size:o},n+=o,this._lastMeasuredIndex=e)}return this._cellSizeAndPositionData[e]}},{key:"getSizeAndPositionOfLastMeasuredCell",value:function(){return this._lastMeasuredIndex>=0?this._cellSizeAndPositionData[this._lastMeasuredIndex]:{offset:0,size:0}}},{key:"getTotalSize",value:function(){var e=this.getSizeAndPositionOfLastMeasuredCell();return e.offset+e.size+(this._cellCount-this._lastMeasuredIndex-1)*this._estimatedCellSize}},{key:"getUpdatedOffsetForIndex",value:function(e){var t=e.align,n=void 0===t?"auto":t,r=e.containerSize,o=e.currentOffset,a=e.targetIndex;if(r<=0)return 0;var i=this.getSizeAndPositionOfCell(a),s=i.offset,l=s-r+i.size,c=void 0;switch(n){case"start":c=s;break;case"end":c=l;break;case"center":c=s-(r-i.size)/2;break;default:c=Math.max(l,Math.min(s,o))}var u=this.getTotalSize();return Math.max(0,Math.min(u-r,c))}},{key:"getVisibleCellRange",value:function(e){var t=e.containerSize,n=e.offset;if(0===this.getTotalSize())return{};var r=n+t,o=this._findNearestCell(n),a=this.getSizeAndPositionOfCell(o);n=a.offset+a.size;for(var i=o;nn&&(e=r-1)}return t>0?t-1:0}},{key:"_exponentialSearch",value:function(e,t){for(var n=1;e=e?this._binarySearch(n,0,e):this._exponentialSearch(n,e)}}]),e}();t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.getMaxElementSize=function(){return"undefined"!=typeof window&&window.chrome&&window.chrome.webstore?16777100:15e5}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e&&e.__esModule?e:{default:e}}(n(655));t.default=function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t={};return function(n){var o=n.callback,a=n.indices,i=(0,r.default)(a),s=!e||i.every(function(e){var t=a[e];return Array.isArray(t)?t.length>0:t>=0}),l=i.length!==(0,r.default)(t).length||i.some(function(e){var n=t[e],r=a[e];return Array.isArray(r)?n.join(",")!==r.join(","):n!==r});t=a,s&&l&&o(a)}}},function(e,t,n){e.exports={default:n(656),__esModule:!0}},function(e,t,n){n(657),e.exports=n(27).Object.keys},function(e,t,n){var r=n(94),o=n(68);n(131)("keys",function(){return function(e){return o(r(e))}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.cellSize,n=e.cellSizeAndPositionManager,r=e.previousCellsCount,o=e.previousCellSize,a=e.previousScrollToAlignment,i=e.previousScrollToIndex,s=e.previousSize,l=e.scrollOffset,c=e.scrollToAlignment,u=e.scrollToIndex,d=e.size,p=e.sizeJustIncreasedFromZero,f=e.updateScrollIndexCallback,m=n.getCellCount(),h=u>=0&&u0&&(dn.getTotalSize()-d&&f(m-1)};!function(e){e&&e.__esModule}(n(139));n(13).babelPluginFlowReactPropTypes_proptype_CellSize||n(0).any,n(13).babelPluginFlowReactPropTypes_proptype_Alignment||n(0).any},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){if((!o&&0!==o||e)&&r.default){var t=document.createElement("div");t.style.position="absolute",t.style.top="-9999px",t.style.width="50px",t.style.height="50px",t.style.overflow="scroll",document.body.appendChild(t),o=t.offsetWidth-t.clientWidth,document.body.removeChild(t)}return o};var r=function(e){return e&&e.__esModule?e:{default:e}}(n(660));var o=void 0;e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=!("undefined"==typeof window||!window.document||!window.document.createElement),e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=void 0,o=(r="undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).requestAnimationFrame||r.webkitRequestAnimationFrame||r.mozRequestAnimationFrame||r.oRequestAnimationFrame||r.msRequestAnimationFrame||function(e){return r.setTimeout(e,1e3/60)},a=r.cancelAnimationFrame||r.webkitCancelAnimationFrame||r.mozCancelAnimationFrame||r.oCancelAnimationFrame||r.msCancelAnimationFrame||function(e){r.clearTimeout(e)};t.raf=o,t.caf=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.cellCount,n=e.overscanCellsCount,o=e.scrollDirection,a=e.startIndex,i=e.stopIndex;return n=Math.max(1,n),o===r?{overscanStartIndex:Math.max(0,a-1),overscanStopIndex:Math.min(t-1,i+n)}:{overscanStartIndex:Math.max(0,a-n),overscanStopIndex:Math.min(t-1,i+1)}};n(13).babelPluginFlowReactPropTypes_proptype_OverscanIndices||n(0).any,n(13).babelPluginFlowReactPropTypes_proptype_OverscanIndicesGetterParams||n(0).any,t.SCROLL_DIRECTION_BACKWARD=-1;var r=t.SCROLL_DIRECTION_FORWARD=1;t.SCROLL_DIRECTION_HORIZONTAL="horizontal",t.SCROLL_DIRECTION_VERTICAL="vertical"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.indexes,n=e.indexStrategy,o=e.labelKey,a=void 0===o?"label":o,i=e.options,s=void 0===i?[]:i,l=e.sanitizer,c=e.searchIndex,u=e.tokenizer,d=e.valueKey,p=void 0===d?"value":d,f=new r.Search(p);f.searchIndex=c||new r.UnorderedSearchIndex,f.indexStrategy=n||new r.AllSubstringsIndexStrategy,l&&(f.sanitizer=l);u&&(f.tokenizer=u);t?t.forEach(function(e){f.addIndex(e)}):f.addIndex(a);return f.addDocuments(s),function(e,t,n){var r=t?f.search(t):e;if(Array.isArray(n)&&n.length){var o=n.map(function(e){return e[p]});return r.filter(function(e){return!o.includes(e[p])})}return r}};var r=n(664)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(141);Object.defineProperty(t,"AllSubstringsIndexStrategy",{enumerable:!0,get:function(){return r.AllSubstringsIndexStrategy}}),Object.defineProperty(t,"ExactWordIndexStrategy",{enumerable:!0,get:function(){return r.ExactWordIndexStrategy}}),Object.defineProperty(t,"PrefixIndexStrategy",{enumerable:!0,get:function(){return r.PrefixIndexStrategy}});var o=n(142);Object.defineProperty(t,"CaseSensitiveSanitizer",{enumerable:!0,get:function(){return o.CaseSensitiveSanitizer}}),Object.defineProperty(t,"LowerCaseSanitizer",{enumerable:!0,get:function(){return o.LowerCaseSanitizer}});var a=n(221);Object.defineProperty(t,"TfIdfSearchIndex",{enumerable:!0,get:function(){return a.TfIdfSearchIndex}}),Object.defineProperty(t,"UnorderedSearchIndex",{enumerable:!0,get:function(){return a.UnorderedSearchIndex}});var i=n(223);Object.defineProperty(t,"SimpleTokenizer",{enumerable:!0,get:function(){return i.SimpleTokenizer}}),Object.defineProperty(t,"StemmingTokenizer",{enumerable:!0,get:function(){return i.StemmingTokenizer}}),Object.defineProperty(t,"StopWordsTokenizer",{enumerable:!0,get:function(){return i.StopWordsTokenizer}});var s=n(675);Object.defineProperty(t,"Search",{enumerable:!0,get:function(){return s.Search}});var l=n(224);Object.defineProperty(t,"StopWordsMap",{enumerable:!0,get:function(){return l.StopWordsMap}});var c=n(676);Object.defineProperty(t,"TokenHighlighter",{enumerable:!0,get:function(){return c.TokenHighlighter}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n=0&&(d=this._wrapText(d),e=e.substring(0,f)+d+e.substring(o+1),o+=n,m+=n)}return e}},{key:"_wrapText",value:function(e){var t=this._wrapperTagName;return"<"+t+">"+e+""+t+">"}}]),e}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:[];var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];for(var o=0;or.relevance&&(r=o),o.relevance>n.relevance&&(r=n,n=o));return r.language&&(n.secondBest=r),n}function M(e,t,n,r,o){var a,l,g,y,E,T,k,C,x={},O=[],L=d,A=0;if("string"!=typeof e)throw new Error("Expected `string` for name, got `"+e+"`");if("string"!=typeof t)throw new Error("Expected `string` for value, got `"+t+"`");if(a=D(e),g=l=o||a,y=C=[],!a)throw new Error("Unknown language: `"+e+"` is not registered");!function(e){function t(t,r){return new RegExp(n(t),"m"+(e[c]?"i":"")+(r?"g":""))}function n(e){return e&&e.source||e}!function r(o,a){var s={};var l;if(o.compiled)return;o.compiled=!0;o.keywords=o.keywords||o.beginKeywords;o.keywords&&("string"==typeof o.keywords?m("keyword",o.keywords):Object.keys(o.keywords).forEach(function(e){m(e,o.keywords[e])}),o.keywords=s);o.lexemesRe=t(o.lexemes||/\w+/,!0);a&&(o.beginKeywords&&(o.begin="\\b("+o.beginKeywords.split(p).join(f)+")\\b"),o.begin||(o.begin=/\B|\b/),o.beginRe=t(o.begin),o.end||o.endsWithParent||(o.end=/\B|\b/),o.end&&(o.endRe=t(o.end)),o.terminatorEnd=n(o.end)||d,o.endsWithParent&&a.terminatorEnd&&(o.terminatorEnd+=(o.end?f:d)+a.terminatorEnd));o.illegal&&(o.illegalRe=t(o.illegal));void 0===o.relevance&&(o.relevance=1);o.contains||(o.contains=[]);o.contains=Array.prototype.concat.apply([],o.contains.map(function(e){return function(e){e.variants&&!e[u]&&(e[u]=e.variants.map(function(t){return i(e,{variants:null},t)}));return e[u]||e.endsWithParent&&[i(e)]||[e]}("self"===e?o:e)}));o.contains.forEach(function(e){r(e,o)});o.starts&&r(o.starts,a);l=o.contains.map(function(e){return e.beginKeywords?"\\.?("+e.begin+")\\.?":e.begin}).concat([o.terminatorEnd,o.illegal]).map(n).filter(Boolean);o.terminators=l.length?t(l.join(f),!0):{exec:w};function m(t,n){var r,o,a,i;for(e[c]&&(n=n.toLowerCase()),r=n.split(p),i=r.length,a=-1;++a")+'"');return L+=t,t.length||1}function N(e,t){var n;e.className&&(n=F(e.className,[])),e.returnBegin?L=d:e.excludeBegin?(R(t,y),L=d):L=t,n&&(y.push(n),O.push(y),y=n.children),l=Object.create(e,{parent:{value:l}})}function P(){var e=void 0===l.subLanguage?function(){var e,t,n,r,o=[];if(!l.keywords)return R(L,o);e=0,l.lexemesRe.lastIndex=0,t=l.lexemesRe.exec(L);for(;t;)R(L.substring(e,t.index),o),(r=Y(l,t))?(A+=r[1],n=F(r[0],[]),o.push(n),R(t[0],n.children)):R(t[0],o),e=l.lexemesRe.lastIndex,t=l.lexemesRe.exec(L);return R(L.substr(e),o),o}():function(){var e,t="string"==typeof l.subLanguage;if(t&&!b[l.subLanguage])return R(L,[]);e=t?M(l.subLanguage,L,!0,r,x[l.subLanguage]):v(L,{subset:l.subLanguage.length?l.subLanguage:void 0,prefix:r});l.relevance>0&&(A+=e.relevance);t&&(x[l.subLanguage]=e.top);return[F(e.language,e.value,!0)]}();return L=d,e}function I(e,t){for(var n,r=e.length,o=-1;++o]+>|\t|)+|(?:\n)))/gm,l="",c={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0};function u(e){return e.replace(/&/g,"&").replace(//g,">")}function d(e){return e.nodeName.toLowerCase()}function p(e,t){var n=e&&e.exec(t);return n&&0===n.index}function f(e){return a.test(e)}function m(e){var t,n={},r=Array.prototype.slice.call(arguments,1);for(t in e)n[t]=e[t];return r.forEach(function(e){for(t in e)n[t]=e[t]}),n}function h(e){var t=[];return function e(n,r){for(var o=n.firstChild;o;o=o.nextSibling)3===o.nodeType?r+=o.nodeValue.length:1===o.nodeType&&(t.push({event:"start",offset:r,node:o}),r=e(o,r),d(o).match(/br|hr|img|input/)||t.push({event:"stop",offset:r,node:o}));return r}(e,0),t}function _(e){function t(e){return e&&e.source||e}function r(n,r){return new RegExp(t(n),"m"+(e.case_insensitive?"i":"")+(r?"g":""))}!function o(a,i){if(a.compiled)return;a.compiled=!0;a.keywords=a.keywords||a.beginKeywords;if(a.keywords){var s={},l=function(t,n){e.case_insensitive&&(n=n.toLowerCase()),n.split(" ").forEach(function(e){var n=e.split("|");s[n[0]]=[t,n[1]?Number(n[1]):1]})};"string"==typeof a.keywords?l("keyword",a.keywords):n(a.keywords).forEach(function(e){l(e,a.keywords[e])}),a.keywords=s}a.lexemesRe=r(a.lexemes||/\w+/,!0);i&&(a.beginKeywords&&(a.begin="\\b("+a.beginKeywords.split(" ").join("|")+")\\b"),a.begin||(a.begin=/\B|\b/),a.beginRe=r(a.begin),a.end||a.endsWithParent||(a.end=/\B|\b/),a.end&&(a.endRe=r(a.end)),a.terminator_end=t(a.end)||"",a.endsWithParent&&i.terminator_end&&(a.terminator_end+=(a.end?"|":"")+i.terminator_end));a.illegal&&(a.illegalRe=r(a.illegal));null==a.relevance&&(a.relevance=1);a.contains||(a.contains=[]);a.contains=Array.prototype.concat.apply([],a.contains.map(function(e){return function(e){e.variants&&!e.cached_variants&&(e.cached_variants=e.variants.map(function(t){return m(e,{variants:null},t)}));return e.cached_variants||e.endsWithParent&&[m(e)]||[e]}("self"===e?a:e)}));a.contains.forEach(function(e){o(e,a)});a.starts&&o(a.starts,i);var c=a.contains.map(function(e){return e.beginKeywords?"\\.?("+e.begin+")\\.?":e.begin}).concat([a.terminator_end,a.illegal]).map(t).filter(Boolean);a.terminators=c.length?r(c.join("|"),!0):{exec:function(){return null}}}(e)}function g(e,t,n,o){function a(e,t){var n=m.case_insensitive?t[0].toLowerCase():t[0];return e.keywords.hasOwnProperty(n)&&e.keywords[n]}function i(e,t,n,r){var o=r?"":c.classPrefix,a='')+t+i}function s(){M+=null!=y.subLanguage?function(){var e="string"==typeof y.subLanguage;if(e&&!r[y.subLanguage])return u(S);var t=e?g(y.subLanguage,S,!0,v[y.subLanguage]):b(S,y.subLanguage.length?y.subLanguage:void 0);y.relevance>0&&(w+=t.relevance);e&&(v[y.subLanguage]=t.top);return i(t.language,t.value,!1,!0)}():function(){var e,t,n,r;if(!y.keywords)return u(S);r="",t=0,y.lexemesRe.lastIndex=0,n=y.lexemesRe.exec(S);for(;n;)r+=u(S.substring(t,n.index)),(e=a(y,n))?(w+=e[1],r+=i(e[0],u(n[0]))):r+=u(n[0]),t=y.lexemesRe.lastIndex,n=y.lexemesRe.exec(S);return r+u(S.substr(t))}(),S=""}function d(e){M+=e.className?i(e.className,"",!0):"",y=Object.create(e,{parent:{value:y}})}function f(e,t){if(S+=e,null==t)return s(),0;var r=function(e,t){var n,r;for(n=0,r=t.contains.length;n")+'"');return S+=t,t.length||1}var m=E(e);if(!m)throw new Error('Unknown language: "'+e+'"');_(m);var h,y=o||m,v={},M="";for(h=y;h!==m;h=h.parent)h.className&&(M=i(h.className,"",!0)+M);var S="",w=0;try{for(var D,T,k=0;y.terminators.lastIndex=k,D=y.terminators.exec(t);)T=f(t.substring(k,D.index),D[0]),k=D.index+T;for(f(t.substr(k)),h=y;h.parent;h=h.parent)h.className&&(M+=l);return{relevance:w,value:M,language:e,top:y}}catch(e){if(e.message&&-1!==e.message.indexOf("Illegal"))return{relevance:0,value:u(t)};throw e}}function b(e,t){t=t||c.languages||n(r);var o={relevance:0,value:u(e)},a=o;return t.filter(E).forEach(function(t){var n=g(t,e,!1);n.language=t,n.relevance>a.relevance&&(a=n),n.relevance>o.relevance&&(a=o,o=n)}),a.language&&(o.second_best=a),o}function y(e){return c.tabReplace||c.useBR?e.replace(s,function(e,t){return c.useBR&&"\n"===e?" ":c.tabReplace?t.replace(/\t/g,c.tabReplace):""}):e}function v(e){var n,r,a,s,l,p=function(e){var t,n,r,o,a=e.className+" ";if(a+=e.parentNode?e.parentNode.className:"",n=i.exec(a))return E(n[1])?n[1]:"no-highlight";for(a=a.split(/\s+/),t=0,r=a.length;t/g,"\n"):n=e,l=n.textContent,a=p?g(p,l,!0):b(l),(r=h(n)).length&&((s=document.createElementNS("http://www.w3.org/1999/xhtml","div")).innerHTML=a.value,a.value=function(e,n,r){var o=0,a="",i=[];function s(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset"}function c(e){a+=""+d(e)+">"}function p(e){("start"===e.event?l:c)(e.node)}for(;e.length||n.length;){var f=s();if(a+=u(r.substring(o,f[0].offset)),o=f[0].offset,f===e){i.reverse().forEach(c);do{p(f.splice(0,1)[0]),f=s()}while(f===e&&f.length&&f[0].offset===o);i.reverse().forEach(l)}else"start"===f[0].event?i.push(f[0].node):i.pop(),p(f.splice(0,1)[0])}return a+u(r.substr(o))}(r,h(s),l)),a.value=y(a.value),e.innerHTML=a.value,e.className=function(e,t,n){var r=t?o[t]:n,a=[e.trim()];e.match(/\bhljs\b/)||a.push("hljs");-1===e.indexOf(r)&&a.push(r);return a.join(" ").trim()}(e.className,p,a.language),e.result={language:a.language,re:a.relevance},a.second_best&&(e.second_best={language:a.second_best.language,re:a.second_best.relevance}))}function M(){if(!M.called){M.called=!0;var e=document.querySelectorAll("pre code");t.forEach.call(e,v)}}function E(e){return e=(e||"").toLowerCase(),r[e]||r[o[e]]}e.highlight=g,e.highlightAuto=b,e.fixMarkup=y,e.highlightBlock=v,e.configure=function(e){c=m(c,e)},e.initHighlighting=M,e.initHighlightingOnLoad=function(){addEventListener("DOMContentLoaded",M,!1),addEventListener("load",M,!1)},e.registerLanguage=function(t,n){var a=r[t]=n(e);a.aliases&&a.aliases.forEach(function(e){o[e]=t})},e.listLanguages=function(){return n(r)},e.getLanguage=E,e.inherit=m,e.IDENT_RE="[a-zA-Z]\\w*",e.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",e.NUMBER_RE="\\b\\d+(\\.\\d+)?",e.C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BINARY_NUMBER_RE="\\b(0b[01]+)",e.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BACKSLASH_ESCAPE={begin:"\\\\[\\s\\S]",relevance:0},e.APOS_STRING_MODE={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},e.QUOTE_STRING_MODE={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},e.PHRASAL_WORDS_MODE={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},e.COMMENT=function(t,n,r){var o=e.inherit({className:"comment",begin:t,end:n,contains:[]},r||{});return o.contains.push(e.PHRASAL_WORDS_MODE),o.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|XXX):",relevance:0}),o},e.C_LINE_COMMENT_MODE=e.COMMENT("//","$"),e.C_BLOCK_COMMENT_MODE=e.COMMENT("/\\*","\\*/"),e.HASH_COMMENT_MODE=e.COMMENT("#","$"),e.NUMBER_MODE={className:"number",begin:e.NUMBER_RE,relevance:0},e.C_NUMBER_MODE={className:"number",begin:e.C_NUMBER_RE,relevance:0},e.BINARY_NUMBER_MODE={className:"number",begin:e.BINARY_NUMBER_RE,relevance:0},e.CSS_NUMBER_MODE={className:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},e.REGEXP_MODE={className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}]},e.TITLE_MODE={className:"title",begin:e.IDENT_RE,relevance:0},e.UNDERSCORE_TITLE_MODE={className:"title",begin:e.UNDERSCORE_IDENT_RE,relevance:0},e.METHOD_GUARD={begin:"\\.\\s*"+e.UNDERSCORE_IDENT_RE,relevance:0}})(t)}()},function(e,t){e.exports=function(e){var t="[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]+",n="далее возврат вызватьисключение выполнить для если и из или иначе иначеесли исключение каждого конецесли конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл экспорт ",r="null истина ложь неопределено",o=e.inherit(e.NUMBER_MODE),a={className:"string",begin:'"|\\|',end:'"|$',contains:[{begin:'""'}]},i={begin:"'",end:"'",excludeBegin:!0,excludeEnd:!0,contains:[{className:"number",begin:"\\d{4}([\\.\\\\/:-]?\\d{2}){0,5}"}]},s=e.inherit(e.C_LINE_COMMENT_MODE);return{case_insensitive:!0,lexemes:t,keywords:{keyword:n,built_in:"разделительстраниц разделительстрок символтабуляции ansitooem oemtoansi ввестивидсубконто ввестиперечисление ввестипериод ввестиплансчетов выбранныйплансчетов датагод датамесяц датачисло заголовоксистемы значениевстроку значениеизстроки каталогиб каталогпользователя кодсимв конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лог лог10 максимальноеколичествосубконто названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найтиссылки началопериодаби началостандартногоинтервала начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода обработкаожидания основнойжурналрасчетов основнойплансчетов основнойязык очиститьокносообщений периодстр получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта префиксавтонумерации пропись пустоезначение разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо симв создатьобъект статусвозврата стрколичествострок сформироватьпозициюдокумента счетпокоду текущеевремя типзначения типзначениястр установитьтана установитьтапо фиксшаблон шаблон acos asin atan base64значение base64строка cos exp log log10 pow sin sqrt tan xmlзначение xmlстрока xmlтип xmlтипзнч активноеокно безопасныйрежим безопасныйрежимразделенияданных булево ввестидату ввестизначение ввестистроку ввестичисло возможностьчтенияxml вопрос восстановитьзначение врег выгрузитьжурналрегистрации выполнитьобработкуоповещения выполнитьпроверкуправдоступа вычислить год данныеформывзначение дата день деньгода деньнедели добавитьмесяц заблокироватьданныедляредактирования заблокироватьработупользователя завершитьработусистемы загрузитьвнешнююкомпоненту закрытьсправку записатьjson записатьxml записатьдатуjson записьжурналарегистрации заполнитьзначениясвойств запроситьразрешениепользователя запуститьприложение запуститьсистему зафиксироватьтранзакцию значениевданныеформы значениевстрокувнутр значениевфайл значениезаполнено значениеизстрокивнутр значениеизфайла изxmlтипа импортмоделиxdto имякомпьютера имяпользователя инициализироватьпредопределенныеданные информацияобошибке каталогбиблиотекимобильногоустройства каталогвременныхфайлов каталогдокументов каталогпрограммы кодироватьстроку кодлокализацииинформационнойбазы кодсимвола командасистемы конецгода конецдня конецквартала конецмесяца конецминуты конецнедели конецчаса конфигурациябазыданныхизмененадинамически конфигурацияизменена копироватьданныеформы копироватьфайл краткоепредставлениеошибки лев макс местноевремя месяц мин минута монопольныйрежим найти найтинедопустимыесимволыxml найтиокнопонавигационнойссылке найтипомеченныенаудаление найтипоссылкам найтифайлы началогода началодня началоквартала началомесяца началоминуты началонедели началочаса начатьзапросразрешенияпользователя начатьзапускприложения начатькопированиефайла начатьперемещениефайла начатьподключениевнешнейкомпоненты начатьподключениерасширенияработыскриптографией начатьподключениерасширенияработысфайлами начатьпоискфайлов начатьполучениекаталогавременныхфайлов начатьполучениекаталогадокументов начатьполучениерабочегокаталогаданныхпользователя начатьполучениефайлов начатьпомещениефайла начатьпомещениефайлов начатьсозданиедвоичныхданныхизфайла начатьсозданиекаталога начатьтранзакцию начатьудалениефайлов начатьустановкувнешнейкомпоненты начатьустановкурасширенияработыскриптографией начатьустановкурасширенияработысфайлами неделягода необходимостьзавершениясоединения номерсеансаинформационнойбазы номерсоединенияинформационнойбазы нрег нстр обновитьинтерфейс обновитьнумерациюобъектов обновитьповторноиспользуемыезначения обработкапрерыванияпользователя объединитьфайлы окр описаниеошибки оповестить оповеститьобизменении отключитьобработчикзапросанастроекклиенталицензирования отключитьобработчикожидания отключитьобработчикоповещения открытьзначение открытьиндекссправки открытьсодержаниесправки открытьсправку открытьформу открытьформумодально отменитьтранзакцию очиститьжурналрегистрации очиститьнастройкипользователя очиститьсообщения параметрыдоступа перейтипонавигационнойссылке переместитьфайл подключитьвнешнююкомпоненту подключитьобработчикзапросанастроекклиенталицензирования подключитьобработчикожидания подключитьобработчикоповещения подключитьрасширениеработыскриптографией подключитьрасширениеработысфайлами подробноепредставлениеошибки показатьвводдаты показатьвводзначения показатьвводстроки показатьвводчисла показатьвопрос показатьзначение показатьинформациюобошибке показатьнакарте показатьоповещениепользователя показатьпредупреждение полноеимяпользователя получитьcomобъект получитьxmlтип получитьадреспоместоположению получитьблокировкусеансов получитьвремязавершенияспящегосеанса получитьвремязасыпанияпассивногосеанса получитьвремяожиданияблокировкиданных получитьданныевыбора получитьдополнительныйпараметрклиенталицензирования получитьдопустимыекодылокализации получитьдопустимыечасовыепояса получитьзаголовокклиентскогоприложения получитьзаголовоксистемы получитьзначенияотборажурналарегистрации получитьидентификаторконфигурации получитьизвременногохранилища получитьимявременногофайла получитьимяклиенталицензирования получитьинформациюэкрановклиента получитьиспользованиежурналарегистрации получитьиспользованиесобытияжурналарегистрации получитькраткийзаголовокприложения получитьмакетоформления получитьмаскувсефайлы получитьмаскувсефайлыклиента получитьмаскувсефайлысервера получитьместоположениепоадресу получитьминимальнуюдлинупаролейпользователей получитьнавигационнуюссылку получитьнавигационнуюссылкуинформационнойбазы получитьобновлениеконфигурациибазыданных получитьобновлениепредопределенныхданныхинформационнойбазы получитьобщиймакет получитьобщуюформу получитьокна получитьоперативнуюотметкувремени получитьотключениебезопасногорежима получитьпараметрыфункциональныхопцийинтерфейса получитьполноеимяпредопределенногозначения получитьпредставлениянавигационныхссылок получитьпроверкусложностипаролейпользователей получитьразделительпути получитьразделительпутиклиента получитьразделительпутисервера получитьсеансыинформационнойбазы получитьскоростьклиентскогосоединения получитьсоединенияинформационнойбазы получитьсообщенияпользователю получитьсоответствиеобъектаиформы получитьсоставстандартногоинтерфейсаodata получитьструктурухранениябазыданных получитьтекущийсеансинформационнойбазы получитьфайл получитьфайлы получитьформу получитьфункциональнуюопцию получитьфункциональнуюопциюинтерфейса получитьчасовойпоясинформационнойбазы пользователиос поместитьвовременноехранилище поместитьфайл поместитьфайлы прав праводоступа предопределенноезначение представлениекодалокализации представлениепериода представлениеправа представлениеприложения представлениесобытияжурналарегистрации представлениечасовогопояса предупреждение прекратитьработусистемы привилегированныйрежим продолжитьвызов прочитатьjson прочитатьxml прочитатьдатуjson пустаястрока рабочийкаталогданныхпользователя разблокироватьданныедляредактирования разделитьфайл разорватьсоединениесвнешнимисточникомданных раскодироватьстроку рольдоступна секунда сигнал символ скопироватьжурналрегистрации смещениелетнеговремени смещениестандартноговремени соединитьбуферыдвоичныхданных создатькаталог создатьфабрикуxdto сокрл сокрлп сокрп сообщить состояние сохранитьзначение сохранитьнастройкипользователя сред стрдлина стрзаканчиваетсяна стрзаменить стрнайти стрначинаетсяс строка строкасоединенияинформационнойбазы стрполучитьстроку стрразделить стрсоединить стрсравнить стрчисловхождений стрчислострок стршаблон текущаядата текущаядатасеанса текущаяуниверсальнаядата текущаяуниверсальнаядатавмиллисекундах текущийвариантинтерфейсаклиентскогоприложения текущийвариантосновногошрифтаклиентскогоприложения текущийкодлокализации текущийрежимзапуска текущийязык текущийязыксистемы тип типзнч транзакцияактивна трег удалитьданныеинформационнойбазы удалитьизвременногохранилища удалитьобъекты удалитьфайлы универсальноевремя установитьбезопасныйрежим установитьбезопасныйрежимразделенияданных установитьблокировкусеансов установитьвнешнююкомпоненту установитьвремязавершенияспящегосеанса установитьвремязасыпанияпассивногосеанса установитьвремяожиданияблокировкиданных установитьзаголовокклиентскогоприложения установитьзаголовоксистемы установитьиспользованиежурналарегистрации установитьиспользованиесобытияжурналарегистрации установитькраткийзаголовокприложения установитьминимальнуюдлинупаролейпользователей установитьмонопольныйрежим установитьнастройкиклиенталицензирования установитьобновлениепредопределенныхданныхинформационнойбазы установитьотключениебезопасногорежима установитьпараметрыфункциональныхопцийинтерфейса установитьпривилегированныйрежим установитьпроверкусложностипаролейпользователей установитьрасширениеработыскриптографией установитьрасширениеработысфайлами установитьсоединениесвнешнимисточникомданных установитьсоответствиеобъектаиформы установитьсоставстандартногоинтерфейсаodata установитьчасовойпоясинформационнойбазы установитьчасовойпояссеанса формат цел час часовойпояс часовойпояссеанса число числопрописью этоадресвременногохранилища wsссылки библиотекакартинок библиотекамакетовоформлениякомпоновкиданных библиотекастилей бизнеспроцессы внешниеисточникиданных внешниеобработки внешниеотчеты встроенныепокупки главныйинтерфейс главныйстиль документы доставляемыеуведомления журналыдокументов задачи информацияобинтернетсоединении использованиерабочейдаты историяработыпользователя константы критерииотбора метаданные обработки отображениерекламы отправкадоставляемыхуведомлений отчеты панельзадачос параметрзапуска параметрысеанса перечисления планывидоврасчета планывидовхарактеристик планыобмена планысчетов полнотекстовыйпоиск пользователиинформационнойбазы последовательности проверкавстроенныхпокупок рабочаядата расширенияконфигурации регистрыбухгалтерии регистрынакопления регистрырасчета регистрысведений регламентныезадания сериализаторxdto справочники средствагеопозиционирования средствакриптографии средствамультимедиа средстваотображениярекламы средствапочты средствателефонии фабрикаxdto файловыепотоки фоновыезадания хранилищанастроек хранилищевариантовотчетов хранилищенастроекданныхформ хранилищеобщихнастроек хранилищепользовательскихнастроекдинамическихсписков хранилищепользовательскихнастроекотчетов хранилищесистемныхнастроек ",class:"webцвета windowsцвета windowsшрифты библиотекакартинок рамкистиля символы цветастиля шрифтыстиля автоматическоесохранениеданныхформывнастройках автонумерациявформе автораздвижениесерий анимациядиаграммы вариантвыравниванияэлементовизаголовков вариантуправлениявысотойтаблицы вертикальнаяпрокруткаформы вертикальноеположение вертикальноеположениеэлемента видгруппыформы виддекорацииформы виддополненияэлементаформы видизмененияданных видкнопкиформы видпереключателя видподписейкдиаграмме видполяформы видфлажка влияниеразмеранапузырекдиаграммы горизонтальноеположение горизонтальноеположениеэлемента группировкаколонок группировкаподчиненныхэлементовформы группыиэлементы действиеперетаскивания дополнительныйрежимотображения допустимыедействияперетаскивания интервалмеждуэлементамиформы использованиевывода использованиеполосыпрокрутки используемоезначениеточкибиржевойдиаграммы историявыборапривводе источникзначенийоситочекдиаграммы источникзначенияразмерапузырькадиаграммы категориягруппыкоманд максимумсерий начальноеотображениедерева начальноеотображениесписка обновлениетекстаредактирования ориентациядендрограммы ориентациядиаграммы ориентацияметокдиаграммы ориентацияметоксводнойдиаграммы ориентацияэлементаформы отображениевдиаграмме отображениевлегендедиаграммы отображениегруппыкнопок отображениезаголовкашкалыдиаграммы отображениезначенийсводнойдиаграммы отображениезначенияизмерительнойдиаграммы отображениеинтерваладиаграммыганта отображениекнопки отображениекнопкивыбора отображениеобсужденийформы отображениеобычнойгруппы отображениеотрицательныхзначенийпузырьковойдиаграммы отображениепанелипоиска отображениеподсказки отображениепредупрежденияприредактировании отображениеразметкиполосырегулирования отображениестраницформы отображениетаблицы отображениетекстазначениядиаграммыганта отображениеуправленияобычнойгруппы отображениефигурыкнопки палитрацветовдиаграммы поведениеобычнойгруппы поддержкамасштабадендрограммы поддержкамасштабадиаграммыганта поддержкамасштабасводнойдиаграммы поисквтаблицепривводе положениезаголовкаэлементаформы положениекартинкикнопкиформы положениекартинкиэлементаграфическойсхемы положениекоманднойпанелиформы положениекоманднойпанелиэлементаформы положениеопорнойточкиотрисовки положениеподписейкдиаграмме положениеподписейшкалызначенийизмерительнойдиаграммы положениесостоянияпросмотра положениестрокипоиска положениетекстасоединительнойлинии положениеуправленияпоиском положениешкалывремени порядокотображенияточекгоризонтальнойгистограммы порядоксерийвлегендедиаграммы размеркартинки расположениезаголовкашкалыдиаграммы растягиваниеповертикалидиаграммыганта режимавтоотображениясостояния режимвводастроктаблицы режимвыборанезаполненного режимвыделениядаты режимвыделениястрокитаблицы режимвыделениятаблицы режимизмененияразмера режимизменениясвязанногозначения режимиспользованиядиалогапечати режимиспользованияпараметракоманды режиммасштабированияпросмотра режимосновногоокнаклиентскогоприложения режимоткрытияокнаформы режимотображениявыделения режимотображениягеографическойсхемы режимотображениязначенийсерии режимотрисовкисеткиграфическойсхемы режимполупрозрачностидиаграммы режимпробеловдиаграммы режимразмещениянастранице режимредактированияколонки режимсглаживаниядиаграммы режимсглаживанияиндикатора режимсписказадач сквозноевыравнивание сохранениеданныхформывнастройках способзаполнениятекстазаголовкашкалыдиаграммы способопределенияограничивающегозначениядиаграммы стандартнаягруппакоманд стандартноеоформление статусоповещенияпользователя стильстрелки типаппроксимациилиниитрендадиаграммы типдиаграммы типединицышкалывремени типимпортасерийслоягеографическойсхемы типлиниигеографическойсхемы типлиниидиаграммы типмаркерагеографическойсхемы типмаркерадиаграммы типобластиоформления типорганизацииисточникаданныхгеографическойсхемы типотображениясериислоягеографическойсхемы типотображенияточечногообъектагеографическойсхемы типотображенияшкалыэлементалегендыгеографическойсхемы типпоискаобъектовгеографическойсхемы типпроекциигеографическойсхемы типразмещенияизмерений типразмещенияреквизитовизмерений типрамкиэлементауправления типсводнойдиаграммы типсвязидиаграммыганта типсоединениязначенийпосериямдиаграммы типсоединенияточекдиаграммы типсоединительнойлинии типстороныэлементаграфическойсхемы типформыотчета типшкалырадарнойдиаграммы факторлиниитрендадиаграммы фигуракнопки фигурыграфическойсхемы фиксациявтаблице форматдняшкалывремени форматкартинки ширинаподчиненныхэлементовформы виддвижениябухгалтерии виддвижениянакопления видпериодарегистрарасчета видсчета видточкимаршрутабизнеспроцесса использованиеагрегатарегистранакопления использованиегруппиэлементов использованиережимапроведения использованиесреза периодичностьагрегатарегистранакопления режимавтовремя режимзаписидокумента режимпроведениядокумента авторегистрацияизменений допустимыйномерсообщения отправкаэлементаданных получениеэлементаданных использованиерасшифровкитабличногодокумента ориентациястраницы положениеитоговколоноксводнойтаблицы положениеитоговстроксводнойтаблицы положениетекстаотносительнокартинки расположениезаголовкагруппировкитабличногодокумента способчтениязначенийтабличногодокумента типдвустороннейпечати типзаполненияобластитабличногодокумента типкурсоровтабличногодокумента типлиниирисункатабличногодокумента типлинииячейкитабличногодокумента типнаправленияпереходатабличногодокумента типотображениявыделениятабличногодокумента типотображениялинийсводнойтаблицы типразмещениятекстатабличногодокумента типрисункатабличногодокумента типсмещениятабличногодокумента типузоратабличногодокумента типфайлатабличногодокумента точностьпечати чередованиерасположениястраниц отображениевремениэлементовпланировщика типфайлаформатированногодокумента обходрезультатазапроса типзаписизапроса видзаполнениярасшифровкипостроителяотчета типдобавленияпредставлений типизмеренияпостроителяотчета типразмещенияитогов доступкфайлу режимдиалогавыборафайла режимоткрытияфайла типизмеренияпостроителязапроса видданныханализа методкластеризации типединицыинтервалавременианализаданных типзаполнениятаблицырезультатаанализаданных типиспользованиячисловыхзначенийанализаданных типисточникаданныхпоискаассоциаций типколонкианализаданныхдереворешений типколонкианализаданныхкластеризация типколонкианализаданныхобщаястатистика типколонкианализаданныхпоискассоциаций типколонкианализаданныхпоискпоследовательностей типколонкимоделипрогноза типмерырасстоянияанализаданных типотсеченияправилассоциации типполяанализаданных типстандартизациианализаданных типупорядочиванияправилассоциациианализаданных типупорядочиванияшаблоновпоследовательностейанализаданных типупрощениядереварешений wsнаправлениепараметра вариантxpathxs вариантзаписидатыjson вариантпростоготипаxs видгруппымоделиxs видфасетаxdto действиепостроителяdom завершенностьпростоготипаxs завершенностьсоставноготипаxs завершенностьсхемыxs запрещенныеподстановкиxs исключениягруппподстановкиxs категорияиспользованияатрибутаxs категорияограниченияидентичностиxs категорияограниченияпространствименxs методнаследованияxs модельсодержимогоxs назначениетипаxml недопустимыеподстановкиxs обработкапробельныхсимволовxs обработкасодержимогоxs ограничениезначенияxs параметрыотбораузловdom переносстрокjson позициявдокументеdom пробельныесимволыxml типатрибутаxml типзначенияjson типканоническогоxml типкомпонентыxs типпроверкиxml типрезультатаdomxpath типузлаdom типузлаxml формаxml формапредставленияxs форматдатыjson экранированиесимволовjson видсравнениякомпоновкиданных действиеобработкирасшифровкикомпоновкиданных направлениесортировкикомпоновкиданных расположениевложенныхэлементоврезультатакомпоновкиданных расположениеитоговкомпоновкиданных расположениегруппировкикомпоновкиданных расположениеполейгруппировкикомпоновкиданных расположениеполякомпоновкиданных расположениереквизитовкомпоновкиданных расположениересурсовкомпоновкиданных типбухгалтерскогоостаткакомпоновкиданных типвыводатекстакомпоновкиданных типгруппировкикомпоновкиданных типгруппыэлементовотборакомпоновкиданных типдополненияпериодакомпоновкиданных типзаголовкаполейкомпоновкиданных типмакетагруппировкикомпоновкиданных типмакетаобластикомпоновкиданных типостаткакомпоновкиданных типпериодакомпоновкиданных типразмещениятекстакомпоновкиданных типсвязинаборовданныхкомпоновкиданных типэлементарезультатакомпоновкиданных расположениелегендыдиаграммыкомпоновкиданных типпримененияотборакомпоновкиданных режимотображенияэлементанастройкикомпоновкиданных режимотображениянастроеккомпоновкиданных состояниеэлементанастройкикомпоновкиданных способвосстановлениянастроеккомпоновкиданных режимкомпоновкирезультата использованиепараметракомпоновкиданных автопозицияресурсовкомпоновкиданных вариантиспользованиягруппировкикомпоновкиданных расположениересурсоввдиаграммекомпоновкиданных фиксациякомпоновкиданных использованиеусловногооформлениякомпоновкиданных важностьинтернетпочтовогосообщения обработкатекстаинтернетпочтовогосообщения способкодированияинтернетпочтовоговложения способкодированиянеasciiсимволовинтернетпочтовогосообщения типтекстапочтовогосообщения протоколинтернетпочты статусразборапочтовогосообщения режимтранзакциизаписижурналарегистрации статустранзакциизаписижурналарегистрации уровеньжурналарегистрации расположениехранилищасертификатовкриптографии режимвключениясертификатовкриптографии режимпроверкисертификатакриптографии типхранилищасертификатовкриптографии кодировкаименфайловвzipфайле методсжатияzip методшифрованияzip режимвосстановленияпутейфайловzip режимобработкиподкаталоговzip режимсохраненияпутейzip уровеньсжатияzip звуковоеоповещение направлениепереходакстроке позициявпотоке порядокбайтов режимблокировкиданных режимуправленияблокировкойданных сервисвстроенныхпокупок состояниефоновогозадания типподписчикадоставляемыхуведомлений уровеньиспользованиязащищенногосоединенияftp направлениепорядкасхемызапроса типдополненияпериодамисхемызапроса типконтрольнойточкисхемызапроса типобъединениясхемызапроса типпараметрадоступнойтаблицысхемызапроса типсоединениясхемызапроса httpметод автоиспользованиеобщегореквизита автопрефиксномеразадачи вариантвстроенногоязыка видиерархии видрегистранакопления видтаблицывнешнегоисточникаданных записьдвиженийприпроведении заполнениепоследовательностей индексирование использованиебазыпланавидоврасчета использованиебыстроговыбора использованиеобщегореквизита использованиеподчинения использованиеполнотекстовогопоиска использованиеразделяемыхданныхобщегореквизита использованиереквизита назначениеиспользованияприложения назначениерасширенияконфигурации направлениепередачи обновлениепредопределенныхданных оперативноепроведение основноепредставлениевидарасчета основноепредставлениевидахарактеристики основноепредставлениезадачи основноепредставлениепланаобмена основноепредставлениесправочника основноепредставлениесчета перемещениеграницыприпроведении периодичностьномерабизнеспроцесса периодичностьномерадокумента периодичностьрегистрарасчета периодичностьрегистрасведений повторноеиспользованиевозвращаемыхзначений полнотекстовыйпоискпривводепостроке принадлежностьобъекта проведение разделениеаутентификацииобщегореквизита разделениеданныхобщегореквизита разделениерасширенийконфигурацииобщегореквизита режимавтонумерацииобъектов режимзаписирегистра режимиспользованиямодальности режимиспользованиясинхронныхвызововрасширенийплатформыивнешнихкомпонент режимповторногоиспользованиясеансов режимполученияданныхвыборапривводепостроке режимсовместимости режимсовместимостиинтерфейса режимуправленияблокировкойданныхпоумолчанию сериикодовпланавидовхарактеристик сериикодовпланасчетов сериикодовсправочника созданиепривводе способвыбора способпоискастрокипривводепостроке способредактирования типданныхтаблицывнешнегоисточникаданных типкодапланавидоврасчета типкодасправочника типмакета типномерабизнеспроцесса типномерадокумента типномеразадачи типформы удалениедвижений важностьпроблемыприменениярасширенияконфигурации вариантинтерфейсаклиентскогоприложения вариантмасштабаформклиентскогоприложения вариантосновногошрифтаклиентскогоприложения вариантстандартногопериода вариантстандартнойдатыначала видграницы видкартинки видотображенияполнотекстовогопоиска видрамки видсравнения видцвета видчисловогозначения видшрифта допустимаядлина допустимыйзнак использованиеbyteordermark использованиеметаданныхполнотекстовогопоиска источникрасширенийконфигурации клавиша кодвозвратадиалога кодировкаxbase кодировкатекста направлениепоиска направлениесортировки обновлениепредопределенныхданных обновлениеприизмененииданных отображениепанелиразделов проверказаполнения режимдиалогавопрос режимзапускаклиентскогоприложения режимокругления режимоткрытияформприложения режимполнотекстовогопоиска скоростьклиентскогосоединения состояниевнешнегоисточникаданных состояниеобновленияконфигурациибазыданных способвыборасертификатаwindows способкодированиястроки статуссообщения типвнешнейкомпоненты типплатформы типповеденияклавишиenter типэлементаинформацииовыполненииобновленияконфигурациибазыданных уровеньизоляциитранзакций хешфункция частидаты",type:"comобъект ftpсоединение httpзапрос httpсервисответ httpсоединение wsопределения wsпрокси xbase анализданных аннотацияxs блокировкаданных буфердвоичныхданных включениеxs выражениекомпоновкиданных генераторслучайныхчисел географическаясхема географическиекоординаты графическаясхема группамоделиxs данныерасшифровкикомпоновкиданных двоичныеданные дендрограмма диаграмма диаграммаганта диалогвыборафайла диалогвыборацвета диалогвыборашрифта диалограсписаниярегламентногозадания диалогредактированиястандартногопериода диапазон документdom документhtml документацияxs доставляемоеуведомление записьdom записьfastinfoset записьhtml записьjson записьxml записьzipфайла записьданных записьтекста записьузловdom запрос защищенноесоединениеopenssl значенияполейрасшифровкикомпоновкиданных извлечениетекста импортxs интернетпочта интернетпочтовоесообщение интернетпочтовыйпрофиль интернетпрокси интернетсоединение информациядляприложенияxs использованиеатрибутаxs использованиесобытияжурналарегистрации источникдоступныхнастроеккомпоновкиданных итераторузловdom картинка квалификаторыдаты квалификаторыдвоичныхданных квалификаторыстроки квалификаторычисла компоновщикмакетакомпоновкиданных компоновщикнастроеккомпоновкиданных конструктормакетаоформлениякомпоновкиданных конструкторнастроеккомпоновкиданных конструкторформатнойстроки линия макеткомпоновкиданных макетобластикомпоновкиданных макетоформлениякомпоновкиданных маскаxs менеджеркриптографии наборсхемxml настройкикомпоновкиданных настройкисериализацииjson обработкакартинок обработкарасшифровкикомпоновкиданных обходдереваdom объявлениеатрибутаxs объявлениенотацииxs объявлениеэлементаxs описаниеиспользованиясобытиядоступжурналарегистрации описаниеиспользованиясобытияотказвдоступежурналарегистрации описаниеобработкирасшифровкикомпоновкиданных описаниепередаваемогофайла описаниетипов определениегруппыатрибутовxs определениегруппымоделиxs определениеограниченияидентичностиxs определениепростоготипаxs определениесоставноготипаxs определениетипадокументаdom определенияxpathxs отборкомпоновкиданных пакетотображаемыхдокументов параметрвыбора параметркомпоновкиданных параметрызаписиjson параметрызаписиxml параметрычтенияxml переопределениеxs планировщик полеанализаданных полекомпоновкиданных построительdom построительзапроса построительотчета построительотчетаанализаданных построительсхемxml поток потоквпамяти почта почтовоесообщение преобразованиеxsl преобразованиекканоническомуxml процессорвыводарезультатакомпоновкиданныхвколлекциюзначений процессорвыводарезультатакомпоновкиданныхвтабличныйдокумент процессоркомпоновкиданных разыменовательпространствименdom рамка расписаниерегламентногозадания расширенноеимяxml результатчтенияданных своднаядиаграмма связьпараметравыбора связьпотипу связьпотипукомпоновкиданных сериализаторxdto сертификатклиентаwindows сертификатклиентафайл сертификаткриптографии сертификатыудостоверяющихцентровwindows сертификатыудостоверяющихцентровфайл сжатиеданных системнаяинформация сообщениепользователю сочетаниеклавиш сравнениезначений стандартнаядатаначала стандартныйпериод схемаxml схемакомпоновкиданных табличныйдокумент текстовыйдокумент тестируемоеприложение типданныхxml уникальныйидентификатор фабрикаxdto файл файловыйпоток фасетдлиныxs фасетколичестваразрядовдробнойчастиxs фасетмаксимальноговключающегозначенияxs фасетмаксимальногоисключающегозначенияxs фасетмаксимальнойдлиныxs фасетминимальноговключающегозначенияxs фасетминимальногоисключающегозначенияxs фасетминимальнойдлиныxs фасетобразцаxs фасетобщегоколичестваразрядовxs фасетперечисленияxs фасетпробельныхсимволовxs фильтрузловdom форматированнаястрока форматированныйдокумент фрагментxs хешированиеданных хранилищезначения цвет чтениеfastinfoset чтениеhtml чтениеjson чтениеxml чтениеzipфайла чтениеданных чтениетекста чтениеузловdom шрифт элементрезультатакомпоновкиданных comsafearray деревозначений массив соответствие списокзначений структура таблицазначений фиксированнаяструктура фиксированноесоответствие фиксированныймассив ",literal:r},contains:[{className:"meta",lexemes:t,begin:"#|&",end:"$",keywords:{"meta-keyword":n+"загрузитьизфайла вебклиент вместо внешнеесоединение клиент конецобласти мобильноеприложениеклиент мобильноеприложениесервер наклиенте наклиентенасервере наклиентенасерверебезконтекста насервере насерверебезконтекста область перед после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент "},contains:[s]},{className:"function",lexemes:t,variants:[{begin:"процедура|функция",end:"\\)",keywords:"процедура функция"},{begin:"конецпроцедуры|конецфункции",keywords:"конецпроцедуры конецфункции"}],contains:[{begin:"\\(",end:"\\)",endsParent:!0,contains:[{className:"params",lexemes:t,begin:t,end:",",excludeEnd:!0,endsWithParent:!0,keywords:{keyword:"знач",literal:r},contains:[o,a,i]},s]},e.inherit(e.TITLE_MODE,{begin:t})]},s,{className:"symbol",begin:"~",end:";|:",excludeEnd:!0},o,a,i]}}},function(e,t){e.exports=function(e){var t="^[a-zA-Z][a-zA-Z0-9-]*",n="[!@#$^&',?+~`|:]",r=e.COMMENT(";","$"),o={begin:t+"\\s*=",returnBegin:!0,end:/=/,relevance:0,contains:[{className:"attribute",begin:t}]};return{illegal:n,keywords:["ALPHA","BIT","CHAR","CR","CRLF","CTL","DIGIT","DQUOTE","HEXDIG","HTAB","LF","LWSP","OCTET","SP","VCHAR","WSP"].join(" "),contains:[o,r,{className:"symbol",begin:/%b[0-1]+(-[0-1]+|(\.[0-1]+)+){0,1}/},{className:"symbol",begin:/%d[0-9]+(-[0-9]+|(\.[0-9]+)+){0,1}/},{className:"symbol",begin:/%x[0-9A-F]+(-[0-9A-F]+|(\.[0-9A-F]+)+){0,1}/},{className:"symbol",begin:/%[si]/},e.QUOTE_STRING_MODE,e.NUMBER_MODE]}}},function(e,t){e.exports=function(e){return{contains:[{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+\\b",relevance:0},{className:"string",begin:'"(GET|POST|HEAD|PUT|DELETE|CONNECT|OPTIONS|PATCH|TRACE)',end:'"',keywords:"GET POST HEAD PUT DELETE CONNECT OPTIONS PATCH TRACE",illegal:"\\n",relevance:10},{className:"string",begin:/\[/,end:/\]/,illegal:"\\n"},{className:"string",begin:'"',end:'"',illegal:"\\n"}]}}},function(e,t){e.exports=function(e){var t={className:"rest_arg",begin:"[.]{3}",end:"[a-zA-Z_$][a-zA-Z0-9_$]*",relevance:10};return{aliases:["as"],keywords:{keyword:"as break case catch class const continue default delete do dynamic each else extends final finally for function get if implements import in include instanceof interface internal is namespace native new override package private protected public return set static super switch this throw try typeof use var void while with",literal:"true false null undefined"},contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{className:"class",beginKeywords:"package",end:"{",contains:[e.TITLE_MODE]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.TITLE_MODE]},{className:"meta",beginKeywords:"import include",end:";",keywords:{"meta-keyword":"import include"}},{className:"function",beginKeywords:"function",end:"[{;]",excludeEnd:!0,illegal:"\\S",contains:[e.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t]},{begin:":\\s*([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)"}]},e.METHOD_GUARD],illegal:/#/}}},function(e,t){e.exports=function(e){var t="[A-Za-z](_?[A-Za-z0-9.])*",n=e.COMMENT("--","$"),r={begin:"\\s+:\\s+",end:"\\s*(:=|;|\\)|=>|$)",illegal:"[]{}%#'\"",contains:[{beginKeywords:"loop for declare others",endsParent:!0},{className:"keyword",beginKeywords:"not null constant access function procedure in out aliased exception"},{className:"type",begin:t,endsParent:!0,relevance:0}]};return{case_insensitive:!0,keywords:{keyword:"abort else new return abs elsif not reverse abstract end accept entry select access exception of separate aliased exit or some all others subtype and for out synchronized array function overriding at tagged generic package task begin goto pragma terminate body private then if procedure type case in protected constant interface is raise use declare range delay limited record when delta loop rem while digits renames with do mod requeue xor",literal:"True False"},contains:[n,{className:"string",begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{className:"string",begin:/'.'/},{className:"number",begin:"\\b(\\d(_|\\d)*#\\w+(\\.\\w+)?#([eE][-+]?\\d(_|\\d)*)?|\\d(_|\\d)*(\\.\\d(_|\\d)*)?([eE][-+]?\\d(_|\\d)*)?)",relevance:0},{className:"symbol",begin:"'"+t},{className:"title",begin:"(\\bwith\\s+)?(\\bprivate\\s+)?\\bpackage\\s+(\\bbody\\s+)?",end:"(is|$)",keywords:"package body",excludeBegin:!0,excludeEnd:!0,illegal:"[]{}%#'\""},{begin:"(\\b(with|overriding)\\s+)?\\b(function|procedure)\\s+",end:"(\\bis|\\bwith|\\brenames|\\)\\s*;)",keywords:"overriding function procedure with is renames return",returnBegin:!0,contains:[n,{className:"title",begin:"(\\bwith\\s+)?\\b(function|procedure)\\s+",end:"(\\(|\\s+|$)",excludeBegin:!0,excludeEnd:!0,illegal:"[]{}%#'\""},r,{className:"type",begin:"\\breturn\\s+",end:"(\\s+|;|$)",keywords:"return",excludeBegin:!0,excludeEnd:!0,endsParent:!0,illegal:"[]{}%#'\""}]},{className:"type",begin:"\\b(sub)?type\\s+",end:"\\s+",keywords:"type",excludeBegin:!0,illegal:"[]{}%#'\""},r]}}},function(e,t){e.exports=function(e){var t={className:"number",begin:"[\\$%]\\d+"};return{aliases:["apacheconf"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"section",begin:"?",end:">"},{className:"attribute",begin:/\w+/,relevance:0,keywords:{nomarkup:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{end:/$/,relevance:0,keywords:{literal:"on off all"},contains:[{className:"meta",begin:"\\s\\[",end:"\\]$"},{className:"variable",begin:"[\\$%]\\{",end:"\\}",contains:["self",t]},t,e.QUOTE_STRING_MODE]}}],illegal:/\S/}}},function(e,t){e.exports=function(e){var t=e.inherit(e.QUOTE_STRING_MODE,{illegal:""}),n={className:"params",begin:"\\(",end:"\\)",contains:["self",e.C_NUMBER_MODE,t]},r=e.COMMENT("--","$"),o=[r,e.COMMENT("\\(\\*","\\*\\)",{contains:["self",r]}),e.HASH_COMMENT_MODE];return{aliases:["osascript"],keywords:{keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the|0 then third through thru timeout times to transaction try until where while whose with without",literal:"AppleScript false linefeed return pi quote result space tab true",built_in:"alias application boolean class constant date file integer list number real record string text activate beep count delay launch log offset read round run say summarize write character characters contents day frontmost id item length month name paragraph paragraphs rest reverse running time version weekday word words year"},contains:[t,e.C_NUMBER_MODE,{className:"built_in",begin:"\\b(clipboard info|the clipboard|info for|list (disks|folder)|mount volume|path to|(close|open for) access|(get|set) eof|current date|do shell script|get volume settings|random number|set volume|system attribute|system info|time to GMT|(load|run|store) script|scripting components|ASCII (character|number)|localized string|choose (application|color|file|file name|folder|from list|remote application|URL)|display (alert|dialog))\\b|^\\s*return\\b"},{className:"literal",begin:"\\b(text item delimiters|current application|missing value)\\b"},{className:"keyword",begin:"\\b(apart from|aside from|instead of|out of|greater than|isn't|(doesn't|does not) (equal|come before|come after|contain)|(greater|less) than( or equal)?|(starts?|ends|begins?) with|contained by|comes (before|after)|a (ref|reference)|POSIX file|POSIX path|(date|time) string|quoted form)\\b"},{beginKeywords:"on",illegal:"[${=;\\n]",contains:[e.UNDERSCORE_TITLE_MODE,n]}].concat(o),illegal:"//|->|=>|\\[\\["}}},function(e,t){e.exports=function(e){var t={className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},n={className:"string",variants:[{begin:'(u8?|U)?L?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:'(u8?|U)?R"',end:'"',contains:[e.BACKSLASH_ESCAPE]},{begin:"'\\\\?.",end:"'",illegal:"."}]},r={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},o={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{"meta-keyword":"if else elif endif define undef warning error line pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(n,{className:"meta-string"}),{className:"meta-string",begin:/<[^\n>]*>/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},a=e.IDENT_RE+"\\s*\\(",i={keyword:"int float while private char catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignof constexpr decltype noexcept static_assert thread_local restrict _Bool complex _Complex _Imaginary atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and or not",built_in:"std string cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr",literal:"true false nullptr NULL"},s=[t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r,n];return{aliases:["c","cc","h","c++","h++","hpp"],keywords:i,illegal:"",contains:s.concat([o,{begin:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",end:">",keywords:i,contains:["self",t]},{begin:e.IDENT_RE+"::",keywords:i},{variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:i,contains:s.concat([{begin:/\(/,end:/\)/,keywords:i,contains:s.concat(["self"]),relevance:0}]),relevance:0},{className:"function",begin:"("+e.IDENT_RE+"[\\*&\\s]+)+"+a,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:i,illegal:/[^\w\s\*&]/,contains:[{begin:a,returnBegin:!0,contains:[e.TITLE_MODE],relevance:0},{className:"params",begin:/\(/,end:/\)/,keywords:i,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,r,t]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,o]},{className:"class",beginKeywords:"class struct",end:/[{;:]/,contains:[{begin:/,end:/>/,contains:["self"]},e.TITLE_MODE]}]),exports:{preprocessor:o,strings:n,keywords:i}}}},function(e,t){e.exports=function(e){var t=e.getLanguage("cpp").exports;return{keywords:{keyword:"boolean byte word string String array "+t.keywords.keyword,built_in:"setup loop while catch for if do goto try switch case else default break continue return KeyboardController MouseController SoftwareSerial EthernetServer EthernetClient LiquidCrystal RobotControl GSMVoiceCall EthernetUDP EsploraTFT HttpClient RobotMotor WiFiClient GSMScanner FileSystem Scheduler GSMServer YunClient YunServer IPAddress GSMClient GSMModem Keyboard Ethernet Console GSMBand Esplora Stepper Process WiFiUDP GSM_SMS Mailbox USBHost Firmata PImage Client Server GSMPIN FileIO Bridge Serial EEPROM Stream Mouse Audio Servo File Task GPRS WiFi Wire TFT GSM SPI SD runShellCommandAsynchronously analogWriteResolution retrieveCallingNumber printFirmwareVersion analogReadResolution sendDigitalPortPair noListenOnLocalhost readJoystickButton setFirmwareVersion readJoystickSwitch scrollDisplayRight getVoiceCallStatus scrollDisplayLeft writeMicroseconds delayMicroseconds beginTransmission getSignalStrength runAsynchronously getAsynchronously listenOnLocalhost getCurrentCarrier readAccelerometer messageAvailable sendDigitalPorts lineFollowConfig countryNameWrite runShellCommand readStringUntil rewindDirectory readTemperature setClockDivider readLightSensor endTransmission analogReference detachInterrupt countryNameRead attachInterrupt encryptionType readBytesUntil robotNameWrite readMicrophone robotNameRead cityNameWrite userNameWrite readJoystickY readJoystickX mouseReleased openNextFile scanNetworks noInterrupts digitalWrite beginSpeaker mousePressed isActionDone mouseDragged displayLogos noAutoscroll addParameter remoteNumber getModifiers keyboardRead userNameRead waitContinue processInput parseCommand printVersion readNetworks writeMessage blinkVersion cityNameRead readMessage setDataMode parsePacket isListening setBitOrder beginPacket isDirectory motorsWrite drawCompass digitalRead clearScreen serialEvent rightToLeft setTextSize leftToRight requestFrom keyReleased compassRead analogWrite interrupts WiFiServer disconnect playMelody parseFloat autoscroll getPINUsed setPINUsed setTimeout sendAnalog readSlider analogRead beginWrite createChar motorsStop keyPressed tempoWrite readButton subnetMask debugPrint macAddress writeGreen randomSeed attachGPRS readString sendString remotePort releaseAll mouseMoved background getXChange getYChange answerCall getResult voiceCall endPacket constrain getSocket writeJSON getButton available connected findUntil readBytes exitValue readGreen writeBlue startLoop IPAddress isPressed sendSysex pauseMode gatewayIP setCursor getOemKey tuneWrite noDisplay loadImage switchPIN onRequest onReceive changePIN playFile noBuffer parseInt overflow checkPIN knobRead beginTFT bitClear updateIR bitWrite position writeRGB highByte writeRed setSpeed readBlue noStroke remoteIP transfer shutdown hangCall beginSMS endWrite attached maintain noCursor checkReg checkPUK shiftOut isValid shiftIn pulseIn connect println localIP pinMode getIMEI display noBlink process getBand running beginSD drawBMP lowByte setBand release bitRead prepare pointTo readRed setMode noFill remove listen stroke detach attach noTone exists buffer height bitSet circle config cursor random IRread setDNS endSMS getKey micros millis begin print write ready flush width isPIN blink clear press mkdir rmdir close point yield image BSSID click delay read text move peek beep rect line open seek fill size turn stop home find step tone sqrt RSSI SSID end bit tan cos sin pow map abs max min get run put",literal:"DIGITAL_MESSAGE FIRMATA_STRING ANALOG_MESSAGE REPORT_DIGITAL REPORT_ANALOG INPUT_PULLUP SET_PIN_MODE INTERNAL2V56 SYSTEM_RESET LED_BUILTIN INTERNAL1V1 SYSEX_START INTERNAL EXTERNAL DEFAULT OUTPUT INPUT HIGH LOW"},contains:[t.preprocessor,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE]}}},function(e,t){e.exports=function(e){return{case_insensitive:!0,aliases:["arm"],lexemes:"\\.?"+e.IDENT_RE,keywords:{meta:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @"},contains:[{className:"keyword",begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?",end:"\\s"},e.COMMENT("[;@]","$",{relevance:0}),e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"[#$=]?0x[0-9a-f]+"},{begin:"[#$=]?0b[01]+"},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"symbol",variants:[{begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"[=#]\\w+"}],relevance:0}]}}},function(e,t){e.exports=function(e){var t={endsWithParent:!0,illegal:/,relevance:0,contains:[{className:"attr",begin:"[A-Za-z0-9\\._:-]+",relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/},{begin:/[^\s"'=<>`]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist"],case_insensitive:!0,contains:[{className:"meta",begin:"",relevance:10,contains:[{begin:"\\[",end:"\\]"}]},e.COMMENT("\x3c!--","--\x3e",{relevance:10}),{begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",relevance:10},{begin:/<\?(php)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0}]},{className:"tag",begin:"",returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:"