@seafile/sdoc-editor 3.0.82 → 3.0.84

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 (23) hide show
  1. package/dist/api/seafile-api.js +20 -21
  2. package/dist/constants/index.js +2 -1
  3. package/dist/context.js +23 -9
  4. package/dist/extension/commons/insert-element-dialog/index.js +13 -26
  5. package/dist/extension/plugins/file-view/helpers.js +2 -14
  6. package/dist/extension/plugins/file-view/render-elem/index.js +5 -12
  7. package/dist/extension/plugins/link/plugin.js +3 -2
  8. package/dist/extension/plugins/whiteboard/helper.js +6 -3
  9. package/dist/extension/toolbar/insert-element-toolbar/index.js +8 -7
  10. package/dist/extension/toolbar/linked-repo-popover/link-repo-list.css +8 -6
  11. package/dist/extension/toolbar/linked-repo-popover/link-repo-list.js +26 -67
  12. package/dist/extension/toolbar/side-toolbar/insert-block-menu.js +9 -8
  13. package/package.json +3 -3
  14. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/constants.js +0 -16
  15. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/index.css +0 -96
  16. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/index.js +0 -156
  17. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/lib.png +0 -0
  18. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/option.css +0 -49
  19. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/option.js +0 -53
  20. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/select-option-group.css +0 -37
  21. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/select-option-group.js +0 -241
  22. package/dist/extension/plugins/file-view/insert-view-dialog/index.js +0 -232
  23. package/dist/extension/plugins/file-view/insert-view-dialog/modal-portal.js +0 -41
@@ -1,96 +0,0 @@
1
- .sdoc-select.group-select {
2
- position: relative;
3
- }
4
-
5
- .sdoc-select.group-select.custom-select {
6
- display: flex;
7
- padding: 5px 10px;
8
- border-radius: 3px;
9
- align-items: center;
10
- justify-content: space-between;
11
- max-width: 900px;
12
- user-select: none;
13
- text-align: left;
14
- border-color: 1px solid rgba(0, 40, 100, 0.12);
15
- height: auto;
16
- min-height: 38px;
17
- cursor: pointer;
18
- }
19
-
20
- .sdoc-select.group-select.custom-select:focus,
21
- .sdoc-select.group-select.custom-select.focus {
22
- border-color: #1991eb !important;
23
- box-shadow: 0 0 0 2px rgba(70, 127, 207, 0.25);
24
- }
25
-
26
- .sdoc-select.group-select.custom-select.disabled:focus,
27
- .sdoc-select.group-select.custom-select.focus.disabled,
28
- .sdoc-select.group-select.custom-select.disabled:hover {
29
- border-color: rgba(0, 40, 100, 0.12) !important;
30
- box-shadow: unset;
31
- cursor: default;
32
- }
33
-
34
- .sdoc-select.group-select .sdoc-font-down {
35
- display: inline-block;
36
- color: #999;
37
- transform: translateY(2px);
38
- transition: all 0.1s;
39
- font-size: 14px !important;
40
- }
41
-
42
- .sdoc-select.group-select .sdoc-font-down:hover {
43
- color: #666;
44
- }
45
-
46
- .sdoc-select.group-select .selected-option {
47
- display: flex;
48
- flex: 1;
49
- overflow: hidden;
50
- flex-wrap: nowrap;
51
- align-items: center;
52
- justify-content: space-between;
53
- background: #fff;
54
- }
55
-
56
- .sdoc-select.group-select.selector-collaborator .option-group .option-group-content {
57
- padding: 10px;
58
- }
59
-
60
- .sdoc-select.group-select.custom-select.selector-collaborator .option-group .option-group-content {
61
- padding: 10px 0;
62
- }
63
-
64
- .sdoc-select.group-select.custom-select.selector-collaborator .option {
65
- padding: 5px 0 5px 10px !important;
66
- line-height: 20px;
67
- }
68
-
69
- .sdoc-select.group-select .select-placeholder {
70
- line-height: 1;
71
- font-size: 14px;
72
- white-space: nowrap;
73
- }
74
-
75
- .sdoc-select.group-select .selected-option-show {
76
- display: flex;
77
- flex-wrap: wrap;
78
- gap: 4px;
79
- }
80
-
81
- .sdoc-select.group-select .selected-option-show .selected-option-item {
82
- display: flex;
83
- align-items: center;
84
- background-color: #fff;
85
- border-radius: 0px;
86
- }
87
-
88
- .sdoc-select.group-select .selected-option-show .selected-option-item .selected-option-item-name {
89
- font-size: 13px;
90
- color: #212529;
91
- }
92
-
93
- .sdoc-select.group-select .selected-option-show .selected-option-item .sf2-icon-close {
94
- cursor: pointer;
95
- color: rgb(103, 103, 103);
96
- }
@@ -1,156 +0,0 @@
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;
@@ -1,49 +0,0 @@
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
- }
@@ -1,53 +0,0 @@
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;
@@ -1,37 +0,0 @@
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
- }
@@ -1,241 +0,0 @@
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;