12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- <!-- Copyright (C) 2012-2025 Zammad Foundation, https://zammad-foundation.org/ -->
- <script setup lang="ts">
- import { useSharedVisualConfig } from '#shared/composables/useSharedVisualConfig.ts'
- import type { ObjectAttribute } from '#shared/entities/object-attributes/types/store.ts'
- import type { ObjectLike } from '#shared/types/utils.ts'
- import { useDisplayObjectAttribute } from './useDisplayObjectAttributes.ts'
- import { isEmpty } from './utils.ts'
- import type { OutputMode } from './types.ts'
- interface Props {
- mode?: OutputMode
- object: ObjectLike
- attribute: ObjectAttribute
- }
- const props = withDefaults(defineProps<Props>(), {
- mode: 'view',
- })
- const { objectAttributes: objectAttributesConfig } = useSharedVisualConfig()
- const { field } = useDisplayObjectAttribute(props)
- </script>
- <template>
- <template v-if="field && !isEmpty(field.value)">
- <CommonLink
- v-if="field.link"
- :link="field.link"
- :class="objectAttributesConfig.classes.link"
- >
- <Component
- :is="field.component"
- :attribute="field.attribute"
- :value="field.value"
- :config="objectAttributesConfig"
- :mode="mode"
- />
- </CommonLink>
- <Component
- :is="field.component"
- v-else
- :attribute="field.attribute"
- :value="field.value"
- :config="objectAttributesConfig"
- :mode="mode"
- />
- </template>
- <template v-else>-</template>
- </template>
|