Implemented Fieldset component
parent
f8edaffc7f
commit
daf223766c
|
@ -43,6 +43,7 @@
|
||||||
<div :class="{'submenuhide': activeMenuIndex !== 3, 'submenushow': activeMenuIndex === 3}">
|
<div :class="{'submenuhide': activeMenuIndex !== 3, 'submenushow': activeMenuIndex === 3}">
|
||||||
<div>
|
<div>
|
||||||
<router-link to="/panel">● Panel</router-link>
|
<router-link to="/panel">● Panel</router-link>
|
||||||
|
<router-link to="/fieldset">● Fieldset</router-link>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -2,4 +2,5 @@
|
||||||
@import '../../components/inputtext/InputText.css';
|
@import '../../components/inputtext/InputText.css';
|
||||||
@import '../../components/listbox/ListBox.css';
|
@import '../../components/listbox/ListBox.css';
|
||||||
@import '../../components/button/Button.css';
|
@import '../../components/button/Button.css';
|
||||||
@import '../../components/panel/Panel.css';
|
@import '../../components/panel/Panel.css';
|
||||||
|
@import '../../components/fieldset/Fieldset.css';
|
|
@ -0,0 +1,45 @@
|
||||||
|
.p-fieldset,
|
||||||
|
.p-fieldset .p-fieldset-legend {
|
||||||
|
padding: 0.5em 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.p-fieldset-toggleable .p-fieldset-legend {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.p-fieldset-toggleable .p-fieldset-legend a {
|
||||||
|
padding: 0.5em 1em;
|
||||||
|
cursor:pointer;
|
||||||
|
white-space: nowrap;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.p-fieldset .p-fieldset-toggler {
|
||||||
|
margin-right: .1em;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.p-fieldset .p-fieldset-legend-text {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.p-fieldset-content-wrapper-enter,
|
||||||
|
.p-fieldset-content-wrapper-leave-to {
|
||||||
|
max-height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.p-fieldset-content-wrapper-enter-to,
|
||||||
|
.p-fieldset-content-wrapper-leave {
|
||||||
|
max-height: 1000px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.p-fieldset-content-wrapper-leave-active {
|
||||||
|
overflow: hidden;
|
||||||
|
transition: max-height 0.45s cubic-bezier(0, 1, 0, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.p-fieldset-content-wrapper-enter-active {
|
||||||
|
overflow: hidden;
|
||||||
|
transition: max-height 1s ease-in-out;
|
||||||
|
}
|
|
@ -0,0 +1,46 @@
|
||||||
|
<template>
|
||||||
|
<fieldset :class="['p-fieldset p-component', {'p-fieldset-toggleable': toggleable}]">
|
||||||
|
<legend class="p-fieldset-legend p-unselectable-text">
|
||||||
|
<slot name="legend" v-if="!toggleable">
|
||||||
|
<span class="p-fieldset-legend-text" >{{legend}}</span>
|
||||||
|
</slot>
|
||||||
|
<a tabindex="0" v-if="toggleable" @click="toggle" @keydown.enter="toggle">
|
||||||
|
<span class="p-fieldset-toggler pi pi-minus"></span>
|
||||||
|
<slot name="legend">
|
||||||
|
<span class="p-fieldset-legend-text">{{legend}}</span>
|
||||||
|
</slot>
|
||||||
|
</a>
|
||||||
|
</legend>
|
||||||
|
<transition name="p-fieldset-content-wrapper">
|
||||||
|
<div class="p-fieldset-content-wrapper" v-show="!d_collapsed">
|
||||||
|
<div class="p-fieldset-content">
|
||||||
|
<slot></slot>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</transition>
|
||||||
|
</fieldset>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
legend: String,
|
||||||
|
toggleable: Boolean,
|
||||||
|
collapsed: Boolean
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
d_collapsed: this.collapsed
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
toggle() {
|
||||||
|
this.d_collapsed = !this.d_collapsed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
|
||||||
|
</style>
|
|
@ -48,7 +48,7 @@
|
||||||
|
|
||||||
.p-panel-content-wrapper-leave-active {
|
.p-panel-content-wrapper-leave-active {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
transition: max-height 0.5s cubic-bezier(0, 1, 0, 1);
|
transition: max-height 0.45s cubic-bezier(0, 1, 0, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.p-panel-content-wrapper-enter-active {
|
.p-panel-content-wrapper-enter-active {
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<slot name="header">
|
<slot name="header">
|
||||||
<span class="p-panel-title" v-if="header">{{header}}</span>
|
<span class="p-panel-title" v-if="header">{{header}}</span>
|
||||||
</slot>
|
</slot>
|
||||||
<a v-if="toggleable" tabindex="0" class="p-panel-titlebar-icon p-panel-titlebar-toggler" @click="toggle">
|
<a v-if="toggleable" tabindex="0" class="p-panel-titlebar-icon p-panel-titlebar-toggler" @click="toggle" @keydown.enter="toggle">
|
||||||
<span :class="{'pi pi-minus': !d_collapsed, 'pi pi-plus': d_collapsed}"></span>
|
<span :class="{'pi pi-minus': !d_collapsed, 'pi pi-plus': d_collapsed}"></span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -5,6 +5,7 @@ import InputText from './components/inputtext/InputText';
|
||||||
import ListBox from './components/listbox/ListBox';
|
import ListBox from './components/listbox/ListBox';
|
||||||
import Button from './components/button/Button';
|
import Button from './components/button/Button';
|
||||||
import Panel from './components/panel/Panel';
|
import Panel from './components/panel/Panel';
|
||||||
|
import Fieldset from './components/fieldset/Fieldset';
|
||||||
|
|
||||||
import './assets/styles/primevue.css';
|
import './assets/styles/primevue.css';
|
||||||
import 'primeflex/primeflex.css';
|
import 'primeflex/primeflex.css';
|
||||||
|
@ -16,6 +17,7 @@ Vue.component('p-inputtext', InputText);
|
||||||
Vue.component('p-button', Button);
|
Vue.component('p-button', Button);
|
||||||
Vue.component('p-listBox', ListBox);
|
Vue.component('p-listBox', ListBox);
|
||||||
Vue.component('p-panel', Panel);
|
Vue.component('p-panel', Panel);
|
||||||
|
Vue.component('p-fieldset', Fieldset);
|
||||||
|
|
||||||
new Vue({
|
new Vue({
|
||||||
router,
|
router,
|
||||||
|
|
|
@ -30,6 +30,11 @@ export default new Router({
|
||||||
path: '/panel',
|
path: '/panel',
|
||||||
name: 'panel',
|
name: 'panel',
|
||||||
component: () => import('./views/panel/PanelDemo.vue')
|
component: () => import('./views/panel/PanelDemo.vue')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/fieldset',
|
||||||
|
name: 'fieldset',
|
||||||
|
component: () => import('./views/fieldset/FieldsetDemo.vue')
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="content-section introduction">
|
||||||
|
<div class="feature-intro">
|
||||||
|
<h1>Fieldset</h1>
|
||||||
|
<p>Fieldset is a grouping component with the optional content toggle feature.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="content-section implementation">
|
||||||
|
<h3 class="first">Regular</h3>
|
||||||
|
<p-fieldset legend="Godfather I">
|
||||||
|
The story begins as Don Vito Corleone, the head of a New York Mafia family, oversees his daughter's wedding.
|
||||||
|
His beloved son Michael has just come home from the war, but does not intend to become part of his father's business.
|
||||||
|
Through Michael's life the nature of the family business becomes clear. The business of the family is just like the head of the family,
|
||||||
|
kind and benevolent to those who give respect, but given to ruthless violence whenever anything stands against the good of the family.
|
||||||
|
</p-fieldset>
|
||||||
|
|
||||||
|
<h3>Toggleable</h3>
|
||||||
|
<p-fieldset legend="Godfather I" :toggleable="true">
|
||||||
|
The story begins as Don Vito Corleone, the head of a New York Mafia family, oversees his daughter's wedding.
|
||||||
|
His beloved son Michael has just come home from the war, but does not intend to become part of his father's business.
|
||||||
|
Through Michael's life the nature of the family business becomes clear. The business of the family is just like the head of the family,
|
||||||
|
kind and benevolent to those who give respect, but given to ruthless violence whenever anything stands against the good of the family.
|
||||||
|
</p-fieldset>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
value1: '',
|
||||||
|
value2: '',
|
||||||
|
value3: 'PrimeVue'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
|
||||||
|
</style>
|
Loading…
Reference in New Issue