@i-novus/n2o-components 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/index.js +0 -0
  2. package/lib/display/Alerts/Alert.d.ts +2 -0
  3. package/lib/display/Alerts/Alert.js +121 -0
  4. package/lib/display/Alerts/AlertSection.d.ts +18 -0
  5. package/lib/display/Alerts/AlertSection.js +64 -0
  6. package/lib/display/Alerts/AlertWrapper.d.ts +6 -0
  7. package/lib/display/Alerts/AlertWrapper.js +39 -0
  8. package/lib/display/Alerts/DefaultAlert.d.ts +6 -0
  9. package/lib/display/Alerts/DefaultAlert.js +125 -0
  10. package/lib/display/Alerts/LoaderAlert.d.ts +5 -0
  11. package/lib/display/Alerts/LoaderAlert.js +36 -0
  12. package/lib/display/Alerts/types.d.ts +49 -0
  13. package/lib/display/Alerts/types.js +24 -0
  14. package/lib/display/Alerts/utils.d.ts +15 -0
  15. package/lib/display/Alerts/utils.js +102 -0
  16. package/lib/display/Badge/Badge.d.ts +16 -0
  17. package/lib/display/Badge/Badge.js +77 -0
  18. package/lib/display/Badge/enums.d.ts +9 -0
  19. package/lib/display/Badge/enums.js +23 -0
  20. package/lib/display/Badge/utils.d.ts +9 -0
  21. package/lib/display/Badge/utils.js +49 -0
  22. package/lib/display/Block.d.ts +369 -0
  23. package/lib/display/Block.js +38 -0
  24. package/lib/display/CodeViewer/CodeViewer.d.ts +13 -0
  25. package/lib/display/CodeViewer/CodeViewer.js +96 -0
  26. package/lib/display/Drawer/Drawer.d.ts +25 -0
  27. package/lib/display/Drawer/Drawer.js +99 -0
  28. package/lib/display/DropdownCustomItem.d.ts +7 -0
  29. package/lib/display/DropdownCustomItem.js +23 -0
  30. package/lib/display/Filter/Buttons.d.ts +11 -0
  31. package/lib/display/Filter/Buttons.js +42 -0
  32. package/lib/display/Filter/Filter.d.ts +8 -0
  33. package/lib/display/Filter/Filter.js +38 -0
  34. package/lib/display/HelpPopover.d.ts +16 -0
  35. package/lib/display/HelpPopover.js +104 -0
  36. package/lib/display/Html.d.ts +8 -0
  37. package/lib/display/Html.js +29 -0
  38. package/lib/display/Icon/Icon.d.ts +11 -0
  39. package/lib/display/Icon/Icon.js +42 -0
  40. package/lib/display/Image/Image.d.ts +30 -0
  41. package/lib/display/Image/Image.js +93 -0
  42. package/lib/display/Image/ImageInfo.d.ts +7 -0
  43. package/lib/display/Image/ImageInfo.js +23 -0
  44. package/lib/display/InputIcon.d.ts +13 -0
  45. package/lib/display/InputIcon.js +33 -0
  46. package/lib/display/NavItemImage/NavItemImage.d.ts +9 -0
  47. package/lib/display/NavItemImage/NavItemImage.js +35 -0
  48. package/lib/display/OutputList.d.ts +12 -0
  49. package/lib/display/OutputList.js +46 -0
  50. package/lib/display/OutputListItem.d.ts +10 -0
  51. package/lib/display/OutputListItem.js +58 -0
  52. package/lib/display/OutputText.d.ts +15 -0
  53. package/lib/display/OutputText.js +170 -0
  54. package/lib/display/Pagination/Pagination.d.ts +2 -0
  55. package/lib/display/Pagination/Pagination.js +273 -0
  56. package/lib/display/Pagination/PaginationButton.d.ts +13 -0
  57. package/lib/display/Pagination/PaginationButton.js +53 -0
  58. package/lib/display/Pagination/types.d.ts +62 -0
  59. package/lib/display/Pagination/types.js +36 -0
  60. package/lib/display/PopoverConfirm/PopoverConfirm.d.ts +30 -0
  61. package/lib/display/PopoverConfirm/PopoverConfirm.js +87 -0
  62. package/lib/display/ProgressControl/ProgressControl.d.ts +17 -0
  63. package/lib/display/ProgressControl/ProgressControl.js +68 -0
  64. package/lib/display/Slider.d.ts +23 -0
  65. package/lib/display/Slider.js +107 -0
  66. package/lib/display/Status.d.ts +9 -0
  67. package/lib/display/Status.js +40 -0
  68. package/lib/display/StatusText/StatusText.d.ts +10 -0
  69. package/lib/display/StatusText/StatusText.js +35 -0
  70. package/lib/display/StatusText/types.d.ts +18 -0
  71. package/lib/display/StatusText/types.js +19 -0
  72. package/lib/display/StatusText/utils.d.ts +3 -0
  73. package/lib/display/StatusText/utils.js +29 -0
  74. package/lib/display/Text.d.ts +12 -0
  75. package/lib/display/Text.js +38 -0
  76. package/lib/display/Typography/Base.d.ts +32 -0
  77. package/lib/display/Typography/Base.js +259 -0
  78. package/lib/display/Typography/ContentEditable.d.ts +15 -0
  79. package/lib/display/Typography/ContentEditable.js +86 -0
  80. package/lib/display/Typography/Paragraph.d.ts +4 -0
  81. package/lib/display/Typography/Paragraph.js +23 -0
  82. package/lib/display/Typography/Text.d.ts +9 -0
  83. package/lib/display/Typography/Text.js +37 -0
  84. package/lib/display/Typography/Title.d.ts +7 -0
  85. package/lib/display/Typography/Title.js +28 -0
  86. package/lib/display/Typography/utils.d.ts +13 -0
  87. package/lib/display/Typography/utils.js +75 -0
  88. package/lib/helpers/HelpPopover.d.ts +9 -0
  89. package/lib/helpers/HelpPopover.js +46 -0
  90. package/lib/helpers/withRightPlaceholder.d.ts +9 -0
  91. package/lib/helpers/withRightPlaceholder.js +35 -0
  92. package/lib/inputs/Checkbox/Checkbox.d.ts +29 -0
  93. package/lib/inputs/Checkbox/Checkbox.js +117 -0
  94. package/lib/inputs/Checkbox/CheckboxControl.d.ts +7 -0
  95. package/lib/inputs/Checkbox/CheckboxControl.js +33 -0
  96. package/lib/inputs/CheckboxGroup/CheckboxGroup.d.ts +11 -0
  97. package/lib/inputs/CheckboxGroup/CheckboxGroup.js +84 -0
  98. package/lib/inputs/CodeEditor/CodeEditor.d.ts +21 -0
  99. package/lib/inputs/CodeEditor/CodeEditor.js +85 -0
  100. package/lib/inputs/DatePicker/Calendar.d.ts +65 -0
  101. package/lib/inputs/DatePicker/Calendar.js +556 -0
  102. package/lib/inputs/DatePicker/CalendarHeader.d.ts +26 -0
  103. package/lib/inputs/DatePicker/CalendarHeader.js +213 -0
  104. package/lib/inputs/DatePicker/Clock.d.ts +10 -0
  105. package/lib/inputs/DatePicker/Clock.js +45 -0
  106. package/lib/inputs/DatePicker/DateInput.d.ts +44 -0
  107. package/lib/inputs/DatePicker/DateInput.js +262 -0
  108. package/lib/inputs/DatePicker/DateInputGroup.d.ts +20 -0
  109. package/lib/inputs/DatePicker/DateInputGroup.js +77 -0
  110. package/lib/inputs/DatePicker/DateInterval.d.ts +24 -0
  111. package/lib/inputs/DatePicker/DateInterval.js +92 -0
  112. package/lib/inputs/DatePicker/DatePicker.d.ts +22 -0
  113. package/lib/inputs/DatePicker/DatePicker.js +36 -0
  114. package/lib/inputs/DatePicker/DateTimeControl.d.ts +98 -0
  115. package/lib/inputs/DatePicker/DateTimeControl.js +452 -0
  116. package/lib/inputs/DatePicker/Day.d.ts +14 -0
  117. package/lib/inputs/DatePicker/Day.js +50 -0
  118. package/lib/inputs/DatePicker/PopUp.d.ts +19 -0
  119. package/lib/inputs/DatePicker/PopUp.js +71 -0
  120. package/lib/inputs/DatePicker/types.d.ts +31 -0
  121. package/lib/inputs/DatePicker/types.js +25 -0
  122. package/lib/inputs/DatePicker/utils.d.ts +39 -0
  123. package/lib/inputs/DatePicker/utils.js +304 -0
  124. package/lib/inputs/Input.d.ts +51 -0
  125. package/lib/inputs/Input.js +200 -0
  126. package/lib/inputs/InputMask/InputMask.d.ts +23 -0
  127. package/lib/inputs/InputMask/InputMask.js +310 -0
  128. package/lib/inputs/InputMoney/InputMoney.d.ts +101 -0
  129. package/lib/inputs/InputMoney/InputMoney.js +258 -0
  130. package/lib/inputs/InputNumber/InputNumber.d.ts +29 -0
  131. package/lib/inputs/InputNumber/InputNumber.js +316 -0
  132. package/lib/inputs/InputNumber/index.d.ts +1 -0
  133. package/lib/inputs/InputNumber/index.js +14 -0
  134. package/lib/inputs/InputNumber/types.d.ts +18 -0
  135. package/lib/inputs/InputNumber/types.js +14 -0
  136. package/lib/inputs/InputNumber/utils.d.ts +6 -0
  137. package/lib/inputs/InputNumber/utils.js +86 -0
  138. package/lib/inputs/InputPassword/InputPassword.d.ts +10 -0
  139. package/lib/inputs/InputPassword/InputPassword.js +81 -0
  140. package/lib/inputs/InputSelect/InputAddon.d.ts +17 -0
  141. package/lib/inputs/InputSelect/InputAddon.js +31 -0
  142. package/lib/inputs/InputSelect/InputContent.d.ts +63 -0
  143. package/lib/inputs/InputSelect/InputContent.js +188 -0
  144. package/lib/inputs/InputSelect/InputSelect.d.ts +296 -0
  145. package/lib/inputs/InputSelect/InputSelect.js +795 -0
  146. package/lib/inputs/InputSelect/InputSelectGroup.d.ts +43 -0
  147. package/lib/inputs/InputSelect/InputSelectGroup.js +113 -0
  148. package/lib/inputs/InputSelect/PopupItems.d.ts +55 -0
  149. package/lib/inputs/InputSelect/PopupItems.js +357 -0
  150. package/lib/inputs/InputSelect/PopupList.d.ts +82 -0
  151. package/lib/inputs/InputSelect/PopupList.js +138 -0
  152. package/lib/inputs/InputSelect/SelectedItems.d.ts +17 -0
  153. package/lib/inputs/InputSelect/SelectedItems.js +125 -0
  154. package/lib/inputs/InputSelect/constants.d.ts +4 -0
  155. package/lib/inputs/InputSelect/constants.js +15 -0
  156. package/lib/inputs/InputSelect/types.d.ts +16 -0
  157. package/lib/inputs/InputSelect/types.js +16 -0
  158. package/lib/inputs/InputSelect/utils.d.ts +9 -0
  159. package/lib/inputs/InputSelect/utils.js +142 -0
  160. package/lib/inputs/InputSelectTree/InputSelectTree.d.ts +114 -0
  161. package/lib/inputs/InputSelectTree/InputSelectTree.js +466 -0
  162. package/lib/inputs/InputSelectTree/TreeSelectNode.d.ts +36 -0
  163. package/lib/inputs/InputSelectTree/TreeSelectNode.js +63 -0
  164. package/lib/inputs/InputSelectTree/allProps.d.ts +123 -0
  165. package/lib/inputs/InputSelectTree/allProps.js +48 -0
  166. package/lib/inputs/InputSelectTree/until.d.ts +4 -0
  167. package/lib/inputs/InputSelectTree/until.js +83 -0
  168. package/lib/inputs/InputText.d.ts +41 -0
  169. package/lib/inputs/InputText.js +170 -0
  170. package/lib/inputs/NumberPicker/NumberPicker.d.ts +15 -0
  171. package/lib/inputs/NumberPicker/NumberPicker.js +129 -0
  172. package/lib/inputs/NumberPicker/NumberPickerButton.d.ts +8 -0
  173. package/lib/inputs/NumberPicker/NumberPickerButton.js +64 -0
  174. package/lib/inputs/NumberPicker/index.d.ts +1 -0
  175. package/lib/inputs/NumberPicker/index.js +14 -0
  176. package/lib/inputs/NumberPicker/utils.d.ts +2 -0
  177. package/lib/inputs/NumberPicker/utils.js +31 -0
  178. package/lib/inputs/RadioGroup/default/Group.d.ts +15 -0
  179. package/lib/inputs/RadioGroup/default/Group.js +63 -0
  180. package/lib/inputs/RadioGroup/default/Input.d.ts +17 -0
  181. package/lib/inputs/RadioGroup/default/Input.js +77 -0
  182. package/lib/inputs/RadioGroup/tabs/Group.d.ts +3 -0
  183. package/lib/inputs/RadioGroup/tabs/Group.js +24 -0
  184. package/lib/inputs/RadioGroup/tabs/Input.d.ts +3 -0
  185. package/lib/inputs/RadioGroup/tabs/Input.js +21 -0
  186. package/lib/inputs/Rating/Rating.d.ts +30 -0
  187. package/lib/inputs/Rating/Rating.js +212 -0
  188. package/lib/inputs/Select/Popup.d.ts +31 -0
  189. package/lib/inputs/Select/Popup.js +131 -0
  190. package/lib/inputs/Select/Select.d.ts +225 -0
  191. package/lib/inputs/Select/Select.js +705 -0
  192. package/lib/inputs/Select/SelectInput.d.ts +19 -0
  193. package/lib/inputs/Select/SelectInput.js +85 -0
  194. package/lib/inputs/Select/utils.d.ts +1 -0
  195. package/lib/inputs/Select/utils.js +28 -0
  196. package/lib/inputs/Switch/Switch.d.ts +11 -0
  197. package/lib/inputs/Switch/Switch.js +41 -0
  198. package/lib/inputs/TextArea.d.ts +12 -0
  199. package/lib/inputs/TextArea.js +54 -0
  200. package/lib/inputs/TextEditor/TextEditor.d.ts +11 -0
  201. package/lib/inputs/TextEditor/TextEditor.js +89 -0
  202. package/lib/inputs/TimePicker/TimePicker.d.ts +50 -0
  203. package/lib/inputs/TimePicker/TimePicker.js +398 -0
  204. package/lib/inputs/utils.d.ts +5 -0
  205. package/lib/inputs/utils.js +39 -0
  206. package/lib/layouts/ScrollContainer.d.ts +218 -0
  207. package/lib/layouts/ScrollContainer.js +128 -0
  208. package/lib/layouts/Spinner/CoverSpinner.d.ts +29 -0
  209. package/lib/layouts/Spinner/CoverSpinner.js +153 -0
  210. package/lib/layouts/Spinner/InlineSpinner.d.ts +5 -0
  211. package/lib/layouts/Spinner/InlineSpinner.js +27 -0
  212. package/lib/layouts/Spinner/Spinner.d.ts +31 -0
  213. package/lib/layouts/Spinner/Spinner.js +178 -0
  214. package/lib/styles/components/Calendar.scss +125 -0
  215. package/lib/styles/components/CalendarHeader.scss +75 -0
  216. package/lib/styles/components/DateInputGroup.scss +39 -0
  217. package/lib/styles/components/DatePicker.scss +18 -0
  218. package/lib/styles/components/Day.scss +29 -0
  219. package/lib/styles/components/OutputList.scss +14 -0
  220. package/lib/styles/components/OutputText.scss +50 -0
  221. package/lib/styles/controls/CodeEditor.scss +4 -0
  222. package/lib/styles/controls/InputNumber.scss +36 -0
  223. package/lib/styles/controls/InputPassword.scss +17 -0
  224. package/lib/styles/controls/InputText.scss +59 -0
  225. package/lib/styles/controls/NumberPicker.scss +36 -0
  226. package/lib/styles/controls/ProgressControl.scss +3 -0
  227. package/lib/styles/controls/Slider.scss +32 -0
  228. package/lib/styles/controls/Switch.scss +105 -0
  229. package/lib/styles/controls/TextEditor.scss +23 -0
  230. package/lib/styles/controls/TimePicker.scss +32 -0
  231. package/lib/styles/n2o/variables.scss +328 -0
  232. package/lib/styles/theme/variables.scss +81 -0
  233. package/lib/styles/variables.scss +10 -0
  234. package/lib/types.d.ts +25 -0
  235. package/lib/types.js +6 -0
  236. package/lib/utils/id.d.ts +3 -0
  237. package/lib/utils/id.js +46 -0
  238. package/lib/utils/isEmptyModel.d.ts +1 -0
  239. package/lib/utils/isEmptyModel.js +21 -0
  240. package/lib/utils/parseFormatter.js +153 -0
  241. package/package.json +196 -0
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.Input = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
+
20
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
+
22
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
+
24
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
+
26
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
+
28
+ var _react = _interopRequireDefault(require("react"));
29
+
30
+ var _classnames = _interopRequireDefault(require("classnames"));
31
+
32
+ var _isObject = _interopRequireDefault(require("lodash/isObject"));
33
+
34
+ var _isArray = _interopRequireDefault(require("lodash/isArray"));
35
+
36
+ var _omit = _interopRequireDefault(require("lodash/omit"));
37
+
38
+ var _isString = _interopRequireDefault(require("lodash/isString"));
39
+
40
+ var _excluded = ["autoFocus", "className", "disabled", "id", "inputRef", "label", "name", "onBlur", "onClick", "onFocus", "onPaste", "placeholder", "readonly", "style", "type", "value"];
41
+
42
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
43
+
44
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
45
+
46
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
47
+
48
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
49
+
50
+ var Input = /*#__PURE__*/function (_React$Component) {
51
+ (0, _inherits2["default"])(Input, _React$Component);
52
+
53
+ var _super = _createSuper(Input);
54
+
55
+ function Input(props) {
56
+ var _this;
57
+
58
+ (0, _classCallCheck2["default"])(this, Input);
59
+ _this = _super.call(this, props);
60
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleKeyDown", function (evt) {
61
+ var onKeyDown = _this.props.onKeyDown;
62
+
63
+ if (onKeyDown) {
64
+ onKeyDown(evt);
65
+ }
66
+
67
+ if (evt.target.tagName === 'INPUT' && evt.target.type === 'checkbox' && evt.key === 'Enter') {
68
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
69
+ _this.handleChange(evt);
70
+ }
71
+ });
72
+ _this.input = null;
73
+ _this.handleChange = _this.handleChange.bind((0, _assertThisInitialized2["default"])(_this));
74
+ _this.setRef = _this.setRef.bind((0, _assertThisInitialized2["default"])(_this));
75
+ return _this;
76
+ }
77
+
78
+ (0, _createClass2["default"])(Input, [{
79
+ key: "focus",
80
+ value: function focus() {
81
+ var _this$input;
82
+
83
+ (_this$input = this.input) === null || _this$input === void 0 ? void 0 : _this$input.focus();
84
+ }
85
+ }, {
86
+ key: "blur",
87
+ value: function blur() {
88
+ var _this$input2;
89
+
90
+ (_this$input2 = this.input) === null || _this$input2 === void 0 ? void 0 : _this$input2.blur();
91
+ }
92
+ }, {
93
+ key: "handleChange",
94
+ value: function handleChange(e) {
95
+ var props = this.props,
96
+ input = this.input;
97
+
98
+ if (props.disabled) {
99
+ return;
100
+ }
101
+
102
+ var value = (0, _isObject["default"])(props.value) || (0, _isArray["default"])(props.value) ? props.value : e.target.value;
103
+
104
+ if (props.onChange) {
105
+ props.onChange({
106
+ target: _objectSpread(_objectSpread({}, props), {}, {
107
+ value: value
108
+ }),
109
+ stopPropagation: function stopPropagation() {
110
+ e.stopPropagation();
111
+ },
112
+ preventDefault: function preventDefault() {
113
+ e.preventDefault();
114
+ },
115
+ getElement: function getElement() {
116
+ return input;
117
+ },
118
+ getNormalizeValue: function getNormalizeValue() {
119
+ return (0, _defineProperty2["default"])({}, props.name, props.value);
120
+ },
121
+ nativeEvent: e
122
+ });
123
+ }
124
+ }
125
+ }, {
126
+ key: "setRef",
127
+ value: function setRef(node) {
128
+ this.input = node;
129
+ }
130
+ }, {
131
+ key: "render",
132
+ value: function render() {
133
+ var _this$props = this.props,
134
+ autoFocus = _this$props.autoFocus,
135
+ className = _this$props.className,
136
+ disabled = _this$props.disabled,
137
+ id = _this$props.id,
138
+ inputRef = _this$props.inputRef,
139
+ label = _this$props.label,
140
+ name = _this$props.name,
141
+ onBlur = _this$props.onBlur,
142
+ onClick = _this$props.onClick,
143
+ onFocus = _this$props.onFocus,
144
+ onPaste = _this$props.onPaste,
145
+ placeholder = _this$props.placeholder,
146
+ readonly = _this$props.readonly,
147
+ style = _this$props.style,
148
+ type = _this$props.type,
149
+ value = _this$props.value,
150
+ restProps = (0, _objectWithoutProperties2["default"])(_this$props, _excluded);
151
+ return /*#__PURE__*/_react["default"].createElement("input", (0, _extends2["default"])({
152
+ ref: inputRef,
153
+ className: (0, _classnames["default"])('n2o-input', className),
154
+ style: style,
155
+ id: id,
156
+ name: name,
157
+ type: type,
158
+ disabled: disabled
159
+ /* eslint-disable-next-line jsx-a11y/no-autofocus */
160
+ ,
161
+ autoFocus: autoFocus,
162
+ value: value,
163
+ onPaste: onPaste // eslint-disable-next-line @typescript-eslint/no-explicit-any
164
+ ,
165
+ onFocus: onFocus // eslint-disable-next-line @typescript-eslint/no-explicit-any
166
+ ,
167
+ onBlur: onBlur,
168
+ onClick: onClick,
169
+ onKeyDown: this.handleKeyDown,
170
+ placeholder: placeholder,
171
+ readOnly: readonly
172
+ }, (0, _omit["default"])(restProps, ['length', 'onChange', 'onKeyDown']), {
173
+ onChange: this.handleChange,
174
+ title: (0, _isString["default"])(value) ? value : label
175
+ }));
176
+ }
177
+ }]);
178
+ return Input;
179
+ }(_react["default"].Component);
180
+
181
+ exports.Input = Input;
182
+ (0, _defineProperty2["default"])(Input, "defaultProps", {
183
+ id: '',
184
+ value: null,
185
+ name: '',
186
+ disabled: false,
187
+ autoFocus: false,
188
+ checked: false,
189
+ className: '',
190
+ tabIndex: 0,
191
+ style: {},
192
+ type: 'text',
193
+ onFocus: function onFocus() {},
194
+ onBlur: function onBlur() {},
195
+ onChange: function onChange() {},
196
+ onPaste: function onPaste() {},
197
+ onClick: function onClick() {},
198
+ onKeyDown: function onKeyDown() {}
199
+ });
200
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnB1dHMvSW5wdXQudHN4Il0sIm5hbWVzIjpbIklucHV0IiwicHJvcHMiLCJldnQiLCJvbktleURvd24iLCJ0YXJnZXQiLCJ0YWdOYW1lIiwidHlwZSIsImtleSIsImhhbmRsZUNoYW5nZSIsImlucHV0IiwiYmluZCIsInNldFJlZiIsImZvY3VzIiwiYmx1ciIsImUiLCJkaXNhYmxlZCIsInZhbHVlIiwib25DaGFuZ2UiLCJzdG9wUHJvcGFnYXRpb24iLCJwcmV2ZW50RGVmYXVsdCIsImdldEVsZW1lbnQiLCJnZXROb3JtYWxpemVWYWx1ZSIsIm5hbWUiLCJuYXRpdmVFdmVudCIsIm5vZGUiLCJhdXRvRm9jdXMiLCJjbGFzc05hbWUiLCJpZCIsImlucHV0UmVmIiwibGFiZWwiLCJvbkJsdXIiLCJvbkNsaWNrIiwib25Gb2N1cyIsIm9uUGFzdGUiLCJwbGFjZWhvbGRlciIsInJlYWRvbmx5Iiwic3R5bGUiLCJyZXN0UHJvcHMiLCJoYW5kbGVLZXlEb3duIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjaGVja2VkIiwidGFiSW5kZXgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7SUE0Q2FBLEs7Ozs7O0FBR1QsaUJBQVlDLEtBQVosRUFBMEI7QUFBQTs7QUFBQTtBQUN0Qiw4QkFBTUEsS0FBTjtBQURzQixzR0FvRFYsVUFBQ0MsR0FBRCxFQUEwQztBQUN0RCxVQUFRQyxTQUFSLEdBQXNCLE1BQUtGLEtBQTNCLENBQVFFLFNBQVI7O0FBRUEsVUFBSUEsU0FBSixFQUFlO0FBQ1hBLFFBQUFBLFNBQVMsQ0FBQ0QsR0FBRCxDQUFUO0FBQ0g7O0FBRUQsVUFBS0EsR0FBRyxDQUFDRSxNQUFMLENBQWlDQyxPQUFqQyxLQUE2QyxPQUE3QyxJQUF5REgsR0FBRyxDQUFDRSxNQUFMLENBQWlDRSxJQUFqQyxLQUEwQyxVQUFsRyxJQUFnSEosR0FB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QUFFLG9CQUFNLENBQUUsQ0FiQTtBQWNsQmdCLEVBQUFBLE9BQU8sRUFBRSxtQkFBTSxDQUFFLENBZEM7QUFlbEJGLEVBQUFBLE9BQU8sRUFBRSxtQkFBTSxDQUFFLENBZkM7QUFnQmxCNUIsRUFBQUEsU0FBUyxFQUFFLHFCQUFNLENBQUU7QUFoQkQsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDaGFuZ2VFdmVudCwgS2V5Ym9hcmRFdmVudCwgTGVnYWN5UmVmIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJ1xuaW1wb3J0IGlzT2JqZWN0IGZyb20gJ2xvZGFzaC9pc09iamVjdCdcbmltcG9ydCBpc0FycmF5IGZyb20gJ2xvZGFzaC9pc0FycmF5J1xuaW1wb3J0IG9taXQgZnJvbSAnbG9kYXNoL29taXQnXG5pbXBvcnQgaXNTdHJpbmcgZnJvbSAnbG9kYXNoL2lzU3RyaW5nJ1xuXG5pbXBvcnQgeyBUQmFzZUlucHV0UHJvcHMsIFRCYXNlUHJvcHMgfSBmcm9tICcuLi90eXBlcydcblxuLyoqXG4gKiDQmtC+0L3RgtGA0L7QuyBJbnB1dFxuICogQHJlYWN0UHJvcHMge2Jvb2xlYW59IGxlbmd0aCAtINC80LDQutGB0LjQvNCw0LvRjNC90LDRjyDQtNC70LjQvdCwINC30L3QsNGH0LXQvdC40Y9cbiAqIEByZWFjdFByb3BzIHtzdHJpbmd9IHZhbHVlIC0g0LfQvdCw0YfQtdC90LjQtSDQv9C+0LvRj1xuICogQHJlYWN0UHJvcHMge3N0cmluZ30gcGxhY2Vob2xkZXIgLSDQv9C70Y3QudGB0YXQvtC70LTQtdGAXG4gKiBAcmVhY3RQcm9wcyB7Ym9vbGVhbn0gZGlzYWJsZWQgLSDRhNC70LDQsyDQvdC10LDQutGC0LjQstC90L7RgdGC0Lgg0L/QvtC70Y9cbiAqIEByZWFjdFByb3BzIHtib29sZWFufSBkaXNhYmxlZCAtINGE0LvQsNCzINGC0L7Qu9GM0LrQviDQtNC70Y8g0YfRgtC10L3QuNGPXG4gKiBAcmVhY3RQcm9wcyB7Ym9vbGVhbn0gYXV0b0ZvY3VzIC0g0LDQstGC0L7RhNC+0LrRg9GBXG4gKiBAcmVhY3RQcm9wcyB7ZnVuY3Rpb259IG9uRm9jdXMgLSBjYWxsYmFjayDQvdCwINGE0L7QutGD0YFcbiAqIEByZWFjdFByb3BzIHtmdW5jdGlvbn0gb25DbGljayAtIGNhbGxiYWNrINC90LAg0LrQu9C40LpcbiAqIEByZWFjdFByb3BzIHtmdW5jdGlvbn0gb25QYXN0ZSAtIGNhbGxiYWNrINC/0YDQuCDQstGB0YLQsNCy0LrQtSDQsiDQuNC90L/Rg9GCXG4gKiBAcmVhY3RQcm9wcyB7ZnVuY3Rpb259IG9uQmx1ciAtIGNhbGxiYWNrINC/0YDQuCDQsdC70Y7RgNC1INC40L3Qv9GD0YLQsFxuICogQHJlYWN0UHJvcHMge2Z1bmN0aW9ufSBvbkNoYW5nZSAtIGNhbGxiYWNrINC/0YDQuCDQuNC30LzQtdC90LXQvdC40LUg0LjQvdC/0YPRgtCwXG4gKiBAcmVhY3RQcm9wcyB7ZnVuY3Rpb259IG9uS2V5RG93biAtIGNhbGxiYWNrINC/0YDQuCDQvdCw0LbQsNGC0LjQuCDQvdCwINC60L3QvtC/0LrRgyDQutC70LDQstC40LDRgtGD0YDRi1xuICogQHJlYWN0UHJvcHMge2Jvb2xlYW59IGF1dG9Gb2N1cyAtINGE0LvQsNCzINCw0LLRgtC+0YTQvtC60YPRgdCwXG4gKiBAcmVhY3RQcm9wcyB7c3RyaW5nfSBjbGFzc05hbWUgLSBjc3Mt0LrQu9Cw0YHRgVxuICogQHJlYWN0UHJvcHMge29iamVjdH0gc3R5bGUgLSDQvtCx0YrQtdC60YIg0YHRgtC40LvQtdC5XG4gKiBAcmVhY3RQcm9wcyB7Ym9vbGVhbn0gZGlzYWJsZWQgLSDRhNC70LDQsyDQvdC10LDQutGC0LjQstC90L7RgdGC0Lgg0L/QvtC70Y9cbiAqIEByZWFjdFByb3BzIHtzdHJpbmd9IHR5cGUgLSDRgtC40L8g0L/QvtC70Y9cbiAqL1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxudHlwZSBQcm9wcyA9IFRCYXNlUHJvcHMgJiBUQmFzZUlucHV0UHJvcHM8YW55PiAmIHtcbiAgICBhdXRvRm9jdXM6IGJvb2xlYW4sXG4gICAgY2hlY2tlZDogYm9vbGVhbixcbiAgICBpbnB1dFJlZj86IExlZ2FjeVJlZjxIVE1MSW5wdXRFbGVtZW50PixcbiAgICBsYWJlbD86IHN0cmluZyxcbiAgICBsZW5ndGg/OiBzdHJpbmcsXG4gICAgbWF4PzogbnVtYmVyLFxuICAgIG1pbj86IG51bWJlcixcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgb25DbGljaygpOiB2b2lkLFxuICAgIG9uS2V5RG93bihhcmc6IEtleWJvYXJkRXZlbnQpOiB2b2lkLFxuICAgIG9uUGFzdGUoKTogdm9pZCxcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZyxcbiAgICBzdGVwPzogc3RyaW5nIHwgbnVtYmVyLFxuICAgIHRhYkluZGV4OiBudW1iZXIsXG4gICAgdHlwZTogc3RyaW5nXG59XG5cbmV4cG9ydCBjbGFzcyBJbnB1dCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxQcm9wcz4ge1xuICAgIGlucHV0OiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbFxuXG4gICAgY29uc3RydWN0b3IocHJvcHM6IFByb3BzKSB7XG4gICAgICAgIHN1cGVyKHByb3BzKVxuICAgICAgICB0aGlzLmlucHV0ID0gbnVsbFxuICAgICAgICB0aGlzLmhhbmRsZUNoYW5nZSA9IHRoaXMuaGFuZGxlQ2hhbmdlLmJpbmQodGhpcylcbiAgICAgICAgdGhpcy5zZXRSZWYgPSB0aGlzLnNldFJlZi5iaW5kKHRoaXMpXG4gICAgfVxuXG4gICAgZm9jdXMoKSB7XG4gICAgICAgIHRoaXMuaW5wdXQ/LmZvY3VzKClcbiAgICB9XG5cbiAgICBibHVyKCkge1xuICAgICAgICB0aGlzLmlucHV0Py5ibHVyKClcbiAgICB9XG5cbiAgICBoYW5kbGVDaGFuZ2UoZTogQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pIHtcbiAgICAgICAgY29uc3QgeyBwcm9wcywgaW5wdXQgfSA9IHRoaXNcblxuICAgICAgICBpZiAocHJvcHMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbHVlID0gaXNPYmplY3QocHJvcHMudmFsdWUpIHx8IGlzQXJyYXkocHJvcHMudmFsdWUpXG4gICAgICAgICAgICA/IHByb3BzLnZhbHVlXG4gICAgICAgICAgICA6IChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZVxuXG4gICAgICAgIGlmIChwcm9wcy5vbkNoYW5nZSkge1xuICAgICAgICAgICAgcHJvcHMub25DaGFuZ2Uoe1xuICAgICAgICAgICAgICAgIHRhcmdldDoge1xuICAgICAgICAgICAgICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzdG9wUHJvcGFnYXRpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHByZXZlbnREZWZhdWx0KCkge1xuICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGdldEVsZW1lbnQoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnB1dFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZ2V0Tm9ybWFsaXplVmFsdWUoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IFtwcm9wcy5uYW1lXTogcHJvcHMudmFsdWUgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbmF0aXZlRXZlbnQ6IGUsXG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0UmVmKG5vZGU6IEhUTUxJbnB1dEVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5pbnB1dCA9IG5vZGVcbiAgICB9XG5cbiAgICBoYW5kbGVLZXlEb3duID0gKGV2dDogS2V5Ym9hcmRFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgICAgICBjb25zdCB7IG9uS2V5RG93biB9ID0gdGhpcy5wcm9wc1xuXG4gICAgICAgIGlmIChvbktleURvd24pIHtcbiAgICAgICAgICAgIG9uS2V5RG93bihldnQpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoKGV2dC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudGFnTmFtZSA9PT0gJ0lOUFVUJyAmJiAoZXZ0LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS50eXBlID09PSAnY2hlY2tib3gnICYmIGV2dC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNoYW5nZShldnQgYXMgYW55KVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBhdXRvRm9jdXMsXG4gICAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgaW5wdXRSZWYsXG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBvbkJsdXIsXG4gICAgICAgICAgICBvbkNsaWNrLFxuICAgICAgICAgICAgb25Gb2N1cyxcbiAgICAgICAgICAgIG9uUGFzdGUsXG4gICAgICAgICAgICBwbGFjZWhvbGRlcixcbiAgICAgICAgICAgIHJlYWRvbmx5LFxuICAgICAgICAgICAgc3R5bGUsXG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAuLi5yZXN0UHJvcHNcbiAgICAgICAgfSA9IHRoaXMucHJvcHNcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoJ24yby1pbnB1dCcsIGNsYXNzTmFtZSl9XG4gICAgICAgICAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgIHR5cGU9e3R5cGV9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIC8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc3gtYTExeS9uby1hdXRvZm9jdXMgKi9cbiAgICAgICAgICAgICAgICBhdXRvRm9jdXM9e2F1dG9Gb2N1c31cbiAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgb25QYXN0ZT17b25QYXN0ZX1cbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICAgICAgICAgIG9uRm9jdXM9e29uRm9jdXMgYXMgYW55fVxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICAgICAgb25CbHVyPXtvbkJsdXIgYXMgYW55fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICAgICAgICAgICAgb25LZXlEb3duPXt0aGlzLmhhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICAgIHJlYWRPbmx5PXtyZWFkb25seX1cbiAgICAgICAgICAgICAgICB7Li4ub21pdChyZXN0UHJvcHMsIFsnbGVuZ3RoJywgJ29uQ2hhbmdlJywgJ29uS2V5RG93biddKX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5oYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgdGl0bGU9e2lzU3RyaW5nKHZhbHVlKSA/IHZhbHVlIDogbGFiZWx9XG4gICAgICAgICAgICAvPlxuICAgICAgICApXG4gICAgfVxuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgICAgaWQ6ICcnLFxuICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgbmFtZTogJycsXG4gICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGNsYXNzTmFtZTogJycsXG4gICAgICAgIHRhYkluZGV4OiAwLFxuICAgICAgICBzdHlsZToge30sXG4gICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgb25Gb2N1czogKCkgPT4ge30sXG4gICAgICAgIG9uQmx1cjogKCkgPT4ge30sXG4gICAgICAgIG9uQ2hhbmdlOiAoKSA9PiB7fSxcbiAgICAgICAgb25QYXN0ZTogKCkgPT4ge30sXG4gICAgICAgIG9uQ2xpY2s6ICgpID0+IHt9LFxuICAgICAgICBvbktleURvd246ICgpID0+IHt9LFxuICAgIH0gYXMgUHJvcHNcbn1cbiJdfQ==
@@ -0,0 +1,23 @@
1
+ /// <reference types="react" />
2
+ import { TBaseInputProps, TBaseProps } from '../../types';
3
+ export declare type PresetType = 'phone' | 'post-code' | 'date' | 'money' | 'percentage' | 'card';
4
+ declare type MaskType = string | Array<string | RegExp> | ((val?: unknown) => Array<string | RegExp>);
5
+ export declare const InputMask: {
6
+ ({ measure, ...props }: TBaseProps & Omit<TBaseInputProps<string>, "onBlur"> & {
7
+ clearOnBlur?: boolean | undefined;
8
+ dictionary?: Record<string, RegExp> | undefined;
9
+ guide?: boolean | undefined;
10
+ keepCharPositions?: boolean | undefined;
11
+ mask?: MaskType | undefined;
12
+ onBlur?(value: string): void;
13
+ onChange?(value: string): void;
14
+ placeholder?: string | undefined;
15
+ placeholderChar?: string | undefined;
16
+ preset?: PresetType | undefined;
17
+ presetConfig?: Record<string, unknown> | undefined;
18
+ } & {
19
+ measure?: string | undefined;
20
+ }): JSX.Element;
21
+ displayName: string;
22
+ };
23
+ export {};
@@ -0,0 +1,310 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.InputMask = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
+
20
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
+
22
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
+
24
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
+
26
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
+
28
+ var _react = _interopRequireDefault(require("react"));
29
+
30
+ var _reactTextMask = _interopRequireDefault(require("react-text-mask"));
31
+
32
+ var _classnames = _interopRequireDefault(require("classnames"));
33
+
34
+ var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
35
+
36
+ var _createNumberMask = _interopRequireDefault(require("text-mask-addons/dist/createNumberMask"));
37
+
38
+ var _lodash = require("lodash");
39
+
40
+ var _withRightPlaceholder = require("../../helpers/withRightPlaceholder");
41
+
42
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
43
+
44
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
45
+
46
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
47
+
48
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
49
+
50
+ var InputMaskComponent = /*#__PURE__*/function (_React$Component) {
51
+ (0, _inherits2["default"])(InputMaskComponent, _React$Component);
52
+
53
+ var _super = _createSuper(InputMaskComponent);
54
+
55
+ function InputMaskComponent(props) {
56
+ var _this;
57
+
58
+ (0, _classCallCheck2["default"])(this, InputMaskComponent);
59
+ _this = _super.call(this, props);
60
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "mask", function () {
61
+ var mask = _this.props.mask;
62
+
63
+ if ((0, _lodash.isArray)(mask)) {
64
+ return mask;
65
+ }
66
+
67
+ if ((0, _lodash.isFunction)(mask)) {
68
+ return mask();
69
+ }
70
+
71
+ return _this.mapToArray(mask);
72
+ });
73
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "preset", function (preset) {
74
+ var _this$props$presetCon = _this.props.presetConfig,
75
+ presetConfig = _this$props$presetCon === void 0 ? {} : _this$props$presetCon;
76
+
77
+ switch (preset) {
78
+ case 'phone':
79
+ return _this.mapToArray('+9 (999)-999-99-99');
80
+
81
+ case 'post-code':
82
+ return _this.mapToArray('999999');
83
+
84
+ case 'date':
85
+ return _this.mapToArray('99.99.9999');
86
+
87
+ case 'money':
88
+ return (0, _createNumberMask["default"])(presetConfig);
89
+
90
+ case 'percentage':
91
+ return (0, _createNumberMask["default"])({
92
+ prefix: '',
93
+ suffix: '%'
94
+ });
95
+
96
+ case 'card':
97
+ return _this.mapToArray('9999 9999 9999 9999');
98
+
99
+ default:
100
+ return undefined;
101
+ }
102
+ });
103
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "indexOfFirstPlaceHolder", function () {
104
+ var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
105
+ var placeholderChar = _this.props.placeholderChar;
106
+
107
+ if (!placeholderChar) {
108
+ return null;
109
+ }
110
+
111
+ return value.toString().indexOf(placeholderChar);
112
+ });
113
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "indexOfLastPlaceholder", function (mask) {
114
+ if (typeof mask === 'function') {
115
+ return mask().map(function (item) {
116
+ return item instanceof RegExp;
117
+ }).lastIndexOf(true);
118
+ }
119
+
120
+ if (typeof mask === 'string') {
121
+ return Math.max.apply(Math, (0, _toConsumableArray2["default"])(Object.keys(_this.dict).map(function (_char) {
122
+ return mask.lastIndexOf(_char);
123
+ })));
124
+ }
125
+
126
+ if ((0, _lodash.isArray)(mask)) {
127
+ return mask.map(function (item) {
128
+ return item instanceof RegExp;
129
+ }).lastIndexOf(true);
130
+ }
131
+
132
+ return -1;
133
+ });
134
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "isValid", function (value) {
135
+ var _this$props = _this.props,
136
+ preset = _this$props.preset,
137
+ mask = _this$props.mask,
138
+ _this$props$guide = _this$props.guide,
139
+ guide = _this$props$guide === void 0 ? true : _this$props$guide;
140
+
141
+ if (guide) {
142
+ return value && _this.indexOfFirstPlaceHolder(value) === -1;
143
+ }
144
+
145
+ if (preset) {
146
+ return value.length > _this.indexOfLastPlaceholder(_this.preset(preset) || mask);
147
+ }
148
+
149
+ return false;
150
+ });
151
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "mapToArray", function () {
152
+ var mask = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
153
+ return mask.split('').map(function (_char2) {
154
+ return _this.dict[_char2] ? _this.dict[_char2] : _char2;
155
+ });
156
+ });
157
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChange", function (e) {
158
+ var _ref = e.target,
159
+ value = _ref.value;
160
+ var _this$props2 = _this.props,
161
+ _this$props2$guide = _this$props2.guide,
162
+ guide = _this$props2$guide === void 0 ? true : _this$props2$guide,
163
+ _this$props2$onChange = _this$props2.onChange,
164
+ onChange = _this$props2$onChange === void 0 ? function () {} : _this$props2$onChange;
165
+ _this.valid = _this.isValid(value);
166
+
167
+ _this.setState({
168
+ value: value,
169
+ guide: guide
170
+ }, function () {
171
+ if (_this.valid || value === '') {
172
+ onChange(value);
173
+ }
174
+ });
175
+ });
176
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onBlur", function (e) {
177
+ var _ref2 = e.nativeEvent.target,
178
+ value = _ref2.value;
179
+ var _this$props3 = _this.props,
180
+ _this$props3$onBlur = _this$props3.onBlur,
181
+ onBlur = _this$props3$onBlur === void 0 ? function () {} : _this$props3$onBlur,
182
+ clearOnBlur = _this$props3.clearOnBlur,
183
+ _this$props3$onChange = _this$props3.onChange,
184
+ onChange = _this$props3$onChange === void 0 ? function () {} : _this$props3$onChange;
185
+ _this.valid = _this.isValid(value);
186
+ onBlur(value);
187
+
188
+ if (!_this.valid) {
189
+ var newValue = clearOnBlur ? '' : value;
190
+
191
+ _this.setState({
192
+ value: newValue,
193
+ guide: false
194
+ }, function () {
195
+ return newValue === '' && onChange(newValue);
196
+ });
197
+ }
198
+ });
199
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onFocus", function () {
200
+ var _this$props$guide2 = _this.props.guide,
201
+ guide = _this$props$guide2 === void 0 ? true : _this$props$guide2;
202
+ var value = _this.state.value;
203
+ _this.valid = _this.isValid(value);
204
+
205
+ if (!_this.valid) {
206
+ _this.setState({
207
+ guide: guide
208
+ });
209
+ }
210
+ });
211
+ _this.state = {
212
+ value: props.value || '',
213
+ guide: false
214
+ };
215
+ _this.valid = false;
216
+ _this.dict = _objectSpread({
217
+ 9: /\d/,
218
+ S: /[A-Za-z]/,
219
+ Б: /[А-я]/
220
+ }, props.dictionary);
221
+ return _this;
222
+ }
223
+ /**
224
+ * преобразует маску-функцию, маску-строку в массив-маску (с regexp вместо символов) при помощи _mapToArray
225
+ */
226
+
227
+
228
+ (0, _createClass2["default"])(InputMaskComponent, [{
229
+ key: "componentDidUpdate",
230
+ value: function componentDidUpdate(prevProps) {
231
+ var valueFromState = this.state.value;
232
+ var _this$props4 = this.props,
233
+ _this$props4$value = _this$props4.value,
234
+ valueFromProps = _this$props4$value === void 0 ? '' : _this$props4$value,
235
+ _this$props4$dictiona = _this$props4.dictionary,
236
+ dictionary = _this$props4$dictiona === void 0 ? {} : _this$props4$dictiona;
237
+
238
+ if (!(0, _isEqual["default"])(prevProps.value, valueFromProps) && !(0, _isEqual["default"])(valueFromProps, valueFromState)) {
239
+ this.setState({
240
+ value: this.isValid(valueFromProps) ? valueFromProps : ''
241
+ });
242
+ }
243
+
244
+ this.dict = _objectSpread(_objectSpread({}, this.dict), dictionary);
245
+ this.valid = this.isValid(valueFromState);
246
+ }
247
+ /**
248
+ * базовый рендер компонента
249
+ */
250
+
251
+ }, {
252
+ key: "render",
253
+ value: function render() {
254
+ var _this$props5 = this.props,
255
+ preset = _this$props5.preset,
256
+ _this$props5$placehol = _this$props5.placeholderChar,
257
+ placeholderChar = _this$props5$placehol === void 0 ? '_' : _this$props5$placehol,
258
+ placeholder = _this$props5.placeholder,
259
+ className = _this$props5.className,
260
+ autoFocus = _this$props5.autoFocus,
261
+ disabled = _this$props5.disabled,
262
+ keepCharPositions = _this$props5.keepCharPositions;
263
+ var _this$state = this.state,
264
+ guide = _this$state.guide,
265
+ value = _this$state.value;
266
+ var mask = this.preset(preset);
267
+ return /*#__PURE__*/_react["default"].createElement(_reactTextMask["default"], {
268
+ disabled: disabled,
269
+ className: (0, _classnames["default"])(['form-control', 'n2o-input-mask', className]),
270
+ placeholderChar: placeholderChar,
271
+ placeholder: placeholder,
272
+ guide: guide,
273
+ mask: mask || this.mask,
274
+ value: value,
275
+ onBlur: this.onBlur,
276
+ onChange: this.onChange,
277
+ onFocus: this.onFocus,
278
+ keepCharPositions: keepCharPositions,
279
+ render: function render(_ref3, props) {
280
+ return /*#__PURE__*/_react["default"].createElement("input", (0, _extends2["default"])({
281
+ ref: function ref(input) {
282
+ return _ref3(input);
283
+ }
284
+ }, props, {
285
+ /* eslint-disable-next-line jsx-a11y/no-autofocus */
286
+ autoFocus: autoFocus
287
+ }));
288
+ }
289
+ });
290
+ }
291
+ }]);
292
+ return InputMaskComponent;
293
+ }(_react["default"].Component);
294
+
295
+ (0, _defineProperty2["default"])(InputMaskComponent, "defaultProps", {
296
+ onChange: function onChange() {},
297
+ placeholderChar: '_',
298
+ guide: true,
299
+ keepCharPositions: false,
300
+ clearOnBlur: false,
301
+ value: '',
302
+ dictionary: {},
303
+ mask: '',
304
+ presetConfig: {},
305
+ onBlur: function onBlur() {},
306
+ disabled: false
307
+ });
308
+ var InputMask = (0, _withRightPlaceholder.withRightPlaceholder)(InputMaskComponent);
309
+ exports.InputMask = InputMask;
310
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbnB1dHMvSW5wdXRNYXNrL0lucHV0TWFzay50c3giXSwibmFtZXMiOlsiSW5wdXRNYXNrQ29tcG9uZW50IiwicHJvcHMiLCJtYXNrIiwibWFwVG9BcnJheSIsInByZXNldCIsInByZXNldENvbmZpZyIsInByZWZpeCIsInN1ZmZpeCIsInVuZGVmaW5lZCIsInZhbHVlIiwicGxhY2Vob2xkZXJDaGFyIiwidG9TdHJpbmciLCJpbmRleE9mIiwibWFwIiwiaXRlbSIsIlJlZ0V4cCIsImxhc3RJbmRleE9mIiwiTWF0aCIsIm1heCIsIk9iamVjdCIsImtleXMiLCJkaWN0IiwiY2hhciIsImd1aWRlIiwiaW5kZXhPZkZpcnN0UGxhY2VIb2xkZXIiLCJsZW5ndGgiLCJpbmRleE9mTGFzdFBsYWNlaG9sZGVyIiwic3BsaXQiLCJlIiwidGFyZ2V0Iiwib25DaGFuZ2UiLCJ2YWxpZCIsImlzVmFsaWQiLCJzZXRTdGF0ZSIsIm5hdGl2ZUV2ZW50Iiwib25CbHVyIiwiY2xlYXJPbkJsdXIiLCJuZXdWYWx1ZSIsInN0YXRlIiwiUyIsItCRIiwiZGljdGlvbmFyeSIsInByZXZQcm9wcyIsInZhbHVlRnJvbVN0YXRlIiwidmFsdWVGcm9tUHJvcHMiLCJwbGFjZWhvbGRlciIsImNsYXNzTmFtZSIsImF1dG9Gb2N1cyIsImRpc2FibGVkIiwia2VlcENoYXJQb3NpdGlvbnMiLCJvbkZvY3VzIiwicmVmIiwiaW5wdXQiLCJSZWFjdCIsIkNvbXBvbmVudCIsIklucHV0TWFzayJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7Ozs7Ozs7Ozs7SUE2Qk1BLGtCOzs7OztBQUtGLDhCQUFZQyxLQUFaLEVBQW1DO0FBQUE7O0FBQUE7QUFDL0IsOEJBQU1BLEtBQU47QUFEK0IsNkZBa0I1QixZQUFNO0FBQ1QsVUFBUUMsSUFBUixHQUFpQixNQUFLRCxLQUF0QixDQUFR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VztBQUlsQjBCLEVBQUFBLGlCQUFpQixFQUFFLEtBSkQ7QUFLbEJiLEVBQUFBLFdBQVcsRUFBRSxLQUxLO0FBTWxCM0IsRUFBQUEsS0FBSyxFQUFFLEVBTlc7QUFPbEJnQyxFQUFBQSxVQUFVLEVBQUUsRUFQTTtBQVFsQnZDLEVBQUFBLElBQUksRUFBRSxFQVJZO0FBU2xCRyxFQUFBQSxZQUFZLEVBQUUsRUFUSTtBQVVsQjhCLEVBQUFBLE1BQU0sRUFBRSxrQkFBTSxDQUFFLENBVkU7QUFXbEJhLEVBQUFBLFFBQVEsRUFBRTtBQVhRLEM7QUFlbkIsSUFBTU8sU0FBUyxHQUFHLGdEQUFxQ3ZELGtCQUFyQyxDQUFsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBTeW50aGV0aWNFdmVudCwgQ2hhbmdlRXZlbnRIYW5kbGVyIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgTWFza2VkSW5wdXQgZnJvbSAncmVhY3QtdGV4dC1tYXNrJ1xuaW1wb3J0IGNuIGZyb20gJ2NsYXNzbmFtZXMnXG5pbXBvcnQgaXNFcXVhbCBmcm9tICdsb2Rhc2gvaXNFcXVhbCdcbmltcG9ydCBjcmVhdGVOdW1iZXJNYXNrIGZyb20gJ3RleHQtbWFzay1hZGRvbnMvZGlzdC9jcmVhdGVOdW1iZXJNYXNrJ1xuaW1wb3J0IHsgaXNBcnJheSwgaXNGdW5jdGlvbiB9IGZyb20gJ2xvZGFzaCdcblxuaW1wb3J0IHsgd2l0aFJpZ2h0UGxhY2Vob2xkZXIgfSBmcm9tICcuLi8uLi9oZWxwZXJzL3dpdGhSaWdodFBsYWNlaG9sZGVyJ1xuaW1wb3J0IHsgVEJhc2VJbnB1dFByb3BzLCBUQmFzZVByb3BzIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5cbmV4cG9ydCB0eXBlIFByZXNldFR5cGUgPSAncGhvbmUnIHwgJ3Bvc3QtY29kZScgfCAnZGF0ZScgfCAnbW9uZXknIHwgJ3BlcmNlbnRhZ2UnIHwgJ2NhcmQnXG50eXBlIE1hc2tUeXBlID0gc3RyaW5nIHwgQXJyYXk8c3RyaW5nIHwgUmVnRXhwPiB8ICgodmFsPzogdW5rbm93bikgPT4gQXJyYXk8c3RyaW5nIHwgUmVnRXhwPilcbnR5cGUgSW5wdXRNYXNrUHJvcHMgPSBUQmFzZVByb3BzICYgT21pdDxUQmFzZUlucHV0UHJvcHM8c3RyaW5nPiwgJ29uQmx1cic+ICYge1xuICAgIGNsZWFyT25CbHVyPzogYm9vbGVhbixcbiAgICBkaWN0aW9uYXJ5PzogUmVjb3JkPHN0cmluZywgUmVnRXhwPixcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdGV4dC1tYXNrL3RleHQtbWFzay9ibG9iL21hc3Rlci9jb21wb25lbnREb2N1bWVudGF0aW9uLm1kI2d1aWRlXG4gICAgZ3VpZGU/OiBib29sZWFuLFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS90ZXh0LW1hc2svdGV4dC1tYXNrL2Jsb2IvbWFzdGVyL2NvbXBvbmVudERvY3VtZW50YXRpb24ubWQja2VlcGNoYXJwb3NpdGlvbnNcbiAgICBrZWVwQ2hhclBvc2l0aW9ucz86IGJvb2xlYW4sXG4gICAgLy8g0KHRgtCw0L3QtNCw0YDRgtC90LDRjyDQutC+0L3RhNC40LPRg9GA0LDRhtC40Y86IDkgLSDRhtC40YTRgNCwLCBTIC0g0LDQvdCz0LvQuNC50YHQutCw0Y8g0LHRg9C60LLQsCwg0JEgLSDRgNGD0YHRgdC60LDRjyDQsdGD0LrQstCwLiDQlNC+0L/QvtC70L3QuNGC0LXQu9GM0L3Rg9GOINC60L7QvdGE0LjQs9GD0YDQsNGG0LjRjiDQvNC+0LbQvdC+INC+0YHRg9GJ0LXRgdGC0LLQuNGC0YwsINC40YHQv9C+0LvRjNC30YPRjyBkaWN0aW9uYXJ5XG4gICAgbWFzaz86IE1hc2tUeXBlXG4gICAgb25CbHVyPyh2YWx1ZTogc3RyaW5nKTogdm9pZCxcbiAgICBvbkNoYW5nZT8odmFsdWU6IHN0cmluZyk6IHZvaWQsXG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmcsXG4gICAgLy8g0YHQuNC80LLQvtC7LCDQutC+0YLQvtGA0YvQuSDQsdGD0LTQtdGCINC90LAg0LzQtdGB0YLQtSDQvdC10LfQsNC/0L7Qu9C90LXQvdC90L7Qs9C+INGB0LjQvNCy0L7Qu9CwINC80LDRgdC60LhcbiAgICBwbGFjZWhvbGRlckNoYXI/OiBzdHJpbmcsXG4gICAgcHJlc2V0PzogUHJlc2V0VHlwZSxcbiAgICAvLyDQvdCw0YHRgtGA0L7QudC60Lgg0L/RgNC10YHQtdGC0LAg0LTQu9GPIElucHV0TW9uZXlcbiAgICBwcmVzZXRDb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbn1cblxudHlwZSBJbnB1dE1hc2tTdGF0ZSA9IHtcbiAgICBndWlkZTogYm9vbGVhbixcbiAgICB2YWx1ZTogc3RyaW5nXG59XG5cbmNsYXNzIElucHV0TWFza0NvbXBvbmVudCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJbnB1dE1hc2tQcm9wcywgSW5wdXRNYXNrU3RhdGU+IHtcbiAgICB2YWxpZDogc3RyaW5nIHwgYm9vbGVhblxuXG4gICAgZGljdDogUmVjb3JkPHN0cmluZyB8IG51bWJlciwgUmVnRXhwPlxuXG4gICAgY29uc3RydWN0b3IocHJvcHM6IElucHV0TWFza1Byb3BzKSB7XG4gICAgICAgIHN1cGVyKHByb3BzKVxuICAgICAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgICAgICAgdmFsdWU6IHByb3BzLnZhbHVlIHx8ICcnLFxuICAgICAgICAgICAgZ3VpZGU6IGZhbHNlLFxuICAgICAgICB9XG4gICAgICAgIHRoaXMudmFsaWQgPSBmYWxzZVxuICAgICAgICB0aGlzLmRpY3QgPSB7XG4gICAgICAgICAgICA5OiAvXFxkLyxcbiAgICAgICAgICAgIFM6IC9bQS1aYS16XS8sXG4gICAgICAgICAgICDQkTogL1vQkC3Rj10vLFxuICAgICAgICAgICAgLi4ucHJvcHMuZGljdGlvbmFyeSxcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINC/0YDQtdC+0LHRgNCw0LfRg9C10YIg0LzQsNGB0LrRgy3RhNGD0L3QutGG0LjRjiwg0LzQsNGB0LrRgy3RgdGC0YDQvtC60YMg0LIg0LzQsNGB0YHQuNCyLdC80LDRgdC60YMgKNGBIHJlZ2V4cCDQstC80LXRgdGC0L4g0YHQuNC80LLQvtC70L7Qsikg0L/RgNC4INC/0L7QvNC+0YnQuCBfbWFwVG9BcnJheVxuICAgICAqL1xuICAgIG1hc2sgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgbWFzayB9ID0gdGhpcy5wcm9wc1xuXG4gICAgICAgIGlmIChpc0FycmF5KG1hc2spKSB7XG4gICAgICAgICAgICByZXR1cm4gbWFza1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzRnVuY3Rpb24obWFzaykpIHtcbiAgICAgICAgICAgIHJldHVybiBtYXNrKClcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLm1hcFRvQXJyYXkobWFzaylcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQstC+0LfQstGA0LDRidCw0LXRgiDQvNCw0YHQutGDINC00LvRjyDQv9GA0LXRgdC10YLQsFxuICAgICAqIEByZXR1cm5zIChudW1iZXIpINCy0L7Qt9Cy0YDQsNGJ0LDQtdGCINC80LDRgdGB0LjQsi3QvNCw0YHQutGDINC00LvRjyDQv9GA0LXRgdC10YLQsC3QsNGA0LPRg9C80LXQvdGC0LBcbiAgICAgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29uc2lzdGVudC1yZXR1cm5cbiAgICBwcmVzZXQgPSAocHJlc2V0PzogUHJlc2V0VHlwZSkgPT4ge1xuICAgICAgICBjb25zdCB7IHByZXNldENvbmZpZyA9IHt9IH0gPSB0aGlzLnByb3BzXG5cbiAgICAgICAgc3dpdGNoIChwcmVzZXQpIHtcbiAgICAgICAgICAgIGNhc2UgJ3Bob25lJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tYXBUb0FycmF5KCcrOSAoOTk5KS05OTktOTktOTknKVxuICAgICAgICAgICAgY2FzZSAncG9zdC1jb2RlJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tYXBUb0FycmF5KCc5OTk5OTknKVxuICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubWFwVG9BcnJheSgnOTkuOTkuOTk5OScpXG4gICAgICAgICAgICBjYXNlICdtb25leSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZU51bWJlck1hc2socHJlc2V0Q29uZmlnKVxuICAgICAgICAgICAgY2FzZSAncGVyY2VudGFnZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZU51bWJlck1hc2soeyBwcmVmaXg6ICcnLCBzdWZmaXg6ICclJyB9KVxuICAgICAgICAgICAgY2FzZSAnY2FyZCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubWFwVG9BcnJheSgnOTk5OSA5OTk5IDk5OTkgOTk5OScpXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCy0L7Qt9Cy0YDQsNGJ0LDQtdGCINC40L3QtNC10LrRgSDQv9C10YDQstC+0LPQviDRgdC40LzQstC+0LvQsCDQvNCw0YHQutC4LCDQutC+0YLQvtGA0YvQuSDQtdGJ0LUg0L3QtSDQt9Cw0L/QvtC70L3QtdC9XG4gICAgICogQHJldHVybnMgKG51bWJlcikg0LjQvdC00LXQutGBINC/0LXRgNCy0L7Qs9C+INGB0LjQvNCy0L7Qu9CwINC80LDRgdC60LgsINC60L7RgtC+0YDRi9C5INC10YnQtSDQvdC1INC30LDQv9C+0LvQvdC10L1cbiAgICAgKi9cbiAgICBpbmRleE9mRmlyc3RQbGFjZUhvbGRlciA9ICh2YWx1ZSA9ICcnKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgcGxhY2Vob2xkZXJDaGFyIH0gPSB0aGlzLnByb3BzXG5cbiAgICAgICAgaWYgKCFwbGFjZWhvbGRlckNoYXIpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKS5pbmRleE9mKHBsYWNlaG9sZGVyQ2hhcilcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQstC+0LfQstGA0LDRidCw0LXRgiDQuNC90LTQtdC60YEg0L/QvtGB0LvQtdC00L3QtdCz0L4g0YHQuNC80LLQvtC70LAg0LzQsNGB0LrQuCwg0LrQvtGC0L7RgNGL0Lkg0LXRidC1INC90LUg0LfQsNC/0L7Qu9C90LXQvVxuICAgICAqIEByZXR1cm5zIChudW1iZXIpINC40L3QtNC10LrRgSDQv9C+0YHQu9C10LTQvdC10LPQviDRgdC40LzQstC+0LvQsCDQvNCw0YHQutC4LCDQutC+0YLQvtGA0YvQuSDQtdGJ0LUg0L3QtSDQt9Cw0L/QvtC70L3QtdC9XG4gICAgICovXG4gICAgaW5kZXhPZkxhc3RQbGFjZWhvbGRlciA9IChtYXNrOiBNYXNrVHlwZSkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIG1hc2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBtYXNrKClcbiAgICAgICAgICAgICAgICAubWFwKGl0ZW0gPT4gaXRlbSBpbnN0YW5jZW9mIFJlZ0V4cClcbiAgICAgICAgICAgICAgICAubGFzdEluZGV4T2YodHJ1ZSlcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgbWFzayA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiBNYXRoLm1heChcbiAgICAgICAgICAgICAgICAuLi5PYmplY3Qua2V5cyh0aGlzLmRpY3QpLm1hcChjaGFyID0+IG1hc2subGFzdEluZGV4T2YoY2hhcikpLFxuICAgICAgICAgICAgKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzQXJyYXkobWFzaykpIHtcbiAgICAgICAgICAgIHJldHVybiBtYXNrLm1hcChpdGVtID0+IGl0ZW0gaW5zdGFuY2VvZiBSZWdFeHApLmxhc3RJbmRleE9mKHRydWUpXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gLTFcbiAgICB9XG5cbiAgICBpc1ZhbGlkID0gKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgeyBwcmVzZXQsIG1hc2ssIGd1aWRlID0gdHJ1ZSB9ID0gdGhpcy5wcm9wc1xuXG4gICAgICAgIGlmIChndWlkZSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlICYmIHRoaXMuaW5kZXhPZkZpcnN0UGxhY2VIb2xkZXIodmFsdWUpID09PSAtMVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByZXNldCkge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICB2YWx1ZS5sZW5ndGggPiB0aGlzLmluZGV4T2ZMYXN0UGxhY2Vob2xkZXIodGhpcy5wcmVzZXQocHJlc2V0KSB8fCBtYXNrKVxuICAgICAgICAgICAgKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0L/RgNC10L7QsdGA0LDQt9C+0LLQsNC90LjQtSDRgdGC0YDQvtC60Lgg0LzQsNGB0LrQuCDQsiDQvNCw0YHRgdC40LIgKNGD0LbQtSDRgSDRgNC10LPRg9C70Y/RgNC90YvQvNC4INCy0YvRgNCw0LbQtdC90LjRj9C80LgpXG4gICAgICovXG4gICAgbWFwVG9BcnJheSA9IChtYXNrID0gJycpID0+IG1hc2suc3BsaXQoJycpLm1hcChjaGFyID0+ICh0aGlzLmRpY3RbY2hhcl0gPyB0aGlzLmRpY3RbY2hhcl0gOiBjaGFyKSlcblxuICAgIG9uQ2hhbmdlOiBDaGFuZ2VFdmVudEhhbmRsZXIgPSAoZSkgPT4ge1xuICAgICAgICBjb25zdCB7IHZhbHVlIH0gPSBlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50XG4gICAgICAgIGNvbnN0IHsgZ3VpZGUgPSB0cnVlLCBvbkNoYW5nZSA9ICgpID0+IHt9IH0gPSB0aGlzLnByb3BzXG5cbiAgICAgICAgdGhpcy52YWxpZCA9IHRoaXMuaXNWYWxpZCh2YWx1ZSlcblxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgdmFsdWUsIGd1aWRlIH0sICgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnZhbGlkIHx8IHZhbHVlID09PSAnJykge1xuICAgICAgICAgICAgICAgIG9uQ2hhbmdlKHZhbHVlKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIG9uQmx1ciA9IChlOiBTeW50aGV0aWNFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCB7IHZhbHVlIH0gPSBlLm5hdGl2ZUV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50XG4gICAgICAgIGNvbnN0IHsgb25CbHVyID0gKCkgPT4ge30sIGNsZWFyT25CbHVyLCBvbkNoYW5nZSA9ICgpID0+IHt9IH0gPSB0aGlzLnByb3BzXG5cbiAgICAgICAgdGhpcy52YWxpZCA9IHRoaXMuaXNWYWxpZCh2YWx1ZSlcbiAgICAgICAgb25CbHVyKHZhbHVlKVxuICAgICAgICBpZiAoIXRoaXMudmFsaWQpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gY2xlYXJPbkJsdXIgPyAnJyA6IHZhbHVlXG5cbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogbmV3VmFsdWUsIGd1aWRlOiBmYWxzZSB9LFxuICAgICAgICAgICAgICAgICgpID0+IG5ld1ZhbHVlID09PSAnJyAmJiBvbkNoYW5nZShuZXdWYWx1ZSksXG4gICAgICAgICAgICApXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkZvY3VzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCB7IGd1aWRlID0gdHJ1ZSB9ID0gdGhpcy5wcm9wc1xuICAgICAgICBjb25zdCB7IHZhbHVlIH0gPSB0aGlzLnN0YXRlXG5cbiAgICAgICAgdGhpcy52YWxpZCA9IHRoaXMuaXNWYWxpZCh2YWx1ZSlcbiAgICAgICAgaWYgKCF0aGlzLnZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZ3VpZGUgfSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHM6IElucHV0TWFza1Byb3BzKSB7XG4gICAgICAgIGNvbnN0IHsgdmFsdWU6IHZhbHVlRnJvbVN0YXRlIH0gPSB0aGlzLnN0YXRlXG4gICAgICAgIGNvbnN0IHsgdmFsdWU6IHZhbHVlRnJvbVByb3BzID0gJycsIGRpY3Rpb25hcnkgPSB7fSB9ID0gdGhpcy5wcm9wc1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICFpc0VxdWFsKHByZXZQcm9wcy52YWx1ZSwgdmFsdWVGcm9tUHJvcHMpICYmXG4gICAgICAgICAgICAhaXNFcXVhbCh2YWx1ZUZyb21Qcm9wcywgdmFsdWVGcm9tU3RhdGUpXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuaXNWYWxpZCh2YWx1ZUZyb21Qcm9wcykgPyB2YWx1ZUZyb21Qcm9wcyA6ICcnLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGljdCA9IHsgLi4udGhpcy5kaWN0LCAuLi5kaWN0aW9uYXJ5IH1cbiAgICAgICAgdGhpcy52YWxpZCA9IHRoaXMuaXNWYWxpZCh2YWx1ZUZyb21TdGF0ZSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQsdCw0LfQvtCy0YvQuSDRgNC10L3QtNC10YAg0LrQvtC80L/QvtC90LXQvdGC0LBcbiAgICAgKi9cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIHByZXNldCxcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyQ2hhciA9ICdfJyxcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyLFxuICAgICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICAgICAgYXV0b0ZvY3VzLFxuICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICBrZWVwQ2hhclBvc2l0aW9ucyxcbiAgICAgICAgfSA9IHRoaXMucHJvcHNcbiAgICAgICAgY29uc3QgeyBndWlkZSwgdmFsdWUgfSA9IHRoaXMuc3RhdGVcbiAgICAgICAgY29uc3QgbWFzayA9IHRoaXMucHJlc2V0KHByZXNldClcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPE1hc2tlZElucHV0XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y24oW1xuICAgICAgICAgICAgICAgICAgICAnZm9ybS1jb250cm9sJyxcbiAgICAgICAgICAgICAgICAgICAgJ24yby1pbnB1dC1tYXNrJyxcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgIF0pfVxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyQ2hhcj17cGxhY2Vob2xkZXJDaGFyfVxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICBndWlkZT17Z3VpZGV9XG4gICAgICAgICAgICAgICAgbWFzaz17bWFzayB8fCB0aGlzLm1hc2t9XG4gICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgIG9uQmx1cj17dGhpcy5vbkJsdXJ9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25DaGFuZ2V9XG4gICAgICAgICAgICAgICAgb25Gb2N1cz17dGhpcy5vbkZvY3VzfVxuICAgICAgICAgICAgICAgIGtlZXBDaGFyUG9zaXRpb25zPXtrZWVwQ2hhclBvc2l0aW9uc31cbiAgICAgICAgICAgICAgICByZW5kZXI9eyhyZWYsIHByb3BzKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXsoaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQpID0+IHJlZihpbnB1dCl9XG4gICAgICAgICAgICAgICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganN4LWExMXkvbm8tYXV0b2ZvY3VzICovXG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXM9e2F1dG9Gb2N1c31cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgKVxuICAgIH1cblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICAgIG9uQ2hhbmdlOiAoKSA9PiB7fSxcbiAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnXycsXG4gICAgICAgIGd1aWRlOiB0cnVlLFxuICAgICAgICBrZWVwQ2hhclBvc2l0aW9uczogZmFsc2UsXG4gICAgICAgIGNsZWFyT25CbHVyOiBmYWxzZSxcbiAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICBkaWN0aW9uYXJ5OiB7fSxcbiAgICAgICAgbWFzazogJycsXG4gICAgICAgIHByZXNldENvbmZpZzoge30sXG4gICAgICAgIG9uQmx1cjogKCkgPT4ge30sXG4gICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICB9IGFzIElucHV0TWFza1Byb3BzXG59XG5cbmV4cG9ydCBjb25zdCBJbnB1dE1hc2sgPSB3aXRoUmlnaHRQbGFjZWhvbGRlcjxJbnB1dE1hc2tQcm9wcz4oSW5wdXRNYXNrQ29tcG9uZW50KVxuIl19