Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
2
2020-027
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
2020-027
2020-027
Commits
fabfd8a3
Commit
fabfd8a3
authored
Oct 30, 2020
by
Shaini Thenuwara
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
front end pa
parent
4eae3384
Changes
25
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
3950 additions
and
0 deletions
+3950
-0
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/App.js
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/App.js
+206
-0
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/axios.js
...ni thenuwara/statistics/examples/nuxt-demo/.nuxt/axios.js
+188
-0
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/client.js
...i thenuwara/statistics/examples/nuxt-demo/.nuxt/client.js
+811
-0
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/components/nuxt-build-indicator.vue
...mples/nuxt-demo/.nuxt/components/nuxt-build-indicator.vue
+143
-0
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/components/nuxt-child.js
...tistics/examples/nuxt-demo/.nuxt/components/nuxt-child.js
+122
-0
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/components/nuxt-error.vue
...istics/examples/nuxt-demo/.nuxt/components/nuxt-error.vue
+98
-0
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/components/nuxt-link.client.js
...s/examples/nuxt-demo/.nuxt/components/nuxt-link.client.js
+98
-0
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/components/nuxt-link.server.js
...s/examples/nuxt-demo/.nuxt/components/nuxt-link.server.js
+16
-0
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/components/nuxt-loading.vue
...tics/examples/nuxt-demo/.nuxt/components/nuxt-loading.vue
+177
-0
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/components/nuxt.js
...ra/statistics/examples/nuxt-demo/.nuxt/components/nuxt.js
+101
-0
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/empty.js
...ni thenuwara/statistics/examples/nuxt-demo/.nuxt/empty.js
+1
-0
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/index.js
...ni thenuwara/statistics/examples/nuxt-demo/.nuxt/index.js
+267
-0
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/jsonp.js
...ni thenuwara/statistics/examples/nuxt-demo/.nuxt/jsonp.js
+80
-0
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/loading.html
...henuwara/statistics/examples/nuxt-demo/.nuxt/loading.html
+110
-0
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/middleware.js
...enuwara/statistics/examples/nuxt-demo/.nuxt/middleware.js
+3
-0
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/mixins/fetch.client.js
...tatistics/examples/nuxt-demo/.nuxt/mixins/fetch.client.js
+90
-0
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/mixins/fetch.server.js
...tatistics/examples/nuxt-demo/.nuxt/mixins/fetch.server.js
+53
-0
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/router.js
...i thenuwara/statistics/examples/nuxt-demo/.nuxt/router.js
+105
-0
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/router.scrollBehavior.js
...tistics/examples/nuxt-demo/.nuxt/router.scrollBehavior.js
+76
-0
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/routes.json
...thenuwara/statistics/examples/nuxt-demo/.nuxt/routes.json
+92
-0
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/server.js
...i thenuwara/statistics/examples/nuxt-demo/.nuxt/server.js
+296
-0
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/store.js
...ni thenuwara/statistics/examples/nuxt-demo/.nuxt/store.js
+148
-0
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/utils.js
...ni thenuwara/statistics/examples/nuxt-demo/.nuxt/utils.js
+637
-0
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/views/app.template.html
...atistics/examples/nuxt-demo/.nuxt/views/app.template.html
+9
-0
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/views/error.html
...wara/statistics/examples/nuxt-demo/.nuxt/views/error.html
+23
-0
No files found.
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/App.js
0 → 100644
View file @
fabfd8a3
import
Vue
from
'
vue
'
import
{
getMatchedComponentsInstances
,
getChildrenComponentInstancesUsingFetch
,
promisify
,
globalHandleError
,
urlJoin
,
sanitizeComponent
}
from
'
./utils
'
import
NuxtError
from
'
./components/nuxt-error.vue
'
import
NuxtLoading
from
'
./components/nuxt-loading.vue
'
import
NuxtBuildIndicator
from
'
./components/nuxt-build-indicator
'
import
'
..
\\
assets
\\
variables.css
'
import
'
..
\\
assets
\\
custom-bootstrap.scss
'
import
_6f6c098b
from
'
..
\\
layouts
\\
default.vue
'
const
layouts
=
{
"
_default
"
:
sanitizeComponent
(
_6f6c098b
)
}
export
default
{
render
(
h
,
props
)
{
const
loadingEl
=
h
(
'
NuxtLoading
'
,
{
ref
:
'
loading
'
})
const
layoutEl
=
h
(
this
.
layout
||
'
nuxt
'
)
const
templateEl
=
h
(
'
div
'
,
{
domProps
:
{
id
:
'
__layout
'
},
key
:
this
.
layoutName
},
[
layoutEl
])
const
transitionEl
=
h
(
'
transition
'
,
{
props
:
{
name
:
'
layout
'
,
mode
:
'
out-in
'
},
on
:
{
beforeEnter
(
el
)
{
// Ensure to trigger scroll event after calling scrollBehavior
window
.
$nuxt
.
$nextTick
(()
=>
{
window
.
$nuxt
.
$emit
(
'
triggerScroll
'
)
})
}
}
},
[
templateEl
])
return
h
(
'
div
'
,
{
domProps
:
{
id
:
'
__nuxt
'
}
},
[
loadingEl
,
h
(
NuxtBuildIndicator
),
transitionEl
])
},
data
:
()
=>
({
isOnline
:
true
,
layout
:
null
,
layoutName
:
''
,
nbFetching
:
0
}),
beforeCreate
()
{
Vue
.
util
.
defineReactive
(
this
,
'
nuxt
'
,
this
.
$options
.
nuxt
)
},
created
()
{
// Add this.$nuxt in child instances
Vue
.
prototype
.
$nuxt
=
this
if
(
process
.
client
)
{
// add to window so we can listen when ready
window
.
$nuxt
=
this
this
.
refreshOnlineStatus
()
// Setup the listeners
window
.
addEventListener
(
'
online
'
,
this
.
refreshOnlineStatus
)
window
.
addEventListener
(
'
offline
'
,
this
.
refreshOnlineStatus
)
}
// Add $nuxt.error()
this
.
error
=
this
.
nuxt
.
error
// Add $nuxt.context
this
.
context
=
this
.
$options
.
context
},
async
mounted
()
{
this
.
$loading
=
this
.
$refs
.
loading
},
watch
:
{
'
nuxt.err
'
:
'
errorChanged
'
},
computed
:
{
isOffline
()
{
return
!
this
.
isOnline
},
isFetching
()
{
return
this
.
nbFetching
>
0
},
},
methods
:
{
refreshOnlineStatus
()
{
if
(
process
.
client
)
{
if
(
typeof
window
.
navigator
.
onLine
===
'
undefined
'
)
{
// If the browser doesn't support connection status reports
// assume that we are online because most apps' only react
// when they now that the connection has been interrupted
this
.
isOnline
=
true
}
else
{
this
.
isOnline
=
window
.
navigator
.
onLine
}
}
},
async
refresh
()
{
const
pages
=
getMatchedComponentsInstances
(
this
.
$route
)
if
(
!
pages
.
length
)
{
return
}
this
.
$loading
.
start
()
const
promises
=
pages
.
map
((
page
)
=>
{
const
p
=
[]
// Old fetch
if
(
page
.
$options
.
fetch
&&
page
.
$options
.
fetch
.
length
)
{
p
.
push
(
promisify
(
page
.
$options
.
fetch
,
this
.
context
))
}
if
(
page
.
$fetch
)
{
p
.
push
(
page
.
$fetch
())
}
else
{
// Get all component instance to call $fetch
for
(
const
component
of
getChildrenComponentInstancesUsingFetch
(
page
.
$vnode
.
componentInstance
))
{
p
.
push
(
component
.
$fetch
())
}
}
if
(
page
.
$options
.
asyncData
)
{
p
.
push
(
promisify
(
page
.
$options
.
asyncData
,
this
.
context
)
.
then
((
newData
)
=>
{
for
(
const
key
in
newData
)
{
Vue
.
set
(
page
.
$data
,
key
,
newData
[
key
])
}
})
)
}
return
Promise
.
all
(
p
)
})
try
{
await
Promise
.
all
(
promises
)
}
catch
(
error
)
{
this
.
$loading
.
fail
(
error
)
globalHandleError
(
error
)
this
.
error
(
error
)
}
this
.
$loading
.
finish
()
},
errorChanged
()
{
if
(
this
.
nuxt
.
err
)
{
if
(
this
.
$loading
)
{
if
(
this
.
$loading
.
fail
)
{
this
.
$loading
.
fail
(
this
.
nuxt
.
err
)
}
if
(
this
.
$loading
.
finish
)
{
this
.
$loading
.
finish
()
}
}
let
errorLayout
=
(
NuxtError
.
options
||
NuxtError
).
layout
;
if
(
typeof
errorLayout
===
'
function
'
)
{
errorLayout
=
errorLayout
(
this
.
context
)
}
this
.
setLayout
(
errorLayout
)
}
},
setLayout
(
layout
)
{
if
(
layout
&&
typeof
layout
!==
'
string
'
)
{
throw
new
Error
(
'
[nuxt] Avoid using non-string value as layout property.
'
)
}
if
(
!
layout
||
!
layouts
[
'
_
'
+
layout
])
{
layout
=
'
default
'
}
this
.
layoutName
=
layout
this
.
layout
=
layouts
[
'
_
'
+
layout
]
return
this
.
layout
},
loadLayout
(
layout
)
{
if
(
!
layout
||
!
layouts
[
'
_
'
+
layout
])
{
layout
=
'
default
'
}
return
Promise
.
resolve
(
layouts
[
'
_
'
+
layout
])
},
},
components
:
{
NuxtLoading
}
}
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/axios.js
0 → 100644
View file @
fabfd8a3
import
Axios
from
'
axios
'
import
defu
from
'
defu
'
// Axios.prototype cannot be modified
const
axiosExtra
=
{
setBaseURL
(
baseURL
)
{
this
.
defaults
.
baseURL
=
baseURL
},
setHeader
(
name
,
value
,
scopes
=
'
common
'
)
{
for
(
const
scope
of
Array
.
isArray
(
scopes
)
?
scopes
:
[
scopes
])
{
if
(
!
value
)
{
delete
this
.
defaults
.
headers
[
scope
][
name
];
return
}
this
.
defaults
.
headers
[
scope
][
name
]
=
value
}
},
setToken
(
token
,
type
,
scopes
=
'
common
'
)
{
const
value
=
!
token
?
null
:
(
type
?
type
+
'
'
:
''
)
+
token
this
.
setHeader
(
'
Authorization
'
,
value
,
scopes
)
},
onRequest
(
fn
)
{
this
.
interceptors
.
request
.
use
(
config
=>
fn
(
config
)
||
config
)
},
onResponse
(
fn
)
{
this
.
interceptors
.
response
.
use
(
response
=>
fn
(
response
)
||
response
)
},
onRequestError
(
fn
)
{
this
.
interceptors
.
request
.
use
(
undefined
,
error
=>
fn
(
error
)
||
Promise
.
reject
(
error
))
},
onResponseError
(
fn
)
{
this
.
interceptors
.
response
.
use
(
undefined
,
error
=>
fn
(
error
)
||
Promise
.
reject
(
error
))
},
onError
(
fn
)
{
this
.
onRequestError
(
fn
)
this
.
onResponseError
(
fn
)
},
create
(
options
)
{
return
createAxiosInstance
(
defu
(
options
,
this
.
defaults
))
}
}
// Request helpers ($get, $post, ...)
for
(
const
method
of
[
'
request
'
,
'
delete
'
,
'
get
'
,
'
head
'
,
'
options
'
,
'
post
'
,
'
put
'
,
'
patch
'
])
{
axiosExtra
[
'
$
'
+
method
]
=
function
()
{
return
this
[
method
].
apply
(
this
,
arguments
).
then
(
res
=>
res
&&
res
.
data
)
}
}
const
extendAxiosInstance
=
axios
=>
{
for
(
const
key
in
axiosExtra
)
{
axios
[
key
]
=
axiosExtra
[
key
].
bind
(
axios
)
}
}
const
createAxiosInstance
=
axiosOptions
=>
{
// Create new axios instance
const
axios
=
Axios
.
create
(
axiosOptions
)
axios
.
CancelToken
=
Axios
.
CancelToken
axios
.
isCancel
=
Axios
.
isCancel
// Extend axios proto
extendAxiosInstance
(
axios
)
// Setup interceptors
setupProgress
(
axios
)
return
axios
}
const
setupProgress
=
(
axios
)
=>
{
if
(
process
.
server
)
{
return
}
// A noop loading inteterface for when $nuxt is not yet ready
const
noopLoading
=
{
finish
:
()
=>
{
},
start
:
()
=>
{
},
fail
:
()
=>
{
},
set
:
()
=>
{
}
}
const
$loading
=
()
=>
{
const
$nuxt
=
typeof
window
!==
'
undefined
'
&&
window
[
'
$nuxt
'
]
return
(
$nuxt
&&
$nuxt
.
$loading
&&
$nuxt
.
$loading
.
set
)
?
$nuxt
.
$loading
:
noopLoading
}
let
currentRequests
=
0
axios
.
onRequest
(
config
=>
{
if
(
config
&&
config
.
progress
===
false
)
{
return
}
currentRequests
++
})
axios
.
onResponse
(
response
=>
{
if
(
response
&&
response
.
config
&&
response
.
config
.
progress
===
false
)
{
return
}
currentRequests
--
if
(
currentRequests
<=
0
)
{
currentRequests
=
0
$loading
().
finish
()
}
})
axios
.
onError
(
error
=>
{
if
(
error
&&
error
.
config
&&
error
.
config
.
progress
===
false
)
{
return
}
currentRequests
--
if
(
Axios
.
isCancel
(
error
))
{
if
(
currentRequests
<=
0
)
{
currentRequests
=
0
$loading
().
finish
()
}
return
}
$loading
().
fail
()
$loading
().
finish
()
})
const
onProgress
=
e
=>
{
if
(
!
currentRequests
)
{
return
}
const
progress
=
((
e
.
loaded
*
100
)
/
(
e
.
total
*
currentRequests
))
$loading
().
set
(
Math
.
min
(
100
,
progress
))
}
axios
.
defaults
.
onUploadProgress
=
onProgress
axios
.
defaults
.
onDownloadProgress
=
onProgress
}
export
default
(
ctx
,
inject
)
=>
{
// runtimeConfig
const
runtimeConfig
=
ctx
.
$config
&&
ctx
.
$config
.
axios
||
{}
// baseURL
const
baseURL
=
process
.
browser
?
(
runtimeConfig
.
browserBaseURL
||
runtimeConfig
.
baseURL
||
'
http://localhost:3000/
'
)
:
(
runtimeConfig
.
baseURL
||
process
.
env
.
_AXIOS_BASE_URL_
||
'
http://localhost:3000/
'
)
// Create fresh objects for all default header scopes
// Axios creates only one which is shared across SSR requests!
// https://github.com/mzabriskie/axios/blob/master/lib/defaults.js
const
headers
=
{
"
common
"
:
{
"
Accept
"
:
"
application/json, text/plain, */*
"
},
"
delete
"
:
{},
"
get
"
:
{},
"
head
"
:
{},
"
post
"
:
{},
"
put
"
:
{},
"
patch
"
:
{}
}
const
axiosOptions
=
{
baseURL
,
headers
}
// Proxy SSR request headers headers
if
(
process
.
server
&&
ctx
.
req
&&
ctx
.
req
.
headers
)
{
const
reqHeaders
=
{
...
ctx
.
req
.
headers
}
for
(
const
h
of
[
"
accept
"
,
"
host
"
,
"
cf-ray
"
,
"
cf-connecting-ip
"
,
"
content-length
"
,
"
content-md5
"
,
"
content-type
"
])
{
delete
reqHeaders
[
h
]
}
axiosOptions
.
headers
.
common
=
{
...
reqHeaders
,
...
axiosOptions
.
headers
.
common
}
}
if
(
process
.
server
)
{
// Don't accept brotli encoding because Node can't parse it
axiosOptions
.
headers
.
common
[
'
accept-encoding
'
]
=
'
gzip, deflate
'
}
const
axios
=
createAxiosInstance
(
axiosOptions
)
// Inject axios to the context as $axios
ctx
.
$axios
=
axios
inject
(
'
axios
'
,
axios
)
}
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/client.js
0 → 100644
View file @
fabfd8a3
This diff is collapsed.
Click to expand it.
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/components/nuxt-build-indicator.vue
0 → 100644
View file @
fabfd8a3
<
template
>
<transition
appear
>
<div
v-if=
"building"
class=
"nuxt__build_indicator"
:style=
"indicatorStyle"
>
<svg
viewBox=
"0 0 96 72"
version=
"1"
xmlns=
"http://www.w3.org/2000/svg"
>
<g
fill=
"none"
fill-rule=
"evenodd"
>
<path
d=
"M6 66h23l1-3 21-37L40 6 6 66zM79 66h11L62 17l-5 9 22 37v3zM54 31L35 66h38z"
/>
<path
d=
"M29 69v-1-2H6L40 6l11 20 3-6L44 3s-2-3-4-3-3 1-5 3L1 63c0 1-2 3 0 6 0 1 2 2 5 2h28c-3 0-4-1-5-2z"
fill=
"#00C58E"
/>
<path
d=
"M95 63L67 14c0-1-2-3-5-3-1 0-3 0-4 3l-4 6 3 6 5-9 28 49H79a5 5 0 0 1 0 3c-2 2-5 2-5 2h16c1 0 4 0 5-2 1-1 2-3 0-6z"
fill=
"#00C58E"
/>
<path
d=
"M79 69v-1-2-3L57 26l-3-6-3 6-21 37-1 3a5 5 0 0 0 0 3c1 1 2 2 5 2h40s3 0 5-2zM54 31l19 35H35l19-35z"
fill=
"#FFF"
fill-rule=
"nonzero"
/>
</g>
</svg>
{{
animatedProgress
}}
%
</div>
</transition>
</
template
>
<
script
>
export
default
{
name
:
'
NuxtBuildIndicator
'
,
data
()
{
return
{
building
:
false
,
progress
:
0
,
animatedProgress
:
0
,
reconnectAttempts
:
0
}
},
computed
:
{
options
:
()
=>
({
"
position
"
:
"
bottom-right
"
,
"
backgroundColor
"
:
"
#2E495E
"
,
"
color
"
:
"
#00C48D
"
}),
indicatorStyle
()
{
const
[
d1
,
d2
]
=
this
.
options
.
position
.
split
(
'
-
'
)
return
{
[
d1
]:
'
20px
'
,
[
d2
]:
'
20px
'
,
'
background-color
'
:
this
.
options
.
backgroundColor
,
color
:
this
.
options
.
color
}
}
},
watch
:
{
progress
(
val
,
oldVal
)
{
// Average progress may decrease but ignore it!
if
(
val
<
oldVal
)
{
return
}
// Cancel old animation
clearInterval
(
this
.
_progressAnimation
)
// Jump to edge immediately
if
(
val
<
10
||
val
>
90
)
{
this
.
animatedProgress
=
val
return
}
// Animate to value
this
.
_progressAnimation
=
setInterval
(()
=>
{
const
diff
=
this
.
progress
-
this
.
animatedProgress
if
(
diff
>
0
)
{
this
.
animatedProgress
++
}
else
{
clearInterval
(
this
.
_progressAnimation
)
}
},
50
)
}
},
mounted
()
{
if
(
EventSource
===
undefined
)
{
return
// Unsupported
}
this
.
sseConnect
()
},
beforeDestroy
()
{
this
.
sseClose
()
clearInterval
(
this
.
_progressAnimation
)
},
methods
:
{
sseConnect
()
{
if
(
this
.
_connecting
)
{
return
}
this
.
_connecting
=
true
this
.
sse
=
new
EventSource
(
'
/_loading/sse
'
)
this
.
sse
.
addEventListener
(
'
message
'
,
event
=>
this
.
onSseMessage
(
event
))
},
onSseMessage
(
message
)
{
const
data
=
JSON
.
parse
(
message
.
data
)
if
(
!
data
.
states
)
{
return
}
this
.
progress
=
Math
.
round
(
data
.
states
.
reduce
((
p
,
s
)
=>
p
+
s
.
progress
,
0
)
/
data
.
states
.
length
)
if
(
!
data
.
allDone
)
{
this
.
building
=
true
}
else
{
this
.
$nextTick
(()
=>
{
this
.
building
=
false
this
.
animatedProgress
=
0
this
.
progress
=
0
clearInterval
(
this
.
_progressAnimation
)
})
}
},
sseClose
()
{
if
(
this
.
sse
)
{
this
.
sse
.
close
()
delete
this
.
sse
}
}
}
}
</
script
>
<
style
scoped
>
.nuxt__build_indicator
{
box-sizing
:
border-box
;
position
:
fixed
;
font-family
:
monospace
;
padding
:
5px
10px
;
border-radius
:
5px
;
box-shadow
:
1px
1px
2px
0px
rgba
(
0
,
0
,
0
,
0.2
);
width
:
88px
;
z-index
:
2147483647
;
font-size
:
16px
;
line-height
:
1.2rem
;
}
.v-enter-active
,
.v-leave-active
{
transition-delay
:
0.2s
;
transition-property
:
all
;
transition-duration
:
0.3s
;
}
.v-leave-to
{
opacity
:
0
;
transform
:
translateY
(
20px
);
}
svg
{
display
:
inline-block
;
vertical-align
:
baseline
;
width
:
1.1em
;
height
:
0.825em
;
position
:
relative
;
top
:
1px
;
}
</
style
>
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/components/nuxt-child.js
0 → 100644
View file @
fabfd8a3
export
default
{
name
:
'
NuxtChild
'
,
functional
:
true
,
props
:
{
nuxtChildKey
:
{
type
:
String
,
default
:
''
},
keepAlive
:
Boolean
,
keepAliveProps
:
{
type
:
Object
,
default
:
undefined
}
},
render
(
_
,
{
parent
,
data
,
props
})
{
const
h
=
parent
.
$createElement
data
.
nuxtChild
=
true
const
_parent
=
parent
const
transitions
=
parent
.
$nuxt
.
nuxt
.
transitions
const
defaultTransition
=
parent
.
$nuxt
.
nuxt
.
defaultTransition
let
depth
=
0
while
(
parent
)
{
if
(
parent
.
$vnode
&&
parent
.
$vnode
.
data
.
nuxtChild
)
{
depth
++
}
parent
=
parent
.
$parent
}
data
.
nuxtChildDepth
=
depth
const
transition
=
transitions
[
depth
]
||
defaultTransition
const
transitionProps
=
{}
transitionsKeys
.
forEach
((
key
)
=>
{
if
(
typeof
transition
[
key
]
!==
'
undefined
'
)
{
transitionProps
[
key
]
=
transition
[
key
]
}
})
const
listeners
=
{}
listenersKeys
.
forEach
((
key
)
=>
{
if
(
typeof
transition
[
key
]
===
'
function
'
)
{
listeners
[
key
]
=
transition
[
key
].
bind
(
_parent
)
}
})
if
(
process
.
client
)
{
// Add triggerScroll event on beforeEnter (fix #1376)
const
beforeEnter
=
listeners
.
beforeEnter
listeners
.
beforeEnter
=
(
el
)
=>
{
// Ensure to trigger scroll event after calling scrollBehavior
window
.
$nuxt
.
$nextTick
(()
=>
{
window
.
$nuxt
.
$emit
(
'
triggerScroll
'
)
})
if
(
beforeEnter
)
{
return
beforeEnter
.
call
(
_parent
,
el
)
}
}
}
// make sure that leave is called asynchronous (fix #5703)
if
(
transition
.
css
===
false
)
{
const
leave
=
listeners
.
leave
// only add leave listener when user didnt provide one
// or when it misses the done argument
if
(
!
leave
||
leave
.
length
<
2
)
{
listeners
.
leave
=
(
el
,
done
)
=>
{
if
(
leave
)
{
leave
.
call
(
_parent
,
el
)
}
_parent
.
$nextTick
(
done
)
}
}
}
let
routerView
=
h
(
'
routerView
'
,
data
)
if
(
props
.
keepAlive
)
{
routerView
=
h
(
'
keep-alive
'
,
{
props
:
props
.
keepAliveProps
},
[
routerView
])
}
return
h
(
'
transition
'
,
{
props
:
transitionProps
,
on
:
listeners
},
[
routerView
])
}
}
const
transitionsKeys
=
[
'
name
'
,
'
mode
'
,
'
appear
'
,
'
css
'
,
'
type
'
,
'
duration
'
,
'
enterClass
'
,
'
leaveClass
'
,
'
appearClass
'
,
'
enterActiveClass
'
,
'
enterActiveClass
'
,
'
leaveActiveClass
'
,
'
appearActiveClass
'
,
'
enterToClass
'
,
'
leaveToClass
'
,
'
appearToClass
'
]
const
listenersKeys
=
[
'
beforeEnter
'
,
'
enter
'
,
'
afterEnter
'
,
'
enterCancelled
'
,
'
beforeLeave
'
,
'
leave
'
,
'
afterLeave
'
,
'
leaveCancelled
'
,
'
beforeAppear
'
,
'
appear
'
,
'
afterAppear
'
,
'
appearCancelled
'
]
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/components/nuxt-error.vue
0 → 100644
View file @
fabfd8a3
<
template
>
<div
class=
"__nuxt-error-page"
>
<div
class=
"error"
>
<svg
xmlns=
"http://www.w3.org/2000/svg"
width=
"90"
height=
"90"
fill=
"#DBE1EC"
viewBox=
"0 0 48 48"
>
<path
d=
"M22 30h4v4h-4zm0-16h4v12h-4zm1.99-10C12.94 4 4 12.95 4 24s8.94 20 19.99 20S44 35.05 44 24 35.04 4 23.99 4zM24 40c-8.84 0-16-7.16-16-16S15.16 8 24 8s16 7.16 16 16-7.16 16-16 16z"
/>
</svg>
<div
class=
"title"
>
{{
message
}}
</div>
<p
v-if=
"statusCode === 404"
class=
"description"
>
<a
v-if=
"typeof $route === 'undefined'"
class=
"error-link"
href=
"/"
></a>
<NuxtLink
v-else
class=
"error-link"
to=
"/"
>
Back to the home page
</NuxtLink>
</p>
<p
class=
"description"
v-else
>
An error occurred while rendering the page. Check developer tools console for details.
</p>
<div
class=
"logo"
>
<a
href=
"https://nuxtjs.org"
target=
"_blank"
rel=
"noopener"
>
Nuxt.js
</a>
</div>
</div>
</div>
</
template
>
<
script
>
export
default
{
name
:
'
NuxtError
'
,
props
:
{
error
:
{
type
:
Object
,
default
:
null
}
},
computed
:
{
statusCode
()
{
return
(
this
.
error
&&
this
.
error
.
statusCode
)
||
500
},
message
()
{
return
this
.
error
.
message
||
'
Error
'
}
},
head
()
{
return
{
title
:
this
.
message
,
meta
:
[
{
name
:
'
viewport
'
,
content
:
'
width=device-width,initial-scale=1.0,minimum-scale=1.0
'
}
]
}
}
}
</
script
>
<
style
>
.__nuxt-error-page
{
padding
:
1rem
;
background
:
#F7F8FB
;
color
:
#47494E
;
text-align
:
center
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
flex-direction
:
column
;
font-family
:
sans-serif
;
font-weight
:
100
!important
;
-ms-text-size-adjust
:
100%
;
-webkit-text-size-adjust
:
100%
;
-webkit-font-smoothing
:
antialiased
;
position
:
absolute
;
top
:
0
;
left
:
0
;
right
:
0
;
bottom
:
0
;
}
.__nuxt-error-page
.error
{
max-width
:
450px
;
}
.__nuxt-error-page
.title
{
font-size
:
1.5rem
;
margin-top
:
15px
;
color
:
#47494E
;
margin-bottom
:
8px
;
}
.__nuxt-error-page
.description
{
color
:
#7F828B
;
line-height
:
21px
;
margin-bottom
:
10px
;
}
.__nuxt-error-page
a
{
color
:
#7F828B
!important
;
text-decoration
:
none
;
}
.__nuxt-error-page
.logo
{
position
:
fixed
;
left
:
12px
;
bottom
:
12px
;
}
</
style
>
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/components/nuxt-link.client.js
0 → 100644
View file @
fabfd8a3
import
Vue
from
'
vue
'
const
requestIdleCallback
=
window
.
requestIdleCallback
||
function
(
cb
)
{
const
start
=
Date
.
now
()
return
setTimeout
(
function
()
{
cb
({
didTimeout
:
false
,
timeRemaining
:
()
=>
Math
.
max
(
0
,
50
-
(
Date
.
now
()
-
start
))
})
},
1
)
}
const
cancelIdleCallback
=
window
.
cancelIdleCallback
||
function
(
id
)
{
clearTimeout
(
id
)
}
const
observer
=
window
.
IntersectionObserver
&&
new
window
.
IntersectionObserver
((
entries
)
=>
{
entries
.
forEach
(({
intersectionRatio
,
target
:
link
})
=>
{
if
(
intersectionRatio
<=
0
)
{
return
}
link
.
__prefetch
()
})
})
export
default
{
name
:
'
NuxtLink
'
,
extends
:
Vue
.
component
(
'
RouterLink
'
),
props
:
{
prefetch
:
{
type
:
Boolean
,
default
:
true
},
noPrefetch
:
{
type
:
Boolean
,
default
:
false
}
},
mounted
()
{
if
(
this
.
prefetch
&&
!
this
.
noPrefetch
)
{
this
.
handleId
=
requestIdleCallback
(
this
.
observe
,
{
timeout
:
2
e3
})
}
},
beforeDestroy
()
{
cancelIdleCallback
(
this
.
handleId
)
if
(
this
.
__observed
)
{
observer
.
unobserve
(
this
.
$el
)
delete
this
.
$el
.
__prefetch
}
},
methods
:
{
observe
()
{
// If no IntersectionObserver, avoid prefetching
if
(
!
observer
)
{
return
}
// Add to observer
if
(
this
.
shouldPrefetch
())
{
this
.
$el
.
__prefetch
=
this
.
prefetchLink
.
bind
(
this
)
observer
.
observe
(
this
.
$el
)
this
.
__observed
=
true
}
},
shouldPrefetch
()
{
return
this
.
getPrefetchComponents
().
length
>
0
},
canPrefetch
()
{
const
conn
=
navigator
.
connection
const
hasBadConnection
=
this
.
$nuxt
.
isOffline
||
(
conn
&&
((
conn
.
effectiveType
||
''
).
includes
(
'
2g
'
)
||
conn
.
saveData
))
return
!
hasBadConnection
},
getPrefetchComponents
()
{
const
ref
=
this
.
$router
.
resolve
(
this
.
to
,
this
.
$route
,
this
.
append
)
const
Components
=
ref
.
resolved
.
matched
.
map
(
r
=>
r
.
components
.
default
)
return
Components
.
filter
(
Component
=>
typeof
Component
===
'
function
'
&&
!
Component
.
options
&&
!
Component
.
__prefetched
)
},
prefetchLink
()
{
if
(
!
this
.
canPrefetch
())
{
return
}
// Stop observing this link (in case of internet connection changes)
observer
.
unobserve
(
this
.
$el
)
const
Components
=
this
.
getPrefetchComponents
()
for
(
const
Component
of
Components
)
{
const
componentOrPromise
=
Component
()
if
(
componentOrPromise
instanceof
Promise
)
{
componentOrPromise
.
catch
(()
=>
{})
}
Component
.
__prefetched
=
true
}
}
}
}
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/components/nuxt-link.server.js
0 → 100644
View file @
fabfd8a3
import
Vue
from
'
vue
'
export
default
{
name
:
'
NuxtLink
'
,
extends
:
Vue
.
component
(
'
RouterLink
'
),
props
:
{
prefetch
:
{
type
:
Boolean
,
default
:
true
},
noPrefetch
:
{
type
:
Boolean
,
default
:
false
}
}
}
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/components/nuxt-loading.vue
0 → 100644
View file @
fabfd8a3
<
script
>
export
default
{
name
:
'
NuxtLoading
'
,
data
()
{
return
{
percent
:
0
,
show
:
false
,
canSucceed
:
true
,
reversed
:
false
,
skipTimerCount
:
0
,
rtl
:
false
,
throttle
:
200
,
duration
:
5000
,
continuous
:
false
}
},
computed
:
{
left
()
{
if
(
!
this
.
continuous
&&
!
this
.
rtl
)
{
return
false
}
return
this
.
rtl
?
(
this
.
reversed
?
'
0px
'
:
'
auto
'
)
:
(
!
this
.
reversed
?
'
0px
'
:
'
auto
'
)
}
},
beforeDestroy
()
{
this
.
clear
()
},
methods
:
{
clear
()
{
clearInterval
(
this
.
_timer
)
clearTimeout
(
this
.
_throttle
)
this
.
_timer
=
null
},
start
()
{
this
.
clear
()
this
.
percent
=
0
this
.
reversed
=
false
this
.
skipTimerCount
=
0
this
.
canSucceed
=
true
if
(
this
.
throttle
)
{
this
.
_throttle
=
setTimeout
(()
=>
this
.
startTimer
(),
this
.
throttle
)
}
else
{
this
.
startTimer
()
}
return
this
},
set
(
num
)
{
this
.
show
=
true
this
.
canSucceed
=
true
this
.
percent
=
Math
.
min
(
100
,
Math
.
max
(
0
,
Math
.
floor
(
num
)))
return
this
},
get
()
{
return
this
.
percent
},
increase
(
num
)
{
this
.
percent
=
Math
.
min
(
100
,
Math
.
floor
(
this
.
percent
+
num
))
return
this
},
decrease
(
num
)
{
this
.
percent
=
Math
.
max
(
0
,
Math
.
floor
(
this
.
percent
-
num
))
return
this
},
pause
()
{
clearInterval
(
this
.
_timer
)
return
this
},
resume
()
{
this
.
startTimer
()
return
this
},
finish
()
{
this
.
percent
=
this
.
reversed
?
0
:
100
this
.
hide
()
return
this
},
hide
()
{
this
.
clear
()
setTimeout
(()
=>
{
this
.
show
=
false
this
.
$nextTick
(()
=>
{
this
.
percent
=
0
this
.
reversed
=
false
})
},
500
)
return
this
},
fail
(
error
)
{
this
.
canSucceed
=
false
return
this
},
startTimer
()
{
if
(
!
this
.
show
)
{
this
.
show
=
true
}
if
(
typeof
this
.
_cut
===
'
undefined
'
)
{
this
.
_cut
=
10000
/
Math
.
floor
(
this
.
duration
)
}
this
.
_timer
=
setInterval
(()
=>
{
/**
* When reversing direction skip one timers
* so 0, 100 are displayed for two iterations
* also disable css width transitioning
* which otherwise interferes and shows
* a jojo effect
*/
if
(
this
.
skipTimerCount
>
0
)
{
this
.
skipTimerCount
--
return
}
if
(
this
.
reversed
)
{
this
.
decrease
(
this
.
_cut
)
}
else
{
this
.
increase
(
this
.
_cut
)
}
if
(
this
.
continuous
)
{
if
(
this
.
percent
>=
100
)
{
this
.
skipTimerCount
=
1
this
.
reversed
=
!
this
.
reversed
}
else
if
(
this
.
percent
<=
0
)
{
this
.
skipTimerCount
=
1
this
.
reversed
=
!
this
.
reversed
}
}
},
100
)
}
},
render
(
h
)
{
let
el
=
h
(
false
)
if
(
this
.
show
)
{
el
=
h
(
'
div
'
,
{
staticClass
:
'
nuxt-progress
'
,
class
:
{
'
nuxt-progress-notransition
'
:
this
.
skipTimerCount
>
0
,
'
nuxt-progress-failed
'
:
!
this
.
canSucceed
},
style
:
{
width
:
this
.
percent
+
'
%
'
,
left
:
this
.
left
}
})
}
return
el
}
}
</
script
>
<
style
>
.nuxt-progress
{
position
:
fixed
;
top
:
0px
;
left
:
0px
;
right
:
0px
;
height
:
2px
;
width
:
0%
;
opacity
:
1
;
transition
:
width
0.1s
,
opacity
0.4s
;
background-color
:
#
Hex
2196
F3
;
z-index
:
999999
;
}
.nuxt-progress.nuxt-progress-notransition
{
transition
:
none
;
}
.nuxt-progress-failed
{
background-color
:
red
;
}
</
style
>
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/components/nuxt.js
0 → 100644
View file @
fabfd8a3
import
Vue
from
'
vue
'
import
{
compile
}
from
'
../utils
'
import
NuxtError
from
'
./nuxt-error.vue
'
import
NuxtChild
from
'
./nuxt-child
'
export
default
{
name
:
'
Nuxt
'
,
components
:
{
NuxtChild
,
NuxtError
},
props
:
{
nuxtChildKey
:
{
type
:
String
,
default
:
undefined
},
keepAlive
:
Boolean
,
keepAliveProps
:
{
type
:
Object
,
default
:
undefined
},
name
:
{
type
:
String
,
default
:
'
default
'
}
},
errorCaptured
(
error
)
{
// if we receive and error while showing the NuxtError component
// capture the error and force an immediate update so we re-render
// without the NuxtError component
if
(
this
.
displayingNuxtError
)
{
this
.
errorFromNuxtError
=
error
this
.
$forceUpdate
()
}
},
computed
:
{
routerViewKey
()
{
// If nuxtChildKey prop is given or current route has children
if
(
typeof
this
.
nuxtChildKey
!==
'
undefined
'
||
this
.
$route
.
matched
.
length
>
1
)
{
return
this
.
nuxtChildKey
||
compile
(
this
.
$route
.
matched
[
0
].
path
)(
this
.
$route
.
params
)
}
const
[
matchedRoute
]
=
this
.
$route
.
matched
if
(
!
matchedRoute
)
{
return
this
.
$route
.
path
}
const
Component
=
matchedRoute
.
components
.
default
if
(
Component
&&
Component
.
options
)
{
const
{
options
}
=
Component
if
(
options
.
key
)
{
return
(
typeof
options
.
key
===
'
function
'
?
options
.
key
(
this
.
$route
)
:
options
.
key
)
}
}
const
strict
=
/
\/
$/
.
test
(
matchedRoute
.
path
)
return
strict
?
this
.
$route
.
path
:
this
.
$route
.
path
.
replace
(
/
\/
$/
,
''
)
}
},
beforeCreate
()
{
Vue
.
util
.
defineReactive
(
this
,
'
nuxt
'
,
this
.
$root
.
$options
.
nuxt
)
},
render
(
h
)
{
// if there is no error
if
(
!
this
.
nuxt
.
err
)
{
// Directly return nuxt child
return
h
(
'
NuxtChild
'
,
{
key
:
this
.
routerViewKey
,
props
:
this
.
$props
})
}
// if an error occurred within NuxtError show a simple
// error message instead to prevent looping
if
(
this
.
errorFromNuxtError
)
{
this
.
$nextTick
(()
=>
(
this
.
errorFromNuxtError
=
false
))
return
h
(
'
div
'
,
{},
[
h
(
'
h2
'
,
'
An error occurred while showing the error page
'
),
h
(
'
p
'
,
'
Unfortunately an error occurred and while showing the error page another error occurred
'
),
h
(
'
p
'
,
`Error details:
${
this
.
errorFromNuxtError
.
toString
()}
`
),
h
(
'
nuxt-link
'
,
{
props
:
{
to
:
'
/
'
}
},
'
Go back to home
'
)
])
}
// track if we are showing the NuxtError component
this
.
displayingNuxtError
=
true
this
.
$nextTick
(()
=>
(
this
.
displayingNuxtError
=
false
))
return
h
(
NuxtError
,
{
props
:
{
error
:
this
.
nuxt
.
err
}
})
}
}
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/empty.js
0 → 100644
View file @
fabfd8a3
// This file is intentionally left empty for noop aliases
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/index.js
0 → 100644
View file @
fabfd8a3
import
Vue
from
'
vue
'
import
Vuex
from
'
vuex
'
import
Meta
from
'
vue-meta
'
import
ClientOnly
from
'
vue-client-only
'
import
NoSsr
from
'
vue-no-ssr
'
import
{
createRouter
}
from
'
./router.js
'
import
NuxtChild
from
'
./components/nuxt-child.js
'
import
NuxtError
from
'
./components/nuxt-error.vue
'
import
Nuxt
from
'
./components/nuxt.js
'
import
App
from
'
./App.js
'
import
{
setContext
,
getLocation
,
getRouteData
,
normalizeError
}
from
'
./utils
'
import
{
createStore
}
from
'
./store.js
'
/* Plugins */
import
nuxt_plugin_axios_be6e51ce
from
'
nuxt_plugin_axios_be6e51ce
'
// Source: .\\axios.js (mode: 'all')
import
nuxt_plugin_bootstrap_29b38afa
from
'
nuxt_plugin_bootstrap_29b38afa
'
// Source: ..\\plugins\\bootstrap (mode: 'all')
import
nuxt_plugin_googlemaps_c54ce192
from
'
nuxt_plugin_googlemaps_c54ce192
'
// Source: ..\\plugins\\google-maps (mode: 'all')
import
nuxt_plugin_vuelazyload_e6901296
from
'
nuxt_plugin_vuelazyload_e6901296
'
// Source: ..\\plugins\\vue-lazyload (mode: 'all')
import
nuxt_plugin_aos_caeae0de
from
'
nuxt_plugin_aos_caeae0de
'
// Source: ..\\plugins\\aos (mode: 'client')
import
nuxt_plugin_chart_223dba6a
from
'
nuxt_plugin_chart_223dba6a
'
// Source: ..\\plugins\\chart (mode: 'client')
import
nuxt_plugin_prism_22f995cd
from
'
nuxt_plugin_prism_22f995cd
'
// Source: ..\\plugins\\prism (mode: 'client')
// Component: <ClientOnly>
Vue
.
component
(
ClientOnly
.
name
,
ClientOnly
)
// TODO: Remove in Nuxt 3: <NoSsr>
Vue
.
component
(
NoSsr
.
name
,
{
...
NoSsr
,
render
(
h
,
ctx
)
{
if
(
process
.
client
&&
!
NoSsr
.
_warned
)
{
NoSsr
.
_warned
=
true
console
.
warn
(
'
<no-ssr> has been deprecated and will be removed in Nuxt 3, please use <client-only> instead
'
)
}
return
NoSsr
.
render
(
h
,
ctx
)
}
})
// Component: <NuxtChild>
Vue
.
component
(
NuxtChild
.
name
,
NuxtChild
)
Vue
.
component
(
'
NChild
'
,
NuxtChild
)
// Component NuxtLink is imported in server.js or client.js
// Component: <Nuxt>
Vue
.
component
(
Nuxt
.
name
,
Nuxt
)
Vue
.
use
(
Meta
,
{
"
keyName
"
:
"
head
"
,
"
attribute
"
:
"
data-n-head
"
,
"
ssrAttribute
"
:
"
data-n-head-ssr
"
,
"
tagIDKeyName
"
:
"
hid
"
})
const
defaultTransition
=
{
"
name
"
:
"
page
"
,
"
mode
"
:
"
out-in
"
,
"
appear
"
:
false
,
"
appearClass
"
:
"
appear
"
,
"
appearActiveClass
"
:
"
appear-active
"
,
"
appearToClass
"
:
"
appear-to
"
}
const
originalRegisterModule
=
Vuex
.
Store
.
prototype
.
registerModule
const
baseStoreOptions
=
{
preserveState
:
process
.
client
}
function
registerModule
(
path
,
rawModule
,
options
=
{})
{
return
originalRegisterModule
.
call
(
this
,
path
,
rawModule
,
{
...
baseStoreOptions
,
...
options
})
}
async
function
createApp
(
ssrContext
,
config
=
{})
{
const
router
=
await
createRouter
(
ssrContext
)
const
store
=
createStore
(
ssrContext
)
// Add this.$router into store actions/mutations
store
.
$router
=
router
// Fix SSR caveat https://github.com/nuxt/nuxt.js/issues/3757#issuecomment-414689141
store
.
registerModule
=
registerModule
// Create Root instance
// here we inject the router and store to all child components,
// making them available everywhere as `this.$router` and `this.$store`.
const
app
=
{
head
:
{
"
title
"
:
"
nuxt-demo
"
,
"
meta
"
:[{
"
charset
"
:
"
utf-8
"
},{
"
name
"
:
"
viewport
"
,
"
content
"
:
"
width=device-width, initial-scale=1
"
},{
"
hid
"
:
"
description
"
,
"
name
"
:
"
description
"
,
"
content
"
:
"
Nuxt.js project
"
}],
"
link
"
:[{
"
rel
"
:
"
icon
"
,
"
type
"
:
"
image
\
u002Fx-icon
"
,
"
href
"
:
"
\
u002Ffavicon.ico
"
},{
"
rel
"
:
"
stylesheet
"
,
"
href
"
:
"
https:
\
u002F
\
u002Ffonts.googleapis.com
\
u002Fcss?family=Fira+Mono|Fira+Sans:400,600&display=swap
"
}],
"
script
"
:[{
"
src
"
:
"
https:
\
u002F
\
u002Funpkg.com
\
u002Fionicons
\
u002Fdist
\
u002Fionicons.js
"
,
"
body
"
:
true
}],
"
style
"
:[]},
store
,
router
,
nuxt
:
{
defaultTransition
,
transitions
:
[
defaultTransition
],
setTransitions
(
transitions
)
{
if
(
!
Array
.
isArray
(
transitions
))
{
transitions
=
[
transitions
]
}
transitions
=
transitions
.
map
((
transition
)
=>
{
if
(
!
transition
)
{
transition
=
defaultTransition
}
else
if
(
typeof
transition
===
'
string
'
)
{
transition
=
Object
.
assign
({},
defaultTransition
,
{
name
:
transition
})
}
else
{
transition
=
Object
.
assign
({},
defaultTransition
,
transition
)
}
return
transition
})
this
.
$options
.
nuxt
.
transitions
=
transitions
return
transitions
},
err
:
null
,
dateErr
:
null
,
error
(
err
)
{
err
=
err
||
null
app
.
context
.
_errored
=
Boolean
(
err
)
err
=
err
?
normalizeError
(
err
)
:
null
let
nuxt
=
app
.
nuxt
// to work with @vue/composition-api, see https://github.com/nuxt/nuxt.js/issues/6517#issuecomment-573280207
if
(
this
)
{
nuxt
=
this
.
nuxt
||
this
.
$options
.
nuxt
}
nuxt
.
dateErr
=
Date
.
now
()
nuxt
.
err
=
err
// Used in src/server.js
if
(
ssrContext
)
{
ssrContext
.
nuxt
.
error
=
err
}
return
err
}
},
...
App
}
// Make app available into store via this.app
store
.
app
=
app
const
next
=
ssrContext
?
ssrContext
.
next
:
location
=>
app
.
router
.
push
(
location
)
// Resolve route
let
route
if
(
ssrContext
)
{
route
=
router
.
resolve
(
ssrContext
.
url
).
route
}
else
{
const
path
=
getLocation
(
router
.
options
.
base
,
router
.
options
.
mode
)
route
=
router
.
resolve
(
path
).
route
}
// Set context to app.context
await
setContext
(
app
,
{
store
,
route
,
next
,
error
:
app
.
nuxt
.
error
.
bind
(
app
),
payload
:
ssrContext
?
ssrContext
.
payload
:
undefined
,
req
:
ssrContext
?
ssrContext
.
req
:
undefined
,
res
:
ssrContext
?
ssrContext
.
res
:
undefined
,
beforeRenderFns
:
ssrContext
?
ssrContext
.
beforeRenderFns
:
undefined
,
ssrContext
})
function
inject
(
key
,
value
)
{
if
(
!
key
)
{
throw
new
Error
(
'
inject(key, value) has no key provided
'
)
}
if
(
value
===
undefined
)
{
throw
new
Error
(
`inject('
${
key
}
', value) has no value provided`
)
}
key
=
'
$
'
+
key
// Add into app
app
[
key
]
=
value
// Add into context
if
(
!
app
.
context
[
key
])
{
app
.
context
[
key
]
=
value
}
// Add into store
store
[
key
]
=
app
[
key
]
// Check if plugin not already installed
const
installKey
=
'
__nuxt_
'
+
key
+
'
_installed__
'
if
(
Vue
[
installKey
])
{
return
}
Vue
[
installKey
]
=
true
// Call Vue.use() to install the plugin into vm
Vue
.
use
(()
=>
{
if
(
!
Object
.
prototype
.
hasOwnProperty
.
call
(
Vue
.
prototype
,
key
))
{
Object
.
defineProperty
(
Vue
.
prototype
,
key
,
{
get
()
{
return
this
.
$root
.
$options
[
key
]
}
})
}
})
}
// Inject runtime config as $config
inject
(
'
config
'
,
config
)
if
(
process
.
client
)
{
// Replace store state before plugins execution
if
(
window
.
__NUXT__
&&
window
.
__NUXT__
.
state
)
{
store
.
replaceState
(
window
.
__NUXT__
.
state
)
}
}
// Add enablePreview(previewData = {}) in context for plugins
if
(
process
.
static
&&
process
.
client
)
{
app
.
context
.
enablePreview
=
function
(
previewData
=
{})
{
app
.
previewData
=
Object
.
assign
({},
previewData
)
inject
(
'
preview
'
,
previewData
)
}
}
// Plugin execution
if
(
typeof
nuxt_plugin_axios_be6e51ce
===
'
function
'
)
{
await
nuxt_plugin_axios_be6e51ce
(
app
.
context
,
inject
)
}
if
(
typeof
nuxt_plugin_bootstrap_29b38afa
===
'
function
'
)
{
await
nuxt_plugin_bootstrap_29b38afa
(
app
.
context
,
inject
)
}
if
(
typeof
nuxt_plugin_googlemaps_c54ce192
===
'
function
'
)
{
await
nuxt_plugin_googlemaps_c54ce192
(
app
.
context
,
inject
)
}
if
(
typeof
nuxt_plugin_vuelazyload_e6901296
===
'
function
'
)
{
await
nuxt_plugin_vuelazyload_e6901296
(
app
.
context
,
inject
)
}
if
(
process
.
client
&&
typeof
nuxt_plugin_aos_caeae0de
===
'
function
'
)
{
await
nuxt_plugin_aos_caeae0de
(
app
.
context
,
inject
)
}
if
(
process
.
client
&&
typeof
nuxt_plugin_chart_223dba6a
===
'
function
'
)
{
await
nuxt_plugin_chart_223dba6a
(
app
.
context
,
inject
)
}
if
(
process
.
client
&&
typeof
nuxt_plugin_prism_22f995cd
===
'
function
'
)
{
await
nuxt_plugin_prism_22f995cd
(
app
.
context
,
inject
)
}
// Lock enablePreview in context
if
(
process
.
static
&&
process
.
client
)
{
app
.
context
.
enablePreview
=
function
()
{
console
.
warn
(
'
You cannot call enablePreview() outside a plugin.
'
)
}
}
// If server-side, wait for async component to be resolved first
if
(
process
.
server
&&
ssrContext
&&
ssrContext
.
url
)
{
await
new
Promise
((
resolve
,
reject
)
=>
{
router
.
push
(
ssrContext
.
url
,
resolve
,
(
err
)
=>
{
// https://github.com/vuejs/vue-router/blob/v3.4.3/src/util/errors.js
if
(
!
err
.
_isRouter
)
return
reject
(
err
)
if
(
err
.
type
!==
2
/* NavigationFailureType.redirected */
)
return
resolve
()
// navigated to a different route in router guard
const
unregister
=
router
.
afterEach
(
async
(
to
,
from
)
=>
{
ssrContext
.
url
=
to
.
fullPath
app
.
context
.
route
=
await
getRouteData
(
to
)
app
.
context
.
params
=
to
.
params
||
{}
app
.
context
.
query
=
to
.
query
||
{}
unregister
()
resolve
()
})
})
})
}
return
{
store
,
app
,
router
}
}
export
{
createApp
,
NuxtError
}
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/jsonp.js
0 → 100644
View file @
fabfd8a3
const
chunks
=
{}
// chunkId => exports
const
chunksInstalling
=
{}
// chunkId => Promise
const
failedChunks
=
{}
function
importChunk
(
chunkId
,
src
)
{
// Already installed
if
(
chunks
[
chunkId
])
{
return
Promise
.
resolve
(
chunks
[
chunkId
])
}
// Failed loading
if
(
failedChunks
[
chunkId
])
{
return
Promise
.
reject
(
failedChunks
[
chunkId
])
}
// Installing
if
(
chunksInstalling
[
chunkId
])
{
return
chunksInstalling
[
chunkId
]
}
// Set a promise in chunk cache
let
resolve
,
reject
const
promise
=
chunksInstalling
[
chunkId
]
=
new
Promise
((
_resolve
,
_reject
)
=>
{
resolve
=
_resolve
reject
=
_reject
})
// Clear chunk data from cache
delete
chunks
[
chunkId
]
// Start chunk loading
const
script
=
document
.
createElement
(
'
script
'
)
script
.
charset
=
'
utf-8
'
script
.
timeout
=
120
script
.
src
=
src
let
timeout
// Create error before stack unwound to get useful stacktrace later
const
error
=
new
Error
()
// Complete handlers
const
onScriptComplete
=
script
.
onerror
=
script
.
onload
=
(
event
)
=>
{
// Cleanups
clearTimeout
(
timeout
)
delete
chunksInstalling
[
chunkId
]
// Avoid mem leaks in IE
script
.
onerror
=
script
.
onload
=
null
// Verify chunk is loaded
if
(
chunks
[
chunkId
])
{
return
resolve
(
chunks
[
chunkId
])
}
// Something bad happened
const
errorType
=
event
&&
(
event
.
type
===
'
load
'
?
'
missing
'
:
event
.
type
)
const
realSrc
=
event
&&
event
.
target
&&
event
.
target
.
src
error
.
message
=
'
Loading chunk
'
+
chunkId
+
'
failed.
\n
(
'
+
errorType
+
'
:
'
+
realSrc
+
'
)
'
error
.
name
=
'
ChunkLoadError
'
error
.
type
=
errorType
error
.
request
=
realSrc
failedChunks
[
chunkId
]
=
error
reject
(
error
)
}
// Timeout
timeout
=
setTimeout
(()
=>
{
onScriptComplete
({
type
:
'
timeout
'
,
target
:
script
})
},
120000
)
// Append script
document
.
head
.
appendChild
(
script
)
// Return promise
return
promise
}
window
.
__NUXT_JSONP__
=
function
(
chunkId
,
exports
)
{
chunks
[
chunkId
]
=
exports
}
window
.
__NUXT_JSONP_CACHE__
=
chunks
window
.
__NUXT_IMPORT__
=
importChunk
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/loading.html
0 → 100644
View file @
fabfd8a3
<style>
#nuxt-loading
{
background
:
white
;
visibility
:
hidden
;
opacity
:
0
;
position
:
absolute
;
left
:
0
;
right
:
0
;
top
:
0
;
bottom
:
0
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
flex-direction
:
column
;
animation
:
nuxtLoadingIn
10s
ease
;
-webkit-animation
:
nuxtLoadingIn
10s
ease
;
animation-fill-mode
:
forwards
;
overflow
:
hidden
;
}
@keyframes
nuxtLoadingIn
{
0
%
{
visibility
:
hidden
;
opacity
:
0
;
}
20
%
{
visibility
:
visible
;
opacity
:
0
;
}
100
%
{
visibility
:
visible
;
opacity
:
1
;
}
}
@-webkit-keyframes
nuxtLoadingIn
{
0
%
{
visibility
:
hidden
;
opacity
:
0
;
}
20
%
{
visibility
:
visible
;
opacity
:
0
;
}
100
%
{
visibility
:
visible
;
opacity
:
1
;
}
}
#nuxt-loading
>
div
,
#nuxt-loading
>
div
:after
{
border-radius
:
50%
;
width
:
5rem
;
height
:
5rem
;
}
#nuxt-loading
>
div
{
font-size
:
10px
;
position
:
relative
;
text-indent
:
-9999em
;
border
:
.5rem
solid
#F5F5F5
;
border-left
:
.5rem
solid
#
Hex
2196
F3
;
-webkit-transform
:
translateZ
(
0
);
-ms-transform
:
translateZ
(
0
);
transform
:
translateZ
(
0
);
-webkit-animation
:
nuxtLoading
1.1s
infinite
linear
;
animation
:
nuxtLoading
1.1s
infinite
linear
;
}
#nuxt-loading
.error
>
div
{
border-left
:
.5rem
solid
#ff4500
;
animation-duration
:
5s
;
}
@-webkit-keyframes
nuxtLoading
{
0
%
{
-webkit-transform
:
rotate
(
0deg
);
transform
:
rotate
(
0deg
);
}
100
%
{
-webkit-transform
:
rotate
(
360deg
);
transform
:
rotate
(
360deg
);
}
}
@keyframes
nuxtLoading
{
0
%
{
-webkit-transform
:
rotate
(
0deg
);
transform
:
rotate
(
0deg
);
}
100
%
{
-webkit-transform
:
rotate
(
360deg
);
transform
:
rotate
(
360deg
);
}
}
</style>
<script>
window
.
addEventListener
(
'
error
'
,
function
()
{
var
e
=
document
.
getElementById
(
'
nuxt-loading
'
);
if
(
e
)
{
e
.
className
+=
'
error
'
;
}
});
</script>
<div
id=
"nuxt-loading"
aria-live=
"polite"
role=
"status"
><div>
Loading...
</div></div>
<!-- https://projects.lukehaas.me/css-loaders -->
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/middleware.js
0 → 100644
View file @
fabfd8a3
const
middleware
=
{}
export
default
middleware
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/mixins/fetch.client.js
0 → 100644
View file @
fabfd8a3
import
Vue
from
'
vue
'
import
{
hasFetch
,
normalizeError
,
addLifecycleHook
}
from
'
../utils
'
const
isSsrHydration
=
(
vm
)
=>
vm
.
$vnode
&&
vm
.
$vnode
.
elm
&&
vm
.
$vnode
.
elm
.
dataset
&&
vm
.
$vnode
.
elm
.
dataset
.
fetchKey
const
nuxtState
=
window
.
__NUXT__
export
default
{
beforeCreate
()
{
if
(
!
hasFetch
(
this
))
{
return
}
this
.
_fetchDelay
=
typeof
this
.
$options
.
fetchDelay
===
'
number
'
?
this
.
$options
.
fetchDelay
:
200
Vue
.
util
.
defineReactive
(
this
,
'
$fetchState
'
,
{
pending
:
false
,
error
:
null
,
timestamp
:
Date
.
now
()
})
this
.
$fetch
=
$fetch
.
bind
(
this
)
addLifecycleHook
(
this
,
'
created
'
,
created
)
addLifecycleHook
(
this
,
'
beforeMount
'
,
beforeMount
)
}
}
function
beforeMount
()
{
if
(
!
this
.
_hydrated
)
{
return
this
.
$fetch
()
}
}
function
created
()
{
if
(
!
isSsrHydration
(
this
))
{
return
}
// Hydrate component
this
.
_hydrated
=
true
this
.
_fetchKey
=
+
this
.
$vnode
.
elm
.
dataset
.
fetchKey
const
data
=
nuxtState
.
fetch
[
this
.
_fetchKey
]
// If fetch error
if
(
data
&&
data
.
_error
)
{
this
.
$fetchState
.
error
=
data
.
_error
return
}
// Merge data
for
(
const
key
in
data
)
{
Vue
.
set
(
this
.
$data
,
key
,
data
[
key
])
}
}
function
$fetch
()
{
if
(
!
this
.
_fetchPromise
)
{
this
.
_fetchPromise
=
$_fetch
.
call
(
this
)
.
then
(()
=>
{
delete
this
.
_fetchPromise
})
}
return
this
.
_fetchPromise
}
async
function
$_fetch
()
{
this
.
$nuxt
.
nbFetching
++
this
.
$fetchState
.
pending
=
true
this
.
$fetchState
.
error
=
null
this
.
_hydrated
=
false
let
error
=
null
const
startTime
=
Date
.
now
()
try
{
await
this
.
$options
.
fetch
.
call
(
this
)
}
catch
(
err
)
{
if
(
process
.
dev
)
{
console
.
error
(
'
Error in fetch():
'
,
err
)
}
error
=
normalizeError
(
err
)
}
const
delayLeft
=
this
.
_fetchDelay
-
(
Date
.
now
()
-
startTime
)
if
(
delayLeft
>
0
)
{
await
new
Promise
(
resolve
=>
setTimeout
(
resolve
,
delayLeft
))
}
this
.
$fetchState
.
error
=
error
this
.
$fetchState
.
pending
=
false
this
.
$fetchState
.
timestamp
=
Date
.
now
()
this
.
$nextTick
(()
=>
this
.
$nuxt
.
nbFetching
--
)
}
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/mixins/fetch.server.js
0 → 100644
View file @
fabfd8a3
import
Vue
from
'
vue
'
import
{
hasFetch
,
normalizeError
,
addLifecycleHook
}
from
'
../utils
'
async
function
serverPrefetch
()
{
if
(
!
this
.
_fetchOnServer
)
{
return
}
// Call and await on $fetch
try
{
await
this
.
$options
.
fetch
.
call
(
this
)
}
catch
(
err
)
{
if
(
process
.
dev
)
{
console
.
error
(
'
Error in fetch():
'
,
err
)
}
this
.
$fetchState
.
error
=
normalizeError
(
err
)
}
this
.
$fetchState
.
pending
=
false
// Define an ssrKey for hydration
this
.
_fetchKey
=
this
.
$ssrContext
.
nuxt
.
fetch
.
length
// Add data-fetch-key on parent element of Component
const
attrs
=
this
.
$vnode
.
data
.
attrs
=
this
.
$vnode
.
data
.
attrs
||
{}
attrs
[
'
data-fetch-key
'
]
=
this
.
_fetchKey
// Add to ssrContext for window.__NUXT__.fetch
this
.
$ssrContext
.
nuxt
.
fetch
.
push
(
this
.
$fetchState
.
error
?
{
_error
:
this
.
$fetchState
.
error
}
:
this
.
_data
)
}
export
default
{
created
()
{
if
(
!
hasFetch
(
this
))
{
return
}
if
(
typeof
this
.
$options
.
fetchOnServer
===
'
function
'
)
{
this
.
_fetchOnServer
=
this
.
$options
.
fetchOnServer
.
call
(
this
)
!==
false
}
else
{
this
.
_fetchOnServer
=
this
.
$options
.
fetchOnServer
!==
false
}
// Added for remove vue undefined warning while ssr
this
.
$fetch
=
()
=>
{}
// issue #8043
Vue
.
util
.
defineReactive
(
this
,
'
$fetchState
'
,
{
pending
:
true
,
error
:
null
,
timestamp
:
Date
.
now
()
})
addLifecycleHook
(
this
,
'
serverPrefetch
'
,
serverPrefetch
)
}
}
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/router.js
0 → 100644
View file @
fabfd8a3
import
Vue
from
'
vue
'
import
Router
from
'
vue-router
'
import
{
interopDefault
}
from
'
./utils
'
import
scrollBehavior
from
'
./router.scrollBehavior.js
'
const
_6fc83f74
=
()
=>
interopDefault
(
import
(
'
..
\\
pages
\\
aos.vue
'
/* webpackChunkName: "pages/aos" */
))
const
_df125522
=
()
=>
interopDefault
(
import
(
'
..
\\
pages
\\
bootstrap.vue
'
/* webpackChunkName: "pages/bootstrap" */
))
const
_c9f522d6
=
()
=>
interopDefault
(
import
(
'
..
\\
pages
\\
dashboard.vue
'
/* webpackChunkName: "pages/dashboard" */
))
const
_5187fc8f
=
()
=>
interopDefault
(
import
(
'
..
\\
pages
\\
feedbacks.vue
'
/* webpackChunkName: "pages/feedbacks" */
))
const
_f07ea028
=
()
=>
interopDefault
(
import
(
'
..
\\
pages
\\
google-maps.vue
'
/* webpackChunkName: "pages/google-maps" */
))
const
_e75be5be
=
()
=>
interopDefault
(
import
(
'
..
\\
pages
\\
ionicons.vue
'
/* webpackChunkName: "pages/ionicons" */
))
const
_674a1fb8
=
()
=>
interopDefault
(
import
(
'
..
\\
pages
\\
postcss.vue
'
/* webpackChunkName: "pages/postcss" */
))
const
_7c6c3542
=
()
=>
interopDefault
(
import
(
'
..
\\
pages
\\
prism.vue
'
/* webpackChunkName: "pages/prism" */
))
const
_3f8b1f30
=
()
=>
interopDefault
(
import
(
'
..
\\
pages
\\
suggestions.vue
'
/* webpackChunkName: "pages/suggestions" */
))
const
_6b547ecd
=
()
=>
interopDefault
(
import
(
'
..
\\
pages
\\
TestAPISentiments.vue
'
/* webpackChunkName: "pages/TestAPISentiments" */
))
const
_34e41b96
=
()
=>
interopDefault
(
import
(
'
..
\\
pages
\\
TestAPISuggestions.vue
'
/* webpackChunkName: "pages/TestAPISuggestions" */
))
const
_264d98d0
=
()
=>
interopDefault
(
import
(
'
..
\\
pages
\\
vue-lazyload.vue
'
/* webpackChunkName: "pages/vue-lazyload" */
))
const
_2b670f7e
=
()
=>
interopDefault
(
import
(
'
..
\\
pages
\\
vuex.vue
'
/* webpackChunkName: "pages/vuex" */
))
const
_0cb2996a
=
()
=>
interopDefault
(
import
(
'
..
\\
pages
\\
vuex-axios.vue
'
/* webpackChunkName: "pages/vuex-axios" */
))
const
_a17f0b5a
=
()
=>
interopDefault
(
import
(
'
..
\\
pages
\\
index.vue
'
/* webpackChunkName: "pages/index" */
))
// TODO: remove in Nuxt 3
const
emptyFn
=
()
=>
{}
const
originalPush
=
Router
.
prototype
.
push
Router
.
prototype
.
push
=
function
push
(
location
,
onComplete
=
emptyFn
,
onAbort
)
{
return
originalPush
.
call
(
this
,
location
,
onComplete
,
onAbort
)
}
Vue
.
use
(
Router
)
export
const
routerOptions
=
{
mode
:
'
history
'
,
base
:
decodeURI
(
'
/
'
),
linkActiveClass
:
'
nuxt-link-active
'
,
linkExactActiveClass
:
'
nuxt-link-exact-active
'
,
scrollBehavior
,
routes
:
[{
path
:
"
/aos
"
,
component
:
_6fc83f74
,
name
:
"
aos
"
},
{
path
:
"
/bootstrap
"
,
component
:
_df125522
,
name
:
"
bootstrap
"
},
{
path
:
"
/dashboard
"
,
component
:
_c9f522d6
,
name
:
"
dashboard
"
},
{
path
:
"
/feedbacks
"
,
component
:
_5187fc8f
,
name
:
"
feedbacks
"
},
{
path
:
"
/google-maps
"
,
component
:
_f07ea028
,
name
:
"
google-maps
"
},
{
path
:
"
/ionicons
"
,
component
:
_e75be5be
,
name
:
"
ionicons
"
},
{
path
:
"
/postcss
"
,
component
:
_674a1fb8
,
name
:
"
postcss
"
},
{
path
:
"
/prism
"
,
component
:
_7c6c3542
,
name
:
"
prism
"
},
{
path
:
"
/suggestions
"
,
component
:
_3f8b1f30
,
name
:
"
suggestions
"
},
{
path
:
"
/TestAPISentiments
"
,
component
:
_6b547ecd
,
name
:
"
TestAPISentiments
"
},
{
path
:
"
/TestAPISuggestions
"
,
component
:
_34e41b96
,
name
:
"
TestAPISuggestions
"
},
{
path
:
"
/vue-lazyload
"
,
component
:
_264d98d0
,
name
:
"
vue-lazyload
"
},
{
path
:
"
/vuex
"
,
component
:
_2b670f7e
,
name
:
"
vuex
"
},
{
path
:
"
/vuex-axios
"
,
component
:
_0cb2996a
,
name
:
"
vuex-axios
"
},
{
path
:
"
/
"
,
component
:
_a17f0b5a
,
name
:
"
index
"
}],
fallback
:
false
}
export
function
createRouter
()
{
return
new
Router
(
routerOptions
)
}
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/router.scrollBehavior.js
0 → 100644
View file @
fabfd8a3
import
{
getMatchedComponents
}
from
'
./utils
'
if
(
process
.
client
)
{
if
(
'
scrollRestoration
'
in
window
.
history
)
{
window
.
history
.
scrollRestoration
=
'
manual
'
// reset scrollRestoration to auto when leaving page, allowing page reload
// and back-navigation from other pages to use the browser to restore the
// scrolling position.
window
.
addEventListener
(
'
beforeunload
'
,
()
=>
{
window
.
history
.
scrollRestoration
=
'
auto
'
})
// Setting scrollRestoration to manual again when returning to this page.
window
.
addEventListener
(
'
load
'
,
()
=>
{
window
.
history
.
scrollRestoration
=
'
manual
'
})
}
}
export
default
function
(
to
,
from
,
savedPosition
)
{
// If the returned position is falsy or an empty object, will retain current scroll position
let
position
=
false
const
Pages
=
getMatchedComponents
(
to
)
// Scroll to the top of the page if...
if
(
// One of the children set `scrollToTop`
Pages
.
some
(
Page
=>
Page
.
options
.
scrollToTop
)
||
// scrollToTop set in only page without children
(
Pages
.
length
<
2
&&
Pages
.
every
(
Page
=>
Page
.
options
.
scrollToTop
!==
false
))
)
{
position
=
{
x
:
0
,
y
:
0
}
}
// savedPosition is only available for popstate navigations (back button)
if
(
savedPosition
)
{
position
=
savedPosition
}
const
nuxt
=
window
.
$nuxt
if
(
// Route hash changes
(
to
.
path
===
from
.
path
&&
to
.
hash
!==
from
.
hash
)
||
// Initial load (vuejs/vue-router#3199)
to
===
from
)
{
nuxt
.
$nextTick
(()
=>
nuxt
.
$emit
(
'
triggerScroll
'
))
}
return
new
Promise
((
resolve
)
=>
{
// wait for the out transition to complete (if necessary)
nuxt
.
$once
(
'
triggerScroll
'
,
()
=>
{
// coords will be used if no selector is provided,
// or if the selector didn't match any element.
if
(
to
.
hash
)
{
let
hash
=
to
.
hash
// CSS.escape() is not supported with IE and Edge.
if
(
typeof
window
.
CSS
!==
'
undefined
'
&&
typeof
window
.
CSS
.
escape
!==
'
undefined
'
)
{
hash
=
'
#
'
+
window
.
CSS
.
escape
(
hash
.
substr
(
1
))
}
try
{
if
(
document
.
querySelector
(
hash
))
{
// scroll to anchor by returning the selector
position
=
{
selector
:
hash
}
}
}
catch
(
e
)
{
console
.
warn
(
'
Failed to save scroll position. Please add CSS.escape() polyfill (https://github.com/mathiasbynens/CSS.escape).
'
)
}
}
resolve
(
position
)
})
})
}
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/routes.json
0 → 100644
View file @
fabfd8a3
[
{
"name"
:
"aos"
,
"path"
:
"/aos"
,
"component"
:
"D:
\\\\
CDAP_V_NEW
\\\\
statistics
\\\\
examples
\\\\
nuxt-demo
\\\\
pages
\\\\
aos.vue"
,
"chunkName"
:
"pages/aos"
},
{
"name"
:
"bootstrap"
,
"path"
:
"/bootstrap"
,
"component"
:
"D:
\\\\
CDAP_V_NEW
\\\\
statistics
\\\\
examples
\\\\
nuxt-demo
\\\\
pages
\\\\
bootstrap.vue"
,
"chunkName"
:
"pages/bootstrap"
},
{
"name"
:
"dashboard"
,
"path"
:
"/dashboard"
,
"component"
:
"D:
\\\\
CDAP_V_NEW
\\\\
statistics
\\\\
examples
\\\\
nuxt-demo
\\\\
pages
\\\\
dashboard.vue"
,
"chunkName"
:
"pages/dashboard"
},
{
"name"
:
"feedbacks"
,
"path"
:
"/feedbacks"
,
"component"
:
"D:
\\\\
CDAP_V_NEW
\\\\
statistics
\\\\
examples
\\\\
nuxt-demo
\\\\
pages
\\\\
feedbacks.vue"
,
"chunkName"
:
"pages/feedbacks"
},
{
"name"
:
"google-maps"
,
"path"
:
"/google-maps"
,
"component"
:
"D:
\\\\
CDAP_V_NEW
\\\\
statistics
\\\\
examples
\\\\
nuxt-demo
\\\\
pages
\\\\
google-maps.vue"
,
"chunkName"
:
"pages/google-maps"
},
{
"name"
:
"ionicons"
,
"path"
:
"/ionicons"
,
"component"
:
"D:
\\\\
CDAP_V_NEW
\\\\
statistics
\\\\
examples
\\\\
nuxt-demo
\\\\
pages
\\\\
ionicons.vue"
,
"chunkName"
:
"pages/ionicons"
},
{
"name"
:
"postcss"
,
"path"
:
"/postcss"
,
"component"
:
"D:
\\\\
CDAP_V_NEW
\\\\
statistics
\\\\
examples
\\\\
nuxt-demo
\\\\
pages
\\\\
postcss.vue"
,
"chunkName"
:
"pages/postcss"
},
{
"name"
:
"prism"
,
"path"
:
"/prism"
,
"component"
:
"D:
\\\\
CDAP_V_NEW
\\\\
statistics
\\\\
examples
\\\\
nuxt-demo
\\\\
pages
\\\\
prism.vue"
,
"chunkName"
:
"pages/prism"
},
{
"name"
:
"suggestions"
,
"path"
:
"/suggestions"
,
"component"
:
"D:
\\\\
CDAP_V_NEW
\\\\
statistics
\\\\
examples
\\\\
nuxt-demo
\\\\
pages
\\\\
suggestions.vue"
,
"chunkName"
:
"pages/suggestions"
},
{
"name"
:
"TestAPISentiments"
,
"path"
:
"/TestAPISentiments"
,
"component"
:
"D:
\\\\
CDAP_V_NEW
\\\\
statistics
\\\\
examples
\\\\
nuxt-demo
\\\\
pages
\\\\
TestAPISentiments.vue"
,
"chunkName"
:
"pages/TestAPISentiments"
},
{
"name"
:
"TestAPISuggestions"
,
"path"
:
"/TestAPISuggestions"
,
"component"
:
"D:
\\\\
CDAP_V_NEW
\\\\
statistics
\\\\
examples
\\\\
nuxt-demo
\\\\
pages
\\\\
TestAPISuggestions.vue"
,
"chunkName"
:
"pages/TestAPISuggestions"
},
{
"name"
:
"vue-lazyload"
,
"path"
:
"/vue-lazyload"
,
"component"
:
"D:
\\\\
CDAP_V_NEW
\\\\
statistics
\\\\
examples
\\\\
nuxt-demo
\\\\
pages
\\\\
vue-lazyload.vue"
,
"chunkName"
:
"pages/vue-lazyload"
},
{
"name"
:
"vuex"
,
"path"
:
"/vuex"
,
"component"
:
"D:
\\\\
CDAP_V_NEW
\\\\
statistics
\\\\
examples
\\\\
nuxt-demo
\\\\
pages
\\\\
vuex.vue"
,
"chunkName"
:
"pages/vuex"
},
{
"name"
:
"vuex-axios"
,
"path"
:
"/vuex-axios"
,
"component"
:
"D:
\\\\
CDAP_V_NEW
\\\\
statistics
\\\\
examples
\\\\
nuxt-demo
\\\\
pages
\\\\
vuex-axios.vue"
,
"chunkName"
:
"pages/vuex-axios"
},
{
"name"
:
"index"
,
"path"
:
"/"
,
"component"
:
"D:
\\\\
CDAP_V_NEW
\\\\
statistics
\\\\
examples
\\\\
nuxt-demo
\\\\
pages
\\\\
index.vue"
,
"chunkName"
:
"pages/index"
}
]
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/server.js
0 → 100644
View file @
fabfd8a3
import
{
stringify
}
from
'
querystring
'
import
Vue
from
'
vue
'
import
fetch
from
'
node-fetch
'
import
middleware
from
'
./middleware.js
'
import
{
applyAsyncData
,
middlewareSeries
,
sanitizeComponent
,
getMatchedComponents
,
promisify
}
from
'
./utils.js
'
import
fetchMixin
from
'
./mixins/fetch.server
'
import
{
createApp
,
NuxtError
}
from
'
./index.js
'
import
NuxtLink
from
'
./components/nuxt-link.server.js
'
// should be included after ./index.js
// Update serverPrefetch strategy
Vue
.
config
.
optionMergeStrategies
.
serverPrefetch
=
Vue
.
config
.
optionMergeStrategies
.
created
// Fetch mixin
if
(
!
Vue
.
__nuxt__fetch__mixin__
)
{
Vue
.
mixin
(
fetchMixin
)
Vue
.
__nuxt__fetch__mixin__
=
true
}
// Component: <NuxtLink>
Vue
.
component
(
NuxtLink
.
name
,
NuxtLink
)
Vue
.
component
(
'
NLink
'
,
NuxtLink
)
if
(
!
global
.
fetch
)
{
global
.
fetch
=
fetch
}
const
noopApp
=
()
=>
new
Vue
({
render
:
h
=>
h
(
'
div
'
)
})
function
urlJoin
()
{
return
Array
.
prototype
.
slice
.
call
(
arguments
).
join
(
'
/
'
).
replace
(
/
\/
+/g
,
'
/
'
)
}
const
createNext
=
ssrContext
=>
(
opts
)
=>
{
// If static target, render on client-side
ssrContext
.
redirected
=
opts
if
(
ssrContext
.
target
===
'
static
'
||
!
ssrContext
.
res
)
{
ssrContext
.
nuxt
.
serverRendered
=
false
return
}
opts
.
query
=
stringify
(
opts
.
query
)
opts
.
path
=
opts
.
path
+
(
opts
.
query
?
'
?
'
+
opts
.
query
:
''
)
const
routerBase
=
'
/
'
if
(
!
opts
.
path
.
startsWith
(
'
http
'
)
&&
(
routerBase
!==
'
/
'
&&
!
opts
.
path
.
startsWith
(
routerBase
)))
{
opts
.
path
=
urlJoin
(
routerBase
,
opts
.
path
)
}
// Avoid loop redirect
if
(
opts
.
path
===
ssrContext
.
url
)
{
ssrContext
.
redirected
=
false
return
}
ssrContext
.
res
.
writeHead
(
opts
.
status
,
{
Location
:
opts
.
path
})
ssrContext
.
res
.
end
()
}
// This exported function will be called by `bundleRenderer`.
// This is where we perform data-prefetching to determine the
// state of our application before actually rendering it.
// Since data fetching is async, this function is expected to
// return a Promise that resolves to the app instance.
export
default
async
(
ssrContext
)
=>
{
// Create ssrContext.next for simulate next() of beforeEach() when wanted to redirect
ssrContext
.
redirected
=
false
ssrContext
.
next
=
createNext
(
ssrContext
)
// Used for beforeNuxtRender({ Components, nuxtState })
ssrContext
.
beforeRenderFns
=
[]
// Nuxt object (window.{{globals.context}}, defaults to window.__NUXT__)
ssrContext
.
nuxt
=
{
layout
:
'
default
'
,
data
:
[],
fetch
:
[],
error
:
null
,
state
:
null
,
serverRendered
:
true
,
routePath
:
''
}
// Remove query from url is static target
if
(
process
.
static
&&
ssrContext
.
url
)
{
ssrContext
.
url
=
ssrContext
.
url
.
split
(
'
?
'
)[
0
]
}
// Public runtime config
ssrContext
.
nuxt
.
config
=
ssrContext
.
runtimeConfig
.
public
// Create the app definition and the instance (created for each request)
const
{
app
,
router
,
store
}
=
await
createApp
(
ssrContext
,
{
...
ssrContext
.
runtimeConfig
.
public
,
...
ssrContext
.
runtimeConfig
.
private
})
const
_app
=
new
Vue
(
app
)
// Add ssr route path to nuxt context so we can account for page navigation between ssr and csr
ssrContext
.
nuxt
.
routePath
=
app
.
context
.
route
.
path
// Add meta infos (used in renderer.js)
ssrContext
.
meta
=
_app
.
$meta
()
// Keep asyncData for each matched component in ssrContext (used in app/utils.js via this.$ssrContext)
ssrContext
.
asyncData
=
{}
const
beforeRender
=
async
()
=>
{
// Call beforeNuxtRender() methods
await
Promise
.
all
(
ssrContext
.
beforeRenderFns
.
map
(
fn
=>
promisify
(
fn
,
{
Components
,
nuxtState
:
ssrContext
.
nuxt
})))
ssrContext
.
rendered
=
()
=>
{
// Add the state from the vuex store
ssrContext
.
nuxt
.
state
=
store
.
state
}
}
const
renderErrorPage
=
async
()
=>
{
// Don't server-render the page in static target
if
(
ssrContext
.
target
===
'
static
'
)
{
ssrContext
.
nuxt
.
serverRendered
=
false
}
// Load layout for error page
const
layout
=
(
NuxtError
.
options
||
NuxtError
).
layout
const
errLayout
=
typeof
layout
===
'
function
'
?
layout
.
call
(
NuxtError
,
app
.
context
)
:
layout
ssrContext
.
nuxt
.
layout
=
errLayout
||
'
default
'
await
_app
.
loadLayout
(
errLayout
)
_app
.
setLayout
(
errLayout
)
await
beforeRender
()
return
_app
}
const
render404Page
=
()
=>
{
app
.
context
.
error
({
statusCode
:
404
,
path
:
ssrContext
.
url
,
message
:
'
This page could not be found
'
})
return
renderErrorPage
()
}
const
s
=
Date
.
now
()
// Components are already resolved by setContext -> getRouteData (app/utils.js)
const
Components
=
getMatchedComponents
(
router
.
match
(
ssrContext
.
url
))
/*
** Dispatch store nuxtServerInit
*/
if
(
store
.
_actions
&&
store
.
_actions
.
nuxtServerInit
)
{
try
{
await
store
.
dispatch
(
'
nuxtServerInit
'
,
app
.
context
)
}
catch
(
err
)
{
console
.
debug
(
'
Error occurred when calling nuxtServerInit:
'
,
err
.
message
)
throw
err
}
}
// ...If there is a redirect or an error, stop the process
if
(
ssrContext
.
redirected
)
{
return
noopApp
()
}
if
(
ssrContext
.
nuxt
.
error
)
{
return
renderErrorPage
()
}
/*
** Call global middleware (nuxt.config.js)
*/
let
midd
=
[]
midd
=
midd
.
map
((
name
)
=>
{
if
(
typeof
name
===
'
function
'
)
{
return
name
}
if
(
typeof
middleware
[
name
]
!==
'
function
'
)
{
app
.
context
.
error
({
statusCode
:
500
,
message
:
'
Unknown middleware
'
+
name
})
}
return
middleware
[
name
]
})
await
middlewareSeries
(
midd
,
app
.
context
)
// ...If there is a redirect or an error, stop the process
if
(
ssrContext
.
redirected
)
{
return
noopApp
()
}
if
(
ssrContext
.
nuxt
.
error
)
{
return
renderErrorPage
()
}
/*
** Set layout
*/
let
layout
=
Components
.
length
?
Components
[
0
].
options
.
layout
:
NuxtError
.
layout
if
(
typeof
layout
===
'
function
'
)
{
layout
=
layout
(
app
.
context
)
}
await
_app
.
loadLayout
(
layout
)
if
(
ssrContext
.
nuxt
.
error
)
{
return
renderErrorPage
()
}
layout
=
_app
.
setLayout
(
layout
)
ssrContext
.
nuxt
.
layout
=
_app
.
layoutName
/*
** Call middleware (layout + pages)
*/
midd
=
[]
layout
=
sanitizeComponent
(
layout
)
if
(
layout
.
options
.
middleware
)
{
midd
=
midd
.
concat
(
layout
.
options
.
middleware
)
}
Components
.
forEach
((
Component
)
=>
{
if
(
Component
.
options
.
middleware
)
{
midd
=
midd
.
concat
(
Component
.
options
.
middleware
)
}
})
midd
=
midd
.
map
((
name
)
=>
{
if
(
typeof
name
===
'
function
'
)
{
return
name
}
if
(
typeof
middleware
[
name
]
!==
'
function
'
)
{
app
.
context
.
error
({
statusCode
:
500
,
message
:
'
Unknown middleware
'
+
name
})
}
return
middleware
[
name
]
})
await
middlewareSeries
(
midd
,
app
.
context
)
// ...If there is a redirect or an error, stop the process
if
(
ssrContext
.
redirected
)
{
return
noopApp
()
}
if
(
ssrContext
.
nuxt
.
error
)
{
return
renderErrorPage
()
}
/*
** Call .validate()
*/
let
isValid
=
true
try
{
for
(
const
Component
of
Components
)
{
if
(
typeof
Component
.
options
.
validate
!==
'
function
'
)
{
continue
}
isValid
=
await
Component
.
options
.
validate
(
app
.
context
)
if
(
!
isValid
)
{
break
}
}
}
catch
(
validationError
)
{
// ...If .validate() threw an error
app
.
context
.
error
({
statusCode
:
validationError
.
statusCode
||
'
500
'
,
message
:
validationError
.
message
})
return
renderErrorPage
()
}
// ...If .validate() returned false
if
(
!
isValid
)
{
// Render a 404 error page
return
render404Page
()
}
// If no Components found, returns 404
if
(
!
Components
.
length
)
{
return
render404Page
()
}
// Call asyncData & fetch hooks on components matched by the route.
const
asyncDatas
=
await
Promise
.
all
(
Components
.
map
((
Component
)
=>
{
const
promises
=
[]
// Call asyncData(context)
if
(
Component
.
options
.
asyncData
&&
typeof
Component
.
options
.
asyncData
===
'
function
'
)
{
const
promise
=
promisify
(
Component
.
options
.
asyncData
,
app
.
context
)
promise
.
then
((
asyncDataResult
)
=>
{
ssrContext
.
asyncData
[
Component
.
cid
]
=
asyncDataResult
applyAsyncData
(
Component
)
return
asyncDataResult
})
promises
.
push
(
promise
)
}
else
{
promises
.
push
(
null
)
}
// Call fetch(context)
if
(
Component
.
options
.
fetch
&&
Component
.
options
.
fetch
.
length
)
{
promises
.
push
(
Component
.
options
.
fetch
(
app
.
context
))
}
else
{
promises
.
push
(
null
)
}
return
Promise
.
all
(
promises
)
}))
if
(
process
.
env
.
DEBUG
&&
asyncDatas
.
length
)
console
.
debug
(
'
Data fetching
'
+
ssrContext
.
url
+
'
:
'
+
(
Date
.
now
()
-
s
)
+
'
ms
'
)
// datas are the first row of each
ssrContext
.
nuxt
.
data
=
asyncDatas
.
map
(
r
=>
r
[
0
]
||
{})
// ...If there is a redirect or an error, stop the process
if
(
ssrContext
.
redirected
)
{
return
noopApp
()
}
if
(
ssrContext
.
nuxt
.
error
)
{
return
renderErrorPage
()
}
// Call beforeNuxtRender methods & add store state
await
beforeRender
()
return
_app
}
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/store.js
0 → 100644
View file @
fabfd8a3
import
Vue
from
'
vue
'
import
Vuex
from
'
vuex
'
Vue
.
use
(
Vuex
)
const
VUEX_PROPERTIES
=
[
'
state
'
,
'
getters
'
,
'
actions
'
,
'
mutations
'
]
let
store
=
{};
(
function
updateModules
()
{
store
=
normalizeRoot
(
require
(
'
..
\\
store
\\
index.js
'
),
'
store/index.js
'
)
// If store is an exported method = classic mode (deprecated)
if
(
typeof
store
===
'
function
'
)
{
return
console
.
warn
(
'
Classic mode for store/ is deprecated and will be removed in Nuxt 3.
'
)
}
// Enforce store modules
store
.
modules
=
store
.
modules
||
{}
resolveStoreModules
(
require
(
'
..
\\
store
\\
markdown.js
'
),
'
markdown.js
'
)
resolveStoreModules
(
require
(
'
..
\\
store
\\
wikipedia.js
'
),
'
wikipedia.js
'
)
// If the environment supports hot reloading...
if
(
process
.
client
&&
module
.
hot
)
{
// Whenever any Vuex module is updated...
module
.
hot
.
accept
([
'
..
\\
store
\\
index.js
'
,
'
..
\\
store
\\
markdown.js
'
,
'
..
\\
store
\\
wikipedia.js
'
,
],
()
=>
{
// Update `root.modules` with the latest definitions.
updateModules
()
// Trigger a hot update in the store.
window
.
$nuxt
.
$store
.
hotUpdate
(
store
)
})
}
})()
// createStore
export
const
createStore
=
store
instanceof
Function
?
store
:
()
=>
{
return
new
Vuex
.
Store
(
Object
.
assign
({
strict
:
(
process
.
env
.
NODE_ENV
!==
'
production
'
)
},
store
))
}
function
normalizeRoot
(
moduleData
,
filePath
)
{
moduleData
=
moduleData
.
default
||
moduleData
if
(
moduleData
.
commit
)
{
throw
new
Error
(
`[nuxt]
${
filePath
}
should export a method that returns a Vuex instance.`
)
}
if
(
typeof
moduleData
!==
'
function
'
)
{
// Avoid TypeError: setting a property that has only a getter when overwriting top level keys
moduleData
=
Object
.
assign
({},
moduleData
)
}
return
normalizeModule
(
moduleData
,
filePath
)
}
function
normalizeModule
(
moduleData
,
filePath
)
{
if
(
moduleData
.
state
&&
typeof
moduleData
.
state
!==
'
function
'
)
{
console
.
warn
(
`'state' should be a method that returns an object in
${
filePath
}
`
)
const
state
=
Object
.
assign
({},
moduleData
.
state
)
// Avoid TypeError: setting a property that has only a getter when overwriting top level keys
moduleData
=
Object
.
assign
({},
moduleData
,
{
state
:
()
=>
state
})
}
return
moduleData
}
function
resolveStoreModules
(
moduleData
,
filename
)
{
moduleData
=
moduleData
.
default
||
moduleData
// Remove store src + extension (./foo/index.js -> foo/index)
const
namespace
=
filename
.
replace
(
/
\.(
js|mjs
)
$/
,
''
)
const
namespaces
=
namespace
.
split
(
'
/
'
)
let
moduleName
=
namespaces
[
namespaces
.
length
-
1
]
const
filePath
=
`store/
${
filename
}
`
moduleData
=
moduleName
===
'
state
'
?
normalizeState
(
moduleData
,
filePath
)
:
normalizeModule
(
moduleData
,
filePath
)
// If src is a known Vuex property
if
(
VUEX_PROPERTIES
.
includes
(
moduleName
))
{
const
property
=
moduleName
const
propertyStoreModule
=
getStoreModule
(
store
,
namespaces
,
{
isProperty
:
true
})
// Replace state since it's a function
mergeProperty
(
propertyStoreModule
,
moduleData
,
property
)
return
}
// If file is foo/index.js, it should be saved as foo
const
isIndexModule
=
(
moduleName
===
'
index
'
)
if
(
isIndexModule
)
{
namespaces
.
pop
()
moduleName
=
namespaces
[
namespaces
.
length
-
1
]
}
const
storeModule
=
getStoreModule
(
store
,
namespaces
)
for
(
const
property
of
VUEX_PROPERTIES
)
{
mergeProperty
(
storeModule
,
moduleData
[
property
],
property
)
}
if
(
moduleData
.
namespaced
===
false
)
{
delete
storeModule
.
namespaced
}
}
function
normalizeState
(
moduleData
,
filePath
)
{
if
(
typeof
moduleData
!==
'
function
'
)
{
console
.
warn
(
`
${
filePath
}
should export a method that returns an object`
)
const
state
=
Object
.
assign
({},
moduleData
)
return
()
=>
state
}
return
normalizeModule
(
moduleData
,
filePath
)
}
function
getStoreModule
(
storeModule
,
namespaces
,
{
isProperty
=
false
}
=
{})
{
// If ./mutations.js
if
(
!
namespaces
.
length
||
(
isProperty
&&
namespaces
.
length
===
1
))
{
return
storeModule
}
const
namespace
=
namespaces
.
shift
()
storeModule
.
modules
[
namespace
]
=
storeModule
.
modules
[
namespace
]
||
{}
storeModule
.
modules
[
namespace
].
namespaced
=
true
storeModule
.
modules
[
namespace
].
modules
=
storeModule
.
modules
[
namespace
].
modules
||
{}
return
getStoreModule
(
storeModule
.
modules
[
namespace
],
namespaces
,
{
isProperty
})
}
function
mergeProperty
(
storeModule
,
moduleData
,
property
)
{
if
(
!
moduleData
)
{
return
}
if
(
property
===
'
state
'
)
{
storeModule
.
state
=
moduleData
||
storeModule
.
state
}
else
{
storeModule
[
property
]
=
Object
.
assign
({},
storeModule
[
property
],
moduleData
)
}
}
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/utils.js
0 → 100644
View file @
fabfd8a3
This diff is collapsed.
Click to expand it.
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/views/app.template.html
0 → 100644
View file @
fabfd8a3
<!DOCTYPE html>
<html
{{
HTML_ATTRS
}}
>
<head
{{
HEAD_ATTRS
}}
>
{{ HEAD }}
</head>
<body
{{
BODY_ATTRS
}}
>
{{ APP }}
</body>
</html>
Shaini thenuwara/statistics/examples/nuxt-demo/.nuxt/views/error.html
0 → 100644
View file @
fabfd8a3
<!DOCTYPE html>
<html>
<head>
<title>
Server error
</title>
<meta
charset=
"utf-8"
>
<meta
content=
"width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"
name=
viewport
>
<style>
.__nuxt-error-page
{
padding
:
1rem
;
background
:
#f7f8fb
;
color
:
#47494e
;
text-align
:
center
;
display
:
-webkit-box
;
display
:
-ms-flexbox
;
display
:
flex
;
-webkit-box-pack
:
center
;
-ms-flex-pack
:
center
;
justify-content
:
center
;
-webkit-box-align
:
center
;
-ms-flex-align
:
center
;
align-items
:
center
;
-webkit-box-orient
:
vertical
;
-webkit-box-direction
:
normal
;
-ms-flex-direction
:
column
;
flex-direction
:
column
;
font-family
:
sans-serif
;
font-weight
:
100
!important
;
-ms-text-size-adjust
:
100%
;
-webkit-text-size-adjust
:
100%
;
-webkit-font-smoothing
:
antialiased
;
position
:
absolute
;
top
:
0
;
left
:
0
;
right
:
0
;
bottom
:
0
}
.__nuxt-error-page
.error
{
max-width
:
450px
}
.__nuxt-error-page
.title
{
font-size
:
24px
;
font-size
:
1.5rem
;
margin-top
:
15px
;
color
:
#47494e
;
margin-bottom
:
8px
}
.__nuxt-error-page
.description
{
color
:
#7f828b
;
line-height
:
21px
;
margin-bottom
:
10px
}
.__nuxt-error-page
a
{
color
:
#7f828b
!important
;
text-decoration
:
none
}
.__nuxt-error-page
.logo
{
position
:
fixed
;
left
:
12px
;
bottom
:
12px
}
</style>
</head>
<body>
<div
class=
"__nuxt-error-page"
>
<div
class=
"error"
>
<svg
xmlns=
"http://www.w3.org/2000/svg"
width=
"90"
height=
"90"
fill=
"#DBE1EC"
viewBox=
"0 0 48 48"
><path
d=
"M22 30h4v4h-4zm0-16h4v12h-4zm1.99-10C12.94 4 4 12.95 4 24s8.94 20 19.99 20S44 35.05 44 24 35.04 4 23.99 4zM24 40c-8.84 0-16-7.16-16-16S15.16 8 24 8s16 7.16 16 16-7.16 16-16 16z"
/></svg>
<div
class=
"title"
>
Server error
</div>
<div
class=
"description"
>
{{ message }}
</div>
</div>
<div
class=
"logo"
>
<a
href=
"https://nuxtjs.org"
target=
"_blank"
rel=
"noopener"
>
Nuxt.js
</a>
</div>
</div>
</body>
</html>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment