bkui-vue 2.0.1-beta.34 → 2.0.1-beta.34.scrollbar.1

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 (41) hide show
  1. package/dist/index.cjs.js +57 -57
  2. package/dist/index.esm.js +14138 -14147
  3. package/dist/index.umd.js +58 -58
  4. package/dist/style.css +1 -1
  5. package/dist/style.variable.css +1 -1
  6. package/lib/index.js +1 -1
  7. package/lib/scrollbar/handlers/click-rail.d.ts +2 -0
  8. package/lib/scrollbar/handlers/drag-thumb.d.ts +1 -0
  9. package/lib/scrollbar/handlers/keyboard.d.ts +2 -0
  10. package/lib/scrollbar/handlers/mouse-wheel.d.ts +2 -0
  11. package/lib/scrollbar/handlers/touch.d.ts +4 -0
  12. package/lib/scrollbar/helper/class-names.d.ts +21 -0
  13. package/lib/scrollbar/helper/css.d.ts +3 -0
  14. package/lib/scrollbar/helper/dom.d.ts +4 -0
  15. package/lib/scrollbar/helper/event-manager.d.ts +20 -0
  16. package/lib/scrollbar/helper/util.d.ts +11 -0
  17. package/lib/scrollbar/index.d.ts +129 -12
  18. package/lib/scrollbar/index.js +1336 -18488
  19. package/lib/scrollbar/process-scroll-diff.d.ts +1 -0
  20. package/lib/scrollbar/update-geometry.d.ts +8 -0
  21. package/lib/table/table.css +93 -82
  22. package/lib/table/table.variable.css +93 -82
  23. package/lib/tree/tree.css +94 -83
  24. package/lib/tree/tree.variable.css +94 -83
  25. package/lib/virtual-render/index.d.ts +0 -23
  26. package/lib/virtual-render/index.js +54 -106
  27. package/lib/virtual-render/props.d.ts +0 -6
  28. package/lib/virtual-render/use-scrollbar.d.ts +3 -17
  29. package/lib/virtual-render/virtual-render.css +93 -82
  30. package/lib/virtual-render/virtual-render.d.ts +2 -13
  31. package/lib/virtual-render/virtual-render.less +2 -11
  32. package/lib/virtual-render/virtual-render.variable.css +93 -82
  33. package/package.json +1 -1
  34. package/lib/scrollbar/scrollbar-core/can-use-dom.d.ts +0 -2
  35. package/lib/scrollbar/scrollbar-core/helpers.d.ts +0 -5
  36. package/lib/scrollbar/scrollbar-core/index.d.ts +0 -242
  37. package/lib/scrollbar/scrollbar-core/mouse-wheel.d.ts +0 -5
  38. package/lib/scrollbar/scrollbar-core/scrollbar-width.d.ts +0 -1
  39. package/lib/scrollbar/scrollbar.css +0 -224
  40. package/lib/scrollbar/scrollbar.less +0 -119
  41. package/lib/scrollbar/scrollbar.variable.css +0 -484
