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.
@@ -10,7 +10,7 @@ export default class {
10
10
  if (loaderViews) {
11
11
  vueApp.sheet = {
12
12
  show: true,
13
- spec: { childViews: loaderViews },
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
- spec: Object.assign({}, response.body, { key: strandom() }),
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
- spec: {
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
@@ -25,6 +25,9 @@ p.muted {
25
25
  opacity: 0.7;
26
26
  }
27
27
 
28
+ </style>
29
+
30
+ <style lang="scss">
28
31
  .tooltip {
29
32
  padding: 4px 8px;
30
33
  color: white;
@@ -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" ghost-class="ghost"
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
- const display = this.$vuetify.display.name;
75
- return display == "lg" || display == "xl";
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
- $mounted() {
129
- bus.$on("glib-drawers/toggle", (bool) => {
130
- const data = isPresent(bool) ? bool : !this.state;
131
- this.updateState(data);
132
- });
145
+ registerDrawerToggleListener() {
146
+ this.unregisterDrawerToggleListener();
147
+ bus.$on("glib-drawers/toggle", this.handleDrawerToggle);
133
148
  },
134
- $unmounted() {
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
@@ -48,6 +48,8 @@ export default {
48
48
  this.vertical = [this.spec.styleClasses].flat().includes('vertical');
49
49
  },
50
50
  click: function (spec) {
51
+ const { onClick } = spec;
52
+ Action.execute(onClick, this);
51
53
  this.show = false;
52
54
  }
53
55
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "glib-web",
3
- "version": "4.39.3",
3
+ "version": "4.39.5",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
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
+ };