Fixed #5502 - Add PrimeVueStyled and PrimeVueUnstyled plugins
parent
0e70f79124
commit
71715f5523
|
@ -1,8 +1,5 @@
|
||||||
import { FilterMatchMode } from 'primevue/api';
|
import { FilterMatchMode } from 'primevue/api';
|
||||||
import Theme, { ThemeService } from 'primevue/themes';
|
import { inject, reactive } from 'vue';
|
||||||
import PrimeOne from 'primevue/themes/primeone';
|
|
||||||
import Aura from 'primevue/themes/primeone/aura';
|
|
||||||
import { inject, reactive, ref, watch } from 'vue';
|
|
||||||
|
|
||||||
export const defaultOptions = {
|
export const defaultOptions = {
|
||||||
ripple: false,
|
ripple: false,
|
||||||
|
@ -136,21 +133,11 @@ export const defaultOptions = {
|
||||||
menu: 1000,
|
menu: 1000,
|
||||||
tooltip: 1100
|
tooltip: 1100
|
||||||
},
|
},
|
||||||
theme: {
|
|
||||||
base: PrimeOne,
|
|
||||||
preset: Aura,
|
|
||||||
options: {
|
|
||||||
prefix: 'p',
|
|
||||||
darkModeSelector: 'system',
|
|
||||||
cssLayer: false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
pt: undefined,
|
pt: undefined,
|
||||||
ptOptions: {
|
ptOptions: {
|
||||||
mergeSections: true,
|
mergeSections: true,
|
||||||
mergeProps: false
|
mergeProps: false
|
||||||
},
|
},
|
||||||
unstyled: false,
|
|
||||||
csp: {
|
csp: {
|
||||||
nonce: undefined
|
nonce: undefined
|
||||||
}
|
}
|
||||||
|
@ -168,37 +155,19 @@ export function usePrimeVue() {
|
||||||
return PrimeVue;
|
return PrimeVue;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setupTheme(app, PrimeVue) {
|
export function setup(app, options) {
|
||||||
const isChanged = ref(false);
|
|
||||||
|
|
||||||
watch(
|
|
||||||
PrimeVue.config.theme,
|
|
||||||
(newValue) => {
|
|
||||||
if (!isChanged.value) {
|
|
||||||
Theme.setTheme(newValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
isChanged.value = false;
|
|
||||||
},
|
|
||||||
{ immediate: true, deep: true }
|
|
||||||
);
|
|
||||||
|
|
||||||
ThemeService.on('theme:change', function (newTheme) {
|
|
||||||
isChanged.value = true;
|
|
||||||
app.config.globalProperties.$primevue.config.theme = newTheme;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
export default {
|
|
||||||
install: (app, options) => {
|
|
||||||
const configOptions = options ? { ...defaultOptions, ...options } : { ...defaultOptions };
|
|
||||||
const PrimeVue = {
|
const PrimeVue = {
|
||||||
config: reactive(configOptions)
|
config: reactive(options)
|
||||||
};
|
};
|
||||||
|
|
||||||
app.config.globalProperties.$primevue = PrimeVue;
|
app.config.globalProperties.$primevue = PrimeVue;
|
||||||
app.provide(PrimeVueSymbol, PrimeVue);
|
app.provide(PrimeVueSymbol, PrimeVue);
|
||||||
|
|
||||||
setupTheme(app, PrimeVue);
|
return PrimeVue;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default {
|
||||||
|
install: () => {
|
||||||
|
console.error("This plugin has been removed in v4 version. Use 'PrimeVueStyled' plugin for styled mode, and 'PrimeVueUnstyled' plugin for unstyled mode.");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
export * from '../config';
|
|
@ -0,0 +1,50 @@
|
||||||
|
import * as PrimeVueConfig from 'primevue/config';
|
||||||
|
import Theme, { ThemeService } from 'primevue/themes';
|
||||||
|
import PrimeOne from 'primevue/themes/primeone';
|
||||||
|
import Aura from 'primevue/themes/primeone/aura';
|
||||||
|
import { ref, watch } from 'vue';
|
||||||
|
|
||||||
|
export const defaultOptions = {
|
||||||
|
...PrimeVueConfig.defaultOptions,
|
||||||
|
theme: {
|
||||||
|
base: PrimeOne,
|
||||||
|
preset: Aura,
|
||||||
|
options: {
|
||||||
|
prefix: 'p',
|
||||||
|
darkModeSelector: 'system',
|
||||||
|
cssLayer: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export const { usePrimeVue } = PrimeVueConfig;
|
||||||
|
|
||||||
|
function setupTheme(app, PrimeVue) {
|
||||||
|
const isChanged = ref(false);
|
||||||
|
|
||||||
|
watch(
|
||||||
|
PrimeVue.config.theme,
|
||||||
|
(newValue) => {
|
||||||
|
if (!isChanged.value) {
|
||||||
|
Theme.setTheme(newValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
isChanged.value = false;
|
||||||
|
},
|
||||||
|
{ immediate: true, deep: true }
|
||||||
|
);
|
||||||
|
|
||||||
|
ThemeService.on('theme:change', function (newTheme) {
|
||||||
|
isChanged.value = true;
|
||||||
|
app.config.globalProperties.$primevue.config.theme = newTheme;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export default {
|
||||||
|
install: (app, options) => {
|
||||||
|
const configOptions = { ...defaultOptions, ...options, unstyled: false };
|
||||||
|
const PrimeVue = PrimeVueConfig.setup(app, configOptions);
|
||||||
|
|
||||||
|
setupTheme(app, PrimeVue);
|
||||||
|
}
|
||||||
|
};
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"main": "./primevuestyled.cjs.js",
|
||||||
|
"module": "./primevuestyled.esm.js",
|
||||||
|
"unpkg": "./primevuestyled.min.js",
|
||||||
|
"types": "./PrimeVueStyled.d.ts"
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
export * from '../config';
|
|
@ -0,0 +1,11 @@
|
||||||
|
import * as PrimeVueConfig from 'primevue/config';
|
||||||
|
|
||||||
|
export const { defaultOptions, usePrimeVue } = PrimeVueConfig;
|
||||||
|
|
||||||
|
export default {
|
||||||
|
install: (app, options) => {
|
||||||
|
const configOptions = { ...defaultOptions, ...options, unstyled: true };
|
||||||
|
|
||||||
|
PrimeVueConfig.setup(app, configOptions);
|
||||||
|
}
|
||||||
|
};
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"main": "./primevueunstyled.cjs.js",
|
||||||
|
"module": "./primevueunstyled.esm.js",
|
||||||
|
"unpkg": "./primevueunstyled.min.js",
|
||||||
|
"types": "./PrimeVueUnstyled.d.ts"
|
||||||
|
}
|
Loading…
Reference in New Issue