vuestic-ui
Version:
Vue 3 UI Framework
1 lines • 986 B
Source Map (JSON)
{"version":3,"file":"useUserProvidedProp.mjs","sources":["../../../../src/composables/useUserProvidedProp.ts"],"sourcesContent":["import { computed, getCurrentInstance } from 'vue'\n\nexport const NOT_PROVIDED = Symbol('NOT_PROVIDED')\n\nexport const useUserProvidedProp = <Name extends string, Props extends Record<Name, any>>(propName: Name, props: Props) => {\n const vm = getCurrentInstance()!\n\n return computed(() => {\n // Props may be not passed at all\n if (!vm?.vnode.props) { return NOT_PROVIDED }\n const originalProp = props[propName]\n // If vnode doesn't have this prop it mean default value is used\n return propName in vm.vnode.props ? originalProp as Props[Name] : NOT_PROVIDED\n })\n}\n"],"names":[],"mappings":";AAEa,MAAA,eAAe,OAAO,cAAc;AAEpC,MAAA,sBAAsB,CAAuD,UAAgB,UAAiB;AACzH,QAAM,KAAK;AAEX,SAAO,SAAS,MAAM;AAEhB,QAAA,EAAC,yBAAI,MAAM,QAAO;AAAS,aAAA;AAAA,IAAa;AACtC,UAAA,eAAe,MAAM,QAAQ;AAEnC,WAAO,YAAY,GAAG,MAAM,QAAQ,eAA8B;AAAA,EAAA,CACnE;AACH;"}