@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,82 @@
1
+ import React from 'react';
2
+ import { Position, Shape } from '../../display/Badge/enums';
3
+ import { Ref, TOption } from './types';
4
+ /**
5
+ * Компонент попапа для {@link InputSelect}
6
+ * @reactProps {array} options - массив данных
7
+ * @reactProps {string} valueFieldId - значение ключа value в данных
8
+ * @reactProps {string} labelFieldId - значение ключа label в данны
9
+ * @reactProps {string} iconFieldId - поле для иконки
10
+ * @reactProps {string} imageFieldId - поле для картинки
11
+ * @reactProps {string} groupFieldId - поле для группировки
12
+ * @reactProps {object} badge - данные для баджа
13
+ * @reactProps {string} enabledFieldId - поле для активности
14
+ * @reactProps {array} disabledValues - неактивные данные
15
+ * @reactProps {string} format - формат
16
+ * @reactProps {boolean} hasCheckboxes - флаг наличия чекбоксов
17
+ * @reactProps {array} selected - выбранные элементы
18
+ * @reactProps {function} onSelect - callback при выборе элемента
19
+ * @reactProps {function} onRemoveItem - callback при удаление элемента
20
+ * @reactProps {boolean} needAddFilter
21
+ * @reactProps {node} children - элемент потомок компонента PopupList
22
+ * @reactProps {function} handleMouseEnter - обработчик для события onMouseEnter
23
+ * @reactProps {function} handleMouseLeave - обработчик для события onMouseLeave
24
+ */
25
+ export declare type BadgeType = {
26
+ colorFieldId: string;
27
+ fieldId: string;
28
+ imageFieldId: string;
29
+ imagePosition: Position;
30
+ imageShape: Shape;
31
+ position: Position;
32
+ shape: Shape;
33
+ };
34
+ declare type Props = {
35
+ activeValueId?: string | null;
36
+ autocomplete?: boolean;
37
+ badge?: BadgeType;
38
+ children?: React.ReactNode;
39
+ count?: number;
40
+ descriptionFieldId?: string;
41
+ disabledValues: [];
42
+ enabledFieldId?: string;
43
+ fetchData(arg: object, concat?: boolean): void;
44
+ filterValue?: any;
45
+ format?: string;
46
+ groupFieldId: string;
47
+ handleMouseEnter?(): void;
48
+ handleMouseLeave?(): void;
49
+ hasCheckboxes: boolean;
50
+ iconFieldId: string;
51
+ imageFieldId: string;
52
+ isExpanded?: boolean;
53
+ labelFieldId: string;
54
+ loading?: boolean;
55
+ needAddFilter?: boolean;
56
+ onRemoveItem?(item: TOption): void;
57
+ onSelect(item: TOption): void;
58
+ options?: TOption[];
59
+ page?: number;
60
+ popUpItemRef?: Ref;
61
+ renderIfEmpty?: boolean;
62
+ scheduleUpdate?(): void;
63
+ selected?: any[];
64
+ setActiveValueId?(id: string | null): void;
65
+ setMenuElement?(): void;
66
+ size?: number;
67
+ statusFieldId?: string;
68
+ style?: object;
69
+ valueFieldId: string;
70
+ };
71
+ declare type State = {
72
+ menuElement: HTMLDivElement | null;
73
+ };
74
+ export declare class PopupList extends React.Component<Props, State> {
75
+ constructor(props: Props);
76
+ componentDidUpdate(prevProps: Props, prevState: State): void;
77
+ componentWillUnmount(): void;
78
+ onScroll: (e: Event) => void;
79
+ setMenuElement(newMenuElement: State['menuElement']): void;
80
+ render(): JSX.Element;
81
+ }
82
+ export {};
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.PopupList = void 0;
9
+
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
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 = _interopRequireDefault(require("react"));
27
+
28
+ var _classnames = _interopRequireDefault(require("classnames"));
29
+
30
+ var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
31
+
32
+ var _invoke = _interopRequireDefault(require("lodash/invoke"));
33
+
34
+ var _omit = _interopRequireDefault(require("lodash/omit"));
35
+
36
+ var _PopupItems = require("./PopupItems");
37
+
38
+ var _utils = require("./utils");
39
+
40
+ var _excluded = ["children", "handleMouseEnter", "handleMouseLeave", "style"];
41
+
42
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
43
+
44
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
45
+
46
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
47
+
48
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
49
+
50
+ var PopupList = /*#__PURE__*/function (_React$Component) {
51
+ (0, _inherits2["default"])(PopupList, _React$Component);
52
+
53
+ var _super = _createSuper(PopupList);
54
+
55
+ function PopupList(props) {
56
+ var _this;
57
+
58
+ (0, _classCallCheck2["default"])(this, PopupList);
59
+ _this = _super.call(this, props);
60
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onScroll", function (e) {
61
+ var _this$props = _this.props,
62
+ needAddFilter = _this$props.needAddFilter,
63
+ filterValue = _this$props.filterValue,
64
+ fetchData = _this$props.fetchData,
65
+ page = _this$props.page,
66
+ size = _this$props.size,
67
+ count = _this$props.count,
68
+ loading = _this$props.loading;
69
+
70
+ if ((0, _utils.isBottom)(e.target) && !loading && page && size && count && page * size < count) {
71
+ var filter = needAddFilter ? filterValue : {};
72
+ fetchData(_objectSpread({
73
+ page: page + 1
74
+ }, filter), true);
75
+ }
76
+ });
77
+ _this.state = {
78
+ menuElement: null
79
+ };
80
+ _this.setMenuElement = _this.setMenuElement.bind((0, _assertThisInitialized2["default"])(_this));
81
+ return _this;
82
+ }
83
+
84
+ (0, _createClass2["default"])(PopupList, [{
85
+ key: "componentDidUpdate",
86
+ value: function componentDidUpdate(prevProps, prevState) {
87
+ var options = this.props.options;
88
+ var menuElement = this.state.menuElement;
89
+
90
+ if (!(0, _isEqual["default"])(prevProps.options, options)) {
91
+ (0, _invoke["default"])(this.props, 'scheduleUpdate');
92
+ }
93
+
94
+ if (!prevState.menuElement && menuElement) {
95
+ menuElement.addEventListener('scroll', this.onScroll);
96
+ }
97
+ }
98
+ }, {
99
+ key: "componentWillUnmount",
100
+ value: function componentWillUnmount() {
101
+ var menuElement = this.state.menuElement;
102
+
103
+ if (menuElement) {
104
+ menuElement.removeEventListener('scroll', this.onScroll);
105
+ }
106
+ }
107
+ }, {
108
+ key: "setMenuElement",
109
+ value: function setMenuElement(newMenuElement) {
110
+ this.setState({
111
+ menuElement: newMenuElement
112
+ });
113
+ }
114
+ }, {
115
+ key: "render",
116
+ value: function render() {
117
+ var _this$props2 = this.props,
118
+ children = _this$props2.children,
119
+ handleMouseEnter = _this$props2.handleMouseEnter,
120
+ handleMouseLeave = _this$props2.handleMouseLeave,
121
+ style = _this$props2.style,
122
+ rest = (0, _objectWithoutProperties2["default"])(_this$props2, _excluded);
123
+ return /*#__PURE__*/_react["default"].createElement("div", {
124
+ className: "n2o-pop-up__wrapper"
125
+ }, /*#__PURE__*/_react["default"].createElement("div", {
126
+ style: style,
127
+ className: (0, _classnames["default"])('n2o-dropdown-control n2o-pop-up'),
128
+ ref: this.setMenuElement,
129
+ onMouseEnter: handleMouseEnter,
130
+ onMouseLeave: handleMouseLeave
131
+ }, children, /*#__PURE__*/_react["default"].createElement(_PopupItems.PopupItems, (0, _omit["default"])(rest, ['needAddFilter', 'filterValue', 'expandPopUp', 'fetchData', 'isExpanded']))));
132
+ }
133
+ }]);
134
+ return PopupList;
135
+ }(_react["default"].Component);
136
+
137
+ exports.PopupList = PopupList;
138
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbnB1dHMvSW5wdXRTZWxlY3QvUG9wdXBMaXN0LnRzeCJdLCJuYW1lcyI6WyJQb3B1cExpc3QiLCJwcm9wcyIsImUiLCJuZWVkQWRkRmlsdGVyIiwiZmlsdGVyVmFsdWUiLCJmZXRjaERhdGEiLCJwYWdlIiwic2l6ZSIsImNvdW50IiwibG9hZGluZyIsInRhcmdldCIsImZpbHRlciIsInN0YXRlIiwibWVudUVsZW1lbnQiLCJzZXRNZW51RWxlbWVudCIsImJpbmQiLCJwcmV2UHJvcHMiLCJwcmV2U3RhdGUiLCJvcHRpb25zIiwiYWRkRXZlbnRMaXN0ZW5lciIsIm9uU2Nyb2xsIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm5ld01lbnVFbGVtZW50Iiwic2V0U3RhdGUiLCJjaGlsZHJlbiIsImhhbmRsZU1vdXNlRW50ZXIiLCJoYW5kbGVNb3VzZUxlYXZlIiwic3R5bGUiLCJyZXN0IiwiUmVhY3QiLCJDb21wb25lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFJQTs7QUFDQTs7Ozs7Ozs7Ozs7O0lBK0VhQSxTOzs7OztBQUNULHFCQUFZQyxLQUFaLEVBQTBCO0FBQUE7O0FBQUE7QUFDdEIsOEJBQU1BLEtBQU47QUFEc0IsaUdBZ0NmLFVBQUNDLENBQUQsRUFBYztBQUNyQix3QkFBOEUsTUFBS0QsS0FBbkY7QUFBQSxVQUFRRSxhQUFSLGVBQVFBLGFBQVI7QUFBQSxVQUF1QkMsV0FBdkIsZUFBdUJBLFdBQXZCO0FBQUEsVUFBb0NDLFNBQXBDLGVBQW9DQSxTQUFwQztBQUFBLFVBQStDQyxJQUEvQyxlQUErQ0EsSUFBL0M7QUFBQSxVQUFxREMsSUFBckQsZUFBcURBLElBQXJEO0FBQUEsVUFBMkRDLEtBQTNELGVBQTJEQSxLQUEzRDtBQUFBLFVBQWtFQyxPQUFsRSxlQUFrRUEsT0FBbEU7O0FBRUEsVUFBSSxxQkFBU1AsQ0FBQyxDQUFDUSxNQUFYLEtBQWlDLENBQUNELE9BQWxDLElBQThDSCxJQUFJLElBQUlDLElBQVIsSUFBZ0JDLEtBQTlELElBQXlFRixJQUFJLEdBQUdDLElBQVAsR0FBY0MsS0FBM0YsRUFBbUc7QUFDL0YsWUFBTUcsTUFBTSxHQUFHUixhQUFhLEdBQUdDLFdBQUgsR0FBaUIsRUFBN0M7QUFFQUMsUUFBQUEsU0FBUztBQUFHQyxVQUFBQSxJQUFJLEVBQUVBLElBQUksR0FBRztBQUFoQixXQUFzQkssTUFBdEIsR0FBZ0MsSUFBaEMsQ0FBVDtBQUNIO0FBQ0osS0F4Q3lCO0FBRXRCLFVBQUtDLEtBQUwsR0FBYTtBQUNUQyxNQUFBQSxXQUFXLEVBQUU7QUFESixLQUFiO0FBR0EsVUFBS0MsY0FBTCxHQUFzQixNQUFLQSxjQUFMLENBQW9CQyxJQUFwQixnREFBdEI7QUFMc0I7QUFNekI7Ozs7V0FFRCw0QkFBbUJDLFNBQW5CLEVBQXFDQyxTQUFyQyxFQUF1RDtBQUNuRCxVQUFRQyxPQUFSLEdBQW9CLEtBQUtqQixLQUF6QixDQUFRaUIsT0FBUjtBQUNBLFVBQVFMLFdBQVIsR0FBd0IsS0FBS0QsS0FBN0IsQ0FBUUMsV0FBUjs7QUFFQSxVQUFJLENBQUMseUJBQVFHLFNBQVMsQ0FBQ0UsT0FBbEIsRUFBMkJBLE9BQTNCLENBQUwsRUFBMEM7QUFDdEMsZ0NBQU8sS0FBS2pCLEtBQVosRUFBbUIsZ0JBQW5CO0FBQ0g7O0FBRUQsVUFBSSxDQUFDZ0IsU0FBUyxDQUFDSixXQUFYLElBQTBCQSxXQUE5QixFQUEyQztBQUN2Q0EsUUFBQUEsV0FBVyxDQUFDTSxnQkFBWixDQUE2QixRQUE3QixFQUF1QyxLQUFLQyxRQUE1QztBQUNIO0FBQ0o7OztXQUVELGdDQUF1QjtBQUNuQixVQUFRUCxXQUFSLEdBQXdCLEtBQUtELEtBQTdCLENBQVFDLFdBQVI7O0FBRUEsVUFBSUEsV0FBSixFQUFpQjtBQUNiQSxRQUFBQSxXQUFXLENBQUNRLG1CQUFaLENBQ0ksUUFESixFQUVJLEtBQUtELFFBRlQ7QUFJSDtBQUNKOzs7V0FZRCx3QkFBZUUsY0FBZixFQUFxRDtBQUNqRCxXQUFLQyxRQUFMLENBQWM7QUFDVlYsUUFBQUEsV0FBVyxFQUFFUztBQURILE9BQWQ7QUFHSDs7O1dBRUQsa0JBQVM7QUFDTCx5QkFNSSxLQUFLckIsS0FOVDtBQUFBLFVBQ0l1QixRQURKLGdCQUNJQSxRQURKO0FBQUEsVUFFSUMsZ0JBRkosZ0JBRUlBLGdCQUZKO0FBQUEsVUFHSUMsZ0JBSEosZ0JBR0lBLGdCQUhKO0FBQUEsVUFJSUMsS0FKSixnQkFJSUEsS0FKSjtBQUFBLFVBS09DLElBTFA7QUFRQSwwQkFDSTtBQUFLLFFBQUEsU0FBUyxFQUFDO0FBQWYsc0JBQ0k7QUFDSSxRQUFBLEtBQUssRUFBRUQsS0FEWDtBQUVJLFFBQUEsU0FBUyxFQUFFLDRCQUFXLGlDQUFYLENBRmY7QUFHSSxRQUFBLEdBQUcsRUFBRSxLQUFLYixjQUhkO0FBSUksUUFBQSxZQUFZLEVBQUVXLGdCQUpsQjtBQUtJLFFBQUEsWUFBWSxFQUFFQztBQUxsQixTQU9LRixRQVBMLGVBUUksZ0NBQUMsc0JBQUQsRUFBZ0Isc0JBQUtJLElBQUwsRUFBVyxDQUFDLGVBQUQsRUFBa0IsYUFBbEIsRUFBaUMsYUFBakMsRUFBZ0QsV0FBaEQsRUFBNkQsWUFBN0QsQ0FBWCxDQUFoQixDQVJKLENBREosQ0FESjtBQWNIOzs7RUF4RTBCQyxrQkFBTUMsUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnXG5pbXBvcnQgaXNFcXVhbCBmcm9tICdsb2Rhc2gvaXNFcXVhbCdcbmltcG9ydCBpbnZva2UgZnJvbSAnbG9kYXNoL2ludm9rZSdcbmltcG9ydCBvbWl0IGZyb20gJ2xvZGFzaC9vbWl0J1xuXG5pbXBvcnQgeyBQb3NpdGlvbiwgU2hhcGUgfSBmcm9tICcuLi8uLi9kaXNwbGF5L0JhZGdlL2VudW1zJ1xuXG5pbXBvcnQgeyBQb3B1cEl0ZW1zIH0gZnJvbSAnLi9Qb3B1cEl0ZW1zJ1xuaW1wb3J0IHsgaXNCb3R0b20gfSBmcm9tICcuL3V0aWxzJ1xuaW1wb3J0IHsgUmVmLCBUT3B0aW9uIH0gZnJvbSAnLi90eXBlcydcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIg0L/QvtC/0LDQv9CwINC00LvRjyB7QGxpbmsgSW5wdXRTZWxlY3R9XG4gKiBAcmVhY3RQcm9wcyB7YXJyYXl9IG9wdGlvbnMgLSDQvNCw0YHRgdC40LIg0LTQsNC90L3Ri9GFXG4gKiBAcmVhY3RQcm9wcyB7c3RyaW5nfSB2YWx1ZUZpZWxkSWQgLSDQt9C90LDRh9C10L3QuNC1INC60LvRjtGH0LAgdmFsdWUg0LIg0LTQsNC90L3Ri9GFXG4gKiBAcmVhY3RQcm9wcyB7c3RyaW5nfSBsYWJlbEZpZWxkSWQgLSDQt9C90LDRh9C10L3QuNC1INC60LvRjtGH0LAgbGFiZWwg0LIg0LTQsNC90L3Ri1xuICogQHJlYWN0UHJvcHMge3N0cmluZ30gaWNvbkZpZWxkSWQgLSDQv9C+0LvQtSDQtNC70Y8g0LjQutC+0L3QutC4XG4gKiBAcmVhY3RQcm9wcyB7c3RyaW5nfSBpbWFnZUZpZWxkSWQgLSDQv9C+0LvQtSDQtNC70Y8g0LrQsNGA0YLQuNC90LrQuFxuICogQHJlYWN0UHJvcHMge3N0cmluZ30gZ3JvdXBGaWVsZElkIC0g0L/QvtC70LUg0LTQu9GPINCz0YDRg9C/0L/QuNGA0L7QstC60LhcbiAqIEByZWFjdFByb3BzIHtvYmplY3R9IGJhZGdlIC0g0LTQsNC90L3Ri9C1INC00LvRjyDQsdCw0LTQttCwXG4gKiBAcmVhY3RQcm9wcyB7c3RyaW5nfSBlbmFibGVkRmllbGRJZCAtINC/0L7Qu9C1INC00LvRjyDQsNC60YLQuNCy0L3QvtGB0YLQuFxuICogQHJlYWN0UHJvcHMge2FycmF5fSBkaXNhYmxlZFZhbHVlcyAtINC90LXQsNC60YLQuNCy0L3Ri9C1INC00LDQvdC90YvQtVxuICogQHJlYWN0UHJvcHMge3N0cmluZ30gZm9ybWF0IC0g0YTQvtGA0LzQsNGCXG4gKiBAcmVhY3RQcm9wcyB7Ym9vbGVhbn0gaGFzQ2hlY2tib3hlcyAtINGE0LvQsNCzINC90LDQu9C40YfQuNGPINGH0LXQutCx0L7QutGB0L7QslxuICogQHJlYWN0UHJvcHMge2FycmF5fSBzZWxlY3RlZCAtINCy0YvQsdGA0LDQvdC90YvQtSDRjdC70LXQvNC10L3RgtGLXG4gKiBAcmVhY3RQcm9wcyB7ZnVuY3Rpb259IG9uU2VsZWN0IC0gY2FsbGJhY2sg0L/RgNC4INCy0YvQsdC+0YDQtSDRjdC70LXQvNC10L3RgtCwXG4gKiBAcmVhY3RQcm9wcyB7ZnVuY3Rpb259IG9uUmVtb3ZlSXRlbSAtIGNhbGxiYWNrINC/0YDQuCDRg9C00LDQu9C10L3QuNC1INGN0LvQtdC80LXQvdGC0LBcbiAqIEByZWFjdFByb3BzIHtib29sZWFufSBuZWVkQWRkRmlsdGVyXG4gKiBAcmVhY3RQcm9wcyB7bm9kZX0gY2hpbGRyZW4gLSDRjdC70LXQvNC10L3RgiDQv9C+0YLQvtC80L7QuiDQutC+0LzQv9C+0L3QtdC90YLQsCBQb3B1cExpc3RcbiAqIEByZWFjdFByb3BzIHtmdW5jdGlvbn0gaGFuZGxlTW91c2VFbnRlciAtINC+0LHRgNCw0LHQvtGC0YfQuNC6INC00LvRjyDRgdC+0LHRi9GC0LjRjyBvbk1vdXNlRW50ZXJcbiAqIEByZWFjdFByb3BzIHtmdW5jdGlvbn0gaGFuZGxlTW91c2VMZWF2ZSAtINC+0LHRgNCw0LHQvtGC0YfQuNC6INC00LvRjyDRgdC+0LHRi9GC0LjRjyBvbk1vdXNlTGVhdmVcbiAqL1xuXG5leHBvcnQgdHlwZSBCYWRnZVR5cGUgPSB7XG4gICAgY29sb3JGaWVsZElkOiBzdHJpbmcsXG4gICAgZmllbGRJZDogc3RyaW5nLFxuICAgIGltYWdlRmllbGRJZDogc3RyaW5nLFxuICAgIGltYWdlUG9zaXRpb246IFBvc2l0aW9uLFxuICAgIGltYWdlU2hhcGU6IFNoYXBlLFxuICAgIHBvc2l0aW9uOiBQb3NpdGlvbixcbiAgICBzaGFwZTogU2hhcGVcbn1cblxudHlwZSBQcm9wcyA9IHtcbiAgICBhY3RpdmVWYWx1ZUlkPzogc3RyaW5nIHwgbnVsbCxcbiAgICBhdXRvY29tcGxldGU/OiBib29sZWFuLFxuICAgIGJhZGdlPzogQmFkZ2VUeXBlLFxuICAgIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlLFxuICAgIGNvdW50PzogbnVtYmVyLFxuICAgIGRlc2NyaXB0aW9uRmllbGRJZD86IHN0cmluZyxcbiAgICBkaXNhYmxlZFZhbHVlczogW10sXG4gICAgZW5hYmxlZEZpZWxkSWQ/OiBzdHJpbmcsXG4gICAgZmV0Y2hEYXRhKGFyZzogb2JqZWN0LCBjb25jYXQ/OiBib29sZWFuKTogdm9pZCxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGZpbHRlclZhbHVlPzogYW55LFxuICAgIGZvcm1hdD86IHN0cmluZyxcbiAgICBncm91cEZpZWxkSWQ6IHN0cmluZyxcbiAgICBoYW5kbGVNb3VzZUVudGVyPygpOiB2b2lkLFxuICAgIGhhbmRsZU1vdXNlTGVhdmU/KCk6IHZvaWQsXG4gICAgaGFzQ2hlY2tib3hlczogYm9vbGVhbixcbiAgICBpY29uRmllbGRJZDogc3RyaW5nLFxuICAgIGltYWdlRmllbGRJZDogc3RyaW5nLFxuICAgIGlzRXhwYW5kZWQ/OiBib29sZWFuLFxuICAgIGxhYmVsRmllbGRJZDogc3RyaW5nLFxuICAgIGxvYWRpbmc/OiBib29sZWFuLFxuICAgIG5lZWRBZGRGaWx0ZXI/OiBib29sZWFuLFxuICAgIG9uUmVtb3ZlSXRlbT8oaXRlbTogVE9wdGlvbik6IHZvaWQsXG4gICAgb25TZWxlY3QoaXRlbTogVE9wdGlvbik6IHZvaWQsXG4gICAgb3B0aW9ucz86IFRPcHRpb25bXSxcbiAgICBwYWdlPzogbnVtYmVyLFxuICAgIHBvcFVwSXRlbVJlZj86IFJlZixcbiAgICByZW5kZXJJZkVtcHR5PzogYm9vbGVhbixcbiAgICBzY2hlZHVsZVVwZGF0ZT8oKTogdm9pZCxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHNlbGVjdGVkPzogYW55W10sXG4gICAgc2V0QWN0aXZlVmFsdWVJZD8oaWQ6IHN0cmluZyB8IG51bGwpOiB2b2lkLFxuICAgIHNldE1lbnVFbGVtZW50PygpOiB2b2lkLFxuICAgIHNpemU/OiBudW1iZXIsXG4gICAgc3RhdHVzRmllbGRJZD86IHN0cmluZyxcbiAgICBzdHlsZT86IG9iamVjdCxcbiAgICB2YWx1ZUZpZWxkSWQ6IHN0cmluZ1xufVxuXG50eXBlIFN0YXRlID0ge1xuICAgIG1lbnVFbGVtZW50OiBIVE1MRGl2RWxlbWVudCB8IG51bGxcbn1cblxuZXhwb3J0IGNsYXNzIFBvcHVwTGlzdCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxQcm9wcywgU3RhdGU+IHtcbiAgICBjb25zdHJ1Y3Rvcihwcm9wczogUHJvcHMpIHtcbiAgICAgICAgc3VwZXIocHJvcHMpXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICBtZW51RWxlbWVudDogbnVsbCxcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldE1lbnVFbGVtZW50ID0gdGhpcy5zZXRNZW51RWxlbWVudC5iaW5kKHRoaXMpXG4gICAgfVxuXG4gICAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wczogUHJvcHMsIHByZXZTdGF0ZTogU3RhdGUpIHtcbiAgICAgICAgY29uc3QgeyBvcHRpb25zIH0gPSB0aGlzLnByb3BzXG4gICAgICAgIGNvbnN0IHsgbWVudUVsZW1lbnQgfSA9IHRoaXMuc3RhdGVcblxuICAgICAgICBpZiAoIWlzRXF1YWwocHJldlByb3BzLm9wdGlvbnMsIG9wdGlvbnMpKSB7XG4gICAgICAgICAgICBpbnZva2UodGhpcy5wcm9wcywgJ3NjaGVkdWxlVXBkYXRlJylcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghcHJldlN0YXRlLm1lbnVFbGVtZW50ICYmIG1lbnVFbGVtZW50KSB7XG4gICAgICAgICAgICBtZW51RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uU2Nyb2xsKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICAgIGNvbnN0IHsgbWVudUVsZW1lbnQgfSA9IHRoaXMuc3RhdGVcblxuICAgICAgICBpZiAobWVudUVsZW1lbnQpIHtcbiAgICAgICAgICAgIG1lbnVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICAgICAgJ3Njcm9sbCcsXG4gICAgICAgICAgICAgICAgdGhpcy5vblNjcm9sbCxcbiAgICAgICAgICAgIClcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU2Nyb2xsID0gKGU6IEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgbmVlZEFkZEZpbHRlciwgZmlsdGVyVmFsdWUsIGZldGNoRGF0YSwgcGFnZSwgc2l6ZSwgY291bnQsIGxvYWRpbmcgfSA9IHRoaXMucHJvcHNcblxuICAgICAgICBpZiAoaXNCb3R0b20oZS50YXJnZXQgYXMgRWxlbWVudCkgJiYgIWxvYWRpbmcgJiYgKHBhZ2UgJiYgc2l6ZSAmJiBjb3VudCkgJiYgKHBhZ2UgKiBzaXplIDwgY291bnQpKSB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSBuZWVkQWRkRmlsdGVyID8gZmlsdGVyVmFsdWUgOiB7fVxuXG4gICAgICAgICAgICBmZXRjaERhdGEoeyBwYWdlOiBwYWdlICsgMSwgLi4uZmlsdGVyIH0sIHRydWUpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRNZW51RWxlbWVudChuZXdNZW51RWxlbWVudDogU3RhdGVbJ21lbnVFbGVtZW50J10pIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBtZW51RWxlbWVudDogbmV3TWVudUVsZW1lbnQsXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgICAgIGhhbmRsZU1vdXNlRW50ZXIsXG4gICAgICAgICAgICBoYW5kbGVNb3VzZUxlYXZlLFxuICAgICAgICAgICAgc3R5bGUsXG4gICAgICAgICAgICAuLi5yZXN0XG4gICAgICAgIH0gPSB0aGlzLnByb3BzXG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibjJvLXBvcC11cF9fd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoJ24yby1kcm9wZG93bi1jb250cm9sIG4yby1wb3AtdXAnKX1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXt0aGlzLnNldE1lbnVFbGVtZW50fVxuICAgICAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI9e2hhbmRsZU1vdXNlRW50ZXJ9XG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VMZWF2ZT17aGFuZGxlTW91c2VMZWF2ZX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgICAgPFBvcHVwSXRlbXMgey4uLm9taXQocmVzdCwgWyduZWVkQWRkRmlsdGVyJywgJ2ZpbHRlclZhbHVlJywgJ2V4cGFuZFBvcFVwJywgJ2ZldGNoRGF0YScsICdpc0V4cGFuZGVkJ10pfSAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIClcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,17 @@
1
+ /// <reference types="react" />
2
+ import { Props as InputContentProps } from './InputContent';
3
+ /**
4
+ * Компонент выбранных элементов для {@Link InputSelectGroup}
5
+ * @reactProps {string} labelFieldId - значение ключа label в данных
6
+ * @reactProps {array} selected - список выбранных элементов
7
+ * @reactProps {function} onRemoveItem - callback при нажатии на удаление элемента из выбранных при мульти выборе
8
+ * @reactProps {function} onDeleteAll - callback удаление всех выбранных элементов при мульти выборе
9
+ * @reactProps {boolean} collapseSelected - флаг сжатия выбранных элементов
10
+ * @reactProps {number} lengthToGroup - от скольки элементов сжимать выбранные элементы
11
+ * @reactProps {number} maxTagTextLength - максимальная длина текста в тэге, до усечения
12
+ */
13
+ declare type InputElementsProps = Pick<InputContentProps, 'selected' | 'labelFieldId' | 'onRemoveItem' | 'collapseSelected' | 'lengthToGroup' | 'maxTagTextLength' | 'disabled'> & {
14
+ onDeleteAll: InputContentProps['clearSelected'];
15
+ };
16
+ export declare function InputElements({ onRemoveItem, selected, labelFieldId, disabled, collapseSelected, lengthToGroup, onDeleteAll, maxTagTextLength, }: InputElementsProps): JSX.Element;
17
+ export {};
@@ -0,0 +1,125 @@
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.InputElements = InputElements;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
+
16
+ var _react = _interopRequireWildcard(require("react"));
17
+
18
+ var _classnames = _interopRequireDefault(require("classnames"));
19
+
20
+ var _map = _interopRequireDefault(require("lodash/map"));
21
+
22
+ var _split = _interopRequireDefault(require("lodash/split"));
23
+
24
+ var _reactI18next = require("react-i18next");
25
+
26
+ var _excluded = ["onRemoveItem", "item", "index"];
27
+
28
+ 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); }
29
+
30
+ 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; }
31
+
32
+ var SelectedItem = function SelectedItem(_ref) {
33
+ var id = _ref.id,
34
+ title = _ref.title,
35
+ callback = _ref.callback,
36
+ maxTagTextLength = _ref.maxTagTextLength,
37
+ disabled = _ref.disabled;
38
+ var callbackWrapper = (0, _react.useCallback)(function (event) {
39
+ event.stopPropagation();
40
+ callback(event);
41
+ }, [callback]);
42
+ var truncatedTitle = "".concat((0, _split["default"])(title, '', maxTagTextLength).join(''), "...");
43
+ var tagTitle = maxTagTextLength && title.length > maxTagTextLength ? truncatedTitle : title;
44
+ return /*#__PURE__*/_react["default"].createElement("span", {
45
+ key: id,
46
+ className: (0, _classnames["default"])('selected-item n2o-multiselect', {
47
+ 'max-text-length': maxTagTextLength
48
+ }),
49
+ title: title
50
+ }, /*#__PURE__*/_react["default"].createElement("span", {
51
+ className: "n2o-eclipse-content"
52
+ }, tagTitle), /*#__PURE__*/_react["default"].createElement("button", {
53
+ type: "button",
54
+ className: "close",
55
+ onClick: callbackWrapper,
56
+ disabled: disabled
57
+ }, /*#__PURE__*/_react["default"].createElement("i", {
58
+ className: "fa fa-times fa-1"
59
+ })));
60
+ };
61
+
62
+ var ItemWrapper = function ItemWrapper(_ref2) {
63
+ var onRemoveItem = _ref2.onRemoveItem,
64
+ item = _ref2.item,
65
+ index = _ref2.index,
66
+ props = (0, _objectWithoutProperties2["default"])(_ref2, _excluded);
67
+ var onRemove = (0, _react.useMemo)(function () {
68
+ return function () {
69
+ return onRemoveItem.call(null, item, index);
70
+ };
71
+ }, [item, index, onRemoveItem]);
72
+ return /*#__PURE__*/_react["default"].createElement(SelectedItem, (0, _extends2["default"])({}, props, {
73
+ callback: onRemove
74
+ }));
75
+ };
76
+
77
+ function InputElements(_ref3) {
78
+ var onRemoveItem = _ref3.onRemoveItem,
79
+ selected = _ref3.selected,
80
+ labelFieldId = _ref3.labelFieldId,
81
+ disabled = _ref3.disabled,
82
+ collapseSelected = _ref3.collapseSelected,
83
+ lengthToGroup = _ref3.lengthToGroup,
84
+ onDeleteAll = _ref3.onDeleteAll,
85
+ maxTagTextLength = _ref3.maxTagTextLength;
86
+
87
+ var _useTranslation = (0, _reactI18next.useTranslation)(),
88
+ t = _useTranslation.t;
89
+
90
+ if (collapseSelected && selected.length > lengthToGroup) {
91
+ var id = selected.length;
92
+ var title = "".concat(t('selected'), " ").concat(selected.length);
93
+ return /*#__PURE__*/_react["default"].createElement(SelectedItem, {
94
+ id: id,
95
+ title: title,
96
+ callback: onDeleteAll,
97
+ maxTagTextLength: maxTagTextLength,
98
+ disabled: disabled
99
+ });
100
+ }
101
+
102
+ var getTitle = function getTitle(item, labelFieldId) {
103
+ if (typeof item === 'string') {
104
+ return item;
105
+ }
106
+
107
+ return item[labelFieldId] || '';
108
+ };
109
+
110
+ var list = (0, _map["default"])(selected, function (item, index) {
111
+ var title = getTitle(item, labelFieldId);
112
+ var id = item.id || index;
113
+ return /*#__PURE__*/_react["default"].createElement(ItemWrapper, {
114
+ id: id,
115
+ title: title,
116
+ maxTagTextLength: maxTagTextLength,
117
+ disabled: disabled,
118
+ item: item,
119
+ index: index,
120
+ onRemoveItem: onRemoveItem
121
+ });
122
+ });
123
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, list);
124
+ }
125
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbnB1dHMvSW5wdXRTZWxlY3QvU2VsZWN0ZWRJdGVtcy50c3giXSwibmFtZXMiOlsiU2VsZWN0ZWRJdGVtIiwiaWQiLCJ0aXRsZSIsImNhbGxiYWNrIiwibWF4VGFnVGV4dExlbmd0aCIsImRpc2FibGVkIiwiY2FsbGJhY2tXcmFwcGVyIiwiZXZlbnQiLCJzdG9wUHJvcGFnYXRpb24iLCJ0cnVuY2F0ZWRUaXRsZSIsImpvaW4iLCJ0YWdUaXRsZSIsImxlbmd0aCIsIkl0ZW1XcmFwcGVyIiwib25SZW1vdmVJdGVtIiwiaXRlbSIsImluZGV4IiwicHJvcHMiLCJvblJlbW92ZSIsImNhbGwiLCJJbnB1dEVsZW1lbnRzIiwic2VsZWN0ZWQiLCJsYWJlbEZpZWxkSWQiLCJjb2xsYXBzZVNlbGVjdGVkIiwibGVuZ3RoVG9Hcm91cCIsIm9uRGVsZXRlQWxsIiwidCIsImdldFRpdGxlIiwibGlzdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7O0FBS0EsSUFBTUEsWUFBWSxHQUFHLFNBQWZBLFlBQWUsT0FBNEU7QUFBQSxNQUF6RUMsRUFBeUUsUUFBekVBLEVBQXlFO0FBQUEsTUFBckVDLEtBQXFFLFFBQXJFQSxLQUFxRTtBQUFBLE1BQTlEQyxRQUE4RCxRQUE5REEsUUFBOEQ7QUFBQSxNQUFwREMsZ0JBQW9ELFFBQXBEQSxnQkFBb0Q7QUFBQSxNQUFsQ0MsUUFBa0MsUUFBbENBLFFBQWtDO0FBQzdGLE1BQU1DLGVBQWUsR0FBRyx3QkFBWSxVQUFDQyxLQUFELEVBQVc7QUFDM0NBLElBQUFBLEtBQUssQ0FBQ0MsZUFBTjtBQUNBTCxJQUFBQSxRQUFRLENBQUNJLEtBQUQsQ0FBUjtBQUNILEdBSHVCLEVBR3JCLENBQUNKLFFBQUQsQ0FIcUIsQ0FBeEI7QUFJQSxNQUFNTSxjQUFjLGFBQU0sdUJBQU1QLEtBQU4sRUFBYSxFQUFiLEVBQWlCRSxnQkFBakIsRUFBbUNNLElBQW5D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LFFBQVEsQ0FBQ1osSUFBRCxFQUFPTyxZQUFQLENBQXRCO0FBQ0EsUUFBTXJCLEVBQUUsR0FBR2MsSUFBSSxDQUFDZCxFQUFMLElBQVdlLEtBQXRCO0FBRUEsd0JBQ0ksZ0NBQUMsV0FBRDtBQUNJLE1BQUEsRUFBRSxFQUFFZixFQURSO0FBRUksTUFBQSxLQUFLLEVBQUVDLEtBRlg7QUFHSSxNQUFBLGdCQUFnQixFQUFFRSxnQkFIdEI7QUFJSSxNQUFBLFFBQVEsRUFBRUMsUUFKZDtBQUtJLE1BQUEsSUFBSSxFQUFFVSxJQUxWO0FBTUksTUFBQSxLQUFLLEVBQUVDLEtBTlg7QUFPSSxNQUFBLFlBQVksRUFBRUY7QUFQbEIsTUFESjtBQVdILEdBZlksQ0FBYjtBQWlCQSxzQkFBTyxrRUFBR2MsSUFBSCxDQUFQO0FBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnXG5pbXBvcnQgbWFwIGZyb20gJ2xvZGFzaC9tYXAnXG5pbXBvcnQgc3BsaXQgZnJvbSAnbG9kYXNoL3NwbGl0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuXG5pbXBvcnQgeyBQcm9wcyBhcyBJbnB1dENvbnRlbnRQcm9wcyB9IGZyb20gJy4vSW5wdXRDb250ZW50J1xuaW1wb3J0IHsgVE9wdGlvbiB9IGZyb20gJy4vdHlwZXMnXG5cbmNvbnN0IFNlbGVjdGVkSXRlbSA9ICh7IGlkLCB0aXRsZSwgY2FsbGJhY2ssIG1heFRhZ1RleHRMZW5ndGgsIGRpc2FibGVkIH06IFNlbGVjdGVkSXRlbVByb3BzKSA9PiB7XG4gICAgY29uc3QgY2FsbGJhY2tXcmFwcGVyID0gdXNlQ2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgIGNhbGxiYWNrKGV2ZW50KVxuICAgIH0sIFtjYWxsYmFja10pXG4gICAgY29uc3QgdHJ1bmNhdGVkVGl0bGUgPSBgJHtzcGxpdCh0aXRsZSwgJycsIG1heFRhZ1RleHRMZW5ndGgpLmpvaW4oJycpfS4uLmBcbiAgICBjb25zdCB0YWdUaXRsZSA9IG1heFRhZ1RleHRMZW5ndGggJiYgdGl0bGUubGVuZ3RoID4gbWF4VGFnVGV4dExlbmd0aFxuICAgICAgICA/IHRydW5jYXRlZFRpdGxlXG4gICAgICAgIDogdGl0bGVcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICBrZXk9e2lkfVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKCdzZWxlY3RlZC1pdGVtIG4yby1tdWx0aXNlbGVjdCcsIHtcbiAgICAgICAgICAgICAgICAnbWF4LXRleHQtbGVuZ3RoJzogbWF4VGFnVGV4dExlbmd0aCxcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgdGl0bGU9e3RpdGxlfVxuICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJuMm8tZWNsaXBzZS1jb250ZW50XCI+e3RhZ1RpdGxlfTwvc3Bhbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjbG9zZVwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17Y2FsbGJhY2tXcmFwcGVyfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYSBmYS10aW1lcyBmYS0xXCIgLz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3NwYW4+XG4gICAgKVxufVxuXG50eXBlIFNlbGVjdGVkSXRlbVByb3BzID0ge1xuICAgIGNhbGxiYWNrKGFyZzogRXZlbnQpOiB2b2lkLFxuICAgIGRpc2FibGVkOiBib29sZWFuLFxuICAgIGlkOiBzdHJpbmcgfCBudW1iZXIsXG4gICAgbWF4VGFnVGV4dExlbmd0aDogbnVtYmVyLFxuICAgIHRpdGxlOiBzdHJpbmdcbn1cblxuY29uc3QgSXRlbVdyYXBwZXIgPSAoeyBvblJlbW92ZUl0ZW0sIGl0ZW0sIGluZGV4LCAuLi5wcm9wcyB9OiBJdGVtV3JhcHBlclByb3BzKSA9PiB7XG4gICAgY29uc3Qgb25SZW1vdmUgPSB1c2VNZW1vKFxuICAgICAgICAoKSA9PiAoKSA9PiBvblJlbW92ZUl0ZW0uY2FsbChudWxsLCBpdGVtLCBpbmRleCksXG4gICAgICAgIFtpdGVtLCBpbmRleCwgb25SZW1vdmVJdGVtXSxcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8U2VsZWN0ZWRJdGVtXG4gICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICBjYWxsYmFjaz17b25SZW1vdmV9XG4gICAgICAgIC8+XG4gICAgKVxufVxuXG50eXBlIEl0ZW1XcmFwcGVyUHJvcHMgPSBQaWNrPElucHV0RWxlbWVudHNQcm9wcywgJ29uUmVtb3ZlSXRlbScgfCAnbWF4VGFnVGV4dExlbmd0aCcgfCAnZGlzYWJsZWQnPiAmIHtcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyLFxuICAgIGluZGV4OiBudW1iZXIsXG4gICAgaXRlbTogVE9wdGlvbixcbiAgICB0aXRsZTogc3RyaW5nXG59XG5cbi8qKlxuICog0JrQvtC80L/QvtC90LXQvdGCINCy0YvQsdGA0LDQvdC90YvRhSDRjdC70LXQvNC10L3RgtC+0LIg0LTQu9GPIHtATGluayBJbnB1dFNlbGVjdEdyb3VwfVxuICogQHJlYWN0UHJvcHMge3N0cmluZ30gbGFiZWxGaWVsZElkIC0g0LfQvdCw0YfQtdC90LjQtSDQutC70Y7Rh9CwIGxhYmVsINCyINC00LDQvdC90YvRhVxuICogQHJlYWN0UHJvcHMge2FycmF5fSBzZWxlY3RlZCAtINGB0L/QuNGB0L7QuiDQstGL0LHRgNCw0L3QvdGL0YUg0Y3Qu9C10LzQtdC90YLQvtCyXG4gKiBAcmVhY3RQcm9wcyB7ZnVuY3Rpb259IG9uUmVtb3ZlSXRlbSAtIGNhbGxiYWNrINC/0YDQuCDQvdCw0LbQsNGC0LjQuCDQvdCwINGD0LTQsNC70LXQvdC40LUg0Y3Qu9C10LzQtdC90YLQsCDQuNC3INCy0YvQsdGA0LDQvdC90YvRhSDQv9GA0Lgg0LzRg9C70YzRgtC4INCy0YvQsdC+0YDQtVxuICogQHJlYWN0UHJvcHMge2Z1bmN0aW9ufSBvbkRlbGV0ZUFsbCAtIGNhbGxiYWNrINGD0LTQsNC70LXQvdC40LUg0LLRgdC10YUg0LLRi9Cx0YDQsNC90L3Ri9GFINGN0LvQtdC80LXQvdGC0L7QsiDQv9GA0Lgg0LzRg9C70YzRgtC4INCy0YvQsdC+0YDQtVxuICogQHJlYWN0UHJvcHMge2Jvb2xlYW59IGNvbGxhcHNlU2VsZWN0ZWQgLSDRhNC70LDQsyDRgdC20LDRgtC40Y8g0LLRi9Cx0YDQsNC90L3Ri9GFINGN0LvQtdC80LXQvdGC0L7QslxuICogQHJlYWN0UHJvcHMge251bWJlcn0gbGVuZ3RoVG9Hcm91cCAtINC+0YIg0YHQutC+0LvRjNC60Lgg0Y3Qu9C10LzQtdC90YLQvtCyINGB0LbQuNC80LDRgtGMINCy0YvQsdGA0LDQvdC90YvQtSDRjdC70LXQvNC10L3RgtGLXG4gKiBAcmVhY3RQcm9wcyB7bnVtYmVyfSBtYXhUYWdUZXh0TGVuZ3RoIC0g0LzQsNC60YHQuNC80LDQu9GM0L3QsNGPINC00LvQuNC90LAg0YLQtdC60YHRgtCwINCyINGC0Y3Qs9C1LCDQtNC+INGD0YHQtdGH0LXQvdC40Y9cbiAqL1xuXG50eXBlIElucHV0RWxlbWVudHNQcm9wcyA9IFBpY2s8SW5wdXRDb250ZW50UHJvcHMsXG4nc2VsZWN0ZWQnIHwgJ2xhYmVsRmllbGRJZCcgfCAnb25SZW1vdmVJdGVtJyB8ICdjb2xsYXBzZVNlbGVjdGVkJyB8ICdsZW5ndGhUb0dyb3VwJyB8ICdtYXhUYWdUZXh0TGVuZ3RoJyB8ICdkaXNhYmxlZCc+ICZcbntvbkRlbGV0ZUFsbDogSW5wdXRDb250ZW50UHJvcHNbJ2NsZWFyU2VsZWN0ZWQnXX1cblxuZXhwb3J0IGZ1bmN0aW9uIElucHV0RWxlbWVudHMoe1xuICAgIG9uUmVtb3ZlSXRlbSxcbiAgICBzZWxlY3RlZCxcbiAgICBsYWJlbEZpZWxkSWQsXG4gICAgZGlzYWJsZWQsXG4gICAgY29sbGFwc2VTZWxlY3RlZCxcbiAgICBsZW5ndGhUb0dyb3VwLFxuICAgIG9uRGVsZXRlQWxsLFxuICAgIG1heFRhZ1RleHRMZW5ndGgsXG59OiBJbnB1dEVsZW1lbnRzUHJvcHMpIHtcbiAgICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKClcblxuICAgIGlmIChjb2xsYXBzZVNlbGVjdGVkICYmIHNlbGVjdGVkLmxlbmd0aCA+IGxlbmd0aFRvR3JvdXApIHtcbiAgICAgICAgY29uc3QgaWQgPSBzZWxlY3RlZC5sZW5ndGhcbiAgICAgICAgY29uc3QgdGl0bGUgPSBgJHt0KCdzZWxlY3RlZCcpfSAke3NlbGVjdGVkLmxlbmd0aH1gXG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxTZWxlY3RlZEl0ZW1cbiAgICAgICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICAgICAgdGl0bGU9e3RpdGxlfVxuICAgICAgICAgICAgICAgIGNhbGxiYWNrPXtvbkRlbGV0ZUFsbH1cbiAgICAgICAgICAgICAgICBtYXhUYWdUZXh0TGVuZ3RoPXttYXhUYWdUZXh0TGVuZ3RofVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBnZXRUaXRsZSA9IChpdGVtOiBUT3B0aW9uLCBsYWJlbEZpZWxkSWQ6IElucHV0RWxlbWVudHNQcm9wc1snbGFiZWxGaWVsZElkJ10pID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpdGVtW2xhYmVsRmllbGRJZCBhcyBrZXlvZiBUT3B0aW9uXSB8fCAnJ1xuICAgIH1cblxuICAgIGNvbnN0IGxpc3QgPSBtYXAoc2VsZWN0ZWQsIChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICBjb25zdCB0aXRsZSA9IGdldFRpdGxlKGl0ZW0sIGxhYmVsRmllbGRJZClcbiAgICAgICAgY29uc3QgaWQgPSBpdGVtLmlkIHx8IGluZGV4XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxJdGVtV3JhcHBlclxuICAgICAgICAgICAgICAgIGlkPXtpZH1cbiAgICAgICAgICAgICAgICB0aXRsZT17dGl0bGV9XG4gICAgICAgICAgICAgICAgbWF4VGFnVGV4dExlbmd0aD17bWF4VGFnVGV4dExlbmd0aH1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgaXRlbT17aXRlbX1cbiAgICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgb25SZW1vdmVJdGVtPXtvblJlbW92ZUl0ZW19XG4gICAgICAgICAgICAvPlxuICAgICAgICApXG4gICAgfSlcblxuICAgIHJldHVybiA8PntsaXN0fTwvPlxufVxuIl19
@@ -0,0 +1,4 @@
1
+ export declare const DEFAULT_POPUP_HEIGHT = 250;
2
+ export declare const MEASURE = "px";
3
+ export declare const TOLERANCE = 1;
4
+ export declare const UNKNOWN_GROUP_FIELD_ID = "";
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.UNKNOWN_GROUP_FIELD_ID = exports.TOLERANCE = exports.MEASURE = exports.DEFAULT_POPUP_HEIGHT = void 0;
7
+ var DEFAULT_POPUP_HEIGHT = 250;
8
+ exports.DEFAULT_POPUP_HEIGHT = DEFAULT_POPUP_HEIGHT;
9
+ var MEASURE = 'px';
10
+ exports.MEASURE = MEASURE;
11
+ var TOLERANCE = 1;
12
+ exports.TOLERANCE = TOLERANCE;
13
+ var UNKNOWN_GROUP_FIELD_ID = '';
14
+ exports.UNKNOWN_GROUP_FIELD_ID = UNKNOWN_GROUP_FIELD_ID;
15
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbnB1dHMvSW5wdXRTZWxlY3QvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbIkRFRkFVTFRfUE9QVVBfSEVJR0hUIiwiTUVBU1VSRSIsIlRPTEVSQU5DRSIsIlVOS05PV05fR1JPVVBfRklFTERfSUQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFPLElBQU1BLG9CQUFvQixHQUFHLEdBQTdCOztBQUNBLElBQU1DLE9BQU8sR0FBRyxJQUFoQjs7QUFDQSxJQUFNQyxTQUFTLEdBQUcsQ0FBbEI7O0FBQ0EsSUFBTUMsc0JBQXNCLEdBQUcsRUFBL0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgREVGQVVMVF9QT1BVUF9IRUlHSFQgPSAyNTBcbmV4cG9ydCBjb25zdCBNRUFTVVJFID0gJ3B4J1xuZXhwb3J0IGNvbnN0IFRPTEVSQU5DRSA9IDFcbmV4cG9ydCBjb25zdCBVTktOT1dOX0dST1VQX0ZJRUxEX0lEID0gJydcbiJdfQ==
@@ -0,0 +1,16 @@
1
+ import { RefObject } from 'react';
2
+ export declare enum Filter {
3
+ endsWith = "endsWith",
4
+ includes = "includes",
5
+ server = "server",
6
+ startsWith = "startsWith"
7
+ }
8
+ export declare type TOption = {
9
+ className?: string;
10
+ disabled?: boolean;
11
+ formattedTitle?: string;
12
+ id: string | number;
13
+ label: string;
14
+ value: any;
15
+ };
16
+ export declare type Ref = RefObject<any>;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Filter = void 0;
7
+ var Filter;
8
+ exports.Filter = Filter;
9
+
10
+ (function (Filter) {
11
+ Filter["endsWith"] = "endsWith";
12
+ Filter["includes"] = "includes";
13
+ Filter["server"] = "server";
14
+ Filter["startsWith"] = "startsWith";
15
+ })(Filter || (exports.Filter = Filter = {}));
16
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbnB1dHMvSW5wdXRTZWxlY3QvdHlwZXMudHMiXSwibmFtZXMiOlsiRmlsdGVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7SUFFWUEsTTs7O1dBQUFBLE07QUFBQUEsRUFBQUEsTTtBQUFBQSxFQUFBQSxNO0FBQUFBLEVBQUFBLE07QUFBQUEsRUFBQUEsTTtHQUFBQSxNLHNCQUFBQSxNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVmT2JqZWN0IH0gZnJvbSAncmVhY3QnXG5cbmV4cG9ydCBlbnVtIEZpbHRlciB7XG4gICAgZW5kc1dpdGggPSAnZW5kc1dpdGgnLFxuICAgIGluY2x1ZGVzID0gJ2luY2x1ZGVzJyxcbiAgICBzZXJ2ZXIgPSAnc2VydmVyJyxcbiAgICBzdGFydHNXaXRoID0gJ3N0YXJ0c1dpdGgnXG59XG5cbmV4cG9ydCB0eXBlIFRPcHRpb24gPSB7XG4gICAgY2xhc3NOYW1lPzogc3RyaW5nLFxuICAgIGRpc2FibGVkPzogYm9vbGVhbixcbiAgICBmb3JtYXR0ZWRUaXRsZT86IHN0cmluZyxcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyLFxuICAgIGxhYmVsOiBzdHJpbmcsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICB2YWx1ZTogYW55XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgdHlwZSBSZWYgPSBSZWZPYmplY3Q8YW55PlxuIl19
@@ -0,0 +1,9 @@
1
+ import { TOption } from './types';
2
+ export declare const inArray: (array?: any[], item?: TOption | string) => boolean;
3
+ export declare const groupData: (data: TOption[], groupFieldId: string) => any;
4
+ export declare const isDisabled: (item: TOption, selected: TOption[], disabled: Array<string | number>) => boolean;
5
+ export declare const getFirstNotDisabledId: (data: TOption[], selected: TOption[], disabled: Array<string | number>, valueFieldId: string) => any;
6
+ export declare const getNextId: (data: TOption[], currentId: string, valueFieldId: string, selected: TOption[], disabled: Array<string | number>) => any;
7
+ export declare const getPrevId: (data: TOption[], currentId: string, valueFieldId: string, selected: TOption[], disabled: Array<string | number>) => any;
8
+ export declare const isBottom: ({ scrollHeight, scrollTop, clientHeight, }: Element) => boolean;
9
+ export declare const getValueArray: <TValue>(value: TValue | TValue[]) => TValue[];
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.getValueArray = exports.isBottom = exports.getPrevId = exports.getNextId = exports.getFirstNotDisabledId = exports.isDisabled = exports.groupData = exports.inArray = void 0;
9
+
10
+ var _findIndex = _interopRequireDefault(require("lodash/findIndex"));
11
+
12
+ var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
13
+
14
+ var _isString = _interopRequireDefault(require("lodash/isString"));
15
+
16
+ var _get = _interopRequireDefault(require("lodash/get"));
17
+
18
+ var _reduce = _interopRequireDefault(require("lodash/reduce"));
19
+
20
+ var _has = _interopRequireDefault(require("lodash/has"));
21
+
22
+ var _constants = require("./constants");
23
+
24
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
25
+ var inArray = function inArray() {
26
+ var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
27
+ var item = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
28
+ return array.some(function (arrayItem) {
29
+ return (0, _isString["default"])(item) ? arrayItem === item : arrayItem.id && item.id && arrayItem.id === item.id;
30
+ });
31
+ };
32
+
33
+ exports.inArray = inArray;
34
+
35
+ var groupData = function groupData(data, groupFieldId) {
36
+ return (0, _reduce["default"])(data, // eslint-disable-next-line @typescript-eslint/no-explicit-any
37
+ function (acc, item) {
38
+ var key = (0, _get["default"])(item, groupFieldId) || _constants.UNKNOWN_GROUP_FIELD_ID;
39
+
40
+ if ((0, _has["default"])(acc, key)) {
41
+ acc[key].push(item);
42
+ } else {
43
+ acc[key] = [item];
44
+ }
45
+
46
+ return acc;
47
+ }, {});
48
+ };
49
+
50
+ exports.groupData = groupData;
51
+
52
+ var isDisabled = function isDisabled(item, selected, disabled) {
53
+ return inArray(disabled, item) || inArray(selected, item);
54
+ };
55
+
56
+ exports.isDisabled = isDisabled;
57
+
58
+ var getNextNotDisabledId = function getNextNotDisabledId(data, selected, disabled, initialId, distance, valueFieldId) {
59
+ var index = (0, _findIndex["default"])(data, function (item) {
60
+ return item[valueFieldId] === initialId;
61
+ });
62
+
63
+ while (data[index + distance] && isDisabled(data[index + distance], selected, disabled)) {
64
+ index += distance;
65
+ }
66
+
67
+ if (!data[index + distance]) {
68
+ return initialId;
69
+ }
70
+
71
+ return data[index + distance][valueFieldId];
72
+ };
73
+
74
+ var getIdByDistance = function getIdByDistance(data, currentId, distance, valueFieldId, selected, disabled) {
75
+ if ((0, _isEmpty["default"])(data)) {
76
+ return;
77
+ }
78
+
79
+ var id = currentId || data[0][valueFieldId]; // eslint-disable-next-line consistent-return
80
+
81
+ return getNextNotDisabledId(data, selected, disabled, id, distance, valueFieldId);
82
+ };
83
+
84
+ var getFirstNotDisabledId = function getFirstNotDisabledId(data, selected, disabled, valueFieldId) {
85
+ if ((0, _isEmpty["default"])(data)) {
86
+ return;
87
+ } // eslint-disable-next-line consistent-return
88
+
89
+
90
+ if (!isDisabled(data[0], selected, disabled)) {
91
+ return data[0][valueFieldId];
92
+ } // eslint-disable-next-line consistent-return
93
+
94
+
95
+ return getNextNotDisabledId(data, selected, disabled, data[0][valueFieldId], 1, valueFieldId);
96
+ };
97
+
98
+ exports.getFirstNotDisabledId = getFirstNotDisabledId;
99
+
100
+ var getNextId = function getNextId(data, currentId, valueFieldId, selected, disabled) {
101
+ return getIdByDistance(data, currentId, 1, valueFieldId, selected, disabled);
102
+ };
103
+
104
+ exports.getNextId = getNextId;
105
+
106
+ var getPrevId = function getPrevId(data, currentId, valueFieldId, selected, disabled) {
107
+ return getIdByDistance(data, currentId, -1, valueFieldId, selected, disabled);
108
+ };
109
+
110
+ exports.getPrevId = getPrevId;
111
+
112
+ var isBottom = function isBottom(_ref) {
113
+ var scrollHeight = _ref.scrollHeight,
114
+ scrollTop = _ref.scrollTop,
115
+ clientHeight = _ref.clientHeight;
116
+ var difference = Math.floor(scrollHeight - scrollTop);
117
+
118
+ if (difference === clientHeight) {
119
+ return true;
120
+ }
121
+
122
+ var inaccuracyLess = clientHeight - _constants.TOLERANCE;
123
+ var inaccuracyLarge = clientHeight + _constants.TOLERANCE;
124
+ return difference === inaccuracyLess || difference === inaccuracyLarge;
125
+ };
126
+
127
+ exports.isBottom = isBottom;
128
+
129
+ var getValueArray = function getValueArray(value) {
130
+ if (Array.isArray(value)) {
131
+ return value;
132
+ }
133
+
134
+ if (value) {
135
+ return [value];
136
+ }
137
+
138
+ return [];
139
+ };
140
+
141
+ exports.getValueArray = getValueArray;
142
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbnB1dHMvSW5wdXRTZWxlY3QvdXRpbHMudHMiXSwibmFtZXMiOlsiaW5BcnJheSIsImFycmF5IiwiaXRlbSIsInNvbWUiLCJhcnJheUl0ZW0iLCJpZCIsImdyb3VwRGF0YSIsImRhdGEiLCJncm91cEZpZWxkSWQiLCJhY2MiLCJrZXkiLCJVTktOT1dOX0dST1VQX0ZJRUxEX0lEIiwicHVzaCIsImlzRGlzYWJsZWQiLCJzZWxlY3RlZCIsImRpc2FibGVkIiwiZ2V0TmV4dE5vdERpc2FibGVkSWQiLCJpbml0aWFsSWQiLCJkaXN0YW5jZSIsInZhbHVlRmllbGRJZCIsImluZGV4IiwiZ2V0SWRCeURpc3RhbmNlIiwiY3VycmVudElkIiwiZ2V0Rmlyc3ROb3REaXNhYmxlZElkIiwiZ2V0TmV4dElkIiwiZ2V0UHJldklkIiwiaXNCb3R0b20iLCJzY3JvbGxIZWlnaHQiLCJzY3JvbGxUb3AiLCJjbGllbnRIZWlnaHQiLCJkaWZmZXJlbmNlIiwiTWF0aCIsImZsb29yIiwiaW5hY2N1cmFjeUxlc3MiLCJUT0xFUkFOQ0UiLCJpbmFjY3VyYWN5TGFyZ2UiLCJnZXRWYWx1ZUFycmF5IiwidmFsdWUiLCJBcnJheSIsImlzQXJyYXkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUdBO0FBQ08sSUFBTUEsT0FBTyxHQUFHLFNBQVZBLE9BQVU7QUFBQSxNQUFDQyxLQUFELHVFQUFnQixFQUFoQjtBQUFBLE1BQW9CQyxJQUFwQix1RUFBNkMsRUFBN0M7QUFBQSxTQUFvREQsS0FBSyxDQUFDRSxJQUFOLENBQVcsVUFBQUMsU0FBUztBQUFBLFdBQUssMEJBQVNGLElBQVQsSUFDOUZFLFNBQVMsS0FBS0YsSUFEZ0YsR0FFOUZFLFNBQVMsQ0FBQ0MsRUFBVixJQUFnQkgsSUFBSSxDQUFDRyxFQUFyQixJQUEyQkQsU0FBUyxDQUFDQyxFQUFWLEtBQWlCSCxJQUFJLENBQUNHLEVBRndD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R0ssb0JBQXZDO0FBRUEsU0FBT0osVUFBVSxLQUFLRyxjQUFmLElBQWlDSCxVQUFVLEtBQUtLLGVBQXZEO0FBQ0gsQ0FmTTs7OztBQWlCQSxJQUFNQyxhQUFhLEdBQUcsU0FBaEJBLGFBQWdCLENBQVNDLEtBQVQsRUFBZ0Q7QUFDekUsTUFBSUMsS0FBSyxDQUFDQyxPQUFOLENBQWNGLEtBQWQsQ0FBSixFQUEwQjtBQUFFLFdBQU9BLEtBQVA7QUFBYzs7QUFDMUMsTUFBSUEsS0FBSixFQUFXO0FBQUUsV0FBTyxDQUFDQSxLQUFELENBQVA7QUFBZ0I7O0FBRTdCLFNBQU8sRUFBUDtBQUNILENBTE0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZmluZEluZGV4IGZyb20gJ2xvZGFzaC9maW5kSW5kZXgnXG5pbXBvcnQgaXNFbXB0eSBmcm9tICdsb2Rhc2gvaXNFbXB0eSdcbmltcG9ydCBpc1N0cmluZyBmcm9tICdsb2Rhc2gvaXNTdHJpbmcnXG5pbXBvcnQgZ2V0IGZyb20gJ2xvZGFzaC9nZXQnXG5pbXBvcnQgcmVkdWNlIGZyb20gJ2xvZGFzaC9yZWR1Y2UnXG5pbXBvcnQgaGFzIGZyb20gJ2xvZGFzaC9oYXMnXG5cbmltcG9ydCB7IFRPTEVSQU5DRSwgVU5LTk9XTl9HUk9VUF9GSUVMRF9JRCB9IGZyb20gJy4vY29uc3RhbnRzJ1xuaW1wb3J0IHsgVE9wdGlvbiB9IGZyb20gJy4vdHlwZXMnXG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgY29uc3QgaW5BcnJheSA9IChhcnJheTogYW55W10gPSBbXSwgaXRlbTogVE9wdGlvbiB8IHN0cmluZyA9ICcnKSA9PiBhcnJheS5zb21lKGFycmF5SXRlbSA9PiAoaXNTdHJpbmcoaXRlbSlcbiAgICA/IGFycmF5SXRlbSA9PT0gaXRlbVxuICAgIDogYXJyYXlJdGVtLmlkICYmIGl0ZW0uaWQgJiYgYXJyYXlJdGVtLmlkID09PSBpdGVtLmlkKSlcblxuZXhwb3J0IGNvbnN0IGdyb3VwRGF0YSA9IChkYXRhOiBUT3B0aW9uW10sIGdyb3VwRmllbGRJZDogc3RyaW5nKSA9PiByZWR1Y2UoXG4gICAgZGF0YSxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIChhY2M6IGFueSwgaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCBrZXkgPSBnZXQoaXRlbSwgZ3JvdXBGaWVsZElkKSB8fCBVTktOT1dOX0dST1VQX0ZJRUxEX0lEXG5cbiAgICAgICAgaWYgKGhhcyhhY2MsIGtleSkpIHtcbiAgICAgICAgICAgIGFjY1trZXldLnB1c2goaXRlbSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFjY1trZXldID0gW2l0ZW1dXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWNjXG4gICAgfSxcbiAgICB7fSxcbilcblxuZXhwb3J0IGNvbnN0IGlzRGlzYWJsZWQgPSAoXG4gICAgaXRlbTogVE9wdGlvbixcbiAgICBzZWxlY3RlZDogVE9wdGlvbltdLFxuICAgIGRpc2FibGVkOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+LFxuKSA9PiBpbkFycmF5KGRpc2FibGVkLCBpdGVtKSB8fCBpbkFycmF5KHNlbGVjdGVkLCBpdGVtKVxuXG5jb25zdCBnZXROZXh0Tm90RGlzYWJsZWRJZCA9IChcbiAgICBkYXRhOiBUT3B0aW9uW10sXG4gICAgc2VsZWN0ZWQ6IFRPcHRpb25bXSxcbiAgICBkaXNhYmxlZDogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPixcbiAgICBpbml0aWFsSWQ6IG51bWJlcixcbiAgICBkaXN0YW5jZTogbnVtYmVyLFxuICAgIHZhbHVlRmllbGRJZDogc3RyaW5nLFxuKSA9PiB7XG4gICAgbGV0IGluZGV4ID0gZmluZEluZGV4KGRhdGEsIGl0ZW0gPT4gaXRlbVt2YWx1ZUZpZWxkSWQgYXMga2V5b2YgVE9wdGlvbl0gPT09IGluaXRpYWxJZClcblxuICAgIHdoaWxlIChcbiAgICAgICAgZGF0YVtpbmRleCArIGRpc3RhbmNlXSAmJlxuICAgICAgICBpc0Rpc2FibGVkKGRhdGFbaW5kZXggKyBkaXN0YW5jZV0sIHNlbGVjdGVkLCBkaXNhYmxlZClcbiAgICApIHtcbiAgICAgICAgaW5kZXggKz0gZGlzdGFuY2VcbiAgICB9XG4gICAgaWYgKCFkYXRhW2luZGV4ICsgZGlzdGFuY2VdKSB7IHJldHVybiBpbml0aWFsSWQgfVxuXG4gICAgcmV0dXJuIGRhdGFbaW5kZXggKyBkaXN0YW5jZV1bdmFsdWVGaWVsZElkIGFzIGtleW9mIFRPcHRpb25dXG59XG5cbmNvbnN0IGdldElkQnlEaXN0YW5jZSA9IChcbiAgICBkYXRhOiBUT3B0aW9uW10sXG4gICAgY3VycmVudElkOiBzdHJpbmcsXG4gICAgZGlzdGFuY2U6IG51bWJlcixcbiAgICB2YWx1ZUZpZWxkSWQ6IHN0cmluZyxcbiAgICBzZWxlY3RlZDogVE9wdGlvbltdLFxuICAgIGRpc2FibGVkOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+LFxuKSA9PiB7XG4gICAgaWYgKGlzRW1wdHkoZGF0YSkpIHsgcmV0dXJuIH1cbiAgICBjb25zdCBpZCA9IGN1cnJlbnRJZCB8fCBkYXRhWzBdW3ZhbHVlRmllbGRJZCBhcyBrZXlvZiBUT3B0aW9uXVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbnNpc3RlbnQtcmV0dXJuXG4gICAgcmV0dXJuIGdldE5leHROb3REaXNhYmxlZElkKFxuICAgICAgICBkYXRhLFxuICAgICAgICBzZWxlY3RlZCxcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIGlkLFxuICAgICAgICBkaXN0YW5jZSxcbiAgICAgICAgdmFsdWVGaWVsZElkLFxuICAgIClcbn1cblxuZXhwb3J0IGNvbnN0IGdldEZpcnN0Tm90RGlzYWJsZWRJZCA9IChcbiAgICBkYXRhOiBUT3B0aW9uW10sXG4gICAgc2VsZWN0ZWQ6IFRPcHRpb25bXSxcbiAgICBkaXNhYmxlZDogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPixcbiAgICB2YWx1ZUZpZWxkSWQ6IHN0cmluZyxcbikgPT4ge1xuICAgIGlmIChpc0VtcHR5KGRhdGEpKSB7IHJldHVybiB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbnNpc3RlbnQtcmV0dXJuXG4gICAgaWYgKCFpc0Rpc2FibGVkKGRhdGFbMF0sIHNlbGVjdGVkLCBkaXNhYmxlZCkpIHsgcmV0dXJuIGRhdGFbMF1bdmFsdWVGaWVsZElkIGFzIGtleW9mIFRPcHRpb25dIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb25zaXN0ZW50LXJldHVyblxuICAgIHJldHVybiBnZXROZXh0Tm90RGlzYWJsZWRJZChcbiAgICAgICAgZGF0YSxcbiAgICAgICAgc2VsZWN0ZWQsXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBkYXRhWzBdW3ZhbHVlRmllbGRJZCBhcyBrZXlvZiBUT3B0aW9uXSxcbiAgICAgICAgMSxcbiAgICAgICAgdmFsdWVGaWVsZElkLFxuICAgIClcbn1cblxuZXhwb3J0IGNvbnN0IGdldE5leHRJZCA9IChcbiAgICBkYXRhOiBUT3B0aW9uW10sXG4gICAgY3VycmVudElkOiBzdHJpbmcsXG4gICAgdmFsdWVGaWVsZElkOiBzdHJpbmcsXG4gICAgc2VsZWN0ZWQ6IFRPcHRpb25bXSxcbiAgICBkaXNhYmxlZDogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPixcbikgPT4gZ2V0SWRCeURpc3RhbmNlKGRhdGEsIGN1cnJlbnRJZCwgMSwgdmFsdWVGaWVsZElkLCBzZWxlY3RlZCwgZGlzYWJsZWQpXG5cbmV4cG9ydCBjb25zdCBnZXRQcmV2SWQgPSAoXG4gICAgZGF0YTogVE9wdGlvbltdLFxuICAgIGN1cnJlbnRJZDogc3RyaW5nLFxuICAgIHZhbHVlRmllbGRJZDogc3RyaW5nLFxuICAgIHNlbGVjdGVkOiBUT3B0aW9uW10sXG4gICAgZGlzYWJsZWQ6IEFycmF5PHN0cmluZyB8IG51bWJlcj4sXG4pID0+IGdldElkQnlEaXN0YW5jZShkYXRhLCBjdXJyZW50SWQsIC0xLCB2YWx1ZUZpZWxkSWQsIHNlbGVjdGVkLCBkaXNhYmxlZClcblxuZXhwb3J0IGNvbnN0IGlzQm90dG9tID0gKHtcbiAgICBzY3JvbGxIZWlnaHQsXG4gICAgc2Nyb2xsVG9wLFxuICAgIGNsaWVudEhlaWdodCxcbn06IEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBkaWZmZXJlbmNlID0gTWF0aC5mbG9vcihzY3JvbGxIZWlnaHQgLSBzY3JvbGxUb3ApXG5cbiAgICBpZiAoZGlmZmVyZW5jZSA9PT0gY2xpZW50SGVpZ2h0KSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgY29uc3QgaW5hY2N1cmFjeUxlc3MgPSBjbGllbnRIZWlnaHQgLSBUT0xFUkFOQ0VcbiAgICBjb25zdCBpbmFjY3VyYWN5TGFyZ2UgPSBjbGllbnRIZWlnaHQgKyBUT0xFUkFOQ0VcblxuICAgIHJldHVybiBkaWZmZXJlbmNlID09PSBpbmFjY3VyYWN5TGVzcyB8fCBkaWZmZXJlbmNlID09PSBpbmFjY3VyYWN5TGFyZ2Vcbn1cblxuZXhwb3J0IGNvbnN0IGdldFZhbHVlQXJyYXkgPSA8VFZhbHVlPih2YWx1ZTogVFZhbHVlIHwgVFZhbHVlW10pOiBUVmFsdWVbXSA9PiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7IHJldHVybiB2YWx1ZSB9XG4gICAgaWYgKHZhbHVlKSB7IHJldHVybiBbdmFsdWVdIH1cblxuICAgIHJldHVybiBbXVxufVxuIl19