@@ -1,242 +0,0 @@
1
- import * as helpers from './helpers';
2
- interface DebouncedFunc<T extends (...args: any[]) => void> {
3
- /**
4
- * Call the original function, but applying the debounce rules.
5
- *
6
- * If the debounced function can be run immediately, this calls it and returns its return
7
- * value.
8
- *
9
- * Otherwise, it returns the return value of the last invocation, or undefined if the debounced
10
- * function was not invoked yet.
11
- */
12
- (...args: Parameters<T>): ReturnType<T> | undefined;
13
- /**
14
- * Throw away any pending invocation of the debounced function.
15
- */
16
- cancel(): void;
17
- /**
18
- * If there is a pending invocation of the debounced function, invoke it immediately and return
19
- * its return value.
20
- *
21
- * Otherwise, return the value from the last invocation, or undefined if the debounced function
22
- * was never invoked.
23
- */
24
- flush(): ReturnType<T> | undefined;
25
- }
26
- export interface Options {
27
- forceVisible: Axis | boolean;
28
- clickOnTrack: boolean;
29
- scrollbarMinSize: number;
30
- scrollbarMaxSize: number;
31
- classNames: Partial<ClassNames>;
32
- ariaLabel: string;
33
- contentNode: HTMLElement | null;
34
- delegateYContent: HTMLElement | null;
35
- delegateXContent: HTMLElement | null;
36
- wrapperNode: HTMLElement | null;
37
- autoHide: boolean;
38
- useSystemScrollXBehavior?: boolean;
39
- useSystemScrollYBehavior?: boolean;
40
- size: 'default' | 'small';
41
- scrollDelegate: {
42
- scrollHeight?: number;
43
- scrollWidth?: number;
44
- };
45
- onScrollCallback?: (args: {
46
- x: number;
47
- y: number;
48
- }) => void;
49
- }
50
- export type BkScrollBarOptions = Partial<Options>;
51
- type ClassNames = {
52
- contentEl: string;
53
- offset: string;
54
- mask: string;
55
- wrapper: string;
56
- placeholder: string;
57
- scrollbar: string;
58
- track: string;
59
- visible: string;
60
- horizontal: string;
61
- vertical: string;
62
- hover: string;
63
- dragging: string;
64
- scrolling: string;
65
- scrollable: string;
66
- mouseEntered: string;
67
- };
68
- type Axis = 'x' | 'y';
69
- type AxisProps = {
70
- scrollOffsetAttr: 'scrollLeft' | 'scrollTop';
71
- sizeAttr: 'height' | 'width';
72
- scrollSizeAttr: 'scrollHeight' | 'scrollWidth';
73
- offsetSizeAttr: 'offsetHeight' | 'offsetWidth';
74
- offsetAttr: 'left' | 'top';
75
- overflowAttr: 'overflowX' | 'overflowY';
76
- dragOffset: number;
77
- isOverflowing: boolean;
78
- forceVisible: boolean;
79
- track: {
80
- size: number;
81
- el: HTMLElement | null;
82
- rect: DOMRect | null;
83
- isVisible: boolean;
84
- };
85
- scrollbar: {
86
- size: number;
87
- el: HTMLElement | null;
88
- rect: DOMRect | null;
89
- isVisible: boolean;
90
- };
91
- };
92
- type RtlHelpers = {
93
- isScrollOriginAtZero: boolean;
94
- isScrollingToNegative: boolean;
95
- } | null;
96
- type DefaultOptions = Options & typeof BkScrollbarCore.defaultOptions;
97
- type MouseWheelInstance = {
98
- addWheelEvent: (target: HTMLElement) => void;
99
- removeWheelEvent: (target: HTMLElement) => void;
100
- };
101
- export default class BkScrollbarCore {
102
- static rtlHelpers: RtlHelpers;
103
- static defaultOptions: Options;
104
- /**
105
- * Static functions
106
- */
107
- static helpers: typeof helpers;
108
- /**
109
- * Helper to fix browsers inconsistency on RTL:
110
- * - Firefox inverts the scrollbar initial position
111
- * - IE11 inverts both scrollbar position and scrolling offset
112
- */
113
- static getRtlHelpers(): {
114
- isScrollOriginAtZero: boolean;
115
- isScrollingToNegative: boolean;
116
- };
117
- static getOffset(el: Element): {
118
- top: number;
119
- left: number;
120
- };
121
- el: HTMLElement;
122
- options: DefaultOptions;
123
- classNames: ClassNames;
124
- axis: {
125
- x: AxisProps;
126
- y: AxisProps;
127
- };
128
- draggedAxis?: Axis;
129
- removePreventClickId: null | number;
130
- minScrollbarWidth: number;
131
- stopScrollDelay: number;
132
- isScrolling: boolean;
133
- isMouseEntering: boolean;
134
- isDragging: boolean;
135
- scrollXTicking: boolean;
136
- scrollYTicking: boolean;
137
- wrapperEl: HTMLElement | null;
138
- contentEl: HTMLElement | null;
139
- delegateXContent: HTMLElement | null;
140
- delegateYContent: HTMLElement | null;
141
- rtlHelpers: RtlHelpers;
142
- scrollbarWidth: number;
143
- resizeObserver: ResizeObserver | null;
144
- mutationObserver: MutationObserver | null;
145
- elStyles: CSSStyleDeclaration | null;
146
- isRtl: boolean | null;
147
- mouseX: number;
148
- mouseY: number;
149
- mouseWheelInstance: MouseWheelInstance;
150
- wheelOffsetY: number;
151
- wheelOffsetX: number;
152
- mouseWeelTimer: any;
153
- /**
154
- * 最外层滚动容器滚动实际位置缓存器
155
- */
156
- wrapperScrollValue: {
157
- scrollTop: number;
158
- scrollLeft: number;
159
- };
160
- /**
161
- * 模拟滚动条内部缩略滚动器滚动位置缓存器
162
- */
163
- wrapperScrollMap: {};
164
- onMouseMove: (() => void) | DebouncedFunc<(...args: any[]) => void>;
165
- onWindowResize: (() => void) | DebouncedFunc<(...args: any[]) => void>;
166
- onStopScrolling: (() => void) | DebouncedFunc<(...args: any[]) => void>;
167
- onMouseEntered: (() => void) | DebouncedFunc<(...args: any[]) => void>;
168
- onMouseWheel: (() => void) | DebouncedFunc<(...args: any[]) => void>;
169
- constructor(element: HTMLElement, options?: Partial<Options>);
170
- getScrollbarWidth(): number;
171
- init(): void;
172
- initDOM(): void;
173
- initListeners(): void;
174
- getWrapperElScrollSize(attrName: string, target?: HTMLElement): any;
175
- recalculate(): void;
176
- /**
177
- * Calculate scrollbar size
178
- */
179
- getScrollbarSize(axis?: Axis): any;
180
- positionScrollbar(axis?: Axis): void;
181
- toggleTrackVisibility(axis?: Axis): void;
182
- showScrollbar(axis?: Axis): void;
183
- hideScrollbar(axis?: Axis): void;
184
- /**
185
- * On scroll event handling
186
- */
187
- onScroll: () => void;
188
- scrollX: () => void;
189
- scrollY: () => void;
190
- onMouseEnter: () => void;
191
- onMouseMoveForAxis(axis?: Axis): void;
192
- onMouseLeave: () => void;
193
- onMouseLeaveForAxis(axis?: Axis): void;
194
- onPointerEvent: (e: PointerEvent) => void;
195
- /**
196
- * on scrollbar handle drag movement starts
197
- */
198
- onDragStart(e: MouseEvent, axis?: Axis): void;
199
- /**
200
- * Drag scrollbar handle
201
- */
202
- drag: (e: MouseEvent) => void;
203
- getPointerPosition: (dragPos: number, axis: Axis) => number;
204
- scrollToAxisPosition: (scrollPos: number, axisValue: Axis) => boolean;
205
- fixedScrollTo: (axisValue: Axis, resolvedValue: number) => void;
206
- /**
207
- * End scroll handle drag
208
- */
209
- onEndDrag: (e: MouseEvent) => void;
210
- /**
211
- * Handler to ignore click events during drag
212
- */
213
- preventClick: (e: MouseEvent) => void;
214
- onTrackClick(e: MouseEvent, axis?: Axis): void;
215
- /**
216
- * Getter for content element
217
- */
218
- getContentElement(): HTMLElement;
219
- /**
220
- * Getter for original scrolling element
221
- */
222
- getScrollElement(): HTMLElement;
223
- removeListeners(): void;
224
- /**
225
- * Remove all listeners from DOM nodes
226
- */
227
- unMount(): void;
228
- /**
229
- * Check if mouse is within bounds
230
- */
231
- isWithinBounds(bbox: DOMRect): boolean;
232
- /**
233
- * Find element children matches query
234
- */
235
- findChild(el: HTMLElement, query: string): any;
236
- private mOnMouseWheel;
237
- private mOnStopScrolling;
238
- private mOnMouseEntered;
239
- private mOnMouseMove;
240
- private mOnWindowResize;
241
- }
242
- export {};
@@ -1,5 +0,0 @@
1
- declare const _default: (fn: any) => {
2
- addWheelEvent: (target: HTMLElement) => void;
3
- removeWheelEvent: (target: HTMLElement) => void;
4
- };
5
- export default _default;
@@ -1 +0,0 @@
1
- export default function scrollbarWidth(): number;
@@ -1,224 +0,0 @@
1
- :root {
2
- --bk-prefix: bk;
3
- --popover-max-height: 216px;
4
- --primary-color: #3a84ff;
5
- --success-color: #2dcb56;
6
- --warning-color: #ff9c01;
7
- --danger-color: #ea3636;
8
- --default-color: #63656e;
9
- --gray-color: #979ba5;
10
- --light-gray: #c4c6cc;
11
- --white-color: white;
12
- --whitesmoke-color: #fafbfd;
13
- --disable-color: #dcdee5;
14
- --disable-bg-color: #f9fafd;
15
- --border-color: #dcdee5;
16
- --font-size-base: 12px;
17
- --font-size-medium: 14px;
18
- --font-size-large: 16px;
19
- --line-height-base: 16px;
20
- --line-height-medium: 16px;
21
- --line-height-large: 18px;
22
- --component-size-small: 26px;
23
- --component-size-base: 32px;
24
- --component-size-large: 40px;
25
- --component-size-small-padding: 0 12px;
26
- --component-size-base-padding: 0 14px;
27
- --component-size-large-padding: 0 16px;
28
- --border-width-base: 1px;
29
- --border-style-base: solid;
30
- --border-radius-base: 2px;
31
- --border-style-color: var(--light-gray);
32
- --input-disabled-bg: #fafbfd;
33
- --input-disabled-border: var(--disable-color);
34
- --input-height-base: var(--component-size-base);
35
- --input-color: var(--default-color);
36
- --input-bg: white;
37
- --input-border-color: var(--light-gray);
38
- --input-broder-radius: 3px;
39
- --input-shadow-color: #a3c5fd;
40
- --input-horizontal-padding: 8px;
41
- --input-block-color: #f5f7fa;
42
- --input-block-hover-color: #eaebf0;
43
- --input-icon-size: var(--font-size-medium);
44
- --input-maxlength-color: #979ba5;
45
- --button-primary-hover-color: #5594fa;
46
- --button-danger-hover-color: #ff5656;
47
- --button-success-hover-color: #45e35f;
48
- --button-warning-hover-color: #ffb848;
49
- --button-default-hover-border-color: #979ba5;
50
- --button-primary-active-color: #2c77f4;
51
- --button-danger-active-color: #db2626;
52
- --button-success-active-color: #1ab943;
53
- --button-warning-active-color: #eb9000;
54
- --button-selected-bg-color: #e1ecff;
55
- --button-disabled-selected-bg-color: #f0f1f5;
56
- --radio-font-color: #63656e;
57
- --radio-active-color: #3a84ff;
58
- --radio-hover-border-color: #979ba5;
59
- --radio-disabled-border: #dcdee5;
60
- --radio-disabled-font-color: #c4c6cc;
61
- --radio-disabled-checked-bg: #a3c5fd;
62
- --radio-button-checked-bg: #e1ecff;
63
- --radio-button-disabled-checked-bg: #fafbfd;
64
- --checkbox-disabled-checked-bg: #a3c5fd;
65
- --fixed-navbar-background: #fff;
66
- --fixed-navbar-boxshadow-color: rgba(0, 0, 0, 0.1);
67
- --switch-default-color: #fff;
68
- --switch-grey-color: #c4c6cc;
69
- --breadcrumb-black-color: #979ba5;
70
- --breadcrumb-primary-hover-color: #0082ff;
71
- --breadcrumb-fn-main-color: #63656e;
72
- --link-default-hover-color: #979ba5;
73
- --link-primary-hover-color: #699df4;
74
- --link-success-hover-color: #45e35f;
75
- --link-warning-hover-color: #ffb848;
76
- --link-danger-hover-color: #ff5656;
77
- --link-default-disabled-color: #dcdee5;
78
- --link-primary-disabled-color: #a3c5fd;
79
- --link-success-disabled-color: #94f5a4;
80
- --link-warning-disabled-color: #ffd695;
81
- --link-danger-disabled-color: #fd9c9c;
82
- --message-color: var(--default-color);
83
- --message-primary-bg-color: #f0f8ff;
84
- --message-primary-border-color: #e1ecff;
85
- --message-primary-shadow-color: #e1e8f4;
86
- --message-warning-bg-color: #fff4e2;
87
- --message-warning-border-color: #ffe8c3;
88
- --message-warning-shadow-color: #ede6db;
89
- --message-success-bg-color: #f2fff4;
90
- --message-success-border-color: #dcffe2;
91
- --message-success-shadow-color: #cef0d7;
92
- --message-danger-bg-color: #ffeded;
93
- --message-danger-border-color: #ffdddd;
94
- --message-danger-shadow-color: #f6dada;
95
- --slider-default-bg: #dcdee5;
96
- --slider-disable-bar-bg: #979ba5;
97
- --menu-bg-color: #182132;
98
- --submenu-bg-color: #151d2c;
99
- --menu-active-bg-color: linear-gradient(90deg, #3f87ff 0%, #3a84ff 100%);
100
- --menu-color: #96a2b9;
101
- --menu-group-color: var(--default-color);
102
- --menu-width: 260px;
103
- --menu-collapse-width: 60px;
104
- --menu-active-color: white;
105
- --nav-header-bg-color: #182132;
106
- --nav-bg-color: #182132;
107
- --date-picker-disabled-bg: #fafbfd;
108
- --date-picker-dropdown-mb: 4px;
109
- --date-picker-dropdown-bg: #fff;
110
- --table-bg-color: var(--white-color);
111
- --table-border-color: #dcdee5;
112
- --table-strip-color: #fafbfd;
113
- --table-head-bg-color: #fafbfd;
114
- --table-head-font-color: #313238;
115
- --table-body-font-color: #63656e;
116
- --table-row-hover-bg-color: #f5f7fa;
117
- --table-row-active-bg-color: #f0f1f5;
118
- --cascader-panel-border-color: #dcdee5;
119
- --cascader-panel-hover: #f5f7fa;
120
- --cascader-panel-active: #e1ecff;
121
- --cascader-panel-disabled-bg: #fff;
122
- --search-select-focus-border-color: var(--primary-color);
123
- --search-select-focus-color: #3c96ff;
124
- --search-select-font-color: var(--default-color);
125
- --search-select-placeholder-color: var(--light-gray);
126
- --search-select-message-color: var(--danger-color);
127
- --search-select-menu-border-color: var(--disable-color);
128
- --select-active-color: #e1ecff;
129
- --select-hover-color: #f5f7fa;
130
- }
131
- .bk-scrollbar-wrapper {
132
- position: relative;
133
- overflow: hidden;
134
- }
135
- .bk-scrollbar-wrapper .bk-scrollbar-content-el {
136
- display: inline-flex;
137
- flex-direction: column;
138
- width: 100%;
139
- }
140
- .bk-scrollbar-wrapper .bk-scrollbar-track {
141
- z-index: 1;
142
- position: absolute;
143
- right: 0;
144
- bottom: 0;
145
- pointer-events: none;
146
- overflow: hidden;
147
- }
148
- .bk-scrollbar-wrapper .bk-scrollbar-track.track-small.bk-scrollbar-vertical {
149
- width: 6px;
150
- }
151
- .bk-scrollbar-wrapper .bk-scrollbar-track.track-small.bk-scrollbar-vertical.bk-scrollbar-hover {
152
- width: 8px;
153
- }
154
- .bk-scrollbar-wrapper .bk-scrollbar-track.track-small.bk-scrollbar-horizontal {
155
- height: 6px;
156
- }
157
- .bk-scrollbar-wrapper .bk-scrollbar-track.track-small.bk-scrollbar-horizontal.bk-scrollbar-hover {
158
- height: 8px;
159
- }
160
- .bk-scrollbar-wrapper .bk-scrollbar-track.bk-scrollbar-hover {
161
- background-color: #f0f1f5;
162
- cursor: pointer;
163
- }
164
- .bk-scrollbar-wrapper .bk-scrollbar-track.bk-scrollbar-hover .bk-scrollbar::before {
165
- background-color: #979ba5;
166
- }
167
- .bk-scrollbar-wrapper .bk-scrollbar-track.bk-scrollbar-vertical {
168
- top: 0;
169
- width: 8px;
170
- transform: translate(var(--scroll-offset-x), var(--scroll-offset-y));
171
- }
172
- .bk-scrollbar-wrapper .bk-scrollbar-track.bk-scrollbar-vertical.bk-scrollbar-hover {
173
- width: 10px;
174
- }
175
- .bk-scrollbar-wrapper .bk-scrollbar-track.bk-scrollbar-horizontal {
176
- left: 0;
177
- height: 8px;
178
- transform: translate(var(--scroll-offset-x), var(--scroll-offset-y));
179
- }
180
- .bk-scrollbar-wrapper .bk-scrollbar-track.bk-scrollbar-horizontal.bk-scrollbar-hover {
181
- height: 10px;
182
- }
183
- .bk-scrollbar-wrapper .bk-scrollbar-track.bk-scrollbar-horizontal.bk-scrollbar {
184
- right: auto;
185
- left: 0;
186
- top: 0;
187
- bottom: 0;
188
- min-height: 0;
189
- min-width: 8px;
190
- width: auto;
191
- }
192
- .bk-scrollbar-wrapper .bk-scrollbar-dragging {
193
- pointer-events: none;
194
- -webkit-touch-callout: none;
195
- -webkit-user-select: none;
196
- -khtml-user-select: none;
197
- -moz-user-select: none;
198
- -ms-user-select: none;
199
- user-select: none;
200
- }
201
- .bk-scrollbar-wrapper .bk-scrollbar {
202
- position: absolute;
203
- left: 0;
204
- right: 0;
205
- top: 0;
206
- bottom: 0;
207
- }
208
- .bk-scrollbar-wrapper .bk-scrollbar::before {
209
- position: absolute;
210
- content: '';
211
- background: #dcdee5;
212
- border-radius: 6px;
213
- left: 0;
214
- right: 0;
215
- top: 0;
216
- bottom: 0;
217
- opacity: 0;
218
- transition: opacity 0.2s 0.9s linear;
219
- }
220
- .bk-scrollbar-wrapper .bk-scrollbar.bk-scrollbar-visible::before {
221
- opacity: 0.9;
222
- transition-delay: 0s;
223
- transition-duration: 0s;
224
- }
@@ -1,119 +0,0 @@
1
- @import '../styles/themes/themes.less';
2
-
3
- .@{bk-prefix}-scrollbar-wrapper {
4
- position: relative;
5
- overflow: hidden;
6
-
7
- .@{bk-prefix}-scrollbar-content-el {
8
- display: inline-flex;
9
- flex-direction: column;
10
- width: 100%;
11
- }
12
-
13
- .@{bk-prefix}-scrollbar-track {
14
- z-index: 1;
15
- position: absolute;
16
- right: 0;
17
- bottom: 0;
18
- pointer-events: none;
19
- overflow: hidden;
20
-
21
- &.track-small {
22
- &.@{bk-prefix}-scrollbar-vertical {
23
- width: 6px;
24
-
25
- &.@{bk-prefix}-scrollbar-hover {
26
- width: 8px;
27
- }
28
- }
29
-
30
- &.@{bk-prefix}-scrollbar-horizontal {
31
- height: 6px;
32
-
33
- &.@{bk-prefix}-scrollbar-hover {
34
- height: 8px;
35
- }
36
- }
37
- }
38
-
39
- &.@{bk-prefix}-scrollbar-hover {
40
- background-color: #f0f1f5;
41
- cursor: pointer;
42
-
43
- .@{bk-prefix}-scrollbar {
44
- &::before {
45
- background-color: #979ba5;
46
- }
47
- }
48
- }
49
-
50
- &.@{bk-prefix}-scrollbar-vertical {
51
- top: 0;
52
- width: 8px;
53
- transform: translate(var(--scroll-offset-x), var(--scroll-offset-y));
54
-
55
- &.@{bk-prefix}-scrollbar-hover {
56
- width: 10px;
57
- }
58
- }
59
-
60
- &.@{bk-prefix}-scrollbar-horizontal {
61
- left: 0;
62
- height: 8px;
63
- transform: translate(var(--scroll-offset-x), var(--scroll-offset-y));
64
-
65
- &.@{bk-prefix}-scrollbar-hover {
66
- height: 10px;
67
- }
68
-
69
- &.@{bk-prefix}-scrollbar {
70
- right: auto;
71
- left: 0;
72
- top: 0;
73
- bottom: 0;
74
- min-height: 0;
75
- min-width: 8px;
76
- width: auto;
77
- }
78
- }
79
- }
80
-
81
- .@{bk-prefix}-scrollbar-dragging {
82
- pointer-events: none;
83
- -webkit-touch-callout: none;
84
- -webkit-user-select: none;
85
- -khtml-user-select: none;
86
- -moz-user-select: none;
87
- -ms-user-select: none;
88
- user-select: none;
89
- }
90
-
91
- .@{bk-prefix}-scrollbar {
92
- position: absolute;
93
- left: 0;
94
- right: 0;
95
- top: 0;
96
- bottom: 0;
97
-
98
- &::before {
99
- position: absolute;
100
- content: '';
101
- background: #dcdee5;
102
- border-radius: 6px;
103
- left: 0;
104
- right: 0;
105
- top: 0;
106
- bottom: 0;
107
- opacity: 0;
108
- transition: opacity 0.2s 0.9s linear;
109
- }
110
-
111
- &.@{bk-prefix}-scrollbar-visible {
112
- &::before {
113
- opacity: 0.9;
114
- transition-delay: 0s;
115
- transition-duration: 0s;
116
- }
117
- }
118
- }
119
- }