primevue-mirror/layouts/AppConfigurator.vue

375 lines
22 KiB
Vue
Raw Normal View History

2019-12-20 13:49:40 +00:00
<template>
<Sidebar v-model:visible="visible" @hide="onSidebarHide" class="layout-config w-full sm:w-30rem" position="right">
2023-02-28 08:29:30 +00:00
<div class="p-2">
<section class="mb-5">
<h3>Component Scale</h3>
<div class="flex align-items-center gap-2">
2023-03-03 12:15:20 +00:00
<Button icon="pi pi-minus" @click="decrementScale" text rounded class="w-2rem h-2rem" :disabled="scale === scales[0]" />
2023-02-28 08:29:30 +00:00
<i v-for="s in scales" :key="s" :class="['pi pi-circle-fill text-sm text-600', { 'text-lg text-primary': s === scale }]" />
2019-12-20 13:49:40 +00:00
2023-03-03 12:15:20 +00:00
<Button icon="pi pi-plus" @click="incrementScale" text rounded class="w-2rem h-2rem" :disabled="scale === scales[scales.length - 1]" />
2023-02-28 08:29:30 +00:00
</div>
</section>
2020-05-14 08:37:01 +00:00
2023-02-28 08:29:30 +00:00
<section class="mb-5">
<h3>Input Style</h3>
<div class="flex gap-5">
<div class="flex align-items-center gap-2">
<RadioButton :modelValue="inputStyle" name="inputStyle" value="outlined" inputId="outlined_input" @update:modelValue="onInputStyleChange"></RadioButton>
2023-02-28 08:29:30 +00:00
<label for="outlined_input">Outlined</label>
</div>
<div class="flex align-items-center gap-2">
<RadioButton :modelValue="inputStyle" name="inputStyle" value="filled" inputId="filled_input" @update:modelValue="onInputStyleChange"></RadioButton>
2023-02-28 08:29:30 +00:00
<label for="filled_input">Filled</label>
</div>
</div>
</section>
2020-06-20 09:40:01 +00:00
2023-02-28 08:29:30 +00:00
<section class="mb-5">
<h3>Ripple Effect</h3>
<InputSwitch :modelValue="rippleActive" @update:modelValue="onRippleChange" />
2023-02-28 08:29:30 +00:00
</section>
2020-06-25 13:04:00 +00:00
2023-02-28 08:29:30 +00:00
<section>
2023-03-08 08:35:24 +00:00
<h3>Themes</h3>
2023-02-28 08:29:30 +00:00
<h4>Bootstrap</h4>
<div class="grid free-themes">
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('bootstrap4-light-blue')">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/bootstrap4-light-blue.svg" alt="Bootstrap Light Blue" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Blue</span>
2020-06-19 09:16:03 +00:00
</div>
2023-02-28 08:29:30 +00:00
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('bootstrap4-light-purple')">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/bootstrap4-light-purple.svg" alt="Bootstrap Light Blue" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Purple</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('bootstrap4-dark-blue', true)">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/bootstrap4-dark-blue.svg" alt="Bootstrap Dark Blue" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Blue</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('bootstrap4-dark-purple', true)">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/bootstrap4-dark-purple.svg" alt="Bootstrap Dark Blue" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Purple</span>
2020-06-25 09:19:23 +00:00
</div>
2023-02-28 08:29:30 +00:00
</div>
2020-06-25 09:19:23 +00:00
2023-02-28 08:29:30 +00:00
<h4>Material Design</h4>
<div class="grid free-themes">
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('md-light-indigo')">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/md-light-indigo.svg" alt="Material Light Indigo" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Indigo</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('md-light-deeppurple')">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/md-light-deeppurple.svg" alt="Material Light Deep Purple" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Deep Purple</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('md-dark-indigo', true)">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/md-dark-indigo.svg" alt="Material Dark Indigo" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Indigo</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('md-dark-purple', true)">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/md-dark-deeppurple.svg" alt="Material Dark Deep Purple" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Deep Purple</span>
2020-06-19 09:16:03 +00:00
</div>
2023-02-28 08:29:30 +00:00
</div>
2020-06-19 09:16:03 +00:00
2023-02-28 08:29:30 +00:00
<h4>Material Design Compact</h4>
<div class="grid free-themes">
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('md-light-indigo')">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/md-light-indigo.svg" alt="Material Compact Light Indigo" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Indigo</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('mdc-light-deeppurple')">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/md-light-deeppurple.svg" alt="Material Compact Deep Purple" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Deep Purple</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('mdc-dark-indigo', true)">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/md-dark-indigo.svg" alt="Material Compact Dark Indigo" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Indigo</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('mdc-dark-deeppurple', true)">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/md-dark-deeppurple.svg" alt="Material Compact Dark Deep Purple" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Deep Purple</span>
2021-09-06 08:54:28 +00:00
</div>
2023-02-28 08:29:30 +00:00
</div>
2021-09-06 08:54:28 +00:00
2023-02-28 08:29:30 +00:00
<h4>Fluent UI</h4>
<div class="grid free-themes">
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('fluent-light')">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/fluent-light.png" alt="Fluent Light" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Blue</span>
2021-11-15 07:22:31 +00:00
</div>
2023-02-28 08:29:30 +00:00
</div>
2021-11-15 07:22:31 +00:00
2023-02-28 08:29:30 +00:00
<h4>PrimeOne Design</h4>
<div class="grid free-themes">
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('lara-light-indigo')">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/lara-light-indigo.png" alt="Lara Light Indigo" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Lara Indigo</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('lara-light-blue')">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/lara-light-blue.png" alt="Lara Light Blue" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Lara Blue</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('lara-light-purple')">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/lara-light-purple.png" alt="Lara Light Purple" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Lara Purple</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('lara-light-teal')">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/lara-light-teal.png" alt="Lara Light Teal" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Lara Teal</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('lara-dark-indigo', true)">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/lara-dark-indigo.png" alt="Lara Dark Indigo" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Lara Indigo</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('lara-dark-blue', true)">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/lara-dark-blue.png" alt="Lara Dark Blue" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Lara Blue</span>
2023-01-27 11:56:16 +00:00
</div>
2023-02-28 08:29:30 +00:00
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('lara-dark-purple', true)">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/lara-dark-purple.png" alt="Lara Dark Purple" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Lara Purple</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('lara-dark-teal', true)">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/lara-dark-teal.png" alt="Lara Dark Teal" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Lara Teal</span>
</div>
</div>
2023-01-27 11:56:16 +00:00
2023-02-28 08:29:30 +00:00
<h4>Misc</h4>
<div class="grid free-themes">
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('soho-light')">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/soho-light.png" alt="Soho Light" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Soho Light</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('soho-dark', true)">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/soho-dark.png" alt="Soho Dark" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Soho Dark</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('viva-light')">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/viva-light.svg" alt="Viva Light" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Viva Light</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('viva-dark', true)">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/viva-dark.svg" alt="Viva Dark" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Viva Dark</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('mira')">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/mira.jpg" alt="Mira" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Mira</span>
2020-06-19 09:16:03 +00:00
</div>
2023-02-28 08:29:30 +00:00
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('nano')">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/nano.jpg" alt="Nano" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Nano</span>
</div>
</div>
2020-06-19 09:16:03 +00:00
2023-02-28 08:29:30 +00:00
<h4>PrimeOne Design - Legacy</h4>
<div class="grid free-themes">
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('saga-blue')">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/saga-blue.png" alt="Saga Blue" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Saga Blue</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('saga-green')">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/saga-green.png" alt="Saga Green" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Saga Green</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('saga-orange')">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/saga-orange.png" alt="Saga Orange" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Saga Orange</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('saga-purple')">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/saga-purple.png" alt="Saga Purple" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Saga Purple</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('vela-blue', true)">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/vela-blue.png" alt="Vela Blue" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Vela Blue</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('vela-green', true)">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/vela-green.png" alt="Vela Green" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Vela Green</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('vela-orange', true)">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/vela-orange.png" alt="Vela Orange" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Vela Orange</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('vela-purple', true)">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/vela-purple.png" alt="Vela Purple" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Vela Purple</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('arya-blue', true)">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/arya-blue.png" alt="Arya Blue" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Arya Blue</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('arya-green', true)">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/arya-green.png" alt="Arya Green" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Arya Green</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('arya-orange', true)">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/arya-orange.png" alt="Arya Orange" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Arya Orange</span>
</div>
<div class="col-3 flex flex-column align-items-center gap-2">
2023-07-10 14:42:43 +00:00
<button class="px-link h-3rem" @click="changeTheme('arya-purple', true)">
2023-02-28 08:29:30 +00:00
<img src="https://primefaces.org/cdn/primevue/images/themes/arya-purple.png" alt="Arya Purple" class="w-3rem border-round" />
</button>
<span class="white-space-nowrap">Arya Purple</span>
2019-12-20 13:49:40 +00:00
</div>
</div>
2023-02-28 08:29:30 +00:00
</section>
2019-12-20 13:49:40 +00:00
</div>
2023-02-28 08:29:30 +00:00
</Sidebar>
2019-12-20 13:49:40 +00:00
</template>
<script>
2022-12-08 19:24:21 +00:00
import EventBus from '@/layouts/AppEventBus';
2020-11-26 08:53:02 +00:00
2019-12-20 13:49:40 +00:00
export default {
emits: ['updateConfigActive'],
props: {
configActive: {
type: Boolean,
default: false
}
},
2019-12-20 13:49:40 +00:00
data() {
return {
2023-02-28 08:29:30 +00:00
visible: false,
2020-05-14 08:37:01 +00:00
scale: 14,
scales: [12, 13, 14, 15, 16]
2022-09-14 14:26:41 +00:00
};
2019-12-20 13:49:40 +00:00
},
watch: {
configActive(value) {
2023-02-28 08:29:30 +00:00
this.visible = value;
2019-12-20 13:49:40 +00:00
}
},
2023-02-28 08:29:30 +00:00
outsideClickListener: null,
themeChangeListener: null,
2021-04-15 14:53:33 +00:00
beforeUnmount() {
2022-02-23 19:52:21 +00:00
EventBus.off('theme-change', this.themeChangeListener);
2021-04-15 14:53:33 +00:00
},
2020-11-26 08:53:02 +00:00
mounted() {
2021-04-15 14:53:33 +00:00
this.themeChangeListener = (event) => {
2022-09-14 14:26:41 +00:00
if (event.theme === 'nano') this.scale = 12;
else this.scale = 14;
2020-11-26 08:53:02 +00:00
this.applyScale();
2021-04-15 14:53:33 +00:00
};
2022-02-23 19:52:21 +00:00
EventBus.on('theme-change', this.themeChangeListener);
2020-11-26 08:53:02 +00:00
},
2019-12-20 13:49:40 +00:00
methods: {
2023-02-28 08:29:30 +00:00
onSidebarHide() {
this.visible = false;
this.$emit('updateConfigActive', false);
2019-12-20 13:49:40 +00:00
},
2023-02-28 08:29:30 +00:00
changeTheme(theme, dark) {
2022-02-23 19:52:21 +00:00
EventBus.emit('theme-change', { theme: theme, dark: dark });
2020-05-14 08:37:01 +00:00
},
decrementScale() {
this.scale--;
2020-11-26 08:53:02 +00:00
this.applyScale();
2020-05-14 08:37:01 +00:00
},
incrementScale() {
this.scale++;
2020-11-26 08:53:02 +00:00
this.applyScale();
},
applyScale() {
2020-05-14 08:37:01 +00:00
document.documentElement.style.fontSize = this.scale + 'px';
},
onInputStyleChange(value) {
this.$primevue.config.inputStyle = value;
},
onRippleChange(value) {
this.$primevue.config.ripple = value;
}
},
computed: {
inputStyle() {
return this.$primevue.config.inputStyle;
},
rippleActive() {
return this.$primevue.config.ripple;
2020-06-27 22:43:07 +00:00
}
2020-07-10 11:47:18 +00:00
}
2022-09-14 14:26:41 +00:00
};
2019-12-20 14:22:50 +00:00
</script>