@itcenteratunihelsinki/huds-lib 0.8.62 → 0.8.63
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/components/hy-hero-carousel.js +328 -1
- package/components/hy-hero-carousel.js.map +1 -1
- package/dist/cjs/hy-hero-carousel.cjs.entry.js +328 -1
- package/dist/cjs/hy-hero-carousel.cjs.entry.js.map +1 -1
- package/dist/collection/components/hy-hero-carousel/hy-hero-carousel.js +5 -2
- package/dist/collection/components/hy-hero-carousel/hy-hero-carousel.js.map +1 -1
- package/dist/esm/hy-hero-carousel.entry.js +328 -1
- package/dist/esm/hy-hero-carousel.entry.js.map +1 -1
- package/dist/huds-lib/hy-hero-carousel.entry.js +1 -1
- package/dist/huds-lib/hy-hero-carousel.entry.js.map +1 -1
- package/package.json +2 -2
|
@@ -3863,6 +3863,330 @@ Object.keys(prototypes).forEach(prototypeGroup => {
|
|
|
3863
3863
|
});
|
|
3864
3864
|
Swiper.use([Resize, Observer]);
|
|
3865
3865
|
|
|
3866
|
+
function Virtual({
|
|
3867
|
+
swiper,
|
|
3868
|
+
extendParams,
|
|
3869
|
+
on,
|
|
3870
|
+
emit
|
|
3871
|
+
}) {
|
|
3872
|
+
extendParams({
|
|
3873
|
+
virtual: {
|
|
3874
|
+
enabled: false,
|
|
3875
|
+
slides: [],
|
|
3876
|
+
cache: true,
|
|
3877
|
+
renderSlide: null,
|
|
3878
|
+
renderExternal: null,
|
|
3879
|
+
renderExternalUpdate: true,
|
|
3880
|
+
addSlidesBefore: 0,
|
|
3881
|
+
addSlidesAfter: 0
|
|
3882
|
+
}
|
|
3883
|
+
});
|
|
3884
|
+
let cssModeTimeout;
|
|
3885
|
+
const document = getDocument();
|
|
3886
|
+
swiper.virtual = {
|
|
3887
|
+
cache: {},
|
|
3888
|
+
from: undefined,
|
|
3889
|
+
to: undefined,
|
|
3890
|
+
slides: [],
|
|
3891
|
+
offset: 0,
|
|
3892
|
+
slidesGrid: []
|
|
3893
|
+
};
|
|
3894
|
+
const tempDOM = document.createElement('div');
|
|
3895
|
+
function renderSlide(slide, index) {
|
|
3896
|
+
const params = swiper.params.virtual;
|
|
3897
|
+
if (params.cache && swiper.virtual.cache[index]) {
|
|
3898
|
+
return swiper.virtual.cache[index];
|
|
3899
|
+
}
|
|
3900
|
+
// eslint-disable-next-line
|
|
3901
|
+
let slideEl;
|
|
3902
|
+
if (params.renderSlide) {
|
|
3903
|
+
slideEl = params.renderSlide.call(swiper, slide, index);
|
|
3904
|
+
if (typeof slideEl === 'string') {
|
|
3905
|
+
tempDOM.innerHTML = slideEl;
|
|
3906
|
+
slideEl = tempDOM.children[0];
|
|
3907
|
+
}
|
|
3908
|
+
} else if (swiper.isElement) {
|
|
3909
|
+
slideEl = createElement('swiper-slide');
|
|
3910
|
+
} else {
|
|
3911
|
+
slideEl = createElement('div', swiper.params.slideClass);
|
|
3912
|
+
}
|
|
3913
|
+
slideEl.setAttribute('data-swiper-slide-index', index);
|
|
3914
|
+
if (!params.renderSlide) {
|
|
3915
|
+
slideEl.innerHTML = slide;
|
|
3916
|
+
}
|
|
3917
|
+
if (params.cache) swiper.virtual.cache[index] = slideEl;
|
|
3918
|
+
return slideEl;
|
|
3919
|
+
}
|
|
3920
|
+
function update(force) {
|
|
3921
|
+
const {
|
|
3922
|
+
slidesPerView,
|
|
3923
|
+
slidesPerGroup,
|
|
3924
|
+
centeredSlides,
|
|
3925
|
+
loop: isLoop
|
|
3926
|
+
} = swiper.params;
|
|
3927
|
+
const {
|
|
3928
|
+
addSlidesBefore,
|
|
3929
|
+
addSlidesAfter
|
|
3930
|
+
} = swiper.params.virtual;
|
|
3931
|
+
const {
|
|
3932
|
+
from: previousFrom,
|
|
3933
|
+
to: previousTo,
|
|
3934
|
+
slides,
|
|
3935
|
+
slidesGrid: previousSlidesGrid,
|
|
3936
|
+
offset: previousOffset
|
|
3937
|
+
} = swiper.virtual;
|
|
3938
|
+
if (!swiper.params.cssMode) {
|
|
3939
|
+
swiper.updateActiveIndex();
|
|
3940
|
+
}
|
|
3941
|
+
const activeIndex = swiper.activeIndex || 0;
|
|
3942
|
+
let offsetProp;
|
|
3943
|
+
if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';
|
|
3944
|
+
let slidesAfter;
|
|
3945
|
+
let slidesBefore;
|
|
3946
|
+
if (centeredSlides) {
|
|
3947
|
+
slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;
|
|
3948
|
+
slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;
|
|
3949
|
+
} else {
|
|
3950
|
+
slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;
|
|
3951
|
+
slidesBefore = (isLoop ? slidesPerView : slidesPerGroup) + addSlidesBefore;
|
|
3952
|
+
}
|
|
3953
|
+
let from = activeIndex - slidesBefore;
|
|
3954
|
+
let to = activeIndex + slidesAfter;
|
|
3955
|
+
if (!isLoop) {
|
|
3956
|
+
from = Math.max(from, 0);
|
|
3957
|
+
to = Math.min(to, slides.length - 1);
|
|
3958
|
+
}
|
|
3959
|
+
let offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);
|
|
3960
|
+
if (isLoop && activeIndex >= slidesBefore) {
|
|
3961
|
+
from -= slidesBefore;
|
|
3962
|
+
if (!centeredSlides) offset += swiper.slidesGrid[0];
|
|
3963
|
+
} else if (isLoop && activeIndex < slidesBefore) {
|
|
3964
|
+
from = -slidesBefore;
|
|
3965
|
+
if (centeredSlides) offset += swiper.slidesGrid[0];
|
|
3966
|
+
}
|
|
3967
|
+
Object.assign(swiper.virtual, {
|
|
3968
|
+
from,
|
|
3969
|
+
to,
|
|
3970
|
+
offset,
|
|
3971
|
+
slidesGrid: swiper.slidesGrid,
|
|
3972
|
+
slidesBefore,
|
|
3973
|
+
slidesAfter
|
|
3974
|
+
});
|
|
3975
|
+
function onRendered() {
|
|
3976
|
+
swiper.updateSlides();
|
|
3977
|
+
swiper.updateProgress();
|
|
3978
|
+
swiper.updateSlidesClasses();
|
|
3979
|
+
emit('virtualUpdate');
|
|
3980
|
+
}
|
|
3981
|
+
if (previousFrom === from && previousTo === to && !force) {
|
|
3982
|
+
if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {
|
|
3983
|
+
swiper.slides.forEach(slideEl => {
|
|
3984
|
+
slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;
|
|
3985
|
+
});
|
|
3986
|
+
}
|
|
3987
|
+
swiper.updateProgress();
|
|
3988
|
+
emit('virtualUpdate');
|
|
3989
|
+
return;
|
|
3990
|
+
}
|
|
3991
|
+
if (swiper.params.virtual.renderExternal) {
|
|
3992
|
+
swiper.params.virtual.renderExternal.call(swiper, {
|
|
3993
|
+
offset,
|
|
3994
|
+
from,
|
|
3995
|
+
to,
|
|
3996
|
+
slides: function getSlides() {
|
|
3997
|
+
const slidesToRender = [];
|
|
3998
|
+
for (let i = from; i <= to; i += 1) {
|
|
3999
|
+
slidesToRender.push(slides[i]);
|
|
4000
|
+
}
|
|
4001
|
+
return slidesToRender;
|
|
4002
|
+
}()
|
|
4003
|
+
});
|
|
4004
|
+
if (swiper.params.virtual.renderExternalUpdate) {
|
|
4005
|
+
onRendered();
|
|
4006
|
+
} else {
|
|
4007
|
+
emit('virtualUpdate');
|
|
4008
|
+
}
|
|
4009
|
+
return;
|
|
4010
|
+
}
|
|
4011
|
+
const prependIndexes = [];
|
|
4012
|
+
const appendIndexes = [];
|
|
4013
|
+
const getSlideIndex = index => {
|
|
4014
|
+
let slideIndex = index;
|
|
4015
|
+
if (index < 0) {
|
|
4016
|
+
slideIndex = slides.length + index;
|
|
4017
|
+
} else if (slideIndex >= slides.length) {
|
|
4018
|
+
// eslint-disable-next-line
|
|
4019
|
+
slideIndex = slideIndex - slides.length;
|
|
4020
|
+
}
|
|
4021
|
+
return slideIndex;
|
|
4022
|
+
};
|
|
4023
|
+
if (force) {
|
|
4024
|
+
swiper.slidesEl.querySelectorAll(`.${swiper.params.slideClass}, swiper-slide`).forEach(slideEl => {
|
|
4025
|
+
slideEl.remove();
|
|
4026
|
+
});
|
|
4027
|
+
} else {
|
|
4028
|
+
for (let i = previousFrom; i <= previousTo; i += 1) {
|
|
4029
|
+
if (i < from || i > to) {
|
|
4030
|
+
const slideIndex = getSlideIndex(i);
|
|
4031
|
+
swiper.slidesEl.querySelectorAll(`.${swiper.params.slideClass}[data-swiper-slide-index="${slideIndex}"], swiper-slide[data-swiper-slide-index="${slideIndex}"]`).forEach(slideEl => {
|
|
4032
|
+
slideEl.remove();
|
|
4033
|
+
});
|
|
4034
|
+
}
|
|
4035
|
+
}
|
|
4036
|
+
}
|
|
4037
|
+
const loopFrom = isLoop ? -slides.length : 0;
|
|
4038
|
+
const loopTo = isLoop ? slides.length * 2 : slides.length;
|
|
4039
|
+
for (let i = loopFrom; i < loopTo; i += 1) {
|
|
4040
|
+
if (i >= from && i <= to) {
|
|
4041
|
+
const slideIndex = getSlideIndex(i);
|
|
4042
|
+
if (typeof previousTo === 'undefined' || force) {
|
|
4043
|
+
appendIndexes.push(slideIndex);
|
|
4044
|
+
} else {
|
|
4045
|
+
if (i > previousTo) appendIndexes.push(slideIndex);
|
|
4046
|
+
if (i < previousFrom) prependIndexes.push(slideIndex);
|
|
4047
|
+
}
|
|
4048
|
+
}
|
|
4049
|
+
}
|
|
4050
|
+
appendIndexes.forEach(index => {
|
|
4051
|
+
swiper.slidesEl.append(renderSlide(slides[index], index));
|
|
4052
|
+
});
|
|
4053
|
+
if (isLoop) {
|
|
4054
|
+
for (let i = prependIndexes.length - 1; i >= 0; i -= 1) {
|
|
4055
|
+
const index = prependIndexes[i];
|
|
4056
|
+
swiper.slidesEl.prepend(renderSlide(slides[index], index));
|
|
4057
|
+
}
|
|
4058
|
+
} else {
|
|
4059
|
+
prependIndexes.sort((a, b) => b - a);
|
|
4060
|
+
prependIndexes.forEach(index => {
|
|
4061
|
+
swiper.slidesEl.prepend(renderSlide(slides[index], index));
|
|
4062
|
+
});
|
|
4063
|
+
}
|
|
4064
|
+
elementChildren(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach(slideEl => {
|
|
4065
|
+
slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;
|
|
4066
|
+
});
|
|
4067
|
+
onRendered();
|
|
4068
|
+
}
|
|
4069
|
+
function appendSlide(slides) {
|
|
4070
|
+
if (typeof slides === 'object' && 'length' in slides) {
|
|
4071
|
+
for (let i = 0; i < slides.length; i += 1) {
|
|
4072
|
+
if (slides[i]) swiper.virtual.slides.push(slides[i]);
|
|
4073
|
+
}
|
|
4074
|
+
} else {
|
|
4075
|
+
swiper.virtual.slides.push(slides);
|
|
4076
|
+
}
|
|
4077
|
+
update(true);
|
|
4078
|
+
}
|
|
4079
|
+
function prependSlide(slides) {
|
|
4080
|
+
const activeIndex = swiper.activeIndex;
|
|
4081
|
+
let newActiveIndex = activeIndex + 1;
|
|
4082
|
+
let numberOfNewSlides = 1;
|
|
4083
|
+
if (Array.isArray(slides)) {
|
|
4084
|
+
for (let i = 0; i < slides.length; i += 1) {
|
|
4085
|
+
if (slides[i]) swiper.virtual.slides.unshift(slides[i]);
|
|
4086
|
+
}
|
|
4087
|
+
newActiveIndex = activeIndex + slides.length;
|
|
4088
|
+
numberOfNewSlides = slides.length;
|
|
4089
|
+
} else {
|
|
4090
|
+
swiper.virtual.slides.unshift(slides);
|
|
4091
|
+
}
|
|
4092
|
+
if (swiper.params.virtual.cache) {
|
|
4093
|
+
const cache = swiper.virtual.cache;
|
|
4094
|
+
const newCache = {};
|
|
4095
|
+
Object.keys(cache).forEach(cachedIndex => {
|
|
4096
|
+
const cachedEl = cache[cachedIndex];
|
|
4097
|
+
const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index');
|
|
4098
|
+
if (cachedElIndex) {
|
|
4099
|
+
cachedEl.setAttribute('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);
|
|
4100
|
+
}
|
|
4101
|
+
newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl;
|
|
4102
|
+
});
|
|
4103
|
+
swiper.virtual.cache = newCache;
|
|
4104
|
+
}
|
|
4105
|
+
update(true);
|
|
4106
|
+
swiper.slideTo(newActiveIndex, 0);
|
|
4107
|
+
}
|
|
4108
|
+
function removeSlide(slidesIndexes) {
|
|
4109
|
+
if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;
|
|
4110
|
+
let activeIndex = swiper.activeIndex;
|
|
4111
|
+
if (Array.isArray(slidesIndexes)) {
|
|
4112
|
+
for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {
|
|
4113
|
+
swiper.virtual.slides.splice(slidesIndexes[i], 1);
|
|
4114
|
+
if (swiper.params.virtual.cache) {
|
|
4115
|
+
delete swiper.virtual.cache[slidesIndexes[i]];
|
|
4116
|
+
}
|
|
4117
|
+
if (slidesIndexes[i] < activeIndex) activeIndex -= 1;
|
|
4118
|
+
activeIndex = Math.max(activeIndex, 0);
|
|
4119
|
+
}
|
|
4120
|
+
} else {
|
|
4121
|
+
swiper.virtual.slides.splice(slidesIndexes, 1);
|
|
4122
|
+
if (swiper.params.virtual.cache) {
|
|
4123
|
+
delete swiper.virtual.cache[slidesIndexes];
|
|
4124
|
+
}
|
|
4125
|
+
if (slidesIndexes < activeIndex) activeIndex -= 1;
|
|
4126
|
+
activeIndex = Math.max(activeIndex, 0);
|
|
4127
|
+
}
|
|
4128
|
+
update(true);
|
|
4129
|
+
swiper.slideTo(activeIndex, 0);
|
|
4130
|
+
}
|
|
4131
|
+
function removeAllSlides() {
|
|
4132
|
+
swiper.virtual.slides = [];
|
|
4133
|
+
if (swiper.params.virtual.cache) {
|
|
4134
|
+
swiper.virtual.cache = {};
|
|
4135
|
+
}
|
|
4136
|
+
update(true);
|
|
4137
|
+
swiper.slideTo(0, 0);
|
|
4138
|
+
}
|
|
4139
|
+
on('beforeInit', () => {
|
|
4140
|
+
if (!swiper.params.virtual.enabled) return;
|
|
4141
|
+
let domSlidesAssigned;
|
|
4142
|
+
if (typeof swiper.passedParams.virtual.slides === 'undefined') {
|
|
4143
|
+
const slides = [...swiper.slidesEl.children].filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`));
|
|
4144
|
+
if (slides && slides.length) {
|
|
4145
|
+
swiper.virtual.slides = [...slides];
|
|
4146
|
+
domSlidesAssigned = true;
|
|
4147
|
+
slides.forEach((slideEl, slideIndex) => {
|
|
4148
|
+
slideEl.setAttribute('data-swiper-slide-index', slideIndex);
|
|
4149
|
+
swiper.virtual.cache[slideIndex] = slideEl;
|
|
4150
|
+
slideEl.remove();
|
|
4151
|
+
});
|
|
4152
|
+
}
|
|
4153
|
+
}
|
|
4154
|
+
if (!domSlidesAssigned) {
|
|
4155
|
+
swiper.virtual.slides = swiper.params.virtual.slides;
|
|
4156
|
+
}
|
|
4157
|
+
swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);
|
|
4158
|
+
swiper.params.watchSlidesProgress = true;
|
|
4159
|
+
swiper.originalParams.watchSlidesProgress = true;
|
|
4160
|
+
if (!swiper.params.initialSlide) {
|
|
4161
|
+
update();
|
|
4162
|
+
}
|
|
4163
|
+
});
|
|
4164
|
+
on('setTranslate', () => {
|
|
4165
|
+
if (!swiper.params.virtual.enabled) return;
|
|
4166
|
+
if (swiper.params.cssMode && !swiper._immediateVirtual) {
|
|
4167
|
+
clearTimeout(cssModeTimeout);
|
|
4168
|
+
cssModeTimeout = setTimeout(() => {
|
|
4169
|
+
update();
|
|
4170
|
+
}, 100);
|
|
4171
|
+
} else {
|
|
4172
|
+
update();
|
|
4173
|
+
}
|
|
4174
|
+
});
|
|
4175
|
+
on('init update resize', () => {
|
|
4176
|
+
if (!swiper.params.virtual.enabled) return;
|
|
4177
|
+
if (swiper.params.cssMode) {
|
|
4178
|
+
setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);
|
|
4179
|
+
}
|
|
4180
|
+
});
|
|
4181
|
+
Object.assign(swiper.virtual, {
|
|
4182
|
+
appendSlide,
|
|
4183
|
+
prependSlide,
|
|
4184
|
+
removeSlide,
|
|
4185
|
+
removeAllSlides,
|
|
4186
|
+
update
|
|
4187
|
+
});
|
|
4188
|
+
}
|
|
4189
|
+
|
|
3866
4190
|
function createElementIfNotDefined(swiper, originalParams, params, checkProps) {
|
|
3867
4191
|
if (swiper.params.createElements) {
|
|
3868
4192
|
Object.keys(checkProps).forEach(key => {
|
|
@@ -5054,7 +5378,7 @@ const HyHeroCarousel$1 = /*@__PURE__*/ proxyCustomElement(class HyHeroCarousel e
|
|
|
5054
5378
|
}
|
|
5055
5379
|
componentDidLoad() {
|
|
5056
5380
|
new Swiper(".swiper", {
|
|
5057
|
-
modules: [Navigation, Pagination, A11y, EffectFade],
|
|
5381
|
+
modules: [Navigation, Pagination, A11y, EffectFade, Virtual],
|
|
5058
5382
|
enabled: true,
|
|
5059
5383
|
effect: 'fade',
|
|
5060
5384
|
fadeEffect: {
|
|
@@ -5065,6 +5389,9 @@ const HyHeroCarousel$1 = /*@__PURE__*/ proxyCustomElement(class HyHeroCarousel e
|
|
|
5065
5389
|
spaceBetween: 50,
|
|
5066
5390
|
virtual: {
|
|
5067
5391
|
enabled: true,
|
|
5392
|
+
cache: true,
|
|
5393
|
+
addSlidesAfter: 0,
|
|
5394
|
+
addSlidesBefore: 0,
|
|
5068
5395
|
},
|
|
5069
5396
|
navigation: {
|
|
5070
5397
|
nextEl: ".swiper-button-next",
|