@itcenteratunihelsinki/huds-lib 0.8.67 → 0.8.68

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