import BaseStyle from 'primevue/base/style'; const theme = ({ dt }) => ` .p-progressbar { position: relative; overflow: hidden; height: ${dt('progressbar.height')}; background: ${dt('progressbar.background')}; border-radius: ${dt('progressbar.border.radius')}; } .p-progressbar-value { margin: 0; background: ${dt('progressbar.value.background')}; } .p-progressbar-label { color: ${dt('progressbar.label.color')}; font-size: ${dt('progressbar.label.font.size')}; font-weight: ${dt('progressbar.label.font.weight')}; } .p-progressbar-determinate .p-progressbar-value { height: 100%; width: 0%; position: absolute; display: none; display: flex; align-items: center; justify-content: center; overflow: hidden; transition: width 1s ease-in-out; } .p-progressbar-determinate .p-progressbar-label { display: inline-flex; } .p-progressbar-indeterminate .p-progressbar-value::before { content: ""; position: absolute; background: inherit; top: 0; left: 0; bottom: 0; will-change: left, right; animation: p-progressbar-indeterminate-anim 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; } .p-progressbar-indeterminate .p-progressbar-value::after { content: ""; position: absolute; background: inherit; top: 0; left: 0; bottom: 0; will-change: left, right; animation: p-progressbar-indeterminate-anim-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite; animation-delay: 1.15s; } @-webkit-keyframes p-progressbar-indeterminate-anim { 0% { left: -35%; right: 100%; } 60% { left: 100%; right: -90%; } 100% { left: 100%; right: -90%; } } @keyframes p-progressbar-indeterminate-anim { 0% { left: -35%; right: 100%; } 60% { left: 100%; right: -90%; } 100% { left: 100%; right: -90%; } } @-webkit-keyframes p-progressbar-indeterminate-anim-short { 0% { left: -200%; right: 100%; } 60% { left: 107%; right: -8%; } 100% { left: 107%; right: -8%; } } @keyframes p-progressbar-indeterminate-anim-short { 0% { left: -200%; right: 100%; } 60% { left: 107%; right: -8%; } 100% { left: 107%; right: -8%; } } `; const classes = { root: ({ instance }) => [ 'p-progressbar p-component', { 'p-progressbar-determinate': instance.determinate, 'p-progressbar-indeterminate': instance.indeterminate } ], indeterminateContainer: 'p-progressbar-indeterminate-container', value: 'p-progressbar-value', label: 'p-progressbar-label' }; export default BaseStyle.extend({ name: 'progressbar', theme, classes });