You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.6 KiB
53 lines
1.6 KiB
'use strict';
|
|
|
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
|
var vue = require('vue');
|
|
require('../../../utils/index.js');
|
|
var error = require('../../../utils/error.js');
|
|
var lodashUnified = require('lodash-unified');
|
|
|
|
const SCOPE = "ElForm";
|
|
function useFormLabelWidth() {
|
|
const potentialLabelWidthArr = vue.ref([]);
|
|
const autoLabelWidth = vue.computed(() => {
|
|
if (!potentialLabelWidthArr.value.length)
|
|
return "0";
|
|
const max = Math.max(...potentialLabelWidthArr.value);
|
|
return max ? `${max}px` : "";
|
|
});
|
|
function getLabelWidthIndex(width) {
|
|
const index = potentialLabelWidthArr.value.indexOf(width);
|
|
if (index === -1 && autoLabelWidth.value === "0") {
|
|
error.debugWarn(SCOPE, `unexpected width ${width}`);
|
|
}
|
|
return index;
|
|
}
|
|
function registerLabelWidth(val, oldVal) {
|
|
if (val && oldVal) {
|
|
const index = getLabelWidthIndex(oldVal);
|
|
potentialLabelWidthArr.value.splice(index, 1, val);
|
|
} else if (val) {
|
|
potentialLabelWidthArr.value.push(val);
|
|
}
|
|
}
|
|
function deregisterLabelWidth(val) {
|
|
const index = getLabelWidthIndex(val);
|
|
if (index > -1) {
|
|
potentialLabelWidthArr.value.splice(index, 1);
|
|
}
|
|
}
|
|
return {
|
|
autoLabelWidth,
|
|
registerLabelWidth,
|
|
deregisterLabelWidth
|
|
};
|
|
}
|
|
const filterFields = (fields, props) => {
|
|
const normalized = lodashUnified.castArray(props);
|
|
return normalized.length > 0 ? fields.filter((field) => field.prop && normalized.includes(field.prop)) : fields;
|
|
};
|
|
|
|
exports.filterFields = filterFields;
|
|
exports.useFormLabelWidth = useFormLabelWidth;
|
|
//# sourceMappingURL=utils.js.map
|
|
|