index.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var vue = require('vue');
  4. require('../../tokens/index.js');
  5. var index = require('../use-id/index.js');
  6. var form = require('../../tokens/form.js');
  7. const useFormItem = () => {
  8. const form$1 = vue.inject(form.formContextKey, void 0);
  9. const formItem = vue.inject(form.formItemContextKey, void 0);
  10. return {
  11. form: form$1,
  12. formItem
  13. };
  14. };
  15. const useFormItemInputId = (props, {
  16. formItemContext,
  17. disableIdGeneration,
  18. disableIdManagement
  19. }) => {
  20. if (!disableIdGeneration) {
  21. disableIdGeneration = vue.ref(false);
  22. }
  23. if (!disableIdManagement) {
  24. disableIdManagement = vue.ref(false);
  25. }
  26. const inputId = vue.ref();
  27. let idUnwatch = void 0;
  28. const isLabeledByFormItem = vue.computed(() => {
  29. var _a;
  30. return !!(!props.label && formItemContext && formItemContext.inputIds && ((_a = formItemContext.inputIds) == null ? void 0 : _a.length) <= 1);
  31. });
  32. vue.onMounted(() => {
  33. idUnwatch = vue.watch([vue.toRef(props, "id"), disableIdGeneration], ([id, disableIdGeneration2]) => {
  34. const newId = id != null ? id : !disableIdGeneration2 ? index.useId().value : void 0;
  35. if (newId !== inputId.value) {
  36. if (formItemContext == null ? void 0 : formItemContext.removeInputId) {
  37. inputId.value && formItemContext.removeInputId(inputId.value);
  38. if (!(disableIdManagement == null ? void 0 : disableIdManagement.value) && !disableIdGeneration2 && newId) {
  39. formItemContext.addInputId(newId);
  40. }
  41. }
  42. inputId.value = newId;
  43. }
  44. }, { immediate: true });
  45. });
  46. vue.onUnmounted(() => {
  47. idUnwatch && idUnwatch();
  48. if (formItemContext == null ? void 0 : formItemContext.removeInputId) {
  49. inputId.value && formItemContext.removeInputId(inputId.value);
  50. }
  51. });
  52. return {
  53. isLabeledByFormItem,
  54. inputId
  55. };
  56. };
  57. exports.useFormItem = useFormItem;
  58. exports.useFormItemInputId = useFormItemInputId;
  59. //# sourceMappingURL=index.js.map