@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.
- package/index.js +0 -0
- package/lib/display/Alerts/Alert.d.ts +2 -0
- package/lib/display/Alerts/Alert.js +121 -0
- package/lib/display/Alerts/AlertSection.d.ts +18 -0
- package/lib/display/Alerts/AlertSection.js +64 -0
- package/lib/display/Alerts/AlertWrapper.d.ts +6 -0
- package/lib/display/Alerts/AlertWrapper.js +39 -0
- package/lib/display/Alerts/DefaultAlert.d.ts +6 -0
- package/lib/display/Alerts/DefaultAlert.js +125 -0
- package/lib/display/Alerts/LoaderAlert.d.ts +5 -0
- package/lib/display/Alerts/LoaderAlert.js +36 -0
- package/lib/display/Alerts/types.d.ts +49 -0
- package/lib/display/Alerts/types.js +24 -0
- package/lib/display/Alerts/utils.d.ts +15 -0
- package/lib/display/Alerts/utils.js +102 -0
- package/lib/display/Badge/Badge.d.ts +16 -0
- package/lib/display/Badge/Badge.js +77 -0
- package/lib/display/Badge/enums.d.ts +9 -0
- package/lib/display/Badge/enums.js +23 -0
- package/lib/display/Badge/utils.d.ts +9 -0
- package/lib/display/Badge/utils.js +49 -0
- package/lib/display/Block.d.ts +369 -0
- package/lib/display/Block.js +38 -0
- package/lib/display/CodeViewer/CodeViewer.d.ts +13 -0
- package/lib/display/CodeViewer/CodeViewer.js +96 -0
- package/lib/display/Drawer/Drawer.d.ts +25 -0
- package/lib/display/Drawer/Drawer.js +99 -0
- package/lib/display/DropdownCustomItem.d.ts +7 -0
- package/lib/display/DropdownCustomItem.js +23 -0
- package/lib/display/Filter/Buttons.d.ts +11 -0
- package/lib/display/Filter/Buttons.js +42 -0
- package/lib/display/Filter/Filter.d.ts +8 -0
- package/lib/display/Filter/Filter.js +38 -0
- package/lib/display/HelpPopover.d.ts +16 -0
- package/lib/display/HelpPopover.js +104 -0
- package/lib/display/Html.d.ts +8 -0
- package/lib/display/Html.js +29 -0
- package/lib/display/Icon/Icon.d.ts +11 -0
- package/lib/display/Icon/Icon.js +42 -0
- package/lib/display/Image/Image.d.ts +30 -0
- package/lib/display/Image/Image.js +93 -0
- package/lib/display/Image/ImageInfo.d.ts +7 -0
- package/lib/display/Image/ImageInfo.js +23 -0
- package/lib/display/InputIcon.d.ts +13 -0
- package/lib/display/InputIcon.js +33 -0
- package/lib/display/NavItemImage/NavItemImage.d.ts +9 -0
- package/lib/display/NavItemImage/NavItemImage.js +35 -0
- package/lib/display/OutputList.d.ts +12 -0
- package/lib/display/OutputList.js +46 -0
- package/lib/display/OutputListItem.d.ts +10 -0
- package/lib/display/OutputListItem.js +58 -0
- package/lib/display/OutputText.d.ts +15 -0
- package/lib/display/OutputText.js +170 -0
- package/lib/display/Pagination/Pagination.d.ts +2 -0
- package/lib/display/Pagination/Pagination.js +273 -0
- package/lib/display/Pagination/PaginationButton.d.ts +13 -0
- package/lib/display/Pagination/PaginationButton.js +53 -0
- package/lib/display/Pagination/types.d.ts +62 -0
- package/lib/display/Pagination/types.js +36 -0
- package/lib/display/PopoverConfirm/PopoverConfirm.d.ts +30 -0
- package/lib/display/PopoverConfirm/PopoverConfirm.js +87 -0
- package/lib/display/ProgressControl/ProgressControl.d.ts +17 -0
- package/lib/display/ProgressControl/ProgressControl.js +68 -0
- package/lib/display/Slider.d.ts +23 -0
- package/lib/display/Slider.js +107 -0
- package/lib/display/Status.d.ts +9 -0
- package/lib/display/Status.js +40 -0
- package/lib/display/StatusText/StatusText.d.ts +10 -0
- package/lib/display/StatusText/StatusText.js +35 -0
- package/lib/display/StatusText/types.d.ts +18 -0
- package/lib/display/StatusText/types.js +19 -0
- package/lib/display/StatusText/utils.d.ts +3 -0
- package/lib/display/StatusText/utils.js +29 -0
- package/lib/display/Text.d.ts +12 -0
- package/lib/display/Text.js +38 -0
- package/lib/display/Typography/Base.d.ts +32 -0
- package/lib/display/Typography/Base.js +259 -0
- package/lib/display/Typography/ContentEditable.d.ts +15 -0
- package/lib/display/Typography/ContentEditable.js +86 -0
- package/lib/display/Typography/Paragraph.d.ts +4 -0
- package/lib/display/Typography/Paragraph.js +23 -0
- package/lib/display/Typography/Text.d.ts +9 -0
- package/lib/display/Typography/Text.js +37 -0
- package/lib/display/Typography/Title.d.ts +7 -0
- package/lib/display/Typography/Title.js +28 -0
- package/lib/display/Typography/utils.d.ts +13 -0
- package/lib/display/Typography/utils.js +75 -0
- package/lib/helpers/HelpPopover.d.ts +9 -0
- package/lib/helpers/HelpPopover.js +46 -0
- package/lib/helpers/withRightPlaceholder.d.ts +9 -0
- package/lib/helpers/withRightPlaceholder.js +35 -0
- package/lib/inputs/Checkbox/Checkbox.d.ts +29 -0
- package/lib/inputs/Checkbox/Checkbox.js +117 -0
- package/lib/inputs/Checkbox/CheckboxControl.d.ts +7 -0
- package/lib/inputs/Checkbox/CheckboxControl.js +33 -0
- package/lib/inputs/CheckboxGroup/CheckboxGroup.d.ts +11 -0
- package/lib/inputs/CheckboxGroup/CheckboxGroup.js +84 -0
- package/lib/inputs/CodeEditor/CodeEditor.d.ts +21 -0
- package/lib/inputs/CodeEditor/CodeEditor.js +85 -0
- package/lib/inputs/DatePicker/Calendar.d.ts +65 -0
- package/lib/inputs/DatePicker/Calendar.js +556 -0
- package/lib/inputs/DatePicker/CalendarHeader.d.ts +26 -0
- package/lib/inputs/DatePicker/CalendarHeader.js +213 -0
- package/lib/inputs/DatePicker/Clock.d.ts +10 -0
- package/lib/inputs/DatePicker/Clock.js +45 -0
- package/lib/inputs/DatePicker/DateInput.d.ts +44 -0
- package/lib/inputs/DatePicker/DateInput.js +262 -0
- package/lib/inputs/DatePicker/DateInputGroup.d.ts +20 -0
- package/lib/inputs/DatePicker/DateInputGroup.js +77 -0
- package/lib/inputs/DatePicker/DateInterval.d.ts +24 -0
- package/lib/inputs/DatePicker/DateInterval.js +92 -0
- package/lib/inputs/DatePicker/DatePicker.d.ts +22 -0
- package/lib/inputs/DatePicker/DatePicker.js +36 -0
- package/lib/inputs/DatePicker/DateTimeControl.d.ts +98 -0
- package/lib/inputs/DatePicker/DateTimeControl.js +452 -0
- package/lib/inputs/DatePicker/Day.d.ts +14 -0
- package/lib/inputs/DatePicker/Day.js +50 -0
- package/lib/inputs/DatePicker/PopUp.d.ts +19 -0
- package/lib/inputs/DatePicker/PopUp.js +71 -0
- package/lib/inputs/DatePicker/types.d.ts +31 -0
- package/lib/inputs/DatePicker/types.js +25 -0
- package/lib/inputs/DatePicker/utils.d.ts +39 -0
- package/lib/inputs/DatePicker/utils.js +304 -0
- package/lib/inputs/Input.d.ts +51 -0
- package/lib/inputs/Input.js +200 -0
- package/lib/inputs/InputMask/InputMask.d.ts +23 -0
- package/lib/inputs/InputMask/InputMask.js +310 -0
- package/lib/inputs/InputMoney/InputMoney.d.ts +101 -0
- package/lib/inputs/InputMoney/InputMoney.js +258 -0
- package/lib/inputs/InputNumber/InputNumber.d.ts +29 -0
- package/lib/inputs/InputNumber/InputNumber.js +316 -0
- package/lib/inputs/InputNumber/index.d.ts +1 -0
- package/lib/inputs/InputNumber/index.js +14 -0
- package/lib/inputs/InputNumber/types.d.ts +18 -0
- package/lib/inputs/InputNumber/types.js +14 -0
- package/lib/inputs/InputNumber/utils.d.ts +6 -0
- package/lib/inputs/InputNumber/utils.js +86 -0
- package/lib/inputs/InputPassword/InputPassword.d.ts +10 -0
- package/lib/inputs/InputPassword/InputPassword.js +81 -0
- package/lib/inputs/InputSelect/InputAddon.d.ts +17 -0
- package/lib/inputs/InputSelect/InputAddon.js +31 -0
- package/lib/inputs/InputSelect/InputContent.d.ts +63 -0
- package/lib/inputs/InputSelect/InputContent.js +188 -0
- package/lib/inputs/InputSelect/InputSelect.d.ts +296 -0
- package/lib/inputs/InputSelect/InputSelect.js +795 -0
- package/lib/inputs/InputSelect/InputSelectGroup.d.ts +43 -0
- package/lib/inputs/InputSelect/InputSelectGroup.js +113 -0
- package/lib/inputs/InputSelect/PopupItems.d.ts +55 -0
- package/lib/inputs/InputSelect/PopupItems.js +357 -0
- package/lib/inputs/InputSelect/PopupList.d.ts +82 -0
- package/lib/inputs/InputSelect/PopupList.js +138 -0
- package/lib/inputs/InputSelect/SelectedItems.d.ts +17 -0
- package/lib/inputs/InputSelect/SelectedItems.js +125 -0
- package/lib/inputs/InputSelect/constants.d.ts +4 -0
- package/lib/inputs/InputSelect/constants.js +15 -0
- package/lib/inputs/InputSelect/types.d.ts +16 -0
- package/lib/inputs/InputSelect/types.js +16 -0
- package/lib/inputs/InputSelect/utils.d.ts +9 -0
- package/lib/inputs/InputSelect/utils.js +142 -0
- package/lib/inputs/InputSelectTree/InputSelectTree.d.ts +114 -0
- package/lib/inputs/InputSelectTree/InputSelectTree.js +466 -0
- package/lib/inputs/InputSelectTree/TreeSelectNode.d.ts +36 -0
- package/lib/inputs/InputSelectTree/TreeSelectNode.js +63 -0
- package/lib/inputs/InputSelectTree/allProps.d.ts +123 -0
- package/lib/inputs/InputSelectTree/allProps.js +48 -0
- package/lib/inputs/InputSelectTree/until.d.ts +4 -0
- package/lib/inputs/InputSelectTree/until.js +83 -0
- package/lib/inputs/InputText.d.ts +41 -0
- package/lib/inputs/InputText.js +170 -0
- package/lib/inputs/NumberPicker/NumberPicker.d.ts +15 -0
- package/lib/inputs/NumberPicker/NumberPicker.js +129 -0
- package/lib/inputs/NumberPicker/NumberPickerButton.d.ts +8 -0
- package/lib/inputs/NumberPicker/NumberPickerButton.js +64 -0
- package/lib/inputs/NumberPicker/index.d.ts +1 -0
- package/lib/inputs/NumberPicker/index.js +14 -0
- package/lib/inputs/NumberPicker/utils.d.ts +2 -0
- package/lib/inputs/NumberPicker/utils.js +31 -0
- package/lib/inputs/RadioGroup/default/Group.d.ts +15 -0
- package/lib/inputs/RadioGroup/default/Group.js +63 -0
- package/lib/inputs/RadioGroup/default/Input.d.ts +17 -0
- package/lib/inputs/RadioGroup/default/Input.js +77 -0
- package/lib/inputs/RadioGroup/tabs/Group.d.ts +3 -0
- package/lib/inputs/RadioGroup/tabs/Group.js +24 -0
- package/lib/inputs/RadioGroup/tabs/Input.d.ts +3 -0
- package/lib/inputs/RadioGroup/tabs/Input.js +21 -0
- package/lib/inputs/Rating/Rating.d.ts +30 -0
- package/lib/inputs/Rating/Rating.js +212 -0
- package/lib/inputs/Select/Popup.d.ts +31 -0
- package/lib/inputs/Select/Popup.js +131 -0
- package/lib/inputs/Select/Select.d.ts +225 -0
- package/lib/inputs/Select/Select.js +705 -0
- package/lib/inputs/Select/SelectInput.d.ts +19 -0
- package/lib/inputs/Select/SelectInput.js +85 -0
- package/lib/inputs/Select/utils.d.ts +1 -0
- package/lib/inputs/Select/utils.js +28 -0
- package/lib/inputs/Switch/Switch.d.ts +11 -0
- package/lib/inputs/Switch/Switch.js +41 -0
- package/lib/inputs/TextArea.d.ts +12 -0
- package/lib/inputs/TextArea.js +54 -0
- package/lib/inputs/TextEditor/TextEditor.d.ts +11 -0
- package/lib/inputs/TextEditor/TextEditor.js +89 -0
- package/lib/inputs/TimePicker/TimePicker.d.ts +50 -0
- package/lib/inputs/TimePicker/TimePicker.js +398 -0
- package/lib/inputs/utils.d.ts +5 -0
- package/lib/inputs/utils.js +39 -0
- package/lib/layouts/ScrollContainer.d.ts +218 -0
- package/lib/layouts/ScrollContainer.js +128 -0
- package/lib/layouts/Spinner/CoverSpinner.d.ts +29 -0
- package/lib/layouts/Spinner/CoverSpinner.js +153 -0
- package/lib/layouts/Spinner/InlineSpinner.d.ts +5 -0
- package/lib/layouts/Spinner/InlineSpinner.js +27 -0
- package/lib/layouts/Spinner/Spinner.d.ts +31 -0
- package/lib/layouts/Spinner/Spinner.js +178 -0
- package/lib/styles/components/Calendar.scss +125 -0
- package/lib/styles/components/CalendarHeader.scss +75 -0
- package/lib/styles/components/DateInputGroup.scss +39 -0
- package/lib/styles/components/DatePicker.scss +18 -0
- package/lib/styles/components/Day.scss +29 -0
- package/lib/styles/components/OutputList.scss +14 -0
- package/lib/styles/components/OutputText.scss +50 -0
- package/lib/styles/controls/CodeEditor.scss +4 -0
- package/lib/styles/controls/InputNumber.scss +36 -0
- package/lib/styles/controls/InputPassword.scss +17 -0
- package/lib/styles/controls/InputText.scss +59 -0
- package/lib/styles/controls/NumberPicker.scss +36 -0
- package/lib/styles/controls/ProgressControl.scss +3 -0
- package/lib/styles/controls/Slider.scss +32 -0
- package/lib/styles/controls/Switch.scss +105 -0
- package/lib/styles/controls/TextEditor.scss +23 -0
- package/lib/styles/controls/TimePicker.scss +32 -0
- package/lib/styles/n2o/variables.scss +328 -0
- package/lib/styles/theme/variables.scss +81 -0
- package/lib/styles/variables.scss +10 -0
- package/lib/types.d.ts +25 -0
- package/lib/types.js +6 -0
- package/lib/utils/id.d.ts +3 -0
- package/lib/utils/id.js +46 -0
- package/lib/utils/isEmptyModel.d.ts +1 -0
- package/lib/utils/isEmptyModel.js +21 -0
- package/lib/utils/parseFormatter.js +153 -0
- 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,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=
|