ivue-material-plus
Version:
A high quality UI components Library with Vue.js
71 lines (66 loc) • 2.14 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
var index = require('../use-id/index.js');
var form = require('../../components/ivue-form/types/form.js');
var formItem = require('../../components/ivue-form/types/form-item.js');
const useFormItem = () => {
const form$1 = vue.inject(form.FormContextKey, void 0);
const formItem$1 = vue.inject(formItem.FormItemContextKey, void 0);
return {
form: form$1,
formItem: formItem$1
};
};
const useFormItemInputId = (props, {
formItemContext,
disableIdGeneration,
disableIdManagement
}, slots) => {
if (!disableIdGeneration) {
disableIdGeneration = vue.ref(false);
}
if (!disableIdManagement) {
disableIdManagement = vue.ref(false);
}
let idUnwatch = void 0;
const inputId = vue.ref();
const isLabeledByFormItem = vue.computed(() => {
var _a;
return !!(!props.label && formItemContext && formItemContext.inputIds && ((_a = formItemContext.inputIds) == null ? void 0 : _a.length) <= 1);
});
vue.onMounted(() => {
if (slots && slots.input && slots.input()) {
return;
}
idUnwatch = vue.watch(
[vue.toRef(props, "id")],
([id]) => {
const newId = id != null ? id : !disableIdGeneration.value ? index.useId().value : void 0;
if (formItemContext == null ? void 0 : formItemContext.removeInputId) {
inputId.value && formItemContext.removeInputId(inputId.value);
if (!(disableIdManagement == null ? void 0 : disableIdManagement.value) && !disableIdGeneration.value && newId) {
formItemContext.addInputId(newId);
}
}
inputId.value = newId;
},
{
immediate: true
}
);
});
vue.onUnmounted(() => {
idUnwatch && idUnwatch();
if (formItemContext == null ? void 0 : formItemContext.removeInputId) {
inputId.value && formItemContext.removeInputId(inputId.value);
}
});
return {
isLabeledByFormItem,
inputId
};
};
exports.useFormItem = useFormItem;
exports.useFormItemInputId = useFormItemInputId;
//# sourceMappingURL=index.js.map