glib-web 0.6.1 → 0.6.2

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 (204) hide show
  1. package/LICENSE +0 -0
  2. package/README.md +0 -0
  3. package/action.js +167 -167
  4. package/actions/analytics/logEvent.js +0 -0
  5. package/actions/auth/creditCard.js +0 -0
  6. package/actions/auth/restart.js +0 -0
  7. package/actions/auth/saveCsrfToken.js +0 -0
  8. package/actions/cables/push.js +0 -0
  9. package/actions/dialogs/alert.js +0 -0
  10. package/actions/dialogs/notification.js +0 -0
  11. package/actions/dialogs/oauth.js +0 -0
  12. package/actions/dialogs/open.js +0 -0
  13. package/actions/dialogs/options.js +0 -0
  14. package/actions/dialogs/show.js +0 -0
  15. package/actions/forms/submit.js +0 -0
  16. package/actions/http/delete.js +0 -0
  17. package/actions/http/patch.js +0 -0
  18. package/actions/http/post.js +0 -0
  19. package/actions/http/put.js +0 -0
  20. package/actions/panels/scrollTo.js +18 -18
  21. package/actions/panels/scrollToBottom.js +0 -0
  22. package/actions/runMultiple.js +0 -0
  23. package/actions/sheets/select.js +0 -0
  24. package/actions/snackbars/alert.js +0 -0
  25. package/actions/snackbars/select.js +0 -0
  26. package/actions/timeouts/set.js +20 -20
  27. package/actions/windows/close.js +0 -0
  28. package/actions/windows/closeAll.js +0 -0
  29. package/actions/windows/closeWithReload.js +0 -0
  30. package/actions/windows/open.js +0 -0
  31. package/actions/windows/openWeb.js +0 -0
  32. package/actions/windows/refreshState.js +5 -5
  33. package/actions/windows/reload.js +0 -0
  34. package/actions/ws/push.js +0 -0
  35. package/app.vue +180 -180
  36. package/components/_badge.vue +23 -23
  37. package/components/_button.vue +107 -107
  38. package/components/_dropdownMenu.vue +76 -76
  39. package/components/_icon.vue +50 -50
  40. package/components/_message.vue +0 -0
  41. package/components/avatar.vue +18 -18
  42. package/components/banners/alert.vue +0 -0
  43. package/components/banners/select.vue +82 -82
  44. package/components/button.vue +33 -40
  45. package/components/calendar.vue +0 -0
  46. package/components/charts/column.vue +47 -47
  47. package/components/charts/line.vue +67 -67
  48. package/components/chip.vue +51 -26
  49. package/components/component.vue +225 -225
  50. package/components/datetime.vue +0 -0
  51. package/components/fab.vue +0 -0
  52. package/components/fields/_patternText.vue +65 -65
  53. package/components/fields/_select.vue +86 -86
  54. package/components/fields/autocomplete.vue +73 -73
  55. package/components/fields/check.vue +91 -91
  56. package/components/fields/checkGroup.vue +58 -58
  57. package/components/fields/country/countries.js +0 -0
  58. package/components/fields/country/field.vue +0 -0
  59. package/components/fields/country/regions.js +0 -0
  60. package/components/fields/creditCard.vue +22 -13
  61. package/components/fields/date.vue +24 -24
  62. package/components/fields/datetime.vue +0 -0
  63. package/components/fields/dynamicGroup.vue +0 -0
  64. package/components/fields/dynamicSelect.vue +0 -0
  65. package/components/fields/file.vue +0 -0
  66. package/components/fields/googlePlace.vue +0 -0
  67. package/components/fields/hidden.vue +0 -0
  68. package/components/fields/location.vue +198 -198
  69. package/components/fields/newRichText.vue +0 -0
  70. package/components/fields/phone/countries.js +315 -315
  71. package/components/fields/phone/field.vue +351 -351
  72. package/components/fields/phone/sprite.css +1071 -1071
  73. package/components/fields/radio.vue +16 -16
  74. package/components/fields/radioGroup.vue +42 -42
  75. package/components/fields/rating.vue +0 -0
  76. package/components/fields/richText.vue +0 -0
  77. package/components/fields/select.vue +17 -17
  78. package/components/fields/stripe/stripeFields.vue +93 -93
  79. package/components/fields/stripe/stripeIndividualFields.vue +207 -207
  80. package/components/fields/stripeExternalAccount.vue +135 -135
  81. package/components/fields/text.vue +0 -0
  82. package/components/fields/textarea.vue +0 -0
  83. package/components/fields/timeZone.vue +22 -22
  84. package/components/fields/timer.vue +83 -83
  85. package/components/h1.vue +28 -28
  86. package/components/h2.vue +28 -28
  87. package/components/h3.vue +29 -29
  88. package/components/h4.vue +28 -28
  89. package/components/h5.vue +28 -28
  90. package/components/h6.vue +28 -28
  91. package/components/hr.vue +0 -0
  92. package/components/html.vue +0 -0
  93. package/components/icon.vue +25 -25
  94. package/components/image.vue +0 -0
  95. package/components/label.vue +62 -62
  96. package/components/map.vue +0 -0
  97. package/components/markdown.vue +0 -0
  98. package/components/mixins/chart/annotation.js +73 -73
  99. package/components/mixins/chart/tooltip.js +31 -28
  100. package/components/mixins/events.js +178 -178
  101. package/components/mixins/generic.js +0 -0
  102. package/components/mixins/list/autoload.js +0 -0
  103. package/components/mixins/longClick.js +0 -0
  104. package/components/mixins/scrolling.js +0 -0
  105. package/components/mixins/styles.js +222 -222
  106. package/components/mixins/table/autoload.js +0 -0
  107. package/components/mixins/table/export.js +0 -0
  108. package/components/mixins/table/import.js +0 -0
  109. package/components/mixins/text.js +20 -20
  110. package/components/mixins/tooltip.js +11 -0
  111. package/components/mixins/ws/actionCable.js +48 -48
  112. package/components/mixins/ws/phoenixSocket.js +0 -0
  113. package/components/p.vue +0 -0
  114. package/components/panels/carousel.vue +55 -55
  115. package/components/panels/column.vue +0 -0
  116. package/components/panels/custom.vue +0 -0
  117. package/components/panels/flow.vue +81 -81
  118. package/components/panels/form.vue +130 -130
  119. package/components/panels/horizontal.vue +0 -0
  120. package/components/panels/list.vue +247 -247
  121. package/components/panels/responsive.vue +94 -94
  122. package/components/panels/scroll.vue +0 -0
  123. package/components/panels/split.vue +0 -0
  124. package/components/panels/table.vue +0 -0
  125. package/components/panels/ul.vue +34 -34
  126. package/components/panels/vertical.vue +0 -0
  127. package/components/panels/web.vue +11 -11
  128. package/components/progressbar.vue +36 -36
  129. package/components/spacer.vue +0 -0
  130. package/components/switch.vue +42 -42
  131. package/components/tabBar.vue +68 -68
  132. package/extensions/array.js +0 -0
  133. package/extensions/string.js +21 -21
  134. package/index.js +199 -199
  135. package/keys.js +0 -0
  136. package/nav/appbar.vue +136 -136
  137. package/nav/content.vue +0 -0
  138. package/nav/dialog.vue +127 -127
  139. package/nav/drawer.vue +105 -105
  140. package/nav/drawerButton.vue +31 -31
  141. package/nav/drawerLabel.vue +0 -0
  142. package/nav/sheet.vue +0 -0
  143. package/nav/snackbar.vue +0 -0
  144. package/package.json +44 -44
  145. package/settings.json.example +0 -0
  146. package/static/plugins/alignment/alignment.js +0 -0
  147. package/static/plugins/alignment/alignment.min.js +0 -0
  148. package/static/plugins/beyondgrammar/beyondgrammar.js +0 -0
  149. package/static/plugins/beyondgrammar/beyondgrammar.min.js +0 -0
  150. package/static/plugins/blockcode/blockcode.js +0 -0
  151. package/static/plugins/blockcode/blockcode.min.js +0 -0
  152. package/static/plugins/clips/clips.js +0 -0
  153. package/static/plugins/clips/clips.min.js +0 -0
  154. package/static/plugins/counter/counter.js +0 -0
  155. package/static/plugins/counter/counter.min.js +0 -0
  156. package/static/plugins/definedlinks/definedlinks.js +0 -0
  157. package/static/plugins/definedlinks/definedlinks.min.js +0 -0
  158. package/static/plugins/handle/handle.js +0 -0
  159. package/static/plugins/handle/handle.min.js +0 -0
  160. package/static/plugins/icons/icons.js +0 -0
  161. package/static/plugins/icons/icons.min.js +0 -0
  162. package/static/plugins/imageposition/imageposition.js +0 -0
  163. package/static/plugins/imageposition/imageposition.min.js +0 -0
  164. package/static/plugins/inlineformat/inlineformat.js +0 -0
  165. package/static/plugins/inlineformat/inlineformat.min.js +0 -0
  166. package/static/plugins/removeformat/removeformat.js +0 -0
  167. package/static/plugins/removeformat/removeformat.min.js +0 -0
  168. package/static/plugins/selector/selector.js +0 -0
  169. package/static/plugins/selector/selector.min.js +0 -0
  170. package/static/plugins/specialchars/specialchars.js +0 -0
  171. package/static/plugins/specialchars/specialchars.min.js +0 -0
  172. package/static/plugins/textdirection/textdirection.js +0 -0
  173. package/static/plugins/textdirection/textdirection.min.js +0 -0
  174. package/static/plugins/textexpander/textexpander.js +0 -0
  175. package/static/plugins/textexpander/textexpander.min.js +0 -0
  176. package/static/plugins/underline/underline.js +0 -0
  177. package/static/plugins/underline/underline.min.js +0 -0
  178. package/static/redactorx.css +0 -0
  179. package/static/redactorx.js +0 -0
  180. package/static/redactorx.min.css +0 -0
  181. package/static/redactorx.min.js +0 -0
  182. package/static/redactorx.usm.min.js +0 -0
  183. package/styles/test.sass +0 -0
  184. package/styles/test.scss +0 -0
  185. package/templates/_menu.vue +38 -38
  186. package/templates/comment.vue +202 -202
  187. package/templates/featured.vue +32 -32
  188. package/templates/thumbnail.vue +145 -145
  189. package/templates/unsupported.vue +12 -12
  190. package/utils/app.js +0 -0
  191. package/utils/dom.js +0 -0
  192. package/utils/form.js +0 -0
  193. package/utils/hash.js +0 -0
  194. package/utils/helper.js +0 -0
  195. package/utils/history.js +70 -70
  196. package/utils/http.js +209 -209
  197. package/utils/launch.js +135 -135
  198. package/utils/private/ws.js +0 -0
  199. package/utils/public.js +0 -0
  200. package/utils/settings.js +0 -0
  201. package/utils/storage.js +0 -0
  202. package/utils/type.js +0 -0
  203. package/utils/uploader.js +0 -0
  204. package/utils/url.js +136 -136
