UNPKG

2.62 kBJavaScriptView Raw
1'use strict';
2
3exports.__esModule = true;
4var getWidth = exports.getWidth = function getWidth(elem) {
5 var width = elem && typeof elem.getBoundingClientRect === 'function' && elem.getBoundingClientRect().width;
6 if (width) {
7 width = +width.toFixed(6);
8 }
9 return width || 0;
10};
11
12var normalizeToArray = exports.normalizeToArray = function normalizeToArray(items) {
13 if (items) {
14 if (Array.isArray(items)) {
15 return items;
16 }
17 return [items];
18 }
19
20 return [];
21};
22
23var isSibling = exports.isSibling = function isSibling(currentPos, targetPos) {
24 var currentNums = currentPos.split('-').slice(0, -1);
25 var targetNums = targetPos.split('-').slice(0, -1);
26
27 return currentNums.length === targetNums.length && currentNums.every(function (num, index) {
28 return num === targetNums[index];
29 });
30};
31
32var isAncestor = exports.isAncestor = function isAncestor(currentPos, targetPos) {
33 var currentNums = currentPos.split('-');
34 var targetNums = targetPos.split('-');
35
36 return currentNums.length > targetNums.length && targetNums.every(function (num, index) {
37 return num === currentNums[index];
38 });
39};
40
41var isAvailablePos = exports.isAvailablePos = function isAvailablePos(refPos, targetPos, _p2n) {
42 var _p2n$targetPos = _p2n[targetPos],
43 type = _p2n$targetPos.type,
44 disabled = _p2n$targetPos.disabled;
45
46
47 return isSibling(refPos, targetPos) && (type === 'item' && !disabled || type === 'submenu');
48};
49
50var getFirstAvaliablelChildKey = exports.getFirstAvaliablelChildKey = function getFirstAvaliablelChildKey(parentPos, _p2n) {
51 var pos = Object.keys(_p2n).find(function (p) {
52 return isAvailablePos(parentPos + '-0', p, _p2n);
53 });
54 return pos ? _p2n[pos].key : null;
55};
56
57/**
58 * 如果 key 在 SelectedKeys 的选中链上(例如 SelectedKeys 是['0-1-2'], key是 0-1 ),那么返回true
59 *
60 * selectMode?: string; 当前的选择模式,一般为 multiple single
61 * selectedKeys?: string[]; 选中的key值
62 * k2n?: object[] mapping;
63 * _key?: string; 待测试的key值
64 *
65 * @return bool 当前元素是否有孩子被选中
66 */
67var getChildSelected = exports.getChildSelected = function getChildSelected(_ref) {
68 var selectMode = _ref.selectMode,
69 selectedKeys = _ref.selectedKeys,
70 _k2n = _ref._k2n,
71 _key = _ref._key;
72
73 if (!_k2n) {
74 return false;
75 }
76
77 var _keyPos = (_k2n[_key] && _k2n[_key].pos) + '-';
78
79 return !!selectMode && selectedKeys.some(function (key) {
80 return _k2n[key] && _k2n[key].pos.indexOf(_keyPos) === 0;
81 });
82};
\No newline at end of file