@egjs/flicking 4.12.0-beta.1 → 4.12.0-beta.3
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/declaration/CrossFlicking.d.ts +6 -0
- package/declaration/const/external.d.ts +2 -0
- package/declaration/utils.d.ts +2 -0
- package/dist/flicking.cjs.js +157 -32
- package/dist/flicking.cjs.js.map +1 -1
- package/dist/flicking.esm.js +153 -32
- package/dist/flicking.esm.js.map +1 -1
- package/dist/flicking.js +155 -32
- package/dist/flicking.js.map +1 -1
- package/dist/flicking.min.js +2 -2
- package/dist/flicking.min.js.map +1 -1
- package/dist/flicking.pkgd.js +920 -790
- package/dist/flicking.pkgd.js.map +1 -1
- package/dist/flicking.pkgd.min.js +2 -2
- package/dist/flicking.pkgd.min.js.map +1 -1
- package/package.json +1 -1
- package/src/CrossFlicking.ts +134 -30
- package/src/const/external.ts +2 -0
- package/src/utils.ts +21 -0
package/dist/flicking.esm.js
CHANGED
|
@@ -4,7 +4,7 @@ name: @egjs/flicking
|
|
|
4
4
|
license: MIT
|
|
5
5
|
author: NAVER Corp.
|
|
6
6
|
repository: https://github.com/naver/egjs-flicking
|
|
7
|
-
version: 4.12.0-beta.
|
|
7
|
+
version: 4.12.0-beta.3
|
|
8
8
|
*/
|
|
9
9
|
import Component, { ComponentEvent } from '@egjs/component';
|
|
10
10
|
import Axes, { PanInput } from '@egjs/axes';
|
|
@@ -385,6 +385,8 @@ var MOVE_TYPE = {
|
|
|
385
385
|
STRICT: "strict"
|
|
386
386
|
};
|
|
387
387
|
var CLASS = {
|
|
388
|
+
VIEWPORT: "flicking-viewport",
|
|
389
|
+
CAMERA: "flicking-camera",
|
|
388
390
|
VERTICAL: "vertical",
|
|
389
391
|
HIDDEN: "flicking-hidden",
|
|
390
392
|
DEFAULT_VIRTUAL: "flicking-panel"
|
|
@@ -736,6 +738,26 @@ var setPrototypeOf = Object.setPrototypeOf || function (obj, proto) {
|
|
|
736
738
|
obj.__proto__ = proto;
|
|
737
739
|
return obj;
|
|
738
740
|
};
|
|
741
|
+
var camelize = function (str) {
|
|
742
|
+
return str.replace(/[\s-_]([a-z])/g, function (all, letter) {
|
|
743
|
+
return letter.toUpperCase();
|
|
744
|
+
});
|
|
745
|
+
};
|
|
746
|
+
var getDataAttributes = function (element, attributePrefix) {
|
|
747
|
+
var dataAttributes = {};
|
|
748
|
+
var attributes = element.attributes;
|
|
749
|
+
var length = attributes.length;
|
|
750
|
+
for (var i = 0; i < length; ++i) {
|
|
751
|
+
var attribute = attributes[i];
|
|
752
|
+
var name_1 = attribute.name,
|
|
753
|
+
value = attribute.value;
|
|
754
|
+
if (name_1.indexOf(attributePrefix) === -1) {
|
|
755
|
+
continue;
|
|
756
|
+
}
|
|
757
|
+
dataAttributes[camelize(name_1.replace(attributePrefix, ""))] = value;
|
|
758
|
+
}
|
|
759
|
+
return dataAttributes;
|
|
760
|
+
};
|
|
739
761
|
|
|
740
762
|
/*
|
|
741
763
|
* Copyright (c) 2015 NAVER Corp.
|
|
@@ -7871,7 +7893,7 @@ var Flicking = /*#__PURE__*/function (_super) {
|
|
|
7871
7893
|
* Flicking.VERSION; // ex) 4.0.0
|
|
7872
7894
|
* ```
|
|
7873
7895
|
*/
|
|
7874
|
-
Flicking.VERSION = "4.12.0-beta.
|
|
7896
|
+
Flicking.VERSION = "4.12.0-beta.3";
|
|
7875
7897
|
return Flicking;
|
|
7876
7898
|
}(Component);
|
|
7877
7899
|
|
|
@@ -7888,7 +7910,6 @@ var Flicking = /*#__PURE__*/function (_super) {
|
|
|
7888
7910
|
var CrossFlicking = /*#__PURE__*/function (_super) {
|
|
7889
7911
|
__extends(CrossFlicking, _super);
|
|
7890
7912
|
// Options Setter
|
|
7891
|
-
// UI / LAYOUT
|
|
7892
7913
|
// public set align(val: FlickingOptions["align"]) {
|
|
7893
7914
|
// this._align = val;
|
|
7894
7915
|
// }
|
|
@@ -7961,18 +7982,53 @@ var CrossFlicking = /*#__PURE__*/function (_super) {
|
|
|
7961
7982
|
}
|
|
7962
7983
|
};
|
|
7963
7984
|
// Internal states
|
|
7964
|
-
_this._verticalState =
|
|
7985
|
+
_this._verticalState = _this._createVerticalState();
|
|
7965
7986
|
_this._moveDirection = null;
|
|
7966
7987
|
_this._nextIndex = 0;
|
|
7967
7988
|
// Bind options
|
|
7968
7989
|
_this._verticalOptions = verticalOptions;
|
|
7969
|
-
return _this;
|
|
7970
7990
|
// Create core components
|
|
7971
|
-
|
|
7991
|
+
_this._verticalFlicking = _this._createVerticalFlicking();
|
|
7992
|
+
return _this;
|
|
7972
7993
|
}
|
|
7973
7994
|
var __proto = CrossFlicking.prototype;
|
|
7974
|
-
Object.defineProperty(__proto, "
|
|
7995
|
+
Object.defineProperty(__proto, "verticalFlicking", {
|
|
7975
7996
|
// Components
|
|
7997
|
+
/**
|
|
7998
|
+
* {@link Control} instance of the Flicking
|
|
7999
|
+
* @ko 현재 Flicking에 활성화된 {@link Control} 인스턴스
|
|
8000
|
+
* @type {Control}
|
|
8001
|
+
* @default SnapControl
|
|
8002
|
+
* @readonly
|
|
8003
|
+
* @see Control
|
|
8004
|
+
* @see SnapControl
|
|
8005
|
+
* @see FreeControl
|
|
8006
|
+
*/
|
|
8007
|
+
get: function () {
|
|
8008
|
+
return this._verticalFlicking;
|
|
8009
|
+
},
|
|
8010
|
+
enumerable: false,
|
|
8011
|
+
configurable: true
|
|
8012
|
+
});
|
|
8013
|
+
Object.defineProperty(__proto, "verticalState", {
|
|
8014
|
+
// Internal States
|
|
8015
|
+
/**
|
|
8016
|
+
* Whether Flicking's {@link Flicking#init init()} is called.
|
|
8017
|
+
* This is `true` when {@link Flicking#init init()} is called, and is `false` after calling {@link Flicking#destroy destroy()}.
|
|
8018
|
+
* @ko Flicking의 {@link Flicking#init init()}이 호출되었는지를 나타내는 멤버 변수.
|
|
8019
|
+
* 이 값은 {@link Flicking#init init()}이 호출되었으면 `true`로 변하고, {@link Flicking#destroy destroy()}호출 이후에 다시 `false`로 변경됩니다.
|
|
8020
|
+
* @type {boolean}
|
|
8021
|
+
* @default false
|
|
8022
|
+
* @readonly
|
|
8023
|
+
*/
|
|
8024
|
+
get: function () {
|
|
8025
|
+
return this._verticalState;
|
|
8026
|
+
},
|
|
8027
|
+
enumerable: false,
|
|
8028
|
+
configurable: true
|
|
8029
|
+
});
|
|
8030
|
+
Object.defineProperty(__proto, "verticalOptions", {
|
|
8031
|
+
// Options Getter
|
|
7976
8032
|
/**
|
|
7977
8033
|
* Change active panel index on mouse/touch hold while animating.
|
|
7978
8034
|
* `index` of the `willChange`/`willRestore` event will be used as new index.
|
|
@@ -7999,37 +8055,102 @@ var CrossFlicking = /*#__PURE__*/function (_super) {
|
|
|
7999
8055
|
__proto.init = function () {
|
|
8000
8056
|
var _this = this;
|
|
8001
8057
|
return _super.prototype.init.call(this).then(function () {
|
|
8002
|
-
|
|
8003
|
-
|
|
8004
|
-
|
|
8005
|
-
|
|
8058
|
+
return _this._addComponentEvents();
|
|
8059
|
+
});
|
|
8060
|
+
};
|
|
8061
|
+
__proto._addComponentEvents = function () {
|
|
8062
|
+
var _this = this;
|
|
8063
|
+
this.on(EVENTS.HOLD_START, this._onHorizontalHoldStart);
|
|
8064
|
+
this.on(EVENTS.MOVE, this._onHorizontalMove);
|
|
8065
|
+
this.on(EVENTS.MOVE_END, this._onHorizontalMoveEnd);
|
|
8066
|
+
this._verticalFlicking.forEach(function (flicking) {
|
|
8067
|
+
flicking.on(EVENTS.HOLD_START, _this._onVerticalHoldStart);
|
|
8068
|
+
flicking.on(EVENTS.MOVE, _this._onVerticalMove);
|
|
8069
|
+
flicking.on(EVENTS.MOVE_END, _this._onVerticalMoveEnd);
|
|
8070
|
+
flicking.on(EVENTS.CHANGED, _this._onVerticalChanged);
|
|
8071
|
+
});
|
|
8072
|
+
};
|
|
8073
|
+
__proto._createVerticalState = function () {
|
|
8074
|
+
var _this = this;
|
|
8075
|
+
// data-index로 분류하기 전에 임시로 모든 children에 대해 vertical flicking으로 해보자.
|
|
8076
|
+
// panels에 data-attributes가 붙어있을 때와 안 붙어있을 때를 다르게 처리
|
|
8077
|
+
// 붙어있다면 가상의 viewport들을 index 갯수만큼 만들어줘야 한다
|
|
8078
|
+
var cameraEl = this.camera.element;
|
|
8079
|
+
var panels = toArray(cameraEl.children);
|
|
8080
|
+
var verticalState;
|
|
8081
|
+
var verticalPanels = "";
|
|
8082
|
+
// check data attribute exists
|
|
8083
|
+
var groupKeys = [];
|
|
8084
|
+
var groupPanels = {};
|
|
8085
|
+
var verticalCamera = document.createElement("div");
|
|
8086
|
+
verticalCamera.classList.add(CLASS.CAMERA);
|
|
8087
|
+
panels.forEach(function (panel) {
|
|
8088
|
+
var groupKey = getDataAttributes(panel, "data-flicking-").groupkey;
|
|
8089
|
+
if (groupKey && !includes(groupKeys, groupKey)) {
|
|
8090
|
+
groupKeys.push(groupKey);
|
|
8091
|
+
groupPanels[groupKey] = [panel];
|
|
8092
|
+
} else if (groupKey) {
|
|
8093
|
+
groupPanels[groupKey].push(panel);
|
|
8094
|
+
}
|
|
8095
|
+
return groupKey;
|
|
8096
|
+
});
|
|
8097
|
+
if (groupKeys.length) {
|
|
8098
|
+
panels.forEach(function () {
|
|
8099
|
+
return _this.remove(0);
|
|
8100
|
+
});
|
|
8101
|
+
verticalState = groupKeys.reduce(function (state, key) {
|
|
8006
8102
|
var start = state.length ? +state[state.length - 1].end + 1 : 0;
|
|
8007
|
-
|
|
8103
|
+
var element = groupPanels[key].reduce(function (el, panel) {
|
|
8104
|
+
verticalPanels += panel.outerHTML;
|
|
8105
|
+
el.appendChild(panel);
|
|
8106
|
+
return el;
|
|
8107
|
+
}, document.createElement("div"));
|
|
8008
8108
|
return __spread(state, [{
|
|
8109
|
+
key: key,
|
|
8009
8110
|
start: start,
|
|
8010
|
-
end: start +
|
|
8011
|
-
element:
|
|
8111
|
+
end: start + groupPanels[key].length - 1,
|
|
8112
|
+
element: element
|
|
8012
8113
|
}]);
|
|
8013
8114
|
}, []);
|
|
8014
|
-
|
|
8015
|
-
|
|
8115
|
+
verticalCamera.innerHTML = verticalPanels;
|
|
8116
|
+
cameraEl.innerHTML = "";
|
|
8117
|
+
groupKeys.forEach(function () {
|
|
8118
|
+
var panel = document.createElement("div");
|
|
8119
|
+
panel.classList.add(CLASS.VIEWPORT, CLASS.VERTICAL);
|
|
8120
|
+
panel.innerHTML = verticalCamera.outerHTML;
|
|
8121
|
+
_this.append(panel);
|
|
8016
8122
|
});
|
|
8017
|
-
|
|
8018
|
-
|
|
8019
|
-
|
|
8020
|
-
|
|
8021
|
-
|
|
8022
|
-
|
|
8023
|
-
|
|
8024
|
-
|
|
8025
|
-
|
|
8026
|
-
|
|
8027
|
-
|
|
8028
|
-
|
|
8029
|
-
|
|
8030
|
-
|
|
8031
|
-
|
|
8123
|
+
} else {
|
|
8124
|
+
verticalState = panels.reduce(function (state, panel, i) {
|
|
8125
|
+
var start = state.length ? +state[state.length - 1].end + 1 : 0;
|
|
8126
|
+
verticalPanels += panel.innerHTML;
|
|
8127
|
+
return __spread(state, [{
|
|
8128
|
+
key: i.toString(),
|
|
8129
|
+
start: start,
|
|
8130
|
+
end: start + panel.children.length - 1,
|
|
8131
|
+
element: panel
|
|
8132
|
+
}]);
|
|
8133
|
+
}, []);
|
|
8134
|
+
verticalCamera.innerHTML = verticalPanels;
|
|
8135
|
+
panels.forEach(function (panel) {
|
|
8136
|
+
[CLASS.VIEWPORT, CLASS.VERTICAL].forEach(function (className) {
|
|
8137
|
+
if (!panel.classList.contains(className)) {
|
|
8138
|
+
panel.classList.add(className);
|
|
8139
|
+
}
|
|
8140
|
+
});
|
|
8141
|
+
panel.innerHTML = verticalCamera.outerHTML;
|
|
8032
8142
|
});
|
|
8143
|
+
}
|
|
8144
|
+
return verticalState;
|
|
8145
|
+
};
|
|
8146
|
+
__proto._createVerticalFlicking = function () {
|
|
8147
|
+
var _this = this;
|
|
8148
|
+
return this.camera.children.map(function (panel, i) {
|
|
8149
|
+
return new Flicking(panel, __assign(__assign({}, _this.verticalOptions), {
|
|
8150
|
+
horizontal: false,
|
|
8151
|
+
panelsPerView: 1,
|
|
8152
|
+
defaultIndex: _this._verticalState[i].start
|
|
8153
|
+
}));
|
|
8033
8154
|
});
|
|
8034
8155
|
};
|
|
8035
8156
|
__proto._syncToCategory = function (index, outerIndex) {
|
|
@@ -8263,5 +8384,5 @@ var parseAlign = function (alignVal) {
|
|
|
8263
8384
|
* egjs projects are licensed under the MIT license
|
|
8264
8385
|
*/
|
|
8265
8386
|
|
|
8266
|
-
export { ALIGN, AnchorPoint, AnimatingState, AxesController, BoundCameraMode, CIRCULAR_FALLBACK, CLASS, Camera, CircularCameraMode, Control, CrossFlicking, DIRECTION, DisabledState, DraggingState, CODE as ERROR_CODE, EVENTS, ExternalRenderer, FlickingError, FreeControl, HoldingState, IdleState, LinearCameraMode, MOVE_DIRECTION, MOVE_TYPE, NormalRenderingStrategy, ORDER, Panel, Renderer, SnapControl, State, StateMachine, StrictControl, VanillaElementProvider, VanillaRenderer, Viewport, VirtualElementProvider, VirtualManager, VirtualPanel, VirtualRenderingStrategy, checkExistence, circulateIndex, circulatePosition, clamp, Flicking as default, find, findIndex, findRight, getDefaultCameraTransform, getDirection, getElement, getElementSize, getFlickingAttached, getMinusCompensatedIndex, getProgress, getRenderingPanels, getStyle, includes, isBetween, isString, merge, parseAlign$1 as parseAlign, parseArithmeticExpression, parseArithmeticSize, parseBounce, parseCSSSizeValue, parseElement, parsePanelAlign, range, setPrototypeOf, setSize, sync, toArray, withFlickingMethods };
|
|
8387
|
+
export { ALIGN, AnchorPoint, AnimatingState, AxesController, BoundCameraMode, CIRCULAR_FALLBACK, CLASS, Camera, CircularCameraMode, Control, CrossFlicking, DIRECTION, DisabledState, DraggingState, CODE as ERROR_CODE, EVENTS, ExternalRenderer, FlickingError, FreeControl, HoldingState, IdleState, LinearCameraMode, MOVE_DIRECTION, MOVE_TYPE, NormalRenderingStrategy, ORDER, Panel, Renderer, SnapControl, State, StateMachine, StrictControl, VanillaElementProvider, VanillaRenderer, Viewport, VirtualElementProvider, VirtualManager, VirtualPanel, VirtualRenderingStrategy, camelize, checkExistence, circulateIndex, circulatePosition, clamp, Flicking as default, find, findIndex, findRight, getDataAttributes, getDefaultCameraTransform, getDirection, getElement, getElementSize, getFlickingAttached, getMinusCompensatedIndex, getProgress, getRenderingPanels, getStyle, includes, isBetween, isString, merge, parseAlign$1 as parseAlign, parseArithmeticExpression, parseArithmeticSize, parseBounce, parseCSSSizeValue, parseElement, parsePanelAlign, range, setPrototypeOf, setSize, sync, toArray, withFlickingMethods };
|
|
8267
8388
|
//# sourceMappingURL=flicking.esm.js.map
|