Button section pt demos added

pull/3913/head
Tuğçe Küçükoğlu 2023-04-28 12:47:17 +03:00
parent 36dc999bda
commit cf7eb76578
11 changed files with 578 additions and 4 deletions

44
doc/button/pt/PTDoc.vue Normal file
View File

@ -0,0 +1,44 @@
<template>
<DocSectionText v-bind="$attrs"> </DocSectionText>
<div class="card flex flex-wrap gap-3 justify-content-center">
<Button label="Submit" icon="pi pi-check" :pt="{ root: { class: 'bg-indigo-600 border-indigo-600' } }" />
</div>
<DocSectionCode :code="code" />
</template>
<script>
export default {
data() {
return {
code: {
basic: `
<Button label="Submit" icon="pi pi-check"
:pt="{
root: { class: 'bg-indigo-600 border-indigo-600' }
}"
/>`,
options: `
<template>
<div class="card flex flex-wrap gap-3 justify-content-center">
<Button label="Submit" icon="pi pi-check"
:pt="{
root: { class: 'bg-indigo-600 border-indigo-600' }
}"
/>
</div>
</template>`,
composition: `
<template>
<div class="card flex flex-wrap gap-3 justify-content-center">
<Button label="Submit" icon="pi pi-check"
:pt="{
root: { class: 'bg-indigo-600 border-indigo-600' }
}"
/>
</div>
</template>`
}
};
}
};
</script>

View File

@ -0,0 +1,8 @@
<template>
<DocSectionText v-bind="$attrs">
<p>{{ $attrs.description }}</p>
</DocSectionText>
<div class="card">
<img class="w-full" src="https://primefaces.org/cdn/primevue/images/pt/wireframe-placeholder.jpg" />
</div>
</template>

41
doc/button/pt/index.vue Normal file
View File

@ -0,0 +1,41 @@
<template>
<div class="doc-main">
<div class="doc-intro">
<h1>Button Pass Through</h1>
</div>
<DocSections :docs="docs" />
</div>
<DocSectionNav :docs="docs" />
</template>
<script>
import DocApiTable from '@/components/doc/DocApiTable.vue';
import { getPTOption } from '@/components/doc/helpers/PTHelper.js';
import PtDoc from './PTDoc.vue';
import PTImage from './PTImage.vue';
export default {
data() {
return {
docs: [
{
id: 'pt.image',
label: 'Wireframe',
component: PTImage
},
{
id: 'pt.doc.button',
label: 'Button PT Options',
component: DocApiTable,
data: getPTOption('Button')
},
{
id: 'pt.demo',
label: 'Demo',
component: PtDoc
}
]
};
}
};
</script>

200
doc/speeddial/pt/PTDoc.vue Normal file
View File

