@seafile/sdoc-editor 3.0.1 → 3.0.3

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 (37) hide show
  1. package/dist/api/seafile-api.js +20 -0
  2. package/dist/context.js +14 -0
  3. package/dist/editor/sdoc-editor.js +3 -0
  4. package/dist/editor/wiki-editor.js +4 -1
  5. package/dist/extension/commons/insert-element-dialog/index.js +26 -13
  6. package/dist/extension/constants/element-type.js +2 -1
  7. package/dist/extension/constants/font.js +1 -2
  8. package/dist/extension/constants/index.js +8 -0
  9. package/dist/extension/constants/menus-config.js +8 -3
  10. package/dist/extension/plugins/code-block/plugin.js +9 -0
  11. package/dist/extension/plugins/file-view/helpers.js +77 -0
  12. package/dist/extension/plugins/file-view/index.js +17 -0
  13. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/constants.js +16 -0
  14. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/index.css +96 -0
  15. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/index.js +156 -0
  16. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/lib.png +0 -0
  17. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/option.css +49 -0
  18. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/option.js +53 -0
  19. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/select-option-group.css +37 -0
  20. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/select-option-group.js +241 -0
  21. package/dist/extension/plugins/file-view/insert-view-dialog/index.js +232 -0
  22. package/dist/extension/plugins/file-view/insert-view-dialog/modal-portal.js +41 -0
  23. package/dist/extension/plugins/file-view/plugin.js +71 -0
  24. package/dist/extension/plugins/file-view/render-elem/index.css +53 -0
  25. package/dist/extension/plugins/file-view/render-elem/index.js +103 -0
  26. package/dist/extension/plugins/html/plugin.js +2 -3
  27. package/dist/extension/plugins/image/use-copy-image.js +2 -2
  28. package/dist/extension/plugins/index.js +9 -2
  29. package/dist/extension/plugins/list/plugin/index.js +2 -1
  30. package/dist/extension/plugins/list/transforms/normalize-list-item.js +1 -1
  31. package/dist/extension/plugins/quick-insert/render-elem.js +1 -0
  32. package/dist/extension/render/custom-element.js +6 -0
  33. package/dist/extension/toolbar/insert-element-toolbar/index.js +16 -1
  34. package/dist/extension/toolbar/side-toolbar/index.js +36 -12
  35. package/dist/extension/toolbar/side-toolbar/insert-block-menu.js +16 -2
  36. package/dist/node-id/index.js +3 -0
  37. package/package.json +2 -2
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createClass"));
11
+ var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/callSuper"));
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/inherits"));
13
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
14
+ var _react = _interopRequireWildcard(require("react"));
15
+ var _classnames = _interopRequireDefault(require("classnames"));
16
+ var _modalPortal = _interopRequireDefault(require("../modal-portal.js"));
17
+ var _lib = _interopRequireDefault(require("./lib.png"));
18
+ var _selectOptionGroup = _interopRequireDefault(require("./select-option-group.js"));
19
+ require("./index.css");
20
+ var DropdownSelect = /*#__PURE__*/function (_Component) {
21
+ function DropdownSelect(props) {
22
+ var _this;
23
+ (0, _classCallCheck2["default"])(this, DropdownSelect);
24
+ _this = (0, _callSuper2["default"])(this, DropdownSelect, [props]);
25
+ (0, _defineProperty2["default"])(_this, "onSelectToggle", function (event) {
26
+ event.preventDefault();
27
+ if (_this.state.isShowSelectOptions) event.stopPropagation();
28
+ var eventClassName = event.target.className;
29
+ if (eventClassName.indexOf('sf2-icon-close') > -1 || eventClassName === 'option-group-search') return;
30
+ if (event.target.value === '') return;
31
+ _this.setState({
32
+ isShowSelectOptions: !_this.state.isShowSelectOptions
33
+ });
34
+ });
35
+ (0, _defineProperty2["default"])(_this, "onClickOutside", function (event) {
36
+ if (_this.props.isShowSelected && event.target.className.includes('icon-fork-number')) {
37
+ return;
38
+ }
39
+ if (!_this.selector.contains(event.target)) {
40
+ _this.closeSelect();
41
+ }
42
+ });
43
+ (0, _defineProperty2["default"])(_this, "closeSelect", function () {
44
+ _this.setState({
45
+ isShowSelectOptions: false
46
+ });
47
+ });
48
+ (0, _defineProperty2["default"])(_this, "getSelectedOptionTop", function () {
49
+ if (!_this.selector) return 38;
50
+ var _this$selector$getBou = _this.selector.getBoundingClientRect(),
51
+ height = _this$selector$getBou.height;
52
+ return height;
53
+ });
54
+ (0, _defineProperty2["default"])(_this, "getFilterOptions", function (searchValue) {
55
+ var options = _this.props.options;
56
+ var validSearchVal = searchValue.trim().toLowerCase();
57
+ if (!validSearchVal) return options || [];
58
+ return options.filter(function (option) {
59
+ return option.name.toLowerCase().includes(validSearchVal);
60
+ });
61
+ });
62
+ (0, _defineProperty2["default"])(_this, "onSelectOption", function (option) {
63
+ _this.props.onSelectOption(option);
64
+ _this.setState({
65
+ isShowSelectOptions: false
66
+ });
67
+ });
68
+ _this.state = {
69
+ isShowSelectOptions: false
70
+ };
71
+ return _this;
72
+ }
73
+ (0, _inherits2["default"])(DropdownSelect, _Component);
74
+ return (0, _createClass2["default"])(DropdownSelect, [{
75
+ key: "UNSAFE_componentWillReceiveProps",
76
+ value: function UNSAFE_componentWillReceiveProps(nextProps) {
77
+ var _nextProps$selectedOp,
78
+ _this$props$selectedO,
79
+ _this2 = this;
80
+ if (((_nextProps$selectedOp = nextProps.selectedOption) === null || _nextProps$selectedOp === void 0 ? void 0 : _nextProps$selectedOp.id) !== ((_this$props$selectedO = this.props.selectedOption) === null || _this$props$selectedO === void 0 ? void 0 : _this$props$selectedO.id)) {
81
+ // when selectedOption change and dom rendered, calculate top
82
+ setTimeout(function () {
83
+ _this2.forceUpdate();
84
+ }, 1);
85
+ }
86
+ }
87
+ }, {
88
+ key: "render",
89
+ value: function render() {
90
+ var _this3 = this;
91
+ var _this$props = this.props,
92
+ className = _this$props.className,
93
+ selectedOption = _this$props.selectedOption,
94
+ options = _this$props.options,
95
+ placeholder = _this$props.placeholder,
96
+ searchPlaceholder = _this$props.searchPlaceholder,
97
+ noOptionsPlaceholder = _this$props.noOptionsPlaceholder,
98
+ isInModal = _this$props.isInModal,
99
+ _this$props$hasIcon = _this$props.hasIcon,
100
+ hasIcon = _this$props$hasIcon === void 0 ? false : _this$props$hasIcon;
101
+ var isShowSelectOptions = this.state.isShowSelectOptions;
102
+ var clazzName = (0, _classnames["default"])('sdoc-select group-select custom-select', {
103
+ 'focus': isShowSelectOptions
104
+ }, className);
105
+ return /*#__PURE__*/_react["default"].createElement("div", {
106
+ ref: function ref(node) {
107
+ return _this3.selector = node;
108
+ },
109
+ className: clazzName,
110
+ onClick: this.onSelectToggle
111
+ }, /*#__PURE__*/_react["default"].createElement("div", {
112
+ className: "selected-option"
113
+ }, selectedOption && /*#__PURE__*/_react["default"].createElement("span", {
114
+ className: "selected-option-show"
115
+ }, /*#__PURE__*/_react["default"].createElement("span", {
116
+ className: "selected-option-item mr-1 px-1"
117
+ }, hasIcon && /*#__PURE__*/_react["default"].createElement("img", {
118
+ src: _lib["default"],
119
+ width: '24px',
120
+ alt: "",
121
+ className: "mr-2"
122
+ }), /*#__PURE__*/_react["default"].createElement("span", {
123
+ className: "selected-option-item-name"
124
+ }, selectedOption.name))), !selectedOption && /*#__PURE__*/_react["default"].createElement("span", {
125
+ className: "select-placeholder"
126
+ }, placeholder), /*#__PURE__*/_react["default"].createElement("i", {
127
+ className: "sdocfont sdoc-font-down"
128
+ })), this.state.isShowSelectOptions && !isInModal && /*#__PURE__*/_react["default"].createElement(_selectOptionGroup["default"], {
129
+ selectedOption: selectedOption,
130
+ top: this.getSelectedOptionTop(),
131
+ options: options,
132
+ onSelectOption: this.onSelectOption,
133
+ searchPlaceholder: searchPlaceholder,
134
+ noOptionsPlaceholder: noOptionsPlaceholder,
135
+ onClickOutside: this.onClickOutside,
136
+ closeSelect: this.closeSelect,
137
+ getFilterOptions: this.getFilterOptions
138
+ }), this.state.isShowSelectOptions && isInModal && /*#__PURE__*/_react["default"].createElement(_modalPortal["default"], null, /*#__PURE__*/_react["default"].createElement(_selectOptionGroup["default"], {
139
+ hasIcon: hasIcon,
140
+ className: className,
141
+ selectedOption: selectedOption,
142
+ position: this.selector.getBoundingClientRect(),
143
+ isInModal: isInModal,
144
+ top: this.getSelectedOptionTop(),
145
+ options: options,
146
+ onSelectOption: this.onSelectOption,
147
+ searchPlaceholder: searchPlaceholder,
148
+ noOptionsPlaceholder: noOptionsPlaceholder,
149
+ onClickOutside: this.onClickOutside,
150
+ closeSelect: this.closeSelect,
151
+ getFilterOptions: this.getFilterOptions
152
+ })));
153
+ }
154
+ }]);
155
+ }(_react.Component);
156
+ var _default = exports["default"] = DropdownSelect;
@@ -0,0 +1,49 @@
1
+ .sdoc-options .option {
2
+ display: block;
3
+ width: 100%;
4
+ line-height: 24px;
5
+ padding: 6px 10px;
6
+ clear: both;
7
+ font-weight: 400;
8
+ text-align: inherit;
9
+ background-color: transparent;
10
+ border: 0;
11
+ overflow: hidden;
12
+ text-overflow: ellipsis;
13
+ white-space: nowrap;
14
+ display: flex;
15
+ align-items: center;
16
+ justify-content: space-between;
17
+ }
18
+
19
+ .sdoc-options .option.option-active {
20
+ background-color: #20a0ff;
21
+ color: #fff;
22
+ cursor: pointer;
23
+ }
24
+
25
+ .sdoc-options .option.option-active .sf2-icon-tick,
26
+ .sdoc-options .option.option-active .select-option-name {
27
+ color: #fff !important;
28
+ }
29
+
30
+ .sdoc-options .option .select-option-name .single-select-option {
31
+ margin: 0 0 0 12px;
32
+ }
33
+
34
+ .sdoc-options .option .select-option-name .multiple-select-option {
35
+ margin: 0;
36
+ }
37
+
38
+ .sdoc-options .option-group-selector-single-select .select-option-name {
39
+ display: flex;
40
+ align-items: center;
41
+ justify-content: space-between;
42
+ }
43
+
44
+ .sdoc-options .option-group-selector-single-select .option:hover,
45
+ .sdoc-options .option-group-selector-single-select .option.option-active,
46
+ .sdoc-options .option-group-selector-multiple-select .option:hover,
47
+ .sdoc-options .option-group-selector-multiple-select .option.option-active {
48
+ background-color: #f5f5f5;
49
+ }
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createClass"));
11
+ var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/callSuper"));
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/inherits"));
13
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
14
+ var _react = _interopRequireWildcard(require("react"));
15
+ require("./option.css");
16
+ var Option = /*#__PURE__*/function (_Component) {
17
+ function Option() {
18
+ var _this;
19
+ (0, _classCallCheck2["default"])(this, Option);
20
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
21
+ args[_key] = arguments[_key];
22
+ }
23
+ _this = (0, _callSuper2["default"])(this, Option, [].concat(args));
24
+ (0, _defineProperty2["default"])(_this, "onSelectOption", function (e) {
25
+ e.stopPropagation();
26
+ _this.props.onSelectOption(_this.props.option);
27
+ });
28
+ (0, _defineProperty2["default"])(_this, "onMouseEnter", function () {
29
+ if (!_this.props.disableHover) {
30
+ _this.props.changeIndex(_this.props.index);
31
+ }
32
+ });
33
+ (0, _defineProperty2["default"])(_this, "onMouseLeave", function () {
34
+ if (!_this.props.disableHover) {
35
+ _this.props.changeIndex(-1);
36
+ }
37
+ });
38
+ return _this;
39
+ }
40
+ (0, _inherits2["default"])(Option, _Component);
41
+ return (0, _createClass2["default"])(Option, [{
42
+ key: "render",
43
+ value: function render() {
44
+ return /*#__PURE__*/_react["default"].createElement("div", {
45
+ className: this.props.isActive ? 'option option-active' : 'option',
46
+ onClick: this.onSelectOption,
47
+ onMouseEnter: this.onMouseEnter,
48
+ onMouseLeave: this.onMouseLeave
49
+ }, this.props.children);
50
+ }
51
+ }]);
52
+ }(_react.Component);
53
+ var _default = exports["default"] = Option;
@@ -0,0 +1,37 @@
1
+ .sdoc-options.option-group {
2
+ position: absolute;
3
+ padding-top: 0;
4
+ left: 0;
5
+ min-height: 60px;
6
+ max-height: 300px;
7
+ min-width: 100%;
8
+ max-width: 15rem;
9
+ padding: 0.5rem 0;
10
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
11
+ background: #fff;
12
+ border: 1px solid rgba(0, 40, 100, .12);
13
+ border-radius: 3px;
14
+ z-index: 10001;
15
+ }
16
+
17
+ [data-bs-theme=dark] .sdoc-options.option-group {
18
+ box-shadow: none;
19
+ }
20
+
21
+ .sdoc-options.option-group .option-group-search {
22
+ width: 100%;
23
+ padding: 6px 10px;
24
+ min-width: 170px;
25
+ }
26
+
27
+ .sdoc-options.option-group .none-search-result {
28
+ height: 100px;
29
+ width: 100%;
30
+ padding: 10px;
31
+ color: #f5f5f5;
32
+ }
33
+
34
+ .sdoc-options.option-group .option-group-content {
35
+ max-height: 252px;
36
+ overflow-y: auto;
37
+ }
@@ -0,0 +1,241 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createClass"));
11
+ var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/callSuper"));
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/inherits"));
13
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
14
+ var _react = _interopRequireWildcard(require("react"));
15
+ var _classnames = _interopRequireDefault(require("classnames"));
16
+ var _constants = _interopRequireDefault(require("./constants"));
17
+ var _lib = _interopRequireDefault(require("./lib.png"));
18
+ var _option = _interopRequireDefault(require("./option"));
19
+ require("./select-option-group.css");
20
+ var OPTION_HEIGHT = 32;
21
+ var SelectOptionGroup = /*#__PURE__*/function (_Component) {
22
+ function SelectOptionGroup(props) {
23
+ var _this;
24
+ (0, _classCallCheck2["default"])(this, SelectOptionGroup);
25
+ _this = (0, _callSuper2["default"])(this, SelectOptionGroup, [props]);
26
+ (0, _defineProperty2["default"])(_this, "handleDocumentClick", function (e) {
27
+ _this.props.onClickOutside(e);
28
+ });
29
+ (0, _defineProperty2["default"])(_this, "resetMenuStyle", function () {
30
+ var _this$props = _this.props,
31
+ isInModal = _this$props.isInModal,
32
+ position = _this$props.position;
33
+ var _this$optionGroupRef$ = _this.optionGroupRef.getBoundingClientRect(),
34
+ top = _this$optionGroupRef$.top,
35
+ height = _this$optionGroupRef$.height;
36
+ if (isInModal) {
37
+ if (position.y + position.height + height > window.innerHeight) {
38
+ _this.optionGroupRef.style.top = position.y - height + 'px';
39
+ }
40
+ _this.optionGroupRef.style.opacity = 1;
41
+ } else {
42
+ if (height + top > window.innerHeight) {
43
+ var borderWidth = 2;
44
+ _this.optionGroupRef.style.top = -1 * (height + borderWidth) + 'px';
45
+ }
46
+ }
47
+ });
48
+ (0, _defineProperty2["default"])(_this, "onHotKey", function (event) {
49
+ var keyCode = event.keyCode;
50
+ if (keyCode === _constants["default"].UpArrow) {
51
+ _this.onPressUp();
52
+ } else if (keyCode === _constants["default"].DownArrow) {
53
+ _this.onPressDown();
54
+ } else if (keyCode === _constants["default"].Enter) {
55
+ var option = _this.filterOptions && _this.filterOptions[_this.state.activeIndex];
56
+ if (option) {
57
+ _this.props.onSelectOption(option);
58
+ }
59
+ } else if (keyCode === _constants["default"].Tab || keyCode === _constants["default"].Escape) {
60
+ _this.props.closeSelect();
61
+ }
62
+ });
63
+ (0, _defineProperty2["default"])(_this, "onPressUp", function () {
64
+ if (_this.state.activeIndex > 0) {
65
+ _this.setState({
66
+ activeIndex: _this.state.activeIndex - 1
67
+ }, function () {
68
+ _this.scrollContent();
69
+ });
70
+ }
71
+ });
72
+ (0, _defineProperty2["default"])(_this, "onPressDown", function () {
73
+ if (_this.filterOptions && _this.state.activeIndex < _this.filterOptions.length - 1) {
74
+ _this.setState({
75
+ activeIndex: _this.state.activeIndex + 1
76
+ }, function () {
77
+ _this.scrollContent();
78
+ });
79
+ }
80
+ });
81
+ (0, _defineProperty2["default"])(_this, "onMouseDown", function (e) {
82
+ var isInModal = _this.props.isInModal;
83
+ // prevent event propagation when click option or search input
84
+ if (isInModal) {
85
+ e.stopPropagation();
86
+ e.nativeEvent.stopImmediatePropagation();
87
+ }
88
+ });
89
+ (0, _defineProperty2["default"])(_this, "scrollContent", function () {
90
+ var _this$optionGroupCont = _this.optionGroupContentRef,
91
+ offsetHeight = _this$optionGroupCont.offsetHeight,
92
+ scrollTop = _this$optionGroupCont.scrollTop;
93
+ _this.setState({
94
+ disableHover: true
95
+ });
96
+ _this.timer = setTimeout(function () {
97
+ _this.setState({
98
+ disableHover: false
99
+ });
100
+ }, 500);
101
+ if (_this.state.activeIndex * OPTION_HEIGHT === 0) {
102
+ _this.optionGroupContentRef.scrollTop = 0;
103
+ return;
104
+ }
105
+ if (_this.state.activeIndex * OPTION_HEIGHT < scrollTop) {
106
+ _this.optionGroupContentRef.scrollTop = scrollTop - OPTION_HEIGHT;
107
+ } else if (_this.state.activeIndex * OPTION_HEIGHT > offsetHeight + scrollTop) {
108
+ _this.optionGroupContentRef.scrollTop = scrollTop + OPTION_HEIGHT;
109
+ }
110
+ });
111
+ (0, _defineProperty2["default"])(_this, "changeIndex", function (index) {
112
+ _this.setState({
113
+ activeIndex: index
114
+ });
115
+ });
116
+ (0, _defineProperty2["default"])(_this, "onChangeSearch", function (searchVal) {
117
+ _this.setState({
118
+ searchVal: searchVal || '',
119
+ activeIndex: -1
120
+ });
121
+ });
122
+ (0, _defineProperty2["default"])(_this, "clearValue", function () {
123
+ _this.setState({
124
+ searchVal: '',
125
+ activeIndex: -1
126
+ });
127
+ });
128
+ (0, _defineProperty2["default"])(_this, "renderOptGroup", function (searchVal) {
129
+ var _this$props2 = _this.props,
130
+ noOptionsPlaceholder = _this$props2.noOptionsPlaceholder,
131
+ onSelectOption = _this$props2.onSelectOption,
132
+ selectedOption = _this$props2.selectedOption,
133
+ hasIcon = _this$props2.hasIcon;
134
+ _this.filterOptions = _this.props.getFilterOptions(searchVal);
135
+ if (_this.filterOptions.length === 0) {
136
+ return /*#__PURE__*/_react["default"].createElement("div", {
137
+ className: "none-search-result"
138
+ }, noOptionsPlaceholder);
139
+ }
140
+ return _this.filterOptions.map(function (option, index) {
141
+ var isSelected = (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.id) === option.id;
142
+ return /*#__PURE__*/_react["default"].createElement(_option["default"], {
143
+ key: "".concat(option.id, "-").concat(index),
144
+ index: index,
145
+ isActive: _this.state.activeIndex === index,
146
+ option: option,
147
+ onSelectOption: onSelectOption,
148
+ changeIndex: _this.changeIndex,
149
+ disableHover: _this.state.disableHover
150
+ }, /*#__PURE__*/_react["default"].createElement("div", {
151
+ className: "d-flex"
152
+ }, hasIcon && /*#__PURE__*/_react["default"].createElement("img", {
153
+ src: _lib["default"],
154
+ width: '24px',
155
+ alt: "",
156
+ className: "mr-2"
157
+ }), /*#__PURE__*/_react["default"].createElement("div", {
158
+ className: "option-label"
159
+ }, option.label)), isSelected && /*#__PURE__*/_react["default"].createElement("i", {
160
+ className: "sdocfont sdoc-check-mark text-gray font-weight-bold"
161
+ }));
162
+ });
163
+ });
164
+ _this.state = {
165
+ searchVal: '',
166
+ activeIndex: -1,
167
+ disableHover: false
168
+ };
169
+ _this.filterOptions = null;
170
+ _this.timer = null;
171
+ _this.searchInputRef = /*#__PURE__*/_react["default"].createRef();
172
+ return _this;
173
+ }
174
+ (0, _inherits2["default"])(SelectOptionGroup, _Component);
175
+ return (0, _createClass2["default"])(SelectOptionGroup, [{
176
+ key: "componentDidMount",
177
+ value: function componentDidMount() {
178
+ var _this2 = this;
179
+ window.addEventListener('keydown', this.onHotKey);
180
+ document.addEventListener('mousedown', this.handleDocumentClick);
181
+ setTimeout(function () {
182
+ _this2.resetMenuStyle();
183
+ }, 1);
184
+ }
185
+ }, {
186
+ key: "componentWillUnmount",
187
+ value: function componentWillUnmount() {
188
+ this.filterOptions = null;
189
+ this.timer && clearTimeout(this.timer);
190
+ window.removeEventListener('keydown', this.onHotKey);
191
+ document.removeEventListener('mousedown', this.handleDocumentClick);
192
+ }
193
+ }, {
194
+ key: "render",
195
+ value: function render() {
196
+ var _this3 = this;
197
+ var _this$props3 = this.props,
198
+ top = _this$props3.top,
199
+ left = _this$props3.left,
200
+ minWidth = _this$props3.minWidth,
201
+ isInModal = _this$props3.isInModal,
202
+ position = _this$props3.position,
203
+ className = _this$props3.className;
204
+ var searchVal = this.state.searchVal;
205
+ var style = {
206
+ top: top || 0,
207
+ left: left || 0
208
+ };
209
+ if (minWidth) {
210
+ style = {
211
+ top: top || 0,
212
+ left: left || 0,
213
+ minWidth: minWidth
214
+ };
215
+ }
216
+ if (isInModal) {
217
+ style = {
218
+ position: 'fixed',
219
+ left: position.x,
220
+ top: position.y + position.height,
221
+ minWidth: position.width,
222
+ opacity: 0
223
+ };
224
+ }
225
+ return /*#__PURE__*/_react["default"].createElement("div", {
226
+ className: (0, _classnames["default"])('sdoc-options option-group', className ? 'option-group-' + className : ''),
227
+ ref: function ref(_ref2) {
228
+ return _this3.optionGroupRef = _ref2;
229
+ },
230
+ style: style,
231
+ onMouseDown: this.onMouseDown
232
+ }, /*#__PURE__*/_react["default"].createElement("div", {
233
+ className: "option-group-content",
234
+ ref: function ref(_ref) {
235
+ return _this3.optionGroupContentRef = _ref;
236
+ }
237
+ }, this.renderOptGroup(searchVal)));
238
+ }
239
+ }]);
240
+ }(_react.Component);
241
+ var _default = exports["default"] = SelectOptionGroup;