glib-web 4.39.3 → 4.39.5
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.
- package/actions/sheets/open.js +3 -3
- package/app.vue +1 -0
- package/components/p.vue +3 -0
- package/components/panels/horizontal.vue +15 -2
- package/components/panels/split.vue +3 -0
- package/nav/appBar.vue +6 -2
- package/nav/drawer.vue +26 -8
- package/nav/snackbar.vue +2 -0
- package/package.json +1 -1
- package/utils/eventBus.js +3 -2
package/actions/sheets/open.js
CHANGED
|
@@ -10,7 +10,7 @@ export default class {
|
|
|
10
10
|
if (loaderViews) {
|
|
11
11
|
vueApp.sheet = {
|
|
12
12
|
show: true,
|
|
13
|
-
|
|
13
|
+
body: { childViews: loaderViews },
|
|
14
14
|
placement
|
|
15
15
|
};
|
|
16
16
|
}
|
|
@@ -21,14 +21,14 @@ export default class {
|
|
|
21
21
|
component,
|
|
22
22
|
(response) => {
|
|
23
23
|
vueApp.sheet = {
|
|
24
|
-
|
|
24
|
+
body: Object.assign({}, response.body, { key: strandom() }),
|
|
25
25
|
show: true,
|
|
26
26
|
placement
|
|
27
27
|
};
|
|
28
28
|
},
|
|
29
29
|
() => {
|
|
30
30
|
vueApp.sheet = {
|
|
31
|
-
|
|
31
|
+
body: {
|
|
32
32
|
childViews: [
|
|
33
33
|
{ view: 'p', text: 'Failed to load' },
|
|
34
34
|
{ view: 'spacer', height: 8 },
|
package/app.vue
CHANGED
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
<!-- <glib-component v-for="(rbSpec, index) in sheet.spec.childViews" :spec="rbSpec"
|
|
44
44
|
:key="`${vueApp.sheet.spec.key}-${index}`"></glib-component> -->
|
|
45
45
|
|
|
46
|
+
<!-- TODO: fix this -->
|
|
46
47
|
<panels-responsive :spec="sheet.body"></panels-responsive>
|
|
47
48
|
</v-sheet>
|
|
48
49
|
</Transition>
|
package/components/p.vue
CHANGED
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
<!-- :disabled="!$type.isObject(dragSupport)" -->
|
|
18
|
-
<draggable :style="childStyles" :class="childClasses" handle=".handle" v-model="spec.childViews"
|
|
19
|
-
:group="dragSupport ? dragSupport.groupId || 'common' : 'common'" :data-dragPanelId="spec.id"
|
|
18
|
+
<draggable v-if="dragEnabled" :style="childStyles" :class="childClasses" handle=".handle" v-model="spec.childViews"
|
|
19
|
+
ghost-class="ghost" :group="dragSupport ? dragSupport.groupId || 'common' : 'common'" :data-dragPanelId="spec.id"
|
|
20
20
|
:disabled="!dragEnabled" @start="onDragStart" @end="onDragEnd" item-key="id">
|
|
21
21
|
<!--
|
|
22
22
|
* Wrap `glib-component` with `div` to prevent errors when `glib-component` doesn't resolve to a
|
|
@@ -33,11 +33,24 @@
|
|
|
33
33
|
</div>
|
|
34
34
|
</template>
|
|
35
35
|
|
|
36
|
+
|
|
37
|
+
|
|
36
38
|
<!-- <glib-component :spec="element" /> -->
|
|
37
39
|
<!-- <div :data-dragItemId="element.id">
|
|
38
40
|
<glib-component :spec="element" />
|
|
39
41
|
</div> -->
|
|
40
42
|
</draggable>
|
|
43
|
+
|
|
44
|
+
<!-- The radio button becomes unclickable when wrapped in a draggable component, so we conditionally remove the wrapper using v-if when dragging is not required. -->
|
|
45
|
+
<!-- page: http://localhost:3000/glib/json_ui_garage?path=forms%2Fshow_hide -->
|
|
46
|
+
<div v-else :style="childStyles" :class="childClasses">
|
|
47
|
+
<template v-for="(element, index) in spec.childViews" :key="element.id || index">
|
|
48
|
+
<div :data-dragItemId="element.id">
|
|
49
|
+
<!-- Keep your inner component -->
|
|
50
|
+
<glib-component :spec="element" />
|
|
51
|
+
</div>
|
|
52
|
+
</template>
|
|
53
|
+
</div>
|
|
41
54
|
</component>
|
|
42
55
|
</template>
|
|
43
56
|
|
|
@@ -53,7 +53,10 @@ export default {
|
|
|
53
53
|
/* Make the side panels take full height */
|
|
54
54
|
display: flex;
|
|
55
55
|
}
|
|
56
|
+
</style>
|
|
56
57
|
|
|
58
|
+
<!-- Overridable -->
|
|
59
|
+
<style>
|
|
57
60
|
.layouts-split__right {
|
|
58
61
|
/* Prevent unnecessary squashing, i.e. text broken into multiple lines */
|
|
59
62
|
flex-shrink: 0;
|
package/nav/appBar.vue
CHANGED
|
@@ -71,8 +71,12 @@ export default {
|
|
|
71
71
|
// }
|
|
72
72
|
// },
|
|
73
73
|
isPermanent() {
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
if (this.navBar.collapseButtonsOnMobile) {
|
|
75
|
+
// const display = this.$vuetify.display.name;
|
|
76
|
+
// return display == "lg" || display == "xl";
|
|
77
|
+
return !this.$vuetify.display.smAndDown;
|
|
78
|
+
}
|
|
79
|
+
return true;
|
|
76
80
|
},
|
|
77
81
|
showDrawerMenu() {
|
|
78
82
|
return this.page.leftDrawer && !this.isPermanent;
|
package/nav/drawer.vue
CHANGED
|
@@ -89,6 +89,12 @@ export default {
|
|
|
89
89
|
openedGroups: openedGroups
|
|
90
90
|
};
|
|
91
91
|
},
|
|
92
|
+
mounted() {
|
|
93
|
+
this.registerDrawerToggleListener();
|
|
94
|
+
},
|
|
95
|
+
beforeUnmount() {
|
|
96
|
+
this.unregisterDrawerToggleListener();
|
|
97
|
+
},
|
|
92
98
|
computed: {
|
|
93
99
|
cssClasses() {
|
|
94
100
|
// To make sure a css class name is assigned to this component
|
|
@@ -123,16 +129,29 @@ export default {
|
|
|
123
129
|
trigger: function (val, oldVal) {
|
|
124
130
|
this.state = !this.state;
|
|
125
131
|
},
|
|
132
|
+
spec: {
|
|
133
|
+
handler() {
|
|
134
|
+
// When the page reloads reactively, the event bus listeners are cleared.
|
|
135
|
+
// Re-register the drawer toggle so future events still work.
|
|
136
|
+
if (bus.hasListener("glib-drawers/toggle", this.handleDrawerToggle)) {
|
|
137
|
+
// Listener is still active; skip re-registering to avoid duplicate toggles.
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
this.registerDrawerToggleListener();
|
|
141
|
+
}
|
|
142
|
+
}
|
|
126
143
|
},
|
|
127
144
|
methods: {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
this.updateState(data);
|
|
132
|
-
});
|
|
145
|
+
registerDrawerToggleListener() {
|
|
146
|
+
this.unregisterDrawerToggleListener();
|
|
147
|
+
bus.$on("glib-drawers/toggle", this.handleDrawerToggle);
|
|
133
148
|
},
|
|
134
|
-
|
|
135
|
-
bus.$off("glib-drawers/toggle");
|
|
149
|
+
unregisterDrawerToggleListener() {
|
|
150
|
+
bus.$off("glib-drawers/toggle", this.handleDrawerToggle);
|
|
151
|
+
},
|
|
152
|
+
handleDrawerToggle(bool) {
|
|
153
|
+
const data = isPresent(bool) ? bool : !this.state;
|
|
154
|
+
this.updateState(data);
|
|
136
155
|
},
|
|
137
156
|
updateState(state) {
|
|
138
157
|
this.state = state;
|
|
@@ -172,7 +191,6 @@ export default {
|
|
|
172
191
|
align-items: center;
|
|
173
192
|
background-color: white;
|
|
174
193
|
}
|
|
175
|
-
|
|
176
194
|
</style>
|
|
177
195
|
|
|
178
196
|
<style lang="scss">
|
package/nav/snackbar.vue
CHANGED
package/package.json
CHANGED
package/utils/eventBus.js
CHANGED
|
@@ -9,5 +9,6 @@ export default {
|
|
|
9
9
|
$off: (...args) => emitter.off(...args),
|
|
10
10
|
$emit: (...args) => emitter.emit(...args),
|
|
11
11
|
$removeAllListener: (...args) => emitter.removeAllListeners(...args),
|
|
12
|
-
currentListenerCount: () => emitter.listeners().length
|
|
13
|
-
|
|
12
|
+
currentListenerCount: () => emitter.listeners().length,
|
|
13
|
+
hasListener: (event, listener) => emitter.listeners(event).includes(listener)
|
|
14
|
+
};
|