Add ripple

pull/358/head
cagataycivici 2020-06-27 12:36:55 +03:00
parent 10a8e47d0c
commit c547b037fd
28 changed files with 185 additions and 92 deletions

View File

@ -53,7 +53,6 @@
<div class="menu-category">Data</div> <div class="menu-category">Data</div>
<div class="menu-items"> <div class="menu-items">
<router-link to="/carousel">Carousel</router-link>
<router-link to="/datatable" v-slot="{ href, route, navigate, isActive }"> <router-link to="/datatable" v-slot="{ href, route, navigate, isActive }">
<div> <div>
<a tabindex="0" @click="toggleSubmenu($event, 'datatable')">DataTable</a> <a tabindex="0" @click="toggleSubmenu($event, 'datatable')">DataTable</a>
@ -198,6 +197,7 @@
<div class="menu-category">Media</div> <div class="menu-category">Media</div>
<div class="menu-items"> <div class="menu-items">
<router-link to="/carousel">Carousel</router-link>
<router-link to="/galleria" v-slot="{ href, route, navigate, isActive }"> <router-link to="/galleria" v-slot="{ href, route, navigate, isActive }">
<div> <div>
<a tabindex="0" @click="toggleSubmenu($event, 'galleria')">Galleria</a> <a tabindex="0" @click="toggleSubmenu($event, 'galleria')">Galleria</a>

View File