@ -0,0 +1,200 @@
<template>
<DocSectionText v-bind="$attrs"> </DocSectionText>
<div class="card">
<div :style="{ position: 'relative', height: '300px' }">
<SpeedDial
:model="items"
direction="down"
:style="{ left: 'calc(50% - 2rem)', top: 0 }"
:pt="{
action: ({ props, state, context }) => ({
class: context.active ? 'bg-primary' : undefined
})
}"
/>
</div>
</div>
<DocSectionCode :code="code" />
</template>
<script>
export default {
data() {
return {
items: [
{
label: 'Add',
icon: 'pi pi-pencil',
command: () => {
this.$toast.add({ severity: 'info', summary: 'Add', detail: 'Data Added' });
}
},
{
label: 'Update',
icon: 'pi pi-refresh',
command: () => {
this.$toast.add({ severity: 'success', summary: 'Update', detail: 'Data Updated' });
}
},
{
label: 'Delete',
icon: 'pi pi-trash',
command: () => {
this.$toast.add({ severity: 'error', summary: 'Delete', detail: 'Data Deleted' });
}
},
{
label: 'Upload',
icon: 'pi pi-upload',
command: () => {
this.$router.push('/fileupload');
}
},
{
label: 'Vue Website',
icon: 'pi pi-external-link',
command: () => {
window.location.href = 'https://vuejs.org/';
}
}
],
code: {
basic: `
<SpeedDial :model="items" direction="down" :style="{ left: 'calc(50% - 2rem)', top: 0 }"
:pt="{
action: ({ props, state, menuitemId }) => ({ class: actionClass(state, menuitemId) })
}"
/>`,
options: `
<template>
<div class="card">
<div :style="{ position: 'relative', height: '300px' }">
<SpeedDial :model="items" direction="down" :style="{ left: 'calc(50% - 2rem)', top: 0 }"
:pt="{
action: ({ props, state, menuitemId }) => ({ class: actionClass(state, menuitemId) })
}"
/>
</div>
<Toast />
</div>
</template>
<script>
export default {
data() {
return {
items: [
{
label: 'Add',
icon: 'pi pi-pencil',
command: () => {
this.$toast.add({ severity: 'info', summary: 'Add', detail: 'Data Added' });
}
},
{
label: 'Update',
icon: 'pi pi-refresh',
command: () => {
this.$toast.add({ severity: 'success', summary: 'Update', detail: 'Data Updated' });
}
},
{
label: 'Delete',
icon: 'pi pi-trash',
command: () => {
this.$toast.add({ severity: 'error', summary: 'Delete', detail: 'Data Deleted' });
}
},
{
label: 'Upload',
icon: 'pi pi-upload',
command: () => {
this.$router.push('/fileupload');
}
},
{
label: 'Vue Website',
icon: 'pi pi-external-link',
command: () => {
window.location.href = 'https://vuejs.org/';
}
}
]
}
},
methods: {
actionClass(state, menuitemId) {
return menuitemId === state.focusedOptionIndex ? 'bg-primary' : undefined;
}
}
};
<\/script>`,
composition: `
<template>
<div class="card">
<div :style="{ position: 'relative', height: '300px' }">
<SpeedDial :model="items" direction="down" :style="{ left: 'calc(50% - 2rem)', top: 0 }"
:pt="{
action: ({ props, state, menuitemId }) => ({ class: actionClass(state, menuitemId) })
}"
/>
</div>
<Toast />
</div>
</template>
<script setup>
import { ref } from 'vue';
import { useToast } from 'primevue/usetoast';
import { useRouter } from 'vue-router';
const toast = useToast();
const router = useRouter();
const actionClass => (state, menuitemId) = {
return menuitemId === state.focusedOptionIndex ? 'bg-primary' : undefined;
};
const items = ref([
{
label: 'Add',
icon: 'pi pi-pencil',
command: () => {
toast.add({ severity: 'info', summary: 'Add', detail: 'Data Added' });
}
},
{
label: 'Update',
icon: 'pi pi-refresh',
command: () => {
toast.add({ severity: 'success', summary: 'Update', detail: 'Data Updated' });
}
},
{
label: 'Delete',
icon: 'pi pi-trash',
command: () => {
toast.add({ severity: 'error', summary: 'Delete', detail: 'Data Deleted' });
}
},
{
label: 'Upload',
icon: 'pi pi-upload',
command: () => {
router.push('/fileupload');
}
},
{
label: 'Vue Website',
icon: 'pi pi-external-link',
command: () => {
window.location.href = 'https://vuejs.org/'
}
}
])
<\/script>`
}
};
}
};
</script>

View File

@ -0,0 +1,8 @@
<template>
<DocSectionText v-bind="$attrs">
<p>{{ $attrs.description }}</p>
</DocSectionText>
<div class="card">
<img class="w-full" src="https://primefaces.org/cdn/primevue/images/pt/wireframe-placeholder.jpg" />
</div>
</template>

View File

