Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | 61x 1x | <script> import { GlButton, GlPopover } from '@gitlab/ui'; import { __ } from '~/locale'; import SafeHtml from '~/vue_shared/directives/safe_html'; /** * Render a button with a question mark icon * On hover shows a popover. The popover will be dismissed on mouseleave */ export default { name: 'HelpPopover', components: { GlButton, GlPopover, }, directives: { SafeHtml, }, props: { options: { type: Object, required: false, default: () => ({}), }, icon: { type: String, required: false, default: 'question-o', }, triggerClass: { type: [String, Array, Object], required: false, default: '', }, ariaLabel: { type: String, required: false, default: __('Help'), }, }, methods: { targetFn() { return this.$refs.popoverTrigger?.$el; }, }, }; </script> <template> <span> <gl-button ref="popoverTrigger" :class="triggerClass" variant="link" :icon="icon" :aria-label="ariaLabel" /> <gl-popover :target="targetFn" v-bind="options"> <template v-if="options.title" #title> <span v-safe-html="options.title"></span> </template> <template #default> <div v-safe-html="options.content"></div> </template> <!-- eslint-disable-next-line @gitlab/vue-prefer-dollar-scopedslots --> <template v-for="slot in Object.keys($slots)" #[slot]> <slot :name="slot"></slot> </template> </gl-popover> </span> </template> |