https://gcore1-shksgss.zazafast2020.info/

Submitted URL:
https://gcore1-shksgss.zazafast2020.info/
Report Finished:

The outgoing links identified from the page

JavaScript Variables · 30 found

Global JavaScript variables loaded on the window object of a page, are variables declared outside of functions and accessible from anywhere in the code within the current scope

NameType
onbeforetogglestring
documentPictureInPicturestring
onscrollendstring
Vuestring
momentstring
__core-js_shared__string
antdstring
axiosstring
Qsstring
sizeFormatstring

Console log messages · 1 found

Messages logged to the web console

HTML

The raw HTML body of the page

<!DOCTYPE html><html lang="en"><head>
  <meta charset="UTF-8">
  <meta name="renderer" content="webkit">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="/assets/ant-design-vue/antd.min.css">
  <link rel="stylesheet" href="/assets/element-ui/theme-chalk/display.css">
  <link rel="stylesheet" href="/assets/css/custom.min.css?2.4.1">
  <style>
    [v-cloak] {
      display: none;
    }
     
    @font-face {
      font-display: swap;
      font-family: 'Vazirmatn';
      font-style: normal;
      font-weight: 400;
      src: url('/assets/Vazirmatn-UI-NL-Regular.woff2') format('woff2');
      unicode-range: U+0600-06FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE80-FEFC, U+0030-0039;
    }
    body {
      font-family: -apple-system, BlinkMacSystemFont, 'Vazirmatn', 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB',
        'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif, 'Apple Color Emoji',
        'Segoe UI Emoji', 'Segoe UI Symbol';
    }
  </style>
  <title>gcore1-shksgss.zazafast2020.info-Welcome</title>
</head>
<body class="light"><div id="message" class="light"></div>

