108 lines
3.6 KiB
Vue
108 lines
3.6 KiB
Vue
<template>
|
|
<DocSectionText v-bind="$attrs">
|
|
<p>
|
|
PrimeVue offers a built-in Tailwind theme to get you started quickly. The default values related to the component are displayed below. The component can easily be styled with your own design based on Tailwind utilities, see the
|
|
<PrimeVueNuxtLink to="/tailwind">Tailwind Customization</PrimeVueNuxtLink> section for an example.
|
|
</p>
|
|
<DocSectionCode :code="code1" hideToggleCode importCode hideCodeSandbox hideStackBlitz scrollable />
|
|
<p class="mt-4">A playground sample with the pre-built Tailwind theme.</p>
|
|
<DocSectionCode :code="code2" embedded />
|
|
</DocSectionText>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
code1: {
|
|
basic: `
|
|
export const TRANSITIONS = {
|
|
overlay: {
|
|
enterFromClass: 'opacity-0 scale-75',
|
|
enterActiveClass: 'transition-transform transition-opacity duration-150 ease-in',
|
|
leaveActiveClass: 'transition-opacity duration-150 ease-linear',
|
|
leaveToClass: 'opacity-0'
|
|
}
|
|
};
|
|
export default {
|
|
confirmpopup: {
|
|
root: {
|
|
class: [
|
|
'bg-white text-gray-700 border-0 rounded-md shadow-lg',
|
|
'z-40 transform origin-center',
|
|
'mt-3 absolute left-0 top-0',
|
|
'before:absolute before:w-0 before:-top-3 before:h-0 before:border-transparent before:border-solid before:ml-6 before:border-x-[0.75rem] before:border-b-[0.75rem] before:border-t-0 before:border-b-white dark:before:border-b-gray-900',
|
|
'dark:border dark:border-blue-900/40 dark:bg-gray-900 dark:text-white/80'
|
|
]
|
|
},
|
|
content: {
|
|
class: 'p-5 items-center flex'
|
|
},
|
|
icon: {
|
|
class: 'text-2xl'
|
|
},
|
|
message: {
|
|
class: 'ml-4'
|
|
},
|
|
footer: {
|
|
class: 'flex gap-2 justify-end align-center text-right px-5 py-5 pt-0'
|
|
},
|
|
transition: TRANSITIONS.overlay
|
|
}
|
|
}
|
|
`
|
|
},
|
|
code2: {
|
|
composition: `
|
|
<template>
|
|
<Toast />
|
|
<ConfirmPopup></ConfirmPopup>
|
|
<div class="card flex flex-wrap gap-2 justify-center">
|
|
<Button @click="confirm1($event)" icon="pi pi-check" label="Confirm"></Button>
|
|
<Button @click="confirm2($event)" icon="pi pi-times" label="Delete" outlined severity="danger"></Button>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup>
|
|
import { useConfirm } from "primevue/useconfirm";
|
|
import { useToast } from "primevue/usetoast";
|
|
|
|
const confirm = useConfirm();
|
|
const toast = useToast();
|
|
|
|
const confirm1 = (event) => {
|
|
confirm.require({
|
|
target: event.currentTarget,
|
|
message: 'Are you sure you want to proceed?',
|
|
icon: 'pi pi-exclamation-triangle',
|
|
accept: () => {
|
|
toast.add({ severity: 'info', summary: 'Confirmed', detail: 'You have accepted', life: 3000 });
|
|
},
|
|
reject: () => {
|
|
toast.add({ severity: 'error', summary: 'Rejected', detail: 'You have rejected', life: 3000 });
|
|
}
|
|
});
|
|
};
|
|
|
|
const confirm2 = (event) => {
|
|
confirm.require({
|
|
target: event.currentTarget,
|
|
message: 'Do you want to delete this record?',
|
|
icon: 'pi pi-info-circle',
|
|
acceptClass: 'p-button-danger',
|
|
accept: () => {
|
|
toast.add({ severity: 'info', summary: 'Confirmed', detail: 'Record deleted', life: 3000 });
|
|
},
|
|
reject: () => {
|
|
toast.add({ severity: 'error', summary: 'Rejected', detail: 'You have rejected', life: 3000 });
|
|
}
|
|
});
|
|
};
|
|
<\/script>
|
|
`
|
|
}
|
|
};
|
|
}
|
|
};
|
|
</script>
|