@@ -1,145 +1,145 @@
1
- <template>
2
- <v-list-item
3
- v-longclick="$onLongPress"
4
- :href="$href()"
5
- style="padding-left: 0;"
6
- :style="columnStyles()"
7
- @[clickCondition]="$onClick()"
8
- >
9
- <v-icon v-if="spec.onReorder" class="handle">drag_indicator</v-icon>
10
-
11
- <div class="left-universal">
12
- <template v-for="(item, index) in spec.leftButtons">
13
- <common-button
14
- :key="index"
15
- :spec="buttonSpec(item)"
16
- :disabled="$isBusy"
17
- />
18
- </template>
19
- </div>
20
-
21
- <v-list-item-avatar
22
- v-if="$type.isString(spec.imageUrl)"
23
- :tile="!spec.avatar"
24
- class="left-thumbnail"
25
- >
26
- <img :src="spec.imageUrl" />
27
- </v-list-item-avatar>
28
- <!-- <v-list-item-avatar v-else-if="$type.isObject(spec.icon)">
29
- <common-icon :spec="spec.icon" />
30
- </v-list-item-avatar> -->
31
- <div v-else class="left-icon">
32
- <v-list-item-avatar v-if="$type.isObject(spec.icon)">
33
- <common-icon :spec="spec.icon" />
34
- </v-list-item-avatar>
35
- </div>
36
-
37
- <v-list-item-content>
38
- <v-list-item-title>{{ spec.title }}</v-list-item-title>
39
- <v-list-item-subtitle v-if="spec.subtitle">{{
40
- spec.subtitle
41
- }}</v-list-item-subtitle>
42
- <v-list-item-subtitle v-if="spec.subsubtitle">{{
43
- spec.subsubtitle
44
- }}</v-list-item-subtitle>
45
-
46
- <div>
47
- <template v-for="(item, index) in chips">
48
- <v-chip :key="index" class="ma-1" :color="item.color" small>
49
- {{ item.text }}
50
- </v-chip>
51
- </template>
52
- </div>
53
-
54
- <!-- NOTE: Experimental -->
55
- <panels-responsive :spec="accessory" />
56
- </v-list-item-content>
57
-
58
- <template v-for="(item, index) in spec.rightButtons">
59
- <common-button
60
- :key="index"
61
- :spec="buttonSpec(item)"
62
- :disabled="$isBusy"
63
- />
64
- </template>
65
-
66
- <templates-menu :edit-buttons="editButtons" />
67
- </v-list-item>
68
- </template>
69
-
70
- <script>
71
- export default {
72
- props: {
73
- spec: { type: Object, required: true },
74
- responsiveCols: { type: Number, default: () => 0 }
75
- },
76
- data() {
77
- return {
78
- accessory: {},
79
- editButtons: []
80
- // chips: []
81
- };
82
- },
83
- computed: {
84
- clickCondition() {
85
- if (this.spec.onClick || this.spec.onLongPress) {
86
- // This will show the clickable indication
87
- return "click";
88
- }
89
- return null;
90
- },
91
- // Implemented as computed so that it gets reflected when reordering
92
- chips() {
93
- return (this.spec.chips || []).map(item => {
94
- var color = null;
95
- this.$type.ifArray(item.styleClasses, classes => {
96
- for (const val of ["success", "info", "warning", "error"]) {
97
- if (classes.includes(val)) {
98
- color = val;
99
- }
100
- }
101
- });
102
- return Object.assign({}, item, { color: color });
103
- });
104
- }
105
- },
106
- methods: {
107
- $ready() {
108
- this.accessory = { childViews: this.spec.accessoryViews };
109
- this.editButtons = this.spec.editButtons || [];
110
- },
111
- buttonSpec(item) {
112
- return Object.assign({}, item, {
113
- view: "button-v1",
114
- styleClasses: item.text ? ["text"] : ["icon"]
115
- });
116
- },
117
- columnStyles() {
118
- if (this.responsiveCols) {
119
- return `width: ${100 / this.responsiveCols}%; float: left;`;
120
- }
121
- }
122
- }
123
- };
124
- </script>
125
-
126
- <style lang="scss" scoped>
127
- @media (min-width: 600px) {
128
- .left-thumbnail.v-avatar.v-list-item__avatar {
129
- margin: 6px 6px 6px 6px;
130
- width: 60px;
131
- height: 60px;
132
- }
133
- .left-icon {
134
- // margin-left: 16px;
135
- margin-left: 4px;
136
- }
137
- .left-universal {
138
- padding-left: 16px;
139
- }
140
- .handle {
141
- margin-left: 10px;
142
- cursor: move;
143
- }
144
- }
145
- </style>
1
+ <template>
2
+ <v-list-item
3
+ v-longclick="$onLongPress"
4
+ :href="$href()"
5
+ style="padding-left: 0;"
6
+ :style="columnStyles()"
7
+ @[clickCondition]="$onClick()"
8
+ >
9
+ <v-icon v-if="spec.onReorder" class="handle">drag_indicator</v-icon>
10
+
11
+ <div class="left-universal">
12
+ <template v-for="(item, index) in spec.leftButtons">
13
+ <common-button
14
+ :key="index"
15
+ :spec="buttonSpec(item)"
16
+ :disabled="$isBusy"
17
+ />
18
+ </template>
19
+ </div>
20
+
21
+ <v-list-item-avatar
22
+ v-if="$type.isString(spec.imageUrl)"
23
+ :tile="!spec.avatar"
24
+ class="left-thumbnail"
25
+ >
26
+ <img :src="spec.imageUrl" />
27
+ </v-list-item-avatar>
28
+ <!-- <v-list-item-avatar v-else-if="$type.isObject(spec.icon)">
29
+ <common-icon :spec="spec.icon" />
30
+ </v-list-item-avatar> -->
31
+ <div v-else class="left-icon">
32
+ <v-list-item-avatar v-if="$type.isObject(spec.icon)">
33
+ <common-icon :spec="spec.icon" />
34
+ </v-list-item-avatar>
35
+ </div>
36
+
37
+ <v-list-item-content>
38
+ <v-list-item-title>{{ spec.title }}</v-list-item-title>
39
+ <v-list-item-subtitle v-if="spec.subtitle">{{
40
+ spec.subtitle
41
+ }}</v-list-item-subtitle>
42
+ <v-list-item-subtitle v-if="spec.subsubtitle">{{
43
+ spec.subsubtitle
44
+ }}</v-list-item-subtitle>
45
+
46
+ <div>
47
+ <template v-for="(item, index) in chips">
48
+ <v-chip :key="index" class="ma-1" :color="item.color" small>
49
+ {{ item.text }}
50
+ </v-chip>
51
+ </template>
52
+ </div>
53
+
54
+ <!-- NOTE: Experimental -->
55
+ <panels-responsive :spec="accessory" />
56
+ </v-list-item-content>
57
+
58
+ <template v-for="(item, index) in spec.rightButtons">
59
+ <common-button
60
+ :key="index"
61
+ :spec="buttonSpec(item)"
62
+ :disabled="$isBusy"
63
+ />
64
+ </template>
65
+
66
+ <templates-menu :edit-buttons="editButtons" />
67
+ </v-list-item>
68
+ </template>
69
+
70
+ <script>
71
+ export default {
72
+ props: {
73
+ spec: { type: Object, required: true },
74
+ responsiveCols: { type: Number, default: () => 0 }
75
+ },
76
+ data() {
77
+ return {
78
+ accessory: {},
79
+ editButtons: []
80
+ // chips: []
81
+ };
82
+ },
83
+ computed: {
84
+ clickCondition() {
85
+ if (this.spec.onClick || this.spec.onLongPress) {
86
+ // This will show the clickable indication
87
+ return "click";
88
+ }
89
+ return null;
90
+ },
91
+ // Implemented as computed so that it gets reflected when reordering
92
+ chips() {
93
+ return (this.spec.chips || []).map(item => {
94
+ var color = null;
95
+ this.$type.ifArray(item.styleClasses, classes => {
96
+ for (const val of ["success", "info", "warning", "error"]) {
97
+ if (classes.includes(val)) {
98
+ color = val;
99
+ }
100
+ }
101
+ });
102
+ return Object.assign({}, item, { color: color });
103
+ });
104
+ }
105
+ },
106
+ methods: {
107
+ $ready() {
108
+ this.accessory = { childViews: this.spec.accessoryViews };
109
+ this.editButtons = this.spec.editButtons || [];
110
+ },
111
+ buttonSpec(item) {
112
+ return Object.assign({}, item, {
113
+ view: "button-v1",
114
+ styleClasses: item.text ? ["text"] : ["icon"]
115
+ });
116
+ },
117
+ columnStyles() {
118
+ if (this.responsiveCols) {
119
+ return `width: ${100 / this.responsiveCols}%; float: left;`;
120
+ }
121
+ }
122
+ }
123
+ };
124
+ </script>
125
+
126
+ <style lang="scss" scoped>
127
+ @media (min-width: 600px) {
128
+ .left-thumbnail.v-avatar.v-list-item__avatar {
129
+ margin: 6px 6px 6px 6px;
130
+ width: 60px;
131
+ height: 60px;
132
+ }
133
+ .left-icon {
134
+ // margin-left: 16px;
135
+ margin-left: 4px;
136
+ }
137
+ .left-universal {
138
+ padding-left: 16px;
139
+ }
140
+ .handle {
141
+ margin-left: 10px;
142
+ cursor: move;
143
+ }
144
+ }
145
+ </style>
@@ -1,12 +1,12 @@
1
- <template>
2
- <div>Unsupported template: {{ name }}</div>
3
- </template>
4
-
5
- <script>
6
- export default {
7
- props: {
8
- spec: { type: Object, required: true },
9
- name: { type: String, required: true }
10
- }
11
- };
12
- </script>
1
+ <template>
2
+ <div>Unsupported template: {{ name }}</div>
3
+ </template>
4
+
5
+ <script>
6
+ export default {
7
+ props: {
8
+ spec: { type: Object, required: true },
9
+ name: { type: String, required: true }
10
+ }
11
+ };
12
+ </script>
package/utils/app.js CHANGED
File without changes
package/utils/dom.js CHANGED
File without changes
package/utils/form.js CHANGED
File without changes
package/utils/hash.js CHANGED
File without changes
package/utils/helper.js CHANGED
File without changes
package/utils/history.js CHANGED
@@ -1,70 +1,70 @@
1
- import Vue from "vue";
2
-
3
- export default class {
4
- static saveInitialContent(content) {
5
- // History only handles document's scroll position. It doesn't handle our body div's position
6
- this.bodyScrollTops = [];
7
- // This differs from window.history.length in that this only counts internal navigation
8
- this.navigationCount = 0;
9
- // Set initial state so we can go back to it
10
- window.history.replaceState(this._data(content), "", window.location.href);
11
- }
12
-
13
- static get _pageBody() {
14
- return document.getElementById("page_body");
15
- }
16
-
17
- static _data(content) {
18
- return { content: content, navigationCount: this.navigationCount };
19
- }
20
-
21
- static pushPage(content, url) {
22
- // Save scroll position of the current page when navigating to the next page
23
- this.bodyScrollTops[this.navigationCount] = this._pageBody.scrollTop;
24
-
25
- this.navigationCount++;
26
-
27
- // Save data of the next page (page getting pushed)
28
- window.history.pushState(this._data(content), "", url);
29
- }
30
-
31
- static resetScroll() {
32
- this._pageBody.scrollTop = 0;
33
- }
34
-
35
- static restoreOnBackOrForward() {
36
- const vm = this;
37
- window.onpopstate = event => {
38
- // Save scroll position of the current page when navigating through back/forward button
39
- this.bodyScrollTops[this.navigationCount] = this._pageBody.scrollTop;
40
-
41
- const data = event.state;
42
- data.content.__poppedState = true;
43
- window.vueApp.page = data.content;
44
- vm.navigationCount = data.navigationCount;
45
-
46
- Vue.nextTick(() => {
47
- const scrollTop = this.bodyScrollTops[this.navigationCount];
48
- this._pageBody.scrollTop = scrollTop;
49
- });
50
- };
51
- }
52
-
53
- static isPoppedState(page) {
54
- return page.__poppedState == true;
55
- }
56
-
57
- static updatePage(url = window.location.href) {
58
- window.history.replaceState(this._data(window.vueApp.page), "", url);
59
- }
60
-
61
- static back() {
62
- if (this.navigationCount > 0) {
63
- window.history.back();
64
- return true;
65
- } else {
66
- console.log("Reached beginning of navigation stack");
67
- return false;
68
- }
69
- }
70
- }
1
+ import Vue from "vue";
2
+
3
+ export default class {
4
+ static saveInitialContent(content) {
5
+ // History only handles document's scroll position. It doesn't handle our body div's position
6
+ this.bodyScrollTops = [];
7
+ // This differs from window.history.length in that this only counts internal navigation
8
+ this.navigationCount = 0;
9
+ // Set initial state so we can go back to it
10
+ window.history.replaceState(this._data(content), "", window.location.href);
11
+ }
12
+
13
+ static get _pageBody() {
14
+ return document.getElementById("page_body");
15
+ }
16
+
17
+ static _data(content) {
18
+ return { content: content, navigationCount: this.navigationCount };
19
+ }
20
+
21
+ static pushPage(content, url) {
22
+ // Save scroll position of the current page when navigating to the next page
23
+ this.bodyScrollTops[this.navigationCount] = this._pageBody.scrollTop;
24
+
25
+ this.navigationCount++;
26
+
27
+ // Save data of the next page (page getting pushed)
28
+ window.history.pushState(this._data(content), "", url);
29
+ }
30
+
31
+ static resetScroll() {
32
+ this._pageBody.scrollTop = 0;
33
+ }
34
+
35
+ static restoreOnBackOrForward() {
36
+ const vm = this;
37
+ window.onpopstate = event => {
38
+ // Save scroll position of the current page when navigating through back/forward button
39
+ this.bodyScrollTops[this.navigationCount] = this._pageBody.scrollTop;
40
+
41
+ const data = event.state;
42
+ data.content.__poppedState = true;
43
+ window.vueApp.page = data.content;
44
+ vm.navigationCount = data.navigationCount;
45
+
46
+ Vue.nextTick(() => {
47
+ const scrollTop = this.bodyScrollTops[this.navigationCount];
48
+ this._pageBody.scrollTop = scrollTop;
49
+ });
50
+ };
51
+ }
52
+
53
+ static isPoppedState(page) {
54
+ return page.__poppedState == true;
55
+ }
56
+
57
+ static updatePage(url = window.location.href) {
58
+ window.history.replaceState(this._data(window.vueApp.page), "", url);
59
+ }
60
+
61
+ static back() {
62
+ if (this.navigationCount > 0) {
63
+ window.history.back();
64
+ return true;
65
+ } else {
66
+ console.log("Reached beginning of navigation stack");
67
+ return false;
68
+ }
69
+ }
70
+ }