UNPKG

@varlet/ui

Version:

A Vue3 component library based on Material Design 2 and 3, supporting mobile and desktop.

48 lines (47 loc) 1.65 kB
var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; var __getOwnPropDescs = Object.getOwnPropertyDescriptors; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a, b) => { for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) { if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]); } return a; }; var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); import { getCurrentInstance } from "vue"; import { useChildren, useParent } from "@varlet/use"; const FORM_BIND_FORM_ITEM_KEY = Symbol("FORM_BIND_FORM_ITEM_KEY"); function useForm() { const { parentProvider, index, bindParent } = useParent(FORM_BIND_FORM_ITEM_KEY); const instance = getCurrentInstance(); const bindForm = bindParent ? (formItemProvider) => { bindParent(__spreadProps(__spreadValues({}, formItemProvider), { instance })); } : null; return { index, form: parentProvider, bindForm }; } function useFormItems() { const { childProviders, length, bindChildren } = useChildren(FORM_BIND_FORM_ITEM_KEY); return { length, formItems: childProviders, bindFormItems: bindChildren }; } export { FORM_BIND_FORM_ITEM_KEY, useForm, useFormItems };