diff --git a/Thermo.Active/wwwroot/assets/styles/base/layout.less b/Thermo.Active/wwwroot/assets/styles/base/layout.less index 61a41d28..41dc93ab 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/layout.less +++ b/Thermo.Active/wwwroot/assets/styles/base/layout.less @@ -8,6 +8,7 @@ @import "slider.less"; @import "tastierino.less"; @import "circlegantt.less"; +@import "paddle.less"; @import "arretramento-riscaldi.less"; @import "avvio-prod.less"; @import "ciclo.less"; diff --git a/Thermo.Active/wwwroot/assets/styles/base/paddle.less b/Thermo.Active/wwwroot/assets/styles/base/paddle.less new file mode 100644 index 00000000..3f303985 --- /dev/null +++ b/Thermo.Active/wwwroot/assets/styles/base/paddle.less @@ -0,0 +1,161 @@ +// out: false, sourceMap: false, main: ../style.less +@import "grid-system.less"; +@import "colors.less"; +@import "fonts.less"; + +html { + height: 100%; + overflow:hidden; + } + + body { + border: 0; margin: 0; padding: 0; + font-family: 'Lato'; + height: 100%; + background: rgb(101,31,87); + background: linear-gradient(45deg, rgba(101,31,87,1) 0%, rgba(225,113,87,1) 48%, rgba(249,248,113,1) 100%); + } + + .logo { + align-self: center; + color: #fff; + font-weight: bold; + font-family: 'Lato' + } + + .main-nav { + // display: flex; + // justify-content: space-between; + // padding: 0.5rem 0.8rem; + // float: left; + padding: 0.5rem 0.8rem; + position: absolute; + bottom: 0; + right: 0; + } + + ul.sidebar-panel-nav { + list-style-type: none; + } + + ul.sidebar-panel-nav > li > a { + color: #fff; + text-decoration: none; + font-size: 1.5rem; + display: block; + padding-bottom: 0.5em; + } + + .slide-enter-active, + .slide-leave-active + { + transition: transform 0.2s ease; + } + + .slide-enter, + .slide-leave-to { + transform: translateX(-100%); + transition: all 150ms ease-in 0s + } + + .sidebar-backdrop { + background-color: rgba(0,0,0,.5); + width: 100vw; + height: 100vh; + position: fixed; + top: 0; + left: 0; + cursor: pointer; + } + + .sidebar-panel { + overflow-y: auto; + background-color: #130f40; + position: fixed; + right: 0; + top: 0; + height: 100vh; + z-index: 999; + padding: 3rem 20px 2rem 20px; + width: 300px; + } + + .hidden { + visibility: hidden; + } + + button { + cursor: pointer; + } + + /* remove blue outline */ + button:focus { + outline: 0; + } + + .burger-button { + position: relative; + height: 30px; + width: 32px; + display: block; + z-index: 9999; + border: 0; + border-radius: 0; + background-color: transparent; + pointer-events: all; + transition: transform .6s cubic-bezier(.165,.84,.44,1); + } + + .burger-bar { + background-color: #130f40; + position: absolute; + top: 50%; + right: 6px; + left: 6px; + height: 2px; + width: auto; + margin-top: -1px; + transition: transform .6s cubic-bezier(.165,.84,.44,1),opacity .3s cubic-bezier(.165,.84,.44,1),background-color .6s cubic-bezier(.165,.84,.44,1); + } + + .burger-bar--1 { + -webkit-transform: translateY(-6px); + transform: translateY(-6px); + } + + .burger-bar--2 { + transform-origin: 100% 50%; + transform: scaleX(.8); + } + + .burger-button:hover .burger-bar--2 { + transform: scaleX(1); + } + + .no-touchevents .burger-bar--2:hover { + transform: scaleX(1); + } + + .burger-bar--3 { + transform: translateY(6px); + } + + #burger.active .burger-button { + transform: rotate(-180deg); + } + + #burger.active .burger-bar { + background-color: #fff; + } + + #burger.active .burger-bar--1 { + transform: rotate(45deg) + } + + #burger.active .burger-bar--2 { + opacity: 0; + } + + #burger.active .burger-bar--3 { + transform: rotate(-45deg) + } \ No newline at end of file diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index 68ddc941..a86bb527 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -4444,6 +4444,137 @@ grid-column: 0.8; grid-row: 0.5; } + +html { + height: 100%; + overflow: hidden; +} +body { + border: 0; + margin: 0; + padding: 0; + font-family: 'Lato'; + height: 100%; + background: #651f57; + background: linear-gradient(45deg, #651f57 0%, #e17157 48%, #f9f871 100%); +} +.logo { + align-self: center; + color: #fff; + font-weight: bold; + font-family: 'Lato'; +} +.main-nav { + padding: 0.5rem 0.8rem; + position: absolute; + bottom: 0; + right: 0; +} +ul.sidebar-panel-nav { + list-style-type: none; +} +ul.sidebar-panel-nav > li > a { + color: #fff; + text-decoration: none; + font-size: 1.5rem; + display: block; + padding-bottom: 0.5em; +} +.slide-enter-active, +.slide-leave-active { + transition: transform 0.2s ease; +} +.slide-enter, +.slide-leave-to { + transform: translateX(-100%); + transition: all 150ms ease-in 0s; +} +.sidebar-backdrop { + background-color: rgba(0, 0, 0, 0.5); + width: 100vw; + height: 100vh; + position: fixed; + top: 0; + left: 0; + cursor: pointer; +} +.sidebar-panel { + overflow-y: auto; + background-color: #130f40; + position: fixed; + right: 0; + top: 0; + height: 100vh; + z-index: 999; + padding: 3rem 20px 2rem 20px; + width: 300px; +} +.hidden { + visibility: hidden; +} +button { + cursor: pointer; +} +/* remove blue outline */ +button:focus { + outline: 0; +} +.burger-button { + position: relative; + height: 30px; + width: 32px; + display: block; + z-index: 9999; + border: 0; + border-radius: 0; + background-color: transparent; + pointer-events: all; + transition: transform 0.6s cubic-bezier(0.165, 0.84, 0.44, 1); +} +.burger-bar { + background-color: #130f40; + position: absolute; + top: 50%; + right: 6px; + left: 6px; + height: 2px; + width: auto; + margin-top: -1px; + transition: transform 0.6s cubic-bezier(0.165, 0.84, 0.44, 1), opacity 0.3s cubic-bezier(0.165, 0.84, 0.44, 1), background-color 0.6s cubic-bezier(0.165, 0.84, 0.44, 1); +} +.burger-bar--1 { + -webkit-transform: translateY(-6px); + transform: translateY(-6px); +} +.burger-bar--2 { + transform-origin: 100% 50%; + transform: scaleX(0.8); +} +.burger-button:hover .burger-bar--2 { + transform: scaleX(1); +} +.no-touchevents .burger-bar--2:hover { + transform: scaleX(1); +} +.burger-bar--3 { + transform: translateY(6px); +} +#burger.active .burger-button { + transform: rotate(-180deg); +} +#burger.active .burger-bar { + background-color: #fff; +} +#burger.active .burger-bar--1 { + transform: rotate(45deg); +} +#burger.active .burger-bar--2 { + opacity: 0; +} +#burger.active .burger-bar--3 { + transform: rotate(-45deg); +} + .circle-gantt { height: 70px; } diff --git a/Thermo.Active/wwwroot/src/App.ts b/Thermo.Active/wwwroot/src/App.ts index a07e2fcd..5c6f93b3 100644 --- a/Thermo.Active/wwwroot/src/App.ts +++ b/Thermo.Active/wwwroot/src/App.ts @@ -10,6 +10,8 @@ import { ModalContainer, ModalNcContainer } from "./modules/base-components"; import { ModalHelper } from "@/components/modals" import { store, appModelActions, machineStatusActions } from "@/store"; import { underTheHood } from "@/app_modules/under-the-hood"; +import Burger from "@/app_modules_thermo/components/paddle/burger.vue"; +import Sidebar from "@/app_modules_thermo/components/paddle/sidebar.vue"; import * as iziToast from "izitoast"; @@ -30,6 +32,8 @@ declare var cmsClient; appFooter: Footer, modalContainer: ModalContainer, modalNcContainer: ModalNcContainer, + burger: Burger, + sidebar: Sidebar, alarmList, underTheHood, } diff --git a/Thermo.Active/wwwroot/src/App.vue b/Thermo.Active/wwwroot/src/App.vue index c8bf1de2..81a772df 100644 --- a/Thermo.Active/wwwroot/src/App.vue +++ b/Thermo.Active/wwwroot/src/App.vue @@ -7,7 +7,6 @@
-
@@ -18,6 +17,17 @@
+ + + + + diff --git a/Thermo.Active/wwwroot/src/app_modules/alarms/components/alarms-list.ts b/Thermo.Active/wwwroot/src/app_modules/alarms/components/alarms-list.ts index b7c65ea8..9498dd8f 100644 --- a/Thermo.Active/wwwroot/src/app_modules/alarms/components/alarms-list.ts +++ b/Thermo.Active/wwwroot/src/app_modules/alarms/components/alarms-list.ts @@ -133,7 +133,7 @@ export default class alarmsList extends Vue { public get opened(): boolean { return this.$store.state.alarms.opened; - } + } public get serviceOpened(): boolean { return this.$store.state.alarms.serviceOpened; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/paddle/burger.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/components/paddle/burger.ts new file mode 100644 index 00000000..3d15b9fb --- /dev/null +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/paddle/burger.ts @@ -0,0 +1,17 @@ +import Vue from "vue"; +import Component from "vue-class-component"; +import {paddleActions} from '@/store/paddle.store.ts'; + +@Component({name: 'burger'}) +export default class Burger extends Vue{ + + isBurgerActive(){ + + return this.$store.state.paddle.isNavOpen; + } + + togglePaddle() { + + paddleActions.Toggle(this.$store); + } +} \ No newline at end of file diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/paddle/burger.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/components/paddle/burger.vue new file mode 100644 index 00000000..f8db1648 --- /dev/null +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/paddle/burger.vue @@ -0,0 +1,12 @@ + +