nexa-ui-kit 0.7.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/NImage.js +21 -17
- package/dist/components/NImage.nexa +11 -6
- package/package.json +4 -4
- package/src/components/NImage.nexa +11 -6
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { signal, computed, onMounted, onUnmounted, h, hText, effect, defineComponent, registerComponent, reloadComponent, injectStyle } from 'nexa-framework'
|
|
2
2
|
|
|
3
3
|
const _sfc_main = defineComponent({
|
|
4
|
-
__scopeId: 'data-v-
|
|
4
|
+
__scopeId: 'data-v-309b6eb8',
|
|
5
5
|
__hmrId: 'NImage_nexa',
|
|
6
6
|
props: {
|
|
7
7
|
src: { type: String, required: true },
|
|
@@ -20,7 +20,7 @@ const _sfc_main = defineComponent({
|
|
|
20
20
|
const error = signal(false)
|
|
21
21
|
const visible = signal(!props.lazy)
|
|
22
22
|
let observer = null
|
|
23
|
-
|
|
23
|
+
const imgRef = signal(null)
|
|
24
24
|
const currentSrc = computed(() => {
|
|
25
25
|
if (error.value && props.fallback) return props.fallback
|
|
26
26
|
return props.src
|
|
@@ -41,6 +41,10 @@ const _sfc_main = defineComponent({
|
|
|
41
41
|
opacity: loaded.value ? '1' : '0',
|
|
42
42
|
filter: (props.blur && !loaded.value) ? 'blur(8px)' : 'none'
|
|
43
43
|
}))
|
|
44
|
+
const setRef = (el) => {
|
|
45
|
+
imgRef.value = el
|
|
46
|
+
if (observer && el) observer.observe(el)
|
|
47
|
+
}
|
|
44
48
|
onMounted(() => {
|
|
45
49
|
if (!props.lazy) return
|
|
46
50
|
observer = new IntersectionObserver(entries => {
|
|
@@ -49,36 +53,36 @@ const _sfc_main = defineComponent({
|
|
|
49
53
|
observer?.disconnect()
|
|
50
54
|
}
|
|
51
55
|
}, { rootMargin: '200px' })
|
|
52
|
-
if (imgRef) observer.observe(imgRef)
|
|
56
|
+
if (imgRef.value) observer.observe(imgRef.value)
|
|
53
57
|
})
|
|
54
58
|
onUnmounted(() => {
|
|
55
59
|
observer?.disconnect()
|
|
56
60
|
})
|
|
57
|
-
const onLoad = () => {
|
|
58
|
-
const onError = () => {
|
|
59
|
-
return { loaded, error, visible, observer, imgRef, currentSrc, wrapperStyle, imgStyle, onLoad, onError, $slots }
|
|
61
|
+
const onLoad = () => { loaded.value = true }
|
|
62
|
+
const onError = () => { error.value = true; loaded.value = true }
|
|
63
|
+
return { loaded, error, visible, observer, imgRef, currentSrc, wrapperStyle, imgStyle, setRef, onLoad, onError, $slots }
|
|
60
64
|
}
|
|
61
65
|
})
|
|
62
66
|
// Injected render function
|
|
63
67
|
_sfc_main.render = function(ctx) {
|
|
64
|
-
const { loaded, error, visible, observer, imgRef, currentSrc, wrapperStyle, imgStyle, onLoad, onError, $slots, src, alt, fallback, fit, lazy, width, height, rounded, blur, Fragment: _ntc_Fragment } = ctx
|
|
65
|
-
return h('span', { class: "n-image-wrapper", style: wrapperStyle.value, ref:
|
|
68
|
+
const { loaded, error, visible, observer, imgRef, currentSrc, wrapperStyle, imgStyle, setRef, onLoad, onError, $slots, src, alt, fallback, fit, lazy, width, height, rounded, blur, Fragment: _ntc_Fragment } = ctx
|
|
69
|
+
return h('span', { class: "n-image-wrapper", style: wrapperStyle.value, ref: setRef, "data-v-309b6eb8": "" }, [
|
|
66
70
|
"\n ",
|
|
67
|
-
(!loaded.value) ? h('span', { class: "n-image-skeleton", "data-v-
|
|
68
|
-
(visible.value) ? h('img', { class: "n-image", src: currentSrc.value, alt: alt, style:
|
|
71
|
+
(!loaded.value) ? h('span', { class: "n-image-skeleton", "data-v-309b6eb8": "" }) : null,
|
|
72
|
+
(visible.value) ? h('img', { class: "n-image", src: currentSrc.value, alt: alt, style: imgStyle.value, onLoad: onLoad, onError: onError, "data-v-309b6eb8": "" }) : null
|
|
69
73
|
])
|
|
70
74
|
}
|
|
71
|
-
_sfc_main.__scopeId = 'data-v-
|
|
75
|
+
_sfc_main.__scopeId = 'data-v-309b6eb8'
|
|
72
76
|
_sfc_main.__hmrId = 'NImage_nexa'
|
|
73
77
|
|
|
74
78
|
export default _sfc_main
|
|
75
79
|
|
|
76
|
-
const __style = `.n-image-wrapper[data-v-
|
|
80
|
+
const __style = `.n-image-wrapper[data-v-309b6eb8]{
|
|
77
81
|
background: var(--n-color-surface-hover, #1a1a2e);
|
|
78
82
|
display: inline-block;
|
|
79
83
|
}
|
|
80
84
|
|
|
81
|
-
.n-image-skeleton[data-v-
|
|
85
|
+
.n-image-skeleton[data-v-309b6eb8]{
|
|
82
86
|
position: absolute;
|
|
83
87
|
inset: 0;
|
|
84
88
|
background: linear-gradient(
|
|
@@ -92,13 +96,13 @@ const __style = `.n-image-wrapper[data-v-1f83e1a6]{
|
|
|
92
96
|
}
|
|
93
97
|
|
|
94
98
|
@keyframes n-img-shimmer {
|
|
95
|
-
0%[data-v-
|
|
96
|
-
100%[data-v-
|
|
99
|
+
0%[data-v-309b6eb8]{ background-position: 200% 0; }
|
|
100
|
+
100%[data-v-309b6eb8]{ background-position: -200% 0; }
|
|
97
101
|
}
|
|
98
102
|
|
|
99
|
-
.n-image[data-v-
|
|
103
|
+
.n-image[data-v-309b6eb8]{
|
|
100
104
|
display: block;
|
|
101
105
|
position: relative;
|
|
102
106
|
z-index: 1;
|
|
103
107
|
}`
|
|
104
|
-
injectStyle('data-v-
|
|
108
|
+
injectStyle('data-v-309b6eb8', __style)
|
|
@@ -17,7 +17,7 @@ const loaded = signal(false)
|
|
|
17
17
|
const error = signal(false)
|
|
18
18
|
const visible = signal(!props.lazy)
|
|
19
19
|
let observer = null
|
|
20
|
-
|
|
20
|
+
const imgRef = signal(null)
|
|
21
21
|
|
|
22
22
|
const currentSrc = computed(() => {
|
|
23
23
|
if (error.value && props.fallback) return props.fallback
|
|
@@ -42,6 +42,11 @@ const imgStyle = computed(() => ({
|
|
|
42
42
|
filter: (props.blur && !loaded.value) ? 'blur(8px)' : 'none'
|
|
43
43
|
}))
|
|
44
44
|
|
|
45
|
+
const setRef = (el) => {
|
|
46
|
+
imgRef.value = el
|
|
47
|
+
if (observer && el) observer.observe(el)
|
|
48
|
+
}
|
|
49
|
+
|
|
45
50
|
onMounted(() => {
|
|
46
51
|
if (!props.lazy) return
|
|
47
52
|
observer = new IntersectionObserver(entries => {
|
|
@@ -50,29 +55,29 @@ onMounted(() => {
|
|
|
50
55
|
observer?.disconnect()
|
|
51
56
|
}
|
|
52
57
|
}, { rootMargin: '200px' })
|
|
53
|
-
if (imgRef) observer.observe(imgRef)
|
|
58
|
+
if (imgRef.value) observer.observe(imgRef.value)
|
|
54
59
|
})
|
|
55
60
|
|
|
56
61
|
onUnmounted(() => {
|
|
57
62
|
observer?.disconnect()
|
|
58
63
|
})
|
|
59
64
|
|
|
60
|
-
const onLoad = () => {
|
|
61
|
-
const onError = () => {
|
|
65
|
+
const onLoad = () => { loaded.value = true }
|
|
66
|
+
const onError = () => { error.value = true; loaded.value = true }
|
|
62
67
|
</script>
|
|
63
68
|
|
|
64
69
|
<template>
|
|
65
70
|
<span
|
|
66
71
|
class="n-image-wrapper"
|
|
67
72
|
:style="wrapperStyle.value"
|
|
68
|
-
:ref="
|
|
73
|
+
:ref="setRef"
|
|
69
74
|
>
|
|
70
75
|
<span v-if="!loaded.value" class="n-image-skeleton" />
|
|
71
76
|
<img
|
|
72
77
|
v-if="visible.value"
|
|
73
78
|
:src="currentSrc.value"
|
|
74
79
|
:alt="alt"
|
|
75
|
-
:style="
|
|
80
|
+
:style="imgStyle.value"
|
|
76
81
|
class="n-image"
|
|
77
82
|
@load="onLoad"
|
|
78
83
|
@error="onError"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nexa-ui-kit",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.1",
|
|
4
4
|
"description": "Premium component library for Nexa Framework",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -18,12 +18,12 @@
|
|
|
18
18
|
"src"
|
|
19
19
|
],
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"nexa-framework": "0.7.
|
|
22
|
-
"nexa-mobile": "0.7.
|
|
21
|
+
"nexa-framework": "0.7.1",
|
|
22
|
+
"nexa-mobile": "0.7.1"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"cpx": "^1.5.0",
|
|
26
|
-
"nexa-compiler": "0.7.
|
|
26
|
+
"nexa-compiler": "0.7.1"
|
|
27
27
|
},
|
|
28
28
|
"scripts": {
|
|
29
29
|
"build": "tsc && node scripts/compile-nexa.js && node scripts/patch-imports.js && cpx \"src/**/*.nexa\" dist",
|
|
@@ -17,7 +17,7 @@ const loaded = signal(false)
|
|
|
17
17
|
const error = signal(false)
|
|
18
18
|
const visible = signal(!props.lazy)
|
|
19
19
|
let observer = null
|
|
20
|
-
|
|
20
|
+
const imgRef = signal(null)
|
|
21
21
|
|
|
22
22
|
const currentSrc = computed(() => {
|
|
23
23
|
if (error.value && props.fallback) return props.fallback
|
|
@@ -42,6 +42,11 @@ const imgStyle = computed(() => ({
|
|
|
42
42
|
filter: (props.blur && !loaded.value) ? 'blur(8px)' : 'none'
|
|
43
43
|
}))
|
|
44
44
|
|
|
45
|
+
const setRef = (el) => {
|
|
46
|
+
imgRef.value = el
|
|
47
|
+
if (observer && el) observer.observe(el)
|
|
48
|
+
}
|
|
49
|
+
|
|
45
50
|
onMounted(() => {
|
|
46
51
|
if (!props.lazy) return
|
|
47
52
|
observer = new IntersectionObserver(entries => {
|
|
@@ -50,29 +55,29 @@ onMounted(() => {
|
|
|
50
55
|
observer?.disconnect()
|
|
51
56
|
}
|
|
52
57
|
}, { rootMargin: '200px' })
|
|
53
|
-
if (imgRef) observer.observe(imgRef)
|
|
58
|
+
if (imgRef.value) observer.observe(imgRef.value)
|
|
54
59
|
})
|
|
55
60
|
|
|
56
61
|
onUnmounted(() => {
|
|
57
62
|
observer?.disconnect()
|
|
58
63
|
})
|
|
59
64
|
|
|
60
|
-
const onLoad = () => {
|
|
61
|
-
const onError = () => {
|
|
65
|
+
const onLoad = () => { loaded.value = true }
|
|
66
|
+
const onError = () => { error.value = true; loaded.value = true }
|
|
62
67
|
</script>
|
|
63
68
|
|
|
64
69
|
<template>
|
|
65
70
|
<span
|
|
66
71
|
class="n-image-wrapper"
|
|
67
72
|
:style="wrapperStyle.value"
|
|
68
|
-
:ref="
|
|
73
|
+
:ref="setRef"
|
|
69
74
|
>
|
|
70
75
|
<span v-if="!loaded.value" class="n-image-skeleton" />
|
|
71
76
|
<img
|
|
72
77
|
v-if="visible.value"
|
|
73
78
|
:src="currentSrc.value"
|
|
74
79
|
:alt="alt"
|
|
75
|
-
:style="
|
|
80
|
+
:style="imgStyle.value"
|
|
76
81
|
class="n-image"
|
|
77
82
|
@load="onLoad"
|
|
78
83
|
@error="onError"
|