@afeefa/vue-app 0.0.154 → 0.0.155

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- 0.0.154
1
+ 0.0.155
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@afeefa/vue-app",
3
- "version": "0.0.154",
3
+ "version": "0.0.155",
4
4
  "description": "",
5
5
  "author": "Afeefa Kollektiv <kollektiv@afeefa.de>",
6
6
  "license": "MIT",
@@ -47,7 +47,7 @@ export default class FlyingContext extends Mixins(CancelOnEscMixin) {
47
47
  if (this.width) {
48
48
  containerContainer.style.width = this.width
49
49
  } else {
50
- containerContainer.style.width = '50vw'
50
+ containerContainer.style.width = 'auto'
51
51
  }
52
52
 
53
53
  const container = this.getChildrenContainer()
@@ -35,10 +35,13 @@ export default class FlyingContextContainer extends Vue {
35
35
  oldOverflowY = null
36
36
 
37
37
  mounted () {
38
- this.mutationWatcher = new MutationObserver(this.domChanged)
39
- this.mutationWatcher.observe(this.getChildrenContainer(), { childList: true })
38
+ const mutationWatcher = new MutationObserver(this.domChanged)
39
+ mutationWatcher.observe(this.getChildrenContainer(), { childList: true })
40
40
 
41
41
  window.addEventListener('mousedown', this.onClickOutside)
42
+
43
+ const sizeWatcher = new ResizeObserver(this.sizeChanged)
44
+ sizeWatcher.observe(this.getChildrenContainer())
42
45
  }
43
46
 
44
47
  getScrollbarWidth () {
@@ -56,6 +59,18 @@ export default class FlyingContextContainer extends Vue {
56
59
  return 0
57
60
  }
58
61
 
62
+
63
+ sizeChanged () {
64
+ if (this.visible) {
65
+ this.$nextTick(() => {
66
+ const scrollbarWidth = this.getScrollbarWidth()
67
+ const el = document.documentElement
68
+ const newSize = el.offsetWidth - this.$el.offsetWidth + scrollbarWidth
69
+ this.$el.style.left = newSize + 'px'
70
+ })
71
+ }
72
+ }
73
+
59
74
  domChanged () {
60
75
  const container = this.getChildrenContainer()
61
76
  this.visible = !!container.children.length
@@ -75,14 +90,15 @@ export default class FlyingContextContainer extends Vue {
75
90
  } else {
76
91
  el.style.overflowY = this.oldOverflowY
77
92
  el.style.marginRight = 0
78
-
79
- this.$el.style.left = '101vw'
80
93
  }
81
94
  }
82
95
 
83
96
  hide () {
84
97
  if (this.visible) {
85
- this.$events.dispatch(new FlyingContextEvent(FlyingContextEvent.HIDE_ALL))
98
+ this.$el.style.left = '101vw'
99
+ setTimeout(() => { // fade in then hide contents
100
+ this.$events.dispatch(new FlyingContextEvent(FlyingContextEvent.HIDE_ALL))
101
+ }, 200)
86
102
  }
87
103
  }
88
104
 
@@ -123,9 +139,8 @@ export default class FlyingContextContainer extends Vue {
123
139
  #flyingContextContainer {
124
140
  position: fixed;
125
141
  z-index: 200;
126
- left: 50vw;
127
142
  height: 100%;
128
- width: 50vw;
143
+ width: auto;
129
144
  min-width: 400px;
130
145
  max-width: calc(100vw - 100px);
131
146
  top: 0;