glib-web 2.4.1 → 3.0.0-beta1
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/LICENSE +0 -0
- package/action.js +6 -1
- package/actions/auth/restart.js +0 -0
- package/actions/commands/enqueue.js +17 -0
- package/actions/components/update.js +13 -14
- package/actions/dialogs/oauth.js +0 -0
- package/actions/dialogs/options.js +0 -0
- package/app.vue +25 -26
- package/components/_button.vue +21 -28
- package/components/_chip.vue +14 -19
- package/components/_dropdownMenu.vue +10 -23
- package/components/_icon.vue +5 -5
- package/components/_message.vue +0 -0
- package/components/_responsive.vue +7 -21
- package/components/avatar.vue +11 -15
- package/components/banners/alert.vue +2 -7
- package/components/banners/select.vue +18 -30
- package/components/button.vue +5 -5
- package/components/component.vue +97 -100
- package/components/datetime.vue +0 -0
- package/components/fab.vue +0 -0
- package/components/fields/_patternText.vue +5 -19
- package/components/fields/_select.vue +7 -28
- package/components/fields/autocomplete.vue +5 -21
- package/components/fields/check.vue +19 -11
- package/components/fields/country/countries.js +0 -0
- package/components/fields/country/field.vue +9 -27
- package/components/fields/country/regions.js +0 -0
- package/components/fields/date.vue +5 -5
- package/components/fields/datetime.vue +5 -5
- package/components/fields/dynamicSelect.vue +8 -29
- package/components/fields/newRichText.vue +66 -53
- package/components/fields/otpField.vue +90 -0
- package/components/fields/phone/field.vue +60 -78
- package/components/fields/radio.vue +16 -23
- package/components/fields/rating.vue +9 -16
- package/components/fields/richText.vue +8 -28
- package/components/fields/select.vue +10 -7
- package/components/fields/stripeExternalAccount.vue +10 -24
- package/components/fields/text.vue +24 -40
- package/components/fields/textarea.vue +13 -27
- package/components/fields/timeZone.vue +9 -6
- package/components/fields/timer.vue +3 -10
- package/components/hr.vue +0 -0
- package/components/html.vue +0 -0
- package/components/image.vue +13 -20
- package/components/map.vue +115 -29
- package/components/markdown.vue +15 -8
- package/components/mixins/events.js +17 -6
- package/components/mixins/longClick.js +0 -0
- package/components/mixins/scrolling.js +0 -0
- package/components/mixins/styles.js +18 -15
- package/components/mixins/table/export.js +0 -0
- package/components/mixins/table/import.js +0 -0
- package/components/p.vue +0 -0
- package/components/panels/column.vue +5 -5
- package/components/panels/custom.vue +15 -15
- package/components/panels/flow.vue +19 -13
- package/components/panels/form.vue +17 -28
- package/components/panels/grid.vue +15 -9
- package/components/panels/horizontal.vue +149 -18
- package/components/panels/list.vue +63 -70
- package/components/panels/responsive.vue +13 -33
- package/components/panels/split.vue +2 -2
- package/components/panels/table.vue +27 -61
- package/components/panels/timeline.vue +20 -30
- package/components/panels/vertical.vue +9 -14
- package/components/tabBar.vue +27 -19
- package/index.js +68 -72
- package/keys.js +0 -0
- package/nav/appbar.vue +4 -4
- package/nav/dialog.vue +24 -34
- package/nav/drawer.vue +39 -51
- package/nav/drawerButton.vue +5 -7
- package/nav/drawerLabel.vue +2 -3
- package/nav/sheet.vue +18 -24
- package/nav/snackbar.vue +16 -26
- package/package.json +10 -11
- package/plugins/driverCustomBehavior.js +1 -1
- package/plugins/updatableComponent.js +1 -7
- package/plugins/vuetify.js +27 -0
- package/settings.json.example +0 -0
- package/styles/test.sass +0 -0
- package/styles/test.scss +0 -0
- package/templates/comment.vue +42 -19
- package/templates/featured.vue +8 -9
- package/templates/thumbnail-old.vue +188 -0
- package/templates/thumbnail.vue +5 -188
- package/templates/unsupported.vue +0 -0
- package/tsconfig.json +1 -1
- package/utils/dom.js +0 -0
- package/utils/eventBus.js +9 -2
- package/utils/history.js +7 -4
- package/utils/http.js +7 -2
- package/utils/launch.js +43 -51
- package/utils/public.js +6 -0
- package/utils/queue.js +110 -0
- package/utils/settings.js +3 -1
- package/utils/storage.js +0 -0
- package/utils/url.js +0 -0
package/LICENSE
CHANGED
|
File without changes
|
package/action.js
CHANGED
|
@@ -50,11 +50,14 @@ import ActionsAnalyticsLogEvent from "./actions/analytics/logEvent";
|
|
|
50
50
|
|
|
51
51
|
import ActionCommandsCopy from "./actions/commands/copy";
|
|
52
52
|
import ActionCommandsCustom from "./actions/commands/custom";
|
|
53
|
+
import ActionCommandsEnqueue from "./actions/commands/enqueue";
|
|
53
54
|
|
|
54
55
|
import ActionToursStart from "./actions/tours/start";
|
|
55
56
|
|
|
56
57
|
import ActionComponentsUpdate from "./actions/components/update";
|
|
57
58
|
|
|
59
|
+
import eventBus from "./utils/eventBus";
|
|
60
|
+
|
|
58
61
|
const actions = {
|
|
59
62
|
runMultiple: ActionsRunMultiple,
|
|
60
63
|
|
|
@@ -106,6 +109,7 @@ const actions = {
|
|
|
106
109
|
|
|
107
110
|
"commands/copy": ActionCommandsCopy,
|
|
108
111
|
"commands/custom": ActionCommandsCustom,
|
|
112
|
+
"commands/enqueue": ActionCommandsEnqueue,
|
|
109
113
|
|
|
110
114
|
"tours/start": ActionToursStart,
|
|
111
115
|
"components/update": ActionComponentsUpdate
|
|
@@ -180,7 +184,8 @@ export default class Action {
|
|
|
180
184
|
// TODO: The execution should be in the following order: onResponse, page render, onLoad
|
|
181
185
|
if (response.header || response.body || response.footer) {
|
|
182
186
|
Utils.http.forceComponentUpdate(() => {
|
|
183
|
-
window.vueApp.page = response;
|
|
187
|
+
// window.vueApp.page = response;
|
|
188
|
+
eventBus.$emit('app/updatePage', response)
|
|
184
189
|
});
|
|
185
190
|
}
|
|
186
191
|
|
package/actions/auth/restart.js
CHANGED
|
File without changes
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// import Hash from "../../utils/hash";
|
|
2
|
+
|
|
3
|
+
export default class {
|
|
4
|
+
// async executeJob(spec, component) {
|
|
5
|
+
// console.log("Waiting for next job1...");
|
|
6
|
+
// GLib.action.execute(spec.onExecute, component);
|
|
7
|
+
// await this.sleep(2000);
|
|
8
|
+
// console.log("Waiting for next job2...");
|
|
9
|
+
// }
|
|
10
|
+
execute(spec, component) {
|
|
11
|
+
GLib.queue.enqueue(() => {
|
|
12
|
+
GLib.action.execute(spec.onExecute, component);
|
|
13
|
+
// console.log("Waiting for next job0...");
|
|
14
|
+
// this.executeJob(spec, component);
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -1,29 +1,28 @@
|
|
|
1
|
-
import Vue from "
|
|
1
|
+
import { Vue } from "../../index";
|
|
2
2
|
|
|
3
3
|
export default class {
|
|
4
4
|
execute(spec, component) {
|
|
5
5
|
if (!spec.views.length > 1) {
|
|
6
6
|
console.warn("Make sure views only have 1 child!");
|
|
7
7
|
}
|
|
8
|
-
// const target = component.updatables[spec.targetId];
|
|
9
|
-
// if (!target) console.error("no component found :" + spec.targetId);
|
|
10
8
|
|
|
11
9
|
const target = GLib.component.findById(spec.targetId);
|
|
12
10
|
if (target) {
|
|
13
11
|
Object.assign(target.spec, spec.views[0]);
|
|
14
|
-
|
|
12
|
+
target.$recursiveUpdate();
|
|
15
13
|
}
|
|
16
14
|
}
|
|
17
15
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
// // TODO: Use $recursiveUpdate(). See mixins/events
|
|
17
|
+
// updateComponent(component) {
|
|
18
|
+
// component.$ready();
|
|
19
|
+
// component.$forceUpdate();
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
21
|
+
// // Execute on next tick to ensure that the child has received the updated spec.
|
|
22
|
+
// Vue.nextTick(() => {
|
|
23
|
+
// component.$children.find(child => {
|
|
24
|
+
// this.updateComponent(child);
|
|
25
|
+
// });
|
|
26
|
+
// });
|
|
27
|
+
// }
|
|
29
28
|
}
|
package/actions/dialogs/oauth.js
CHANGED
|
File without changes
|
|
File without changes
|
package/app.vue
CHANGED
|
@@ -1,25 +1,14 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<v-app :class="page.styleClasses">
|
|
3
|
-
<component
|
|
4
|
-
:is="containerComponent"
|
|
5
|
-
:spec="formSpec"
|
|
6
|
-
:style="'height: 100%;'"
|
|
7
|
-
>
|
|
3
|
+
<component :is="containerComponent" :spec="formSpec" :style="'height: 100%;'">
|
|
8
4
|
<nav-appbar ref="appBar" :page="page" />
|
|
9
5
|
|
|
10
|
-
<v-progress-linear
|
|
11
|
-
|
|
12
|
-
:indeterminate="true"
|
|
13
|
-
height="5"
|
|
14
|
-
style="position: fixed; z-index: 4;"
|
|
15
|
-
>
|
|
6
|
+
<v-progress-linear v-if="$root.vueApp.indicator" :indeterminate="true" height="5"
|
|
7
|
+
style="position: fixed; z-index: 4;">
|
|
16
8
|
</v-progress-linear>
|
|
17
9
|
|
|
18
10
|
<v-main :style="`height: ${mainHeight}px;`">
|
|
19
|
-
<v-container
|
|
20
|
-
:fluid="page.template == 'fullWidth'"
|
|
21
|
-
:class="containerClasses"
|
|
22
|
-
>
|
|
11
|
+
<v-container :fluid="page.template == 'fullWidth'" :class="containerClasses">
|
|
23
12
|
<div class="pages-header">
|
|
24
13
|
<panels-responsive :spec="header" />
|
|
25
14
|
</div>
|
|
@@ -38,25 +27,25 @@
|
|
|
38
27
|
</template>
|
|
39
28
|
|
|
40
29
|
<script>
|
|
41
|
-
import NavAppBar from "./nav/appbar";
|
|
30
|
+
import NavAppBar from "./nav/appbar.vue";
|
|
42
31
|
import Utils from "./utils/helper";
|
|
43
32
|
import phoenixSocketMixin from "./components/mixins/ws/phoenixSocket.js";
|
|
44
33
|
import actionCableMixin from "./components/mixins/ws/actionCable.js";
|
|
45
|
-
import FormPanel from "./components/panels/form";
|
|
34
|
+
import FormPanel from "./components/panels/form.vue";
|
|
46
35
|
|
|
47
36
|
export default {
|
|
48
37
|
components: {
|
|
49
38
|
"nav-appbar": NavAppBar,
|
|
50
|
-
"panels-form": FormPanel
|
|
39
|
+
"panels-form": FormPanel,
|
|
51
40
|
},
|
|
52
41
|
mixins: [phoenixSocketMixin, actionCableMixin],
|
|
53
42
|
props: {
|
|
54
|
-
page: { type: Object, required: true }
|
|
43
|
+
page: { type: Object, required: true },
|
|
55
44
|
},
|
|
56
45
|
data() {
|
|
57
46
|
return {
|
|
58
47
|
title: "...",
|
|
59
|
-
mainHeight: 0
|
|
48
|
+
mainHeight: 0,
|
|
60
49
|
};
|
|
61
50
|
},
|
|
62
51
|
computed: {
|
|
@@ -83,10 +72,10 @@ export default {
|
|
|
83
72
|
// Use computed to ensure that the spec gets updated when the user navigates to another page.
|
|
84
73
|
formSpec() {
|
|
85
74
|
return this.page.fullPageForm;
|
|
86
|
-
}
|
|
75
|
+
},
|
|
87
76
|
},
|
|
88
77
|
watch: {
|
|
89
|
-
"$root.indicator": function(val, oldVal) {
|
|
78
|
+
"$root.indicator": function (val, oldVal) {
|
|
90
79
|
document.title = val ? "..." : this.page.title;
|
|
91
80
|
}
|
|
92
81
|
},
|
|
@@ -102,7 +91,7 @@ export default {
|
|
|
102
91
|
$mounted() {
|
|
103
92
|
window.addEventListener(
|
|
104
93
|
"resize",
|
|
105
|
-
event => {
|
|
94
|
+
(event) => {
|
|
106
95
|
this.updateMainHeight();
|
|
107
96
|
},
|
|
108
97
|
true
|
|
@@ -118,7 +107,7 @@ export default {
|
|
|
118
107
|
if (!Utils.settings.isDev) {
|
|
119
108
|
console.log(`Tracking analytics: ${window.location}`);
|
|
120
109
|
this.$gtag.pageview({
|
|
121
|
-
page_location: window.location
|
|
110
|
+
page_location: window.location,
|
|
122
111
|
});
|
|
123
112
|
}
|
|
124
113
|
} else {
|
|
@@ -146,8 +135,8 @@ export default {
|
|
|
146
135
|
updateMainHeight() {
|
|
147
136
|
console.debug("Setting body height");
|
|
148
137
|
this.mainHeight = window.innerHeight - this.$refs.appBar.$el.offsetHeight;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
138
|
+
},
|
|
139
|
+
},
|
|
151
140
|
};
|
|
152
141
|
</script>
|
|
153
142
|
|
|
@@ -165,6 +154,7 @@ export default {
|
|
|
165
154
|
body {
|
|
166
155
|
// Hide superfluous scrollbar (Edge)
|
|
167
156
|
-ms-overflow-style: none;
|
|
157
|
+
|
|
168
158
|
* {
|
|
169
159
|
-ms-overflow-style: initial;
|
|
170
160
|
}
|
|
@@ -174,6 +164,7 @@ body {
|
|
|
174
164
|
display: none;
|
|
175
165
|
}
|
|
176
166
|
}
|
|
167
|
+
|
|
177
168
|
html {
|
|
178
169
|
// Hide superfluous scrollbar (Firefox)
|
|
179
170
|
scrollbar-width: none;
|
|
@@ -185,15 +176,22 @@ body,
|
|
|
185
176
|
#app {
|
|
186
177
|
height: 100%;
|
|
187
178
|
}
|
|
179
|
+
|
|
188
180
|
/******/
|
|
189
181
|
|
|
190
182
|
/*** panels/scrollTo support ***/
|
|
191
183
|
.glib-scrollto {
|
|
192
184
|
transition: background 0.5s;
|
|
193
185
|
}
|
|
186
|
+
|
|
194
187
|
.glib-scrollto--highlighted {
|
|
195
188
|
background: yellow !important;
|
|
196
189
|
}
|
|
190
|
+
|
|
191
|
+
.glib-clickable {
|
|
192
|
+
cursor: pointer;
|
|
193
|
+
}
|
|
194
|
+
|
|
197
195
|
/******/
|
|
198
196
|
</style>
|
|
199
197
|
|
|
@@ -212,5 +210,6 @@ body,
|
|
|
212
210
|
/* overflow-y: auto; */
|
|
213
211
|
overflow-y: overlay;
|
|
214
212
|
}
|
|
213
|
+
|
|
215
214
|
/******/
|
|
216
215
|
</style>
|
package/components/_button.vue
CHANGED
|
@@ -1,32 +1,19 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<common-badge :spec="spec">
|
|
3
|
-
|
|
2
|
+
<!-- <common-badge :spec="spec"> -->
|
|
3
|
+
<!-- Use `click.prevent` to prevent bubbling when clicking a dropdown button that is
|
|
4
4
|
located in a list row that has href. -->
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
:
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
:rounded="$classes().includes('rounded')"
|
|
18
|
-
:depressed="$classes().includes('depressed')"
|
|
19
|
-
@click.prevent="
|
|
20
|
-
type == 'submit' ? $dispatchEvent('forms/submit') : $onClick()
|
|
21
|
-
"
|
|
22
|
-
v-on="eventHandlers"
|
|
23
|
-
>
|
|
24
|
-
<span><common-icon :spec="spec.icon || {}"/></span>
|
|
25
|
-
<div :class="hideTextOnXs && spec.icon ? 'd-none d-sm-flex' : null">
|
|
26
|
-
{{ spec.text }}
|
|
27
|
-
</div>
|
|
28
|
-
</v-btn>
|
|
29
|
-
</common-badge>
|
|
5
|
+
<v-btn :type="type" :disabled="disabled || $isBusy || spec.disabled" :style="styles()" :class="$classes()"
|
|
6
|
+
:href="$href()" :rel="$rel()" :small="linkStyling || null" :icon="$classes().includes('icon')"
|
|
7
|
+
:outlined="$classes().includes('outlined') || null" :tile="$classes().includes('tile') || null"
|
|
8
|
+
:rounded="$classes().includes('rounded')" :depressed="$classes().includes('depressed') || null" @click.prevent="
|
|
9
|
+
type == 'submit' ? $dispatchEvent('forms/submit') : $onClick()
|
|
10
|
+
">
|
|
11
|
+
<span><common-icon :spec="spec.icon || {}" /></span>
|
|
12
|
+
<div :class="hideTextOnXs && spec.icon ? 'd-none d-sm-flex' : null">
|
|
13
|
+
{{ spec.text }}
|
|
14
|
+
</div>
|
|
15
|
+
</v-btn>
|
|
16
|
+
<!-- </common-badge> -->
|
|
30
17
|
</template>
|
|
31
18
|
|
|
32
19
|
<script>
|
|
@@ -38,7 +25,7 @@ export default {
|
|
|
38
25
|
hideTextOnXs: { type: Boolean },
|
|
39
26
|
eventHandlers: { type: Object, default: null }
|
|
40
27
|
},
|
|
41
|
-
data: function() {
|
|
28
|
+
data: function () {
|
|
42
29
|
return {
|
|
43
30
|
linkStyling: false
|
|
44
31
|
};
|
|
@@ -79,6 +66,7 @@ button {
|
|
|
79
66
|
min-width: 0;
|
|
80
67
|
margin: 0;
|
|
81
68
|
}
|
|
69
|
+
|
|
82
70
|
.v-btn {
|
|
83
71
|
&.link {
|
|
84
72
|
text-transform: none !important;
|
|
@@ -93,17 +81,21 @@ button {
|
|
|
93
81
|
min-width: auto;
|
|
94
82
|
}
|
|
95
83
|
}
|
|
84
|
+
|
|
96
85
|
.v-btn--rounded {
|
|
97
86
|
// Override .v-application.rounded
|
|
98
87
|
border-radius: 28px !important;
|
|
99
88
|
}
|
|
89
|
+
|
|
100
90
|
.v-banner__wrapper .v-btn:not(.v-btn--round).v-size--default {
|
|
101
91
|
min-width: 0;
|
|
102
92
|
padding: 0;
|
|
103
93
|
}
|
|
94
|
+
|
|
104
95
|
.v-banner__wrapper .v-btn.v-size--default {
|
|
105
96
|
font-size: 12px;
|
|
106
97
|
}
|
|
98
|
+
|
|
107
99
|
.breadcrumbs .v-btn.link {
|
|
108
100
|
display: inline-table;
|
|
109
101
|
justify-content: left;
|
|
@@ -114,6 +106,7 @@ button {
|
|
|
114
106
|
.v-banner__wrapper.v-btn.v-size--default {
|
|
115
107
|
font-size: 0.875rem;
|
|
116
108
|
}
|
|
109
|
+
|
|
117
110
|
.v-banner__wrapper.v-btn:not(.v-btn--round).v-size--default {
|
|
118
111
|
min-width: 64px;
|
|
119
112
|
padding: 0 16px;
|
package/components/_chip.vue
CHANGED
|
@@ -1,23 +1,18 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<common-tooltip :spec="spec">
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
{{ spec.text }}
|
|
17
|
-
</v-chip>
|
|
18
|
-
</common-badge>
|
|
19
|
-
</template>
|
|
20
|
-
</common-tooltip>
|
|
2
|
+
<!-- <common-tooltip :spec="spec"> -->
|
|
3
|
+
<!-- <template v-slot:activator="{ on }"> -->
|
|
4
|
+
<!-- <common-badge :spec="spec"> -->
|
|
5
|
+
<div>
|
|
6
|
+
<v-chip v-if="spec.onClick" :style="genericStyles()" :class="$classes()" :href="$href()" @click="$onClick()">
|
|
7
|
+
{{ spec.text }}
|
|
8
|
+
</v-chip>
|
|
9
|
+
<v-chip v-else :style="genericStyles()" :class="$classes()">
|
|
10
|
+
{{ spec.text }}
|
|
11
|
+
</v-chip>
|
|
12
|
+
</div>
|
|
13
|
+
<!-- </common-badge> -->
|
|
14
|
+
<!-- </template> -->
|
|
15
|
+
<!-- </common-tooltip> -->
|
|
21
16
|
</template>
|
|
22
17
|
|
|
23
18
|
<script>
|
|
@@ -1,30 +1,16 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<v-menu left bottom>
|
|
3
|
-
<template v-slot:activator="{
|
|
4
|
-
<v-btn
|
|
5
|
-
|
|
6
|
-
:
|
|
7
|
-
v-bind="attrs"
|
|
8
|
-
style="color: inherit;"
|
|
9
|
-
v-on="on"
|
|
10
|
-
@click.stop.prevent=""
|
|
11
|
-
>
|
|
12
|
-
<span v-if="spec.icon" :class="[textStyling ? 'padder' : '']"
|
|
13
|
-
><common-icon :spec="spec.icon || {}"
|
|
14
|
-
/></span>
|
|
3
|
+
<template v-slot:activator="{ props }">
|
|
4
|
+
<v-btn :icon="iconStyling" :text="textStyling || null" v-bind="props" style="color: inherit;"
|
|
5
|
+
@click.stop.prevent="">
|
|
6
|
+
<span v-if="spec.icon" :class="[textStyling ? 'padder' : '']"><common-icon :spec="spec.icon || {}" /></span>
|
|
15
7
|
{{ spec.text }}
|
|
16
8
|
</v-btn>
|
|
17
9
|
</template>
|
|
18
10
|
|
|
19
11
|
<v-list>
|
|
20
|
-
<v-list-item
|
|
21
|
-
|
|
22
|
-
:key="childIndex"
|
|
23
|
-
>
|
|
24
|
-
<common-button
|
|
25
|
-
:spec="buttonSpec(childItem)"
|
|
26
|
-
:disabled="childItem.disabled || $isBusy"
|
|
27
|
-
/>
|
|
12
|
+
<v-list-item v-for="(childItem, childIndex) in spec.childButtons" :key="childIndex">
|
|
13
|
+
<common-button :spec="buttonSpec(childItem)" :disabled="childItem.disabled || $isBusy" />
|
|
28
14
|
</v-list-item>
|
|
29
15
|
</v-list>
|
|
30
16
|
</v-menu>
|
|
@@ -35,7 +21,7 @@ export default {
|
|
|
35
21
|
props: {
|
|
36
22
|
spec: { type: Object, required: true }
|
|
37
23
|
},
|
|
38
|
-
data: function() {
|
|
24
|
+
data: function () {
|
|
39
25
|
return {
|
|
40
26
|
iconStyling: false,
|
|
41
27
|
textStyling: false
|
|
@@ -63,13 +49,14 @@ export default {
|
|
|
63
49
|
.v-list-item {
|
|
64
50
|
padding: 0 8px 0 8px;
|
|
65
51
|
|
|
66
|
-
>
|
|
67
|
-
>
|
|
52
|
+
>a,
|
|
53
|
+
>button {
|
|
68
54
|
width: 100%;
|
|
69
55
|
min-height: 48px;
|
|
70
56
|
justify-content: flex-start;
|
|
71
57
|
}
|
|
72
58
|
}
|
|
59
|
+
|
|
73
60
|
.padder {
|
|
74
61
|
margin-right: 8px;
|
|
75
62
|
}
|
package/components/_icon.vue
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<common-badge :spec="spec">
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
</common-badge>
|
|
2
|
+
<!-- <common-badge :spec="spec"> -->
|
|
3
|
+
<v-icon :style="genericStyles()" :size="size" :color="color">{{
|
|
4
|
+
value
|
|
5
|
+
}}</v-icon>
|
|
6
|
+
<!-- </common-badge> -->
|
|
7
7
|
</template>
|
|
8
8
|
|
|
9
9
|
<script>
|
package/components/_message.vue
CHANGED
|
File without changes
|
|
@@ -1,25 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<component
|
|
3
|
-
:is="componentName"
|
|
4
|
-
:class="cssClasses"
|
|
5
|
-
:style="$styles()"
|
|
6
|
-
:href="$href()"
|
|
7
|
-
@click="$onClick()"
|
|
8
|
-
v-on="eventHandlers"
|
|
9
|
-
>
|
|
2
|
+
<component :is="componentName" :class="cssClasses" :style="$styles()" :href="$href()" @click="$onClick()">
|
|
10
3
|
<v-row no-gutters class="full-height">
|
|
11
4
|
<template v-for="(item, index) in spec.childViews">
|
|
12
|
-
<glib-component
|
|
13
|
-
|
|
14
|
-
:key="viewKey(item, index)"
|
|
15
|
-
:spec="item"
|
|
16
|
-
/>
|
|
17
|
-
<div
|
|
18
|
-
v-else
|
|
19
|
-
:key="viewKey(item, index)"
|
|
20
|
-
class="full-width"
|
|
21
|
-
:style="innerStyles"
|
|
22
|
-
>
|
|
5
|
+
<glib-component v-if="isColumn(item)" :key="viewKey(item, index)" :spec="item" />
|
|
6
|
+
<div v-else :key="'else-' + viewKey(item, index)" class="full-width" :style="innerStyles">
|
|
23
7
|
<glib-component :spec="item" />
|
|
24
8
|
</div>
|
|
25
9
|
</template>
|
|
@@ -28,7 +12,6 @@
|
|
|
28
12
|
</template>
|
|
29
13
|
|
|
30
14
|
<script>
|
|
31
|
-
import Vue from "vue";
|
|
32
15
|
|
|
33
16
|
export default {
|
|
34
17
|
props: {
|
|
@@ -62,7 +45,7 @@ export default {
|
|
|
62
45
|
default:
|
|
63
46
|
align = "flex-start";
|
|
64
47
|
}
|
|
65
|
-
|
|
48
|
+
Object.assign(this.innerStyles, { 'align-items': align })
|
|
66
49
|
},
|
|
67
50
|
isColumn(item) {
|
|
68
51
|
return item.view == "panels/column-v1";
|
|
@@ -80,16 +63,19 @@ export default {
|
|
|
80
63
|
margin-left: 0;
|
|
81
64
|
margin-right: 0;
|
|
82
65
|
}
|
|
66
|
+
|
|
83
67
|
.full-width {
|
|
84
68
|
width: 100%;
|
|
85
69
|
flex: 0 0 100%;
|
|
86
70
|
display: flex;
|
|
87
71
|
flex-direction: column;
|
|
88
72
|
}
|
|
73
|
+
|
|
89
74
|
// Needed to ensure that split's sub panels have the same height
|
|
90
75
|
.full-height {
|
|
91
76
|
height: 100%;
|
|
92
77
|
}
|
|
78
|
+
|
|
93
79
|
a.panels-responsive {
|
|
94
80
|
color: inherit;
|
|
95
81
|
text-decoration: inherit;
|
package/components/avatar.vue
CHANGED
|
@@ -1,19 +1,15 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<common-tooltip :spec="spec">
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
</v-avatar>
|
|
14
|
-
</common-badge>
|
|
15
|
-
</template>
|
|
16
|
-
</common-tooltip>
|
|
2
|
+
<!-- <common-tooltip :spec="spec"> -->
|
|
3
|
+
<!-- <template v-slot:activator="{ on }"> -->
|
|
4
|
+
<!-- <common-badge :spec="spec"> -->
|
|
5
|
+
<v-avatar :size="spec.size">
|
|
6
|
+
<!-- Use `img` instead of `v-img` otherwise the rounded border will not work. -->
|
|
7
|
+
<img :style="$styles()" :src="spec.url || spec.base64Data" @click="$onClick()" />
|
|
8
|
+
</v-avatar>
|
|
9
|
+
<!-- </common-badge> -->
|
|
10
|
+
<!-- </template> -->
|
|
11
|
+
<!-- </common-tooltip>
|
|
12
|
+
-->
|
|
17
13
|
</template>
|
|
18
14
|
|
|
19
15
|
<script>
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<v-alert
|
|
3
|
-
:
|
|
4
|
-
:class="$classes()"
|
|
5
|
-
:value="true"
|
|
6
|
-
:color="color"
|
|
7
|
-
:outlined="!$classes().includes('frameless')"
|
|
8
|
-
>
|
|
2
|
+
<v-alert :style="genericStyles()" :class="$classes()" :value="true" :color="color"
|
|
3
|
+
:outlined="!$classes().includes('frameless') || null">
|
|
9
4
|
<!-- <span class="padder" v-if="spec.icon"><common-icon :spec="spec.icon || {}" /></span> -->
|
|
10
5
|
<!-- <common-icon :spec="spec.icon || {}" /> -->
|
|
11
6
|
<common-message :spec="spec" />
|
|
@@ -1,34 +1,21 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
|
|
4
|
-
:class="$classes()"
|
|
5
|
-
:color="spec.color || color"
|
|
6
|
-
:dark="dark"
|
|
7
|
-
single-line
|
|
8
|
-
:outlined="!$classes().includes('frameless')"
|
|
9
|
-
>
|
|
10
|
-
<common-icon v-if="spec.icon" slot="icon" :spec="spec.icon" />
|
|
2
|
+
<div :style="genericStyles()" :class="$classes()" :color="spec.color || color">
|
|
3
|
+
<v-banner>
|
|
11
4
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
<template v-slot:actions>
|
|
15
|
-
<template v-for="(item, index) in spec.buttons">
|
|
16
|
-
<common-dropdownMenu
|
|
17
|
-
v-if="item.childButtons"
|
|
18
|
-
:key="index"
|
|
19
|
-
:spec="item"
|
|
20
|
-
:disabled="$isBusy"
|
|
21
|
-
/>
|
|
22
|
-
<common-button
|
|
23
|
-
v-else
|
|
24
|
-
:key="index"
|
|
25
|
-
:spec="buttonSpec(item)"
|
|
26
|
-
:disabled="$isBusy"
|
|
27
|
-
:hide-text-on-xs="true"
|
|
28
|
-
/>
|
|
5
|
+
<template v-if="spec.icon" v-slot:prepend>
|
|
6
|
+
<common-icon slot="icon" :spec="spec.icon" />
|
|
29
7
|
</template>
|
|
30
|
-
|
|
31
|
-
|
|
8
|
+
|
|
9
|
+
<v-banner-text>{{ spec.message }}</v-banner-text>
|
|
10
|
+
|
|
11
|
+
<v-banner-actions>
|
|
12
|
+
<template v-for="(item, index) in spec.buttons">
|
|
13
|
+
<common-dropdownMenu v-if="item.childButtons" :key="'left-' + index" :spec="item" :disabled="$isBusy" />
|
|
14
|
+
<common-button v-else :key="index" :spec="buttonSpec(item)" :disabled="$isBusy" :hide-text-on-xs="true" />
|
|
15
|
+
</template>
|
|
16
|
+
</v-banner-actions>
|
|
17
|
+
</v-banner>
|
|
18
|
+
</div>
|
|
32
19
|
</template>
|
|
33
20
|
|
|
34
21
|
<script>
|
|
@@ -68,11 +55,12 @@ export default {
|
|
|
68
55
|
.frameless {
|
|
69
56
|
padding: 0;
|
|
70
57
|
}
|
|
58
|
+
|
|
71
59
|
.v-list-item {
|
|
72
60
|
padding: 0 8px 0 8px;
|
|
73
61
|
|
|
74
|
-
>
|
|
75
|
-
>
|
|
62
|
+
>a,
|
|
63
|
+
>button {
|
|
76
64
|
width: 100%;
|
|
77
65
|
min-height: 48px;
|
|
78
66
|
justify-content: flex-start;
|
package/components/button.vue
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<common-tooltip ref="tooltip" :spec="spec">
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
</common-tooltip>
|
|
2
|
+
<!-- <common-tooltip ref="tooltip" :spec="spec"> -->
|
|
3
|
+
<!-- <template v-slot:activator="{ on }"> -->
|
|
4
|
+
<common-button :spec="spec" :disabled="$isBusy" />
|
|
5
|
+
<!-- </template> -->
|
|
6
|
+
<!-- </common-tooltip> -->
|
|
7
7
|
</template>
|
|
8
8
|
|
|
9
9
|
<script>
|