<style>
  html * {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
  h1 {
    text-align: center;
 
    height: 110px;
  }
  .ant-btn,
  .ant-input {
    height: 50px;
    border-radius: 30px;
  }
  .ant-input-group-addon {
    border-radius: 0 30px 30px 0;
    width: 50px;
    font-size: 18px;
  }
  .ant-input-affix-wrapper .ant-input-prefix {
    left: 23px;
  }
  .ant-input-affix-wrapper .ant-input:not(:first-child) {
    padding-left: 50px;
  }
  .centered {
    display: flex;
    text-align: center;
    align-items: center;
    justify-content: center;
    width: 100%;
  }
  .title {
    font-size: 32px;
  }
  .title b {
    font-weight: bold !important;
  }
  #app {
    overflow: hidden;
  }
  #login {
    animation: charge 0.5s both;
    background-color: #fff;
    border-radius: 2rem;
    padding: 3rem;
    transition: all 0.3s;
    user-select:none;
    -webkit-user-select:none;
    -moz-user-select: none;
  }
  #login:hover {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.09);
  }
  @keyframes charge {
    from {
      transform: translateY(5rem);
      opacity: 0;
    }
    to {
      transform: translateY(0);
      opacity: 1;
    }
  }
  .under {
    background-color: #c7ebe2;
    z-index: 0;
  }
  .dark .under {
    background-color: var(--dark-color-login-wave);
  }
  .dark #login {
    background-color: var(--dark-color-surface-100);
  }
  .dark h1 {
    color: rgba(255, 255, 255);
  }
  .ant-form-item {
    margin-bottom: 16px;
  }
  .ant-btn-primary-login {
    width: 100%;
  }
  .ant-btn-primary-login:focus,
  .ant-btn-primary-login:hover {
    color: #fff;
    background-color: #006655;
    border-color: #006655;
    background-image: linear-gradient(
      270deg,
      rgba(123, 199, 77, 0) 30%,
      #009980,
      rgba(123, 199, 77, 0) 100%
    );
    background-repeat: no-repeat;
    animation: ma-bg-move ease-in-out 5s infinite;
    background-position-x: -500px;
    width: 95%;
    animation-delay: -0.5s;
    box-shadow: 0 2px 0 rgba(0, 0, 0, 0.045);
  }
  .ant-btn-primary-login.active,
  .ant-btn-primary-login:active {
    color: #fff;
    background-color: #006655;
    border-color: #006655;
  }
  @keyframes ma-bg-move {
    0% {
      background-position: -500px 0;
    }
    50% {
      background-position: 1000px 0;
    }
    100% {
      background-position: 1000px 0;
    }
  }
  .wave-btn-bg {
    position: relative;
    border-radius: 25px;
    width: 100%;
    transition: all 0.3s cubic-bezier(.645,.045,.355,1);
  }
  .dark .wave-btn-bg {
    color: #fff;
    position: relative;
    background-color: #0a7557;
    border: 2px double transparent;
    background-origin: border-box;
    background-clip: padding-box, border-box;
    background-size: 300%;
    width: 100%;
    z-index: 1;
  }
  .dark .wave-btn-bg:hover {animation: wave-btn-tara 4s ease infinite;}
  .dark .wave-btn-bg-cl {
    background-image: linear-gradient(rgba(13, 14, 33, 0), rgba(13, 14, 33, 0)),
      radial-gradient(circle at left top, #006655, #009980, #006655) !important;
    border-radius: 3em;
  }
  .dark .wave-btn-bg-cl:hover {
    width: 95%;
  }
  .dark .wave-btn-bg-cl:before {
    position: absolute;
    content: "";
    top: -5px;
    left: -5px;
    bottom: -5px;
    right: -5px;
    z-index: -1;
    background: inherit;
    background-size: inherit;
    border-radius: 4em;
    opacity: 0;
    transition: 0.5s;
  }
  .dark .wave-btn-bg-cl:hover::before {
    opacity: 1;
    filter: blur(20px);
    animation: wave-btn-tara 8s linear infinite;
  }
  @keyframes wave-btn-tara {
    to {
      background-position: 300%;
    }
  }
  .dark .ant-btn-primary-login {
    font-size: 14px;
    color: #fff;
    text-align: center;
    background-image: linear-gradient(
      rgba(13, 14, 33, 0.45),
      rgba(13, 14, 33, 0.35)
    );
    border-radius: 2rem;
    border: none;
    outline: none;
    background-color: transparent;
    height: 46px;
    position: relative;
    white-space: nowrap;
    cursor: pointer;
    touch-action: manipulation;
    padding: 0 15px;
    width: 100%;
    animation: none;
    background-position-x: 0;
    box-shadow: none;
  }
  .waves-header {
    position: fixed;
    width: 100%;
    text-align: center;
    background-color: #dbf5ed;
    color: white;
    z-index: -1;
  }
  .dark .waves-header {
    background-color: var(--dark-color-login-background);
  }
  .waves-inner-header {
    height: 50vh;
    width: 100%;
    margin: 0;
    padding: 0;
  }
  .waves {
    position: relative;
    width: 100%;
    height: 15vh;
    margin-bottom: -8px;  
    min-height: 100px;
    max-height: 150px;
  }
  .parallax > use {
    animation: move-forever 25s cubic-bezier(0.55, 0.5, 0.45, 0.5) infinite;
  }
  .dark .parallax > use {
    fill: var(--dark-color-login-wave);
  }
  .parallax > use:nth-child(1) {
    animation-delay: -2s;
    animation-duration: 4s;
    opacity: 0.2;
  }
  .parallax > use:nth-child(2) {
    animation-delay: -3s;
    animation-duration: 7s;
    opacity: 0.4;
  }
  .parallax > use:nth-child(3) {
    animation-delay: -4s;
    animation-duration: 10s;
    opacity: 0.6;
  }
  .parallax > use:nth-child(4) {
  animation-delay: -5s;
  animation-duration: 13s;
  }
  @keyframes move-forever {
    0% {
      transform: translate3d(-90px, 0, 0);
    }
    100% {
      transform: translate3d(85px, 0, 0);
    }
  }
  @media (max-width: 768px) {
    .waves {
      height: 40px;
      min-height: 40px;
    }
  }
  .words-wrapper {
    width: 100%;
    display: inline-block;
    position: relative;
    text-align: center;
  }
  .words-wrapper b {
    width: 100%;
    display: inline-block;
    position: absolute;
    left: 0;
    top: 0;
  }
  .words-wrapper b.is-visible {
    position: relative;
  }
  .headline.zoom .words-wrapper {
    -webkit-perspective: 300px;
    -moz-perspective: 300px;
    perspective: 300px;
  }
  .headline {
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .headline.zoom b {
    opacity: 0;
  }
  .headline.zoom b.is-visible {
    opacity: 1;
    -webkit-animation: zoom-in 0.8s;
    -moz-animation: zoom-in 0.8s;
    animation: cubic-bezier(0.215, 0.610, 0.355, 1.000) zoom-in 0.8s;
  }
  .headline.zoom b.is-hidden {
    -webkit-animation: zoom-out 0.8s;
    -moz-animation: zoom-out 0.8s;
    animation: cubic-bezier(0.215, 0.610, 0.355, 1.000) zoom-out 0.4s;
  }
  @-webkit-keyframes zoom-in {
    0% {
      opacity: 0;
      -webkit-transform: translateZ(100px);
    }

    100% {
      opacity: 1;
      -webkit-transform: translateZ(0);
    }
  }
  @-moz-keyframes zoom-in {
    0% {
      opacity: 0;
      -moz-transform: translateZ(100px);
    }
    100% {
      opacity: 1;
      -moz-transform: translateZ(0);
    }
  }
  @keyframes zoom-in {
    0% {
      opacity: 0;
      -webkit-transform: translateZ(100px);
      -moz-transform: translateZ(100px);
      -ms-transform: translateZ(100px);
      -o-transform: translateZ(100px);
      transform: translateZ(100px);
    }
    100% {
      opacity: 1;
      -webkit-transform: translateZ(0);
      -moz-transform: translateZ(0);
      -ms-transform: translateZ(0);
      -o-transform: translateZ(0);
      transform: translateZ(0);
    }
  }
  @-webkit-keyframes zoom-out {
    0% {
      opacity: 1;
      -webkit-transform: translateZ(0);
    }
    100% {
      opacity: 0;
      -webkit-transform: translateZ(-100px);
    }
  }
  @-moz-keyframes zoom-out {
    0% {
      opacity: 1;
      -moz-transform: translateZ(0);
    }
    100% {
      opacity: 0;
      -moz-transform: translateZ(-100px);
    }
  }
  @keyframes zoom-out {
    0% {
      opacity: 1;
      -webkit-transform: translateZ(0);
      -moz-transform: translateZ(0);
      -ms-transform: translateZ(0);
      -o-transform: translateZ(0);
      transform: translateZ(0);
    }
    100% {
      opacity: 0;
      -webkit-transform: translateZ(-100px);
      -moz-transform: translateZ(-100px);
      -ms-transform: translateZ(-100px);
      -o-transform: translateZ(-100px);
      transform: translateZ(-100px);
    }
  }
  .ant-menu-item .anticon {
    margin-right: 4px;
  }
  .ant-menu-inline .ant-menu-item {
    padding: 0 16px !important;
  }
</style>

  <section class="ant-layout light" id="app"><main class="under ant-layout-content" style="min-height: 0px;"><div class="waves-header"><div class="waves-inner-header"></div> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 24 150 28" preserveAspectRatio="none" shape-rendering="auto" class="waves"><defs><path id="gentle-wave" d="M-160 44c30 0 58-18 88-18s 58 18 88 18 58-18 88-18 58 18 88 18 v44h-352z"></path></defs> <g class="parallax"><use xlink:href="#gentle-wave" x="48" y="0" fill="rgba(0, 135, 113, 0.08)"></use> <use xlink:href="#gentle-wave" x="48" y="3" fill="rgba(0, 135, 113, 0.08)"></use> <use xlink:href="#gentle-wave" x="48" y="5" fill="rgba(0, 135, 113, 0.08)"></use> <use xlink:href="#gentle-wave" x="48" y="7" fill="#c7ebe2"></use></g></svg></div> <div class="ant-row-flex ant-row-flex-center ant-row-flex-middle" style="height: 100%; overflow: hidden auto;"><div class="ant-col ant-col-xs-22 ant-col-sm-20 ant-col-md-14 ant-col-lg-10 ant-col-xl-8 ant-col-xxl-6" id="login" style="margin: 3rem 0px;"><div class="ant-row-flex ant-row-flex-center"><div class="ant-col" style="width: 100%;"><h1 class="title headline zoom"><span class="words-wrapper"><b class="is-visible">Hello</b> <b>Welcome</b></span></h1></div></div> <div class="ant-row-flex ant-row-flex-center"><div class="ant-col ant-col-24"><form class="ant-form ant-form-horizontal"><div class="ant-row ant-form-item"><div class="ant-col ant-form-item-control-wrapper"><div class="ant-form-item-control"><span class="ant-form-item-children"><span class="ant-input-affix-wrapper"><span class="ant-input-prefix"><i aria-label="icon: user" class="anticon anticon-user" style="font-size: 16px;"><svg viewBox="64 64 896 896" data-icon="user" width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class=""><path d="M858.5 763.6a374 374 0 0 0-80.6-119.5 375.63 375.63 0 0 0-119.5-80.6c-.4-.2-.8-.3-1.2-.5C719.5 518 760 444.7 760 362c0-137-111-248-248-248S264 225 264 362c0 82.7 40.5 156 102.8 201.1-.4.2-.8.3-1.2.5-44.8 18.9-85 46-119.5 80.6a375.63 375.63 0 0 0-80.6 119.5A371.7 371.7 0 0 0 136 901.8a8 8 0 0 0 8 8.2h60c4.4 0 7.9-3.5 8-7.8 2-77.2 33-149.5 87.8-204.3 56.7-56.7 132-87.9 212.2-87.9s155.5 31.2 212.2 87.9C779 752.7 810 825 812 902.2c.1 4.4 3.6 7.8 8 7.8h60a8 8 0 0 0 8-8.2c-1-47.8-10.9-94.3-29.5-138.2zM512 534c-45.9 0-89.1-17.9-121.6-50.4S340 407.9 340 362c0-45.9 17.9-89.1 50.4-121.6S466.1 190 512 190s89.1 17.9 121.6 50.4S684 316.1 684 362c0 45.9-17.9 89.1-50.4 121.6S557.9 534 512 534z"></path></svg></i></span><input placeholder="Username" type="text" name="username" autocomplete="username" autofocus="autofocus" class="ant-input"></span></span><!----></div></div></div> <div class="ant-row ant-form-item"><div class="ant-col ant-form-item-control-wrapper"><div class="ant-form-item-control"><span class="ant-form-item-children"><span class="ant-input-group-wrapper"><span class="ant-input-wrapper ant-input-group"><span class="ant-input-affix-wrapper"><span class="ant-input-prefix"><i aria-label="icon: lock" class="anticon anticon-lock" style="font-size: 16px;"><svg viewBox="64 64 896 896" data-icon="lock" width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class=""><path d="M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM332 240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224H332V240zm460 600H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 1 0-56 0z"></path></svg></i></span><input placeholder="Password" type="password" name="password" autocomplete="password" class="ant-input"></span><span class="ant-input-group-addon"><i aria-label="icon: eye" tabindex="-1" class="anticon anticon-eye" style="font-size: 16px;"><svg viewBox="64 64 896 896" data-icon="eye" width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class=""><path d="M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 0 0 0 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z"></path></svg></i></span></span></span></span><!----></div></div></div> <!----> <div class="ant-row ant-form-item"><div class="ant-col ant-form-item-control-wrapper"><div class="ant-form-item-control"><span class="ant-form-item-children"><div class="centered ant-row"><div class="wave-btn-bg wave-btn-bg-cl" style="height: 50px; display: inline-block;"><button type="button" class="ant-btn-primary-login ant-btn ant-btn-primary"><span>Log In</span></button></div></div></span><!----></div></div></div> <div class="ant-row ant-form-item"><div class="ant-col ant-form-item-control-wrapper"><div class="ant-form-item-control"><span class="ant-form-item-children"><div class="centered ant-row"><div class="ant-col ant-col-24"><div tabindex="0" class="ant-select ant-select-enabled" style="width: 200px;"><div role="combobox" aria-autocomplete="list" aria-haspopup="true" aria-controls="22f1eead-2d49-4589-aa06-85e9b76f125c" class="ant-select-selection ant-select-selection--single"><div class="ant-select-selection__rendered"><div title="" class="ant-select-selection-selected-value" style="display: block; opacity: 1;"><span role="img" aria-label="l.name">🇺🇸</span>
                            &nbsp;&nbsp;<span>English</span></div></div><span unselectable="on" class="ant-select-arrow" style="user-select: none;"><i aria-label="icon: down" class="anticon anticon-down ant-select-arrow-icon"><svg viewBox="64 64 896 896" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class=""><path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path></svg></i></span></div></div></div></div></span><!----></div></div></div> <div class="ant-row ant-form-item"><div class="ant-col ant-form-item-control-wrapper"><div class="ant-form-item-control"><span class="ant-form-item-children"><div class="centered ant-row"><ul role="menu" class="ant-menu ant-menu-inline ant-menu-root ant-menu-light" id="change-theme"><li role="menuitem" class="ant-menu-theme-switch ant-menu-item" style="padding-left: 24px;"><i aria-label="icon: bulb" class="anticon anticon-bulb"><svg viewBox="64 64 896 896" data-icon="bulb" width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class=""><path d="M632 888H392c-4.4 0-8 3.6-8 8v32c0 17.7 14.3 32 32 32h192c17.7 0 32-14.3 32-32v-32c0-4.4-3.6-8-8-8zM512 64c-181.1 0-328 146.9-328 328 0 121.4 66 227.4 164 284.1V792c0 17.7 14.3 32 32 32h264c17.7 0 32-14.3 32-32V676.1c98-56.7 164-162.7 164-284.1 0-181.1-146.9-328-328-328zm127.9 549.8L604 634.6V752H420V634.6l-35.9-20.8C305.4 568.3 256 484.5 256 392c0-141.4 114.6-256 256-256s256 114.6 256 256c0 92.5-49.4 176.3-128.1 221.8z"></path></svg></i> <button type="button" role="switch" class="ant-switch ant-switch-small"><span class="ant-switch-inner"></span></button> <!----></li></ul></div></span><!----></div></div></div></form></div></div></div></div></main></section>

<script src="/assets/vue/vue.min.js?2.4.1"></script>
<script src="/assets/moment/moment.min.js"></script>
<script src="/assets/ant-design-vue/antd.min.js"></script>
<script src="/assets/axios/axios.min.js?2.4.1"></script>
<script src="/assets/qs/qs.min.js"></script>
<script src="/assets/js/axios-init.js?2.4.1"></script>
<script src="/assets/js/util/common.js?2.4.1"></script>
<script src="/assets/js/util/date-util.js?2.4.1"></script>
<script src="/assets/js/util/utils.js?2.4.1"></script>
<script src="/assets/js/langs.js"></script>
<script>
    const basePath = '\/';
    axios.defaults.baseURL = basePath;
</script>


<script>
  function createThemeSwitcher() {
    const isDarkTheme = localStorage.getItem('dark-mode') === 'true';
    const isUltra = localStorage.getItem('isUltraDarkThemeEnabled') === 'true';
    if (isUltra) {
      document.documentElement.setAttribute('data-theme', 'ultra-dark');
    }
    const theme = isDarkTheme ? 'dark' : 'light';
    document.querySelector('body').setAttribute('class', theme);
    return {
      animationsOff() {
        document.documentElement.setAttribute('data-theme-animations', 'off');
        const themeAnimations = document.querySelector('#change-theme');
        themeAnimations.addEventListener('mouseleave', () => {
          document.documentElement.removeAttribute('data-theme-animations');
        });
        themeAnimations.addEventListener('touchend', () => {
          document.documentElement.removeAttribute('data-theme-animations');
        });
      },
      animationsOffUltra() {
        document.documentElement.setAttribute('data-theme-animations', 'off');
        const themeAnimationsUltra = document.querySelector('#change-theme-ultra');
        themeAnimationsUltra.addEventListener('mouseleave', () => {
          document.documentElement.removeAttribute('data-theme-animations');
        });
        themeAnimationsUltra.addEventListener('touchend', () => {
          document.documentElement.removeAttribute('data-theme-animations');
        });
      },
      isDarkTheme,
      isUltra,
      get currentTheme() {
        return this.isDarkTheme ? 'dark' : 'light';
      },
      toggleTheme() {
        this.isDarkTheme = !this.isDarkTheme;
        localStorage.setItem('dark-mode', this.isDarkTheme);
        document.querySelector('body').setAttribute('class', this.isDarkTheme ? 'dark' : 'light');
        document.getElementById('message').className = themeSwitcher.currentTheme;
      },
      toggleUltra() {
        this.isUltra = !this.isUltra;
        if (this.isUltra) {
          document.documentElement.setAttribute('data-theme', 'ultra-dark');
        } else {
          document.documentElement.removeAttribute('data-theme');
        }
        localStorage.setItem('isUltraDarkThemeEnabled', this.isUltra.toString());
      }
    };
  }
  const themeSwitcher = createThemeSwitcher();
  Vue.component('theme-switch', {
    props: [],
    template: `
<template>
  <a-menu :theme="themeSwitcher.currentTheme" mode="inline" selected-keys="">
    <a-sub-menu>
      <span slot="title">
        <a-icon type="bulb" :theme="themeSwitcher.isDarkTheme ? 'filled' : 'outlined'"></a-icon>
        <span>Theme</span>
      </span>
      <a-menu-item id="change-theme" class="ant-menu-theme-switch" @mousedown="themeSwitcher.animationsOff()"> Dark <a-switch style="margin-left: 2px;" size="small" :default-checked="themeSwitcher.isDarkTheme" @change="themeSwitcher.toggleTheme()"></a-switch>
      </a-menu-item>
      <a-menu-item id="change-theme-ultra" v-if="themeSwitcher.isDarkTheme" class="ant-menu-theme-switch" @mousedown="themeSwitcher.animationsOffUltra()"> Ultra <a-checkbox style="margin-left: 2px;" :checked="themeSwitcher.isUltra" @click="themeSwitcher.toggleUltra()"></a-checkbox>
      </a-menu-item>
    </a-sub-menu>
  </a-menu>
</template>
`,
    data: () => ({
      themeSwitcher
    }),
    mounted() {
      this.$message.config({
        getContainer: () => document.getElementById('message')
      });
      document.getElementById('message').className = themeSwitcher.currentTheme;
    }
  });
  Vue.component('theme-switch-login', {
    props: [],
    template: `
<template>
  <a-menu @mousedown="themeSwitcher.animationsOff()" id="change-theme" :theme="themeSwitcher.currentTheme" mode="inline" selected-keys="">
    <a-menu-item mode="inline" class="ant-menu-theme-switch">
      <a-icon type="bulb" :theme="themeSwitcher.isDarkTheme ? 'filled' : 'outlined'"></a-icon>
      <a-switch size="small" :default-checked="themeSwitcher.isDarkTheme" @change="themeSwitcher.toggleTheme()"></a-switch>
      <template v-if="themeSwitcher.isDarkTheme">
        <a-checkbox style="margin-left: 1rem; vertical-align: middle;" :checked="themeSwitcher.isUltra" @click="themeSwitcher.toggleUltra()">Ultra</a-checkbox>
      </template>
    </a-menu-item>
  </a-menu>
</template>
`,
    data: () => ({
      themeSwitcher
    }),
    mounted() {
      this.$message.config({
        getContainer: () => document.getElementById('message')
      });
      document.getElementById('message').className = themeSwitcher.currentTheme;
    }
  });
</script>


<script>
  Vue.component('password-input', {
    props: ["title", "value", "placeholder", "icon", "autocomplete", "name"],
    template: `
<template>
    <a-input :value="value" :type="showPassword ? 'text' : 'password'"
             :placeholder="placeholder"
             :autocomplete="autocomplete"
             :name="name"
             @input="$emit('input', $event.target.value)">
        <template v-if="icon" #prefix>
            <a-icon :type="icon" style="font-size: 16px;" />
        </template>
        <template #addonAfter>
            <a-icon :type="showPassword ? 'eye-invisible' : 'eye'"
                    @click="toggleShowPassword"
                    style="font-size: 16px;" />
        </template>
    </a-input>
</template>
`,
    data() {
      return {
        showPassword: false,
      };
    },
    methods: {
      toggleShowPassword() {
        this.showPassword = !this.showPassword;
      },
    },
  });
</script>

<script>
  class User {
    constructor() {
      this.username = "";
      this.password = "";
    }
  }
  const app = new Vue({
    delimiters: ['[[', ']]'],
    el: '#app',
    data: {
      themeSwitcher,
      loading: false,
      user: new User(),
      secretEnable: false,
      lang: ""
    },
    async created() {
      this.lang = getLang();
      this.secretEnable = await this.getSecretStatus();
    },
    methods: {
      async login() {
        this.loading = true;
        const msg = await HttpUtil.post('/login', this.user);
        this.loading = false;
        if (msg.success) {
          location.href = basePath + 'panel/';
        }
      },
      async getSecretStatus() {
        this.loading = true;
        const msg = await HttpUtil.post('/getSecretStatus');
        this.loading = false;
        if (msg.success) {
          this.secretEnable = msg.obj;
          return msg.obj;
        }
      },
    },
  });
  document.addEventListener("DOMContentLoaded", function() {
    var animationDelay = 2000;
    initHeadline();

    function initHeadline() {
      animateHeadline(document.querySelectorAll('.headline'));
    }

    function animateHeadline(headlines) {
      var duration = animationDelay;
      headlines.forEach(function(headline) {
        setTimeout(function() {
          hideWord(headline.querySelector('.is-visible'));
        }, duration);
      });
    }

    function hideWord(word) {
      var nextWord = takeNext(word);
      switchWord(word, nextWord);
      setTimeout(function() {
        hideWord(nextWord);
      }, animationDelay);
    }

    function takeNext(word) {
      return (word.nextElementSibling) ? word.nextElementSibling : word.parentElement.firstElementChild;
    }

    function switchWord(oldWord, newWord) {
      oldWord.classList.remove('is-visible');
      oldWord.classList.add('is-hidden');
      newWord.classList.remove('is-hidden');
      newWord.classList.add('is-visible');
    }
  });
</script>


</body></html>