@ -0,0 +1,41 @@
<template>
<div class="doc-main">
<div class="doc-intro">
<h1>SpeedDial Pass Through</h1>
</div>
<DocSections :docs="docs" />
</div>
<DocSectionNav :docs="docs" />
</template>
<script>
import DocApiTable from '@/components/doc/DocApiTable.vue';
import { getPTOption } from '@/components/doc/helpers/PTHelper.js';
import PtDoc from './PTDoc.vue';
import PTImage from './PTImage.vue';
export default {
data() {
return {
docs: [
{
id: 'pt.image',
label: 'Wireframe',
component: PTImage
},
{
id: 'pt.doc.speeddial',
label: 'SpeedDial PT Options',
component: DocApiTable,
data: getPTOption('SpeedDial')
},
{
id: 'pt.demo',
label: 'Demo',
component: PtDoc
}
]
};
}
};
</script>

View File

@ -0,0 +1,172 @@
<template>
<DocSectionText v-bind="$attrs"> </DocSectionText>
<div class="card flex justify-content-center">
<SplitButton
label="Save"
@click="save"
:model="items"
:pt="{
menu: {
root: { class: 'surface-ground' }
}
}"
/>
</div>
<DocSectionCode :code="code" />
</template>
<script>
export default {
data() {
return {
items: [
{
label: 'Update',
icon: 'pi pi-refresh',
command: () => {
this.$toast.add({ severity: 'success', summary: 'Updated', detail: 'Data Updated', life: 3000 });
}
},
{
label: 'Delete',
icon: 'pi pi-times',
command: () => {
this.$toast.add({ severity: 'warn', summary: 'Delete', detail: 'Data Deleted', life: 3000 });
}
},
{
label: 'Vue Website',
icon: 'pi pi-external-link',
command: () => {
window.location.href = 'https://vuejs.org/';
}
},
{ label: 'Upload', icon: 'pi pi-upload', to: '/fileupload' }
],
code: {
basic: `
<SplitButton label="Save"
@click="save"
:model="items"
:pt="{
menu: {
root: { class: 'surface-ground' }
}
}"
/>`,
options: `
<template>
<div class="card flex justify-content-center">
<SplitButton
label="Save"
icon="pi pi-plus"
@click="save"
:model="items"
:pt="{
menu: {
root: { class: 'surface-ground' }
}
}"
/>
</div>
<Toast />
</template>
<script>
export default {
data() {
return {
items: [
{
label: 'Update',
icon: 'pi pi-refresh',
command: () => {
this.$toast.add({ severity: 'success', summary: 'Updated', detail: 'Data Updated', life: 3000 });
}
},
{
label: 'Delete',
icon: 'pi pi-times',
command: () => {
this.$toast.add({ severity: 'warn', summary: 'Delete', detail: 'Data Deleted', life: 3000 });
}
},
{
label: 'Vue Website',
icon: 'pi pi-external-link',
command: () => {
window.location.href = 'https://vuejs.org/';
}
},
{ label: 'Upload', icon: 'pi pi-upload', to: '/fileupload' }
]
};
},
methods: {
save() {
this.$toast.add({ severity: 'success', summary: 'Success', detail: 'Data Saved', life: 3000 });
}
}
};
<\/script>`,
composition: `
<template>
<div class="card flex justify-content-center">
<SplitButton
label="Save"
icon="pi pi-plus"
@click="save"
:model="items"
:pt="{
menu: {
root: { class: 'surface-ground' }
}
}"
/>
</div>
<Toast />
</template>
<script setup>
import { useToast } from "primevue/usetoast";
const toast = useToast();
const items = [
{
label: 'Update',
icon: 'pi pi-refresh',
command: () => {
toast.add({ severity: 'success', summary: 'Updated', detail: 'Data Updated', life: 3000 });
}
},
{
label: 'Delete',
icon: 'pi pi-times',
command: () => {
toast.add({ severity: 'warn', summary: 'Delete', detail: 'Data Deleted', life: 3000 });
}
},
{
label: 'Vue Website',
icon: 'pi pi-external-link',
command: () => {
window.location.href = 'https://vuejs.org/';
}
},
{ label: 'Upload', icon: 'pi pi-upload', to: '/fileupload' }
];
const save = () => {
toast.add({ severity: 'success', summary: 'Success', detail: 'Data Saved', life: 3000 });
};
<\/script>`
}
};
},
methods: {
save() {
this.$toast.add({ severity: 'success', summary: 'Success', detail: 'Data Saved', life: 3000 });
}
}
};
</script>

