{"version":3,"file":"index2.mjs","sources":["../../../../../../../../packages/components/permission/src/TablePermissionDataQuery/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  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 {\n  DEFAULT_TABLEPERMISSIONDATAQUERY_CLASSNAME,\n  DEFAULT_TABLEPERMISSIONDATAQUERY_ID,\n} from './constants'\nimport { tablePermissionDataQueryProps } from './types'\nimport type { PermissionContext } from '../types'\n\ndefineOptions({\n  name: 'TaTablePermissionDataQuery',\n  // inheritAttrs: false,\n})\n\nconst id = ref(DEFAULT_TABLEPERMISSIONDATAQUERY_ID())\nconst type = ref(DEFAULT_TABLEPERMISSIONDATAQUERY_CLASSNAME)\nconst props = defineProps(tablePermissionDataQueryProps)\n// const emits = defineEmits(pagePermissionEmits)\n// const slots = useSlots()\nconst attrs = useAttrs()\n\nconst mergedProps = useMergedProps(props, 'TaTablePermissionDataQuery', DEFAULT_APIPARAMS)\nconst permissionContent = ref<PermissionContext['permission']>()\nconst isUseApi = computed(() => mergedProps.value.apiParams && mergedProps.value.apiPermissionData)\nconst loading = ref(false)\n\nasync function handlePermission() {\n  if (mergedProps.value.disabled) return\n  if (isUseApi.value) {\n    permissionContent.value = {\n      apiParams: mergedProps.value.apiParams!,\n      apiPermissionData: mergedProps.value.apiPermissionData!,\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)\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})\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":";;;;;;;;;;;;;AA6BA,EAAA,MAAA,EAAA,GAAA,GAAA,CAAA,mCAAA,EAAA,CAAA,CAAA;AACA,EAAA,MAAA,IAAA,GAAA,IAAA,0CAAA,CAAA,CAAA;AAIA,EAAA,MAAA,QAAA,QAAA,EAAA,CAAA;AAEA,EAAA,MAAA,WAAA,GAAA,cAAA,CAAA,KAAA,EAAA,4BAAA,EAAA,iBAAA,CAAA,CAAA;AACA,EAAA,MAAA,oBAAA,GAAA,EAAA,CAAA;AACA,EAAA,MAAA,QAAA,GAAA,SAAA,MAAA,WAAA,CAAA,MAAA,SAAA,IAAA,WAAA,CAAA,MAAA,iBAAA,CAAA,CAAA;AACA,EAAA,MAAA,OAAA,GAAA,IAAA,KAAA,CAAA,CAAA;AAEA,EAAA,eAAA,gBAAA,GAAA;AACA,IAAA,IAAA,YAAA,KAAA,CAAA,QAAA;AAAA,MAAA,OAAA;AACA,IAAA,IAAA,SAAA,KAAA,EAAA;AACA,MAAA,iBAAA,CAAA,KAAA,GAAA;AAAA,QACA,SAAA,EAAA,YAAA,KAAA,CAAA,SAAA;AAAA,QACA,iBAAA,EAAA,YAAA,KAAA,CAAA,iBAAA;AAAA,OACA,CAAA;AAAA,KACA;AAAA,GACA;AAEA,EAAA,aAAA,CAAA,YAAA;AACA,IAAA,IAAA,MAAA,SAAA,EAAA;AACA,MAAA,MAAA,gBAAA,EAAA,CAAA;AAAA,KACA;AAAA,GACA,CAAA,CAAA;AAEA,EAAA,KAAA,CAAA,MAAA,IAAA,CAAA,SAAA,CAAA,WAAA,CAAA,KAAA,CAAA,SAAA,CAAA,EAAA,OAAA,MAAA,EAAA,MAAA,KAAA;AAAA,IACA,IAAA,MAAA,IAAA,MAAA,KAAA,IAAA,IAAA,MAAA,KAAA,MAAA,EAAA;AAAA,MACA,IAAA,eAAA,EAAA;AACA,QAAA,MAAA,gBAAA,EAAA,CAAA;AACA,OAAA;AACA,KAAA;AAAA,GACA,CAAA,CAAA;AAAA,EACA,MAAA,kBAAA,GAAA,MAAA,CAAA,qBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAAA,EACA,MAAA,OAAA,GAAA,QAAA,CAAA;AAAA,IACA,EAAA;AAEA,IAAA,IAAA;AACA,IAAA,qBAAA,CAAA,KAAA,CAAA,QAAA;AAAA,IAEA,UAAA,EAAA,iBAAA;AAAA,GACA,CAAA,CAAA;AAAA,EACA,SAAA,CAAA;AAAA,IACA,kBAAA,EAAA,aAAA,CAAA,OAAA,CAAA,CAAA;AAAA,GACA,CAAA,CAAA;AAEA,EAAA,eAAA,CAAA,MAAA;AACA,IAAA,kBAAA,EAAA,gBAAA,CAAA,OAAA,CAAA,CAAA;AAAA,GACA,CAAA,CAAA;AAEA,EAAA,OAAA,CAAA,oBAAA,EAAA,OAAA,CAAA,CAAA;AACA,EAAA,MAAA,CAAA;AAAA,IACA,EAAA;AAEA,IAAA;AAEA,GAAA,CAAA,CAAA;AAAA,EACA,OAAA,CAAA,IAAA,EAAA,MAAA,KAAA;AAAA,IACA,OAAA,OAAA,CAAA,KAAA,IAAAA,SAAA,EAAA,EAAAC,WAAA,CAAAC,KAAA,CAAAC,IAAA,CAAA,EAAA;AAAA,MACA,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;"}