@afeefa/vue-app 0.0.179 → 0.0.180

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- 0.0.179
1
+ 0.0.180
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@afeefa/vue-app",
3
- "version": "0.0.179",
3
+ "version": "0.0.180",
4
4
  "description": "",
5
5
  "author": "Afeefa Kollektiv <kollektiv@afeefa.de>",
6
6
  "license": "MIT",
@@ -1,6 +1,7 @@
1
1
  <template>
2
2
  <v-alert
3
3
  v-bind="$attrs"
4
+ :type="type"
4
5
  :style="{display: inline ? 'inline-block' : 'block'}"
5
6
  :class="['a-info', {xSmall}]"
6
7
  dense
@@ -17,7 +18,7 @@
17
18
  import { Component, Vue } from '@a-vue'
18
19
 
19
20
  @Component({
20
- props: [{inline: true, xSmall: false}]
21
+ props: [{inline: true, xSmall: false, type: 'info'}]
21
22
  })
22
23
  export default class AInfo extends Vue {
23
24
  }
@@ -30,8 +30,6 @@ export default class ATabs extends Vue {
30
30
  currentIndex = 0
31
31
 
32
32
  mounted () {
33
- console.log(this.$children)
34
-
35
33
  this.titles = this.$children.map(c => c.title)
36
34
 
37
35
  this.$children[this.currentIndex].show()
@@ -52,7 +50,7 @@ export default class ATabs extends Vue {
52
50
 
53
51
  <style lang="scss" scoped>
54
52
  .menuContainer {
55
- border-bottom: 2px solid #EEEEEE;
53
+ border-bottom: 3px solid #DDDDDD;
56
54
  margin: 2rem 0;
57
55
 
58
56
  &.first {
@@ -64,29 +62,26 @@ export default class ATabs extends Vue {
64
62
  position: relative;
65
63
  display: flex;
66
64
  justify-content: center;
67
- margin-bottom: -2px;
68
65
 
69
66
  .label {
70
- padding: .6rem 1.5rem .5rem;
71
- border-bottom: 2px solid #EEEEEE;
72
- // border-top-left-radius: 6px;
73
- // border-top-right-radius: 6px;
67
+ padding: .5rem 1rem .7rem;
74
68
  background: white;
75
69
  cursor: pointer;
76
70
 
77
71
  text-transform: uppercase;
78
72
  letter-spacing: 5px;
79
- color: #CCCCCC;
73
+ color: #BBBBBB;
80
74
  font-size: .8rem;
81
75
  white-space: nowrap;
82
76
 
83
- &.selected {
84
- padding-top: .3rem;
77
+ &:hover {
78
+ background: #F4F4F4;
79
+ color: #AAAAAA;
80
+ }
85
81
 
86
- border-left: 2px solid #EEEEEE;
87
- border-top: 2px solid #EEEEEE;
88
- border-right: 2px solid #EEEEEE;
89
- border-bottom: none;
82
+ &.selected {
83
+ background: #DDDDDD;
84
+ color: #666666;
90
85
  }
91
86
  }
92
87
  }
@@ -3,6 +3,7 @@
3
3
  v-show="visible"
4
4
  id="information-bar"
5
5
  :class="{mobile, rail}"
6
+ :style="widthStyle"
6
7
  >
7
8
  <div :class="['toggleButton', {rail}]">
8
9
  <v-app-bar-nav-icon
@@ -40,6 +41,7 @@ export default class InformationBar extends Vue {
40
41
  visible = false
41
42
  mobile = false
42
43
  rail = false
44
+ width = 300
43
45
 
44
46
  created () {
45
47
  this.$events.on(SidebarEvent.STATUS, ({payload: {information, informationRailed, mobile}}) => {
@@ -69,15 +71,15 @@ export default class InformationBar extends Vue {
69
71
 
70
72
  const elTop = document.createElement('div')
71
73
  document.body.appendChild(elTop)
72
- moveChildren(this.$el.querySelector('#information-bar__children .top'), elTop)
74
+ moveChildren(this.getTopContainer(), elTop)
73
75
 
74
76
  const elBottom = document.createElement('div')
75
77
  document.body.appendChild(elBottom)
76
- moveChildren(this.$el.querySelector('#information-bar__children .bottom'), elBottom)
78
+ moveChildren(this.getBottomContainer(), elBottom)
77
79
 
78
80
  this.$nextTick(() => {
79
- moveChildren(elTop, document.querySelector('#information-bar__children .top'))
80
- moveChildren(elBottom, document.querySelector('#information-bar__children .bottom'))
81
+ moveChildren(elTop, this.getTopContainer())
82
+ moveChildren(elBottom, this.getBottomContainer())
81
83
  this.$nextTick(() => {
82
84
  this.$events.dispatch(new SidebarEvent(SidebarEvent.STATUS, new SidebarState(sidebarService)))
83
85
  })
@@ -86,7 +88,8 @@ export default class InformationBar extends Vue {
86
88
 
87
89
  @Watch('rail')
88
90
  railChanged () {
89
- this.$el.style.marginRight = this.rail ? '-240px' : 0
91
+ const right = `calc(-${this.width}px - 3rem + 60px)`
92
+ this.$el.style.marginRight = this.rail ? right : 0
90
93
  }
91
94
 
92
95
  toggleRail () {
@@ -98,6 +101,7 @@ export default class InformationBar extends Vue {
98
101
  const visible = this.hasSidebarItems()
99
102
 
100
103
  if (visible && !old) {
104
+ this.width = this.getWidthFromItems()
101
105
  sidebarService.setInformation(true)
102
106
  }
103
107
 
@@ -110,6 +114,14 @@ export default class InformationBar extends Vue {
110
114
  return this.$el.querySelector('#information-bar__children')
111
115
  }
112
116
 
117
+ getTopContainer () {
118
+ return document.querySelector('#information-bar__children .top')
119
+ }
120
+
121
+ getBottomContainer () {
122
+ return document.querySelector('#information-bar__children .bottom')
123
+ }
124
+
113
125
  hasSidebarItems () {
114
126
  return !!(this.$el.querySelector('#information-bar__children .top').children.length +
115
127
  this.$el.querySelector('#information-bar__children .bottom').children.length)
@@ -118,6 +130,33 @@ export default class InformationBar extends Vue {
118
130
  hideSidebar () {
119
131
  sidebarService.setInformation(false)
120
132
  }
133
+
134
+ getWidthFromItems () {
135
+ let width = 0
136
+
137
+ Array.from(this.getTopContainer().children).forEach(c => {
138
+ if (c.style.width !== 'auto') {
139
+ const w = parseInt(c.style.width)
140
+ width = Math.max(width, w)
141
+ }
142
+ })
143
+
144
+ Array.from(this.getBottomContainer().children).forEach(c => {
145
+ if (c.style.width !== 'auto') {
146
+ const w = parseInt(c.style.width)
147
+ width = Math.max(width, w)
148
+ }
149
+ })
150
+
151
+ return width
152
+ }
153
+
154
+ get widthStyle () {
155
+ return {
156
+ flex: `0 0 calc(${this.width}px + 3rem)`,
157
+ width: `calc(${this.width}px + 3rem)`
158
+ }
159
+ }
121
160
  }
122
161
  </script>
123
162
 
@@ -126,8 +165,6 @@ export default class InformationBar extends Vue {
126
165
  #information-bar {
127
166
  position: relative;
128
167
 
129
- flex: 0 0 300px;
130
- width: 300px;
131
168
  height: 100vh;
132
169
  overflow-x: hidden;
133
170
  overflow-y: auto;