View File

@ -0,0 +1,8 @@
<template>
<DocSectionText v-bind="$attrs">
<p>{{ $attrs.description }}</p>
</DocSectionText>
<div class="card">
<img class="w-full" src="https://primefaces.org/cdn/primevue/images/pt/wireframe-placeholder.jpg" />
</div>
</template>

View File

@ -0,0 +1,41 @@
<template>
<div class="doc-main">
<div class="doc-intro">
<h1>SplitButton Pass Through</h1>
</div>
<DocSections :docs="docs" />
</div>
<DocSectionNav :docs="docs" />
</template>
<script>
import DocApiTable from '@/components/doc/DocApiTable.vue';
import { getPTOption } from '@/components/doc/helpers/PTHelper.js';
import PtDoc from './PTDoc.vue';
import PTImage from './PTImage.vue';
export default {
data() {
return {
docs: [
{
id: 'pt.image',
label: 'Wireframe',
component: PTImage
},
{
id: 'pt.doc.splitbutton',
label: 'SplitButton PT Options',
component: DocApiTable,
data: getPTOption('SplitButton')
},
{
id: 'pt.demo',
label: 'Demo',
component: PtDoc
}
]
};
}
};
</script>

View File

@ -1,5 +1,12 @@
<template>
<DocComponent title="Vue Speed Dial Component" header="Speed Dial" description="When pressed, a floating action button can display multiple primary actions that can be performed on a page." :componentDocs="docs" :apiDocs="['SpeedDial']" />
<DocComponent
title="Vue Speed Dial Component"
header="Speed Dial"
description="When pressed, a floating action button can display multiple primary actions that can be performed on a page."
:componentDocs="docs"
:apiDocs="['SpeedDial']"
:ptTabComponent="ptComponent"
/>
</template>
<script>
@ -12,6 +19,7 @@ import MaskDoc from '@/doc/speeddial/MaskDoc.vue';
import QuarterCircleDoc from '@/doc/speeddial/QuarterCircleDoc.vue';
import SemiCircleDoc from '@/doc/speeddial/SemiCircleDoc.vue';
import TooltipDoc from '@/doc/speeddial/TooltipDoc.vue';
import PTComponent from '@/doc/speeddial/pt/index.vue';
export default {
data() {
@ -26,7 +34,8 @@ export default {
{ id: 'mask', label: 'Mask', component: MaskDoc },
{ id: 'custom', label: 'Custom', component: CustomDoc },
{ id: 'accessibility', label: 'Accessibility', component: AccessibilityDoc }
]
],
ptComponent: PTComponent
};
}
};

View File

@ -1,5 +1,5 @@
<template>
<DocComponent title="Vue SplitButton Component" header="SplitButton" description="SplitButton groups a set of commands in an overlay with a default command." :componentDocs="docs" :apiDocs="['SplitButton']" />
<DocComponent title="Vue SplitButton Component" header="SplitButton" description="SplitButton groups a set of commands in an overlay with a default command." :componentDocs="docs" :apiDocs="['SplitButton']" :ptTabComponent="ptComponent" />
</template>
<script>
@ -16,6 +16,7 @@ import SizesDoc from '@/doc/splitbutton/SizesDoc.vue';
import StyleDoc from '@/doc/splitbutton/StyleDoc.vue';
import TemplateDoc from '@/doc/splitbutton/TemplateDoc.vue';
import TextDoc from '@/doc/splitbutton/TextDoc.vue';
import PTComponent from '@/doc/splitbutton/pt/index.vue';
export default {
data() {
@ -86,7 +87,8 @@ export default {
label: 'Accessibility',
component: AccessibilityDoc
}
]
],
ptComponent: PTComponent
};
}
};