@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.
Files changed (131) hide show
  1. package/CHANGELOG.md +178 -0
  2. package/README.md +9 -9
  3. package/dist/_mixin/popper.js +1 -0
  4. package/dist/_util/_popper/dom-helper.js +284 -0
  5. package/dist/_util/_popper/popper-mixin.js +35 -0
  6. package/dist/_util/_popper/popper.js +1267 -0
  7. package/dist/_util/_popper/popup/popup-main.js +224 -0
  8. package/dist/_util/_popper/popup/popup-manager.js +205 -0
  9. package/dist/_util/_popper/vue-popper.js +204 -0
  10. package/dist/_util/popup/index.js +1 -1
  11. package/dist/_util/tree/node.js +2 -0
  12. package/dist/_util/tree/tree.js +65 -21
  13. package/dist/_util/util.js +29 -1
  14. package/dist/affix.js +18 -18
  15. package/dist/anchor.js +18 -18
  16. package/dist/avatar.js +17 -17
  17. package/dist/backtop.js +19 -19
  18. package/dist/badge.js +21 -21
  19. package/dist/bordershadow.js +20 -9
  20. package/dist/breadcrumb.js +18 -18
  21. package/dist/button.js +21 -21
  22. package/dist/card.js +18 -18
  23. package/dist/carousel.js +76 -76
  24. package/dist/cascader.js +4980 -0
  25. package/dist/cascaderpanel.js +645 -603
  26. package/dist/checkbox.js +23 -23
  27. package/dist/col.js +14 -14
  28. package/dist/collapse.js +6 -6
  29. package/dist/color.js +6 -6
  30. package/dist/datepicker.js +2487 -266
  31. package/dist/divider.js +19 -19
  32. package/dist/drawer.js +787 -37
  33. package/dist/dropdown.js +150 -104
  34. package/dist/empty.js +19 -19
  35. package/dist/font/iconfont.28359fa.ttf +0 -0
  36. package/dist/font/iconfont.486e3d3.woff2 +0 -0
  37. package/dist/font/iconfont.675049e.woff +0 -0
  38. package/dist/font.js +6 -6
  39. package/dist/form.js +28 -26
  40. package/dist/icon.js +55 -47
  41. package/dist/index.js +1 -1
  42. package/dist/input.js +65 -49
  43. package/dist/inputnumber.js +59 -39
  44. package/dist/layout.js +25 -25
  45. package/dist/list.js +17 -17
  46. package/dist/loading.js +21 -8
  47. package/dist/mds-ui.min.css +3 -3
  48. package/dist/mds-ui.min.js +19183 -15407
  49. package/dist/menu.js +31 -31
  50. package/dist/message.js +773 -24
  51. package/dist/modal.js +1146 -307
  52. package/dist/notification.js +27 -27
  53. package/dist/pagination.js +78 -55
  54. package/dist/popconfirm.js +36 -36
  55. package/dist/popover.js +2778 -48
  56. package/dist/progress.js +107 -65
  57. package/dist/radio.js +56 -54
  58. package/dist/rate.js +67 -59
  59. package/dist/row.js +14 -14
  60. package/dist/select.js +847 -503
  61. package/dist/slider.js +25 -25
  62. package/dist/slottable.js +2663 -129
  63. package/dist/steps.js +18 -18
  64. package/dist/style/affix.css +224 -2
  65. package/dist/style/anchor.css +224 -2
  66. package/dist/style/avatar.css +224 -2
  67. package/dist/style/badge.css +224 -2
  68. package/dist/style/bordershadow.css +236 -59
  69. package/dist/style/breadcrumb.css +224 -2
  70. package/dist/style/button.css +234 -5
  71. package/dist/style/card.css +224 -2
  72. package/dist/style/carousel.css +224 -2
  73. package/dist/style/cascader.css +214 -0
  74. package/dist/style/cascaderpanel.css +13 -16
  75. package/dist/style/checkbox.css +230 -8
  76. package/dist/style/col.css +225 -3
  77. package/dist/style/collapse.css +224 -2
  78. package/dist/style/color.css +224 -2
  79. package/dist/style/datepicker.css +236 -2
  80. package/dist/style/divider.css +227 -2
  81. package/dist/style/drawer.css +224 -2
  82. package/dist/style/dropdown.css +234 -5
  83. package/dist/style/empty.css +224 -2
  84. package/dist/style/font.css +226 -4
  85. package/dist/style/form.css +224 -2
  86. package/dist/style/icon.css +226 -3
  87. package/dist/style/input.css +231 -5
  88. package/dist/style/inputnumber.css +224 -2
  89. package/dist/style/layout.css +224 -2
  90. package/dist/style/list.css +224 -2
  91. package/dist/style/loading.css +2527 -2
  92. package/dist/style/menu.css +340 -129
  93. package/dist/style/message.css +1 -4
  94. package/dist/style/modal.css +247 -25
  95. package/dist/style/notification.css +224 -2
  96. package/dist/style/pagination.css +236 -7
  97. package/dist/style/popconfirm.css +334 -180
  98. package/dist/style/popover.css +324 -177
  99. package/dist/style/progress.css +226 -3
  100. package/dist/style/radio.css +225 -3
  101. package/dist/style/rate.css +226 -3
  102. package/dist/style/row.css +225 -3
  103. package/dist/style/select.css +240 -12
  104. package/dist/style/slider.css +224 -2
  105. package/dist/style/slottable.css +350 -149
  106. package/dist/style/steps.css +224 -2
  107. package/dist/style/switch.css +224 -2
  108. package/dist/style/table.css +458 -314
  109. package/dist/style/tabs.css +225 -18
  110. package/dist/style/tag.css +224 -2
  111. package/dist/style/text.css +224 -2
  112. package/dist/style/timeline.css +224 -2
  113. package/dist/style/timepicker.css +231 -6
  114. package/dist/style/tooltip.css +340 -129
  115. package/dist/style/tree.css +228 -6
  116. package/dist/style/typography.css +224 -2
  117. package/dist/style/upload.css +224 -2
  118. package/dist/switch.js +20 -20
  119. package/dist/table.js +3071 -201
  120. package/dist/tabs.js +24 -22
  121. package/dist/tag.js +17 -23
  122. package/dist/text.js +38 -22
  123. package/dist/timeline.js +14 -14
  124. package/dist/timepicker.js +3063 -172
  125. package/dist/tooltip.js +2550 -27
  126. package/dist/transfer.js +28 -28
  127. package/dist/transition.js +6 -6
  128. package/dist/tree.js +316 -171
  129. package/dist/typography.js +6 -6
  130. package/dist/upload.js +46 -38
  131. 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 @bic-fe/mds-ui -S
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/@bic-fe/mds-ui/dist/mds-ui.min.css">
45
+ <link rel="stylesheet" href="https://unpkg.com/@mdsfe/mds-ui/dist/mds-ui.min.css">
46
46
  <!-- 引入组件库 -->
47
- <script src="https://unpkg.com/@bic-fe/mds-ui/dist/mds-ui.min.js"></script>
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/@bic-fe/mds-ui/) 获取到最新版本的资源,支持在页面上引入Js和Css文件既可以开始使用
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 '@bic-fe/mds-ui/dist/mds-ui.min.css'; // 引入组件的样式
61
- import MdsUi from '@bic-fe/mds-ui'; // 引入组件
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 '@bic-fe/mds-ui/dist/button';
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 '@bic-fe/mds-ui';
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": "@bic-fe/mds-ui",
90
+ "libraryName": "@mdsfe/mds-ui",
91
91
  "libraryDirectory": "dist",
92
92
  "styleLibraryDirectory": "dist/style",
93
93
  "style":true
@@ -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
+ };