@egjs/flicking 4.12.0-beta.1 → 4.12.0-beta.2

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.
@@ -15,9 +15,14 @@ export declare class CrossFlicking extends Flicking {
15
15
  private _verticalState;
16
16
  private _moveDirection;
17
17
  private _nextIndex;
18
+ get verticalFlicking(): Flicking[];
19
+ get verticalState(): VerticalState[];
18
20
  get verticalOptions(): FlickingOptions;
19
21
  constructor(root: HTMLElement | string, { verticalOptions }?: Partial<CrossFlickingOptions>);
20
22
  init(): Promise<void>;
23
+ private _addComponentEvents;
24
+ private _createVerticalState;
25
+ private _createVerticalFlicking;
21
26
  private _syncToCategory;
22
27
  private _onHorizontalHoldStart;
23
28
  private _onHorizontalMove;
@@ -34,6 +34,8 @@ export declare const MOVE_TYPE: {
34
34
  readonly STRICT: "strict";
35
35
  };
36
36
  export declare const CLASS: {
37
+ VIEWPORT: string;
38
+ CAMERA: string;
37
39
  VERTICAL: string;
38
40
  HIDDEN: string;
39
41
  DEFAULT_VIRTUAL: string;
@@ -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.1
7
+ version: 4.12.0-beta.2
8
8
  */
9
9
  'use strict';
10
10
 
@@ -387,6 +387,8 @@ var MOVE_TYPE = {
387
387
  STRICT: "strict"
388
388
  };
389
389
  var CLASS = {
390
+ VIEWPORT: "flicking-viewport",
391
+ CAMERA: "flicking-camera",
390
392
  VERTICAL: "vertical",
391
393
  HIDDEN: "flicking-hidden",
392
394
  DEFAULT_VIRTUAL: "flicking-panel"
@@ -7873,7 +7875,7 @@ var Flicking = /*#__PURE__*/function (_super) {
7873
7875
  * Flicking.VERSION; // ex) 4.0.0
7874
7876
  * ```
7875
7877
  */
7876
- Flicking.VERSION = "4.12.0-beta.1";
7878
+ Flicking.VERSION = "4.12.0-beta.2";
7877
7879
  return Flicking;
7878
7880
  }(Component);
7879
7881
 
@@ -7890,7 +7892,6 @@ var Flicking = /*#__PURE__*/function (_super) {
7890
7892
  var CrossFlicking = /*#__PURE__*/function (_super) {
7891
7893
  __extends(CrossFlicking, _super);
7892
7894
  // Options Setter
7893
- // UI / LAYOUT
7894
7895
  // public set align(val: FlickingOptions["align"]) {
7895
7896
  // this._align = val;
7896
7897
  // }
@@ -7962,19 +7963,55 @@ var CrossFlicking = /*#__PURE__*/function (_super) {
7962
7963
  _this._syncToCategory(e.index, _this.index);
7963
7964
  }
7964
7965
  };
7966
+ var horizontalPanels = toArray(getElement(root).children[0].children);
7965
7967
  // Internal states
7966
- _this._verticalState = [];
7968
+ _this._verticalState = _this._createVerticalState(horizontalPanels);
7967
7969
  _this._moveDirection = null;
7968
7970
  _this._nextIndex = 0;
7969
7971
  // Bind options
7970
7972
  _this._verticalOptions = verticalOptions;
7971
- return _this;
7972
7973
  // Create core components
7973
- // this._viewport = new Viewport(this, getElement(root));
7974
+ _this._verticalFlicking = _this._createVerticalFlicking(horizontalPanels);
7975
+ return _this;
7974
7976
  }
7975
7977
  var __proto = CrossFlicking.prototype;
7976
- Object.defineProperty(__proto, "verticalOptions", {
7978
+ Object.defineProperty(__proto, "verticalFlicking", {
7977
7979
  // Components
7980
+ /**
7981
+ * {@link Control} instance of the Flicking
7982
+ * @ko 현재 Flicking에 활성화된 {@link Control} 인스턴스
7983
+ * @type {Control}
7984
+ * @default SnapControl
7985
+ * @readonly
7986
+ * @see Control
7987
+ * @see SnapControl
7988
+ * @see FreeControl
7989
+ */
7990
+ get: function () {
7991
+ return this._verticalFlicking;
7992
+ },
7993
+ enumerable: false,
7994
+ configurable: true
7995
+ });
7996
+ Object.defineProperty(__proto, "verticalState", {
7997
+ // Internal States
7998
+ /**
7999
+ * Whether Flicking's {@link Flicking#init init()} is called.
8000
+ * This is `true` when {@link Flicking#init init()} is called, and is `false` after calling {@link Flicking#destroy destroy()}.
8001
+ * @ko Flicking의 {@link Flicking#init init()}이 호출되었는지를 나타내는 멤버 변수.
8002
+ * 이 값은 {@link Flicking#init init()}이 호출되었으면 `true`로 변하고, {@link Flicking#destroy destroy()}호출 이후에 다시 `false`로 변경됩니다.
8003
+ * @type {boolean}
8004
+ * @default false
8005
+ * @readonly
8006
+ */
8007
+ get: function () {
8008
+ return this._verticalState;
8009
+ },
8010
+ enumerable: false,
8011
+ configurable: true
8012
+ });
8013
+ Object.defineProperty(__proto, "verticalOptions", {
8014
+ // Options Getter
7978
8015
  /**
7979
8016
  * Change active panel index on mouse/touch hold while animating.
7980
8017
  * `index` of the `willChange`/`willRestore` event will be used as new index.
@@ -8001,37 +8038,56 @@ var CrossFlicking = /*#__PURE__*/function (_super) {
8001
8038
  __proto.init = function () {
8002
8039
  var _this = this;
8003
8040
  return _super.prototype.init.call(this).then(function () {
8004
- // data-index로 분류하기 전에 임시로 모든 children에 대해 vertical flicking으로 해보자.
8005
- // camera.children들에 대해 갯수 세기
8006
- var verticalPanels = "";
8007
- _this._verticalState = _this.camera.children.reduce(function (state, child) {
8008
- var start = state.length ? +state[state.length - 1].end + 1 : 0;
8009
- verticalPanels += child.children[0].innerHTML;
8010
- return __spread(state, [{
8011
- start: start,
8012
- end: start + child.children[0].children.length - 1,
8013
- element: child
8014
- }]);
8015
- }, []);
8016
- _this.camera.children.forEach(function (child) {
8017
- child.children[0].innerHTML = verticalPanels;
8018
- });
8019
- _this._verticalFlicking = _this.camera.children.map(function (child, i) {
8020
- return new Flicking(child, __assign(__assign({}, _this.verticalOptions), {
8021
- horizontal: false,
8022
- panelsPerView: 1,
8023
- defaultIndex: _this._verticalState[i].start
8024
- }));
8025
- });
8026
- _this.on(EVENTS.HOLD_START, _this._onHorizontalHoldStart);
8027
- _this.on(EVENTS.MOVE, _this._onHorizontalMove);
8028
- _this.on(EVENTS.MOVE_END, _this._onHorizontalMoveEnd);
8029
- _this._verticalFlicking.forEach(function (child) {
8030
- child.on(EVENTS.HOLD_START, _this._onVerticalHoldStart);
8031
- child.on(EVENTS.MOVE, _this._onVerticalMove);
8032
- child.on(EVENTS.MOVE_END, _this._onVerticalMoveEnd);
8033
- child.on(EVENTS.CHANGED, _this._onVerticalChanged);
8041
+ return _this._addComponentEvents();
8042
+ });
8043
+ };
8044
+ __proto._addComponentEvents = function () {
8045
+ var _this = this;
8046
+ this.on(EVENTS.HOLD_START, this._onHorizontalHoldStart);
8047
+ this.on(EVENTS.MOVE, this._onHorizontalMove);
8048
+ this.on(EVENTS.MOVE_END, this._onHorizontalMoveEnd);
8049
+ this._verticalFlicking.forEach(function (flicking) {
8050
+ flicking.on(EVENTS.HOLD_START, _this._onVerticalHoldStart);
8051
+ flicking.on(EVENTS.MOVE, _this._onVerticalMove);
8052
+ flicking.on(EVENTS.MOVE_END, _this._onVerticalMoveEnd);
8053
+ flicking.on(EVENTS.CHANGED, _this._onVerticalChanged);
8054
+ });
8055
+ };
8056
+ __proto._createVerticalState = function (panels) {
8057
+ // data-index로 분류하기 전에 임시로 모든 children에 대해 vertical flicking으로 해보자.
8058
+ // panels에 data-attributes가 붙어있을 때와 안 붙어있을 때를 다르게 처리
8059
+ // 붙어있다면 가상의 viewport들을 index 갯수만큼 만들어줘야 한다
8060
+ var verticalPanels = "";
8061
+ var verticalState = panels.reduce(function (state, panel) {
8062
+ var start = state.length ? +state[state.length - 1].end + 1 : 0;
8063
+ verticalPanels += panel.innerHTML;
8064
+ return __spread(state, [{
8065
+ start: start,
8066
+ end: start + panel.children.length - 1,
8067
+ element: panel
8068
+ }]);
8069
+ }, []);
8070
+ var verticalCamera = document.createElement("div");
8071
+ verticalCamera.classList.add(CLASS.CAMERA);
8072
+ verticalCamera.innerHTML = verticalPanels;
8073
+ panels.forEach(function (panel) {
8074
+ [CLASS.VIEWPORT, CLASS.VERTICAL].forEach(function (className) {
8075
+ if (!panel.classList.contains(className)) {
8076
+ panel.classList.add(className);
8077
+ }
8034
8078
  });
8079
+ panel.innerHTML = verticalCamera.outerHTML;
8080
+ });
8081
+ return verticalState;
8082
+ };
8083
+ __proto._createVerticalFlicking = function (panels) {
8084
+ var _this = this;
8085
+ return panels.map(function (panel, i) {
8086
+ return new Flicking(panel, __assign(__assign({}, _this.verticalOptions), {
8087
+ horizontal: false,
8088
+ panelsPerView: 1,
8089
+ defaultIndex: _this._verticalState[i].start
8090
+ }));
8035
8091
  });
8036
8092
  };
8037
8093
  __proto._syncToCategory = function (index, outerIndex) {