@alifd/meet-react
Version:
Fusion Mobile React UI System Component
129 lines • 3.89 kB
JavaScript
import React, { createElement, Children } from "react";
import { isWeb } from '@uni/env';
import { findInArray, getDataSourceFromChildren, isUndef, isValidArray, windowHeight, isMiniappPlatform } from '../utils';
import SelectValue from './section/select-value';
export function removeItemFromArray() {
var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var val = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
return arr.filter(function (v) {
return v.value !== val;
});
}
export function getInitValues(props) {
var defaultValue = props.defaultValue,
value = props.value;
var initValues;
if ('value' in props) {
initValues = value;
} else if (!isUndef(defaultValue)) {
initValues = defaultValue;
}
if (!Array.isArray(initValues)) {
if (!isUndef(initValues)) {
initValues = [initValues];
} else {
initValues = [];
}
}
return initValues;
}
export function getPreviewValue(props) {
var useDetailValue = props.useDetailValue,
children = props.children,
dataSource = props.dataSource,
mode = props.mode;
var initValues = getInitValues(props);
var ds = dataSource || [];
var arr = [];
if (!dataSource && Children.count(children) > 0) {
ds = getDataSourceFromChildren(children);
}
if (useDetailValue && isValidArray(initValues)) {
arr = initValues;
} else if (isValidArray(initValues)) {
arr = initValues.map(function (v) {
var rs = ds.find(function (it) {
return it.value === v;
});
return rs || {
label: v,
value: v
};
});
}
if (mode === 'single') {
return isValidArray(arr) ? arr[0] : '';
}
return arr;
}
export function getScrollHeight() {
if (isWeb) {
return "".concat((screen.availHeight - 200) / (screen.width / 750), "rpx");
} else if (isMiniappPlatform) {
return windowHeight - 100;
}
return 0;
}
export function innerRenderSelection(items, values) {
var labels = !Array.isArray(items) && items.label ? [items.label] : items.map(function (item) {
return item.label;
});
if (labels.length === 0) {
return null;
}
return /*#__PURE__*/createElement(SelectValue, Object.assign(Object.assign({}, values), {
items: labels
}));
}
export function isSelected(curItems, value) {
var rs = findInArray(curItems, function (item) {
return item.value === value;
});
return !!rs;
}
export function isEqualItems() {
var arr1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var arr2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
var strictMode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
if (!Array.isArray(arr1) || !Array.isArray(arr2) || arr1.length !== arr2.length) {
return false;
}
var filterFn = function filterFn(item) {
return item.value;
};
if (strictMode) {
filterFn = function filterFn(item) {
return item.label + item.value;
};
}
return arr1.map(filterFn).sort().toString() === arr2.map(filterFn).sort().toString();
}
export function getValidEvtValues(_ref) {
var selectedItems = _ref.selectedItems,
useDetailValue = _ref.useDetailValue,
isSingle = _ref.isSingle;
var value = isSingle ? null : [];
var items = isSingle ? {} : [];
if (isValidArray(selectedItems)) {
value = selectedItems[0].value;
if (useDetailValue) {
value = selectedItems;
} else if (!isSingle) {
value = selectedItems.map(function (item) {
return item.value;
});
}
items = isSingle ? selectedItems[0] : selectedItems;
}
return {
value: value,
items: items
};
}
export function defaultLocalFilter(searchText, item) {
try {
return new RegExp(searchText).test(item.label);
} catch (e) {
return item.label.includes(searchText);
}
}