Skip to content
Snippets Groups Projects
Select Git revision
  • 24d928b3bc49f513eb1dcd339e8dbf7b346b8c5d
  • ui_koalicni default
  • ui_styleguide protected
3 results

tailwind.config.js

Blame
  • Reel.vue 4.61 KiB
    <script setup>
    import { watch, ref } from "vue";
    
    import COLORS from "../../colors";
    import TEMPLATES from "../../templates";
    import DEFAULT_CONTRACTOR from "../../contractors";
    import {
      loadFonts,
      loadCanvasStorage,
      setCanvasStorage,
      updateAutoRedrawStorage,
    } from "../../utils";
    
    import Canvas from "../../components/canvas/Canvas.vue";
    import redraw from "./canvas";
    
    import Navbar from "../../components/Navbar.vue";
    import MainContainer from "../../components/MainContainer.vue";
    import ImageInput from "../../components/inputs/ImageInput.vue";
    import LongTextInput from "../../components/inputs/text/LongTextInput.vue";
    import ShortTextInput from "../../components/inputs/text/ShortTextInput.vue";
    import MultipleColorPicker from "../../components/inputs/colors/MultipleColorPicker.vue";
    import ReloadButton from "../../components/reload/ReloadButton.vue";
    import AutoReloadCheckbox from "../../components/reload/AutoReloadCheckbox.vue";
    </script>
    
    <script>
    await loadFonts(["12px Bebas Neue", "12px Roboto Condensed"]);
    
    export default {
      components: {
        Canvas,
        Navbar,
        MainContainer,
        LongTextInput,
        ShortTextInput,
        AutoReloadCheckbox,
        ReloadButton,
      },
      data() {
        const predefinedColors = {
          whiteText: {
            name: "Bílý text",
            colors: {
              background: COLORS.black,
              mainText: COLORS.white,
              highlightedText: COLORS.yellow1,
              contractedByText: COLORS.white
            },
          },
          blackText: {
            name: "Černý text",
            colors: {
              background: COLORS.white,
              mainText: COLORS.black,
              highlightedText: COLORS.yellow1,
              contractedByText: COLORS.black
            },
          },
        };
    
        return {
          mainText: null,
          nameText: null,
          mainImage: null,
          contractedBy: DEFAULT_CONTRACTOR,
          gradientHeightMultiplier: 1,
          colorLabels: {
            background: "Pozadí",
          },
          predefinedColors: predefinedColors,
          colors: predefinedColors.whiteText.colors,
          autoRedraw: false,
        };
      },
      async created() {
        await loadCanvasStorage(this);
      },
      methods: {
        async reloadCanvasProperties() {
          const canvasProperties = {
            mainImage: this.mainImage,
            mainText: this.mainText,
            nameText: this.nameText,
            contractedBy: this.contractedBy,
            colors: this.colors,
          };
    
          if (canvasProperties.mainText) {
            window.fileName = canvasProperties.mainText;
          }
    
          await this.$refs.canvas.redraw(canvasProperties);
    
          delete canvasProperties.colors;
          setCanvasStorage(canvasProperties);
        },
      },
      mounted() {
        this.$watch(
          (vm) => [vm.mainText, vm.nameText, vm.contractedBy, vm.colors],
          async (value) => {
            if (this.autoRedraw) {
              await this.reloadCanvasProperties();
            }
          },
          {
            immediate: true,
            deep: true,
          },
        );
    
        this.$watch(
          (vm) => [vm.autoRedraw],
          async (value) => {
            updateAutoRedrawStorage(this.autoRedraw);
    
            if (this.autoRedraw) {
              await this.reloadCanvasProperties();
            }
          },
        );
      },
    };
    </script>
    
    <template>
      <header>
        <Navbar :defaultTemplate="TEMPLATES.reel"></Navbar>
      </header>
      <main>
        <MainContainer>
          <template v-slot:left>
            <Canvas
              ref="canvas"
              :redrawFunction="redraw"
              width="1080"
              height="1920"
            />
          </template>
    
          <template v-slot:right>
            <ReloadButton :parentRefs="$refs" @click="reloadCanvasProperties" />
            <AutoReloadCheckbox v-model="autoRedraw" />
    
            <ImageInput
              name="Obrázek"
              v-model="mainImage"
              :important="true"
              zIndex="10"
            />
    
            <ShortTextInput
              name="Jméno"
              v-model="nameText"
              :important="false"
              zIndex="9"
            />
    
            <LongTextInput
              name="Text"
              v-model="mainText"
              :important="true"
              :highlightable="true"
              zIndex="8"
            />
    
            <ShortTextInput
              name="Zadavatel a zpracovatel"
              v-model="contractedBy"
              :defaultValue="DEFAULT_CONTRACTOR"
              :important="false"
              zIndex="4"
            />
    
            <MultipleColorPicker
              name="Barvy"
              v-model="colors"
              :important="false"
              :colorLabels="colorLabels"
              :predefinedColors="predefinedColors"
              :defaultPredefinedColors="predefinedColors.base"
              zIndex="5"
            ></MultipleColorPicker>
          </template>
        </MainContainer>
      </main>
    </template>
    
    <style>
    @import "vue-select/dist/vue-select.css";
    </style>