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.
Files changed (110) hide show
  1. package/action.js +39 -17
  2. package/actions/analytics/logEvent.js +2 -2
  3. package/actions/auth/saveCsrfToken.js +6 -0
  4. package/actions/cables/push.js +4 -4
  5. package/actions/commands/enqueue.js +17 -0
  6. package/actions/fields/reset.js +2 -2
  7. package/actions/http/get.js +15 -27
  8. package/actions/panels/scrollTo.js +1 -1
  9. package/actions/panels/scrollToBottom.js +1 -1
  10. package/actions/popovers/close.js +5 -0
  11. package/actions/popovers/open.js +9 -0
  12. package/actions/windows/closeWithReload.js +1 -1
  13. package/actions/windows/refreshState.js +3 -1
  14. package/actions/ws/push.js +5 -3
  15. package/app.vue +59 -27
  16. package/components/_badge.vue +1 -6
  17. package/components/_button.vue +30 -30
  18. package/components/_chip.vue +27 -29
  19. package/components/_dropdownMenu.vue +10 -23
  20. package/components/_icon.vue +5 -5
  21. package/components/_responsive.vue +7 -21
  22. package/components/avatar.vue +11 -15
  23. package/components/banners/alert.vue +2 -7
  24. package/components/banners/select.vue +18 -30
  25. package/components/button.vue +4 -5
  26. package/components/component.vue +112 -133
  27. package/components/datetime.vue +2 -0
  28. package/components/fields/_patternText.vue +8 -19
  29. package/components/fields/_select.vue +9 -27
  30. package/components/fields/autocomplete.vue +8 -21
  31. package/components/fields/check.vue +5 -12
  32. package/components/fields/checkGroup.vue +3 -13
  33. package/components/fields/country/field.vue +9 -27
  34. package/components/fields/date.vue +5 -5
  35. package/components/fields/datetime.vue +6 -11
  36. package/components/fields/dynamicSelect.vue +8 -29
  37. package/components/fields/file.vue +10 -29
  38. package/components/fields/newRichText.vue +67 -54
  39. package/components/fields/otpField.vue +11 -31
  40. package/components/fields/phone/field.vue +60 -78
  41. package/components/fields/radio.vue +8 -44
  42. package/components/fields/radioGroup.vue +17 -19
  43. package/components/fields/rating.vue +9 -16
  44. package/components/fields/richText.vue +27 -45
  45. package/components/fields/select.vue +10 -7
  46. package/components/fields/stripe/stripeFields.vue +9 -2
  47. package/components/fields/stripe/stripeIndividualFields.vue +9 -7
  48. package/components/fields/stripeExternalAccount.vue +10 -24
  49. package/components/fields/text.vue +26 -50
  50. package/components/fields/textarea.vue +14 -27
  51. package/components/fields/timeZone.vue +9 -6
  52. package/components/fields/timer.vue +5 -11
  53. package/components/image.vue +12 -23
  54. package/components/label.vue +10 -18
  55. package/components/markdown.vue +45 -23
  56. package/components/mixins/events.js +24 -25
  57. package/components/mixins/generic.js +7 -4
  58. package/components/mixins/inputVariant.js +16 -0
  59. package/components/mixins/list/autoload.js +7 -5
  60. package/components/mixins/styles.js +16 -16
  61. package/components/mixins/table/autoload.js +6 -4
  62. package/components/mixins/ws/actionCable.js +6 -5
  63. package/components/mixins/ws/phoenixSocket.js +11 -9
  64. package/components/p.vue +10 -0
  65. package/components/panels/column.vue +8 -19
  66. package/components/panels/custom.vue +9 -13
  67. package/components/panels/flow.vue +19 -13
  68. package/components/panels/form.vue +26 -34
  69. package/components/panels/grid.vue +15 -9
  70. package/components/panels/horizontal.vue +58 -54
  71. package/components/panels/list.vue +37 -72
  72. package/components/panels/responsive.vue +2 -33
  73. package/components/panels/scroll.vue +3 -0
  74. package/components/panels/split.vue +2 -2
  75. package/components/panels/table.vue +32 -63
  76. package/components/panels/timeline.vue +20 -30
  77. package/components/panels/vertical.vue +8 -13
  78. package/components/popover.vue +39 -0
  79. package/components/progressCircle.vue +2 -8
  80. package/components/progressbar.vue +4 -14
  81. package/components/shareButton.vue +24 -30
  82. package/components/tabBar.vue +29 -28
  83. package/index.js +60 -94
  84. package/nav/appbar.vue +8 -6
  85. package/nav/dialog.vue +30 -49
  86. package/nav/drawer.vue +39 -51
  87. package/nav/drawerButton.vue +5 -7
  88. package/nav/drawerLabel.vue +2 -3
  89. package/nav/sheet.vue +21 -22
  90. package/nav/snackbar.vue +19 -30
  91. package/package.json +13 -16
  92. package/plugins/driverCustomBehavior.js +1 -1
  93. package/plugins/updatableComponent.js +2 -2
  94. package/plugins/vuetify.js +26 -0
  95. package/store.js +16 -0
  96. package/templates/comment.vue +42 -19
  97. package/templates/featured.vue +8 -9
  98. package/templates/thumbnail-old.vue +188 -0
  99. package/templates/thumbnail.vue +3 -208
  100. package/tsconfig.json +1 -1
  101. package/utils/component.js +18 -18
  102. package/utils/constant.js +4 -0
  103. package/utils/eventBus.js +9 -2
  104. package/utils/history.js +12 -8
  105. package/utils/http.js +29 -71
  106. package/utils/launch.js +89 -52
  107. package/utils/private/ws.js +5 -3
  108. package/utils/public.js +6 -0
  109. package/utils/queue.js +102 -0
  110. package/utils/settings.js +3 -9
