@seafile/seafile-editor 0.3.113 → 0.3.115

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 (36) hide show
  1. package/dist/assets/css/topbar.css +6 -0
  2. package/dist/components/error-boundary.js +35 -0
  3. package/dist/components/menu/index.js +4 -0
  4. package/dist/components/menu/item.js +60 -0
  5. package/dist/components/menu/menu.js +49 -0
  6. package/dist/components/menu/style.css +42 -0
  7. package/dist/components/select/_option.js +56 -0
  8. package/dist/components/select/field-setting.js +132 -0
  9. package/dist/components/select/index.js +163 -0
  10. package/dist/components/select/style.css +149 -0
  11. package/dist/components/svg-icons/check-mark-icon.js +16 -0
  12. package/dist/components/svg-icons/column-icon.js +19 -0
  13. package/dist/components/svg-icons/text-icon.js +36 -0
  14. package/dist/components/toolbar/toolbar.js +38 -24
  15. package/dist/components/toolbar/widgets/button-item.js +6 -2
  16. package/dist/constants/cell-types.js +28 -0
  17. package/dist/constants/column.js +6 -0
  18. package/dist/editor/controller/inline-element-controller.js +20 -1
  19. package/dist/editor/controller/shortcut-controller.js +30 -9
  20. package/dist/editor/controller/void-element-controller.js +1 -1
  21. package/dist/editor/editor-builder.js +8 -0
  22. package/dist/editor/editor-component/column.js +124 -0
  23. package/dist/editor/editor-utils/common-editor-utils.js +19 -1
  24. package/dist/editor/editor-utils/inline-element-utils/index.js +19 -0
  25. package/dist/editor/element-model/column.js +22 -0
  26. package/dist/editor/index.js +2 -1
  27. package/dist/editor/seatable-editor.js +232 -0
  28. package/dist/index.js +4 -2
  29. package/dist/utils/render-slate.js +5 -0
  30. package/dist/utils/utils.js +32 -0
  31. package/dist/viewer/seatable-viewer.js +74 -0
  32. package/package.json +3 -2
  33. package/public/locales/en/seafile-editor.json +3 -1
  34. package/dist/components/table-button.js +0 -155
  35. package/dist/components/topbar-component/editor-toolbar.js +0 -545
  36. package/dist/components/topbar-component/file-info.js +0 -65
@@ -64,6 +64,12 @@
64
64
  color: #eb8205;
65
65
  }
66
66
 
67
+ .rich-icon-btn.svg-button {
68
+ display: inline-flex;
69
+ align-items: center;
70
+ justify-content: center;
71
+ }
72
+
67
73
  .btn-active[data-active='true'] {
68
74
  color: #eb8205;
69
75
  }
