87 lines
1.7 KiB
JavaScript
87 lines
1.7 KiB
JavaScript
import BaseStyle from 'primevue/base/style';
|
|
|
|
const theme = ({ dt }) => `
|
|
.p-progressspinner {
|
|
position: relative;
|
|
margin: 0 auto;
|
|
width: 100px;
|
|
height: 100px;
|
|
display: inline-block;
|
|
}
|
|
|
|
.p-progressspinner::before {
|
|
content: "";
|
|
display: block;
|
|
padding-top: 100%;
|
|
}
|
|
|
|
.p-progressspinner-spin {
|
|
height: 100%;
|
|
transform-origin: center center;
|
|
width: 100%;
|
|
position: absolute;
|
|
top: 0;
|
|
bottom: 0;
|
|
left: 0;
|
|
right: 0;
|
|
margin: auto;
|
|
animation: p-progressspinner-rotate 2s linear infinite;
|
|
}
|
|
|
|
.p-progressspinner-circle {
|
|
stroke-dasharray: 89, 200;
|
|
stroke-dashoffset: 0;
|
|
stroke: ${dt('progressspinner.color.1')};
|
|
animation: p-progressspinner-dash 1.5s ease-in-out infinite, p-progressspinner-color 6s ease-in-out infinite;
|
|
stroke-linecap: round;
|
|
}
|
|
|
|
@keyframes p-progressspinner-rotate {
|
|
100% {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
@keyframes p-progressspinner-dash {
|
|
0% {
|
|
stroke-dasharray: 1, 200;
|
|
stroke-dashoffset: 0;
|
|
}
|
|
50% {
|
|
stroke-dasharray: 89, 200;
|
|
stroke-dashoffset: -35px;
|
|
}
|
|
100% {
|
|
stroke-dasharray: 89, 200;
|
|
stroke-dashoffset: -124px;
|
|
}
|
|
}
|
|
@keyframes p-progressspinner-color {
|
|
100%,
|
|
0% {
|
|
stroke: ${dt('progressspinner.color.1')};
|
|
}
|
|
40% {
|
|
stroke: ${dt('progressspinner.color.2')};
|
|
}
|
|
66% {
|
|
stroke: ${dt('progressspinner.color.3')};
|
|
}
|
|
80%,
|
|
90% {
|
|
stroke: ${dt('progressspinner.color.4')};
|
|
}
|
|
}
|
|
`;
|
|
|
|
const classes = {
|
|
root: 'p-progressspinner',
|
|
spin: 'p-progressspinner-spin',
|
|
circle: 'p-progressspinner-circle'
|
|
};
|
|
|
|
export default BaseStyle.extend({
|
|
name: 'progressspinner',
|
|
theme,
|
|
classes
|
|
});
|