Skip to content
Snippets Groups Projects
Select Git revision
  • aac6d1d3cb6ab603ac90ef62253fe11ace92db8a
  • master default protected
  • feat/new-image-formats
  • clickable-select-chevron
  • 2.20.0
  • 2.19.0
  • 2.18.0
  • 2.17.0
  • 2.16.1
  • 2.16.0
  • 2.15.0
  • 2.14.0
  • 2.13.0
  • 2.12.1
  • 2.11.0
  • 2.10.0
  • 2.9.1
  • 2.9.0
  • 2.8.0
  • 2.7.1
  • 2.7.0
  • 2.6.0
  • 2.5.2
  • 2.5.1
24 results

flag-size-variants.mustache

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>