@ -5,7 +5,7 @@
</div> </div>
<div :class="contentClasses"> <div :class="contentClasses">
<div :class="containerClasses"> <div :class="containerClasses">
<button :class="['p-carousel-prev p-link', {'p-disabled': backwardIsDisabled}]" :disabled="backwardIsDisabled" @click="navBackward" type="button"> <button :class="['p-carousel-prev p-link', {'p-disabled': backwardIsDisabled}]" :disabled="backwardIsDisabled" @click="navBackward" type="button" v-ripple>
<span :class="['p-carousel-prev-icon pi', {'pi-chevron-left': !isVertical(),'pi-chevron-up': isVertical()}]"></span> <span :class="['p-carousel-prev-icon pi', {'pi-chevron-left': !isVertical(),'pi-chevron-up': isVertical()}]"></span>
</button> </button>
@ -36,7 +36,7 @@
</div> </div>
</div> </div>
<button :class="['p-carousel-next p-link', {'p-disabled': forwardIsDisabled}]" :disabled="forwardIsDisabled" @click="navForward" type="button"> <button :class="['p-carousel-next p-link', {'p-disabled': forwardIsDisabled}]" :disabled="forwardIsDisabled" @click="navForward" type="button" v-ripple>
<span :class="['p-carousel-prev-icon pi', {'pi-chevron-right': !isVertical(),'pi-chevron-down': isVertical()}]"></span> <span :class="['p-carousel-prev-icon pi', {'pi-chevron-right': !isVertical(),'pi-chevron-down': isVertical()}]"></span>
</button> </button>
</div> </div>
@ -55,6 +55,7 @@
<script> <script>
import UniqueComponentId from '../utils/UniqueComponentId'; import UniqueComponentId from '../utils/UniqueComponentId';
import DomHandler from '../utils/DomHandler'; import DomHandler from '../utils/DomHandler';
import Ripple from '../ripple/Ripple';
export default { export default {
props: { props: {
@ -490,7 +491,10 @@ export default {
indicatorsContentClasses() { indicatorsContentClasses() {
return ['p-carousel-indicators p-reset', this.indicatorsContentClass]; return ['p-carousel-indicators p-reset', this.indicatorsContentClass];
}, },
}, },
directives: {
'ripple': Ripple
},
name: "Carousel" name: "Carousel"
} }
</script> </script>
@ -514,7 +518,9 @@ export default {
flex-shrink: 0; flex-shrink: 0;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
overflow: hidden;
position: relative;
} }
.p-carousel-container { .p-carousel-container {

View File

@ -175,13 +175,6 @@ button {
display: none !important; display: none !important;
} }
@-webkit-keyframes ripple {
100% {
opacity: 0;
-webkit-transform: scale(2.5);
}
}
@keyframes ripple { @keyframes ripple {
100% { 100% {
opacity: 0; opacity: 0;

View File

@ -231,6 +231,8 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
text-decoration: none; text-decoration: none;
overflow: hidden;
position: relative;
} }
.p-contextmenu .p-menuitem-text { .p-contextmenu .p-menuitem-text {

View File

@ -4,11 +4,11 @@
<template v-for="(item, i) of model"> <template v-for="(item, i) of model">
<li role="none" :class="getItemClass(item)" :style="item.style" v-if="visible(item) && !item.separator" :key="item.label + i" <li role="none" :class="getItemClass(item)" :style="item.style" v-if="visible(item) && !item.separator" :key="item.label + i"
@mouseenter="onItemMouseEnter($event, item)"> @mouseenter="onItemMouseEnter($event, item)">
<router-link v-if="item.to && !item.disabled" :to="item.to" :class="getLinkClass(item)" @click.native="onItemClick($event, item)" role="menuitem"> <router-link v-if="item.to && !item.disabled" :to="item.to" :class="getLinkClass(item)" @click.native="onItemClick($event, item)" role="menuitem" v-ripple>
<span :class="['p-menuitem-icon', item.icon]"></span> <span :class="['p-menuitem-icon', item.icon]"></span>
<span class="p-menuitem-text">{{item.label}}</span> <span class="p-menuitem-text">{{item.label}}</span>
</router-link> </router-link>
<a v-else :href="item.url" :class="getLinkClass(item)" :target="item.target" @click="onItemClick($event, item)" <a v-else :href="item.url" :class="getLinkClass(item)" :target="item.target" @click="onItemClick($event, item)" v-ripple
:aria-haspopup="item.items != null" :aria-expanded="item === activeItem" role="menuitem" :tabindex="item.disabled ? null : '0'"> :aria-haspopup="item.items != null" :aria-expanded="item === activeItem" role="menuitem" :tabindex="item.disabled ? null : '0'">
<span :class="['p-menuitem-icon', item.icon]"></span> <span :class="['p-menuitem-icon', item.icon]"></span>
<span class="p-menuitem-text">{{item.label}}</span> <span class="p-menuitem-text">{{item.label}}</span>
@ -25,6 +25,7 @@
<script> <script>
import DomHandler from '../utils/DomHandler'; import DomHandler from '../utils/DomHandler';
import Ripple from '../ripple/Ripple';
export default { export default {
name: 'sub-menu', name: 'sub-menu',
@ -125,6 +126,9 @@ export default {
containerClass() { containerClass() {
return {'p-submenu-list': !this.root}; return {'p-submenu-list': !this.root};
} }
},
directives: {
'ripple': Ripple
} }
} }
</script> </script>

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="p-fileupload p-component" v-if="isAdvanced"> <div class="p-fileupload p-component" v-if="isAdvanced">
<div class="p-fileupload-buttonbar"> <div class="p-fileupload-buttonbar">
<span icon="pi pi-plus" :class="advancedChooseButtonClass"> <span icon="pi pi-plus" :class="advancedChooseButtonClass" v-ripple>
<input ref="fileInput" type="file" @change="onFileSelect" @focus="onFocus" @blur="onBlur" <input ref="fileInput" type="file" @change="onFileSelect" @focus="onFocus" @blur="onBlur"
:multiple="multiple" :accept="accept" :disabled="disabled" /> :multiple="multiple" :accept="accept" :disabled="disabled" />
<span class="p-button-icon p-button-icon-left pi pi-fw pi-plus"></span> <span class="p-button-icon p-button-icon-left pi pi-fw pi-plus"></span>
@ -31,7 +31,7 @@
</div> </div>
</div> </div>
</div> </div>
<span :class="basicChooseButtonClass" @mouseup="onBasicUploaderClick" v-else-if="isBasic"> <span :class="basicChooseButtonClass" @mouseup="onBasicUploaderClick" v-else-if="isBasic" v-ripple>
<span :class="basicChooseButtonIconClass"></span> <span :class="basicChooseButtonIconClass"></span>
<span class="p-button-text">{{basicChooseButtonLabel}}</span> <span class="p-button-text">{{basicChooseButtonLabel}}</span>
<input ref="fileInput" type="file" :accept="accept" :disabled="disabled" @change="onFileSelect" @focus="onFocus" @blur="onBlur" v-if="!hasFiles" /> <input ref="fileInput" type="file" :accept="accept" :disabled="disabled" @change="onFileSelect" @focus="onFocus" @blur="onBlur" v-if="!hasFiles" />
@ -43,6 +43,7 @@ import Button from '../button/Button';
import ProgressBar from '../progressbar/ProgressBar'; import ProgressBar from '../progressbar/ProgressBar';
import Message from '../message/Message'; import Message from '../message/Message';
import DomHandler from '../utils/DomHandler'; import DomHandler from '../utils/DomHandler';
import Ripple from '../ripple/Ripple';
export default { export default {
props: { props: {
@ -343,6 +344,9 @@ export default {
'FileUploadProgressBar': ProgressBar, 'FileUploadProgressBar': ProgressBar,
'FileUploadMessage': Message 'FileUploadMessage': Message
}, },
directives: {
'ripple': Ripple
}
} }
</script> </script>
@ -380,6 +384,7 @@ export default {
filter: alpha(opacity=0); filter: alpha(opacity=0);
direction: ltr; direction: ltr;
cursor: pointer; cursor: pointer;
display: none;
} }
.p-fileupload-choose.p-fileupload-choose-selected input[type=file] { .p-fileupload-choose.p-fileupload-choose-selected input[type=file] {

View File

@ -215,6 +215,7 @@ export default {
display: inline-flex; display: inline-flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
overflow: hidden;
} }
.p-galleria-item-prev { .p-galleria-item-prev {
@ -273,7 +274,9 @@ export default {
flex: 0 0 auto; flex: 0 0 auto;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
overflow: hidden;
position: relative;
} }
.p-galleria-thumbnail-prev span, .p-galleria-thumbnail-prev span,
@ -435,6 +438,7 @@ export default {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
overflow: hidden;
} }
.p-galleria-mask .p-galleria-item-nav { .p-galleria-mask .p-galleria-item-nav {

View File

@ -1,6 +1,6 @@
<template> <template>
<div :id="id" v-if="$attrs.value && $attrs.value.length > 0" :class="galleriaClass" :style="$attrs.containerStyle"> <div :id="id" v-if="$attrs.value && $attrs.value.length > 0" :class="galleriaClass" :style="$attrs.containerStyle">
<button v-if="$attrs.fullScreen" type="button" class="p-galleria-close p-link" @click="$emit('maskHide')"> <button v-if="$attrs.fullScreen" type="button" class="p-galleria-close p-link" @click="$emit('maskHide')" v-ripple>
<span class="p-galleria-close-icon pi pi-times"></span> <span class="p-galleria-close-icon pi pi-times"></span>
</button> </button>
<div v-if="$attrs.templates && $attrs.templates['header']" class="p-galleria-header"> <div v-if="$attrs.templates && $attrs.templates['header']" class="p-galleria-header">
@ -28,6 +28,7 @@ import UniqueComponentId from '../utils/UniqueComponentId';
import GalleriaItem from './GalleriaItem'; import GalleriaItem from './GalleriaItem';
import GalleriaThumbnails from './GalleriaThumbnails'; import GalleriaThumbnails from './GalleriaThumbnails';
import GalleriaItemSlot from './GalleriaItemSlot'; import GalleriaItemSlot from './GalleriaItemSlot';
import Ripple from '../ripple/Ripple';
export default { export default {
inheritAttrs: false, inheritAttrs: false,
@ -97,6 +98,9 @@ export default {
'GalleriaItem': GalleriaItem, 'GalleriaItem': GalleriaItem,
'GalleriaThumbnails': GalleriaThumbnails, 'GalleriaThumbnails': GalleriaThumbnails,
'GalleriaItemSlot': GalleriaItemSlot 'GalleriaItemSlot': GalleriaItemSlot
},
directives: {
'ripple': Ripple
} }
} }
</script> </script>

View File

@ -1,13 +1,13 @@
<template> <template>
<div class="p-galleria-item-wrapper"> <div class="p-galleria-item-wrapper">
<div class="p-galleria-item-container"> <div class="p-galleria-item-container">
<button v-if="showItemNavigators" type="button" :class="navBackwardClass" @click="navBackward($event)" :disabled="isNavBackwardDisabled()"> <button v-if="showItemNavigators" type="button" :class="navBackwardClass" @click="navBackward($event)" :disabled="isNavBackwardDisabled()" v-ripple>
<span class="p-galleria-item-prev-icon pi pi-chevron-left"></span> <span class="p-galleria-item-prev-icon pi pi-chevron-left"></span>
</button> </button>
<div class="p-galleria-item"> <div class="p-galleria-item">
<GalleriaItemSlot type="item" :item="activeItem" :templates="templates" /> <GalleriaItemSlot type="item" :item="activeItem" :templates="templates" />
</div> </div>
<button v-if="showItemNavigators" type="button" :class="navForwardClass" @click="navForward($event)" :disabled="isNavForwardDisabled()"> <button v-if="showItemNavigators" type="button" :class="navForwardClass" @click="navForward($event)" :disabled="isNavForwardDisabled()" v-ripple>
<span class="p-galleria-item-next-icon pi pi-chevron-right"></span> <span class="p-galleria-item-next-icon pi pi-chevron-right"></span>
</button> </button>
<div class="p-galleria-caption" v-if="templates['caption']"> <div class="p-galleria-caption" v-if="templates['caption']">
@ -27,6 +27,7 @@
<script> <script>
import GalleriaItemSlot from './GalleriaItemSlot'; import GalleriaItemSlot from './GalleriaItemSlot';
import Ripple from '../ripple/Ripple';
export default { export default {
props: { props: {
@ -153,6 +154,9 @@ export default {
}, },
components: { components: {
'GalleriaItemSlot': GalleriaItemSlot 'GalleriaItemSlot': GalleriaItemSlot
},
directives: {
'ripple': Ripple
} }
}; };
</script> </script>

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="p-galleria-thumbnail-wrapper"> <div class="p-galleria-thumbnail-wrapper">
<div class="p-galleria-thumbnail-container"> <div class="p-galleria-thumbnail-container">
<button v-if="showThumbnailNavigators" :class="navBackwardClass" @click="navBackward($event)" :disabled="isNavBackwardDisabled()"> <button v-if="showThumbnailNavigators" :class="navBackwardClass" @click="navBackward($event)" :disabled="isNavBackwardDisabled()" v-ripple>
<span :class="navBackwardIconClass"></span> <span :class="navBackwardIconClass"></span>
</button> </button>
<div class="p-galleria-thumbnail-items-container" :style="{'height': isVertical ? contentHeight : ''}"> <div class="p-galleria-thumbnail-items-container" :style="{'height': isVertical ? contentHeight : ''}">
@ -18,7 +18,7 @@
</div> </div>
</div> </div>
</div> </div>
<button v-if="showThumbnailNavigators" :class="navForwardClass" @click="navForward($event)" :disabled="isNavForwardDisabled()"> <button v-if="showThumbnailNavigators" :class="navForwardClass" @click="navForward($event)" :disabled="isNavForwardDisabled()" v-ripple>
<span :class="navForwardIconClass"></span> <span :class="navForwardIconClass"></span>
</button> </button>
</div> </div>
@ -28,6 +28,7 @@
<script> <script>
import GalleriaItemSlot from './GalleriaItemSlot'; import GalleriaItemSlot from './GalleriaItemSlot';
import DomHandler from '../utils/DomHandler'; import DomHandler from '../utils/DomHandler';
import Ripple from '../ripple/Ripple';
export default { export default {
props: { props: {
@ -406,6 +407,9 @@ export default {
}, },
components: { components: {
'GalleriaItemSlot': GalleriaItemSlot 'GalleriaItemSlot': GalleriaItemSlot
},
directives: {
'ripple': Ripple
} }
} }
</script> </script>

View File

@ -5,7 +5,7 @@
<li v-if="visible(category)" :key="category.label + '_' + index" :class="getCategoryClass(category)" :style="category.style" <li v-if="visible(category)" :key="category.label + '_' + index" :class="getCategoryClass(category)" :style="category.style"
@mouseenter="onCategoryMouseEnter($event, category)" role="none"> @mouseenter="onCategoryMouseEnter($event, category)" role="none">
<a :href="category.url" :class="getLinkClass(category)" :target="category.target" @click="onCategoryClick($event, category)" @keydown="onCategoryKeydown($event, category)" <a :href="category.url" :class="getLinkClass(category)" :target="category.target" @click="onCategoryClick($event, category)" @keydown="onCategoryKeydown($event, category)"
role="menuitem" :aria-haspopup="category.items != null" :aria-expanded="category === activeItem" :tabindex="category.disabled ? null : '0'"> role="menuitem" :aria-haspopup="category.items != null" :aria-expanded="category === activeItem" :tabindex="category.disabled ? null : '0'" v-ripple>
<span v-if="category.icon" :class="getCategoryIcon(category)"></span> <span v-if="category.icon" :class="getCategoryIcon(category)"></span>
<span class="p-menuitem-text">{{category.label}}</span> <span class="p-menuitem-text">{{category.label}}</span>
<span v-if="category.items" :class="getCategorySubMenuIcon()"></span> <span v-if="category.items" :class="getCategorySubMenuIcon()"></span>
@ -17,11 +17,11 @@
<li :class="getSubmenuHeaderClass(submenu)" :style="submenu.style" role="presentation">{{submenu.label}}</li> <li :class="getSubmenuHeaderClass(submenu)" :style="submenu.style" role="presentation">{{submenu.label}}</li>
<template v-for="(item, i) of submenu.items"> <template v-for="(item, i) of submenu.items">
<li role="none" :class="getSubmenuItemClass(item)" :style="item.style" v-if="visible(item) && !item.separator" :key="item.label + i"> <li role="none" :class="getSubmenuItemClass(item)" :style="item.style" v-if="visible(item) && !item.separator" :key="item.label + i">
<router-link v-if="item.to && !item.disabled" :to="item.to" :class="getLinkClass(item)" @click.native="onLeafClick($event, item)" role="menuitem"> <router-link v-if="item.to && !item.disabled" :to="item.to" :class="getLinkClass(item)" @click.native="onLeafClick($event, item)" role="menuitem" v-ripple>
<span v-if="item.icon" :class="['p-menuitem-icon', item.icon]"></span> <span v-if="item.icon" :class="['p-menuitem-icon', item.icon]"></span>
<span class="p-menuitem-text">{{item.label}}</span> <span class="p-menuitem-text">{{item.label}}</span>
</router-link> </router-link>
<a v-else :href="item.url" :class="getLinkClass(item)" :target="item.target" @click="onLeafClick($event, item)" role="menuitem" :tabindex="item.disabled ? null : '0'"> <a v-else :href="item.url" :class="getLinkClass(item)" :target="item.target" @click="onLeafClick($event, item)" role="menuitem" :tabindex="item.disabled ? null : '0'" v-ripple>
<span v-if="item.icon" :class="['p-menuitem-icon', item.icon]"></span> <span v-if="item.icon" :class="['p-menuitem-icon', item.icon]"></span>
<span class="p-menuitem-text">{{item.label}}</span> <span class="p-menuitem-text">{{item.label}}</span>
<span :class="getSubmenuIcon()" v-if="item.items"></span> <span :class="getSubmenuIcon()" v-if="item.items"></span>
@ -44,6 +44,7 @@
<script> <script>
import DomHandler from '../utils/DomHandler'; import DomHandler from '../utils/DomHandler';
import Ripple from '../ripple/Ripple';
export default { export default {
props: { props: {
@ -294,6 +295,9 @@ export default {
vertical() { vertical() {
return this.orientation === 'vertical'; return this.orientation === 'vertical';
} }
},
directives: {
'ripple': Ripple
} }
} }
</script> </script>
@ -318,6 +322,8 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
text-decoration: none; text-decoration: none;
overflow: hidden;
position: relative;
} }
.p-megamenu .p-menuitem-text { .p-megamenu .p-menuitem-text {

View File

@ -195,6 +195,8 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
text-decoration: none; text-decoration: none;
overflow: hidden;
position: relative;
} }
.p-menu .p-menuitem-text { .p-menu .p-menuitem-text {

View File

@ -1,10 +1,10 @@
<template> <template>
<li :class="containerClass" role="none" :style="item.style" v-if="visible()"> <li :class="containerClass" role="none" :style="item.style" v-if="visible()">
<router-link v-if="item.to && !item.disabled" :to="item.to" :class="linkClass" role="menuitem"> <router-link v-if="item.to && !item.disabled" :to="item.to" :class="linkClass" role="menuitem" v-ripple>
<span :class="['p-menuitem-icon', item.icon]"></span> <span :class="['p-menuitem-icon', item.icon]"></span>
<span class="p-menuitem-text">{{item.label}}</span> <span class="p-menuitem-text">{{item.label}}</span>
</router-link> </router-link>
<a v-else :href="item.url" :class="linkClass" @click="onClick" :target="item.target" role="menuitem" :tabindex="item.disabled ? null : '0'"> <a v-else :href="item.url" :class="linkClass" @click="onClick" :target="item.target" role="menuitem" :tabindex="item.disabled ? null : '0'" v-ripple>
<span :class="['p-menuitem-icon', item.icon]"></span> <span :class="['p-menuitem-icon', item.icon]"></span>
<span class="p-menuitem-text">{{item.label}}</span> <span class="p-menuitem-text">{{item.label}}</span>
</a> </a>
@ -12,6 +12,8 @@
</template> </template>
<script> <script>
import Ripple from '../ripple/Ripple';
export default { export default {
props: { props: {
item: null item: null
@ -34,6 +36,9 @@ export default {
linkClass() { linkClass() {
return ['p-menuitem-link', {'p-disabled': this.item.disabled}]; return ['p-menuitem-link', {'p-disabled': this.item.disabled}];
} }
},
directives: {
'ripple': Ripple
} }
} }
</script> </script>

View File

@ -90,6 +90,8 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
text-decoration: none; text-decoration: none;
overflow: hidden;
position: relative;
} }
.p-menubar .p-menuitem-text { .p-menubar .p-menuitem-text {

View File

@ -3,13 +3,13 @@
<template v-for="(item, i) of model"> <template v-for="(item, i) of model">
<li role="none" :class="getItemClass(item)" :style="item.style" v-if="visible(item) && !item.separator" :key="item.label + i" <li role="none" :class="getItemClass(item)" :style="item.style" v-if="visible(item) && !item.separator" :key="item.label + i"
@mouseenter="onItemMouseEnter($event, item)"> @mouseenter="onItemMouseEnter($event, item)">
<router-link v-if="item.to && !item.disabled" :to="item.to" :class="getLinkClass(item)" <router-link v-if="item.to && !item.disabled" :to="item.to" :class="getLinkClass(item)" v-ripple
@click.native="onItemClick($event, item)" @keydown.native="onItemKeyDown($event, item)" role="menuitem"> @click.native="onItemClick($event, item)" @keydown.native="onItemKeyDown($event, item)" role="menuitem">
<span :class="['p-menuitem-icon', item.icon]"></span> <span :class="['p-menuitem-icon', item.icon]"></span>
<span class="p-menuitem-text">{{item.label}}</span> <span class="p-menuitem-text">{{item.label}}</span>
</router-link> </router-link>
<a v-else :href="item.url" :class="getLinkClass(item)" :target="item.target" :aria-haspopup="item.items != null" :aria-expanded="item === activeItem" <a v-else :href="item.url" :class="getLinkClass(item)" :target="item.target" :aria-haspopup="item.items != null" :aria-expanded="item === activeItem"
@click="onItemClick($event, item)" @keydown="onItemKeyDown($event, item)" role="menuitem" :tabindex="item.disabled ? null : '0'"> @click="onItemClick($event, item)" @keydown="onItemKeyDown($event, item)" role="menuitem" :tabindex="item.disabled ? null : '0'" v-ripple>
<span :class="['p-menuitem-icon', item.icon]"></span> <span :class="['p-menuitem-icon', item.icon]"></span>
<span class="p-menuitem-text">{{item.label}}</span> <span class="p-menuitem-text">{{item.label}}</span>
<span :class="getSubmenuIcon()" v-if="item.items"></span> <span :class="getSubmenuIcon()" v-if="item.items"></span>
@ -24,6 +24,7 @@
<script> <script>
import DomHandler from '../utils/DomHandler'; import DomHandler from '../utils/DomHandler';
import Ripple from '../ripple/Ripple';
export default { export default {
name: 'sub-menu', name: 'sub-menu',
@ -274,6 +275,9 @@ export default {
containerClass() { containerClass() {
return {'p-submenu-list': !this.root, 'p-menubar-root-list': this.root}; return {'p-submenu-list': !this.root, 'p-menubar-root-list': this.root};
} }
},
directives: {
'ripple': Ripple
} }
} }
</script> </script>

View File

@ -6,7 +6,7 @@
<div class="p-message-text"> <div class="p-message-text">
<slot></slot> <slot></slot>
</div> </div>
<button class="p-message-close p-link" @click="visible = false" v-if="closable" type="button"> <button class="p-message-close p-link" @click="visible = false" v-if="closable" type="button" v-ripple>
<i class="p-message-close-icon pi pi-times"></i> <i class="p-message-close-icon pi pi-times"></i>
</button> </button>
</div> </div>
@ -76,7 +76,9 @@ export default {
} }
.p-message-close.p-link { .p-message-close.p-link {
margin-left: auto margin-left: auto;
overflow: hidden;
position: relative;
} }
.p-message-enter { .p-message-enter {

View File

@ -1,16 +1,22 @@
<template> <template>
<button :class="containerClass" v-on="$listeners" type="button"> <button :class="containerClass" v-on="$listeners" type="button" v-ripple>
<span class="p-paginator-icon pi pi-angle-double-left"></span> <span class="p-paginator-icon pi pi-angle-double-left"></span>
</button> </button>
</template> </template>
<script> <script>
export default { import Ripple from '../ripple/Ripple';
computed: {
containerClass() { export default {
return ['p-paginator-first p-paginator-element p-link', { computed: {
'p-disabled': this.$attrs.disabled containerClass() {
}]; return ['p-paginator-first p-paginator-element p-link', {
} 'p-disabled': this.$attrs.disabled
} }];
} }
},
directives: {
'ripple': Ripple
}
}
</script> </script>

View File

@ -1,17 +1,22 @@
<template> <template>
<button :class="containerClass" v-on="$listeners" type="button"> <button :class="containerClass" v-on="$listeners" type="button" v-ripple>
<span class="p-paginator-icon pi pi-angle-double-right"></span> <span class="p-paginator-icon pi pi-angle-double-right"></span>
</button> </button>
</template> </template>
<script>
export default {
computed: { <script>
containerClass() { import Ripple from '../ripple/Ripple';
return ['p-paginator-last p-paginator-element p-link', {
'p-disabled': this.$attrs.disabled export default {
}]; computed: {
} containerClass() {
} return ['p-paginator-last p-paginator-element p-link', {
} 'p-disabled': this.$attrs.disabled
}];
}
},
directives: {
'ripple': Ripple
}
}
</script> </script>

View File

@ -1,16 +1,22 @@
<template> <template>
<button :class="containerClass" v-on="$listeners" type="button"> <button :class="containerClass" v-on="$listeners" type="button" v-ripple>
<span class="p-paginator-icon pi pi-angle-right"></span> <span class="p-paginator-icon pi pi-angle-right"></span>
</button> </button>
</template> </template>
<script> <script>
export default { import Ripple from '../ripple/Ripple';
computed: {
containerClass() { export default {
return ['p-paginator-next p-paginator-element p-link', { computed: {
'p-disabled': this.$attrs.disabled containerClass() {
}]; return ['p-paginator-next p-paginator-element p-link', {
} 'p-disabled': this.$attrs.disabled
} }];
} }
},
directives: {
'ripple': Ripple
}
}
</script> </script>

View File

@ -1,23 +1,28 @@
<template> <template>
<span class="p-paginator-pages"> <span class="p-paginator-pages">
<button v-for="pageLink of value" :key="pageLink" :class="['p-paginator-page p-paginator-element p-link', {'p-highlight': ((pageLink - 1) === page)}]" type="button" <button v-for="pageLink of value" :key="pageLink" :class="['p-paginator-page p-paginator-element p-link', {'p-highlight': ((pageLink - 1) === page)}]" type="button"
@click="onPageLinkClick($event, pageLink)">{{pageLink}}</button> @click="onPageLinkClick($event, pageLink)" v-ripple>{{pageLink}}</button>
</span> </span>
</template> </template>
<script> <script>
export default { import Ripple from '../ripple/Ripple';
inheritAttrs: false,
props: { export default {
value: Array, inheritAttrs: false,
page: Number props: {
}, value: Array,
methods: { page: Number
onPageLinkClick(event, pageLink) { },
this.$emit('click', { methods: {
originalEvent: event, onPageLinkClick(event, pageLink) {
value: pageLink this.$emit('click', {
}); originalEvent: event,
} value: pageLink
} });
} }
},
directives: {
'ripple': Ripple
}
}
</script> </script>

View File

@ -226,6 +226,8 @@ export default {
justify-content: center; justify-content: center;
line-height: 1; line-height: 1;
user-select: none; user-select: none;
overflow: hidden;
position: relative;
} }
.p-paginator-element:focus { .p-paginator-element:focus {

View File

@ -1,16 +1,22 @@
<template> <template>
<button :class="containerClass" v-on="$listeners" type="button"> <button :class="containerClass" v-on="$listeners" type="button" v-ripple>
<span class="p-paginator-icon pi pi-angle-left"></span> <span class="p-paginator-icon pi pi-angle-left"></span>
</button> </button>
</template> </template>
<script> <script>
export default { import Ripple from '../ripple/Ripple';
computed: {
containerClass() { export default {
return ['p-paginator-prev p-paginator-element p-link', { computed: {
'p-disabled': this.$attrs.disabled containerClass() {
}]; return ['p-paginator-prev p-paginator-element p-link', {
} 'p-disabled': this.$attrs.disabled
} }];
} }
},
directives: {
'ripple': Ripple
}
}
</script> </script>

View File

@ -159,7 +159,6 @@ export default {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
overflow: hidden; overflow: hidden;
position: relative;
} }
.p-sidebar-mask { .p-sidebar-mask {

View File

@ -179,6 +179,8 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
text-decoration: none; text-decoration: none;
overflow: hidden;
position: relative;
} }
.p-tieredmenu .p-menuitem-text { .p-tieredmenu .p-menuitem-text {

View File

@ -3,13 +3,13 @@
<template v-for="(item, i) of model"> <template v-for="(item, i) of model">
<li :class="getItemClass(item)" :style="item.style" v-if="visible(item) && !item.separator" :key="item.label + i" <li :class="getItemClass(item)" :style="item.style" v-if="visible(item) && !item.separator" :key="item.label + i"
@mouseenter="onItemMouseEnter($event, item)" role="none"> @mouseenter="onItemMouseEnter($event, item)" role="none">
<router-link v-if="item.to && !item.disabled" :to="item.to" :class="getLinkClass(item)" <router-link v-if="item.to && !item.disabled" :to="item.to" :class="getLinkClass(item)" v-ripple
@click.native="onItemClick($event, item)" @keydown.native="onItemKeyDown($event, item)" role="menuitem"> @click.native="onItemClick($event, item)" @keydown.native="onItemKeyDown($event, item)" role="menuitem">
<span :class="['p-menuitem-icon', item.icon]"></span> <span :class="['p-menuitem-icon', item.icon]"></span>
<span class="p-menuitem-text">{{item.label}}</span> <span class="p-menuitem-text">{{item.label}}</span>
</router-link> </router-link>
<a v-else :href="item.url" :class="getLinkClass(item)" :target="item.target" :aria-haspopup="item.items != null" :aria-expanded="item === activeItem" <a v-else :href="item.url" :class="getLinkClass(item)" :target="item.target" :aria-haspopup="item.items != null" :aria-expanded="item === activeItem"
@click="onItemClick($event, item)" @keydown="onItemKeyDown($event, item)" role="menuitem" :tabindex="item.disabled ? null : '0'"> @click="onItemClick($event, item)" @keydown="onItemKeyDown($event, item)" role="menuitem" :tabindex="item.disabled ? null : '0'" v-ripple>
<span :class="['p-menuitem-icon', item.icon]"></span> <span :class="['p-menuitem-icon', item.icon]"></span>
<span class="p-menuitem-text">{{item.label}}</span> <span class="p-menuitem-text">{{item.label}}</span>
<span class="p-submenu-icon pi pi-angle-right" v-if="item.items"></span> <span class="p-submenu-icon pi pi-angle-right" v-if="item.items"></span>
@ -24,6 +24,7 @@
<script> <script>
import DomHandler from '../utils/DomHandler'; import DomHandler from '../utils/DomHandler';
import Ripple from '../ripple/Ripple';
export default { export default {
name: 'sub-menu', name: 'sub-menu',
@ -219,6 +220,9 @@ export default {
containerClass() { containerClass() {
return {'p-submenu-list': !this.root}; return {'p-submenu-list': !this.root};
} }
},
directives: {
'ripple': Ripple
} }
} }
</script> </script>

View File

@ -132,6 +132,8 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
overflow: hidden;
position: relative;
} }
.p-toast-icon-close.p-link { .p-toast-icon-close.p-link {

View File

@ -6,7 +6,7 @@
<span class="p-toast-title">{{message.summary}}</span> <span class="p-toast-title">{{message.summary}}</span>
<div class="p-toast-detail">{{message.detail}}</div> <div class="p-toast-detail">{{message.detail}}</div>
</div> </div>
<button class="p-toast-icon-close p-link" @click="onCloseClick" v-if="message.closable !== false" type="button"> <button class="p-toast-icon-close p-link" @click="onCloseClick" v-if="message.closable !== false" type="button" v-ripple>
<span class="p-toast-icon-close-icon pi pi-times"></span> <span class="p-toast-icon-close-icon pi pi-times"></span>
</button> </button>
</div> </div>
@ -14,6 +14,8 @@
</template> </template>
<script> <script>
import Ripple from '../ripple/Ripple';
export default { export default {
props: { props: {
message: null message: null
@ -55,6 +57,9 @@ export default {
'pi-check': this.message.severity === 'success' 'pi-check': this.message.severity === 'success'
}]; }];
} }
},
directives: {
'ripple': Ripple
} }
} }
</script> </script>

View File

@ -160,4 +160,8 @@ export default {
margin: .5em .5em .5em 0; margin: .5em .5em .5em 0;
width: 140px; width: 140px;
} }
p {
margin: 0;
}
</style> </style>