Skip to content

Commit b202247

Browse files
committed
3.0.0-beta.4 release
1 parent 1edf004 commit b202247

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+788
-493
lines changed

packages/core/components/app/app-class.js

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ class Framework7 extends Framework7Class {
3030
// Extend defaults with modules params
3131
app.useModulesParams(defaults);
3232

33-
3433
// Extend defaults with passed params
3534
app.params = Utils.extend(defaults, params);
3635

@@ -80,13 +79,12 @@ class Framework7 extends Framework7Class {
8079
app.init();
8180
}
8281
}
83-
8482
// Return app instance
8583
return app;
8684
}
8785
init() {
8886
const app = this;
89-
if (app.initialized) return;
87+
if (app.initialized) return app;
9088

9189
app.root.addClass('framework7-initializing');
9290

@@ -111,7 +109,13 @@ class Framework7 extends Framework7Class {
111109
// Methods
112110
app.methods = {};
113111
if (app.params.methods) {
114-
Utils.extend(app.methods, app.params.methods);
112+
Object.keys(app.params.methods).forEach((methodName) => {
113+
if (typeof app.params.methods[methodName] === 'function') {
114+
app.methods[methodName] = app.params.methods[methodName].bind(app);
115+
} else {
116+
app.methods[methodName] = app.params.methods[methodName];
117+
}
118+
});
115119
}
116120
// Init class
117121
Utils.nextFrame(() => {
@@ -120,6 +124,8 @@ class Framework7 extends Framework7Class {
120124
// Emit, init other modules
121125
app.initialized = true;
122126
app.emit('init');
127+
128+
return app;
123129
}
124130
// eslint-disable-next-line
125131
get $() {

packages/core/components/swiper/swiper-class/components/core/loop/loopFix.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export default function () {
1919
if (slideChanged && diff !== 0) {
2020
swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);
2121
}
22-
} else if ((params.slidesPerView === 'auto' && activeIndex >= loopedSlides * 2) || (activeIndex > slides.length - (params.slidesPerView * 2))) {
22+
} else if ((params.slidesPerView === 'auto' && activeIndex >= loopedSlides * 2) || (activeIndex >= slides.length - loopedSlides)) {
2323
// Fix For Positive Oversliding
2424
newIndex = -slides.length + activeIndex + loopedSlides;
2525
newIndex += loopedSlides;
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import Support from '../../../utils/support';
2+
3+
export default function (index, slides) {
4+
const swiper = this;
5+
const { $wrapperEl, params, activeIndex } = swiper;
6+
let activeIndexBuffer = activeIndex;
7+
if (params.loop) {
8+
activeIndexBuffer -= swiper.loopedSlides;
9+
swiper.loopDestroy();
10+
swiper.slides = $wrapperEl.children(`.${params.slideClass}`);
11+
}
12+
const baseLength = swiper.slides.length;
13+
if (index <= 0) {
14+
swiper.prependSlide(slides);
15+
return;
16+
} else if (index >= baseLength) {
17+
swiper.appendSlide(slides);
18+
return;
19+
}
20+
let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;
21+
22+
const slidesBuffer = [];
23+
for (let i = baseLength - 1; i >= index; i -= 1) {
24+
const currentSlide = swiper.slides.eq(i);
25+
currentSlide.remove();
26+
slidesBuffer.unshift(currentSlide);
27+
}
28+
29+
if (typeof slides === 'object' && 'length' in slides) {
30+
for (let i = 0; i < slides.length; i += 1) {
31+
if (slides[i]) $wrapperEl.append(slides[i]);
32+
}
33+
newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;
34+
} else {
35+
$wrapperEl.append(slides);
36+
}
37+
38+
for (let i = 0; i < slidesBuffer.length; i += 1) {
39+
$wrapperEl.append(slidesBuffer[i]);
40+
}
41+
42+
if (params.loop) {
43+
swiper.loopCreate();
44+
}
45+
if (!(params.observer && Support.observer)) {
46+
swiper.update();
47+
}
48+
if (params.loop) {
49+
swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);
50+
} else {
51+
swiper.slideTo(newActiveIndex, 0, false);
52+
}
53+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
import appendSlide from './appendSlide';
22
import prependSlide from './prependSlide';
3+
import addSlide from './addSlide';
34
import removeSlide from './removeSlide';
45
import removeAllSlides from './removeAllSlides';
56

67
export default {
78
appendSlide,
89
prependSlide,
10+
addSlide,
911
removeSlide,
1012
removeAllSlides,
1113
};

packages/core/components/swiper/swiper-class/components/core/manipulation/removeSlide.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@ export default function (slidesIndexes) {
44
const swiper = this;
55
const { params, $wrapperEl, activeIndex } = swiper;
66

7+
let activeIndexBuffer = activeIndex;
78
if (params.loop) {
9+
activeIndexBuffer -= swiper.loopedSlides;
810
swiper.loopDestroy();
911
swiper.slides = $wrapperEl.children(`.${params.slideClass}`);
1012
}
11-
let newActiveIndex = activeIndex;
13+
let newActiveIndex = activeIndexBuffer;
1214
let indexToRemove;
1315

1416
if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {

packages/core/components/swiper/swiper-class/components/core/update/updateSlides.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@ export default function () {
99
const {
1010
$wrapperEl, size: swiperSize, rtlTranslate: rtl, wrongRTL,
1111
} = swiper;
12-
const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);
1312
const isVirtual = swiper.virtual && params.virtual.enabled;
13+
const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;
14+
const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);
1415
const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;
1516
let snapGrid = [];
1617
const slidesGrid = [];
@@ -26,7 +27,6 @@ export default function () {
2627
offsetAfter = params.slidesOffsetAfter.call(swiper);
2728
}
2829

29-
const previousSlidesLength = slidesLength;
3030
const previousSnapGridLength = swiper.snapGrid.length;
3131
const previousSlidesGridLength = swiper.snapGrid.length;
3232

packages/core/components/swiper/swiper-class/components/pagination/pagination.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,8 @@ const Pagination = {
103103
}
104104
}
105105
if (params.type === 'fraction') {
106-
$el.find(`.${params.currentClass}`).text(current + 1);
107-
$el.find(`.${params.totalClass}`).text(total);
106+
$el.find(`.${params.currentClass}`).text(params.formatFractionCurrent(current + 1));
107+
$el.find(`.${params.totalClass}`).text(params.formatFractionTotal(total));
108108
}
109109
if (params.type === 'progressbar') {
110110
let progressbarDirection;
@@ -254,6 +254,8 @@ export default {
254254
type: 'bullets', // 'bullets' or 'progressbar' or 'fraction' or 'custom'
255255
dynamicBullets: false,
256256
dynamicMainBullets: 1,
257+
formatFractionCurrent: number => number,
258+
formatFractionTotal: number => number,
257259
bulletClass: 'swiper-pagination-bullet',
258260
bulletActiveClass: 'swiper-pagination-bullet-active',
259261
modifierClass: 'swiper-pagination-', // NEW

packages/core/css/framework7.css

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
/**
2-
* Framework7 3.0.0-beta.3
2+
* Framework7 3.0.0-beta.4
33
* Full featured mobile HTML framework for building iOS & Android apps
44
* http://framework7.io/
55
*
66
* Copyright 2014-2018 Vladimir Kharlampidi
77
*
88
* Released under the MIT License
99
*
10-
* Released on: June 1, 2018
10+
* Released on: June 4, 2018
1111
*/
1212
html,
1313
body,

packages/core/css/framework7.ios.css

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
/**
2-
* Framework7 3.0.0-beta.3
2+
* Framework7 3.0.0-beta.4
33
* Full featured mobile HTML framework for building iOS & Android apps
44
* http://framework7.io/
55
*
66
* Copyright 2014-2018 Vladimir Kharlampidi
77
*
88
* Released under the MIT License
99
*
10-
* Released on: June 1, 2018
10+
* Released on: June 4, 2018
1111
*/
1212
html,
1313
body,

packages/core/css/framework7.ios.min.css

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)