@mdsfe/mds-ui 0.2.0 → 0.2.9-rc.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.
- package/CHANGELOG.md +178 -0
- package/README.md +9 -9
- package/dist/_mixin/popper.js +1 -0
- package/dist/_util/_popper/dom-helper.js +284 -0
- package/dist/_util/_popper/popper-mixin.js +35 -0
- package/dist/_util/_popper/popper.js +1267 -0
- package/dist/_util/_popper/popup/popup-main.js +224 -0
- package/dist/_util/_popper/popup/popup-manager.js +205 -0
- package/dist/_util/_popper/vue-popper.js +204 -0
- package/dist/_util/popup/index.js +1 -1
- package/dist/_util/tree/node.js +2 -0
- package/dist/_util/tree/tree.js +65 -21
- package/dist/_util/util.js +29 -1
- package/dist/affix.js +18 -18
- package/dist/anchor.js +18 -18
- package/dist/avatar.js +17 -17
- package/dist/backtop.js +19 -19
- package/dist/badge.js +21 -21
- package/dist/bordershadow.js +20 -9
- package/dist/breadcrumb.js +18 -18
- package/dist/button.js +21 -21
- package/dist/card.js +18 -18
- package/dist/carousel.js +76 -76
- package/dist/cascader.js +4980 -0
- package/dist/cascaderpanel.js +645 -603
- package/dist/checkbox.js +23 -23
- package/dist/col.js +14 -14
- package/dist/collapse.js +6 -6
- package/dist/color.js +6 -6
- package/dist/datepicker.js +2487 -266
- package/dist/divider.js +19 -19
- package/dist/drawer.js +787 -37
- package/dist/dropdown.js +150 -104
- package/dist/empty.js +19 -19
- package/dist/font/iconfont.28359fa.ttf +0 -0
- package/dist/font/iconfont.486e3d3.woff2 +0 -0
- package/dist/font/iconfont.675049e.woff +0 -0
- package/dist/font.js +6 -6
- package/dist/form.js +28 -26
- package/dist/icon.js +55 -47
- package/dist/index.js +1 -1
- package/dist/input.js +65 -49
- package/dist/inputnumber.js +59 -39
- package/dist/layout.js +25 -25
- package/dist/list.js +17 -17
- package/dist/loading.js +21 -8
- package/dist/mds-ui.min.css +3 -3
- package/dist/mds-ui.min.js +19183 -15407
- package/dist/menu.js +31 -31
- package/dist/message.js +773 -24
- package/dist/modal.js +1146 -307
- package/dist/notification.js +27 -27
- package/dist/pagination.js +78 -55
- package/dist/popconfirm.js +36 -36
- package/dist/popover.js +2778 -48
- package/dist/progress.js +107 -65
- package/dist/radio.js +56 -54
- package/dist/rate.js +67 -59
- package/dist/row.js +14 -14
- package/dist/select.js +847 -503
- package/dist/slider.js +25 -25
- package/dist/slottable.js +2663 -129
- package/dist/steps.js +18 -18
- package/dist/style/affix.css +224 -2
- package/dist/style/anchor.css +224 -2
- package/dist/style/avatar.css +224 -2
- package/dist/style/badge.css +224 -2
- package/dist/style/bordershadow.css +236 -59
- package/dist/style/breadcrumb.css +224 -2
- package/dist/style/button.css +234 -5
- package/dist/style/card.css +224 -2
- package/dist/style/carousel.css +224 -2
- package/dist/style/cascader.css +214 -0
- package/dist/style/cascaderpanel.css +13 -16
- package/dist/style/checkbox.css +230 -8
- package/dist/style/col.css +225 -3
- package/dist/style/collapse.css +224 -2
- package/dist/style/color.css +224 -2
- package/dist/style/datepicker.css +236 -2
- package/dist/style/divider.css +227 -2
- package/dist/style/drawer.css +224 -2
- package/dist/style/dropdown.css +234 -5
- package/dist/style/empty.css +224 -2
- package/dist/style/font.css +226 -4
- package/dist/style/form.css +224 -2
- package/dist/style/icon.css +226 -3
- package/dist/style/input.css +231 -5
- package/dist/style/inputnumber.css +224 -2
- package/dist/style/layout.css +224 -2
- package/dist/style/list.css +224 -2
- package/dist/style/loading.css +2527 -2
- package/dist/style/menu.css +340 -129
- package/dist/style/message.css +1 -4
- package/dist/style/modal.css +247 -25
- package/dist/style/notification.css +224 -2
- package/dist/style/pagination.css +236 -7
- package/dist/style/popconfirm.css +334 -180
- package/dist/style/popover.css +324 -177
- package/dist/style/progress.css +226 -3
- package/dist/style/radio.css +225 -3
- package/dist/style/rate.css +226 -3
- package/dist/style/row.css +225 -3
- package/dist/style/select.css +240 -12
- package/dist/style/slider.css +224 -2
- package/dist/style/slottable.css +350 -149
- package/dist/style/steps.css +224 -2
- package/dist/style/switch.css +224 -2
- package/dist/style/table.css +458 -314
- package/dist/style/tabs.css +225 -18
- package/dist/style/tag.css +224 -2
- package/dist/style/text.css +224 -2
- package/dist/style/timeline.css +224 -2
- package/dist/style/timepicker.css +231 -6
- package/dist/style/tooltip.css +340 -129
- package/dist/style/tree.css +228 -6
- package/dist/style/typography.css +224 -2
- package/dist/style/upload.css +224 -2
- package/dist/switch.js +20 -20
- package/dist/table.js +3071 -201
- package/dist/tabs.js +24 -22
- package/dist/tag.js +17 -23
- package/dist/text.js +38 -22
- package/dist/timeline.js +14 -14
- package/dist/timepicker.js +3063 -172
- package/dist/tooltip.js +2550 -27
- package/dist/transfer.js +28 -28
- package/dist/transition.js +6 -6
- package/dist/tree.js +316 -171
- package/dist/typography.js +6 -6
- package/dist/upload.js +46 -38
- package/package.json +9 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,181 @@
|
|
|
1
|
+
## [0.2.8](http://igit.58corp.com/matrix/mds-ui/compare/v0.2.7...v0.2.8) (2023-01-12)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* 🎸 重构 ShadowBorder边与阴影 部分基础实现及关联用例
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
* 🐛 修复 Input组件 若干问题
|
|
10
|
+
* `maxlength`属性无效的问题
|
|
11
|
+
* `clearable`时的基础样式
|
|
12
|
+
* value变化时`autosize`属性没有随之生效的问题
|
|
13
|
+
* 🐛 修复 Select组件 若干问题
|
|
14
|
+
* 选择框初次渲染动画方向不正确的问题
|
|
15
|
+
* 去除多余`console`
|
|
16
|
+
* 🐛 修复 ShadowBorder组件 全局定义样式导致的引用覆盖问题
|
|
17
|
+
* 🐛 修复 Cascader级联组件 多选无法删除的问题
|
|
18
|
+
|
|
19
|
+
### Performance Improvements
|
|
20
|
+
* ⚡️ 更改`text-decoration-skip-ink`全局赋值
|
|
21
|
+
* ⚡️ 优化部分lint警告
|
|
22
|
+
## [0.2.7](http://igit.58corp.com/matrix/mds-ui/compare/v0.2.6...v0.2.7) (2022-11-22)
|
|
23
|
+
|
|
24
|
+
### Features
|
|
25
|
+
|
|
26
|
+
* 🎸 增加 分页组件`pageSizesSeat`属性
|
|
27
|
+
* 🎸 扩展 Icon业务定义图标并优化用例分类
|
|
28
|
+
|
|
29
|
+
### Bug Fixes
|
|
30
|
+
|
|
31
|
+
* 🐛 修复icon实例引发的开发环境报错
|
|
32
|
+
* 🐛 修复`cascader`初次触发表单验证
|
|
33
|
+
* 🐛 修复更改`pagesizes`时组件内部报错的问题
|
|
34
|
+
* 🐛 修复`divider`路径引用异常
|
|
35
|
+
|
|
36
|
+
## [0.2.6](http://igit.58corp.com/matrix/mds-ui/compare/v0.2.5...v0.2.6) (2022-09-26)
|
|
37
|
+
|
|
38
|
+
### Features
|
|
39
|
+
|
|
40
|
+
* 🎸 扩展 Modal弹窗 添加`disabled-scroll`属性,用于控制显现时body是否可滚动
|
|
41
|
+
* 🎸 扩展 Drawer抽屉 添加`pre-focus`属性控制是否恢复打开抽屉前元素的焦点
|
|
42
|
+
* 🎸 扩展 Loading组件 添加自定义类名
|
|
43
|
+
|
|
44
|
+
* 🎸 扩展 Icon图标库
|
|
45
|
+
* 新增业务定义图标风格
|
|
46
|
+
* 新增线性图标`line-doc`
|
|
47
|
+
|
|
48
|
+
### Bug Fixes
|
|
49
|
+
|
|
50
|
+
* 🐛 修复upload上传组件`onBeforeUpload`属性文档
|
|
51
|
+
* 🐛 修复tabs初始化抖动的问题
|
|
52
|
+
* 🐛 解决loading组件中事件无法穿透的问题
|
|
53
|
+
* 🐛 修复组件css中svg路径找不到的问题
|
|
54
|
+
|
|
55
|
+
## [0.2.5](http://igit.58corp.com/matrix/mds-ui/compare/v0.2.4...v0.2.5) (2022-05-06)
|
|
56
|
+
|
|
57
|
+
### Features
|
|
58
|
+
|
|
59
|
+
* 🎸 扩展 TimePicker 时间选择框
|
|
60
|
+
* 增加`mintime`和`maxtime`属性
|
|
61
|
+
* 输入框抽离出`popper`
|
|
62
|
+
* 修改默认宽度
|
|
63
|
+
|
|
64
|
+
### Bug Fixes
|
|
65
|
+
|
|
66
|
+
* 🐛 修复 `timepicker`空值时,`mintime`无效的问题
|
|
67
|
+
* 🐛 修复 级联组件 文档中`expand-change`事件大小写的问题
|
|
68
|
+
* 🐛 统一修复`popper`额外类名问题
|
|
69
|
+
|
|
70
|
+
## [0.2.4](http://igit.58corp.com/matrix/mds-ui/compare/v0.2.3...v0.2.4) (2022-03-31)
|
|
71
|
+
### Features
|
|
72
|
+
|
|
73
|
+
* 🎸 扩展 Dropdown组件 添加`visible-change`事件
|
|
74
|
+
* 🎸 扩展 Select组件 添加`inputType`属性
|
|
75
|
+
* 🎸 扩展 SlotTable 添加`resize-width`属性
|
|
76
|
+
* 🎸 扩展 TimePicker组件 分钟面板增加`step`属性
|
|
77
|
+
* 🎸 扩展 Cascader级联面板组件
|
|
78
|
+
* 树形级联组件新增搜索功能
|
|
79
|
+
* `tree`模式添加`disabled`属性
|
|
80
|
+
|
|
81
|
+
### Bug Fixes
|
|
82
|
+
|
|
83
|
+
* 🐛 解决 Drawer组件 在v-if控制下`append-to-body`属性不生效的问题
|
|
84
|
+
* 🐛 修复 Dropdown组件 `trigger`为click时,`visiblechange`事件无效的问题
|
|
85
|
+
* 🐛 修复 checkbox组件 偶现对勾错位的问题
|
|
86
|
+
* 🐛 修复 select组件 `type`参数赋值异常
|
|
87
|
+
* 🐛 修复 pagination分页器显示错误的问题
|
|
88
|
+
* 🐛 修复 select组件 多选模式下`option`超长时覆盖勾选图标的问题
|
|
89
|
+
* 🐛 修复 多选状态叶子节点不展开面板的问题
|
|
90
|
+
* 🐛 修复 upload组件 非图片类型文件可预览的问题
|
|
91
|
+
* 🐛 修复 message组件 英文超长的问题
|
|
92
|
+
* 🐛 修复 upload组件 超限后`change`事件无效的问题
|
|
93
|
+
* 🐛 修复 不同尺寸button的样式问题
|
|
94
|
+
* 🐛 修复 树节点相关状态校验
|
|
95
|
+
* 🐛 修复 树形级联框添加tag光标没有`focus`的问题
|
|
96
|
+
* 🐛 修复 级联树默认`placeholder`
|
|
97
|
+
* 🐛 修复 上传组件 `upload`方法无效的问题
|
|
98
|
+
* 🐛 解决 vue版本冲突导致的报错
|
|
99
|
+
|
|
100
|
+
### Performance Improvements
|
|
101
|
+
|
|
102
|
+
* ⚡️ 优化 Tree树组件 `setCheckedKeys`及`setChecked`方法,并修改其文档
|
|
103
|
+
* ⚡️ 优化 Tooltip组件 `light`模式下的样式
|
|
104
|
+
* ⚡️ 优化 Select组件 多选标签的间距
|
|
105
|
+
* ⚡️ 优化 Select组件 箭头交互样式
|
|
106
|
+
|
|
107
|
+
## [0.2.3](http://igit.58corp.com/matrix/mds-ui/compare/v0.2.2...v0.2.3) (2022-02-26)
|
|
108
|
+
|
|
109
|
+
### Features
|
|
110
|
+
|
|
111
|
+
* 🎸 重构popover实例
|
|
112
|
+
* Popover组件逻辑实现及交互用例
|
|
113
|
+
* 解决 `drawer`,`tooltip`,`popover`,`modal`,`message`对应组件层级不统一问题
|
|
114
|
+
* 🎸 扩展 Progress进度条组件 属性`track-color`,自定义进度条底色
|
|
115
|
+
|
|
116
|
+
### Bug Fixes
|
|
117
|
+
|
|
118
|
+
* 🐛 修复 Popover气泡卡片组件 `$destroy`未找到的问题
|
|
119
|
+
* 🐛 修复 Popover气泡卡片组件 箭头显示状态不更新的问题
|
|
120
|
+
* 🐛 修复 Radio单选框 初次渲染触发`change`事件的问题
|
|
121
|
+
* 🐛 修复 Checkbox复选框 `change`事件未抛出当前变更元素状态的问题
|
|
122
|
+
* 🐛 修复 Drawer组件 `maskClosable`属性不生效的问题
|
|
123
|
+
* 🐛 修复 Loading加载组件 `rotate`动画无效的问题
|
|
124
|
+
* 🐛 修复 Cascader多级级联面板 超出视口的问题
|
|
125
|
+
* 🐛 修复 Tooltip组件 弹出`popper`时控制台报错的问题
|
|
126
|
+
* 🐛 修复 Progress进度组件 `type`为`circle`时,`strokeWidth`属性无效的问题
|
|
127
|
+
* 🐛 修复 Cascader级联组件 `v-modal`异步赋值不生效及多选时`placeholder`不生效的问题
|
|
128
|
+
* 🐛 修复 Loading加载组件 `rotate`动画无效的问题
|
|
129
|
+
### Performance Improvements
|
|
130
|
+
|
|
131
|
+
* ⚡️ 优化 Tree树组件 `setCheckedKeys`及`setChecked`方法,并修改其文档
|
|
132
|
+
* ⚡️ 微调 Tree组件`mode`样式
|
|
133
|
+
|
|
134
|
+
## [0.2.2](http://igit.58corp.com/matrix/mds-ui/compare/v0.2.1...v0.2.2) (2022-01-19)
|
|
135
|
+
|
|
136
|
+
### Features
|
|
137
|
+
|
|
138
|
+
* 🎸 扩展 Button按钮组件 `a-text`属性
|
|
139
|
+
* 🎸 扩展 Icon图标组件 线性开发工具类`16`
|
|
140
|
+
|
|
141
|
+
### Bug Fixes
|
|
142
|
+
|
|
143
|
+
* 🐛 修复 Input输入框组件 `cursor`交互样式
|
|
144
|
+
* 🐛 修复 Loading加载组件 `rotate`动画无效的问题
|
|
145
|
+
* 🐛 修复 Form表单组件 不需校验的项未在`rules`中定义导致校验失败的问题
|
|
146
|
+
|
|
147
|
+
### Performance Improvements
|
|
148
|
+
|
|
149
|
+
* ⚡️ 修改 Datepicker日期选择器组件 `type`为`datetimerange`时,日期图标后置
|
|
150
|
+
* ⚡️ 优化 官网增加`backtop`交互
|
|
151
|
+
* ⚡️ 升级 vue版本,并修改`$attrs`报错
|
|
152
|
+
* ⚡️ 优化 部分组件样式,UI走查微调
|
|
153
|
+
|
|
154
|
+
## [0.2.1](http://igit.58corp.com/matrix/mds-ui/compare/v0.2.0...v0.2.1) (2021-12-20)
|
|
155
|
+
|
|
156
|
+
### Features
|
|
157
|
+
|
|
158
|
+
* 🎸 重构 Tooltip提示组件
|
|
159
|
+
* 基本实现重构
|
|
160
|
+
* 修复`render`函数作用域问题导致的胜场环境无效
|
|
161
|
+
* 修复`tooltip`的闪现问题
|
|
162
|
+
* 🎸 扩展 SlotTable表格组件
|
|
163
|
+
* 去除显示`tooltip`时的默认样式
|
|
164
|
+
* 添加`tooltipOptions`属性
|
|
165
|
+
* 自行配置`tooltip`组件`props`
|
|
166
|
+
* 🎸 新增 InputNumber数字输入框 `step-strictly`属性
|
|
167
|
+
### Bug Fixes
|
|
168
|
+
|
|
169
|
+
* 🐛 修复 popper目录位置不对造成的打包问题
|
|
170
|
+
* 🐛 修复 部分示例代码中标签名大小写异常
|
|
171
|
+
* 🐛 修复 Table组件中`tooltip`的默认选项
|
|
172
|
+
* 🐛 修复 部分已知零散问题
|
|
173
|
+
|
|
174
|
+
### Performance Improvements
|
|
175
|
+
|
|
176
|
+
* ⚡️ 优化 SlotTable组件样式
|
|
177
|
+
* ⚡️ 优化 Input组件样式
|
|
178
|
+
|
|
1
179
|
# [0.2.0](http://igit.58corp.com/matrix/mds-ui/compare/v0.1.20...v0.2.0) (2021-12-11)
|
|
2
180
|
|
|
3
181
|
### Features
|
package/README.md
CHANGED
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
#### npm 安装
|
|
35
35
|
> 推荐使用npm的方式安装,能更好的和`webpack`等打包工具配合使用
|
|
36
36
|
``` bash
|
|
37
|
-
npm install @
|
|
37
|
+
npm install @mdsfe/mds-ui -S
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
#### CDN 引用
|
|
@@ -42,14 +42,14 @@ npm install @bic-fe/mds-ui -S
|
|
|
42
42
|
|
|
43
43
|
```
|
|
44
44
|
<!-- 引入样式 -->
|
|
45
|
-
<link rel="stylesheet" href="https://unpkg.com/@
|
|
45
|
+
<link rel="stylesheet" href="https://unpkg.com/@mdsfe/mds-ui/dist/mds-ui.min.css">
|
|
46
46
|
<!-- 引入组件库 -->
|
|
47
|
-
<script src="https://unpkg.com/@
|
|
47
|
+
<script src="https://unpkg.com/@mdsfe/mds-ui/dist/mds-ui.min.js"></script>
|
|
48
48
|
|
|
49
49
|
```
|
|
50
50
|
`注意`:使用`CDN`引入`mds-ui`组件库需要在链接地址上锁定版本,避免组件库升级的时候带来兼容性的影响。锁定版本的方法为在连接后面增加版本号
|
|
51
51
|
|
|
52
|
-
目前可以通过 [unpkg.com/mds-ui](https://unpkg.com/browse/@
|
|
52
|
+
目前可以通过 [unpkg.com/mds-ui](https://unpkg.com/browse/@mdsfe/mds-ui/) 获取到最新版本的资源,支持在页面上引入Js和Css文件既可以开始使用
|
|
53
53
|
|
|
54
54
|
## Quick Start
|
|
55
55
|
|
|
@@ -57,8 +57,8 @@ npm install @bic-fe/mds-ui -S
|
|
|
57
57
|
|
|
58
58
|
```
|
|
59
59
|
import Vue from 'vue'; // 引入Vue
|
|
60
|
-
import '@
|
|
61
|
-
import MdsUi from '@
|
|
60
|
+
import '@mdsfe/mds-ui/dist/mds-ui.min.css'; // 引入组件的样式
|
|
61
|
+
import MdsUi from '@mdsfe/mds-ui'; // 引入组件
|
|
62
62
|
|
|
63
63
|
Vue.use(MdsUi); // 使用组件
|
|
64
64
|
|
|
@@ -71,14 +71,14 @@ Vue.use(MdsUi); // 使用组件
|
|
|
71
71
|
可以通过下面的写法来按需加载组件
|
|
72
72
|
|
|
73
73
|
```
|
|
74
|
-
import Button from '@
|
|
74
|
+
import Button from '@mdsfe/mds-ui/dist/button';
|
|
75
75
|
```
|
|
76
76
|
方法二:
|
|
77
77
|
|
|
78
78
|
也可以使用 babel-plugin-import 来进行按需加载
|
|
79
79
|
|
|
80
80
|
```
|
|
81
|
-
import { Button } from '@
|
|
81
|
+
import { Button } from '@mdsfe/mds-ui';
|
|
82
82
|
```
|
|
83
83
|
`.babelrc`修改
|
|
84
84
|
|
|
@@ -87,7 +87,7 @@ import { Button } from '@bic-fe/mds-ui';
|
|
|
87
87
|
"plugins": [
|
|
88
88
|
[
|
|
89
89
|
"import", {
|
|
90
|
-
"libraryName": "@
|
|
90
|
+
"libraryName": "@mdsfe/mds-ui",
|
|
91
91
|
"libraryDirectory": "dist",
|
|
92
92
|
"styleLibraryDirectory": "dist/style",
|
|
93
93
|
"style":true
|
package/dist/_mixin/popper.js
CHANGED
|
@@ -140,6 +140,7 @@ exports.default = {
|
|
|
140
140
|
this.popperJS.update();
|
|
141
141
|
} else {
|
|
142
142
|
this.createPopper();
|
|
143
|
+
this.reference && this.reference.__vue__ && this.reference.__vue__.initWidth && this.reference.__vue__.initWidth();
|
|
143
144
|
}
|
|
144
145
|
},
|
|
145
146
|
doDestroy: function doDestroy() {
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.isInContainer = exports.getScrollContainer = exports.isScroll = exports.getStyle = exports.once = exports.off = exports.on = undefined;
|
|
5
|
+
|
|
6
|
+
var _typeof2 = require('babel-runtime/helpers/typeof');
|
|
7
|
+
|
|
8
|
+
var _typeof3 = _interopRequireDefault(_typeof2);
|
|
9
|
+
|
|
10
|
+
exports.hasClass = hasClass;
|
|
11
|
+
exports.addClass = addClass;
|
|
12
|
+
exports.removeClass = removeClass;
|
|
13
|
+
exports.setStyle = setStyle;
|
|
14
|
+
exports.merge = merge;
|
|
15
|
+
exports.getScrollBarWidth = getScrollBarWidth;
|
|
16
|
+
|
|
17
|
+
var _vue = require('vue');
|
|
18
|
+
|
|
19
|
+
var _vue2 = _interopRequireDefault(_vue);
|
|
20
|
+
|
|
21
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
22
|
+
|
|
23
|
+
/* eslint-disable */
|
|
24
|
+
var isServer = _vue2.default.prototype.$isServer;
|
|
25
|
+
var SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g;
|
|
26
|
+
var MOZ_HACK_REGEXP = /^moz([A-Z])/;
|
|
27
|
+
var ieVersion = isServer ? 0 : Number(document.documentMode);
|
|
28
|
+
|
|
29
|
+
/* istanbul ignore next */
|
|
30
|
+
var trim = function trim(string) {
|
|
31
|
+
return (string || '').replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, '');
|
|
32
|
+
};
|
|
33
|
+
/* istanbul ignore next */
|
|
34
|
+
var camelCase = function camelCase(name) {
|
|
35
|
+
return name.replace(SPECIAL_CHARS_REGEXP, function (_, separator, letter, offset) {
|
|
36
|
+
return offset ? letter.toUpperCase() : letter;
|
|
37
|
+
}).replace(MOZ_HACK_REGEXP, 'Moz$1');
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
/* istanbul ignore next */
|
|
41
|
+
var on = exports.on = function () {
|
|
42
|
+
if (!isServer && document.addEventListener) {
|
|
43
|
+
return function (element, event, handler) {
|
|
44
|
+
if (element && event && handler) {
|
|
45
|
+
element.addEventListener(event, handler, false);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
} else {
|
|
49
|
+
return function (element, event, handler) {
|
|
50
|
+
if (element && event && handler) {
|
|
51
|
+
element.attachEvent('on' + event, handler);
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
}();
|
|
56
|
+
|
|
57
|
+
/* istanbul ignore next */
|
|
58
|
+
var off = exports.off = function () {
|
|
59
|
+
if (!isServer && document.removeEventListener) {
|
|
60
|
+
return function (element, event, handler) {
|
|
61
|
+
if (element && event) {
|
|
62
|
+
element.removeEventListener(event, handler, false);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
} else {
|
|
66
|
+
return function (element, event, handler) {
|
|
67
|
+
if (element && event) {
|
|
68
|
+
element.detachEvent('on' + event, handler);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
}();
|
|
73
|
+
|
|
74
|
+
/* istanbul ignore next */
|
|
75
|
+
var once = exports.once = function once(el, event, fn) {
|
|
76
|
+
var listener = function listener() {
|
|
77
|
+
if (fn) {
|
|
78
|
+
fn.apply(this, arguments);
|
|
79
|
+
}
|
|
80
|
+
off(el, event, listener);
|
|
81
|
+
};
|
|
82
|
+
on(el, event, listener);
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
/* istanbul ignore next */
|
|
86
|
+
function hasClass(el, cls) {
|
|
87
|
+
if (!el || !cls) return false;
|
|
88
|
+
if (cls.indexOf(' ') !== -1) {
|
|
89
|
+
throw new Error('className should not contain space.');
|
|
90
|
+
}
|
|
91
|
+
if (el.classList) {
|
|
92
|
+
return el.classList.contains(cls);
|
|
93
|
+
} else {
|
|
94
|
+
return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/* istanbul ignore next */
|
|
99
|
+
function addClass(el, cls) {
|
|
100
|
+
if (!el) return;
|
|
101
|
+
var curClass = el.className;
|
|
102
|
+
var classes = (cls || '').split(' ');
|
|
103
|
+
|
|
104
|
+
for (var i = 0, j = classes.length; i < j; i++) {
|
|
105
|
+
var clsName = classes[i];
|
|
106
|
+
if (!clsName) continue;
|
|
107
|
+
|
|
108
|
+
if (el.classList) {
|
|
109
|
+
el.classList.add(clsName);
|
|
110
|
+
} else if (!hasClass(el, clsName)) {
|
|
111
|
+
curClass += ' ' + clsName;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
if (!el.classList) {
|
|
115
|
+
el.setAttribute('class', curClass);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/* istanbul ignore next */
|
|
120
|
+
function removeClass(el, cls) {
|
|
121
|
+
if (!el || !cls) return;
|
|
122
|
+
var classes = cls.split(' ');
|
|
123
|
+
var curClass = ' ' + el.className + ' ';
|
|
124
|
+
|
|
125
|
+
for (var i = 0, j = classes.length; i < j; i++) {
|
|
126
|
+
var clsName = classes[i];
|
|
127
|
+
if (!clsName) continue;
|
|
128
|
+
|
|
129
|
+
if (el.classList) {
|
|
130
|
+
el.classList.remove(clsName);
|
|
131
|
+
} else if (hasClass(el, clsName)) {
|
|
132
|
+
curClass = curClass.replace(' ' + clsName + ' ', ' ');
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
if (!el.classList) {
|
|
136
|
+
el.setAttribute('class', trim(curClass));
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/* istanbul ignore next */
|
|
141
|
+
var getStyle = exports.getStyle = ieVersion < 9 ? function (element, styleName) {
|
|
142
|
+
if (isServer) return;
|
|
143
|
+
if (!element || !styleName) return null;
|
|
144
|
+
styleName = camelCase(styleName);
|
|
145
|
+
if (styleName === 'float') {
|
|
146
|
+
styleName = 'styleFloat';
|
|
147
|
+
}
|
|
148
|
+
try {
|
|
149
|
+
switch (styleName) {
|
|
150
|
+
case 'opacity':
|
|
151
|
+
try {
|
|
152
|
+
return element.filters.item('alpha').opacity / 100;
|
|
153
|
+
} catch (e) {
|
|
154
|
+
return 1.0;
|
|
155
|
+
}
|
|
156
|
+
default:
|
|
157
|
+
return element.style[styleName] || element.currentStyle ? element.currentStyle[styleName] : null;
|
|
158
|
+
}
|
|
159
|
+
} catch (e) {
|
|
160
|
+
return element.style[styleName];
|
|
161
|
+
}
|
|
162
|
+
} : function (element, styleName) {
|
|
163
|
+
if (isServer) return;
|
|
164
|
+
if (!element || !styleName) return null;
|
|
165
|
+
styleName = camelCase(styleName);
|
|
166
|
+
if (styleName === 'float') {
|
|
167
|
+
styleName = 'cssFloat';
|
|
168
|
+
}
|
|
169
|
+
try {
|
|
170
|
+
var computed = document.defaultView.getComputedStyle(element, '');
|
|
171
|
+
return element.style[styleName] || computed ? computed[styleName] : null;
|
|
172
|
+
} catch (e) {
|
|
173
|
+
return element.style[styleName];
|
|
174
|
+
}
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
/* istanbul ignore next */
|
|
178
|
+
function setStyle(element, styleName, value) {
|
|
179
|
+
if (!element || !styleName) return;
|
|
180
|
+
|
|
181
|
+
if ((typeof styleName === 'undefined' ? 'undefined' : (0, _typeof3.default)(styleName)) === 'object') {
|
|
182
|
+
for (var prop in styleName) {
|
|
183
|
+
if (styleName.hasOwnProperty(prop)) {
|
|
184
|
+
setStyle(element, prop, styleName[prop]);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
} else {
|
|
188
|
+
styleName = camelCase(styleName);
|
|
189
|
+
if (styleName === 'opacity' && ieVersion < 9) {
|
|
190
|
+
element.style.filter = isNaN(value) ? '' : 'alpha(opacity=' + value * 100 + ')';
|
|
191
|
+
} else {
|
|
192
|
+
element.style[styleName] = value;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
var isScroll = exports.isScroll = function isScroll(el, vertical) {
|
|
198
|
+
if (isServer) return;
|
|
199
|
+
|
|
200
|
+
var determinedDirection = vertical !== null && vertical !== undefined;
|
|
201
|
+
var overflow = determinedDirection ? vertical ? getStyle(el, 'overflow-y') : getStyle(el, 'overflow-x') : getStyle(el, 'overflow');
|
|
202
|
+
|
|
203
|
+
return overflow.match(/(scroll|auto|overlay)/);
|
|
204
|
+
};
|
|
205
|
+
|
|
206
|
+
var getScrollContainer = exports.getScrollContainer = function getScrollContainer(el, vertical) {
|
|
207
|
+
if (isServer) return;
|
|
208
|
+
|
|
209
|
+
var parent = el;
|
|
210
|
+
while (parent) {
|
|
211
|
+
if ([window, document, document.documentElement].includes(parent)) {
|
|
212
|
+
return window;
|
|
213
|
+
}
|
|
214
|
+
if (isScroll(parent, vertical)) {
|
|
215
|
+
return parent;
|
|
216
|
+
}
|
|
217
|
+
parent = parent.parentNode;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
return parent;
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
var isInContainer = exports.isInContainer = function isInContainer(el, container) {
|
|
224
|
+
if (isServer || !el || !container) return false;
|
|
225
|
+
|
|
226
|
+
var elRect = el.getBoundingClientRect();
|
|
227
|
+
var containerRect = void 0;
|
|
228
|
+
|
|
229
|
+
if ([window, document, document.documentElement, null, undefined].includes(container)) {
|
|
230
|
+
containerRect = {
|
|
231
|
+
top: 0,
|
|
232
|
+
right: window.innerWidth,
|
|
233
|
+
bottom: window.innerHeight,
|
|
234
|
+
left: 0
|
|
235
|
+
};
|
|
236
|
+
} else {
|
|
237
|
+
containerRect = container.getBoundingClientRect();
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
return elRect.top < containerRect.bottom && elRect.bottom > containerRect.top && elRect.right > containerRect.left && elRect.left < containerRect.right;
|
|
241
|
+
};
|
|
242
|
+
|
|
243
|
+
function merge(target) {
|
|
244
|
+
for (var i = 1, j = arguments.length; i < j; i++) {
|
|
245
|
+
var source = arguments[i] || {};
|
|
246
|
+
for (var prop in source) {
|
|
247
|
+
if (source.hasOwnProperty(prop)) {
|
|
248
|
+
var value = source[prop];
|
|
249
|
+
if (value !== undefined) {
|
|
250
|
+
target[prop] = value;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
return target;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
var scrollBarWidth = void 0;
|
|
260
|
+
function getScrollBarWidth() {
|
|
261
|
+
if (_vue2.default.prototype.$isServer) return 0;
|
|
262
|
+
if (scrollBarWidth !== undefined) return scrollBarWidth;
|
|
263
|
+
|
|
264
|
+
var outer = document.createElement('div');
|
|
265
|
+
outer.className = 'el-scrollbar__wrap';
|
|
266
|
+
outer.style.visibility = 'hidden';
|
|
267
|
+
outer.style.width = '100px';
|
|
268
|
+
outer.style.position = 'absolute';
|
|
269
|
+
outer.style.top = '-9999px';
|
|
270
|
+
document.body.appendChild(outer);
|
|
271
|
+
|
|
272
|
+
var widthNoScroll = outer.offsetWidth;
|
|
273
|
+
outer.style.overflow = 'scroll';
|
|
274
|
+
|
|
275
|
+
var inner = document.createElement('div');
|
|
276
|
+
inner.style.width = '100%';
|
|
277
|
+
outer.appendChild(inner);
|
|
278
|
+
|
|
279
|
+
var widthWithScroll = inner.offsetWidth;
|
|
280
|
+
outer.parentNode.removeChild(outer);
|
|
281
|
+
scrollBarWidth = widthNoScroll - widthWithScroll;
|
|
282
|
+
|
|
283
|
+
return scrollBarWidth;
|
|
284
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
|
|
5
|
+
var _transition = require('mds-ui/dist/transition');
|
|
6
|
+
|
|
7
|
+
var _transition2 = _interopRequireDefault(_transition);
|
|
8
|
+
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
|
|
11
|
+
var placementMap = {
|
|
12
|
+
top: 'top',
|
|
13
|
+
left: 'left',
|
|
14
|
+
right: 'right',
|
|
15
|
+
bottom: 'bottom',
|
|
16
|
+
topLeft: 'top-start',
|
|
17
|
+
topRight: 'top-end',
|
|
18
|
+
bottomLeft: 'bottom-start',
|
|
19
|
+
bottomRight: 'bottom-end',
|
|
20
|
+
leftTop: 'left-start',
|
|
21
|
+
leftBottom: 'left-end',
|
|
22
|
+
rightTop: 'right-start',
|
|
23
|
+
rightBottom: 'right-end'
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
exports.default = {
|
|
27
|
+
components: {
|
|
28
|
+
mdsTransition: _transition2.default
|
|
29
|
+
},
|
|
30
|
+
computed: {
|
|
31
|
+
realPlacement: function realPlacement() {
|
|
32
|
+
return placementMap[this.placement];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
};
|