Skip to content
Snippets Groups Projects
Select Git revision
  • 9f8c63f464a596594d9d4806d494f687614b85fb
  • test default protected
  • master protected
  • feat/custom-css
  • feat/redesign-improvements-10
  • feat/redesign-improvements-8
  • feat/redesign-fixes-3
  • feat/pirstan-changes
  • feat/separate-import-thread
  • feat/dary-improvements
  • features/add-pdf-page
  • features/add-typed-table
  • features/fix-broken-calendar-categories
  • features/add-embed-to-articles
  • features/create-mastodon-feed-block
  • features/add-custom-numbering-for-candidates
  • features/add-timeline
  • features/create-wordcloud-from-article-page
  • features/create-collapsible-extra-legal-info
  • features/extend-hero-banner
  • features/add-link-to-images
21 results

manage.py

Blame
  • FooterCollapsible.vue 1.28 KiB
    <template>
      <div :class="[wrapperclass, 'footer-collapsible']">
        <span class="text-xl uppercase text-white footer-collapsible__toggle" :class="[labelclass, show ? 'footer-collapsible__toggle--open' : '']" @click="handleClick">{{ label }}</span>
        <div v-show="show || isLgScreenSize" :class="[slotwrapperclass]">
          <slot>
          </slot>
        </div>
      </div>
    </template>
    
    <script>
    import { isLgScreenSize } from "../../utils";
    
    export default {
      data() {
        return {
          isLgScreenSize: isLgScreenSize(),
          show: false,
          resizeHandler: () => {
            this.$data.isLgScreenSize = isLgScreenSize();
          },
        };
      },
      props: {
        href: {
          type: String,
        },
        label: {
          type: String,
        },
        labelclass: {
          type: String,
        },
        wrapperclass: {
          type: String,
          default: "",
        },
        slotwrapperclass: {
          type: String,
          default: "",
        }
      },
      methods: {
        handleClick() {
          if (this.$props.href) {
            window.location = this.$props.href;
          }
    
          this.$data.show = !this.$data.show;
        }
      },
      mounted() {
        this.$nextTick(() => {
          window.addEventListener("resize", this.$data.resizeHandler);
        });
      },
      beforeDestroy() {
        window.removeEventListener("resize", this.$data.resizeHandler);
      }
    }
    </script>