{"version":3,"file":"index2.mjs","sources":["../../../../../../../../packages/components/permission/src/PermissionDataQuery/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n  computed,\n  inject,\n  onBeforeMount,\n  onBeforeUnmount,\n  onMounted,\n  provide,\n  reactive,\n  ref,\n  shallowRef,\n  useAttrs,\n  // useSlots,\n  watch,\n} from 'vue'\nimport { Spin as ASpain } from 'ant-design-vue'\nimport { DEFAULT_APIPARAMS, permissionContextKey, permissionsContextKey } from '../constants'\nimport { useMergedProps } from '../hooks/use-props'\nimport { DEFAULT_PERMISSIONDATAQUERY_CLASSNAME, DEFAULT_PERMISSIONDATAQUERY_ID } from './constants'\nimport {\n  type PermissionQueryDataContent,\n  permissionDataQueryEmits,\n  permissionDataQueryProps,\n} from './types'\nimport type { PermissionContext } from '../types'\n\ndefineOptions({\n  name: 'TaPermissionDataQuery',\n  // inheritAttrs: false,\n})\n\nconst id = ref(DEFAULT_PERMISSIONDATAQUERY_ID())\nconst type = ref(DEFAULT_PERMISSIONDATAQUERY_CLASSNAME)\nconst props = defineProps(permissionDataQueryProps)\nconst emits = defineEmits(permissionDataQueryEmits)\n// const slots = useSlots()\nconst attrs = useAttrs()\n\nconst mergedProps = useMergedProps(props, 'TaPermissionDataQuery', DEFAULT_APIPARAMS)\nconst permissionContent = shallowRef<PermissionQueryDataContent>()\nconst isUseApi = computed(() => mergedProps.value.apiParams && mergedProps.value.apiPermissionData)\nconst loading = ref(false)\n\nasync function reload() {\n  try {\n    const { data, success } = await mergedProps.value.apiPermissionData!(\n      mergedProps.value.apiParams!\n    )\n    if (data && success) {\n      permissionContent.value = data\n      emits('apiSuccess', data)\n      return data\n    } else {\n      permissionContent.value = undefined\n      return undefined\n    }\n  } catch (error: any) {\n    console.warn('[tavui TaPermissionDataQuery] api has error', error)\n    permissionContent.value = undefined\n    emits('apiError', error)\n    return undefined\n  }\n}\n\nasync function handlePermission() {\n  if (mergedProps.value.disabled) return\n  if (isUseApi.value) {\n    try {\n      loading.value = true\n      await reload()\n    } catch (error: any) {\n      console.warn('[tavui TaPermissionDataQuery] api has error', error)\n    } finally {\n      loading.value = false\n    }\n  } else {\n    if (mergedProps.value.permission) {\n      permissionContent.value = mergedProps.value.permission\n    }\n  }\n}\n\nonBeforeMount(async () => {\n  if (props.immediate) {\n    await handlePermission()\n  }\n})\n\nwatch(\n  () => JSON.stringify(mergedProps.value.apiParams),\n  async (curVal, preVal) => {\n    if (curVal && curVal !== '{}' && curVal !== preVal) {\n      if (props.immediate) {\n        await handlePermission()\n      }\n    }\n  }\n)\n\nconst permissionsContext = inject(permissionsContextKey, undefined)\n// const parentPermissionContext = inject(permissionContextKey, undefined)\n// console.log('🚀 ~ parentPermissionContext:', parentPermissionContext)\nconst context: PermissionContext = reactive({\n  // ...toRefs(props),\n  id,\n  type,\n  disabled: mergedProps.value.disabled,\n  permission: permissionContent,\n})\n\nonMounted(() => {\n  permissionsContext?.addPermission(context)\n})\n\nonBeforeUnmount(() => {\n  permissionsContext?.removePermission(context)\n})\n\nprovide(permissionContextKey, context)\n\ndefineExpose({\n  id,\n  permissionContext: context,\n  reload,\n})\n</script>\n\n<template>\n  <ASpain v-if=\"loading\" size=\"large\" tip=\"正在加载权限，请稍等 👾\" />\n  <slot v-else v-bind=\"{ ...mergedProps.value, ...attrs, permission: permissionContent }\" />\n</template>\n"],"names":["_openBlock","_createBlock","_unref","ASpain"],"mappings":"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"}