@@ -1,34 +1,27 @@
1
1
  <template>
2
- <common-tooltip :spec="spec">
3
- <template v-slot:activator="{ on }">
4
- <common-badge :spec="spec">
5
- <v-chip
6
- v-if="spec.onClick"
7
- :style="genericStyles()"
8
- :class="$classes()"
9
- :href="$href()"
10
- :small="$classes().includes('small')"
11
- @click="$onClick()"
12
- v-on="on"
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
- // $ready() {
42
- // this.tooltip = this.spec.tooltip || {};
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="{ on, attrs }">
4
- <v-btn
5
- :icon="iconStyling"
6
- :text="textStyling"
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
- v-for="(childItem, childIndex) in spec.childButtons"
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
- > a,
67
- > button {
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
  }
@@ -1,9 +1,9 @@
1
1
  <template>
2
- <common-badge :spec="spec">
3
- <v-icon :style="genericStyles()" :size="size" :color="color">{{
4
- value
5
- }}</v-icon>
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
- v-if="isColumn(item)"
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
- Vue.set(this.innerStyles, "align-items", align);
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;
@@ -1,19 +1,15 @@
1
1
  <template>
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
8
- :style="$styles()"
9
- :src="spec.url || spec.base64Data"
10
- @click="$onClick()"
11
- v-on="on"
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
- :style="genericStyles()"
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
- <v-banner
3
- :style="genericStyles()"
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
- <common-message :spec="spec" />
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
- </template>
31
- </v-banner>
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
- > a,
75
- > button {
62
+ >a,
63
+ >button {
76
64
  width: 100%;
77
65
  min-height: 48px;
78
66
  justify-content: flex-start;
@@ -1,9 +1,8 @@
1
1
  <template>
2
- <common-tooltip ref="tooltip" :spec="spec">
3
- <template v-slot:activator="{ on }">
4
- <common-button :spec="spec" :disabled="$isBusy" :event-handlers="on" />
5
- </template>
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>
@@ -1,34 +1,9 @@
1
1
  <template>
2
- <fields-text
3
- v-if="name == 'fields-text'"
4
- ref="delegate"
5
- :spec="spec"
6
- type="text"
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
- :is="name"
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 (this.$options.components[name]) {
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
 
@@ -34,8 +34,10 @@ export default {
34
34
  }
35
35
  },
36
36
  $tearDown() {
37
+ console.log("TimeTicker destroyed");
37
38
  if (this.timer != null) {
38
39
  clearInterval(this.timer);
40
+ console.log(`Timer stopped: ${this.timer}`);
39
41
  }
40
42
  },
41
43
  tick() {