@@ -0,0 +1,35 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
3
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
4
+ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
+ import React, { Children } from 'react';
6
+
7
+ var ErrorBoundary = /*#__PURE__*/function (_React$Component) {
8
+ _inherits(ErrorBoundary, _React$Component);
9
+
10
+ var _super = _createSuper(ErrorBoundary);
11
+
12
+ function ErrorBoundary() {
13
+ _classCallCheck(this, ErrorBoundary);
14
+
15
+ return _super.apply(this, arguments);
16
+ }
17
+
18
+ _createClass(ErrorBoundary, [{
19
+ key: "componentDidCatch",
20
+ value: function componentDidCatch(error) {
21
+ console.error(error);
22
+ this.forceUpdate();
23
+ }
24
+ }, {
25
+ key: "render",
26
+ value: function render() {
27
+ var children = this.props.children;
28
+ return children;
29
+ }
30
+ }]);
31
+
32
+ return ErrorBoundary;
33
+ }(React.Component);
34
+
35
+ export default ErrorBoundary;
@@ -0,0 +1,4 @@
1
+ import Menu from './menu';
2
+ import Item from './item';
3
+ Menu.Item = Item;
4
+ export default Menu;
@@ -0,0 +1,60 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
3
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
4
+ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
+ import React from 'react';
6
+ import CheckMarkIcon from '../svg-icons/check-mark-icon';
7
+ import './style.css';
8
+
9
+ var MenuItem = /*#__PURE__*/function (_React$Component) {
10
+ _inherits(MenuItem, _React$Component);
11
+
12
+ var _super = _createSuper(MenuItem);
13
+
14
+ function MenuItem() {
15
+ var _this;
16
+
17
+ _classCallCheck(this, MenuItem);
18
+
19
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
20
+ args[_key] = arguments[_key];
21
+ }
22
+
23
+ _this = _super.call.apply(_super, [this].concat(args));
24
+
25
+ _this.onClick = function (e) {
26
+ _this.props.onClick(e);
27
+ };
28
+
29
+ return _this;
30
+ }
31
+
32
+ _createClass(MenuItem, [{
33
+ key: "render",
34
+ value: function render() {
35
+ var _this$props = this.props,
36
+ children = _this$props.children,
37
+ itemClass = _this$props.itemClass,
38
+ iconClass = _this$props.iconClass,
39
+ isChecked = _this$props.isChecked;
40
+ var containerClass = "seafile-menu-item ".concat(itemClass || '');
41
+ var itemIconClass = "menu-item-icon ".concat(iconClass || '');
42
+ return /*#__PURE__*/React.createElement("span", {
43
+ className: containerClass,
44
+ onClick: this.onClick
45
+ }, /*#__PURE__*/React.createElement("span", {
46
+ className: itemIconClass
47
+ }), /*#__PURE__*/React.createElement("span", {
48
+ className: "menu-item-name"
49
+ }, children), isChecked && /*#__PURE__*/React.createElement(CheckMarkIcon, {
50
+ className: "checked-icon",
51
+ width: 13,
52
+ color: "#aaa"
53
+ }));
54
+ }
55
+ }]);
56
+
57
+ return MenuItem;
58
+ }(React.Component);
59
+
60
+ export default MenuItem;
@@ -0,0 +1,49 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
3
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
4
+ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
+ import React from 'react';
6
+
7
+ var Menu = /*#__PURE__*/function (_React$Component) {
8
+ _inherits(Menu, _React$Component);
9
+
10
+ var _super = _createSuper(Menu);
11
+
12
+ function Menu() {
13
+ var _this;
14
+
15
+ _classCallCheck(this, Menu);
16
+
17
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
18
+ args[_key] = arguments[_key];
19
+ }
20
+
21
+ _this = _super.call.apply(_super, [this].concat(args));
22
+
23
+ _this.getStyle = function () {
24
+ var position = _this.props.position;
25
+ var width = position.width;
26
+ return {
27
+ marginLeft: width - 10,
28
+ marginTop: '30px'
29
+ };
30
+ };
31
+
32
+ return _this;
33
+ }
34
+
35
+ _createClass(Menu, [{
36
+ key: "render",
37
+ value: function render() {
38
+ var style = this.getStyle();
39
+ return /*#__PURE__*/React.createElement("span", {
40
+ className: "seafile-menu-container",
41
+ style: style
42
+ }, this.props.children);
43
+ }
44
+ }]);
45
+
46
+ return Menu;
47
+ }(React.Component);
48
+
49
+ export default Menu;
@@ -0,0 +1,42 @@
1
+ .seafile-menu-container {
2
+ position: fixed;
3
+ display: flex;
4
+ flex-direction: column;
5
+ width: 150px;
6
+ padding: 8px 0;
7
+ min-width: 80px;
8
+ overflow-y: auto;
9
+ overflow-x: hidden;
10
+ border: 1px solid #e5e5e5;
11
+ box-shadow: 0 4px 10px #eee;
12
+ border-radius: 4px;
13
+ background: #fff;
14
+ color: #333;
15
+ z-index: 1080;
16
+ }
17
+
18
+ .seafile-menu-container .seafile-menu-item {
19
+ height: 32px;
20
+ line-height: 32px;
21
+ display: flex;
22
+ padding: 0 10px;
23
+ cursor: pointer;
24
+ position: relative;
25
+ }
26
+
27
+ .seafile-menu-container .seafile-menu-item:hover {
28
+ background-color: #f5f5f5;
29
+ }
30
+
31
+ .seafile-menu-container .seafile-menu-item .menu-item-icon {
32
+ margin-right: 5px;
33
+ color: #aaa;
34
+ }
35
+
36
+ .seafile-menu-container .seafile-menu-item .checked-icon {
37
+ position: absolute;
38
+ right: 10px;
39
+ height: 32px;
40
+ line-height: 32px;
41
+ color: #aaa;
42
+ }
@@ -0,0 +1,56 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
3
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
4
+ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
+ import React from 'react';
6
+
7
+ var Option = /*#__PURE__*/function (_React$Component) {
8
+ _inherits(Option, _React$Component);
9
+
10
+ var _super = _createSuper(Option);
11
+
12
+ function Option() {
13
+ var _this;
14
+
15
+ _classCallCheck(this, Option);
16
+
17
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
18
+ args[_key] = arguments[_key];
19
+ }
20
+
21
+ _this = _super.call.apply(_super, [this].concat(args));
22
+
23
+ _this.onClick = function (event) {
24
+ event.stopPropagation();
25
+ event.nativeEvent.stopImmediatePropagation();
26
+ var option = _this.props.option;
27
+
28
+ _this.props.onOptionChanged(option);
29
+ };
30
+
31
+ return _this;
32
+ }
33
+
34
+ _createClass(Option, [{
35
+ key: "render",
36
+ value: function render() {
37
+ var _this$props = this.props,
38
+ option = _this$props.option,
39
+ isActive = _this$props.isActive,
40
+ optionClass = _this$props.optionClass;
41
+ var className = "option-item ".concat(optionClass || '', " ").concat(isActive ? 'active' : '');
42
+ return /*#__PURE__*/React.createElement("span", {
43
+ className: className,
44
+ onClick: this.onClick
45
+ }, option.iconClass && /*#__PURE__*/React.createElement("span", {
46
+ className: "item-icon ".concat(option.iconClass)
47
+ }), /*#__PURE__*/React.createElement("span", {
48
+ className: "label"
49
+ }, option.label));
50
+ }
51
+ }]);
52
+
53
+ return Option;
54
+ }(React.Component);
55
+
56
+ export default Option;
@@ -0,0 +1,132 @@
1
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
4
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
5
+ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
6
+ import React from 'react';
7
+ import Menu from '../menu';
8
+ import { withTranslation } from 'react-i18next';
9
+ import TextIcon from '../svg-icons/text-icon';
10
+
11
+ var FieldSetting = /*#__PURE__*/function (_React$Component) {
12
+ _inherits(FieldSetting, _React$Component);
13
+
14
+ var _super = _createSuper(FieldSetting);
15
+
16
+ function FieldSetting(props) {
17
+ var _this;
18
+
19
+ _classCallCheck(this, FieldSetting);
20
+
21
+ _this = _super.call(this, props);
22
+
23
+ _this.onFontStyleClick = function () {
24
+ if (!_this.props.option) return;
25
+ var isShowMenu = _this.state.isShowMenu;
26
+
27
+ if (isShowMenu) {
28
+ _this.setState({
29
+ isShowMenu: false
30
+ });
31
+
32
+ return;
33
+ }
34
+
35
+ var container = _this.settingRef;
36
+
37
+ var _container$getBoundin = container.getBoundingClientRect(),
38
+ height = _container$getBoundin.height,
39
+ width = _container$getBoundin.width;
40
+
41
+ var position = {
42
+ height: height,
43
+ width: width
44
+ };
45
+
46
+ _this.setState({
47
+ isShowMenu: true,
48
+ position: position
49
+ });
50
+ };
51
+
52
+ _this.onBoldClick = function (event) {
53
+ event.stopPropagation();
54
+ var option = _this.props.option;
55
+
56
+ var newOption = _objectSpread(_objectSpread({}, option), {}, {
57
+ bold: !option.bold
58
+ });
59
+
60
+ _this.props.onUpdateOption(newOption);
61
+ };
62
+
63
+ _this.onItalicClick = function (event) {
64
+ event.stopPropagation();
65
+ var option = _this.props.option;
66
+
67
+ var newOption = _objectSpread(_objectSpread({}, option), {}, {
68
+ italic: !option.italic
69
+ });
70
+
71
+ _this.props.onUpdateOption(newOption);
72
+ };
73
+
74
+ _this.setSettingRef = function (ref) {
75
+ _this.settingRef = ref;
76
+ };
77
+
78
+ _this.state = {
79
+ isShowMenu: false,
80
+ position: {
81
+ top: 0,
82
+ left: 0
83
+ }
84
+ };
85
+ return _this;
86
+ }
87
+
88
+ _createClass(FieldSetting, [{
89
+ key: "render",
90
+ value: function render() {
91
+ var _this$props = this.props,
92
+ option = _this$props.option,
93
+ t = _this$props.t;
94
+ var isDisable = !option;
95
+
96
+ var _ref = option || {},
97
+ isBold = _ref.bold,
98
+ isItalic = _ref.italic;
99
+
100
+ var isShowMenu = this.state.isShowMenu;
101
+ var className = "option-item ".concat(isDisable ? 'disable' : '', " ").concat(isShowMenu ? 'active' : '', " field-setting");
102
+ return /*#__PURE__*/React.createElement("span", {
103
+ ref: this.setSettingRef,
104
+ className: className,
105
+ onClick: this.onFontStyleClick
106
+ }, /*#__PURE__*/React.createElement(TextIcon, {
107
+ width: "14",
108
+ color: isShowMenu ? '#fff' : '#aaa'
109
+ }), /*#__PURE__*/React.createElement("span", {
110
+ className: "label"
111
+ }, t('Font_style')), /*#__PURE__*/React.createElement("span", {
112
+ className: "icon-container"
113
+ }, /*#__PURE__*/React.createElement("span", {
114
+ className: "iconfont icon-caret-up op-icon"
115
+ })), isShowMenu && /*#__PURE__*/React.createElement(Menu, {
116
+ position: this.state.position
117
+ }, /*#__PURE__*/React.createElement(Menu.Item, {
118
+ iconClass: 'iconfont icon-bold',
119
+ isChecked: isBold,
120
+ onClick: this.onBoldClick
121
+ }, t('bold')), /*#__PURE__*/React.createElement(Menu.Item, {
122
+ iconClass: 'iconfont icon-italic',
123
+ isChecked: isItalic,
124
+ onClick: this.onItalicClick
125
+ }, t('italic'))));
126
+ }
127
+ }]);
128
+
129
+ return FieldSetting;
130
+ }(React.Component);
131
+
132
+ export default withTranslation('seafile-editor')(FieldSetting);
@@ -0,0 +1,163 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
3
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
4
+ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
+ import React from 'react';
6
+ import Option from './_option';
7
+ import FieldSetting from './field-setting';
8
+ import './style.css';
9
+
10
+ var Select = /*#__PURE__*/function (_React$Component) {
11
+ _inherits(Select, _React$Component);
12
+
13
+ var _super = _createSuper(Select);
14
+
15
+ function Select(props) {
16
+ var _this;
17
+
18
+ _classCallCheck(this, Select);
19
+
20
+ _this = _super.call(this, props);
21
+
22
+ _this.handleSelector = function (event) {
23
+ if (_this.selector && !_this.selector.contains(event.target)) {
24
+ _this.setState({
25
+ isShowSelector: false
26
+ });
27
+ }
28
+ };
29
+
30
+ _this.getCurrentOption = function () {
31
+ var _this$props = _this.props,
32
+ value = _this$props.value,
33
+ options = _this$props.options;
34
+ var currentOption = value && options.find(function (option) {
35
+ return option.value === value.value;
36
+ });
37
+ return currentOption;
38
+ };
39
+
40
+ _this.onSelectToggle = function (event) {
41
+ _this.setState({
42
+ isShowSelector: !_this.state.isShowSelector
43
+ });
44
+ };
45
+
46
+ _this.onChange = function (option) {
47
+ _this.setState({
48
+ isShowSelector: false,
49
+ currentOption: option
50
+ });
51
+
52
+ _this.props.onChange(option);
53
+ };
54
+
55
+ _this.onUpdateOption = function (option) {
56
+ _this.setState({
57
+ currentOption: option
58
+ });
59
+
60
+ _this.props.onChange(option);
61
+ };
62
+
63
+ _this.setContainerRef = function (ref) {
64
+ _this.dropdownContainer = ref;
65
+ };
66
+
67
+ _this.setSelectorRef = function (ref) {
68
+ _this.selector = ref;
69
+ };
70
+
71
+ _this.state = {
72
+ isShowSelector: false,
73
+ currentOption: _this.getCurrentOption()
74
+ };
75
+ _this.dropdownContainerHasInit = false;
76
+ return _this;
77
+ }
78
+
79
+ _createClass(Select, [{
80
+ key: "componentDidMount",
81
+ value: function componentDidMount() {
82
+ document.addEventListener('click', this.handleSelector);
83
+ }
84
+ }, {
85
+ key: "componentWillUnmount",
86
+ value: function componentWillUnmount() {
87
+ document.removeEventListener('click', this.handleSelector);
88
+ }
89
+ }, {
90
+ key: "componentDidUpdate",
91
+ value: function componentDidUpdate() {
92
+ var options = this.props.options;
93
+ var currentOption = this.state.currentOption;
94
+ var activeIndex = currentOption && options.findIndex(function (option) {
95
+ return option.value === currentOption.value;
96
+ });
97
+
98
+ if (activeIndex > -1) {
99
+ var scrollTop = 48 + (activeIndex + 1) * 32 - 150;
100
+ if (scrollTop < 0) return;
101
+
102
+ if (this.dropdownContainer && !this.dropdownContainerHasInit) {
103
+ this.dropdownContainerHasInit = true;
104
+ this.dropdownContainer.scrollTop = scrollTop;
105
+ }
106
+ }
107
+ }
108
+ }, {
109
+ key: "render",
110
+ value: function render() {
111
+ var _this2 = this;
112
+
113
+ var _this$props2 = this.props,
114
+ selectClass = _this$props2.selectClass,
115
+ optionClass = _this$props2.optionClass,
116
+ isSelected = _this$props2.isSelected,
117
+ options = _this$props2.options,
118
+ placeholder = _this$props2.placeholder;
119
+ var _this$state = this.state,
120
+ currentOption = _this$state.currentOption,
121
+ isShowSelector = _this$state.isShowSelector;
122
+ var isActive = isShowSelector || isSelected;
123
+ return /*#__PURE__*/React.createElement("span", {
124
+ ref: this.setSelectorRef,
125
+ className: "select-container ".concat(selectClass || '')
126
+ }, /*#__PURE__*/React.createElement("span", {
127
+ className: "control-container ".concat(isActive ? 'active' : ''),
128
+ onClick: this.onSelectToggle
129
+ }, !currentOption && /*#__PURE__*/React.createElement("span", {
130
+ className: "label placeholder"
131
+ }, placeholder), currentOption && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", {
132
+ className: "control-icon ".concat(currentOption.iconClass)
133
+ }), /*#__PURE__*/React.createElement("span", {
134
+ className: "control-label"
135
+ }, currentOption.label)), /*#__PURE__*/React.createElement("span", {
136
+ className: "operation"
137
+ }, /*#__PURE__*/React.createElement("i", {
138
+ className: "iconfont icon-drop-down arrow"
139
+ }))), isShowSelector && /*#__PURE__*/React.createElement("span", {
140
+ ref: this.setContainerRef,
141
+ className: "value-container"
142
+ }, /*#__PURE__*/React.createElement(FieldSetting, {
143
+ option: currentOption,
144
+ onUpdateOption: this.onUpdateOption
145
+ }), /*#__PURE__*/React.createElement("span", {
146
+ className: "option-item-divider"
147
+ }), options.map(function (option) {
148
+ var isActive = option.value === (currentOption && currentOption.value);
149
+ return /*#__PURE__*/React.createElement(Option, {
150
+ key: option.value,
151
+ optionClass: optionClass,
152
+ isActive: isActive,
153
+ option: option,
154
+ onOptionChanged: _this2.onChange
155
+ });
156
+ })));
157
+ }
158
+ }]);
159
+
160
+ return Select;
161
+ }(React.Component);
162
+
163
+ export default Select;
@@ -0,0 +1,149 @@
1
+ .select-container {
2
+ position: relative;
3
+ display: inline-block;
4
+ margin: 0 5px;
5
+ font-weight: normal;
6
+ }
7
+
8
+ .select-container .control-container {
9
+ display: inline-flex;
10
+ justify-content: center;
11
+ align-items: center;
12
+ border: 1px solid #ccc;
13
+ border-radius: 4px;
14
+ padding: 0 10px;
15
+ height: 24px;
16
+ font-size: 13px;
17
+ line-height: 1.5;
18
+ cursor: pointer;
19
+ user-select: none;
20
+ }
21
+
22
+ .select-container .control-container.active,
23
+ .select-container .control-container:hover {
24
+ border: 1px solid #3C88FD;
25
+ box-shadow: 0 0 0 2px rgb(70 127 207 / 25%);
26
+ }
27
+
28
+ .select-container .control-container .placeholder {
29
+ color: #BFBFBF;
30
+ }
31
+
32
+ .select-container .control-container .control-icon {
33
+ font-size: 13px;
34
+ color: rgb(170, 170, 170);
35
+ cursor: default;
36
+ margin-right: 5px;
37
+ }
38
+
39
+ .select-container .control-container .operation {
40
+ margin-left: 8px;
41
+ display: inline-flex;
42
+ align-items: center;
43
+ justify-content: center;
44
+ }
45
+
46
+ .select-container .control-container .arrow {
47
+ color: #949494;
48
+ display: inline-block;
49
+ font-size: 12px;
50
+ transform: scale(.8);
51
+ transition: all .1s;
52
+ }
53
+
54
+ .select-container .control-container .arrow:hover {
55
+ color: #666;
56
+ }
57
+
58
+ .select-container .value-container {
59
+ position: absolute;
60
+ left: 0;
61
+ display: flex;
62
+ min-width: 80px;
63
+ max-height: 150px;
64
+ overflow-x: hidden;
65
+ overflow-y: auto;
66
+ margin-top: 4px;
67
+ padding: 8px 0;
68
+ flex-direction: column;
69
+ border: 1px solid #e5e5e5;
70
+ box-shadow: 0 4px 10px #eee;
71
+ border-radius: 4px;
72
+ background: #fff;
73
+ z-index: 10;
74
+ scrollbar-width: none;
75
+ -ms-overflow-style: none;
76
+ }
77
+
78
+ .select-container .value-container::-webkit-scrollbar {
79
+ display: none;
80
+ }
81
+
82
+ .select-container .value-container .option-item {
83
+ flex-shrink: 0;
84
+ display: flex;
85
+ align-items: center;
86
+ min-width: 80px;
87
+ height: 32px;
88
+ padding: 0 12px;
89
+ cursor: pointer;
90
+ overflow-wrap: normal;
91
+ white-space: nowrap;
92
+ }
93
+
94
+ .select-container .value-container .option-item:hover {
95
+ background-color: #F5F5F5;
96
+ }
97
+
98
+ .select-container .value-container .option-item.active {
99
+ background-color: #39A0FF;
100
+ color: #fff;
101
+ }
102
+
103
+ .select-container .value-container .option-item.disable {
104
+ color: #aaa;
105
+ cursor: default;
106
+ }
107
+
108
+ .select-container .value-container .option-item .item-icon {
109
+ font-size: 14px;
110
+ color: rgb(170, 170, 170);
111
+ cursor: default;
112
+ }
113
+
114
+ .select-container .value-container .option-item.active .item-icon {
115
+ color: #fff;
116
+ }
117
+
118
+ .select-container .value-container .option-item .label {
119
+ margin: 0 5px;
120
+ }
121
+
122
+ .option-item.field-setting {
123
+ display: flex;
124
+ align-items: center;
125
+ position: relative;
126
+ }
127
+
128
+ .option-item.field-setting .icon-container {
129
+ position: absolute;
130
+ right: 10px;
131
+ display: flex;
132
+ align-items: center;
133
+ justify-content: center;
134
+ }
135
+
136
+ .option-item.field-setting .op-icon {
137
+ font-size: 12px;
138
+ transform: rotate(90deg);
139
+ color: #aaa;
140
+ }
141
+
142
+ .option-item.active.field-setting .op-icon {
143
+ color: #FFF;
144
+ }
145
+
146
+ .value-container .option-item-divider {
147
+ margin-top: 8px;
148
+ border-top: 1px solid #EFEFEF;
149
+ }