@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,398 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.TimePicker = void 0;
11
+
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
16
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
+
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
24
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
+
26
+ var _react = _interopRequireWildcard(require("react"));
27
+
28
+ var _reactDom = require("react-dom");
29
+
30
+ var _moment = _interopRequireDefault(require("moment/moment"));
31
+
32
+ var _includes = _interopRequireDefault(require("lodash/includes"));
33
+
34
+ var _pick = _interopRequireDefault(require("lodash/pick"));
35
+
36
+ var _keys = _interopRequireDefault(require("lodash/keys"));
37
+
38
+ var _join = _interopRequireDefault(require("lodash/join"));
39
+
40
+ var _map = _interopRequireDefault(require("lodash/map"));
41
+
42
+ var _get = _interopRequireDefault(require("lodash/get"));
43
+
44
+ var _each = _interopRequireDefault(require("lodash/each"));
45
+
46
+ var _split = _interopRequireDefault(require("lodash/split"));
47
+
48
+ var _classnames = _interopRequireDefault(require("classnames"));
49
+
50
+ var _reactstrap = require("reactstrap");
51
+
52
+ var _reactPopper = require("react-popper");
53
+
54
+ var _scrollIntoViewIfNeeded = _interopRequireDefault(require("scroll-into-view-if-needed"));
55
+
56
+ var _InputIcon = require("../../display/InputIcon");
57
+
58
+ require("../../styles/controls/TimePicker.scss");
59
+
60
+ var _InputText = require("../InputText");
61
+
62
+ var _reference;
63
+
64
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
65
+
66
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
67
+
68
+ 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; }
69
+
70
+ 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; }
71
+
72
+ 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); }; }
73
+
74
+ 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; } }
75
+
76
+ var HOURS = 'hours';
77
+ var MINUTES = 'minutes';
78
+ var SECONDS = 'seconds';
79
+ var DIGIT = 'digit';
80
+ var SYMBOLS = 'symbols';
81
+ var reference = (_reference = {}, (0, _defineProperty2["default"])(_reference, HOURS, {
82
+ format: 'HH',
83
+ en: 'h_hours',
84
+ ru: 'ч_часы',
85
+ values: 24
86
+ }), (0, _defineProperty2["default"])(_reference, MINUTES, {
87
+ format: 'mm',
88
+ en: 'min_minutes',
89
+ ru: 'мин_минуты',
90
+ values: 60
91
+ }), (0, _defineProperty2["default"])(_reference, SECONDS, {
92
+ format: 'ss',
93
+ en: 'sec_seconds',
94
+ ru: 'сек_секунды',
95
+ values: 60
96
+ }), _reference);
97
+
98
+ var toTime = function toTime(value, noZero) {
99
+ return value < 10 && !noZero ? "0".concat(value) : value;
100
+ };
101
+
102
+ var handlePrevent = function handlePrevent(e) {
103
+ e.preventDefault();
104
+ };
105
+
106
+ var TimePicker = /*#__PURE__*/function (_Component) {
107
+ (0, _inherits2["default"])(TimePicker, _Component);
108
+
109
+ var _super = _createSuper(TimePicker);
110
+
111
+ function TimePicker(props) {
112
+ var _this;
113
+
114
+ (0, _classCallCheck2["default"])(this, TimePicker);
115
+ _this = _super.call(this, props);
116
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "value", null);
117
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "controlRef", null);
118
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "hoursRef", null);
119
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "minutesRef", null);
120
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "secondsRef", null);
121
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onClickOutside", function (e) {
122
+ var open = _this.state.open;
123
+ var target = e.target;
124
+
125
+ if (open) {
126
+ var _this$controlRef;
127
+
128
+ // eslint-disable-next-line react/no-find-dom-node
129
+ var controlEl = (0, _reactDom.findDOMNode)((_this$controlRef = _this.controlRef) === null || _this$controlRef === void 0 ? void 0 : _this$controlRef.current);
130
+
131
+ if (target.className.includes('n2o-pop-up') || !(controlEl !== null && controlEl !== void 0 && controlEl.contains(target))) {
132
+ _this.handleClose();
133
+ }
134
+ }
135
+ });
136
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getTimeConfig", function () {
137
+ var mode = _this.props.mode;
138
+ return {
139
+ showHour: (0, _includes["default"])(mode, 'hours'),
140
+ showMinute: (0, _includes["default"])(mode, 'minutes'),
141
+ showSecond: (0, _includes["default"])(mode, 'seconds')
142
+ };
143
+ });
144
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getLocaleText", function (mode, index) {
145
+ var _this$props$locale = _this.props.locale,
146
+ locale = _this$props$locale === void 0 ? 'ru' : _this$props$locale;
147
+ var searchString = (0, _get["default"])(reference, "[".concat(mode, "][").concat(locale, "]"), '');
148
+ var localesArr = (0, _split["default"])(searchString, '_');
149
+ return localesArr[index];
150
+ });
151
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getTime", function (format) {
152
+ var _this$value;
153
+
154
+ return (_this$value = _this.value) !== null && _this$value !== void 0 && _this$value.isValid() ? _this.value.format(format) : '';
155
+ });
156
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getValue", function () {
157
+ var _this$props = _this.props,
158
+ _this$props$format = _this$props.format,
159
+ format = _this$props$format === void 0 ? 'symbols' : _this$props$format,
160
+ _this$props$timeForma = _this$props.timeFormat,
161
+ timeFormat = _this$props$timeForma === void 0 ? 'HH:mm:ss' : _this$props$timeForma,
162
+ _this$props$mode = _this$props.mode,
163
+ mode = _this$props$mode === void 0 ? ['hours', 'minutes', 'seconds'] : _this$props$mode;
164
+
165
+ if (format === DIGIT) {
166
+ return _this.getTime(timeFormat);
167
+ }
168
+
169
+ if (format === SYMBOLS) {
170
+ return _this.getTime((0, _join["default"])((0, _map["default"])((0, _keys["default"])((0, _pick["default"])(reference, mode)), function (mode) {
171
+ return "".concat(reference[mode].format, " [").concat(_this.getLocaleText(mode, 0), "]");
172
+ }), ' '));
173
+ }
174
+ });
175
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleClose", function () {
176
+ var disabled = _this.props.disabled;
177
+
178
+ if (disabled) {
179
+ return;
180
+ }
181
+
182
+ _this.setState({
183
+ open: false
184
+ });
185
+ });
186
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleToggle", function () {
187
+ var disabled = _this.props.disabled;
188
+
189
+ if (disabled) {
190
+ return;
191
+ }
192
+
193
+ _this.setState(function (state) {
194
+ return _objectSpread(_objectSpread({}, state), {}, {
195
+ open: !state.open
196
+ });
197
+ });
198
+ });
199
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleChangeValue", function (mode, value) {
200
+ return function (e) {
201
+ var _prevState, _this$value2;
202
+
203
+ var _this$state = _this.state,
204
+ hours = _this$state[HOURS],
205
+ minutes = _this$state[MINUTES],
206
+ seconds = _this$state[SECONDS];
207
+ e.preventDefault();
208
+ var prevState = (_prevState = {}, (0, _defineProperty2["default"])(_prevState, HOURS, hours || 0), (0, _defineProperty2["default"])(_prevState, MINUTES, minutes || 0), (0, _defineProperty2["default"])(_prevState, SECONDS, seconds || 0), _prevState);
209
+
210
+ if (!((_this$value2 = _this.value) !== null && _this$value2 !== void 0 && _this$value2.isValid())) {
211
+ _this.value = (0, _moment["default"])();
212
+
213
+ _this.value.set(prevState);
214
+ }
215
+
216
+ _this.value.set(mode, value);
217
+
218
+ _this.setState(_objectSpread(_objectSpread({}, prevState), {}, (0, _defineProperty2["default"])({}, mode, value)), function () {
219
+ var _this$props2 = _this.props,
220
+ timeFormat = _this$props2.timeFormat,
221
+ onChange = _this$props2.onChange;
222
+ onChange(_this.getTime(timeFormat));
223
+ });
224
+ };
225
+ });
226
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "renderPrefix", function () {
227
+ var prefix = _this.props.prefix;
228
+
229
+ if (prefix) {
230
+ return /*#__PURE__*/_react["default"].createElement("span", {
231
+ className: "time-prefix"
232
+ }, prefix);
233
+ }
234
+
235
+ return null;
236
+ });
237
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "renderPanelItems", function (mode) {
238
+ var countersArray = new Array((0, _get["default"])(reference, "[".concat(mode, "].values"), []));
239
+ var noZero = _this.props.noZero;
240
+ var modeValue = _this.state[mode];
241
+ return (0, _map["default"])(countersArray, function (val, index) {
242
+ return (
243
+ /*#__PURE__*/
244
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
245
+ _react["default"].createElement("a", {
246
+ key: index,
247
+ ref: index === modeValue ? _this["".concat(mode, "Ref")] : null,
248
+ href: "#",
249
+ className: (0, _classnames["default"])('dropdown-item n2o-time-picker__panel__item', {
250
+ active: index === modeValue
251
+ }),
252
+ onMouseDown: _this.handleChangeValue(mode, index),
253
+ onClick: handlePrevent
254
+ }, toTime(index, noZero))
255
+ );
256
+ });
257
+ });
258
+
259
+ var _value = props.value,
260
+ defaultValue = props.defaultValue,
261
+ _props$timeFormat = props.timeFormat,
262
+ _timeFormat = _props$timeFormat === void 0 ? 'HH:mm:ss' : _props$timeFormat;
263
+
264
+ _this.value = (0, _moment["default"])(_value || defaultValue, _timeFormat);
265
+ _this.state = {
266
+ open: false,
267
+ hours: _this.value.hours(),
268
+ minutes: _this.value.minutes(),
269
+ seconds: _this.value.seconds()
270
+ };
271
+ _this.hoursRef = /*#__PURE__*/_react["default"].createRef();
272
+ _this.minutesRef = /*#__PURE__*/_react["default"].createRef();
273
+ _this.secondsRef = /*#__PURE__*/_react["default"].createRef();
274
+ _this.controlRef = /*#__PURE__*/_react["default"].createRef();
275
+ return _this;
276
+ }
277
+
278
+ (0, _createClass2["default"])(TimePicker, [{
279
+ key: "componentDidMount",
280
+ value: function componentDidMount() {
281
+ if (typeof window !== 'undefined') {
282
+ document.addEventListener('mousedown', this.onClickOutside);
283
+ document.addEventListener('touchstart', this.onClickOutside);
284
+ }
285
+ }
286
+ }, {
287
+ key: "componentDidUpdate",
288
+ value: function componentDidUpdate(prevProps, prevState) {
289
+ var _this2 = this;
290
+
291
+ var open = this.state.open;
292
+ var _this$props3 = this.props,
293
+ value = _this$props3.value,
294
+ timeFormat = _this$props3.timeFormat;
295
+ var hasChangeVisible = open !== prevState.open;
296
+
297
+ if (prevProps.value !== value) {
298
+ this.value = (0, _moment["default"])(value, timeFormat);
299
+ this.setState({
300
+ hours: this.value.hours(),
301
+ minutes: this.value.minutes(),
302
+ seconds: this.value.seconds()
303
+ });
304
+ }
305
+
306
+ (0, _each["default"])([HOURS, MINUTES, SECONDS], function (mode) {
307
+ var ref = _this2["".concat(mode, "Ref")];
308
+
309
+ if (ref !== null && ref !== void 0 && ref.current) {
310
+ (0, _scrollIntoViewIfNeeded["default"])(ref.current, {
311
+ behavior: hasChangeVisible ? 'auto' : 'smooth',
312
+ block: 'start',
313
+ boundary: ref.current.parentElement
314
+ });
315
+ }
316
+ });
317
+ }
318
+ }, {
319
+ key: "componentWillUnmount",
320
+ value: function componentWillUnmount() {
321
+ if (typeof window !== 'undefined') {
322
+ document.removeEventListener('mousedown', this.onClickOutside);
323
+ document.removeEventListener('touchstart', this.onClickOutside);
324
+ }
325
+ }
326
+ }, {
327
+ key: "render",
328
+ value: function render() {
329
+ var _this3 = this;
330
+
331
+ var _this$props4 = this.props,
332
+ placeholder = _this$props4.placeholder,
333
+ disabled = _this$props4.disabled;
334
+ var open = this.state.open;
335
+ var timeConfig = this.getTimeConfig();
336
+ var readyValue = this.getValue();
337
+ var prefixCmp = this.renderPrefix();
338
+ return /*#__PURE__*/_react["default"].createElement("div", {
339
+ className: "n2o-time-picker",
340
+ ref: this.controlRef
341
+ }, /*#__PURE__*/_react["default"].createElement(_reactPopper.Manager, null, /*#__PURE__*/_react["default"].createElement(_reactPopper.Reference, null, function (_ref) {
342
+ var ref = _ref.ref;
343
+ return /*#__PURE__*/_react["default"].createElement(_InputText.InputText, {
344
+ inputRef: ref,
345
+ className: "n2o-time-picker__input",
346
+ prefix: prefixCmp,
347
+ suffix: /*#__PURE__*/_react["default"].createElement(_InputIcon.InputIcon, {
348
+ clickable: true,
349
+ hoverable: true,
350
+ onClick: _this3.handleToggle
351
+ }, /*#__PURE__*/_react["default"].createElement("span", {
352
+ className: "fa fa-chevron-down",
353
+ style: {
354
+ transition: 'transform 150ms linear',
355
+ transform: open ? 'rotate(-180deg)' : 'rotate(0deg)'
356
+ }
357
+ })),
358
+ readOnly: true,
359
+ placeholder: placeholder,
360
+ disabled: disabled,
361
+ value: readyValue,
362
+ onClick: _this3.handleToggle
363
+ });
364
+ }), open ? /*#__PURE__*/_react["default"].createElement(_reactPopper.Popper, {
365
+ placement: "bottom-end",
366
+ strategy: "fixed"
367
+ }, function (_ref2) {
368
+ var ref = _ref2.ref,
369
+ style = _ref2.style,
370
+ placement = _ref2.placement;
371
+ return /*#__PURE__*/_react["default"].createElement("div", {
372
+ ref: ref,
373
+ style: style,
374
+ "data-placement": placement,
375
+ className: "n2o-pop-up"
376
+ }, /*#__PURE__*/_react["default"].createElement(_reactstrap.Row, {
377
+ noGutters: true
378
+ }, timeConfig.showHour ? /*#__PURE__*/_react["default"].createElement(_reactstrap.Col, null, /*#__PURE__*/_react["default"].createElement("div", {
379
+ className: "n2o-time-picker__header"
380
+ }, _this3.getLocaleText(HOURS, 1)), /*#__PURE__*/_react["default"].createElement("div", {
381
+ className: "n2o-time-picker__panel"
382
+ }, _this3.renderPanelItems(HOURS))) : null, timeConfig.showMinute ? /*#__PURE__*/_react["default"].createElement(_reactstrap.Col, null, /*#__PURE__*/_react["default"].createElement("div", {
383
+ className: "n2o-time-picker__header"
384
+ }, _this3.getLocaleText(MINUTES, 1)), /*#__PURE__*/_react["default"].createElement("div", {
385
+ className: "n2o-time-picker__panel"
386
+ }, _this3.renderPanelItems(MINUTES))) : null, timeConfig.showSecond ? /*#__PURE__*/_react["default"].createElement(_reactstrap.Col, null, /*#__PURE__*/_react["default"].createElement("div", {
387
+ className: "n2o-time-picker__header last"
388
+ }, _this3.getLocaleText(SECONDS, 1)), /*#__PURE__*/_react["default"].createElement("div", {
389
+ className: "n2o-time-picker__panel"
390
+ }, _this3.renderPanelItems(SECONDS))) : null));
391
+ }) : null));
392
+ }
393
+ }]);
394
+ return TimePicker;
395
+ }(_react.Component);
396
+
397
+ exports.TimePicker = TimePicker;
398
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbnB1dHMvVGltZVBpY2tlci9UaW1lUGlja2VyLnRzeCJdLCJuYW1lcyI6WyJIT1VSUyIsIk1JTlVURVMiLCJTRUNPTkRTIiwiRElHSVQiLCJTWU1CT0xTIiwicmVmZXJlbmNlIiwiZm9ybWF0IiwiZW4iLCJydSIsInZhbHVlcyIsInRvVGltZSIsInZhbHVlIiwibm9aZXJvIiwiaGFuZGxlUHJldmVudCIsImUiLCJwcmV2ZW50RGVmYXVsdCIsIlRpbWVQaWNrZXIiLCJwcm9wcyIsIm9wZW4iLCJzdGF0ZSIsInRhcmdldCIsImNvbnRyb2xFbCIsImNvbnRyb2xSZWYiLCJjdXJyZW50IiwiY2xhc3NOYW1lIiwiaW5jbHVkZXMiLCJjb250YWlucyIsImhhbmRsZUNsb3NlIiwibW9kZSIsInNob3dIb3VyIiwic2hvd01pbnV0ZSIsInNob3dTZWNvbmQiLCJpbmRleCIsImxvY2FsZSIsInNlYXJjaFN0cmluZyIsImxvY2FsZXNBcnIiLCJpc1ZhbGlkIiwidGltZUZvcm1hdCIsImdldFRpbWUiLCJnZXRMb2NhbGVUZXh0IiwiZGlzYWJsZWQiLCJzZXRTdGF0ZSIsImhvdXJzIiwibWludXRlcyIsInNlY29uZHMiLCJwcmV2U3RhdGUiLCJzZXQiLCJvbkNoYW5nZSIsInByZWZpeCIsImNvdW50ZXJzQXJyYXkiLCJBcnJheSIsIm1vZGVWYWx1ZSIsInZhbCIsImFjdGl2ZSIsImhhbmRsZUNoYW5nZVZhbHVlIiwiZGVmYXVsdFZhbHVlIiwiaG91cnNSZWYiLCJSZWFjdCIsImNyZWF0ZVJlZiIsIm1pbnV0ZXNSZWYiLCJzZWNvbmRzUmVmIiwid2luZG93IiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwib25DbGlja091dHNpZGUiLCJwcmV2UHJvcHMiLCJoYXNDaGFuZ2VWaXNpYmxlIiwicmVmIiwiYmVoYXZpb3IiLCJibG9jayIsImJvdW5kYXJ5IiwicGFyZW50RWxlbWVudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJwbGFjZWhvbGRlciIsInRpbWVDb25maWciLCJnZXRUaW1lQ29uZmlnIiwicmVhZHlWYWx1ZSIsImdldFZhbHVlIiwicHJlZml4Q21wIiwicmVuZGVyUHJlZml4IiwiaGFuZGxlVG9nZ2xlIiwidHJhbnNpdGlvbiIsInRyYW5zZm9ybSIsInN0eWxlIiwicGxhY2VtZW50IiwicmVuZGVyUGFuZWxJdGVtcyIsIkNvbXBvbmVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUdBOztBQUVBOzs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBTUEsS0FBSyxHQUFHLE9BQWQ7QUFDQSxJQUFNQyxPQUFPLEdBQUcsU0FBaEI7QUFDQSxJQUFNQyxPQUFPLEdBQUcsU0FBaEI7QUFFQSxJQUFNQyxLQUFLLEdBQUcsT0FBZDtBQUNBLElBQU1DLE9BQU8sR0FBRyxTQUFoQjtBQUVBLElBQU1DLFNBQXdELGtFQUN6REwsS0FEeUQsRUFDakQ7QUFDTE0sRUFBQUEsTUFBTSxFQUFFLElBREg7QUFFTEMsRUFBQUEsRUFBRSxFQUFFLFNBRkM7QUFHTEMsRUFBQUEsRUFBRSxFQUFFLFFBSEM7QUFJTEMsRUFBQUEsTUFBTSxFQUFFO0FBSkgsQ0FEaUQsZ0RBT3pEUixPQVB5RCxFQU8vQztBQUNQSyxFQUFBQSxNQUFNLEVBQUUsSUFERDtBQUVQQyxFQUFBQSxFQUFFLEVBQUUsYUFGRztBQUdQQyxFQUFBQSxFQUFFLEVBQUUsWUFIRztBQUlQQyxFQUFBQSxNQUFNLEVBQUU7QUFKRCxDQVArQyxnREFhekRQLE9BYnlELEVBYS9DO0FBQ1BJLEVBQUFBLE1BQU0sRUFBRSxJQUREO0FBRVBDLEVBQUFBLEVBQUUsRUFBRSxhQUZHO0FBR1BDLEVBQUFBLEVBQUUsRUFBRSxhQUhHO0FBSVBDLEVBQUFBLE1BQU0sRUFBRTtBQUpELENBYitDLGNBQTlEOztBQXFCQSxJ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Q1UsYUFBTCxDQUFtQnZDLEtBQW5CLEVBQTBCLENBQTFCLENBREwsQ0FESixlQUlJO0FBQUssVUFBQSxTQUFTLEVBQUM7QUFBZixXQUNLLE1BQUksQ0FBQ3FGLGdCQUFMLENBQXNCckYsS0FBdEIsQ0FETCxDQUpKLENBREgsR0FTRyxJQVZSLEVBV0swRSxVQUFVLENBQUM1QyxVQUFYLGdCQUNHLGdDQUFDLGVBQUQscUJBQ0k7QUFBSyxVQUFBLFNBQVMsRUFBQztBQUFmLFdBQ0ssTUFBSSxDQUFDUyxhQUFMLENBQW1CdEMsT0FBbkIsRUFBNEIsQ0FBNUIsQ0FETCxDQURKLGVBSUk7QUFBSyxVQUFBLFNBQVMsRUFBQztBQUFmLFdBQ0ssTUFBSSxDQUFDb0YsZ0JBQUwsQ0FBc0JwRixPQUF0QixDQURMLENBSkosQ0FESCxHQVNHLElBcEJSLEVBcUJLeUUsVUFBVSxDQUFDM0MsVUFBWCxnQkFDRyxnQ0FBQyxlQUFELHFCQUNJO0FBQUssVUFBQSxTQUFTLEVBQUM7QUFBZixXQUNLLE1BQUksQ0FBQ1EsYUFBTCxDQUFtQnJDLE9BQW5CLEVBQTRCLENBQTVCLENBREwsQ0FESixlQUlJO0FBQUssVUFBQSxTQUFTLEVBQUM7QUFBZixXQUNLLE1BQUksQ0FBQ21GLGdCQUFMLENBQXNCbkYsT0FBdEIsQ0FETCxDQUpKLENBREgsR0FTRyxJQTlCUixDQU5KLENBREg7QUFBQSxPQUpMLENBREMsR0ErQ0QsSUF6RVIsQ0FESixDQURKO0FBK0VIOzs7RUFwUzJCb0YsZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50LCBNb3VzZUV2ZW50SGFuZGxlciwgUmVmT2JqZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBmaW5kRE9NTm9kZSB9IGZyb20gJ3JlYWN0LWRvbSdcbmltcG9ydCBtb21lbnQsIHsgTW9tZW50IH0gZnJvbSAnbW9tZW50L21vbWVudCdcbmltcG9ydCBpbmNsdWRlcyBmcm9tICdsb2Rhc2gvaW5jbHVkZXMnXG5pbXBvcnQgcGljayBmcm9tICdsb2Rhc2gvcGljaydcbmltcG9ydCBrZXlzIGZyb20gJ2xvZGFzaC9rZXlzJ1xuaW1wb3J0IGpvaW4gZnJvbSAnbG9kYXNoL2pvaW4nXG5pbXBvcnQgbWFwIGZyb20gJ2xvZGFzaC9tYXAnXG5pbXBvcnQgZ2V0IGZyb20gJ2xvZGFzaC9nZXQnXG5pbXBvcnQgZWFjaCBmcm9tICdsb2Rhc2gvZWFjaCdcbmltcG9ydCBzcGxpdCBmcm9tICdsb2Rhc2gvc3BsaXQnXG5pbXBvcnQgY24gZnJvbSAnY2xhc3NuYW1lcydcbmltcG9ydCB7IFJvdywgQ29sIH0gZnJvbSAncmVhY3RzdHJhcCdcbmltcG9ydCB7IE1hbmFnZXIsIFJlZmVyZW5jZSwgUG9wcGVyIH0gZnJvbSAncmVhY3QtcG9wcGVyJ1xuaW1wb3J0IHNjcm9sbEludG9WaWV3IGZyb20gJ3Njcm9sbC1pbnRvLXZpZXctaWYtbmVlZGVkJ1xuXG5pbXBvcnQgeyBJbnB1dEljb24gfSBmcm9tICcuLi8uLi9kaXNwbGF5L0lucHV0SWNvbidcbmltcG9ydCB7IFRCYXNlSW5wdXRQcm9wcywgVEJhc2VQcm9wcyB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuXG5pbXBvcnQgJy4uLy4uL3N0eWxlcy9jb250cm9scy9UaW1lUGlja2VyLnNjc3MnXG5cbmltcG9ydCB7IElucHV0VGV4dCB9IGZyb20gJy4uL0lucHV0VGV4dCdcblxuY29uc3QgSE9VUlMgPSAnaG91cnMnXG5jb25zdCBNSU5VVEVTID0gJ21pbnV0ZXMnXG5jb25zdCBTRUNPTkRTID0gJ3NlY29uZHMnXG5cbmNvbnN0IERJR0lUID0gJ2RpZ2l0J1xuY29uc3QgU1lNQk9MUyA9ICdzeW1ib2xzJ1xuXG5jb25zdCByZWZlcmVuY2U6IFJlY29yZDxNb2RlLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXI+PiA9IHtcbiAgICBbSE9VUlNdOiB7XG4gICAgICAgIGZvcm1hdDogJ0hIJyxcbiAgICAgICAgZW46ICdoX2hvdXJzJyxcbiAgICAgICAgcnU6ICfRh1/Rh9Cw0YHRiycsXG4gICAgICAgIHZhbHVlczogMjQsXG4gICAgfSxcbiAgICBbTUlOVVRFU106IHtcbiAgICAgICAgZm9ybWF0OiAnbW0nLFxuICAgICAgICBlbjogJ21pbl9taW51dGVzJyxcbiAgICAgICAgcnU6ICfQvNC40L1f0LzQuNC90YPRgtGLJyxcbiAgICAgICAgdmFsdWVzOiA2MCxcbiAgICB9LFxuICAgIFtTRUNPTkRTXToge1xuICAgICAgICBmb3JtYXQ6ICdzcycsXG4gICAgICAgIGVuOiAnc2VjX3NlY29uZHMnLFxuICAgICAgICBydTogJ9GB0LXQul/RgdC10LrRg9C90LTRiycsXG4gICAgICAgIHZhbHVlczogNjAsXG4gICAgfSxcbn1cblxuY29uc3QgdG9UaW1lID0gKHZhbHVlOiBudW1iZXIsIG5vWmVybz86IGJvb2xlYW4pID0+ICh2YWx1ZSA8IDEwICYmICFub1plcm8gPyBgMCR7dmFsdWV9YCA6IHZhbHVlKVxuXG5jb25zdCBoYW5kbGVQcmV2ZW50OiBNb3VzZUV2ZW50SGFuZGxlcjxIVE1MQW5jaG9yRWxlbWVudD4gPSAoZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKVxufVxuXG50eXBlIE1vZGUgPSAnaG91cnMnIHwgJ21pbnV0ZXMnIHwgJ3NlY29uZHMnXG5cbnR5cGUgVGltZVBpY2tlclByb3BzID0gUGljazxUQmFzZVByb3BzLCAnZGlzYWJsZWQnPiAmIFRCYXNlSW5wdXRQcm9wczxzdHJpbmc+ICYge1xuICAgIGRlZmF1bHRWYWx1ZT86IHN0cmluZyxcbiAgICBkaXNhYmxlZD86IGJvb2xlYW4sXG4gICAgZm9ybWF0PzogJ2RpZ2l0JyB8ICdzeW1ib2xzJyxcbiAgICBsb2NhbGU/OiAnZW4nIHwgJ3J1JyxcbiAgICBtb2RlPzogTW9kZVtdLFxuICAgIG5vWmVybz86IGJvb2xlYW4sXG4gICAgb25DaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQsXG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmcsXG4gICAgcHJlZml4Pzogc3RyaW5nLFxuICAgIHRpbWVGb3JtYXQ/OiBzdHJpbmdcbn1cblxudHlwZSBUaW1lUGlja2VyU3RhdGUgPSB7XG4gICAgJ2hvdXJzJzogbnVtYmVyLFxuICAgICdtaW51dGVzJzogbnVtYmVyLFxuICAgIG9wZW46IGJvb2xlYW4sXG4gICAgJ3NlY29uZHMnOiBudW1iZXJcbn1cblxuZXhwb3J0IGNsYXNzIFRpbWVQaWNrZXIgZXh0ZW5kcyBDb21wb25lbnQ8VGltZVBpY2tlclByb3BzLCBUaW1lUGlja2VyU3RhdGU+IHtcbiAgICB2YWx1ZTogTW9tZW50IHwgbnVsbCA9IG51bGxcblxuICAgIGNvbnRyb2xSZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD4gfCBudWxsID0gbnVsbFxuXG4gICAgaG91cnNSZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD4gfCBudWxsID0gbnVsbFxuXG4gICAgbWludXRlc1JlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PiB8IG51bGwgPSBudWxsXG5cbiAgICBzZWNvbmRzUmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+IHwgbnVsbCA9IG51bGxcblxuICAgIGNvbnN0cnVjdG9yKHByb3BzOiBUaW1lUGlja2VyUHJvcHMpIHtcbiAgICAgICAgc3VwZXIocHJvcHMpXG4gICAgICAgIGNvbnN0IHsgdmFsdWUsIGRlZmF1bHRWYWx1ZSwgdGltZUZvcm1hdCA9ICdISDptbTpzcycgfSA9IHByb3BzXG5cbiAgICAgICAgdGhpcy52YWx1ZSA9IG1vbWVudCh2YWx1ZSB8fCBkZWZhdWx0VmFsdWUsIHRpbWVGb3JtYXQpXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICBvcGVuOiBmYWxzZSxcbiAgICAgICAgICAgIGhvdXJzOiB0aGlzLnZhbHVlLmhvdXJzKCksXG4gICAgICAgICAgICBtaW51dGVzOiB0aGlzLnZhbHVlLm1pbnV0ZXMoKSxcbiAgICAgICAgICAgIHNlY29uZHM6IHRoaXMudmFsdWUuc2Vjb25kcygpLFxuICAgICAgICB9XG4gICAgICAgIHRoaXMuaG91cnNSZWYgPSBSZWFjdC5jcmVhdGVSZWYoKVxuICAgICAgICB0aGlzLm1pbnV0ZXNSZWYgPSBSZWFjdC5jcmVhdGVSZWYoKVxuICAgICAgICB0aGlzLnNlY29uZHNSZWYgPSBSZWFjdC5jcmVhdGVSZWYoKVxuICAgICAgICB0aGlzLmNvbnRyb2xSZWYgPSBSZWFjdC5jcmVhdGVSZWYoKVxuICAgIH1cblxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMub25DbGlja091dHNpZGUpXG4gICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgdGhpcy5vbkNsaWNrT3V0c2lkZSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHM6IFRpbWVQaWNrZXJQcm9wcywgcHJldlN0YXRlOiBUaW1lUGlja2VyU3RhdGUpIHtcbiAgICAgICAgY29uc3QgeyBvcGVuIH0gPSB0aGlzLnN0YXRlXG4gICAgICAgIGNvbnN0IHsgdmFsdWUsIHRpbWVGb3JtYXQgfSA9IHRoaXMucHJvcHNcblxuICAgICAgICBjb25zdCBoYXNDaGFuZ2VWaXNpYmxlID0gb3BlbiAhPT0gcHJldlN0YXRlLm9wZW5cblxuICAgICAgICBpZiAocHJldlByb3BzLnZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG1vbWVudCh2YWx1ZSwgdGltZUZvcm1hdClcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICAgIGhvdXJzOiB0aGlzLnZhbHVlLmhvdXJzKCksXG4gICAgICAgICAgICAgICAgbWludXRlczogdGhpcy52YWx1ZS5taW51dGVzKCksXG4gICAgICAgICAgICAgICAgc2Vjb25kczogdGhpcy52YWx1ZS5zZWNvbmRzKCksXG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgZWFjaChbSE9VUlMsIE1JTlVURVMsIFNFQ09ORFNdLCAobW9kZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVmID0gdGhpc1tgJHttb2RlfVJlZmAgYXMga2V5b2YgVGltZVBpY2tlcl1cblxuICAgICAgICAgICAgaWYgKHJlZj8uY3VycmVudCkge1xuICAgICAgICAgICAgICAgIHNjcm9sbEludG9WaWV3KHJlZi5jdXJyZW50LCB7XG4gICAgICAgICAgICAgICAgICAgIGJlaGF2aW9yOiBoYXNDaGFuZ2VWaXNpYmxlID8gJ2F1dG8nIDogJ3Ntb290aCcsXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrOiAnc3RhcnQnLFxuICAgICAgICAgICAgICAgICAgICBib3VuZGFyeTogcmVmLmN1cnJlbnQucGFyZW50RWxlbWVudCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMub25DbGlja091dHNpZGUpXG4gICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgdGhpcy5vbkNsaWNrT3V0c2lkZSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ2xpY2tPdXRzaWRlOiBFdmVudExpc3RlbmVyID0gKGUpID0+IHtcbiAgICAgICAgY29uc3QgeyBvcGVuIH0gPSB0aGlzLnN0YXRlXG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50XG5cbiAgICAgICAgaWYgKG9wZW4pIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9uby1maW5kLWRvbS1ub2RlXG4gICAgICAgICAgICBjb25zdCBjb250cm9sRWwgPSBmaW5kRE9NTm9kZSh0aGlzLmNvbnRyb2xSZWY/LmN1cnJlbnQpXG5cbiAgICAgICAgICAgIGlmICh0YXJnZXQuY2xhc3NOYW1lLmluY2x1ZGVzKCduMm8tcG9wLXVwJykgfHwgIWNvbnRyb2xFbD8uY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2xvc2UoKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0VGltZUNvbmZpZyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgeyBtb2RlIH0gPSB0aGlzLnByb3BzXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNob3dIb3VyOiBpbmNsdWRlcyhtb2RlLCAnaG91cnMnKSxcbiAgICAgICAgICAgIHNob3dNaW51dGU6IGluY2x1ZGVzKG1vZGUsICdtaW51dGVzJyksXG4gICAgICAgICAgICBzaG93U2Vjb25kOiBpbmNsdWRlcyhtb2RlLCAnc2Vjb25kcycpLFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0TG9jYWxlVGV4dCA9IChtb2RlOiBNb2RlLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgbG9jYWxlID0gJ3J1JyB9ID0gdGhpcy5wcm9wc1xuICAgICAgICBjb25zdCBzZWFyY2hTdHJpbmcgPSBnZXQocmVmZXJlbmNlLCBgWyR7bW9kZX1dWyR7bG9jYWxlfV1gLCAnJykgYXMgc3RyaW5nXG4gICAgICAgIGNvbnN0IGxvY2FsZXNBcnIgPSBzcGxpdCgoc2VhcmNoU3RyaW5nKSwgJ18nKVxuXG4gICAgICAgIHJldHVybiBsb2NhbGVzQXJyW2luZGV4XVxuICAgIH1cblxuICAgIGdldFRpbWUgPSAoZm9ybWF0Pzogc3RyaW5nKSA9PiAodGhpcy52YWx1ZT8uaXNWYWxpZCgpID8gdGhpcy52YWx1ZS5mb3JtYXQoZm9ybWF0KSA6ICcnKVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbnNpc3RlbnQtcmV0dXJuXG4gICAgZ2V0VmFsdWUgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgZm9ybWF0ID0gJ3N5bWJvbHMnLCB0aW1lRm9ybWF0ID0gJ0hIOm1tOnNzJywgbW9kZSA9IFsnaG91cnMnLCAnbWludXRlcycsICdzZWNvbmRzJ10gfSA9IHRoaXMucHJvcHNcblxuICAgICAgICBpZiAoZm9ybWF0ID09PSBESUdJVCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VGltZSh0aW1lRm9ybWF0KVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gU1lNQk9MUykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VGltZShcbiAgICAgICAgICAgICAgICBqb2luKFxuICAgICAgICAgICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXlzKHBpY2socmVmZXJlbmNlLCBtb2RlKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAobW9kZTogTW9kZSkgPT4gYCR7cmVmZXJlbmNlW21vZGVdLmZvcm1hdH0gWyR7dGhpcy5nZXRMb2NhbGVUZXh0KG1vZGUsIDApfV1gLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAnICcsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZUNsb3NlID0gKCkgPT4ge1xuICAgICAgICBjb25zdCB7IGRpc2FibGVkIH0gPSB0aGlzLnByb3BzXG5cbiAgICAgICAgaWYgKGRpc2FibGVkKSB7IHJldHVybiB9XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBvcGVuOiBmYWxzZSB9KVxuICAgIH1cblxuICAgIGhhbmRsZVRvZ2dsZSA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgeyBkaXNhYmxlZCB9ID0gdGhpcy5wcm9wc1xuXG4gICAgICAgIGlmIChkaXNhYmxlZCkgeyByZXR1cm4gfVxuICAgICAgICB0aGlzLnNldFN0YXRlKHN0YXRlID0+ICh7IC4uLnN0YXRlLCBvcGVuOiAhc3RhdGUub3BlbiB9KSlcbiAgICB9XG5cbiAgICBoYW5kbGVDaGFuZ2VWYWx1ZSA9IChtb2RlOiBNb2RlLCB2YWx1ZTogbnVtYmVyKTogTW91c2VFdmVudEhhbmRsZXI8SFRNTEFuY2hvckVsZW1lbnQ+ID0+IChlKSA9PiB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIFtIT1VSU106IGhvdXJzLFxuICAgICAgICAgICAgW01JTlVURVNdOiBtaW51dGVzLFxuICAgICAgICAgICAgW1NFQ09ORFNdOiBzZWNvbmRzLFxuICAgICAgICB9ID0gdGhpcy5zdGF0ZVxuXG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuXG4gICAgICAgIGNvbnN0IHByZXZTdGF0ZSA9IHtcbiAgICAgICAgICAgIFtIT1VSU106IGhvdXJzIHx8IDAsXG4gICAgICAgICAgICBbTUlOVVRFU106IG1pbnV0ZXMgfHwgMCxcbiAgICAgICAgICAgIFtTRUNPTkRTXTogc2Vjb25kcyB8fCAwLFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLnZhbHVlPy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBtb21lbnQoKVxuICAgICAgICAgICAgdGhpcy52YWx1ZS5zZXQocHJldlN0YXRlKVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWx1ZS5zZXQobW9kZSwgdmFsdWUpXG5cbiAgICAgICAgdGhpcy5zZXRTdGF0ZShcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5wcmV2U3RhdGUsXG4gICAgICAgICAgICAgICAgW21vZGVdOiB2YWx1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB0aW1lRm9ybWF0LCBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wc1xuXG4gICAgICAgICAgICAgICAgb25DaGFuZ2UodGhpcy5nZXRUaW1lKHRpbWVGb3JtYXQpKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgKVxuICAgIH1cblxuICAgIHJlbmRlclByZWZpeCA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgeyBwcmVmaXggfSA9IHRoaXMucHJvcHNcblxuICAgICAgICBpZiAocHJlZml4KSB7XG4gICAgICAgICAgICByZXR1cm4gPHNwYW4gY2xhc3NOYW1lPVwidGltZS1wcmVmaXhcIj57cHJlZml4fTwvc3Bhbj5cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgcmVuZGVyUGFuZWxJdGVtcyA9IChtb2RlOiBNb2RlKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvdW50ZXJzQXJyYXkgPSBuZXcgQXJyYXkoZ2V0KHJlZmVyZW5jZSwgYFske21vZGV9XS52YWx1ZXNgLCBbXSkpXG4gICAgICAgIGNvbnN0IHsgbm9aZXJvIH0gPSB0aGlzLnByb3BzXG4gICAgICAgIGNvbnN0IHsgW21vZGVdOiBtb2RlVmFsdWUgfSA9IHRoaXMuc3RhdGVcblxuICAgICAgICByZXR1cm4gbWFwKGNvdW50ZXJzQXJyYXksICh2YWwsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganN4LWExMXkvYW5jaG9yLWlzLXZhbGlkXG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgcmVmPXtpbmRleCA9PT0gbW9kZVZhbHVlID8gdGhpc1tgJHttb2RlfVJlZmAgYXMga2V5b2YgVGltZVBpY2tlcl0gOiBudWxsfVxuICAgICAgICAgICAgICAgIGhyZWY9XCIjXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NuKCdkcm9wZG93bi1pdGVtIG4yby10aW1lLXBpY2tlcl9fcGFuZWxfX2l0ZW0nLCB7XG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZTogaW5kZXggPT09IG1vZGVWYWx1ZSxcbiAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17dGhpcy5oYW5kbGVDaGFuZ2VWYWx1ZShtb2RlLCBpbmRleCl9XG4gICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlUHJldmVudH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dG9UaW1lKGluZGV4LCBub1plcm8pfVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICApKVxuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3QgeyBwbGFjZWhvbGRlciwgZGlzYWJsZWQgfSA9IHRoaXMucHJvcHNcbiAgICAgICAgY29uc3QgeyBvcGVuIH0gPSB0aGlzLnN0YXRlXG4gICAgICAgIGNvbnN0IHRpbWVDb25maWcgPSB0aGlzLmdldFRpbWVDb25maWcoKVxuICAgICAgICBjb25zdCByZWFkeVZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpXG4gICAgICAgIGNvbnN0IHByZWZpeENtcCA9IHRoaXMucmVuZGVyUHJlZml4KClcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuMm8tdGltZS1waWNrZXJcIiByZWY9e3RoaXMuY29udHJvbFJlZn0+XG4gICAgICAgICAgICAgICAgPE1hbmFnZXI+XG4gICAgICAgICAgICAgICAgICAgIDxSZWZlcmVuY2U+XG4gICAgICAgICAgICAgICAgICAgICAgICB7KHsgcmVmIH0pID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXRUZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0UmVmPXtyZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm4yby10aW1lLXBpY2tlcl9faW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXg9e3ByZWZpeENtcH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VmZml4PXsoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXRJY29uIGNsaWNrYWJsZSBob3ZlcmFibGUgb25DbGljaz17dGhpcy5oYW5kbGVUb2dnbGV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZhIGZhLWNoZXZyb24tZG93blwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAndHJhbnNmb3JtIDE1MG1zIGxpbmVhcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IG9wZW4gPyAncm90YXRlKC0xODBkZWcpJyA6ICdyb3RhdGUoMGRlZyknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lucHV0SWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZE9ubHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtyZWFkeVZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZVRvZ2dsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgPC9SZWZlcmVuY2U+XG4gICAgICAgICAgICAgICAgICAgIHtvcGVuID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPFBvcHBlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1lbmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmF0ZWd5PVwiZml4ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoeyByZWYsIHN0eWxlLCBwbGFjZW1lbnQgfSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcGxhY2VtZW50PXtwbGFjZW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJuMm8tcG9wLXVwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvdyBub0d1dHRlcnM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3RpbWVDb25maWcuc2hvd0hvdXIgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDb2w+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm4yby10aW1lLXBpY2tlcl9faGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3RoaXMuZ2V0TG9jYWxlVGV4dChIT1VSUywgMSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibjJvLXRpbWUtcGlja2VyX19wYW5lbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLnJlbmRlclBhbmVsSXRlbXMoSE9VUlMpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0aW1lQ29uZmlnLnNob3dNaW51dGUgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDb2w+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm4yby10aW1lLXBpY2tlcl9faGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3RoaXMuZ2V0TG9jYWxlVGV4dChNSU5VVEVTLCAxKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuMm8tdGltZS1waWNrZXJfX3BhbmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3RoaXMucmVuZGVyUGFuZWxJdGVtcyhNSU5VVEVTKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dGltZUNvbmZpZy5zaG93U2Vjb25kID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q29sPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuMm8tdGltZS1waWNrZXJfX2hlYWRlciBsYXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3RoaXMuZ2V0TG9jYWxlVGV4dChTRUNPTkRTLCAxKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuMm8tdGltZS1waWNrZXJfX3BhbmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3RoaXMucmVuZGVyUGFuZWxJdGVtcyhTRUNPTkRTKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUm93PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9Qb3BwZXI+XG4gICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvTWFuYWdlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICApXG4gICAgfVxufVxuIl19
@@ -0,0 +1,5 @@
1
+ export declare const mapToNum: (count: number | string, callback: (value: number) => void, { increment, start, inclusive }?: {
2
+ increment?: number | undefined;
3
+ start?: number | undefined;
4
+ inclusive?: boolean | undefined;
5
+ }) => void[] | null;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.mapToNum = void 0;
7
+
8
+ var condition = function condition(i, count, inclusive) {
9
+ if (inclusive) {
10
+ return i <= parseInt(count, 10);
11
+ }
12
+
13
+ return i < parseInt(count, 10);
14
+ };
15
+
16
+ var mapToNum = function mapToNum(count, callback) {
17
+ var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
18
+ _ref$increment = _ref.increment,
19
+ increment = _ref$increment === void 0 ? 1 : _ref$increment,
20
+ _ref$start = _ref.start,
21
+ start = _ref$start === void 0 ? 0 : _ref$start,
22
+ _ref$inclusive = _ref.inclusive,
23
+ inclusive = _ref$inclusive === void 0 ? false : _ref$inclusive;
24
+
25
+ if (!count) {
26
+ return null;
27
+ }
28
+
29
+ var buf = [];
30
+
31
+ for (var i = start; condition(i, String(count), inclusive); i += increment) {
32
+ buf.push(callback(i));
33
+ }
34
+
35
+ return buf;
36
+ };
37
+
38
+ exports.mapToNum = mapToNum;
39
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnB1dHMvdXRpbHMudHMiXSwibmFtZXMiOlsiY29uZGl0aW9uIiwiaSIsImNvdW50IiwiaW5jbHVzaXZlIiwicGFyc2VJbnQiLCJtYXBUb051bSIsImNhbGxiYWNrIiwiaW5jcmVtZW50Iiwic3RhcnQiLCJidWYiLCJTdHJpbmciLCJwdXNoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBTUEsU0FBUyxHQUFHLFNBQVpBLFNBQVksQ0FBQ0MsQ0FBRCxFQUFZQyxLQUFaLEVBQTJCQyxTQUEzQixFQUFrRDtBQUNoRSxNQUFJQSxTQUFKLEVBQWU7QUFDWCxXQUFPRixDQUFDLElBQUlHLFFBQVEsQ0FBQ0YsS0FBRCxFQUFRLEVBQVIsQ0FBcEI7QUFDSDs7QUFFRCxTQUFPRCxDQUFDLEdBQUdHLFFBQVEsQ0FBQ0YsS0FBRCxFQUFRLEVBQVIsQ0FBbkI7QUFDSCxDQU5EOztBQVFPLElBQU1HLFFBQVEsR0FBRyxTQUFYQSxRQUFXLENBQ3BCSCxLQURvQixFQUVwQkksUUFGb0IsRUFJbkI7QUFBQSxpRkFEaUQsRUFDakQ7QUFBQSw0QkFEQ0MsU0FDRDtBQUFBLE1BRENBLFNBQ0QsK0JBRGEsQ0FDYjtBQUFBLHdCQURnQkMsS0FDaEI7QUFBQSxNQURnQkEsS0FDaEIsMkJBRHdCLENBQ3hCO0FBQUEsNEJBRDJCTCxTQUMzQjtBQUFBLE1BRDJCQSxTQUMzQiwrQkFEdUMsS0FDdkM7O0FBQ0QsTUFBSSxDQUFDRCxLQUFMLEVBQVk7QUFBRSxXQUFPLElBQVA7QUFBYTs7QUFDM0IsTUFBTU8sR0FBRyxHQUFHLEVBQVo7O0FBRUEsT0FBSyxJQUFJUixDQUFDLEdBQUdPLEtBQWIsRUFBb0JSLFNBQVMsQ0FBQ0MsQ0FBRCxFQUFJUyxNQUFNLENBQUNSLEtBQUQsQ0FBVixFQUFtQkMsU0FBbkIsQ0FBN0IsRUFBNERGLENBQUMsSUFBSU0sU0FBakUsRUFBNEU7QUFDeEVFLElBQUFBLEdBQUcsQ0FBQ0UsSUFBSixDQUFTTCxRQUFRLENBQUNMLENBQUQsQ0FBakI7QUFDSDs7QUFFRCxTQUFPUSxHQUFQO0FBQ0gsQ0FiTSIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGNvbmRpdGlvbiA9IChpOiBudW1iZXIsIGNvdW50OiBzdHJpbmcsIGluY2x1c2l2ZTogYm9vbGVhbikgPT4ge1xuICAgIGlmIChpbmNsdXNpdmUpIHtcbiAgICAgICAgcmV0dXJuIGkgPD0gcGFyc2VJbnQoY291bnQsIDEwKVxuICAgIH1cblxuICAgIHJldHVybiBpIDwgcGFyc2VJbnQoY291bnQsIDEwKVxufVxuXG5leHBvcnQgY29uc3QgbWFwVG9OdW0gPSAoXG4gICAgY291bnQ6IG51bWJlciB8IHN0cmluZyxcbiAgICBjYWxsYmFjazogKHZhbHVlOiBudW1iZXIpID0+IHZvaWQsXG4gICAgeyBpbmNyZW1lbnQgPSAxLCBzdGFydCA9IDAsIGluY2x1c2l2ZSA9IGZhbHNlIH0gPSB7fSxcbikgPT4ge1xuICAgIGlmICghY291bnQpIHsgcmV0dXJuIG51bGwgfVxuICAgIGNvbnN0IGJ1ZiA9IFtdXG5cbiAgICBmb3IgKGxldCBpID0gc3RhcnQ7IGNvbmRpdGlvbihpLCBTdHJpbmcoY291bnQpLCBpbmNsdXNpdmUpOyBpICs9IGluY3JlbWVudCkge1xuICAgICAgICBidWYucHVzaChjYWxsYmFjayhpKSlcbiAgICB9XG5cbiAgICByZXR1cm4gYnVmXG59XG4iXX0=