glib-web 2.6.7 → 3.0.0
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/action.js +39 -17
- package/actions/analytics/logEvent.js +2 -2
- package/actions/auth/saveCsrfToken.js +6 -0
- package/actions/cables/push.js +4 -4
- package/actions/commands/enqueue.js +17 -0
- package/actions/fields/reset.js +2 -2
- package/actions/http/get.js +15 -27
- package/actions/panels/scrollTo.js +1 -1
- package/actions/panels/scrollToBottom.js +1 -1
- package/actions/popovers/close.js +5 -0
- package/actions/popovers/open.js +9 -0
- package/actions/windows/closeWithReload.js +1 -1
- package/actions/windows/refreshState.js +3 -1
- package/actions/ws/push.js +5 -3
- package/app.vue +59 -27
- package/components/_badge.vue +1 -6
- package/components/_button.vue +30 -30
- package/components/_chip.vue +27 -29
- package/components/_dropdownMenu.vue +10 -23
- package/components/_icon.vue +5 -5
- 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 +4 -5
- package/components/component.vue +112 -133
- package/components/datetime.vue +2 -0
- package/components/fields/_patternText.vue +8 -19
- package/components/fields/_select.vue +9 -27
- package/components/fields/autocomplete.vue +8 -21
- package/components/fields/check.vue +5 -12
- package/components/fields/checkGroup.vue +3 -13
- package/components/fields/country/field.vue +9 -27
- package/components/fields/date.vue +5 -5
- package/components/fields/datetime.vue +6 -11
- package/components/fields/dynamicSelect.vue +8 -29
- package/components/fields/file.vue +10 -29
- package/components/fields/newRichText.vue +67 -54
- package/components/fields/otpField.vue +11 -31
- package/components/fields/phone/field.vue +60 -78
- package/components/fields/radio.vue +8 -44
- package/components/fields/radioGroup.vue +17 -19
- package/components/fields/rating.vue +9 -16
- package/components/fields/richText.vue +27 -45
- package/components/fields/select.vue +10 -7
- package/components/fields/stripe/stripeFields.vue +9 -2
- package/components/fields/stripe/stripeIndividualFields.vue +9 -7
- package/components/fields/stripeExternalAccount.vue +10 -24
- package/components/fields/text.vue +26 -50
- package/components/fields/textarea.vue +14 -27
- package/components/fields/timeZone.vue +9 -6
- package/components/fields/timer.vue +5 -11
- package/components/image.vue +12 -23
- package/components/label.vue +10 -18
- package/components/markdown.vue +45 -23
- package/components/mixins/events.js +24 -25
- package/components/mixins/generic.js +7 -4
- package/components/mixins/inputVariant.js +16 -0
- package/components/mixins/list/autoload.js +7 -5
- package/components/mixins/styles.js +16 -16
- package/components/mixins/table/autoload.js +6 -4
- package/components/mixins/ws/actionCable.js +6 -5
- package/components/mixins/ws/phoenixSocket.js +11 -9
- package/components/p.vue +10 -0
- package/components/panels/column.vue +8 -19
- package/components/panels/custom.vue +9 -13
- package/components/panels/flow.vue +19 -13
- package/components/panels/form.vue +26 -34
- package/components/panels/grid.vue +15 -9
- package/components/panels/horizontal.vue +58 -54
- package/components/panels/list.vue +37 -72
- package/components/panels/responsive.vue +2 -33
- package/components/panels/scroll.vue +3 -0
- package/components/panels/split.vue +2 -2
- package/components/panels/table.vue +32 -63
- package/components/panels/timeline.vue +20 -30
- package/components/panels/vertical.vue +8 -13
- package/components/popover.vue +39 -0
- package/components/progressCircle.vue +2 -8
- package/components/progressbar.vue +4 -14
- package/components/shareButton.vue +24 -30
- package/components/tabBar.vue +29 -28
- package/index.js +60 -94
- package/nav/appbar.vue +8 -6
- package/nav/dialog.vue +30 -49
- package/nav/drawer.vue +39 -51
- package/nav/drawerButton.vue +5 -7
- package/nav/drawerLabel.vue +2 -3
- package/nav/sheet.vue +21 -22
- package/nav/snackbar.vue +19 -30
- package/package.json +13 -16
- package/plugins/driverCustomBehavior.js +1 -1
- package/plugins/updatableComponent.js +2 -2
- package/plugins/vuetify.js +26 -0
- package/store.js +16 -0
- package/templates/comment.vue +42 -19
- package/templates/featured.vue +8 -9
- package/templates/thumbnail-old.vue +188 -0
- package/templates/thumbnail.vue +3 -208
- package/tsconfig.json +1 -1
- package/utils/component.js +18 -18
- package/utils/constant.js +4 -0
- package/utils/eventBus.js +9 -2
- package/utils/history.js +12 -8
- package/utils/http.js +29 -71
- package/utils/launch.js +89 -52
- package/utils/private/ws.js +5 -3
- package/utils/public.js +6 -0
- package/utils/queue.js +102 -0
- package/utils/settings.js +3 -9
package/components/_chip.vue
CHANGED
|
@@ -1,34 +1,27 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<common-
|
|
3
|
-
<
|
|
4
|
-
<
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
>
|
|
14
|
-
{{ spec.text }}
|
|
15
|
-
</v-chip>
|
|
16
|
-
<v-chip
|
|
17
|
-
v-else
|
|
18
|
-
:style="genericStyles()"
|
|
19
|
-
:class="$classes()"
|
|
20
|
-
:small="$classes().includes('small')"
|
|
21
|
-
v-on="on"
|
|
22
|
-
>
|
|
23
|
-
{{ spec.text }}
|
|
24
|
-
</v-chip>
|
|
25
|
-
</common-badge>
|
|
26
|
-
</template>
|
|
27
|
-
</common-tooltip>
|
|
2
|
+
<common-badge :spec="spec">
|
|
3
|
+
<div>
|
|
4
|
+
<v-chip v-if="spec.onClick" :style="genericStyles()" :color="color" :class="$classes()" :href="$href()"
|
|
5
|
+
@click="$onClick()" :variant="variant">
|
|
6
|
+
{{ spec.text }}
|
|
7
|
+
</v-chip>
|
|
8
|
+
<v-chip v-else :style="genericStyles()" :color="color" :class="$classes()" :variant="variant">
|
|
9
|
+
{{ spec.text }}
|
|
10
|
+
</v-chip>
|
|
11
|
+
</div>
|
|
12
|
+
</common-badge>
|
|
28
13
|
</template>
|
|
29
14
|
|
|
30
15
|
<script>
|
|
16
|
+
import { colors, variants } from '../utils/constant'
|
|
17
|
+
|
|
31
18
|
export default {
|
|
19
|
+
data: function () {
|
|
20
|
+
return {
|
|
21
|
+
color: '',
|
|
22
|
+
variant: 'tonal'
|
|
23
|
+
}
|
|
24
|
+
},
|
|
32
25
|
props: {
|
|
33
26
|
spec: { type: Object, required: true }
|
|
34
27
|
},
|
|
@@ -38,9 +31,14 @@ export default {
|
|
|
38
31
|
// };
|
|
39
32
|
// },
|
|
40
33
|
methods: {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
34
|
+
$ready() {
|
|
35
|
+
colors.forEach((value) => {
|
|
36
|
+
if (this.$classes().includes(value)) this.color = value;
|
|
37
|
+
})
|
|
38
|
+
variants.forEach((value) => {
|
|
39
|
+
if (this.$classes().includes(value)) this.variant = value;
|
|
40
|
+
})
|
|
41
|
+
},
|
|
44
42
|
$registryEnabled() {
|
|
45
43
|
return false;
|
|
46
44
|
}
|
|
@@ -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>
|
|
@@ -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, height: 'auto' })
|
|
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,8 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<common-
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
</common-tooltip>
|
|
2
|
+
<common-badge v-if="spec.badge" :spec="spec">
|
|
3
|
+
<common-button :spec="spec" :disabled="$isBusy" />
|
|
4
|
+
</common-badge>
|
|
5
|
+
<common-button v-else :spec="spec" :disable="$isBusy" />
|
|
7
6
|
</template>
|
|
8
7
|
|
|
9
8
|
<script>
|
package/components/component.vue
CHANGED
|
@@ -1,34 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<fields-text
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
/>
|
|
8
|
-
<fields-text
|
|
9
|
-
v-else-if="name == 'fields-number'"
|
|
10
|
-
ref="delegate"
|
|
11
|
-
:spec="spec"
|
|
12
|
-
type="number"
|
|
13
|
-
/>
|
|
14
|
-
<fields-text
|
|
15
|
-
v-else-if="name == 'fields-email'"
|
|
16
|
-
ref="delegate"
|
|
17
|
-
:spec="spec"
|
|
18
|
-
type="email"
|
|
19
|
-
/>
|
|
20
|
-
<fields-text
|
|
21
|
-
v-else-if="name == 'fields-url'"
|
|
22
|
-
ref="delegate"
|
|
23
|
-
:spec="spec"
|
|
24
|
-
type="url"
|
|
25
|
-
/>
|
|
26
|
-
<fields-text
|
|
27
|
-
v-else-if="name == 'fields-password'"
|
|
28
|
-
ref="delegate"
|
|
29
|
-
:spec="spec"
|
|
30
|
-
type="password"
|
|
31
|
-
/>
|
|
2
|
+
<fields-text v-if="name == 'fields-text'" :spec="spec" type="text" />
|
|
3
|
+
<fields-text v-else-if="name == 'fields-number'" :spec="spec" type="number" />
|
|
4
|
+
<fields-text v-else-if="name == 'fields-email'" :spec="spec" type="email" />
|
|
5
|
+
<fields-text v-else-if="name == 'fields-url'" :spec="spec" type="url" />
|
|
6
|
+
<fields-text v-else-if="name == 'fields-password'" :spec="spec" type="password" />
|
|
32
7
|
<!-- <fields-textarea v-else-if="spec.view == 'fields/textarea-v1'" :spec="spec" />
|
|
33
8
|
<fields-richText v-else-if="spec.view == 'fields/richText-v1'" :spec="spec" /> -->
|
|
34
9
|
<!-- <fields-file v-else-if="spec.view == 'fields/file-v1'" :spec="spec" />
|
|
@@ -40,113 +15,106 @@
|
|
|
40
15
|
<!-- <fields-country v-else-if="spec.view == 'fields/country-v1'" :spec="spec" /> -->
|
|
41
16
|
|
|
42
17
|
<!-- <fields-latLong v-else-if="spec.view == 'fields/latLong-v1'" :spec="spec" /> -->
|
|
43
|
-
<fields-googlePlace
|
|
44
|
-
v-else-if="spec.view == 'fields/googlePlace-v1'"
|
|
45
|
-
ref="delegate"
|
|
46
|
-
:spec="spec"
|
|
47
|
-
/>
|
|
18
|
+
<fields-googlePlace v-else-if="spec.view == 'fields/googlePlace-v1'" :spec="spec" />
|
|
48
19
|
|
|
49
20
|
<!-- <panels-responsive v-else-if="spec.view == 'panels/scroll-v1'" :spec="spec" /> -->
|
|
50
21
|
|
|
51
|
-
<component
|
|
52
|
-
|
|
53
|
-
v-else-if="name"
|
|
54
|
-
:id="spec.id"
|
|
55
|
-
ref="delegate"
|
|
56
|
-
:spec="spec"
|
|
57
|
-
/>
|
|
58
|
-
|
|
22
|
+
<component v-else-if="name" :is="name" :id="spec.id" ref="delegate" :spec="spec"
|
|
23
|
+
@[menter]="handlePopover(spec.onMouseEnter)" @[mleave]="handlePopover(spec.onMouseLeave)" />
|
|
59
24
|
<div v-else>Unsupported view: {{ spec.view }}</div>
|
|
60
25
|
</template>
|
|
61
26
|
|
|
62
27
|
<script>
|
|
63
|
-
import H1 from "./h1";
|
|
64
|
-
import H2 from "./h2";
|
|
65
|
-
import H3 from "./h3";
|
|
66
|
-
import H4 from "./h4";
|
|
67
|
-
import H5 from "./h5";
|
|
68
|
-
import H6 from "./h6";
|
|
69
|
-
import Label from "./label";
|
|
70
|
-
import P from "./p";
|
|
71
|
-
import Markdown from "./markdown";
|
|
72
|
-
import Html from "./html";
|
|
73
|
-
import Chip from "./chip";
|
|
74
|
-
import Datetime from "./datetime";
|
|
75
|
-
|
|
76
|
-
import ProgressBar from "./progressbar";
|
|
28
|
+
import H1 from "./h1.vue";
|
|
29
|
+
import H2 from "./h2.vue";
|
|
30
|
+
import H3 from "./h3.vue";
|
|
31
|
+
import H4 from "./h4.vue";
|
|
32
|
+
import H5 from "./h5.vue";
|
|
33
|
+
import H6 from "./h6.vue";
|
|
34
|
+
import Label from "./label.vue";
|
|
35
|
+
import P from "./p.vue";
|
|
36
|
+
import Markdown from "./markdown.vue";
|
|
37
|
+
import Html from "./html.vue";
|
|
38
|
+
import Chip from "./chip.vue";
|
|
39
|
+
import Datetime from "./datetime.vue";
|
|
40
|
+
|
|
41
|
+
import ProgressBar from "./progressbar.vue";
|
|
77
42
|
import ProgressCircle from "./progressCircle.vue";
|
|
78
43
|
|
|
79
|
-
import Image from "./image";
|
|
80
|
-
import Avatar from "./avatar";
|
|
81
|
-
import Icon from "./icon";
|
|
82
|
-
|
|
83
|
-
import Button from "./button";
|
|
84
|
-
import Fab from "./fab";
|
|
85
|
-
import Switch from "./switch";
|
|
86
|
-
|
|
87
|
-
import Hr from "./hr";
|
|
88
|
-
import Spacer from "./spacer";
|
|
89
|
-
|
|
90
|
-
import Map from "./map";
|
|
91
|
-
import TabBar from "./tabBar";
|
|
92
|
-
import Calendar from "./calendar";
|
|
93
|
-
|
|
94
|
-
import HiddenField from "./fields/hidden";
|
|
95
|
-
import TextField from "./fields/text";
|
|
96
|
-
import SubmitField from "./fields/submit";
|
|
97
|
-
import TextAreaField from "./fields/textarea";
|
|
98
|
-
import RichTextField from "./fields/richText";
|
|
99
|
-
import NewRichTextField from "./fields/newRichText";
|
|
100
|
-
import FileField from "./fields/file";
|
|
101
|
-
import AutocompleteField from "./fields/autocomplete";
|
|
102
|
-
import SelectField from "./fields/select";
|
|
103
|
-
import TimeZoneField from "./fields/timeZone";
|
|
104
|
-
import DynamicSelectField from "./fields/dynamicSelect";
|
|
105
|
-
import CountryField from "./fields/country/field";
|
|
106
|
-
import RadioGroupField from "./fields/radioGroup";
|
|
107
|
-
import RadioField from "./fields/radio";
|
|
108
|
-
import CheckGroupField from "./fields/checkGroup";
|
|
109
|
-
import CheckField from "./fields/check";
|
|
110
|
-
import DateField from "./fields/date";
|
|
111
|
-
import DateTimeField from "./fields/datetime";
|
|
112
|
-
import LocationField from "./fields/location";
|
|
113
|
-
import GooglePlaceField from "./fields/googlePlace";
|
|
114
|
-
import DynamicGroupField from "./fields/dynamicGroup";
|
|
115
|
-
import StripeTokenField from "./fields/stripeToken";
|
|
116
|
-
import StripeExternalAccount from "./fields/stripeExternalAccount";
|
|
117
|
-
import CreditCardField from "./fields/creditCard";
|
|
118
|
-
import RatingField from "./fields/rating";
|
|
119
|
-
import PhoneField from "./fields/phone/field";
|
|
120
|
-
import TimerField from "./fields/timer";
|
|
121
|
-
import OtpField from "./fields/otpField";
|
|
122
|
-
|
|
123
|
-
import ScrollPanel from "./panels/scroll";
|
|
124
|
-
import VerticalPanel from "./panels/vertical";
|
|
125
|
-
import HorizontalPanel from "./panels/horizontal";
|
|
126
|
-
import FlowPanel from "./panels/flow";
|
|
127
|
-
import SplitPanel from "./panels/split";
|
|
128
|
-
import FormPanel from "./panels/form";
|
|
129
|
-
import ListPanel from "./panels/list";
|
|
130
|
-
import CarouselPanel from "./panels/carousel";
|
|
131
|
-
import TablePanel from "./panels/table";
|
|
132
|
-
import CustomPanel from "./panels/custom";
|
|
133
|
-
import ColumnPanel from "./panels/column";
|
|
134
|
-
import ResponsivePanel from "./panels/responsive";
|
|
135
|
-
import UlPanel from "./panels/ul";
|
|
136
|
-
import WebPanel from "./panels/web";
|
|
137
|
-
import GridPanel from "./panels/grid";
|
|
138
|
-
import TimelinePanel from "./panels/timeline";
|
|
139
|
-
|
|
140
|
-
import MultimediaVideo from "./multimedia/video";
|
|
141
|
-
|
|
142
|
-
import AlertBanner from "./banners/alert";
|
|
143
|
-
import SelectBanner from "./banners/select";
|
|
144
|
-
|
|
145
|
-
import LineChart from "./charts/line";
|
|
146
|
-
import ColumnChart from "./charts/column";
|
|
147
|
-
import PieChart from "./charts/pie";
|
|
148
|
-
|
|
149
|
-
import ShareButton from "./shareButton";
|
|
44
|
+
import Image from "./image.vue";
|
|
45
|
+
import Avatar from "./avatar.vue";
|
|
46
|
+
import Icon from "./icon.vue";
|
|
47
|
+
|
|
48
|
+
import Button from "./button.vue";
|
|
49
|
+
import Fab from "./fab.vue";
|
|
50
|
+
import Switch from "./switch.vue";
|
|
51
|
+
|
|
52
|
+
import Hr from "./hr.vue";
|
|
53
|
+
import Spacer from "./spacer.vue";
|
|
54
|
+
|
|
55
|
+
// import Map from "./map.vue";
|
|
56
|
+
import TabBar from "./tabBar.vue";
|
|
57
|
+
import Calendar from "./calendar.vue";
|
|
58
|
+
|
|
59
|
+
import HiddenField from "./fields/hidden.vue";
|
|
60
|
+
import TextField from "./fields/text.vue";
|
|
61
|
+
import SubmitField from "./fields/submit.vue";
|
|
62
|
+
import TextAreaField from "./fields/textarea.vue";
|
|
63
|
+
import RichTextField from "./fields/richText.vue";
|
|
64
|
+
// import NewRichTextField from "./fields/newRichText.vue";
|
|
65
|
+
import FileField from "./fields/file.vue";
|
|
66
|
+
import AutocompleteField from "./fields/autocomplete.vue";
|
|
67
|
+
import SelectField from "./fields/select.vue";
|
|
68
|
+
import TimeZoneField from "./fields/timeZone.vue";
|
|
69
|
+
import DynamicSelectField from "./fields/dynamicSelect.vue";
|
|
70
|
+
import CountryField from "./fields/country/field.vue";
|
|
71
|
+
import RadioGroupField from "./fields/radioGroup.vue";
|
|
72
|
+
import RadioField from "./fields/radio.vue";
|
|
73
|
+
import CheckGroupField from "./fields/checkGroup.vue";
|
|
74
|
+
import CheckField from "./fields/check.vue";
|
|
75
|
+
import DateField from "./fields/date.vue";
|
|
76
|
+
import DateTimeField from "./fields/datetime.vue";
|
|
77
|
+
import LocationField from "./fields/location.vue";
|
|
78
|
+
import GooglePlaceField from "./fields/googlePlace.vue";
|
|
79
|
+
import DynamicGroupField from "./fields/dynamicGroup.vue";
|
|
80
|
+
import StripeTokenField from "./fields/stripeToken.vue";
|
|
81
|
+
import StripeExternalAccount from "./fields/stripeExternalAccount.vue";
|
|
82
|
+
import CreditCardField from "./fields/creditCard.vue";
|
|
83
|
+
import RatingField from "./fields/rating.vue";
|
|
84
|
+
import PhoneField from "./fields/phone/field.vue";
|
|
85
|
+
import TimerField from "./fields/timer.vue";
|
|
86
|
+
import OtpField from "./fields/otpField.vue";
|
|
87
|
+
|
|
88
|
+
import ScrollPanel from "./panels/scroll.vue";
|
|
89
|
+
import VerticalPanel from "./panels/vertical.vue";
|
|
90
|
+
import HorizontalPanel from "./panels/horizontal.vue";
|
|
91
|
+
import FlowPanel from "./panels/flow.vue";
|
|
92
|
+
import SplitPanel from "./panels/split.vue";
|
|
93
|
+
import FormPanel from "./panels/form.vue";
|
|
94
|
+
import ListPanel from "./panels/list.vue";
|
|
95
|
+
import CarouselPanel from "./panels/carousel.vue";
|
|
96
|
+
import TablePanel from "./panels/table.vue";
|
|
97
|
+
import CustomPanel from "./panels/custom.vue";
|
|
98
|
+
import ColumnPanel from "./panels/column.vue";
|
|
99
|
+
import ResponsivePanel from "./panels/responsive.vue";
|
|
100
|
+
import UlPanel from "./panels/ul.vue";
|
|
101
|
+
import WebPanel from "./panels/web.vue";
|
|
102
|
+
import GridPanel from "./panels/grid.vue";
|
|
103
|
+
import TimelinePanel from "./panels/timeline.vue";
|
|
104
|
+
|
|
105
|
+
import MultimediaVideo from "./multimedia/video.vue";
|
|
106
|
+
|
|
107
|
+
import AlertBanner from "./banners/alert.vue";
|
|
108
|
+
import SelectBanner from "./banners/select.vue";
|
|
109
|
+
|
|
110
|
+
import LineChart from "./charts/line.vue";
|
|
111
|
+
import ColumnChart from "./charts/column.vue";
|
|
112
|
+
import PieChart from "./charts/pie.vue";
|
|
113
|
+
|
|
114
|
+
import ShareButton from "./shareButton.vue";
|
|
115
|
+
import Action from "../action";
|
|
116
|
+
|
|
117
|
+
import { getCurrentInstance } from 'vue';
|
|
150
118
|
|
|
151
119
|
export default {
|
|
152
120
|
components: {
|
|
@@ -186,7 +154,7 @@ export default {
|
|
|
186
154
|
"fields-submit": SubmitField,
|
|
187
155
|
"fields-textarea": TextAreaField,
|
|
188
156
|
"fields-richText": RichTextField,
|
|
189
|
-
"fields-newRichText": NewRichTextField,
|
|
157
|
+
// "fields-newRichText": NewRichTextField,
|
|
190
158
|
"fields-file": FileField,
|
|
191
159
|
"fields-autocomplete": AutocompleteField,
|
|
192
160
|
"fields-select": SelectField,
|
|
@@ -234,16 +202,24 @@ export default {
|
|
|
234
202
|
|
|
235
203
|
"charts-line": LineChart,
|
|
236
204
|
"charts-column": ColumnChart,
|
|
237
|
-
"charts-pie": PieChart
|
|
205
|
+
"charts-pie": PieChart,
|
|
238
206
|
},
|
|
239
207
|
props: {
|
|
240
|
-
spec: { type: Object, required: true }
|
|
208
|
+
spec: { type: Object, required: true },
|
|
241
209
|
},
|
|
242
210
|
data() {
|
|
243
211
|
return {
|
|
244
212
|
name: null
|
|
245
213
|
};
|
|
246
214
|
},
|
|
215
|
+
computed: {
|
|
216
|
+
menter() {
|
|
217
|
+
return this.spec.onMouseEnter ? 'mouseenter' : null
|
|
218
|
+
},
|
|
219
|
+
mleave() {
|
|
220
|
+
return this.spec.onMouseLeave ? 'mouseleave' : null
|
|
221
|
+
}
|
|
222
|
+
},
|
|
247
223
|
// beforeUpdate() {
|
|
248
224
|
// // NOTE: Not sure what this is for
|
|
249
225
|
// // Make sure vuejs will not attempt to render old data.
|
|
@@ -258,7 +234,7 @@ export default {
|
|
|
258
234
|
if (strict) {
|
|
259
235
|
this.name = name;
|
|
260
236
|
} else {
|
|
261
|
-
if (
|
|
237
|
+
if (getCurrentInstance().appContext.app.components[name]) {
|
|
262
238
|
this.name = name;
|
|
263
239
|
}
|
|
264
240
|
}
|
|
@@ -268,8 +244,11 @@ export default {
|
|
|
268
244
|
},
|
|
269
245
|
$registryEnabled() {
|
|
270
246
|
return false;
|
|
247
|
+
},
|
|
248
|
+
handlePopover(spec) {
|
|
249
|
+
GLib.action.execute(spec, this)
|
|
271
250
|
}
|
|
272
|
-
}
|
|
251
|
+
},
|
|
273
252
|
};
|
|
274
253
|
</script>
|
|
275
254
|
|
package/components/datetime.vue
CHANGED